<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic TF2 [Object Detection API] Converting mobilenet-SSD models into .tflite uint8 format in eIQ Machine Learning Software</title>
    <link>https://community.nxp.com/t5/eIQ-Machine-Learning-Software/TF2-Object-Detection-API-Converting-mobilenet-SSD-models-into/m-p/1345027#M486</link>
    <description>&lt;P&gt;&lt;STRONG&gt;1. Prepare the environment&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;pip install tensorflow==2.5.0&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;2. Install&amp;nbsp; tf2 Object detect API&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Make sure you have&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://grpc.io/docs/protoc-installation/#install-using-a-package-manager" rel="nofollow" target="_blank"&gt;protobuf compiler&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;version &amp;gt;= 3.0, by typing&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;protoc --version&lt;/CODE&gt;&lt;SPAN&gt;, or install it on Ubuntu by typing&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;apt install protobuf-compiler&lt;/CODE&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;git clone https://github.com/tensorflow/models.git

# remember to activate your python environment first
cd models/research
# compile protos:
protoc object_detection/protos/*.proto --python_out=.
# Install TensorFlow Object Detection API as a python package:
cp object_detection/packages/tf2/setup.py .
python -m pip install .&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;3. export tflite graph and convert to quante tflite module.&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;1) $cd models
   $wget http://download.tensorflow.org/models/object_detection/tf2/20200711/
ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz
2)tar -zxvf ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz
3)tar -zxvf convert.tar.gz&lt;/LI-CODE&gt;
&lt;P&gt;3.1&amp;nbsp; &amp;nbsp;modify export_tflite.sh&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;export_tflite.sh
1 model_dir=../ssd_mobilenet_v2_320x320_coco17_tpu-8 &amp;lt;--pre-trained model path 
2 out_dir=$model_dir/exported_tflite
3 mkdir -p $out_dir


&lt;/LI-CODE&gt;
&lt;P&gt;3.2&amp;nbsp; export tflite graph&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;./export_tflite.sh&lt;/LI-CODE&gt;
&lt;P&gt;Use &lt;STRONG&gt;EIQ toolkit&amp;nbsp;&lt;/STRONG&gt; model tool to open the saved model, the input tensor shape is 300x300&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gnar_fang_0-1632395542817.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/157071i52CFAFAEA422D3E1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="gnar_fang_0-1632395542817.png" alt="gnar_fang_0-1632395542817.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;3.3&amp;nbsp; modify convert.py&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;line 3 TEST_DIR&amp;nbsp;&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; The parent directory of the sample images&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;line 4&amp;nbsp; IMAGE_SIZE&amp;nbsp; &lt;/STRONG&gt;The model input tensor shape&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;line 8&lt;/STRONG&gt; quante&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; The sample images folder&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;3.4&amp;nbsp; run converter script.&lt;/DIV&gt;
&lt;DIV&gt;&lt;LI-CODE lang="markup"&gt;python convert.py&lt;/LI-CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4. test performance on imx8mpevk&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;root@imx8mpevk:/usr/bin/tensorflow-lite-2.5.0/examples# ./label_image -m ~/ssd_mobilenet_v2_quant.tflite -a 1
INFO: Applied NNAPI delegate.
INFO: invoked
INFO: average time: 27.365 ms
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 23 Sep 2021 11:29:04 GMT</pubDate>
    <dc:creator>gnar_fang</dc:creator>
    <dc:date>2021-09-23T11:29:04Z</dc:date>
    <item>
      <title>TF2 [Object Detection API] Converting mobilenet-SSD models into .tflite uint8 format</title>
      <link>https://community.nxp.com/t5/eIQ-Machine-Learning-Software/TF2-Object-Detection-API-Converting-mobilenet-SSD-models-into/m-p/1345027#M486</link>
      <description>&lt;P&gt;This is a guide for Post trained quantization for SSD models.&lt;/P&gt;
&lt;P&gt;Take&amp;nbsp;&lt;A href="http://download.tensorflow.org/models/object_detection/tf2/20200711/ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz" rel="nofollow"&gt;SSD MobileNet v2 320x320&lt;/A&gt;&amp;nbsp;as an example.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Environment&lt;/P&gt;
&lt;P&gt;TensorFlow == 2.5&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Sep 2021 11:29:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/eIQ-Machine-Learning-Software/TF2-Object-Detection-API-Converting-mobilenet-SSD-models-into/m-p/1345027#M486</guid>
      <dc:creator>gnar_fang</dc:creator>
      <dc:date>2021-09-23T11:29:04Z</dc:date>
    </item>
  </channel>
</rss>

