카테고리 없음

[딥러닝] Tensroflow API, CenterNet 사용하기 - 초기 설정

freeParksey 2022. 5. 7. 13:44

1. Tensorflow model 다운로드

GitHub - tensorflow/models: Models and examples built with TensorFlow

 

GitHub - tensorflow/models: Models and examples built with TensorFlow

Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub.

github.com

Tensorflow에서 attention_ocr, object_detection 모델등 다양한 모델을 지원해주는 API가 있습니다.

 

먼저 다운받을 폴더에서 git clone을 합니다.

 

버전 문제로 다운그레이드 해줍니다.

git reset --hard d7ce106b8ea449cc629569ca43a95e55a18807fa

 

2. Protoc 설치

ProtocBuf(Protocol buffer) : 텐서플로우의 데이터 저장 형식

*.protoc 파일을 컴파일하여 우리가 사용하고자 하는 언어의 형태로 변환해 줍니다.

 

Releases · protocolbuffers/protobuf · GitHub

 

Releases · protocolbuffers/protobuf

Protocol Buffers - Google's data interchange format - protocolbuffers/protobuf

github.com

해당 파일을 사용하기 위해서 protobuf를 다운받아줘야 하며

저는 64bit이기 때문에 저 파일을 다운 받아 줬습니다.

 

그 후 CMD창에서 원활하게 사용하기 위해 환경변수를 설정했습니다.

{다운받은 위치}\protoc-3.20.1--win64\bin 

 

3. Protoc Complie

protoc object_detection/protos/*.proto --python_out=.
 
 
위 방식대로 컴파일을 하면 됩니다. 다만 윈도우의 경우 안되는 경우가 있습니다. 따라서
protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto
 
하나하나 다 넣어주어 실행하였습니다.

 

위치 변경

research\object_detection\packages\tf2\setup.py -> research\setup.py

(해당 위치 변경은 slim과 동일한 폴더로 옮겨주면 됩니다.)

 

이후 setup 파일의 패캐지들을 다운 받아야합니다.

setup.py

따라서 종속성 충돌을 피하기 위해 --use-feature=2020-resolver을 붙여줍니다.

python -m pip install --use-feature=2020-resolver .

 

(pycocorools 에러)

윈도우에서 pycocotools를 pip install이 안되는 에러가 발생하는 경우가 있는데

 

(기본적으로 visual studio가 깔려있는 것이 전제입니다. visual studio build tools여도 됨)

 

처음 시도했던 방법은 git issues에서 찾은

pip3 install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"


 

COCO API 다운

git clone https://github.com/cocodataset/cocoapi.git

 

PythonAPI에서 setup.py 파일을 수정해줘야 합니다.

해당 파일의 extra_compile_args부분을

이렇게 변경하고 다시 pycocotools를 설치하면 됩니다.

 

이때 CPython이 없어서 에러가 나는 경우도 있으므로 먼저 설치해야합니다.

 

pip install pycocotools

 

 

 

추가 에러

 

1. protoc object_detection/protos/*.proto 재설치

model/research 폴더에서 아래 수행

for /f %i in ('dir /b object_detection\protos\*.proto') do protoc object_detection\protos\%i --python_out=.
pip install .

 

 

2. No module named 'tensorflow.python.keras.applications' 

tensroflow.python.keras.applications -> tensorflow.keras.applications

python을 빼줬습니다.