반응형

mask 3

폴리곤을 segmentation mask로 변환하기(Polygon to mask)

폴리곤 좌표로 표현되어 있는 mask를 binary mask로 변환하는 방법을 알아보겠다. 구글링 해보니 잘 안나와서 한번 작성해본다. 여러 자료를 찾아봤는데 skimage.draw.polygon2mask 가 제일 편한것 같다. from skimage.draw import polygon2mask 로 함수를 불러와서 image_shape와 np.array 타입의 polygon을 넣어주면 된다. https://scikit-image.org/docs/stable/api/skimage.draw.html#skimage.draw.polygon2mask Module: draw — skimage v0.19.2 docs The range of values to sample pixel values from. For gra..

segmentation mask 덩어리 갯수 확인하기

위 그림은 mask가 두 덩어리로 이루어 있습니다. 이 케이스를 파악하는 코드를 짜보았는뎅 공유합니다. def count_contours(masks, threshold=1000): if type(masks[0]) == torch.Tensor: masks = [mask.cpu().numpy() for mask in masks] counts = [] for mask in masks: count = 0 contours, _ = cv2.findContours(mask.astype(np.uint8), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) for contour in contours: area = cv2.contourArea(contour) if area >= threshold:..

[Pytorch] Sementation mask 시각화 하기

이미지를 segmentation 모델로 전달하여 pred를 얻었다고 가정하겠습니다. for image, target in data_loader: pred_masks = model(image) # [N, H, W], dtype= Tensor.bool 이 pred_masks를 matplotlib를 사용하여 시각화 하겠습니다. 우선, pred_masks, target, image를 동일한 사이즈로 resize 해줘야 합니다. 안되어있는 경우 resize 합니다. import torchvision.transforms.functional as TF h, w = image.shape[2], image.shape[3] pred_masks = TF.resize(pred_masks, (h, w)).type(torch.b..

반응형