01什么是HALCON
MVTec HALCON 是一款在全球范圍內(nèi)使用,綜合性的機(jī)器視覺標(biāo)準(zhǔn)軟件。它有一個專門的集成開發(fā)環(huán)境(HDevelop),專門用于開發(fā)圖像處理解決方案。使用 MVTec HALCON,您可以:
受益于靈活的軟件架構(gòu)
加快所有可行的機(jī)器視覺應(yīng)用發(fā)展
保證快速進(jìn)入市場
持續(xù)地降低成本
作為一個綜合工具箱,HALCON 涵蓋了機(jī)器視覺應(yīng)用的整個工作流程。其核心是靈活而強(qiáng)大的圖像處理庫,其中有 2100 多個算子。HALCON 適用于所有行業(yè),并為圖像處理提供卓越性能。
02什么是 OpenVINO 工具套件
OpenVINO工具套件:一款可輕松實現(xiàn)“一次開發(fā),任意部署”的,用于AI模型優(yōu)化和部署的開源工具套件。
提高計算機(jī)視覺、自動語音識別、自然語言處理和其他常見任務(wù)的深度學(xué)習(xí)性能
使用經(jīng)過TensorFlow、PyTorch、PaddlePaddle等流行框架訓(xùn)練的模型
減少資源需求,并在從邊緣到云的一系列英特爾平臺上高效部署
03安裝 HALCON 和 OpenVINO
從 21.05 版本開始,HALCON 通過全新 HALCON AI加速器接口 (AI2),支持 OpenVINO 工具套件,從而支持 AI 模型在英特爾的硬件設(shè)備上實現(xiàn)推理計算加速。
HALCON通過全新 HALCON AI 加速器接口 (AI2):
當(dāng)前 HALCON 的 AI 模型對英特爾的硬件設(shè)備支持,如下表所示:
要實現(xiàn)使用 HALCON AI加速器接口在英特爾硬件設(shè)備上加速 AI 推理計算,只需要一次安裝 HALCON 和 OpenVINO,然后編寫 HALCON AI 推理程序即可。
3.1安裝 HALCON
官網(wǎng)注冊
登錄 MVTec 官網(wǎng) HALCON 軟件下載頁面(目前 HALCON 的最新版本是 23.11 Progress),如果沒有注冊過 MVTec 用戶賬號,需要先進(jìn)行注冊個人或企業(yè)賬號。(請注意此處需要使用公司郵箱注冊,其他私人郵箱會注冊失敗)。也可以查看下面的網(wǎng)頁,了解最新版本的更新信息:HALCON 23.11 新功能: MVTec Software。
下載并解壓
在官網(wǎng)下載完整版的安裝包(需要登陸賬號),下載 HALCON: MVTec Software。可以選擇產(chǎn)品的版本和操作系統(tǒng),此處以 Windows 平臺的最新版本 23.11 progress 為例。點擊圖中鏈接會自動開始下載,可自行使用工具加速。
下載完成后,解壓縮完成,打開對應(yīng)的文件夾,點擊 som.exe 文件,啟動 SOM(Software Manager)。
安裝設(shè)置
SOM 會使用默認(rèn)瀏覽器打開安裝界面,如果打開界面后未出現(xiàn)可選安裝項目,建議重啟電腦再次打開 som.exe。
可以點擊“語言” 按鈕切換界面語言, 點擊“環(huán)境” 按鈕修改一些設(shè)置,如程序和數(shù)據(jù)安裝路徑,倉庫地址等等,一般使用默認(rèn)值最好。
然后選擇“可獲得的”頁面,找到安裝包,點擊“安裝”按鈕, 上方按鈕是為當(dāng)前用戶安裝,下方是為所有用戶安裝(需要系統(tǒng)管理員權(quán)限),一般點選上方按鈕。
設(shè)備空間足夠的話(15G 以上),建議右側(cè)全選,全部安裝;點擊后等待安裝結(jié)束即可。
加載 license 文件
HALCON 軟件的運行還需要對應(yīng)的 license 加密文件,可以向 MVTec 官方購買正式版或者申請試用版。
然后,可以直接在 SOM 界面中加載 license 文件,點擊上圖中的紅色按鈕,可以打開下方界面進(jìn)行 license 文件的安裝和管理,將 license 文件直接拖入即可。
最后,在 Windows 桌面上找到 HALCON 集成開發(fā)環(huán)境 HDevelop 軟件圖標(biāo),即可正常使用 HALCON。
3.2安裝 OpenVINO 2021.4 LTS
請到 OpenVINO 官網(wǎng)下載并安裝 OpenVINO 2021.4.2,如下圖所示。
安裝完畢后,請將 OpenVINO 運行時庫的路徑添加到 Windows 的環(huán)境變量 path中。
第一步,運行:
C:Program Files (x86)Intelopenvino_2021.4.752insetupvars.bat path
左滑查看更多
獲取 OpenVINO 運行時庫的路徑,如下圖所示:
第二步,將 OpenVINO 運行時庫的路徑添加到環(huán)境變量 path中,如下圖所示:
到此,下載并安裝 OpenVINO,然后將 OpenVINO 運行時庫的路徑添加到 Windows 環(huán)境變量 path 中的工作全部完成。
注意:若您電腦所使用的 CPU 包含了集成顯卡,請在 BIOS 中把集成顯卡禁用掉。
04編寫 HALCON AI推理程序
4.1HALCON AI推理程序工作流程
關(guān)于 HALCON AI 推理程序工作流程,以 HALCON 的深度學(xué)習(xí)圖像分類為例,程序代碼為 HALCON 集成開發(fā)環(huán)境 HDevelop 的開發(fā)語言。
1. 讀取已訓(xùn)練完成的深度學(xué)習(xí)模型和預(yù)處理參數(shù):
* Read in the model and Param. read_dl_model (RetrainedModelFileName, DLModelHandle) read_dict (PreprocessParamFileName, [], [], DLPreprocessParam)
左滑查看更多
2. 導(dǎo)入推理圖像并生成深度學(xué)習(xí)樣本:
* Read the images of the batch. read_image (ImageBatch, Batch) * Generate the DLSampleBatch. gen_dl_samples_from_images (ImageBatch, DLSampleB atch)
左滑查看更多
3. 對深度學(xué)習(xí)樣本進(jìn)行預(yù)處理以匹配模型:
* Preprocess the DLSampleBatch. preprocess_dl_samples (DLSampleBatch, DLPreprocessParam)
左滑查看更多
4. 執(zhí)行深度學(xué)習(xí)推理:
* Apply the DL model on the DLSampleBatch. apply_dl_model (DLModelHandle, DLSampleBatch, [], DLResultBatch)
左滑查看更多
5. 處理結(jié)果數(shù)據(jù):
get_dict_tuple (DLResult, 'bbox_length2', BboxLength2) get_dict_tuple (DLResult, 'bbox_phi', BboxPhi) get_dict_tuple (DLResult, 'bbox_class_id', BboxClasses)
左滑查看更多
6. 顯示結(jié)果
dev_display (RectangleSelected) dev_disp_text (TextResults, 'window', 'top', 'left', BboxColorsResults, 'box', 'false')
左滑查看更多
4.2HALCON AI 加速器接口(AI2)
MVTec的OpenVINO工具套件插件基于全新 HALCON AI 加速器接口(AI2)。通過這一通用接口,客戶可以快速方便地將支持的 AI 加速器硬件用于深度學(xué)習(xí)應(yīng)用的推理環(huán)節(jié)。
這些特殊設(shè)備不僅在嵌入式環(huán)境中得到廣泛應(yīng)用,也越來越多地出現(xiàn)在 PC 環(huán)境中。AI 加速器接口從特定硬件中抽象出深度學(xué)習(xí)模型,因而特別能夠適應(yīng)未來發(fā)展。
MVTec 作為機(jī)器視覺軟件的技術(shù)領(lǐng)導(dǎo)者,其軟件可以在工業(yè)物聯(lián)網(wǎng)環(huán)境中,通過使用 3D 視覺、深度學(xué)習(xí)和嵌入式視覺等現(xiàn)代技術(shù),實現(xiàn)新的自動化解決方案。
除 MVTec 提供的插件外,還可以集成客戶特定的 AI 加速器硬件。此外,不僅典型深度學(xué)習(xí)應(yīng)用可以通過 AI2 加速,所有集成深度學(xué)習(xí)功能的“經(jīng)典”機(jī)器視覺方法,例如 HALCON 的 Deep OCR,也能從中受益。
4.3使用 DLT 工具
進(jìn)行深度學(xué)習(xí)模型的數(shù)據(jù)標(biāo)注和訓(xùn)練
DeepLearningTool(DLT)是 MVTec 推出的一款用于深度學(xué)習(xí)標(biāo)注和訓(xùn)練的免費工具。使用深度學(xué)習(xí)工具,您可以憑借直觀的用戶界面輕松地標(biāo)記數(shù)據(jù),而無需任何編程知識。可以將這些數(shù)據(jù)無縫集成到 HALCON 中,以執(zhí)行基于深度學(xué)習(xí)的物體檢測,分類,語義分割,實力分割,異常值檢測以及 Deep OCR。
以下是我們使用DLT進(jìn)行例程中模型標(biāo)注和訓(xùn)練的視頻:
4.4HALCON基于 OpenVINO 的 AI 推理范例程序
本文中,我們使用的是基于 HALCON 的深度學(xué)習(xí)對象檢測的官方范例程序。
本文中所使用的基于 OpenVINO 的 HALCON 范例代碼已分享到MVTec 官網(wǎng),網(wǎng)址為:
下載后將該程序保存至任意路徑下。
如果推理需要加載重新訓(xùn)練的深度學(xué)習(xí)模型和預(yù)訓(xùn)練參數(shù),需要使用 HALCON 的開發(fā)環(huán)境 Hdevelop 先運行官方路徑
%HALCONEXAMPLES%/hdevelop/Deep-Learning/Detection/
的范例程序,從而可以完成訓(xùn)練并保存模型:
dl_detection_with_orientation_workflow.hdev
等待訓(xùn)練和測試程序運行完成后,會在相應(yīng)路徑下保存訓(xùn)練好的模型(model_best.hdl)和圖片預(yù)處理的參數(shù)(DLPreParam.hdict),可以去替換范例程序里的文件。
打開下載好的示例程序,本地路徑下對應(yīng)的模型和預(yù)處理參數(shù),如以下代碼所示:
RetrainedModelFileName:='model_best.hdl' PreprocessParamFileName:='DLPreParam.hdict'
左滑查看更多
例程中用到的演示圖片是 HALCON數(shù)據(jù)集中的screws 文件夾,如果 HALCON 安裝正確的話,是在 HALCONEXAMPLES 路徑中的,直接使用下面代碼可以找到。
list_image_files ('screws', 'default', [], ImageFiles)
左滑查看更多
接著運行范例(或按 F5),首先需要查詢 HALCON 所支持的 OpenVINO 設(shè)備:
* This example needs the HALCON AI2-interface for the Intel Distribution of the OpenVINO Toolkit * and a installed version of the Intel Distribution of the OpenVINO Toolkit. query_available_dl_devices ('ai_accelerator_interface', 'openvino', DLDeviceHandlesOpenVINO)
左滑查看更多
之后,繼續(xù)執(zhí)行程序,在可視化界面會依次顯示所有查詢到的 OpenVINO 設(shè)備信息,包括本文所需使用的英特爾 Arc A770 獨立顯卡,這里我們看到支持的推理精度有 FP32 和 FP16,如下所示。
然后,需要選擇 OpenVINO 設(shè)備,目前 HALCON AI2接口所支持的 OpenVINO 設(shè)備包括英特爾的CPU,GPU,HDDL 以及 MYRIAD。在安裝 HALCON 時,只內(nèi)置安裝了 CPU 插件,需要額外安裝 OpenVINO 工具套件來支持 GPU 等其他設(shè)備,具體安裝參考章節(jié) 1.3.2。這里我們指定 OpenVINO 運行設(shè)備為“GPU”,即英特爾的獨立顯卡,如果要選擇其他 OpenVINO 設(shè)備,可以修改設(shè)備序號以選擇對不同的設(shè)備通道。
* Choose a OpenVINO device DLDeviceOpen :=DLDeviceHandlesOpenVINO[3] set_dl_model_param (DLModelHandle, 'device', DLDeviceOpen)
左滑查看更多
此處程序,會針對設(shè)備做推理優(yōu)化,得到經(jīng)過 OpenVINO 加速優(yōu)化的推理模型。如果沒有額外設(shè)置,精度上使用的是默認(rèn)的 float32。
本次例程沒有使用 C# 或者 C++ 來聯(lián)合編程和編寫界面,全部在 HALCON 中完成;需要按照例程中的說明文字調(diào)節(jié)下 HDevelop 中調(diào)節(jié)下窗口顯示;確認(rèn)調(diào)節(jié)完成后再次按下 F5,例程循環(huán)運行至結(jié)束。
得到的顯示界面和結(jié)果如下圖所示:
圖片中可以看到算法準(zhǔn)確地找到了 背景上物體地位置和方向,也標(biāo)注了對應(yīng)地類別。在結(jié)果顯示地部分可以看到檢測地數(shù)據(jù)結(jié)果,比如每個類別的得分,種類,詳細(xì)的坐標(biāo)和角度。同事在圖片的右上角中,可以看到使用 OpenVINO 加速后的算法運行速度,每張圖片的算法運行時間在 15~19ms 左右;基本能夠滿足高節(jié)拍生成的需求。
此外,例程中為了增強(qiáng)演示效果,在某些圖片處理結(jié)果后增加了等待延時,主要是用于顯示。
推理的工作流程可以參考 4.1 章節(jié),在執(zhí)行推理的同時,可以打開任務(wù)管理器,觀察英特爾獨立顯卡的運行狀態(tài)。范例中,默認(rèn)使用 FP32 精度加速推理,也可以根據(jù)具體需要切換成 FP16 精度進(jìn)行對比測試。
在英特爾A380顯卡上,也有明顯的加速性能
05總結(jié)
MVTec HALCON AI 加速器接口(AI2)可幫助MVTec軟件產(chǎn)品用戶充分利用與 OpenVINO 工具套件兼容的 AI 加速器硬件。如此一來,對于關(guān)鍵工作負(fù)載,可以在英特爾計算設(shè)備上明顯縮短深度學(xué)習(xí)推理時間。
由于支持硬件范圍得到擴(kuò)展,用戶現(xiàn)在可以充分利用各種英特爾設(shè)備的性能來加速深度學(xué)習(xí)應(yīng)用,不再局限于少數(shù)特定設(shè)備。同時,這種集成可以無縫進(jìn)行,不受特定硬件細(xì)節(jié)約束。現(xiàn)在只需更改參數(shù),即可在OpenVINO 工具套件支持的設(shè)備上執(zhí)行現(xiàn)有深度學(xué)習(xí)應(yīng)用的推理過程。
審核編輯:湯梓紅
-
英特爾
+關(guān)注
關(guān)注
61文章
9978瀏覽量
171923 -
顯卡
+關(guān)注
關(guān)注
16文章
2437瀏覽量
67753 -
AI
+關(guān)注
關(guān)注
87文章
31028瀏覽量
269384 -
模型
+關(guān)注
關(guān)注
1文章
3255瀏覽量
48902
原文標(biāo)題:在英特爾獨立顯卡上加速 HALCON AI 模型推理 | 開發(fā)者實戰(zhàn)
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論