들어가며

지난 시간까지 데이터를 수집하고 Tensorflow Lite 모델을 만드는 과정까지 진행해보았다. 이번에는 이 모델 파일을 Android에 삽입해서 실제 구동까지 진행해보도록 하겠다.

TFlite 모델에 메타데이터 추가하기

이 부분 때문에 필자는 몇 시간동안 삽질을 했다. 이전 장에서 만든 .tflite 파일을 그대로 안드로이드에 사용하게 되면 에러가 발생한다:(. 구글링을 하고 stack overflow에 업로드하는 등 여러 노력을 통해서 솔루션을 찾아냈다. 에러의 내용은 tflite모델에 NormalizationOptions이 추가되어 있어야 한다는 뜻이었다. 이는 메타 데이터의 일종인데 이를 삽입하기 위해선 추가적인 작업이 필요했다.

addMetaData.ipynb
0.01MB

위 코드를 사용하면 필요한 메타 데이터를 추가 할 수 있다. 코드를 보면 아래의 부분을 볼 수 있는데 여기에 자신이 메타데이터를 추가할 tflite 파일과 label.txt의 경로를 지정한 후 그대로 실행시켜주면 된다.

Android Studio Demo APP에 삽입하기

자 이제 마지막 단계이다. github.com/tensorflow/examples/tree/master/lite/examples/object_detection/android이 링크에 들어가게 되면 Android에서 Object Detection 모델을 실행할 수 있는 코드를 다운로드할 수 있다. Readme의 지침을 잘 따라서 모델을 Asset 디렉터리에 삽입하게 되면 비로소 모델을 실행시킬 수 있을 것이다.

 

마무리

예전 코드를 참조해서 그런지 필자는 중간에 여러번 에러가 발생해서 굉장히 힘들었다... 이 글을 본 사람들은 부디 필자처럼 삽질을 하지 않았으면 좋겠다. ㅎㅎ 지금까지 안드로이드에서 동작하는 Object Detection 애플리케이션을 만드는 과정이었다.

Reference

1. www.tensorflow.org/lite/convert/metadata

 

TensorFlow Lite 모델에 메타 데이터 추가

TensorFlow Lite 메타 데이터는 모델 설명에 대한 표준을 제공합니다. 메타 데이터는 모델이 수행하는 작업과 입력 / 출력 정보에 대한 중요한 지식 소스입니다. 메타 데이터는 TensorFlow Lite 호스팅 모

www.tensorflow.org

2. github.com/tensorflow/examples/tree/master/lite/examples/object_detection/android

 

tensorflow/examples

TensorFlow examples. Contribute to tensorflow/examples development by creating an account on GitHub.

github.com

 

+ Recent posts