본문 바로가기
연구/MMDetection

MMDetection 공부하기

by xortl98 2024. 3. 7.
728x90

config_file과 checkpoint_file은 MMDetection 문서에 Get Start 부분에서 다운 받으면 됨 

 

참고로 python 파일은 mmdetection 폴더에 생성했습니다. 

 

데모에 있는 이미지를 inference 후 print 해본 것 

# 간략하게 print(result)만 해보는 Tutorial

from mmdet.apis import init_detector, inference_detector

config_file = 'rtmdet_tiny_8xb32-300e_coco.py'
checkpoint_file = 'rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth'
img = 'demo/demo.jpg'

model = init_detector(config_file, checkpoint_file, device='cpu')  # or device='cuda:0'
inference_detector(model, img)

result = inference_detector(model, img)
print(result)

 

결과

 

위의 코드에서 추가적으로 Visualize하기 위한 코드 Visualize된 이미지는 mmdetection/outputs 안에서 확인할 수 있다.

# 추론 후 이미지 visualizer 튜토리얼
# image = mmcv.imread(img)를 해야지 안하면 에러남
# 이후 visualizer하기 위해서 20번 밑부터 코드

from mmdet.apis import init_detector, inference_detector
from mmdet.registry import VISUALIZERS
import mmcv

config_file = 'rtmdet_tiny_8xb32-300e_coco.py'
checkpoint_file = 'rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth'

# build the model from a config file and a checkpoint file
model = init_detector(config_file, checkpoint_file, device='cpu')  # or device='cuda:0'

# test a single image and show the results
img = 'demo/demo.jpg'  # or img = mmcv.imread(img), which will only load it once
image = mmcv.imread(img)
result = inference_detector(model, img)

# init the visualizer(execute this block only once)
visualizer = VISUALIZERS.build(model.cfg.visualizer)
# the dataset_meta is loaded from the checkpoint and
# then pass to the model in init_detector
visualizer.dataset_meta = model.dataset_meta

# show the results
visualizer.add_datasample(
    'result',
    image,
    data_sample=result,
    draw_gt=False,
    wait_time=0,
    out_file='outputs/result.png' # optionally, write to output file
)
visualizer.show()

 

결과