Keras 이미지 Extract features 및 Feature map 그리기
1. 이미지 features 추출하고, Feature map을 그리기. (with VGG16) keras.io/api/applications/#extract-features-with-vgg16 from tensorflow.keras.applications.vgg16 import VGG16 from tensorflow.keras.pr..
deep-deep-deep.tistory.com
다음 구현 목표는 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
ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow` · Issue #4 · Jiwon-Hwang
tensorflow 설치 후 python을 실행해서 import keras 했을 때의 오류. (ImportError: No module named 'tensorflow.keras) 이것도 마찬가지로 최신 케라스 버전과 기존에 설치된 텐서플로우 버전이 달라서 생기는 오류
github.com
위 조치를 취해서 keras를 재설치하여 해결했다.
Retinanet에서 feature를 어떻게 추출할까...
github.com/raghakot/keras-vis/issues/37
Multiple inbound nodes error when visualising dense softmax · Issue #37 · raghakot/keras-vis
Im using the Keras VGG16 net with a custom top layer (4 class softmax) Loaded model with layers: [u'input_2', u'block1_conv1', u'block1_conv2', u'block1_pool', u'...
github.com
이전까지, keras와 tf의 호환 문제가 있었는데 tf.keras.Model이 아닌 keras.models.Model을 사용하니 오류가 사라졌다!
이를 통해 중간 레이어의 output을 받아오는데 성공했다.
또한 다음 블로그에서, 모델 중간에서 피쳐맵을 추출하는 방법에 대해 알 수 있었다.
pythonkim.tistory.com/164?category=698204
CNN 시각화 : 피처맵 (2)
이전 글에서 얘기했던 것처럼 지금부터 설명하는 코드는 "케라스 창시자"를 토대로 했고 수업에 사용하기 위해서 필요하기는 하지만 정해진 수업 시간을 넘어가는 부분에 대해서는 과감하게 정
pythonkim.tistory.com
성공!
원본

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 |