반응형

segmentation 17

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..

[논문 읽기] Object-Contextual Representations for Semantic Segmentation(2019)

Object-Contextual Representations for Semantic Segmentation PDF, Semantic Segmentation, Yuhui et al, arXiv 2019 Summary segmentation에서 pixel의 class는 pixel이 위치한 object class 입니다. object region 정보를 활용해서 pixel의 representation을 증가시키는 방법을 제안합니다. 즉, object region을 구성하고 각 pixel과 object region 관계를 이용하여 contextual 정보를 활용합니다. 이 OCR 모듈은 backbone network 끝 단에 추가하여 사용합니다. 우선 soft object region을 계산합니다. 이미지를 K..

[논문 읽기] Language-Driven Semantic Segmentation(2021)

Language-Driven Semantic Segmentation PDF, Zero-Shot Segmentation, Anonymous, ICLR 2022 open review Summary CLIP을 segmentation에 적용한 페이퍼이다. Inference시에 label를 flexible하게 넣어줄 수 있다. 즉, 이미지에서 원하는 객체만 찾을 수 있다는 말. class를 dog와 other만 넣어주면 나머지는 other로 분류한다. Text encoder은 pre-trained CLIP을 freezing하여 사용한다. image encoder은 DPT를 사용하는데 DPT는 pretrained ViT를 encoder로 사용하고 decoder DPT를 random 초기화하여 학습시킨다. text ..

[논문 읽기] Recursive Training for Zero-Shot Semantic Segmentation(2021)

Recursive Training for Zero-Shot Semantic Segmentation PDF, Zero-Shot Segmentation, Ce et al, arXiv 2021 Summary generative 방법을 사용하는 Zero shot semantic segmentation은 generator가 얼마나 unseen image를 잘 생성하는지에 따라 성능이 좌우된다. generator가 seen data로만 학습이 되기 때문에 seen에 bias가 되어있는데, 해당 논문은 그 문제점을 해결하기 위한 method를 제안한다. generator를 recursive training하는건데, generator가 생성한 이미지를 classifier로 전달하여 confidence를 추출한다. 그러..

[논문 읽기] Panoptic Feature Pyramid Networks(2019)

Panoptic Feature Pyramid Networks PDF, Panoptic Segmentation, Alexander, et al. arXiv 2019 Summary Panoptic segmentation task를 수행하기 위한 semantic, instance seg task에 대한 single network 입니다. semantic branch와 instance branch로부터 출력값을 얻어 heuristic하게 panoptic format을 만들어주는데, 해당 논문은 Feature Pyramid Network(FPN)을 활용합니다. Instance branch는 Mask RCNN을 사용합니다. Semantic branch는 FPN의 multi-feature를 add하여 하나의 sema..

[논문 읽기] PSPNet(2016), Pyramid Scene Parsing Network

Pyramid Scene Parsing Network PDF, Semantic Segmentation, Hengshuan Zhao, Jianping Shi, Xiaojuan Qi, Xiaogang Wang, Jiaya Jia, arXiv 2016 Summary Semantic Segmentation을 위한 모델입니다. 위 그림을 보면 강가에 있는 보트를 FCN은 car로 예측한 것을 확인할 수 있습니다. 이 error의 원인을 논문은 global Context를 고려하지 않았기 때문이라고 말합니다. 이 문제를 해결하기 위해 global context를 보고 예측을 할 수 있는 모델을 제안합니다. Pooling 연산으로 여러 크기의 feature map을 만든 후에 concat하여 global contex..

[논문 읽기] (2020) Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation

오늘 읽은 논문은 Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation 입니다. Segmentation task를 위한 Copy-Paste augmentation을 dataset에 적용하여 성능을 향상시킵니다. Copy-Paste를 직역하면 복사-붙여넣기입니다. 논문에서는 이미지의 객체를 복사하여 다른 이미지로 붙여넣기를 합니다. Casscade Eff-B7 Nas-FPN 모델에 Copy-Paste augmentation을 적용하여 segmentation 분야에서 2020년 SOTA를 달성합니다. 논문에서 제안하는 Copy-Paste는 large scale jittering과 Noisy Student의 self t..

[PyTorch] VOC Segmentation 데이터셋 사용하기

안녕하세요, 이번 포스팅에서는 PyTorch에서 제공하는 VOC Segmentation dataset을 사용해보도록 하겠습니다. 우선 transformation을 정의하기 위한 albumentations 모듈을 설치합니다. !pip install -U albumentations 필요한 라이브러리를 import 합니다. from torchvision.datasets import VOCSegmentation from torchvision.transforms.functional import to_tensor, to_pil_image from PIL import Image import torch import numpy as np from skimage.segmentation import mark_boundari..

[PyTorch] Dice coefficient 을 PyTorch로 구현하기

안녕하세요, 이번 포스팅에서는 image segmentation 분야에서 자주 사용되는 metric인 Dice coefficient를 PyTorch로 구현해보겠습니다. 또한 이 dice coefficient를 loss로 활용하는 법도 살펴봅니다. Dice coefficient dice coefficient는 주로 medical image analysis에서 사용됩니다. 그리고 예측값과 gt 사이의 overlap area에 2를 곱하고 예측값과 gt 영역을 합한 것으로 나눠줍니다. 이는 IoU와 매우 유사합니다. Dice를 boolean data(binary segmentation map)에 적용할 때, Dice coefficient는 F1 score와 동일합니다. PyTorch 코드 아래 코드는 pred..

반응형