91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

YOLOv3-tiny怎么在VS2015上使用Openvino部署

發布時間:2021-11-10 11:01:27 來源:億速云 閱讀:131 作者:柒染 欄目:大數據

YOLOv3-tiny怎么在VS2015上使用Openvino部署,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

前言

前幾天加了兩個Openvino群,準備請教一下關于Openvino對YOLOv3-tiny的int8量化怎么做的,沒有得到想要的答案。但缺發現有那么多人Openvino并沒有用好,都是在網絡上找資料,我百度了一下中文似乎沒有靠譜的目標檢測算法的部署資料,實際上這個并不難,用官方提供的例子改一改就可以出來。所以我答應了幾個同學寫一個部署流程希望對想使用Openvino部署YOLOv3-tiny(其他目標檢測算法類推)到cpu或者Intel神經棒上(1代或者2代)都是可以的。

 

YOLOv3-tiny模型訓練

這部分我就不過多介紹了,我使用的是AlexeyAB版本darknet訓練的YOLOv3-tiny模型(地址見附錄),得到想要的weights文件,并調用命令測試圖片的檢測效果無誤。

Darknet模型轉pb模型

  • 克隆OpenVINO-YoloV3 工程,完整地址見附錄。
  • 修改工程下面的coco.names改成和自己訓練的時候一樣。
  • 確保你要使用的python環境有tensorflow版本,1.8和1.9應該都沒什么問題。
  • 執行:
python3 convert_weights_pb.py
--class_names voc.names
--weights_file yolov3_tiny_200000.weights
--data_format NHWC
--tiny --output_graph frozen_tiny_yolo_v3.pb
 
  • 不出意外會在你的OpenVINO-YoloV3文件下生成了frozen_tiny_yolo_v3.pb文件,這個文件就是我們需要的pb文件。
 

在Windows上將pb文件轉換為IR模型

我這里使用了OpenVINO2019.1.087,只要OpenVINO某個版本里面extension模塊包含了YOLORegion Layer應該都是可以的。轉換步驟如下:

  • 拷貝frozen_tiny_yolo_v3.pb到OpenVINO所在的     F:\IntelSWTools\openvino_2019.1.087\deployment_tools\model_optimizer文件夾下,注意這個文件夾是我安裝OpenVINO的路徑,自行修改一下即可。
  • 新建一個yolov3-tiny.json文件,放在     F:\IntelSWTools\openvino_2019.1.087\deployment_tools\model_optimizer文件夾下。內容是,注意一下里面classes是你的數據集中目標類別數:
[
 {
   "id": "TFYOLOV3",
   "match_kind": "general",
   "custom_attributes": {
     "classes": 3,
     "coords": 4,
     "num": 6,
     "mask": [0,1,2],
     
     "anchors":[10,14,23,27,37,58,81,82,135,169,344,319],
     "entry_points": ["detector/yolo-v3-tiny/Reshape","detector/yolo-v3-tiny/Reshape_4"]
   }
 }
]
 
  • 在     F:\IntelSWTools\openvino_2019.1.087\deployment_tools\model_optimizer文件夾下,執行下面的命令來完成pb文件到OpenVINO的IR文件轉換過程。
python mo_tf.py --input_model frozen_darknet_yolov3_model.pb
--tensorflow_use_custom_operations_config yolo_v3_tiny.json
--input_shape=[1,416,416,3]  --data_type=FP32
 
  • 不出意外的話就可以獲得     frozen_darknet_yolov3_model.bin和     frozen_darknet_yolov3_model.xml了。
 

利用VS2015配合OpenVINO完成YOLOv3-tiny的前向推理

因為yolov3-tiny里面的yoloRegion Layer層是openvino的擴展層,所以在vs2015配置libinclude文件夾的時候需要把cpu_extension.libextension文件夾加進來。最后includelib文件夾分別有的文件如下:

  • include文件夾:     YOLOv3-tiny怎么在VS2015上使用Openvino部署
  • lib文件夾:

YOLOv3-tiny怎么在VS2015上使用Openvino部署其中cpu_extension.lib在安裝了OpenVINO之后可能是沒有的,這時候就需要手動編譯一下。這個過程很簡單,我在后邊放了一個鏈接講得很清楚了。

includelib配置好之后就可以編寫代碼進行預測了。代碼只需要在OpenVINO-YoloV3工程的cpp目錄下提供的main.cpp稍微改改就可以了。因為我這里使用的不是原始的Darknet,而是AlexeyAB版本的darknet,所以圖像resize到416的時候是直接resize而不是letter box的方式。具體來說修改部分的代碼為:YOLOv3-tiny怎么在VS2015上使用Openvino部署然后除了這個地方,由于使用的YOLOv3-tiny,OpenVINO-YoloV3里面的cpp默認使用的是YOLOv3的Anchor,所以Anchor也對應修改一下:

YOLOv3-tiny怎么在VS2015上使用Openvino部署這兩個地方改完之后就可以順利完成前向推理過程了,經過我的測試,相比于原始的darknet測試結果在小數點后兩位開始出現差距,從我在幾千張圖片的測試結果來看,精度差距在1/1000到1/500,完全是可以接受的。

注意github上面的cpp那些打印信息都是沒有必要可以注釋掉,然后異步策略在測試時候也可以選擇不用,我改好了一個可以直接運行的cpp。

關于YOLOv3-tiny怎么在VS2015上使用Openvino部署問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文登市| 许昌市| 湖州市| 来宾市| 林周县| 麻栗坡县| 黑河市| 溆浦县| 富锦市| 沂南县| 怀柔区| 枣庄市| 平安县| 松桃| 岳西县| 金沙县| 历史| 滕州市| 舞阳县| 南部县| 荣昌县| 斗六市| 图木舒克市| 秦皇岛市| 衡南县| 波密县| 习水县| 无棣县| 宿州市| 车险| 格尔木市| 巧家县| 光泽县| 新绛县| 会理县| 东宁县| 荥经县| 大厂| 嫩江县| 潮安县| 玉树县|