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