zoukankan      html  css  js  c++  java
  • object detection模型转换成TensorFlow Lite,在Android应用

    环境

    tensorflow = 1.12.0
    bazel = 0.18.1
    ubuntu = 16.04
    python = 3.6.2

    安装 bazel (0.18.1)

    如果tensorflow是1.12.0,那么必须安装指定版本0.18.1的bazel,不然会出现很多的错误无法解决。

    wget https://github.com/bazelbuild/bazel/releases/download/0.18.1/bazel-0.18.1-installer-linux-x86_64.sh
    chmod +x bazel-0.18.1-installer-linux-x86_64.sh
    ./bazel-0.18.1-installer-linux-x86_64.sh --user

    下载tensorflow工程代码

    git clone https://github.com/tensorflow/tensorflow.git

    编译转换工具

    cd tensorflow/   
    bazel build tensorflow/python/tools:freeze_graph
    bazel build tensorflow/contrib/lite/toco:toco

    生成tflite_graph.pb文件

    cd models/research/object_detection

    python export_tflite_ssd_graph.py 
    --pipeline_config_path=data/ssd_mobilenet_v1_coco.config 
    --trained_checkpoint_prefix=data/training/model.ckpt-28189 
    --output_directory=data/output 
    --add_postprocessing_op=true

    利用bazel生成tflite文件

    bazel-bin/tensorflow/contrib/lite/toco/toco 
    --input_file=tflite_graph.pb 
    --output_file=detect.tflite 
    --input_shapes=1,300,300,3 
    --input_arrays=normalized_input_image_tensor 
    --output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' 
    --inference_type=QUANTIZED_UINT8 
    --mean_values=128 
    --std_values=128 
    --change_concat_input_ranges=false 
    --default_ranges_min=0 
    --default_ranges_max=6 
    --allow_custom_ops

    在Android上测试

    在下面的目录中有tensorflow lite的例子,可以替换原来的detect.tflite文件,修改对应的coco_labels_list.txt文件,建议改成不一样的名称,修改代码,不然运行的时候,detect.tflitecoco_labels_list.txt会重新下载,又被覆盖掉了




     
  • 相关阅读:
    NFS服务
    SSH服务
    DNS服务器
    FTP服务器
    linux(磁盘配额)
    linux(ACL权限控制)
    linux(日志)
    linux(系统安全)
    linux(进程和计划任务)
    linux(引导)
  • 原文地址:https://www.cnblogs.com/cnugis/p/11205860.html
Copyright © 2011-2022 走看看