Machine Learning

[Tensorflow Lite] - 객체 탐지(Object Detection Model)만들기_2. 모델 학습

BEOKS 2021. 3. 17. 15:55

들어가며

지난 시간에는 roboflow를 사용해서 데이터를 업로드하여 처리하는 방법에 대해서 알아보았다. 이번에는 데이터와 Tensorflow 프레임워크를 사용해서 모델을 만들어보도록 하겠다. 추가적으로 컨버터를 사용해서 Tensorflow Lite 모델까지 변환하는 방법에 대해서 알아보도록 하겠다. (이 장에서는 필수적으로 수정해야 할 부분에 대해서만 언급하겠다. 코드에 대해서 자세히 알고 싶다면 Colab내부의 주석을 참고하도록 하자)

데이터 다운로드

colab.research.google.com/drive/1aIobwtqWggRbLbe606_WzVGtFiWZT9tr?usp=sharing

 

Roboflow-TFLite-Object-Detection_Bicycle_Helmet.ipynb

Colaboratory notebook

colab.research.google.com

위 링크는 모델을 학습시키고 Tensorflow Lite 모델로 변환하기 위한 모든 코드가 포함되어있다. 

Prepare Data부분에서 위와 같은 코드를 찾을 수 있을 것이다. 여기에 이전 장에서 진행했던 Roboflow 데이터셋의 링크를 삽입해야 한다. Roboflow 튜토리얼을 잘 따랐다면 대시보드에 자신이 만든 버전이 있는 것을 확인할 수 있을 것이다. 

여기에서 Export Your Dataset부분에서 포맷을 정하고 링크를 받을 수 있는 부분이 있을 것이다.

우선 COCO포맷을 정한다음 GetLink를 클릭하게 되면 Jupyter탭에서 아래와 같은 부분이 나올 것이다.

 !curl -L "링크" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip

자신의 링크를 복사하여 colab에 [COCO Json Link Here!]라고 표시된 부분에 복사하도록 하자.

그리고 이번에는 Format을 Tensorflow TFRecord로 변경하여 위 과정을 반복한 후 [Tensorflow TFRecord Link Here!]라고 표시된 부분에 링크를 삽입하도록 한다. 이렇게 하면 데이터를 다운로드할 수 있다.

파일 이름 수정

Prepare tfrecord file 세션 아래의 코드를 보면 다음과 같은 코드가 있을 것이다.

각 roboflow에서 다운로드한 파일의 이름은 데이터셋에 따라서 다르기 때문에 여기에 자신이 설명한 데이터셋 이름을 업데이트해주어야 한다. colab 내부에 해당 경로를 따라가서 자신의 파일이 어떤 이름으로 정해져 있는지 확인 후 업데이트하도록 하자.

마무리

특별한 에로사항이 없다면 위에서 언급한 코드만 바꾸어 주어도 자동으로 모델을 학습하고 Tensorflow Lite로 모델을 변경한 다음 자신의 드라이브에 모델을 업데이트할 것이다. 만약 어떤 에러가 발생한다면 github.com/BEOKS/Bicycle-Helmet-Wearing-Detection 여기에 issue를 써준다면 수정하도록 하겠다.

Reference

1. How to Train a Custom TensorFlow Lite Object Detection Model, https://blog.roboflow.com/how-to-train-a-tensorflow-lite-object-detection-model/

 

How to Train a Custom TensorFlow Lite Object Detection Model

In this post, we walk through the steps to train and export a custom TensorFlow Lite object detection model with your own object detection dataset to detect your own custom objects. If you need a fast model on lower-end hardware, this post is for you. Whet

blog.roboflow.com

2. MobileNet SSD, https://github.com/tensorflow/models/tree/master/research/object_detection

 

tensorflow/models

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

github.com