海思3559使用Yolov3進行目標檢測

2021-10-21 21:29:41 字數 2004 閱讀 2333

1、實驗環境

ubuntu虛擬機器+一根網線+usb轉串列埠+小相機(支援imx334等,可以檢視)

2、資料準備

《himpp v4.0 **處理軟體開發參考.pdf》

這個資料主要介紹了影象是通過什麼方式進行輸入,處理,以及輸出的。

vi-vpss-vo,venc和vdec,vgs畫圖等

《hisvp開發指南.pdf》

這個資料主要介紹如何使用nnie模組進行影象處理,以及ruyistudio的安裝和使用教程。

《hisvp api 參考.pdf》等

api等資料可以編寫**的時候在重點關注。

推薦想學習的朋友看一下劉山老師的部落格,很有幫助。

本教程只是使用預訓練的yolov3模型生成的.wk檔案,只能作為乙個初學者入門。真正要學會掌握需要很長的路去學習。由於ubuntu下的vim開發不夠熟練,所以我是在ubuntu下安裝了乙個vscode編譯器進行開發。

3、整體思路

借鑑rfcn的輸入輸出模式進行修改即可。

4、具體實現

三板斧1>模型初始化

2>硬體初始化

3>軟體引數初始化

軟體引數初始化裡面,如果今後要修改模型,需要將對應的軟體引數進行修改

sample_comm_ive_startvivpssvencvo函式在common裡面,主要實現vi-vpss-vo的繫結操作。

sample_comm_sys_getpicsize函式主要得到影象的大小

這裡用的是yolov3,需要修改為416*416

該sample_svp_nnie_my_yolov3_vitovo函式是由rfcn對應的函式進行簡單修改得到的。

hi_mpi_vpss_getchnframe是從乙個通道獲取到影象資料,yolov3是通過兩路(上文結構已說明),所以使用兩個hi_mpi_vpss_getchnframe

獲取完影象資料之後,模型的引數主要通過sample_svp_nnie_my_yolov3_proc完成,裡面主要通過前向傳播的函式sample_svp_nnie_forward以及sample_svp_nnie_yolov3_getresult函式,得到了pstswparam的結構體的結果,裡面有strect,包含4個值,但是yolov3的引數結構體沒有定義,需要定義一下。

得到最終的檢測框strect,需要經過sample_svp_nnie_roitorect函式,裡面有vgs的模組,該模組主要功能如下所示:

5、如何編譯:

將cfg.mak.multicore改為cfg.mak即可在svp中的multi-core中進行編譯

6、實驗結果

yolo v3使用測試

yolov3 測試影象新增置信度與訓練bmp影象格式 2.yolo cfg檔案中各個引數的含義 3 批量測試並新增到自己的資料夾 參考部落格 其中第乙個存在的問題是,儲存的資料夾中影象沒有標記 問題是沒有新增畫框函式 void test detector char datacfg,char cfgf...

YOLOv3使用過程

系統 ubuntu18.04 gpu 1 如果使用gpu設定為1,cpu設定為0 cudnn 1 如果使用cudnn設定為1,否則為0 opencv 0 如果呼叫攝像頭,還需要設定opencv為1,否則為0 openmp 0 如果使用openmp設定為1,否則為0 debug 0 如果使用debug...

使用YOLOv3訓練VOC模型

yolo官網 本篇博文主要是參照官網步驟進行voc資料的訓練,博主也是更改接觸,如果有錯誤的地方,歡迎指正 操作環境 ubuntu 如果使用gpu需要安裝cuda和cudnn,應為我這邊環境已經裝好了,所以並沒有嘗試安裝 具體安裝步驟可以參考一篇部落格 git clone cd darknet ma...