다음 구현 목표는 Extract features 및 Feature map을 추출하는 것이다.
전체 시스템 동작 방식은 다음과 같다
사진입력 - 물체부 탐지 - 특징맵으로 추출 - 데이터베이스에서 유사 특징맵 검색 - 유사도 값 계산 및 유사 사진 출력
위 단계에서
사진입력 - 물체부 탐지 - 특징맵으로 추출 - 데이터베이스에서 유사 특징맵 검색 - 유사도 값 계산 및 유사 사진 출력
을 수행하려면, pretrained 된 모델에서 특정 물체의 feature를 추출할 수 있어야 하고, 이미지에서도 특징을 추출할 수 있어야 한다.
물론 이는 간단한 차원압축 모델로 작동하게 할 수는 있다.
하지만 현재 다루고 있는 모델은 COCO_pretrained_resnet50을 backbone으로 하는 RetinaNet 모델이지만
우리 프로젝트는 한샘에서 제공하는 커스텀 데이터셋을 사용하기 때문에 Feature map size에 대해서도 논의가 필요하다.
따라서 Feature Map을 이미지에서 추출과 Pretrained 모델에서 추출이 모두 필요하다.
그 전에 오류 발생... 환경을 옮기다 보니 케라스와 tf 버전이 바뀐 것으로 보인다.
github.com/Jiwon-Hwang/DeepImaging/issues/4
위 조치를 취해서 keras를 재설치하여 해결했다.
Retinanet에서 feature를 어떻게 추출할까...
github.com/raghakot/keras-vis/issues/37
이전까지, keras와 tf의 호환 문제가 있었는데 tf.keras.Model이 아닌 keras.models.Model을 사용하니 오류가 사라졌다!
이를 통해 중간 레이어의 output을 받아오는데 성공했다.
또한 다음 블로그에서, 모델 중간에서 피쳐맵을 추출하는 방법에 대해 알 수 있었다.
pythonkim.tistory.com/164?category=698204
성공!
원본
retinaNet P3 Layer에서 추출한 FeatureMap 256중 32개
'프로젝트 > (Vision)이미지 검색 및 상품추천' 카테고리의 다른 글
개발일지 (2) - detection 결과물을 JSON출력하기 (0) | 2021.05.02 |
---|---|
개발일지 (1) - 에러 수정, keras-RetinaNet 실행 (0) | 2021.05.02 |
(*on-going)(논문 정리) Swin Transformer: Hierarchical Vision Transformer using Shifted Windows (0) | 2021.04.16 |