모든 영역에 대해 이미지 분할이 진행된 걸 확인할 수 있습니다.
이어서 영역이 분할된 부분을 모두 분리하여 결과를 시각화해보겠습니다.
masks = [mask['segmentation'] for mask in sorted(sam_result, key=lambda x: x['area'], reverse=True)[:8]]
sv.plot_images_grid(images=masks,grid_size=(4, 4),size=(16, 16))
sam_result에서 각 마스크를 추출하고, 이를 영역(area)에 따라 내림차순으로 정렬합니다. 그 후 가장 큰 영역을 가진 상위 8개의 마스크를 선택합니다. 여기서 mask['segmentation']은 각 객체에 대한 영역 분할 마스크 정보를 추출합니다. 그리고 plot_images_grid를 사용하여 선택된 마스크들을 그리드 형태로 출력하도록 했습니다.