深度學習是近幾年隨著深度神經(jīng)網(wǎng)絡技術(shù)的突破而發(fā)展的一項新興技術(shù),尤其是在圖像識別領域,具有非常廣泛的應用前景,深度學習在很多場景下都突破了傳統(tǒng)圖像識別算法的應用界限,同時具有適應性強,定制成本低(無需圖像算法專業(yè)知識)等優(yōu)勢。
深度學習技術(shù)發(fā)展時間比較短,其核心技術(shù),包括標注,訓練,部署這三大環(huán)節(jié),目前非專業(yè)用戶尚難以自行構(gòu)建,造成了深度學習難以普及,深道科技為解決這個痛點,集自身之所長,融合各項最先進的軟件技術(shù),由人工智能大賽冠軍團隊研發(fā)推出了深度學習標注訓練部署一體化平臺,可以幫助非專業(yè)用戶迅速訓練出適用于自身場景的深度學習模型。提高工作效率。
整個定制訓練過程包括兩個部分:在線訓練和離線部署。
在線訓練:用戶通過網(wǎng)站進行圖像的標注,訓練啟動,模型測試等環(huán)節(jié),可以反復迭代測試模型效果。
離線部署:用戶下載訓練效果滿意的模型到Edgeideal計算盒進行部署。也可提供純軟件SDK部署方案。
主要流程環(huán)節(jié)如下圖所示:

本文主要介紹軟件SDK部署方案。
部署SDK主要是通過庫文件(windows系統(tǒng)為DLL文件,linux系統(tǒng)為SO文件),提供本平臺訓練好的深度模型的調(diào)用和推理功能, 方便用戶集成到自己的軟件系統(tǒng)中去,另外除部署必須的庫文件和配置文件,網(wǎng)站也提供免費的UI(用戶界面)模塊下載,此模塊配合SDK模塊使用,可連接系統(tǒng)攝像頭和工業(yè)相機,提供圖形化界面,可以直接導入訓練好的模型進行檢測,方便用戶快速驗證模型和測試相機,另外也可通過UI模塊連接相機采集訓練圖片。UI模塊非集成必須模塊。
網(wǎng)站提供SDK包和SDK+UI集成包下載,如需圖形界面顯示,或需要連接工業(yè)相機或系統(tǒng)攝像頭,請下載SDK+UI集成包,如果需要做模型部署集成,不需要界面及攝像頭連接,請下載SDK包。
SDK包有兩種版本,一種是缺省的版本,不帶GPU加速支持的,僅使用CPU推理,
一種是帶GPU加速支持的,可使用NVIDIA公司的GPU加速推理速度,
兩種版本接口完全相同,區(qū)別在于GPU版本推理速度快很多,提供給運行速度有要求的用戶使用,
具體運行速度因GPU卡型號有差異,具體速度看下面的性能數(shù)據(jù)表。
GPU版本運行時需要額外安裝NVIDIA的CUDA軟件環(huán)境,如果不用GPU推理建議下載缺省SDK版本。
下載文件為zip格式壓縮包,每個壓縮包均有對應的SHA256校驗碼,下載文件后請在本地計算對比校驗碼,確保下載的壓縮包是完整的。
| SDK+UI集成包下載: | SDK+UI集成包 SHA256: 3b6d80dc1a0c5e0b169dc41ec587d2d714e7b023221468ca45610052e0beb132 |
| SDK包下載: | SDK包 SHA256: bdf3d909bc43532279c07f582fa5a5604155aadd983dd10559234ffa262d085d |
| SDK GPU版下載: | SDK GPU版 SHA256: f94b2269f44359bac8735ec133b000b24b4e3811efa2ae3e5ca48d676caaf7e7 |
SDK可運行在兩種授權(quán)模式下:正式授權(quán)和試用授權(quán),
兩種模式下功能,性能和接口沒有差別,只有授權(quán)方式的差別。
正式授權(quán)通過購買授權(quán)文件來授權(quán),授權(quán)綁定機器,供用戶正式環(huán)境部署使用。
試用授權(quán)無需購買授權(quán),需要通過網(wǎng)絡授權(quán),運行時必須保持互聯(lián)網(wǎng)連接,供用戶測試評估使用。
用戶可以先用試用授權(quán),需要正式部署時,只要把授權(quán)文件拷貝到SDK所在目錄即可切換為正式授權(quán)。
詳細授權(quán)說明請閱讀SDK包中的“SDK說明文檔.txt”
| 推理硬件 | 單張圖片推理時間 | COCO 2017 mAP0.5 | COCO 2017 mAP0.5:0.95 | 備注 |
| CPU | 150ms | 56% | 36% | 圖片像素:512X512 性能測試命令:demo.exe deepideal.dll config.yaml test1.jpg 1000 0 |
| NVIDIA GeForce GTX 750 Ti | 33ms | |||
| NVIDIA GeForce GTX 1080 Ti | 16ms | |||
| NVIDIA GeForce 940MX | 100ms |
說明:
識別精度數(shù)據(jù)是在COCO 2017數(shù)據(jù)集(http://cocodataset.org)上評估的,輸入圖片像素512X512下的mAP0.5 和mAP0.5:0.95數(shù)據(jù)
測試環(huán)境配置:
CPU: Intel Core i5-6600 3.30G
內(nèi)存: 8GRAM
操作系統(tǒng):Win10 Pro 21H2
硬盤:Samsung SSD 850 EVO M.2 250GB
CUDA版本:11.3.1
CUDNN版本:8.4.1
顯卡驅(qū)動版本:516.59
SDK+UI集成包下載后無需安裝,直接解壓即可運行UI。windows系統(tǒng)下可雙擊解壓后目錄下的run_ui.bat文件

UI將啟動,如果windows自帶的攝像頭可用,UI將自動打開該攝像頭并顯示畫面:

UI的主要功能包括:
1 導入深道科技網(wǎng)站訓練后下載的模型文件
2 可直接打開當前操作系統(tǒng)已安裝的攝像頭,比如usb免驅(qū)攝像頭
3 可直接打開支持GenICam標準協(xié)議的工業(yè)相機,通過網(wǎng)絡進行相機訪問
4 可通過打開的攝像頭抓拍圖片進行識別,測試模型識別效果,
5 可直接打開圖片文件進行識別,測試模型識別效果
6 可通過攝像頭采集訓練圖片
下面介紹各菜單的具體操作:
"文件"菜單實現(xiàn)功能1:導入模型文件,包括“導入模型”和“關閉”,“關閉”即為關閉退出UI程序。

“導入模型”可導入從網(wǎng)站下載的訓練好的模型文件供UI使用。點擊該菜單將打開文件選擇對話框,用戶可選擇下載的文件,然后點擊“打開”按鈕,UI將會執(zhí)行導入操作,如導入成功將顯示成功提示,此時需要關閉UI并重啟,新導入的模型才能生效:

訓練好的模型文件下載是在網(wǎng)站平臺的模型訓練管理界面,
不清楚的可點此鏈接閱讀訓練說明:模型訓練說明
以及標注說明:模型標注說明

“攝像頭設備”菜單實現(xiàn)功能2:打開系統(tǒng)已安裝攝像頭,點擊將會自動識別并列出系統(tǒng)已安裝的攝像頭,如為USB免驅(qū)攝像頭可即插即用。點擊對應攝像頭菜單將在主界面顯示攝像頭畫面。當前選定打開的攝像頭菜單前面會顯示圓點標記。

主界面右側(cè)“識別”和“采集”標簽頁實現(xiàn)功能4和6:抓拍圖片識別,以及采集訓練圖片
主界面圖像缺省狀態(tài)下會顯示攝像頭或工業(yè)相機的實時視頻流,用戶可據(jù)此畫面調(diào)節(jié)相機。
“識別”標簽頁中,點擊“抓拍識別”將抓拍一張圖片并用之前導入的模型進行識別,識別結(jié)果將自動保存到系統(tǒng)圖片目錄下,并在窗體底部狀態(tài)欄顯示具體保存位置。
識別結(jié)果將以紅色矩形框標出,左上角顯示目標名稱以及置信度(置信度取值為0到1之間):

點擊"連續(xù)識別"將在視頻流中進行連續(xù)識別:

點擊“圖片識別”將打開文件選擇對話框,用戶選擇一張本地圖片文件后,程序進行識別并顯示:

以上識別功能都將在主界面顯示識別后的圖片,點擊“重置”將清除之前顯示的識別圖片,回到初始狀態(tài),即顯示當前攝像頭的實時畫面。
“采集”標簽頁主要是為方便采集訓練圖片使用的,點擊“抓拍”按鈕將抓拍一張當前攝像頭的畫面并保存到系統(tǒng)圖片目錄。點擊“連續(xù)抓拍”將以固定時間間隔抓拍圖像并保存,點擊“重置”將恢復初始攝像頭實時畫面。

“工業(yè)相機”菜單實現(xiàn)功能3,打開支持GenICam標準協(xié)議的工業(yè)相機(目前僅支持網(wǎng)絡接口相機)。
在使用UI程序?qū)庸I(yè)相機之前,需要先配置好工業(yè)相機的網(wǎng)絡IP地址,最好設置為固定IP。確保工業(yè)相機和UI程序運行的主機在同一網(wǎng)段下,都使用有線網(wǎng)絡,UDP協(xié)議包可以正常發(fā)送接收。
另外需要關閉操作系統(tǒng)防火墻,Win10下參考如下操作:開始->設置->更新和安全->Windows安全中心->防火墻和網(wǎng)絡保護->公用網(wǎng)絡

確保如上圖紅圈位置的選項是“關”的狀態(tài)。
UI上點擊“工業(yè)相機”菜單將展開如下子菜單:

其中“刷新列表”將掃描主機網(wǎng)絡內(nèi)連接的所有網(wǎng)絡接口的工業(yè)相機,并自動列出在菜單下半部分。
上圖顯示已掃描到兩臺工業(yè)相機,菜單下半部將顯示相機型號和ID。點擊對應的菜單將打開該相機并在主界面顯示相機的實時視頻流畫面,同時在對應菜單上顯示圓點表示當前打開的相機。再次點擊帶圓點的菜單,將關閉該工業(yè)相機。跟攝像頭菜單操作類似。
“設置”菜單可以對工業(yè)相機進行參數(shù)設置
工業(yè)相機參數(shù)設置比較多,主要分為“基本設置”,“高級設置”和“相機功能”,其中“相機功能為"相機所支持的GenICam協(xié)議中的功能樹,每個品牌相機支持的功能樹不一樣,所以該界面將隨不同相機而不同。
“基本設置”標簽頁中包括如下設置:

“相機”配置框:
“當前相機”:列表中當前選定的相機,點擊刷新可重新刷新網(wǎng)絡中的相機列表
“幀率”:設定的相機拍攝幀率,但可能實際幀率會有不同,取決與相機是否支持該設置
“像素格式”:該工業(yè)相機所支持的像素格式
“數(shù)據(jù)包字節(jié)數(shù)”:相機網(wǎng)絡接口發(fā)送網(wǎng)絡包的字節(jié)數(shù),字節(jié)數(shù)越大,傳輸速度越快,可以支持的幀率就越高,但不能超過下面顯示的網(wǎng)絡MTU大小
“網(wǎng)絡MTU”:列出用戶界面程序運行主機的網(wǎng)絡接口及MTU(Max Transmission Unit)大小,該參數(shù)非工業(yè)相機配置項,是屬于網(wǎng)卡的配置項,建議在網(wǎng)卡配置中修改,最好大于3000
"圖像ROI"配置框:
ROI是Region Of Interest,即在整個拍攝圖片中僅選擇返回感興趣部分畫面,ROI為任一矩形框,可指定左上角的坐標和矩形框的寬度及高度。ROI的設置支持手工輸入和在實時相機畫面中選取(此時工業(yè)相機需要處于打開并正常顯示實時畫面的狀態(tài))。點擊“選取”按鈕,即可在主界面顯示的相機畫面中點擊并拉動鼠標畫出想要的ROI位置:

或者僅指定ROI長寬,然后在相機畫面中拖動選擇位置即可

"曝光"配置框:可配置相機的曝光和增益值,可手工指定增益值和曝光時間,也可選擇自動增益和曝光。
“高級設置”標簽頁中包括如下設置:

“圖像變換”可以對原始圖像進行一些簡單的變化操作,如顏色反轉(zhuǎn),翻轉(zhuǎn),旋轉(zhuǎn)等
“其他圖像設置”和“程序設置”是關于圖像算法的一些高級設置,移動鼠標到對應的選項上有對應解釋
“相機功能”標簽頁中展示了當前相機支持的GenICam協(xié)議中的功能樹:

“保存相機功能設置”可將相機的功能樹保存為文本文件
“載入相機功能設置”可將保存的文本文件重新設置到相機
注意有些載入設置回相機的時候可能出現(xiàn)失敗情況,因為可能相機不一定支持該配置的修改,或者配置之間有依賴關系,設置的順序不一定滿足要求,如失敗可從文本文件中手動刪除失敗部分配置項再重試。
SDK包下載后無需安裝,直接解壓即可運行demo程序。demo程序是用來演示基本調(diào)用,同時也可以檢查環(huán)境是否匹配并可用,也附帶了源碼文件demo.cpp,windows系統(tǒng)下可雙擊解壓后目錄下的run_sdk.bat文件

如輸出文字中有"result": "detection finished"字符串即為SDK工作正常。

SDK提供C調(diào)用接口,可通過動態(tài)加載庫文件的方式進行函數(shù)調(diào)用,無需編譯期庫文件,具體調(diào)用方式可閱讀解壓目錄中的“SDK說明文檔.txt”,以及參考解壓后的demo.cpp文件。
SDK GPU版本可以提供比CPU版本快很多的推理速度,供需要高性能推理的用戶使用。但需要安裝NVIDIA公司的GPU卡,驅(qū)動程序,以及CUDA,CUDNN軟件包,不然SDK加載會失敗。考慮到兼容性,用戶需要安裝指定的CUDA和CUDNN版本。
GPU卡需要支持CUDA環(huán)境,并且Compute Capability需要在3.5以上,GPU型號所對應的Compute Capability值可在NVIDIA官網(wǎng)查詢到:https://developer.nvidia.com/cuda-gpus
CUDA及驅(qū)動:下載版本為11.3.1的CUDA安裝包,里面包含了GPU驅(qū)動,下載鏈接:
下載之后運行,按屏幕提示缺省安裝就可以。
CUDNN:下載版本為8.4.1的CUDNN安裝包,下載鏈接:
解壓后將bin目錄下所有文件拷貝到剛才CUDA安裝目錄的bin目錄下即可
(該下載鏈接需要在NVIDIA網(wǎng)站注冊開發(fā)者賬號,如不想注冊也可聯(lián)系我們提供已下載好的CUDNN安裝包)
如對深道科技產(chǎn)品有興趣或需要支持,可微信掃碼添加Deepideal小助手微信進一步溝通:
