이미지의 관심영역을 포함하는 사각형을 이미지에 그린다.
사각형 내부는 전경으로 외부는 배경으로 초기 레이블링표시
GMM(가우시한 혼합모델) 각 픽셀의 확률 계산
사각형을 기준으로 전경, 배경의 각 색상 분포를 모델링 후 픽셀이 속할 확률을 계산한다.
픽셀 분포 학습
데이터를 기반으로 픽셀 분포를 학습하고, 알 수 없는 픽셀을 전경 또는 배경으로 분류
그래프 구축
각 픽셀을 노드로 하는 그래프를 만들고, 소스(전경) 노드와 싱크(배경) 노드를 추가
전경 픽셀은 소스 노드에, 배경 픽셀은 싱크 노드에 연결
엣지 가중치 정의
픽셀과 소스/싱크 노드 간의 엣지 가중치는 픽셀이 전경/배경일 확률로 정의
최소 컷 알고리즘 적용
최소 컷 알고리즘을 사용하여 그래프를 소스 노드와 싱크 노드를 분리하는 최소 비용 함수로 분할
소스 노드에 연결된 모든 픽셀은 전경이 되고, 싱크 노드에 연결된 픽셀은 배경이 된다.
위 순서를 정확한 전경과 배경 분리를 이룰때까지 반복한다.

코드의 핵심은 bounding box의 네 좌표를 지정하는 것 (직접 드래그 안한다면)
https://velog.io/@smile_b/GrabCut-Algorithm-for-Background-Removal