1.1
什么是 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è),并為圖像處理提供卓越性能。
官網(wǎng)鏈接:
https://www.mvtec.com/
圖片引用自:
https://www.mvtec.com/cn/products/HALCON/why-HALCON/compatibility
1.2
什么是OpenVINO
OpenVINO 是一個用于優(yōu)化和部署人工智能(AI)推理的開源工具平臺。
-
提高計算機(jī)視覺、自動語音識別、自然語言處理和其他常見任務(wù)的深度學(xué)習(xí)性能
-
使用經(jīng)過 TensorFlow、PyTorch 等流行框架訓(xùn)練的模型
-
減少資源需求,并在從邊緣到云的一系列英特爾平臺上高效部署
1.3
安裝 HALCON 和 OpenVINO
從 21.05 版本開始,HALCON 通過全新 HALCON AI 加速器接口 (AI2),支持 OpenVINO 工具套件,從而支持 AI 模型在英特爾的硬件設(shè)備上實(shí)現(xiàn)推理計算加速。
當(dāng)前 HALCON 的 AI 模型對英特爾的硬件設(shè)備支持,如下表所示
要實(shí)現(xiàn)使用 HALCON AI 加速器接口在英特爾硬件設(shè)備上加速 AI 推理計算,只需要一次安裝 HALCON 和 OpenVINO,然后編寫 HALCON AI 推理程序即可。
1.3.1
安裝 HALCON
官網(wǎng)注冊
登錄 MVTec 官網(wǎng) HALCON 軟件下載頁面(目前 HALCON 的最新版本是 23.05 Progress)
https://www.mvtec.com/downloads/halcon, 如果沒有注冊過 MVTec 用戶賬號,需要先進(jìn)行注冊個人或企業(yè)賬號。(請注意此處需要使用公司郵箱注冊,qq 郵箱、163 郵箱等私人郵箱會注冊失敗)
下載并解壓
在官網(wǎng)下載完整版的安裝包(需要登陸賬號), 下載 HALCON: MVTec Software[1]??梢赃x擇產(chǎn)品的版本和操作系統(tǒng),此處以 Windows 平臺的 23.05 progress 版本為例。點(diǎn)擊圖中鏈接會自動開始下載,可自行使用工具加速。
下載完成后,解壓縮完成,打開對應(yīng)的文件夾,點(diǎn)擊 som.exe 文件,啟動 SOM(Software Manager)。
安裝設(shè)置
SOM 會使用默認(rèn)瀏覽器打開安裝界面,如果打開界面后未出現(xiàn)可選安裝項目,建議重啟電腦再次打開 som.exe。
可以點(diǎn)擊“語言” 按鈕切換界面語言,點(diǎn)擊“環(huán)境”按鈕修改一些設(shè)置,如程序和數(shù)據(jù)安裝路徑,倉庫地址等等,一般使用默認(rèn)值最好。
然后選擇“可獲得的”頁面,找到安裝包,點(diǎn)擊“安裝”按鈕, 上方按鈕是為當(dāng)前用戶安裝,下方是為所有用戶安裝(需要系統(tǒng)管理員權(quán)限),一般點(diǎn)選上方按鈕。
設(shè)備空間足夠的話(15G 以上),建議右側(cè)全選,全部安裝;點(diǎn)擊后等待安裝結(jié)束即可。
加載 license 文件
HALCON 軟件的運(yùn)行還需要對應(yīng)的 license 加密文件,可以向 MVTec 官方購買正式版或者申請評估。
然后,可以直接在 SOM 界面中加載 license 文件,點(diǎn)擊上圖中的紅色按鈕,可以打開下方界面進(jìn)行 license 文件的安裝和管理,將 license 文件直接拖入即可。
最后,在 Windows 桌面上找到 HALCON 集成開發(fā)環(huán)境 HDevelop 軟件圖標(biāo),即可正常使用 HALCON。
1.3.2
安裝 OpenVINO 2021.4 LTS
請到 OpenVINO 官網(wǎng)[2] 下載并安裝OpenVINO 2021.4.2,如下圖所示。
安裝完畢后,請將 OpenVINO 運(yùn)行時庫的路徑添加到環(huán)境變量 path 中。
第一步,運(yùn)行:
C:Program Files (x86)Intelopenvino_2021.4.752insetupvars.bat
path
獲取 OpenVINO 運(yùn)行時庫的路徑,如下圖所示:
第二步,將 OpenVINO 運(yùn)行時庫的路徑添加到環(huán)境變量 path 中,如下圖所示:
到此,下載并安裝 OpenVINO,然后 OpenVINO 運(yùn)行時庫的路徑添加到環(huán)境變量 path 中的工作全部完成。
1.4
編寫 HALCON AI 推理程序
1.4.1
HALCON AI 推理程序工作流程
關(guān)于 HALCON AI 推理程序工作流程,以 HALCON 的深度學(xué)習(xí)圖像分類為例,程序代碼為 HALCON 集成開發(fā)環(huán)境 HDevelop 的開發(fā)語言。
1. 讀取已訓(xùn)練完成的深度學(xué)習(xí)模型:
* Read in the retrained model.
read_dl_model (RetrainedModelFileName, DLModelHandle)
2. 設(shè)置深度學(xué)習(xí)模型參數(shù):
* Set the batch size.
set_dl_model_param (DLModelHandle, 'batch_size', BatchSizeInference)
* Initialize the model for inference.
set_dl_model_param (DLModelHandle, 'device', DLDevice)
3. 導(dǎo)入數(shù)據(jù)集預(yù)處理的參數(shù):
* Get the parameters used for preprocessing.
read_dict (PreprocessParamFileName, [], [], DLPreprocessParam)
4. 導(dǎo)入推理圖像并生成深度學(xué)習(xí)樣本:
* Read the images of the batch.
read_image (ImageBatch, Batch)
* Generate the DLSampleBatch.
gen_dl_samples_from_images (ImageBatch, DLSampleBatch)
5. 對深度學(xué)習(xí)樣本進(jìn)行預(yù)處理以匹配模型:
* Preprocess the DLSampleBatch.
preprocess_dl_samples (DLSampleBatch, DLPreprocessParam)
6. 執(zhí)行深度學(xué)習(xí)推理:
* Apply the DL model on the DLSampleBatch.
apply_dl_model (DLModelHandle, DLSampleBatch, [], DLResultBatch)
1.4.2
HALCON 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ù),實(shí)現(xiàn)新的自動化解決方案。
除 MVTec 提供的插件外,還可以集成客戶特定的 AI 加速器硬件。此外,不僅典型深度學(xué)習(xí)應(yīng)用可以通過 AI2 加速,所有集成深度學(xué)習(xí)功能的“經(jīng)典”機(jī)器視覺方法,例如 HALCON 的 Deep OCR,也能從中受益。
1.4.3
HALCON 基于 OpenVINO 的 AI 推理范例程序
本文中,我們使用的是基于 HALCON 的深度學(xué)習(xí)圖像分類的官方范例程序。
本文中所使用的基于 OpenVINO 的 HALCON 范例代碼已分享到 MVTec 官網(wǎng),網(wǎng)址為:
https://www.mvtec.com/cn/technologies/deep-learning/ai-accelerator-interface
下載后將該程序保存至 HALCON 范例程序指定的文件路徑中:
%HALCONEXAMPLES%/hdevelop/Deep-Learning/Classification/。
默認(rèn)情況下,由于推理需要加載已經(jīng)過訓(xùn)練的深度學(xué)習(xí)模型,所以需要使用 HALCON 的開發(fā)環(huán)境 Hdevelop 依次先運(yùn)行該路徑下的范例程序,從而可以完成訓(xùn)練并保存模型:
-
classify_pill_defects_deep_learning_1_preprocess.hdev
-
classify_pill_defects_deep_learning_2_train.hdev
接著打開下載的范例并運(yùn)行(或按 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 獨(dú)立顯卡,這里我們看到支持的推理精度有 FP32 和 FP16,如下所示。
然后,需要選擇 OpenVINO 設(shè)備,目前 HALCON AI2 接口所支持的 OpenVINO 設(shè)備包括英特爾的 CPU,GPU,HDDL 以及 MYRIAD。在安裝 HALCON 時,只內(nèi)置安裝了 CPU 插件,需要額外安裝 OpenVINO 工具套件來支持 GPU 等其他設(shè)備,具體安裝參考章節(jié) 1.3.2。這里我們指定 OpenVINO 運(yùn)行設(shè)備為“GPU”,即英特爾的獨(dú)立顯卡。
* The device parameter 'type' can be used for further selection.
* It states the OpenVINO plugin responsible for handling the
* device. Depending on your OpenVINO installation, possible values
* are e.g. 'CPU', 'GPU', 'HDDL', and 'MYRIAD'. If you did not install
* OpenVINO, HALCON will install the 'CPU' plugin.
OpenVINODeviceType := 'GPU'
繼續(xù)運(yùn)行程序,會針對 GPU 的不同浮點(diǎn)精度做推理優(yōu)化,得到經(jīng)過 OpenVINO 加速優(yōu)化的推理模型。
* To convert the model to 'float16'/'float32' precision, no samples have to be provided to
* optimize_dl_model_for_inference.
* No additional conversion parameters are required, so use the default parameters.
get_dl_device_param (DLDeviceHandleOpenVINO, 'optimize_for_inference_params', OptimizeForInferenceParams)
optimize_dl_model_for_inference (DLModelHandle, DLDeviceHandleOpenVINO, 'float32', [], OptimizeForInferenceParams, DLModelHandleOpenVINO, ConversionReport)
在可視化窗口會展示 CPU 和 GPU 分別在 FP32 和 FP16 下的性能比對,包括推理時間和 Top-1 錯誤率。
至此,OpenVINO 的配置測試已基本完成,接著就是執(zhí)行深度學(xué)習(xí)的推理,在可視化窗口里可以看到對于推理步驟的圖示和文字解釋,其中會再次展示所使用的推理設(shè)備,即英特爾的獨(dú)立顯卡信息。
推理的工作流程可以參考 1.4.1 章節(jié),在執(zhí)行推理的同時,可以打開任務(wù)管理器,觀察英特爾獨(dú)立顯卡的運(yùn)行狀態(tài)。范例中,默認(rèn)使用 FP16 精度加速推理,也可以根據(jù)具體需要切換成 FP32 精度進(jìn)行對比測試。
1.5
總結(jié)
MVTec HALCON AI 加速器接口(AI2)可幫助 MVTec 軟件產(chǎn)品用戶充分利用與 OpenVINO 工具套件兼容的 AI 加速器硬件。如此一來,對于關(guān)鍵工作負(fù)載,可以在英特爾計算設(shè)備(包括 CPU、GPU 和 VPU)上明顯縮短深度學(xué)習(xí)推理時間。
由于支持硬件范圍得到擴(kuò)展,用戶現(xiàn)在可以充分利用各種英特爾設(shè)備的性能來加速深度學(xué)習(xí)應(yīng)用,不再局限于少數(shù)特定設(shè)備。同時,這種集成可以無縫進(jìn)行,不受特定硬件細(xì)節(jié)約束?,F(xiàn)在只需更改參數(shù),即可在 OpenVINO工具套件支持的設(shè)備上執(zhí)行現(xiàn)有深度學(xué)習(xí)應(yīng)用的推理過程。
-
英特爾
+關(guān)注
關(guān)注
60文章
9861瀏覽量
171294 -
加速器
+關(guān)注
關(guān)注
2文章
790瀏覽量
37680 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5466瀏覽量
120891
原文標(biāo)題:使用 MVTec HALCON AI 加速器接口在英特爾獨(dú)立顯卡上加速 AI 推理|開發(fā)者實(shí)戰(zhàn)
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論