강의

멘토링

커뮤니티

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

limtony1님의 프로필 이미지
limtony1

작성한 질문수

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

COCO 형태 BCCD 데이터 학습 - Dataset 변환, Config 설정, 학습 및 Inference 수행

mm_faster_rcnn_train_coco_bccd 실행 오류 질문드립니다.

작성

·

14

·

수정됨

0

안녕하세요 강사님, 좋은 강의 감사히 듣고 있습니다. 다름이 아니라, old colab에서 new kaggle로 수정 후 실습을 하는 과정에서 faster rcnn의 mm_faster_rcnn_train_coco_bccd 파일을 실행하고 있었습니다.

다음의 코드에서 동일한 에러가 발생합니다.
중간에 학습을 하는 코드
train_detector(model, datasets, cfg, distributed=False, validate=True)


테스트셋을 평가하는 코드
metric = dataset.evaluate(outputs, metric='bbox')

를 실행한 결과, 다음의 에러코드가 출력됩니다.

--> 314         res.dataset['info'] = copy.deepcopy(self.dataset['info'])
    315         res.dataset['images'] = [img for img in self.dataset['images']]
    316 

KeyError: 'info'

제가 열심히 검색하며 추가 조사를 해본 결과,

epoch를 기본으로 설정한 12회를 다 돌고 나서 bbox를 evaluate하는 과정에서 에러가 나는 것 같습니다.

annotation파일들인 train.json 파일과 test.json파일에 info의 키가 없어서 에러가 발생한 것 같다... 라는 결론에 이르렀는데 강사님께서 보시기에 무엇이 문제인지 궁금하여 질문드립니다.

궁극적으로 해결을... 어떻게 할지도 고민이 좀 많이 됩니다.


PS. 구글 서치와 챗지피티 프롬프트 질문 결과, 에러의 원인은 mmdetection >= 2.28.0 버전에서 pycocotools 2.0.x 이상을 사용할 때 이 오류가 보인다는 의견이 있었고
pycocotools는 내부적으로 딥카피(copy.deepcopy(self.dataset['info']))를 사용하기 때문에, 필드 누락이 바로 Error로 이어지지 않았나... 까지 찾았습니다.

답변 1

0

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

안녕하십니까,

강의를 잘 듣고 계시다니 저도 기분이 좋군요.

정확한 원인은 아닐 수도 있지만, mmdetection의 2.x 버전과 numpy 버전, coco 버전 등의 현재 호환 이슈등으로 train_detector(model, datasets, cfg, distributed=False, validate=True)호출 시 validate=True로 해서 validation data의 evaluate를 수행하면 오류가 발생합니다.

아쉽게도 현재는 train_detector(model, datasets, cfg, distributed=False, validate=False) 와 같이 validate=False로 해서 validation data의 evaluation을 skip 해줘야 합니다.

감사합니다.

limtony1님의 프로필 이미지
limtony1

작성한 질문수

질문하기