8-1. 그랩컷
그랩컷(GrabCut)
영상의 픽셀을 그래프의 정점으로 간주하고 픽셀들을 두 개의 그룹으로 나누는 최적의 컷(Max Flow Minimum Cut)을 찾는 방식
그래프 컷(Graph Cut) 기반 영역 분할 알고리즘 (자료 링크1 , 자료 링크2)

사각 형 지정 자동 분할과 사용자 지정 전경/배경 정보를 활용한 영상 분할 방식
그랩컷 함수: 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 참고

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의 불변 모멘트를 이용하여 두 외곽선 또는 영상의 모양을 비교하는 것이기 때문에 영상 변환에 강인하다

모멘트 기반 객체 검출 방식 (예시):
1) 객체를 검출할 영상 그레이스케일로 읽어오기
2) 검출할 단위 객체 영상 그레이스케일로 읽어오기
3) 두 영상 외곽선 검출
4) 검출될 영상 컬러본으로 카피에서 출력 영상 준비
5) 검출될 영상 외곽선과 단위 객체 외곽선을 비교하여 일정 값보다 거리가 작을 경우 단위 객체라 판별
* boundingRect 함수를 사용하여 판별 정보에 따라 다르게 표기해도 좋음

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


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online
패스트캠퍼스(FastCampus) 강의 둘러보러 가기
↓ ↓ ↓
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'남돈내배 > 2022_FastCampus_환급이벤트' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 34일차 - Ch8. 영상 분할과 객체 검출 (0) | 2022.02.26 |
|---|---|
| 패스트캠퍼스 챌린지 33일차 - Ch8. 영상 분할과 객체 검출 (0) | 2022.02.25 |
| 패스트캠퍼스 챌린지 31일차 - Ch7. 이진 영상 처리 (0) | 2022.02.23 |
| 패스트캠퍼스 챌린지 30일차 - Ch7. 이진 영상 처리 (0) | 2022.02.22 |
| 패스트캠퍼스 챌린지 29일차 - Ch7. 이진 영상 처리 (0) | 2022.02.21 |