더북(TheBook)

앞의 코드에서 불러온 mask_predictor에게 분할을 진행할 이미지(image_rgb)를 설정합니다(①). 그리고 predict 메서드에 박스 좌표(box)와 multimask_output=True를 전달하여 여러 개의 마스크를 출력할 수 있도록 설정합니다(②, ③). 반환되는 값은 마스크(masks), 각 마스크의 점수(scores), 로짓(logits)입니다.

box_annotator = sv.BoxAnnotator(color=sv.Color.red())
mask_annotator = sv.MaskAnnotator(color=sv.Color.red(), color_lookup=sv.ColorLookup.INDEX)

detections = sv.Detections(
xyxy=sv.mask_to_xyxy(masks=masks),mask=masks)                       # ①
detections = detections[detections.area == np.max(detections.area)] # ②
source_image = box_annotator.annotate(scene=image_bgr.copy(), detections=detections, skip_label=True) # ③
segmented_image = mask_annotator.annotate(scene=image_bgr.copy(), detections=detections) # ④
sv.plot_images_grid(
    images=[source_image, segmented_image],
    grid_size=(1, 2),
    titles=['source image', 'segmented image']
)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.