간단하게 TensorFlow Lite 모델을 이용해 머신러닝 모델을 안드로이드 앱에 적용하고, CameraX 라이브러리를 이용해 실시간으로 이미지를 얻어와 분석하는 방법을 작성해보려고 한다.
앱에 이식할 머신러닝 모델을 준비해야 한다. 해당 포스팅에서는 TensorFlow Lite 모델을 이용할 것이며, 일반 모델 파일(.pb??)을 .tflite 파일로 변환해야 하는데, 관련 내용은 구글링 하면 잘 나온다.
간단하게 스텝만 써보면, 파이썬에서 tensorflow를 import 한 이후 tflite로 컨버팅 하면 된다.
모듈 범위 gradle에 tensorflow 관련 의존성을 추가해줘야 한다.
// build.gradle(Module:app)
implementation 'org.tensorflow:tensorflow-lite:2.13.0'
implementation 'org.tensorflow:tensorflow-lite-support:0.4.4'
또한 android{} 블럭 안에 아래 스크립트를 작성해야 한다.
tflite 파일의 압축을 막는 코드이다.
aaptOptions {
noCompress 'tflite'
}
프로젝트 assets 디렉토리에 이식하고자 하는 모델을 넣어줘야 한다.
assets 폴더가 없을경우 아래 아미지와 같이 디렉토리를 생성하면 된다.
이후 원하는 모델을 드래그&드롭, 복붙 등 원하는 방법으로 해당 디렉토리에 넣으면 사전 준비는 완료이다.