강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

박종현님의 프로필 이미지
박종현

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

Polygon과 Mask Segmentation 시각화 - 02

Custom Dataset에서의 polygon 정보 관련

작성

·

24

0

안녕하세요 강의 잘 듣고 있습니다. 🙂

현재 Polygon과 Mask Segmentation 시각화에 대해 강의 및 학습을 진행중인데 문득 궁금한점이 있어 질문 드립니다.

coco dataset을 활용하는 경우에는 polygon정보가 들어 있어 mask할때 해당 정보를 활용할 수 있지만 만약 자체 custom dataset으로 활용한다면 polygon정보를 어떻게? 만들어야 할지 긴가민가 하네요. 아직 수업을 완강하지 않아 뒷부분에서 배울수 있을수도 있겠으나 궁금해서 질문드립니다.!

(object detection은 yolo와 MMDetection을 활용하고 부분적으로 Segmentation을 적용계획입니다. 현재일자로 yolo를 보니 yolo-seg 라는 모델도 나왔네요)

답변 2

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

이미지만 있을 경우 segmentation을 위한 Polygon 좌표를 만드는 방법은

  1. opencv의 findContours() 함수를 사용하는 방법이 있습니다. findContours() 함수는 이미지내 object들의 외곽선 좌표들을 추출해 줍니다. 다만 이 방식을 사용하면 어떤 object 들인지는 알 수 없고, polygon용 값만 추출해 주므로 별도의 수동 작업등이 필요합니다.

  2. cvat.ai(https://www.cvat.ai/) 에서 object의 일부만 polygon을 수동으로 찍어주면 자동으로 object 들의 polygon 정보를 만들어 줍니다. 아쉽게도 강의에서는 현 cvat ai가 아니라 과거 cvat org만 영상으로 제공하고, 또한 polygon 좌표를 만드는 것에 대해서는 언급 드리지 않습니다. 그리고 이 기능을 사용하려면 cvat가 내부적으로 Segmentation 모델을 적용하므로 GPU가 필요할 수 있습니다.

추가적으로, 검색을 해보시면 클라우드 상에서 유료 또는 Trial로 이미지의 Polygon을 생성해주는 여러 서비스들을 찾으실 수 있을 겁니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 박종현님, 질문 주셔서 감사합니다.

Custom Dataset에서 Polygon 정보를 생성하는 것은 중요한 단계이지만 때때로 혼란스러울 수 있습니다. COCO 형식의 데이터셋을 사용하는 경우, annotation 파일에 포함된 polygon 정보를 활용하여 mask segmentation을 수행합니다. 그러나 자체적인 custom dataset을 사용할 때는 이러한 polygon 정보를 수동으로 생성해야 합니다.

이를 위해 다음과 같은 방법을 고려할 수 있습니다:

  1. 데이터 라벨링 툴 사용: labelme, VGG Image Annotator, CVAT 등의 툴을 사용하여 이미지에 대한 polygon을 그릴 수 있습니다. 이러한 툴은 시각적으로 polygon 경계를 지정하고 그 정보를 json 또는 xml과 같은 형태로 저장합니다.

  2. Run Length Encoding (RLE): Mask를 RLE 방식으로 저장할 수도 있습니다. 이는 영역을 효율적으로 인코딩할 수 있어 데이터 크기를 줄일 수 있는 방법 중 하나입니다.

  3. YOLO-SEG 모델: 말씀하신 것처럼 최근에는 YOLO-SEG 같은 모델도 나왔습니다. 이는 YOLO의 빠른 개체 탐지 성능과 segmentation의 장점을 결합한 것입니다. 직접 polygon을 활용하지 않는, 자동으로 mask를 생성하는 방법을 고려해볼 수 있습니다.

각 툴은 학습 및 활용 방법이 다르므로, 시작하시기 전에 다소의 학습이 필요할 수 있습니다. 만약 강의 후반부에서 이러한 툴의 사용법을 상세히 다룬다면, 꼭 학습을 따라가시길 추천드립니다.

관련하여 도움이 될 수 있는 두 링크를 드립니다:
- labelme GitHub 리포지토리: 라벨링 작업을 수월하게 해주는 도구입니다.
- CVAT GitHub 리포지토리: 강력한 라벨링 도구로, 다양한 형식으로 데이터를 내보낼 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박종현님의 프로필 이미지
박종현

작성한 질문수

질문하기