TensorFlow 2 MODEL API를 통한 Model Zoo Detection Model Training 방법을 다룬다. 순서는 다음과 같다.
- TensorFlow model API 설치
- 데이터셋 준비
- Training 진행
- Evaluation 진행
Tensorflow 디렉토리 생성
우선 앞으로 API 관련 데이터들이 들어갈 tensorflow
디렉토리를 하나 만든다.
앞으로 다루기 쉽게 models
API 리포지토리와 각종 학습의 내용물들이 저장될 곳이다. 루트 디렉토리에 만들기 위해서는 sudo
권한이 필요하지만 편의상 루트 디렉토리에 만들었다고 하겠다. 실제로는 자신이 편한 경로에 만들어주면 된다.
$ mkdir /tensorflow
Models Repository Download
TensorFlow Github의 models Repository를 내려받는다.
$ cd /tensorflow
$ git clone https://github.com/tensorflow/models.git
해당 디렉토리 구조는 아래와 같이 된다.
tensorflow
└─ models/
├─ community/
├─ official/
├─ orbit/
├─ research/
└─ ...
Protobuf Compile
이어서 research
디렉토리에서 관련 파이썬 패키지들을 설치해준다. 만약 protoc
커맨드가 없다고 결과가 출력된다면 protobuf
를 설치해줘야한다.
sudo apt install protobuf-compiler
아래 명령어들을 통해 Object Detection API에 필요한 파이썬 패키지들을 컴파일해주자.
$ cd models/research
# Compile protos.
$ protoc object_detection/protos/*.proto --python_out=.
# Install TensorFlow Object Detection API.
$ cp object_detection/packages/tf2/setup.py .
$ python -m pip install .
Object Detection API Install
위의 명령어를 실행하면 일단 pip list
를 했을 때 object_detection
등의 라이브러리가 설치되어있다.
$ pip list
>>
object-detection 0.1
tensorboard 2.4.0
tensorboard-plugin-wit 1.7.0
tensorflow 2.4.0
tensorflow-addons 0.12.0
tensorflow-datasets 4.2.0
tensorflow-estimator 2.4.0
tensorflow-hub 0.11.0
tensorflow-metadata 0.26.0
tensorflow-model-optimization 0.5.0
tf-models-official 2.4.0
tf-slim 1.1.0
이 정도 설치가 확인되었다면 된다.
위 결과처럼 Tensorflow 2.x버전의 최신버전이 자동으로 설치가 된다. TF2 버전은 사용자의 필요에 맞게 원하는 버전으로 설치하면 된다. 나는 아래와 같이 설치 된 tensorflow
를 지우고 tensorflow-gpu==2.4.0
을 설치했다.
# Remove tensorflow.
$ pip uninstall tensorflow
# Install tensorflow gpu version.
$ pip install tensorflow-gpu==2.4.0
PYTHONPATH 환경변수 설정
후에 models/research/object_detection
경로에 있는 model_main_tf2.py
코드를 통해 네트워크 모델을 학습 할 텐데 PYTHONPATH
를 지정하지 않으면
파이썬 설치 환경에 있는 object-detection
라이브러리 경로의 파이썬 파일들이 사용된다. 코드의 수정을 할 경우가 있다면 용이한 적용을 위해 환경변수를
지정해주어 내려받은 브랜치 코드들로 학습을 진행할 수 있다.
# from /tensorflow/models/research/
export PYTHONPATH=`pwd`:`pwd`/slim
매번 학습 전 마다 PYTHONPATH
를 export 해주는 것이 번거롭다면 bashrc
파일이나 아나콘다의 환경 activate 설정 스크립트에 추가해도된다. vi
로
~/.bashrc
를 열어 다음과 같이 추가해준다.\
export PYTHONPATH=$PYTHONPATH:/tensorflow/models/research:/tensorflow/models/research/slim
저장하고 나왔다면 설정을 적용해준다.
$ source ~/.bashrc
Installation Check
제대로 설치 되었는지 확인하려면 models/research/object_detection
디렉토리 안에 있는 빌더 테스트 모듈을 통해 할 수 있다.
# Test the installation. (tensorflow/models/research/)
$ python object_detection/builders/model_builder_tf2_test.py
설치에 문제가 없이 작동시 아래와 같이 출력된다
...
[ OK ] ModelBuilderTF2Test.test_create_ssd_models_from_config
[ RUN ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update
[ OK ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update
[ RUN ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold
[ OK ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold
[ RUN ] ModelBuilderTF2Test.test_invalid_model_config_proto
[ OK ] ModelBuilderTF2Test.test_invalid_model_config_proto
[ RUN ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size
[ OK ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size
[ RUN ] ModelBuilderTF2Test.test_session
[ SKIPPED ] ModelBuilderTF2Test.test_session
[ RUN ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor
[ OK ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor
[ RUN ] ModelBuilderTF2Test.test_unknown_meta_architecture
[ OK ] ModelBuilderTF2Test.test_unknown_meta_architecture
[ RUN ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor
[ OK ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor
----------------------------------------------------------------------
Ran 20 tests in 38.233s
OK (skipped=1)
댓글남기기