AI

tensorflow zoo && tensorflow detection api 사용하여 tflite파일 만드는 과정

전자둥이 2021. 11. 10. 14:35
반응형

안녕하세요
tensorflow zoo와 tensorflow detection api를 사용하여 tflite파일을 만드는 과정에 대해서 설명드리고자 합니다.


https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2.md
-> Object Detection API with TensorFlow 2 

하나의 디렉토리를 만듭니다.(~디렉토리에 만든다고 가정할게요, 계속 나올거니까 유의하세요~)

mkdir ~/tensorflow 

그리고 Object Detection API를 설치하기 위해서는 protobuf-compiler를 설치해야합니다.
(tensorflow는 파일 저장 포맷을 프로토콜 버퍼를 사용하고, 컴파일 하기위해서 포토콜 버퍼가 필요합니다..)

sudo apt install protobuf-compiler

cd ~/tensorflow
git clone https://github.com/tensorflow/models.git

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 설치가 완료 되었습니다.

# Test the installation.
python object_detection/builders/model_builder_tf2_test.py

-> 정상적으로 설치되었는지 확인 할 수 있습니다.

-----------------------------------------------------------------------------------------------------------------------------------

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md
-> TensorFlow2 Detection Model Zoo

해당 사이트에서 사용하고싶은 모델을 다운해옵니다. (저의 경우 SSD MobileNet v2 320x320를 해보겠습니다.)

다운받을 디렉토리를 만들기 위해 처음에 만들었던 tensorflow디렉토리로 돌아와서
mkdir ~/tensorflow/my_model

cd ~/tensorflow/my_model
wget http://download.tensorflow.org/models/object_detection/tf2/20200711/ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz

그리고 다운받은 tar.gz파일을 풀어줍니다.

tar xvzf ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz

----------------------------------------------------------------------------------------------------------------------------------

자 다시 Object Detection API with TensorFlow로 돌아옵니다.

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/running_on_mobile_tf2.md
-> 참고자료

Step 1: Export TFLite inference graph

export TFLiter inferenc graph의 결과를 저장할 디렉토리를 하나 만듭니다.
mkdir ~/tensorflow/my_model/ssd_mobilenet_v2_320x320_coco17_tpu-8/ssd_export

research디렉토리로 돌아옵니다.
cd ~/tensorflow/models/research

python3 object_detection/export_tflite_graph_tf2.py --pipeline_config_path ../../my_model/ssd_mobilenet_v2_320x320_coco17_tpu-8/pipeline.config --trained_checkpoint_dir ../../my_model/ssd_mobilenet_v2_320x320_coco17_tpu-8/checkpoint --output_directory ../../my_model/ssd_mobilenet_v2_320x320_coco17_tpu-8/ssd_export

Step 2: Convert to TFLite

cd ~/tensorflow/my_model/ssd_mobilenet_v2_320x320_coco17_tpu-8
mkdir tflite
tflite_convert --output_file tflite/ssd_mobilenet_v2_320x320.tflite --saved_model_dir ssd_export/saved_model

cd tflite


그러면 ssd_mobilenet_v2_320x320.tflite 파일이 생성되었음을 확인 할 수있습니다.

해당 파일은 Netron을 통해서 모델의 구조를 확인 할 수 있습니다.

Netron을 통해 확인 한 구조 첨부합니다


감사합니다~

반응형