인프런 커뮤니티 질문&답변

윤도현님의 프로필 이미지
윤도현

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

mmdetection show_result 함수관련

작성

·

724

0

안녕하세요

강사님 강의 덕분에 항상 연구에 큰 도움받고 있습니다 :)


강의에 나온 mmdetection show_result 함수 관련하여 질문드립니다.

상황:

from mmdet.api import init_detector
# config 파일과 checkpoint를 기반으로 Detector 모델을 생성.
model = init_detector(config_file, checkpoint_file, device='cuda:0')

model.show_result(img_arr, results, pixel_list, 
                  score_thr=0.7, bbox_color=(0,0,0),
                  thickness=0.01,font_size=8,
                  out_file= f'{save_dir1}{rgb_file_name}')

위 코드와 같이

  1. init_detector 함수로 model을 생성

  2. show_result 함수로 이미지 위에 추론결과를 시각화
    하려고 합니다. 이때, show_result 함수에 pixel_list라는 인자를 추가하였는데 다음과 같은 에러를 만났습니다.
    "TypeError: show_result() got multiple values for argument 'score_thr'"

그래서 mmdetection/mmdet/models/detectors/base.py 모듈의 show_result 함수를 수정하였더니 문제가 해결되었습니다.

하지만 mmdetection 내의 mmdet 원본코드를 직접 수정한다면 mmdetection 버전이 바뀔때 마다 매번 해당 코드를 수정해줘야 할 것 같아서요. 혹시 원본코드를 수정하지 않고 새로운 모듈(new_base.py)을 만들고 override를 할 수 있는 방법이 있을까요?

(mmdetection/mmdet/api/inference.py의 init_detector와

mmdetection/mmdet/models/detectors/base.py의 show_result 함수가 뭔가 엮여있는 것 같은데 도저히 방법을 모르겠습니다 ㅠㅠ)

 

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

제 강의가 도움이 되어서 저도 기쁘군요. ^^

음, show_result()를 어떻게 고쳤는지 보지 않고, 답변을 드리기가 어렵군요.

사실 해당 부분을 어떻게 변경했는지 알아도 답변을 드리기가 어려울 수 있겠지만, 그래도 일단 변경한 부분을 여기에 올려 주시지요. 고민해 보겠습니다.

감사합니다.

 

윤도현님의 프로필 이미지
윤도현

작성한 질문수

질문하기