작성
·
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}')
위 코드와 같이
init_detector 함수로 model을 생성
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()를 어떻게 고쳤는지 보지 않고, 답변을 드리기가 어렵군요.
사실 해당 부분을 어떻게 변경했는지 알아도 답변을 드리기가 어려울 수 있겠지만, 그래도 일단 변경한 부분을 여기에 올려 주시지요. 고민해 보겠습니다.
감사합니다.