8-1. 그랩컷

그랩컷(GrabCut)

    영상의 픽셀을 그래프의 정점으로 간주하고 픽셀들을 두 개의 그룹으로 나누는 최적의 컷(Max Flow Minimum Cut)을 찾는 방식

     그래프 컷(Graph Cut) 기반 영역 분할 알고리즘 (자료 링크1 , 자료 링크2)

그랩 컷 알고리즘 이해도 (출처: GrabCut)

    사각 형 지정 자동 분할과 사용자 지정 전경/배경 정보를 활용한 영상 분할 방식

    그랩컷 함수: cv2.grabCut(img, mask, rect, bgdModel, fgdModel, iterCount, mode) -> mask, bgdModel, fgdModel

     img는 8-bit 3-channel 입력 영상

     mask는 입출력 마스크 영상. 네 개의 값: cv2.GC_BGD(0), cv2.GC_FGD(1), cv2.GC_PR_BGD(2), cv2.GC_PR_FGD(3). cv2.GC_INIT_WITH_RECT모드로 초기화.

     rect는 ROI 영역. cv2.GC_INIT_WITH_RECT 모드에서만 사용

     bgdModel는 임시 배경 모델 행렬. 같은 영상 처리 시에는 변경 금지

     fgdModel는 임시 전경 모델 행렬. 같은 영상 처리 시에는 변경 금지

     iterCount는 결과 생설을 위한 반복 횟수

     mode는 cv2.GC_로 시작하는 모드 상수. 보통 cv2.GC_INIT_WITH_RECT모드로 초기화 후 cv2.GC_INIT_WITH_MASK 모드로 업데이트

     그랩 컷 영상 분할 예제는 OpenCV tutorial 참고

그랩컷 함수 적용 결과. (a)는 강의 예제로 제공된 이미지를 사용하였고 (b)는 저번 챕터에서 사용한 비행기 이미지를 가져와 테스트 해보았다. 테두리 주위로 배경이 사라짐을 확인했지만 외곽선 안쪽으로 남아있는 배경은 남아있음을 볼 수 있다. 좌측 원본 영상에 그려진 파란색 사각형은 ROI.


8-2. 모멘트 기반 객체 검출

모멘트(Moments)

    특정 함수 집합과의 상관 관계(correlation) 형태로 계산되어 영상의 형태를 표현하는 일련의 실수 값

     종류: Geometric moments, Central moments, Normalized central moments, Legendre moments, Complex moments, Zernike moments, ART(Angular Radial Transform), etc

    Hu의 7개 불변 모멘트(Hu's seven invariant moements, 문서 링크)

     3차 이하의 정규화된 중심 모멘트를 조합하여 만든 7개의 모멘트 값으로 영상의 크기, 회전, 이동, 대칭 변환에 불변한다.

    모양 비교 함수: cv2.matchShapes(contour1, contour2, method, parameter) -> retval

     contour1는 첫번째 외곽선 또는 그레이스케일 영상

     contour2는 두번째 외곽선 또는 그레이스케일 영상

     method는 비교 방법 상수. 아래 그림 참고.

     parameter는 사용하지 않음. 0으로 지정

     retval는 두 외곽선 또는 그레이스케일 영상 사이의 거리(distance)

     * Hu의 불변 모멘트를 이용하여 두 외곽선 또는 영상의 모양을 비교하는 것이기 때문에 영상 변환에 강인하다

모양 비교 함수의 method 상수 (출처: FastCampus)

    모멘트 기반 객체 검출 방식 (예시):

     1) 객체를 검출할 영상 그레이스케일로 읽어오기

     2) 검출할 단위 객체 영상 그레이스케일로 읽어오기

     3) 두 영상 외곽선 검출

     4) 검출될 영상 컬러본으로 카피에서 출력 영상 준비

     5) 검출될 영상 외곽선과 단위 객체 외곽선을 비교하여 일정 값보다 거리가 작을 경우 단위 객체라 판별

         * boundingRect 함수를 사용하여 판별 정보에 따라 다르게 표기해도 좋음

모멘트 기반 객체 검출 적용 결과. 강의 영상은 트럼프 심볼을 사용했는데 글쓴이는 수학 기호를 사용해서 테스트 해보았다. 거리값 0.1보다 작은 경우 검출하는 로직이였는데 더하기를 제외한 다른 기호들의 경우 사진 크기를 줄여서 비교해서 그런지 거리값이 높아져서 검출에 제외 되었다.


인증 타임

그랩컷의 경우 마우스로 배경 선택하여 지우는 기능 같은 경우 파워포인트에서 영상 배경 제거 옵션 사용할 때 느낌이 들어서 신기했다.

모멘트 검출의 경우 배워왔던 기능들과 마찬가지로 검출에 사용하는 파라미터 범위가 중요하다는 것을 또 한 번 느꼈다. 사진에는 안 나와 있지만 코드 안에 일정 크기보다 작은 객체는 검출 객체에서 제외되는 로직이 있었는데 글쓴이가 사용한 영상 내 대부분의 부호들 크기보다 크기 검출 값이 높게 설정 되어 있어 커다란 부호 몇 빼고 사각형이 안그려져서 무슨 일이 일어난건지 한동안 생각해봐야했다. 파라미터 선정에 유의해야함을 항상 잊지 말아야겠다.

 

8-1. 공부 인증 사진
8-2. 공부 인증 사진


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online

 

패스트캠퍼스(FastCampus) 강의 둘러보러 가기 

   

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.


 

+ Recent posts