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

本文主要介紹軟件SDK部署方案。
部署SDK主要是通過庫(kù)文件(windows系統(tǒng)為DLL文件,linux系統(tǒng)為SO文件),提供本平臺(tái)訓(xùn)練好的深度模型的調(diào)用和推理功能, 方便用戶集成到自己的軟件系統(tǒng)中去,另外除部署必須的庫(kù)文件和配置文件,網(wǎng)站也提供免費(fèi)的UI(用戶界面)模塊下載,此模塊配合SDK模塊使用,可連接系統(tǒng)攝像頭和工業(yè)相機(jī),提供圖形化界面,可以直接導(dǎo)入訓(xùn)練好的模型進(jìn)行檢測(cè),方便用戶快速驗(yàn)證模型和測(cè)試相機(jī),另外也可通過UI模塊連接相機(jī)采集訓(xùn)練圖片。UI模塊非集成必須模塊。
網(wǎng)站提供SDK包和SDK+UI集成包下載,如需圖形界面顯示,或需要連接工業(yè)相機(jī)或系統(tǒng)攝像頭,請(qǐng)下載SDK+UI集成包,如果需要做模型部署集成,不需要界面及攝像頭連接,請(qǐng)下載SDK包。
SDK包有兩種版本,一種是缺省的版本,不帶GPU加速支持的,僅使用CPU推理,
一種是帶GPU加速支持的,可使用NVIDIA公司的GPU加速推理速度,
兩種版本接口完全相同,區(qū)別在于GPU版本推理速度快很多,提供給運(yùn)行速度有要求的用戶使用,
具體運(yùn)行速度因GPU卡型號(hào)有差異,具體速度看下面的性能數(shù)據(jù)表。
GPU版本運(yùn)行時(shí)需要額外安裝NVIDIA的CUDA軟件環(huán)境,如果不用GPU推理建議下載缺省SDK版本。
下載文件為zip格式壓縮包,每個(gè)壓縮包均有對(duì)應(yīng)的SHA256校驗(yàn)碼,下載文件后請(qǐng)?jiān)诒镜赜?jì)算對(duì)比校驗(yàn)碼,確保下載的壓縮包是完整的。
| SDK+UI集成包下載: | SDK+UI集成包 SHA256: 3b6d80dc1a0c5e0b169dc41ec587d2d714e7b023221468ca45610052e0beb132 |
| SDK包下載: | SDK包 SHA256: bdf3d909bc43532279c07f582fa5a5604155aadd983dd10559234ffa262d085d |
| SDK GPU版下載: | SDK GPU版 SHA256: f94b2269f44359bac8735ec133b000b24b4e3811efa2ae3e5ca48d676caaf7e7 |
SDK可運(yùn)行在兩種授權(quán)模式下:正式授權(quán)和試用授權(quán),
兩種模式下功能,性能和接口沒有差別,只有授權(quán)方式的差別。
正式授權(quán)通過購(gòu)買授權(quán)文件來(lái)授權(quán),授權(quán)綁定機(jī)器,供用戶正式環(huán)境部署使用。
試用授權(quán)無(wú)需購(gòu)買授權(quán),需要通過網(wǎng)絡(luò)授權(quán),運(yùn)行時(shí)必須保持互聯(lián)網(wǎng)連接,供用戶測(cè)試評(píng)估使用。
用戶可以先用試用授權(quán),需要正式部署時(shí),只要把授權(quán)文件拷貝到SDK所在目錄即可切換為正式授權(quán)。
詳細(xì)授權(quán)說(shuō)明請(qǐng)閱讀SDK包中的“SDK說(shuō)明文檔.txt”
| 推理硬件 | 單張圖片推理時(shí)間 | COCO 2017 mAP0.5 | COCO 2017 mAP0.5:0.95 | 備注 |
| CPU | 150ms | 56% | 36% | 圖片像素:512X512 性能測(cè)試命令: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 |
說(shuō)明:
識(shí)別精度數(shù)據(jù)是在COCO 2017數(shù)據(jù)集(http://cocodataset.org)上評(píng)估的,輸入圖片像素512X512下的mAP0.5 和mAP0.5:0.95數(shù)據(jù)
測(cè)試環(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ū)動(dòng)版本:516.59
SDK+UI集成包下載后無(wú)需安裝,直接解壓即可運(yùn)行UI。windows系統(tǒng)下可雙擊解壓后目錄下的run_ui.bat文件

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

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

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

訓(xùn)練好的模型文件下載是在網(wǎng)站平臺(tái)的模型訓(xùn)練管理界面,
不清楚的可點(diǎn)此鏈接閱讀訓(xùn)練說(shuō)明:模型訓(xùn)練說(shuō)明
以及標(biāo)注說(shuō)明:模型標(biāo)注說(shuō)明

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

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

點(diǎn)擊"連續(xù)識(shí)別"將在視頻流中進(jìn)行連續(xù)識(shí)別:

點(diǎn)擊“圖片識(shí)別”將打開文件選擇對(duì)話框,用戶選擇一張本地圖片文件后,程序進(jìn)行識(shí)別并顯示:

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

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

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

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

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

或者僅指定ROI長(zhǎng)寬,然后在相機(jī)畫面中拖動(dòng)選擇位置即可

"曝光"配置框:可配置相機(jī)的曝光和增益值,可手工指定增益值和曝光時(shí)間,也可選擇自動(dòng)增益和曝光。
“高級(jí)設(shè)置”標(biāo)簽頁(yè)中包括如下設(shè)置:

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

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

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

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