디지털 이미지를 픽셀 단위로 분석하여 이미지를 구성하는 개별 객체나 영역을 구분하는 기술
컴퓨터 비전 분야에서 널리 사용되며, 객체 탐지나 분류보다 더 세밀하게 이미지 데이터를 처리함
Image Segmentation vs. Object Detection
| 구분 | Image Segmentation | Object Detection |
|---|---|---|
| 출력 | 픽셀 단위로 분할된 마스크 | 바운딩 박스와 클래스 레이블 |
| 정밀도 | 높은 정밀도로 객체를 분리 | 상대적으로 정밀도가 낮음 |
| 사용 사례 | 의료 영상, 자율주행 등 | 사람 탐지, 물체 식별, 보안 시스템 |
mim download mmdet --config mask-rcnn_r50-caffe_fpn_ms-poly-3x_coco --dest ./checkpoints
DefInference()를 사용init_detector()로 모델을 초기화하고 inference_detector()로 추론을 하는 방식을 사용import mmcv
import mmengine
from mmdet.apis import init_detector, inference_detector
from mmdet.utils import register_all_modules
import os
MMDET_PATH = "/workspace/mmdetection"
config_file = os.path.join(MMDET_PATH,
"checkpoints/mask-rcnn_r50-caffe_fpn_ms-poly-3x_coco.py")
checkpoint_file = os.path.join(MMDET_PATH,
"checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth")
device = "cuda:0"
register_all_modules() # MMDetection에서 제공하는 모든 모듈을 한 번에 등록함 (필수)
model = init_detector(config_file, checkpoint_file, device=device) # 모델 초기화
image = mmcv.imread(os.path.join(MMDET_PATH, "demo/demo.jpg"),
channel_order="rgb")
res = inference_detector(model, image)
from mmdet.registry import VISUALIZERS
visualizer = VISUALIZERS.build(model.cfg.visualizer) # Visulaizer 빌드
visualizer.dataset_meta = model.dataset_meta # 모델의 메타데이터 입력
# 모델의 추론 결과 입력
visualizer.add_datasample(
"result",
image,
data_sample = res,
draw_gt = None,
wait_time = 0,
)
# 시각화
visualizer.show()
*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.