前言:在移植opencv 3.3.0的過程中發現還有dnn(深層神經網路)模組,順便就在pc上測試了其效能,沒有gpu,所以只有用e3-1230v2 將就試了,從目前的介面上看貌似也不支援gpu加速。
1、使用cmake-gui設定編譯選項時,記得把build_example和dnn相關的都勾選上
2、編譯好之後,在build/bin/路徑下就有存放的dnn的測試用例,目前只有以下幾個
3、條件有限,只會caffe的使用,所以就測試了基於caffe模型的googlenet與vgg-ssd
4、下一步計畫在嵌入式平台中測試執行速度,雖然肯定知道沒hi3559a的npu快,但是還是值得比較。目前在桌面領域的dnn網路部署已經沒有任何效能瓶頸了,主要是看每個公司的後期軟體處理如何以及如何依靠dnn幫助客戶解決困難。而在嵌入式平台,由於功耗效能的約束,cpu的計算能力還不足以執行規模較大的dnn,再加上每個嵌入式平台的硬體廠商都用自己的小算盤,所以路還能長,但畢竟是大勢所趨,只有「端ai「和」雲ai」的緊密協作,才能做出跨時代的產品!
5、嵌入式平台測試記錄(9.11更新)
cortex a73*2+cortex a53*2,分類網路450ms,標準的vgg-ssd檢測網路記憶體要求較高(大於300mb),直接被oom kill掉了
用opencv的dnn模組做yolov5目標檢測
在yolov5之前的yolov3和yolov4的官方 都是基於darknet框架的實現的,因此opencv的dnn模組做目標檢測時,讀取的是.cfg和.weight檔案,那時候編寫程式很順暢,沒有遇到bug。但是yolov5的官方 是基於pytorch框架實現的,但是opencv的dnn模組不支援讀...
OpenCV中GPU模組使用
cuda基本使用方法 在介紹opencv中gpu模組使用之前,先回顧下cuda的一般使用方法,其基本步驟如下 1.主機 執行 2.傳輸資料到gpu 3.確定grid,block大小 4.呼叫核心函式,gpu執行程式 5.傳輸結果到cpu 6.繼續主機 執行。下圖是兩個向量相加的簡單示例程式和處理流圖...
opencv中gpu模組的使用
cuda基本使用方法 在介紹opencv中gpu模組使用之前,先回顧下cuda的一般使用方法,其基本步驟如下 1.主機 執行 2.傳輸資料到gpu 3.確定grid,block大小 4.呼叫核心函式,gpu執行程式 5.傳輸結果到cpu 6.繼續主機 執行。下圖是兩個向量相加的簡單示例程式和處理流圖...