TensorFlow lite를 이용한 실시간 수화 감지 안드로이드 애플리케이션
freezing infernce_graph
Freezing은 필요한 모든 것(그래프, 가중치 등)을 식별하여 쉽게 사용할 수 있는 단일 파일에 저장하는 프로세스입니다.python models/research/object_detection/exporter_main_v2.py \
--input_type image_tensor \
--pipeline_config_path /output/exported_models/training/001/pipeline.config \
--trained_checkpoint_dir output/exported_models/training/001/ \
--output_directory output/exported_models/inference_model
2. 그런 다음 모델을 tflite 추론 그래프로 변환합니다.
python models/research/object_detection/export_tflite_graph_tf2.py \
--pipeline_config_path output/exported_models/inference_model/inference_modelsaved_model/pipeline.config \
--trained_checkpoint_dir output/exported_models/inference_model/saved_model/checkpint \
--output_directory output/exported_models/tflite_infernce
3. 그런 다음 그래프를 양자화하고 tflite 모델을 저장합니다.
# save this file as postQuantization.py
def representative_dataset():
for _ in range(100):
data = np.random.rand(1, 320, 320, 3)
yield [data.astype(np.float32)]
import numpy as np
import tensorflow as tf
saved_model_dir = "output/exported_models/tflite_infernce/saved_model"
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.allow_custom_ops = True
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset
converter.inference_input_type = tf.uint8 # or tf.uint8
converter.inference_output_type = tf.uint8 # or tf.uint8
tflite_quant_model = converter.convert()
with tf.io.gfile.GFile(tf_lite_model_path, 'wb') as f:
f.write(tflite_quant_model)
4.Android와 함께 사용할 tflite 모델에 메타데이터를 작성합니다.
''' Writing MetaData to TfLite Model
save it as MetaDataWriterFile.py
'''
from tflite_support.metadata_writers import object_detector
from tflite_support.metadata_writers import writer_utils
from tflite_support import metadata
ObjectDetectorWriter = object_detector.MetadataWriter
_MODEL_PATH = <tf_lite_model_path>
_LABEL_FILE = <label_path>
_SAVE_TO_PATH = <path_to_tflite_path/tflite_with_metadata.tflite>
writer = ObjectDetectorWriter.create_for_inference(
writer_utils.load_file(_MODEL_PATH), [127.5], [127.5], [_LABEL_FILE])
writer_utils.save_file(writer.populate(), _SAVE_TO_PATH)
# Verify the populated metadata and associated files.
displayer = metadata.MetadataDisplayer.with_model_file(_SAVE_TO_PATH)
print("Metadata populated:")
print(displayer.get_metadata_json())
print("Associated file(s) populated:")
print(displayer.get_packed_associated_file_list())
5. TensorFlow GitHub 계정에서
Tensorflow-examples
리포지토리를 복제합니다.탐지를 위해 Android 앱을 사용하려면 Android Studio 및 SDK 파일을 다운로드하십시오.
git clone https://github.com/tensorflow/examples
tflite_with_metadata.tflite
파일을 복사하고 'detect.tflite and save it in the
app/src/main/assets/detect.tflite'로 이름을 바꿉니다.TF_OD_API_INPUT_SIZE
의 모델을 app\src\main\java\org\tensorflow\lite\examples\detection\DetectorActivity.java
에서 320으로 변경합니다.가상 장치를 만들거나 휴대폰을 연결하고 개체 감지 응용 프로그램을 성공적으로 실행하십시오.
이 기사가 도움이 되었다면 좋아요를 누르고 채널을 구독하여 더 많은 비디오와 기사를 만들도록 격려하십시오.
다음 글에서는 객체 감지를 위해 TensorFlow ssdMobilenet을 학습시키는 방법을 공유하겠습니다.
GitHub Link with all data including android app
American_sign_Language_detection
Download the APK for testing from Google Drive
Thanks to and Roboflow for the Dataset.
You can read awesome articles like this on Codeperfectplus
작성자의 더 많은 기사
- Mask RCNN Implementation for Image Segmentation on LabelMe Annotations Data
- Deploy Your First Django App With Heroku
- Single-layer Neural Networks in Machine Learning (Perceptrons)
- 5 Tips for Computer Programming Beginners
- What Is Git and GitHub?
- What is Simple Linear Regression?
- Introduction to Machine Learning and its Type.
주간 업데이트에 참여하세요.
Reference
이 문제에 관하여(TensorFlow lite를 이용한 실시간 수화 감지 안드로이드 애플리케이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codeperfectplus/real-time-sign-language-detection-android-application-using-tensorflow-lite-2d9g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)