Closed Sungyu-Park closed 1 year ago
palette의 리스트 안의 색상 조합으로 bbox를 그려주는 것 같아요. 그래서 classes보다 palette의 값이 작으면 에러가 발생하는 것 같습니다.
inference 할 때의 config를 수정해도 동일한 에러가 발생한다는 뜻인가요???
넵 수정한 config를 활용해서 inference할 때도 동일한 에러가 발생했습니다.
video_demp.py를 보니 checkpoint로부터 metainfo를 불러오는 것 같습니다. 지금 새로 돌리고 있는 것으로 한 번 확인해볼게요!
checkpoint로 부터 metainfo를 불러오는게 맞는 것 같네요...
음 그럼 임시로 inference.py에 있는 palette에 선규님이 정의한 3개의 값을 가진 palette를 넣어서 테스트 해보면 되지 않을까요?? 새로 돌리는게 시간 아까울 것 같아서...
metainfo 내의 palette에 별도로 값을 부여하지 않으면 coco dataset의 dataset_meta 값을 불러오게 됩니다. 에러 메시지를 보면 dataset_palette의 원소 개수가 num_classes보다 작지만 않으면 에러가 발생하지 않는다는 것을 알 수 있습니다.(실제 실행 결과 에러 발생하지 않는 것을 확인) 현재 프로젝트에서는 num_classes가 3이고 특정 class에 대해 특정 색의 bbox를 생성할 필요는 없기 때문에 config 파일의 metainfo에 별도로 palette 값을 지정하지 않도록 하겠습니다.
국빈님께서 알려주신 방법도 시도해봤는데 가능합니다.
if 'dataset_meta' in checkpoint_meta:
# mmdet 3.x, all keys should be lowercase
model.dataset_meta = {
k.lower(): v
for k, v in checkpoint_meta['dataset_meta'].items()
}
model.dataset_meta['palette'] = [(231, 72, 86), (22, 198, 12), (59, 120, 255)] # 추가
기존 코드에서 dataset_meta['palette']
만 바꿔주면 에러 없이 inference 가능합니다
video_demo.py
를 활용한 inference 과정 중 발생한 에러입니다.config 파일의 metainfo에서 classes엔 값이 3개인데 palette에는 1개의 값만 들어가서 발생하는 것 같습니다. config 파일만 수정해서 실행했는데 동일 에러가 발생해서 학습 시에 적용해야하는 것 같아 확인중입니다.