境準(zhǔn)備到避坑實(shí)戰(zhàn))
直接開(kāi)整。VisionMaster 4.2.0 這個(gè)版本在??禉C(jī)器視覺(jué)軟件序列里算是一個(gè)過(guò)渡性很強(qiáng)的版本往前承接了 4.0 系列的操作習(xí)慣往后又給 4.3 的一些新功能鋪了路。但說(shuō)實(shí)話我在實(shí)際部署過(guò)程中發(fā)現(xiàn)很多人裝這個(gè)版本反而比裝新版更容易卡殼不是軟件本身多難裝而是安裝前的環(huán)境準(zhǔn)備、版本選擇、權(quán)限處理這些細(xì)節(jié)特別容易被忽略。這篇就把整個(gè)安裝過(guò)程從頭到尾捋一遍包括那些安裝包里不會(huì)告訴你的坑。1. 安裝前的整體判斷與準(zhǔn)備思路1.1 先搞清楚你的運(yùn)行環(huán)境是否達(dá)標(biāo)VisionMaster 4.2.0 本質(zhì)上是一個(gè)基于 Windows 平臺(tái)的視覺(jué)算法應(yīng)用框架它對(duì)硬件的要求不像深度學(xué)習(xí)訓(xùn)練那樣夸張但也不是隨便一臺(tái)工控機(jī)就能跑得流暢。官方給出的最低配置是 CPU i3 起步、內(nèi)存 4GB但這是“能打開(kāi)”的標(biāo)準(zhǔn)不是“能用好”的標(biāo)準(zhǔn)。我在實(shí)際項(xiàng)目里踩過(guò)這樣的坑現(xiàn)場(chǎng)用的是一臺(tái)老款賽揚(yáng)處理器的工控機(jī)裝完軟件后打開(kāi)流程編輯界面明顯拖拽卡頓相機(jī)采圖后圖像顯示延遲接近一秒。后來(lái)?yè)Q成了 i5-8500 加 16GB 內(nèi)存的配置整個(gè)體驗(yàn)立刻就正常了。如果你的場(chǎng)景是簡(jiǎn)單的條碼識(shí)別、定位糾偏這類輕負(fù)載任務(wù)i5 加 8GB 內(nèi)存基本夠用如果涉及深度學(xué)習(xí)推理、多相機(jī)并行處理、大分辨率圖像實(shí)時(shí)檢測(cè)建議直接上 i7 或至強(qiáng)系列處理器加 16GB 以上內(nèi)存。操作系統(tǒng)方面4.2.0 官方支持 Win7 SP1、Win10 以及對(duì)應(yīng)的 Server 版本。這里有個(gè)重點(diǎn)Win7 系統(tǒng)安裝前必須先確認(rèn)補(bǔ)丁打到什么程度因?yàn)楹罄m(xù)安裝 .NET Framework 4.8 和 Visual C 運(yùn)行庫(kù)時(shí)系統(tǒng)補(bǔ)丁不全會(huì)直接導(dǎo)致安裝失敗。Win10 則建議使用 1809 或更高版本LTSC 版本效果最佳因?yàn)榫?jiǎn)掉了很多商店組件后運(yùn)行時(shí)環(huán)境反而更干凈。1.2 版本選擇里藏著不少講究很多人在下載階段就已經(jīng)開(kāi)始踩坑了。??倒倬W(wǎng)的下載中心里VisionMaster 4.2.0 存在多個(gè)子版本包括標(biāo)準(zhǔn)版、深度學(xué)習(xí)版、草稿版等。標(biāo)準(zhǔn)版包含了基礎(chǔ)的定位、測(cè)量、識(shí)別、讀碼功能模塊適用于大多數(shù)常規(guī)項(xiàng)目深度學(xué)習(xí)版則額外集成了深度學(xué)習(xí)訓(xùn)練和推理模塊體積更大安裝時(shí)間更長(zhǎng)。這里特別提醒一個(gè)容易忽略的問(wèn)題深度學(xué)習(xí)版安裝前需要確認(rèn)你的顯卡型號(hào)和驅(qū)動(dòng)版本。4.2.0 的深度學(xué)習(xí)模塊基于特定版本的 CUDA 和 cuDNN 構(gòu)建如果你的顯卡驅(qū)動(dòng)過(guò)新或過(guò)舊都可能出現(xiàn)模型能訓(xùn)練但推理時(shí)報(bào)錯(cuò)的情況。我遇到過(guò)一臺(tái)裝了最新驅(qū)動(dòng) RTX 3060 的電腦深度學(xué)習(xí)模塊跑起來(lái)直接提示 CUDA 版本不匹配最后把驅(qū)動(dòng)回退到 472.xx 系列才解決問(wèn)題。另外4.2.0 和 4.2.0 Update 1 雖然版本號(hào)只差一個(gè)后綴但修復(fù)了一些已知的崩潰問(wèn)題和內(nèi)存泄漏強(qiáng)烈建議優(yōu)先選擇 Update 1。安裝前可以對(duì)比一下兩個(gè)版本的 Release Notes你會(huì)發(fā)現(xiàn)有些在初版里讓人抓狂的界面卡頓問(wèn)題在 Update 1 里已經(jīng)做了優(yōu)化。1.3 安裝包的來(lái)源與完整性校驗(yàn)VisionMaster 4.2.0 的安裝包通常約 2.5GB 到 4GB 之間取決于是否包含深度學(xué)習(xí)組件。從官網(wǎng)下載時(shí)我建議用瀏覽器自帶的下載工具不要使用第三方的多線程下載器否則容易出現(xiàn)文件損壞或解壓失敗。下載完成后第一時(shí)間校驗(yàn)文件大小是否與官網(wǎng)標(biāo)注一致。如果不一致哪怕只是差了幾 KB都可能導(dǎo)致安裝過(guò)程中突然報(bào)錯(cuò)。有一個(gè)簡(jiǎn)單的方法用解壓軟件打開(kāi)安裝包如果里面的文件能夠正常瀏覽結(jié)構(gòu)說(shuō)明壓縮包本身沒(méi)有大問(wèn)題如果打開(kāi)就彈錯(cuò)誤重新下載。注意我在項(xiàng)目中不止一次遇到過(guò)安裝到 70% 左右突然回滾的情況最后定位到的問(wèn)題就是安裝包不完整。這個(gè)環(huán)節(jié)真的值得多花兩分鐘確認(rèn)否則后面浪費(fèi)的全是排查時(shí)間。2. 完整安裝流程與關(guān)鍵步驟拆解2.1 第一步以管理員身份運(yùn)行關(guān)掉殺毒軟件這個(gè)步驟看著像老生常談但實(shí)際操作中真的會(huì)出問(wèn)題。VisionMaster 安裝過(guò)程中會(huì)注冊(cè)系統(tǒng)服務(wù)、寫(xiě)入注冊(cè)表、安裝加密狗驅(qū)動(dòng)這些操作都會(huì)被殺毒軟件和安全防護(hù)策略攔截。尤其是 360、火絨、Windows Defender 自帶的實(shí)時(shí)防護(hù)都可能中途跳窗攔截導(dǎo)致安裝進(jìn)程卡住不繼續(xù)。我的做法是安裝前徹底退出殺毒軟件Windows 10 用戶還需要在“病毒和威脅防護(hù)設(shè)置”里臨時(shí)關(guān)閉實(shí)時(shí)保護(hù)。如果是公司統(tǒng)一管控的電腦安裝策略限制了注冊(cè)表寫(xiě)入那需要聯(lián)系 IT 提前開(kāi)通權(quán)限。安裝包下載完成后右鍵點(diǎn)擊 Setup.exe選擇“以管理員身份運(yùn)行”。這里不能用雙擊因?yàn)殡p擊默認(rèn)是以當(dāng)前用戶的權(quán)限級(jí)別啟動(dòng)如果當(dāng)前用戶不是管理員賬戶某些系統(tǒng)級(jí)的組件注冊(cè)就會(huì)失敗。UAC 彈窗提示時(shí)點(diǎn)擊“是”確保安裝過(guò)程有充分的系統(tǒng)權(quán)限。2.2 第二步接受協(xié)議并選擇合適的安裝類型安裝向?qū)?dòng)后第一步是語(yǔ)言選擇。這里注意VisionMaster 4.2.0 的界面語(yǔ)言和安裝語(yǔ)言是兩回事安裝時(shí)選擇中文并不會(huì)影響后期切換界面語(yǔ)言。安裝過(guò)程本身建議選擇中文因?yàn)榘惭b日志和錯(cuò)誤提示都是中文排查問(wèn)題更方便。下一步是接受許可協(xié)議這個(gè)沒(méi)有懸念。但接下來(lái)會(huì)出現(xiàn)一個(gè)關(guān)鍵選項(xiàng)安裝類型分為“典型安裝”和“自定義安裝”。典型安裝會(huì)默認(rèn)安裝所有基礎(chǔ)功能模塊但不會(huì)安裝深度學(xué)習(xí)組件。自定義安裝則可以選擇具體的模塊和安裝路徑。我個(gè)人的建議是除非你的磁盤(pán)空間極度緊張否則都選擇典型安裝。原因很簡(jiǎn)單VisionMaster 的模塊之間有很多隱性的依賴關(guān)系比如條形碼識(shí)別模塊依賴基礎(chǔ)的圖像采集模塊如果你自定義安裝時(shí)只勾選了部分模塊后期需要使用未安裝的功能時(shí)還得重新運(yùn)行安裝程序補(bǔ)裝反而更麻煩。2.3 第三步安裝路徑規(guī)劃和磁盤(pán)空間預(yù)留安裝路徑的選擇值得多說(shuō)幾句。VisionMaster 4.2.0 默認(rèn)安裝到 C 盤(pán) Program Files 目錄但我不建議這么做。原因有三個(gè)第一C 盤(pán)作為系統(tǒng)盤(pán)空間通常比較緊張而 VisionMaster 安裝完成后連同運(yùn)行所需的模型文件、日志文件占用空間很容易超過(guò) 5GB。第二VisionMaster 的數(shù)據(jù)保護(hù)功能默認(rèn)會(huì)在安裝目錄下創(chuàng)建備份文件夾如果系統(tǒng)盤(pán)空間不足備份寫(xiě)入會(huì)失敗進(jìn)而影響軟件的自動(dòng)恢復(fù)功能。第三后期做二次開(kāi)發(fā)時(shí)WPF 工程需要引用 VisionMaster 的 SDK 文件如果安裝路徑中包含中文或特殊字符某些開(kāi)發(fā)工具解析路徑時(shí)會(huì)出現(xiàn)問(wèn)題。因此建議在自定義安裝時(shí)把安裝路徑改為 D 盤(pán)或其他數(shù)據(jù)盤(pán)的英文目錄例如 D:\VisionMaster4.2。這里還要預(yù)留至少 10GB 的額外空間用于存放運(yùn)行時(shí)的臨時(shí)文件、圖像緩存和日志。2.4 第四步授權(quán)文件導(dǎo)入與加密狗驅(qū)動(dòng)安裝進(jìn)行到最后階段安裝程序會(huì)提示是否立即導(dǎo)入授權(quán)文件或插入加密狗。這個(gè)步驟很多人提前忽略導(dǎo)致軟件裝完打開(kāi)后一直提示“未授權(quán)”。VisionMaster 的授權(quán)方式主要有兩種加密狗授權(quán)和 License 文件授權(quán)。加密狗授權(quán)需要插入??档?USB 加密狗安裝程序會(huì)自動(dòng)識(shí)別并安裝相應(yīng)驅(qū)動(dòng)。如果你的加密狗是舊款在 Win10 系統(tǒng)下可能出現(xiàn)驅(qū)動(dòng)簽名問(wèn)題此時(shí)需要進(jìn)入系統(tǒng)的高級(jí)啟動(dòng)選項(xiàng)選擇“禁用驅(qū)動(dòng)程序強(qiáng)制簽名”后再連接設(shè)備。License 文件授權(quán)則是在 Web 端申請(qǐng)后通過(guò)郵件發(fā)送的。獲取授權(quán)時(shí)會(huì)綁定設(shè)備指紋也就是機(jī)器的硬件信息包括主板序列號(hào)、MAC 地址、硬盤(pán)序列號(hào)等。如果在授權(quán)申請(qǐng)之后更換了網(wǎng)卡或主板授權(quán)就會(huì)失效需要重新申請(qǐng)。注意VisionMaster 4.2.0 的試用授權(quán)和正式授權(quán)在功能上沒(méi)有區(qū)別但試用授權(quán)有時(shí)限。很多項(xiàng)目在評(píng)估階段用的是試用授權(quán)等到正式部署時(shí)才發(fā)現(xiàn)忘記申請(qǐng)正式授權(quán)導(dǎo)致現(xiàn)場(chǎng)交付延期這個(gè)時(shí)間點(diǎn)要提前規(guī)劃好。2.5 第五步安裝完成后的重啟與環(huán)境檢查安裝程序結(jié)束后建議立即重啟電腦不要急著測(cè)試軟件。因?yàn)榘惭b過(guò)程中注冊(cè)的系統(tǒng)服務(wù)和環(huán)境變量需要重啟后才能完全生效。重啟完成后先不要打開(kāi) VisionMaster而是檢查幾個(gè)關(guān)鍵項(xiàng)“控制面板-程序和功能”中確認(rèn) VisionMaster 4.2.0 相關(guān)組件是否全部安裝成功“設(shè)備管理器”中確認(rèn)加密狗驅(qū)動(dòng)或模擬采集驅(qū)動(dòng)是否存在感嘆號(hào)運(yùn)行cmd執(zhí)行echo %VMT_ROOT%查看環(huán)境變量是否已正確寫(xiě)入確認(rèn)這些都沒(méi)有問(wèn)題后再打開(kāi) VisionMaster。首次啟動(dòng)會(huì)進(jìn)行組件初始化和注冊(cè)耗時(shí)約 1 到 3 分鐘屬正?,F(xiàn)象此時(shí)不要強(qiáng)行關(guān)閉進(jìn)度窗口。3. 運(yùn)行時(shí)配置與安裝后的基礎(chǔ)設(shè)置3.1 界面語(yǔ)言切換與操作習(xí)慣適配首次進(jìn)入 VisionMaster 主界面時(shí)默認(rèn)語(yǔ)言跟隨安裝時(shí)選擇的語(yǔ)言。如果你需要在中文和英文界面之間切換在菜單欄的“選項(xiàng)”-“語(yǔ)言”中進(jìn)行修改重啟軟件后生效。這里我特別想講一下界面布局和操作區(qū)的關(guān)系。VisionMaster 4.2.0 的主界面大致分成三個(gè)區(qū)域左側(cè)是工具箱和模塊庫(kù)中間是流程編輯畫(huà)布右側(cè)是參數(shù)配置區(qū)。剛上手的人經(jīng)常覺(jué)得操作邏輯不直觀但其實(shí)它的核心思路就是“左選右配中間連線”從左側(cè)拖出算法模塊到中間畫(huà)布連接路徑后點(diǎn)擊模塊右側(cè)就會(huì)顯示該模塊的所有參數(shù)然后設(shè)置圖像源和輸出。如果是從 VisionMaster 3.x 或更早版本升級(jí)上來(lái)的用戶你會(huì)發(fā)現(xiàn) 4.2.0 的模塊命名和分類有一些調(diào)整。比如原來(lái)的“圖像增強(qiáng)”被拆分成了多個(gè)獨(dú)立算子“缺陷檢測(cè)”相關(guān)模塊的歸屬也發(fā)生了變化。適應(yīng)這個(gè)變化最快的方式是在搜索框中直接輸入模塊名稱不用翻找模塊庫(kù)。3.2 相機(jī)接入前的運(yùn)行時(shí)檢測(cè)安裝完 VisionMaster 后很多測(cè)試第一件事就是用相機(jī)采圖驗(yàn)證是否正常。但這里有一個(gè)常見(jiàn)誤區(qū)剛裝完軟件就急著接工業(yè)相機(jī)結(jié)果發(fā)現(xiàn)采集不到圖像就以為軟件沒(méi)裝好。實(shí)際情況往往不是軟件的問(wèn)題而是相機(jī)驅(qū)動(dòng)缺失或 SDK 版本不匹配。VisionMaster 4.2.0 自帶了一套圖像采集模塊通過(guò) GigE Vision 協(xié)議和 USB3 Vision 協(xié)議連接相機(jī)也可以通過(guò)海康自家的 MVS機(jī)器視覺(jué)軟件來(lái)管理相機(jī)。如果相機(jī)是??底约旱慕ㄗh先安裝最新版的 MVS再用 MVS 里的相機(jī)枚舉工具檢測(cè)相機(jī)是否能正常出圖。如果相機(jī)能出圖說(shuō)明驅(qū)動(dòng)和連接都正常此時(shí)在 VisionMaster 中配置圖像采集模塊就會(huì)順利很多。如果是第三方的工業(yè)相機(jī)比如大恒、Basler需要確認(rèn)相機(jī)的 SDK 是否與 VisionMaster 兼容。4.2.0 通過(guò) GenICam 標(biāo)準(zhǔn)接口來(lái)兼容第三方相機(jī)理論上只要相機(jī)支持 GigE Vision 協(xié)議就能接入。但某些廠家的相機(jī)在默認(rèn)參數(shù)下幀率或曝光策略與 VisionMaster 的采集模塊配合不理想這時(shí)需要到相機(jī)的原生 SDK 中調(diào)整對(duì)應(yīng)的相機(jī)參數(shù)。3.3 關(guān)鍵環(huán)境變量與第三方運(yùn)行時(shí)組件VisionMaster 安裝完成后的運(yùn)行依賴并不只是軟件本身還包括系統(tǒng)中已有的運(yùn)行庫(kù)。我建議在安裝 VisionMaster 前或安裝完成后手動(dòng)安裝以下幾個(gè)常見(jiàn)的運(yùn)行時(shí)組件Microsoft Visual C 2015-2022 Redistributablex64 和 x86 都裝上很多算法模塊會(huì)調(diào)用 C 運(yùn)行時(shí)庫(kù)Microsoft .NET Framework 4.8WPF 二次開(kāi)發(fā)和某些界面功能需要新版顯卡驅(qū)動(dòng)如果用到 GPU 加速或深度學(xué)習(xí)模塊這些組件雖然 Windows 系統(tǒng)可能已經(jīng)自帶但版本不一致時(shí)會(huì)出現(xiàn)“找不到 VCRUNTIME140.dll”或“無(wú)法加載 DLL 文件”的錯(cuò)誤。與其到時(shí)候去排查這些問(wèn)題不如提前裝好省心。此外VisionMaster 4.2.0 在首次運(yùn)行時(shí)會(huì)創(chuàng)建兩個(gè)重要目錄一個(gè)是應(yīng)用數(shù)據(jù)目錄記錄用戶配置和流程文件另一個(gè)是日志目錄。如果你的現(xiàn)場(chǎng)是 Windows 服務(wù)器系統(tǒng)還需要留意服務(wù)賬戶必須對(duì)這些目錄有寫(xiě)權(quán)限否則軟件啟動(dòng)后可能報(bào)錯(cuò)“無(wú)法寫(xiě)入文件”。3.4 圖像格式與像素格式設(shè)置的坑這一點(diǎn)雖然嚴(yán)格說(shuō)不是安裝范疇但安裝完軟件做驗(yàn)證時(shí)十有八九會(huì)遇到所以一并說(shuō)了。VisionMaster 4.2.0 在采圖后模塊處理的圖像格式默認(rèn)是 Mono8 或 RGB24具體取決于相機(jī)輸出和采集模塊的設(shè)置。如果你在流程里接入了一個(gè)彩色相機(jī)但圖像源中像素格式設(shè)置成了 Mono8你會(huì)看到彩色圖像變成灰度圖。反過(guò)來(lái)如果黑白相機(jī)輸出 Mono8但你配置的是 RGB24圖像數(shù)據(jù)會(huì)被錯(cuò)誤解讀可能直接出現(xiàn)畫(huà)面偏色或噪點(diǎn)。驗(yàn)證軟件安裝是否正常時(shí)建議使用一張標(biāo)準(zhǔn)測(cè)試圖像而不是直接連相機(jī)。在??堤峁┑陌惭b目錄里有一個(gè) SampleImages 文件夾里面包含了幾張標(biāo)準(zhǔn)圖像。先用這些圖像跑通整個(gè)流程確認(rèn)軟件本身沒(méi)問(wèn)題再去連接相機(jī)排查硬件相關(guān)問(wèn)題。4. 安裝后的功能驗(yàn)證與二次開(kāi)發(fā)準(zhǔn)備4.1 新手必跑的一個(gè)驗(yàn)收流程軟件裝完后不要急著去接相機(jī)或者跑復(fù)雜的檢測(cè)項(xiàng)目。我建議用一個(gè)最簡(jiǎn)單的方法快速確認(rèn)環(huán)境沒(méi)問(wèn)題新建立一個(gè)流程拖入“圖像源”模塊和“圖像顯示”模塊把二者用連線連接起來(lái)然后再拖入一個(gè)“條碼識(shí)別”或“Blob 分析”模塊用安裝包自帶的樣例圖像跑一遍。這個(gè)驗(yàn)證流程能同時(shí)確認(rèn)四件事第一模塊是否都注冊(cè)成功沒(méi)有未加載項(xiàng)第二流程編輯和參數(shù)配置功能是否正常第三圖像顯示模塊能否正常渲染第四基礎(chǔ)算法模塊能否正常輸出結(jié)果。如果這一步跑通了基本上說(shuō)明安裝是成功的。如果連這都跑不通大概率是授權(quán)環(huán)境或者運(yùn)行庫(kù)的問(wèn)題需要回到前面的環(huán)節(jié)排查。4.2 快速理解 NG/OK 判別中的基本配置在驗(yàn)證算法模塊時(shí)很多初學(xué)者都想知道怎么判斷工件是 NG 還是 OK。以“Blob 分析”或“缺陷檢測(cè)”模塊為例判別邏輯本質(zhì)上就是設(shè)定一個(gè)閾值或判定條件比如面積范圍、灰度均值、檢測(cè)項(xiàng)數(shù)量然后根據(jù)檢測(cè)值是否落在允許范圍內(nèi)來(lái)判斷結(jié)果。具體的操作方式在算法模塊的參數(shù)配置中找到“判定條件”或“結(jié)果輸出”選項(xiàng)卡設(shè)置“最小值”和“最大值”或者“等于/不等于”條件。軟件會(huì)輸出一個(gè)“OK/NG”的布爾型結(jié)果供后續(xù)的通信模塊、IO 模塊或分揀模塊使用。這里想提醒的是NG/OK 的策略通常不是單個(gè)條件決定的。實(shí)際項(xiàng)目中你會(huì)同時(shí)檢測(cè)多個(gè)項(xiàng)目比如面積、周長(zhǎng)、圓度、灰度方差這時(shí)候就需要在“條件分支”模塊中組合多個(gè)判定結(jié)果使用邏輯與AND或邏輯或OR運(yùn)算最終輸出總判定。4.2.0 的分支模塊支持多條件組合配置時(shí)不要理解復(fù)雜就是拖出一個(gè)判斷節(jié)點(diǎn)把要組合的條件并聯(lián)或串聯(lián)起來(lái)即可。4.3 WPF 二次開(kāi)發(fā)需要掌握的基礎(chǔ)工程結(jié)構(gòu)VisionMaster 4.2.0 的二次開(kāi)發(fā)是熱詞中出現(xiàn)頻率極高的話題。安裝完成后你會(huì)在安裝目錄下找到 SDK 文件夾里面包含了大量的 .dll 文件和示例代碼。做 WPF 二次開(kāi)發(fā)時(shí)基本的思路就是通過(guò)引用 VisionMaster 的托管 DLL在程序中實(shí)例化調(diào)度器Scheduler、加載流程文件.sol然后控制流程的執(zhí)行和停止。一個(gè)最簡(jiǎn)單的 WPF 工程需要做下面幾件事在項(xiàng)目中引用VisionMaster40相關(guān)的 .NET DLL 文件命名空間通常是VisionMaster40或VmModule系列。在代碼中創(chuàng)建VMScheduler或ToolBlock的實(shí)例。加載你已經(jīng)在 VisionMaster 設(shè)計(jì)器中保存好的流程文件。綁定流程中的輸入輸出端口控制流程的觸發(fā)和執(zhí)行。處理流程結(jié)束的回調(diào)事件從中取出結(jié)果數(shù)據(jù)。這里有兩個(gè)容易踩坑的細(xì)節(jié)。第一64 位的 VisionMaster SDK 必須對(duì)應(yīng) 64 位的編譯目標(biāo)AnyCPU 也可以但建議直接選 x64第二流程文件中如果引用了自定義的腳本模塊C#腳本或 Python 腳本二次開(kāi)發(fā)時(shí)也必須把對(duì)應(yīng)的腳本引擎初始化好否則加載流程會(huì)彈異常。4.4 與圖像歸一化、畸變校正相關(guān)的預(yù)處理模塊VisionMaster 4.2.0 的典型圖像處理流程里圖像歸一化和畸變校正經(jīng)常被放在前面作為預(yù)處理步驟。圖像歸一化解決的是一張圖像因?yàn)楣庹兆兓?、不同批次拍攝導(dǎo)致灰度尺度不一致的問(wèn)題簡(jiǎn)單說(shuō)就是把圖像像素值映射到一個(gè)統(tǒng)一的范圍內(nèi)減少后續(xù)檢測(cè)算法對(duì)光照的敏感度。操作上就是在圖像處理之前加入“圖像歸一化”模塊設(shè)置目標(biāo)灰度范圍例如將圖像拉伸到 0 到 255 之間?;冃U裏嵩~里出現(xiàn)“綺變校正”的筆誤實(shí)際就是畸變校正解決的是相機(jī)鏡頭引入的桶形或枕形畸變問(wèn)題。在安裝后做定位或測(cè)量類項(xiàng)目時(shí)如果圖像邊緣存在彎曲變形測(cè)量結(jié)果就會(huì)有偏差。使用畸變校正模塊時(shí)需要提供相機(jī)標(biāo)定參數(shù)這就要用到??档摹跋鄼C(jī)內(nèi)參標(biāo)定”功能。標(biāo)定內(nèi)參的基本操作是打印一張棋盤(pán)格標(biāo)定板多角度拍攝 10 到 15 張照片在 VisionMaster 中通過(guò)“標(biāo)定”模塊加載這些圖像軟件會(huì)自動(dòng)計(jì)算出相機(jī)的內(nèi)參矩陣和畸變系數(shù)。標(biāo)定完成后將內(nèi)參保存為文件在畸變校正模塊中加載該文件即可對(duì)實(shí)時(shí)圖像進(jìn)行校正。提示內(nèi)參標(biāo)定建議在安裝完軟件后趁熱打鐵做一遍因?yàn)闃?biāo)定過(guò)程本身也能有效驗(yàn)證軟件、相機(jī)、圖像采集整個(gè)鏈路是否穩(wěn)定比自己手動(dòng)排查問(wèn)題快得多。5. 安裝過(guò)程中的典型問(wèn)題與排查速查表5.1 安裝過(guò)程中遇到的常見(jiàn)錯(cuò)誤匯總這一部分是根據(jù)我在多個(gè)項(xiàng)目現(xiàn)場(chǎng)實(shí)際遇到過(guò)的安裝故障整理出來(lái)的問(wèn)題出現(xiàn)的頻率從高到低排列供大家對(duì)照排查。錯(cuò)誤現(xiàn)象可能原因解決方案安裝到一半回滾安裝包損壞 / 殺毒軟件中斷重新下載安裝包臨時(shí)退出殺毒軟件以管理員身份重裝提示缺少 .NET Framework系統(tǒng)未安裝或未正確啟用安裝 .NET Framework 4.8確認(rèn) Win7 補(bǔ)丁已更新打開(kāi)軟件提示“未授權(quán)”授權(quán)未導(dǎo)入或加密狗驅(qū)動(dòng)未安裝重新導(dǎo)入 License 文件或重裝加密狗驅(qū)動(dòng)軟件啟動(dòng)后界面白屏顯卡驅(qū)動(dòng)不兼容升級(jí)顯卡驅(qū)動(dòng)或關(guān)閉硬件加速選項(xiàng)連接相機(jī)采集不到圖像相機(jī)驅(qū)動(dòng)未裝 / 像素格式不對(duì)先裝相機(jī)廠家的 MVS/SDK確認(rèn)能在第三方軟件中出圖深度學(xué)習(xí)模塊運(yùn)行報(bào) CUDA 錯(cuò)誤顯卡驅(qū)動(dòng)與 CUDA 版本不匹配根據(jù)官方文檔回退到指定版本的驅(qū)動(dòng)5.2 加密狗識(shí)別不了應(yīng)該怎么辦加密狗問(wèn)題在安裝后的前三周內(nèi)最多發(fā)。具體現(xiàn)象是設(shè)備管理器中能看到 USB 設(shè)備但軟件提示加密狗未連接或者提示“No License Found”。第一步先確認(rèn)加密狗是不是被系統(tǒng)識(shí)別為“未知設(shè)備”。如果設(shè)備管理器中有感嘆號(hào)嘗試更新驅(qū)動(dòng)。加密狗的驅(qū)動(dòng)程序通常安裝在海康 MVS 或 VisionMaster 的安裝目錄里手動(dòng)指定路徑進(jìn)行更新。第二步檢查是否同時(shí)插了多個(gè)加密狗或 U 盾。某些加密狗的驅(qū)動(dòng)會(huì)互相沖突導(dǎo)致??档募用芄窡o(wú)法被正確識(shí)別?,F(xiàn)場(chǎng)只保留一個(gè)加密狗重新插入。第三步如果上面兩步都驗(yàn)證沒(méi)問(wèn)題嘗試把加密狗插到主板原生 USB 接口不要使用前置面板或 USB Hub。有同事在項(xiàng)目中遇到過(guò)擴(kuò)展塢上的加密狗在三分鐘內(nèi)自動(dòng)掉線的情況直接插主板接口就正常了。5.3 試用版授權(quán)到期后的正確處理方式VisionMaster 4.2.0 的試用授權(quán)通常是 90 天或 180 天。試用期到期后軟件會(huì)頻繁彈出授權(quán)過(guò)期提示并且部分功能會(huì)被鎖定。這時(shí)候不要試圖去修改系統(tǒng)時(shí)間以延長(zhǎng)試用期那樣會(huì)導(dǎo)致加密狗驅(qū)動(dòng)和軟件的時(shí)間戳校驗(yàn)錯(cuò)亂嚴(yán)重時(shí)軟件直接無(wú)法啟動(dòng)。正確的做法是提前規(guī)劃正式授權(quán)的申請(qǐng)時(shí)間。??档?License 申請(qǐng)流程一般需要提交項(xiàng)目信息和設(shè)備信息審核周期通常在 1 到 3 個(gè)工作日。現(xiàn)場(chǎng)交付時(shí)這個(gè)問(wèn)題必須提前和商務(wù)或技術(shù)支持確認(rèn)否則最容易變成交付卡點(diǎn)。如果你的試用授權(quán)在使用過(guò)程中出現(xiàn)過(guò)期提示但你還不想立即申請(qǐng)正式授權(quán)可以參考海康提供的離線續(xù)期方案。部分版本的授權(quán)文件支持在官方網(wǎng)站上進(jìn)行延期操作生成新的 License 文件替換即可。5.4 與舊版本 VisionMaster 共存的問(wèn)題很多工程師的電腦上此前已經(jīng)安裝了 VisionMaster 3.x 或 4.0 版本要裝 4.2.0 時(shí)就會(huì)遇到共存問(wèn)題。從 4.0 開(kāi)始??蹈淖兞瞬糠帜K的注冊(cè)方式和加密狗驅(qū)動(dòng)邏輯新老版本之間存在沖突風(fēng)險(xiǎn)。最穩(wěn)妥的方案是卸載舊版本后再安裝新版本。但如果你有多個(gè)項(xiàng)目同時(shí)依賴不同版本的工具鏈暫時(shí)不能卸載舊版本可以嘗試“先裝新版本后裝舊版本”這樣安裝順序下沖突概率相對(duì)較小。不過(guò)即便如此綜合運(yùn)行庫(kù)、環(huán)境變量、注冊(cè)表三者之間的關(guān)聯(lián)沖突仍可能影響舊版本的某些模塊的運(yùn)行。另外4.2.0 默認(rèn)保留了 4.0 版本的工程文件兼容性意味著 4.0 創(chuàng)建的流程文件基本可以直接在 4.2.0 中打開(kāi)但反過(guò)來(lái)不一定能保證因?yàn)?4.2.0 新增的算法參數(shù)會(huì)被舊版本忽略。因此升級(jí)前請(qǐng)務(wù)必備份所有流程文件和時(shí)間軸工程。6. 安裝完別急著刪安裝包這幾個(gè)細(xì)節(jié)值得留一下6.1 日志文件的保留與診斷價(jià)值VisionMaster 安裝過(guò)程中生成的日志文件許多工程師都忽略掉了。這些日志一般保存在系統(tǒng)臨時(shí)目錄下文件名形如VM_Setup_xxxxxxxx.log。如果你后續(xù)排查問(wèn)題需要求助海康技術(shù)支持這些日志幾乎是必看的第一手資料。我處理過(guò)一次比較奇怪的問(wèn)題軟件安裝后打開(kāi)任何流程都提示“加載模塊失敗”重裝了三遍都沒(méi)解決。后來(lái)我打開(kāi)安裝日志發(fā)現(xiàn)是系統(tǒng)缺少一個(gè) Visual C 運(yùn)行庫(kù)文件安裝程序誤判為已存在實(shí)際上注冊(cè)表被清理工具改動(dòng)過(guò)。最終手動(dòng)安裝對(duì)應(yīng)的 VC Redistributable 包解決。如果不看日志這個(gè)問(wèn)題靠重裝多少次都沒(méi)用。安裝完成后建議把安裝包和日志一并存檔到一個(gè)固定的資料目錄下不要清理。等軟件穩(wěn)定運(yùn)行一段時(shí)間后再做處理。6.2 卸載時(shí)的殘留清理方法如果你備份安裝包的目的是將來(lái)可能要清理或重裝這里也提醒一下VisionMaster 4.2.0 的卸載過(guò)程不夠徹底會(huì)遺留一些配置文件、日志文件夾、以及注冊(cè)表中的授權(quán)信息。如果直接重新安裝有時(shí)能裝上但更多的場(chǎng)景是殘留的數(shù)據(jù)導(dǎo)致新安裝異常。常規(guī)的卸載路徑是控制面板-程序和功能-選擇 VisionMaster-卸載。卸載完成后手動(dòng)刪除以下殘留目錄安裝目錄下的剩余文件例如 D:\VisionMaster4.2C 盤(pán) ProgramData 下的??迪嚓P(guān)目錄用戶 AppData 下的 VisionMaster 文件夾注冊(cè)表清理建議使用系統(tǒng)自帶 Regedit 搜索相關(guān)關(guān)鍵詞確認(rèn)找到的項(xiàng)屬于該軟件后再刪除操作前務(wù)必先備份注冊(cè)表。6.3 長(zhǎng)期穩(wěn)定運(yùn)行的幾條維護(hù)建議安裝完成后軟件穩(wěn)定運(yùn)行并不意味著可以不管了。根據(jù)我在多個(gè)產(chǎn)線上的維護(hù)經(jīng)驗(yàn)VisionMaster 4.2.0 長(zhǎng)期運(yùn)行容易出現(xiàn)三類問(wèn)題提前預(yù)防比事后排查有效率得多。第一類日志膨脹導(dǎo)致磁盤(pán)空間耗盡。VisionMaster 默認(rèn)記錄運(yùn)行日志在長(zhǎng)時(shí)間連續(xù)運(yùn)行的產(chǎn)線上日志文件增長(zhǎng)很快。建議每半個(gè)月清理一次日志目錄或通過(guò)軟件配置文件縮短日志保留周期。第二類殺毒軟件后臺(tái)掃描導(dǎo)致采集掉幀。部分企業(yè)安全軟件會(huì)對(duì) VisionMaster 的 DLL 文件進(jìn)行實(shí)時(shí)掃描導(dǎo)致調(diào)度器在調(diào)用算法模塊時(shí)出現(xiàn)明顯的延遲峰值。建議將安裝目錄加入殺毒軟件的信任列表。第三類系統(tǒng)自動(dòng)更新的驅(qū)動(dòng)升級(jí)導(dǎo)致加密狗失效。Windows 更新有時(shí)會(huì)自動(dòng)替換 USB 設(shè)備的驅(qū)動(dòng)程序這可能導(dǎo)致加密狗無(wú)法識(shí)別。產(chǎn)線上使用 VisionMaster 的工控機(jī)建議關(guān)閉自動(dòng)驅(qū)動(dòng)更新或者在外接設(shè)備策略中鎖定驅(qū)動(dòng)版本。從安裝到二次開(kāi)發(fā)再到長(zhǎng)期的現(xiàn)場(chǎng)維護(hù)VisionMaster 4.2.0 的整個(gè)鏈路里最能拉開(kāi)效率差距的往往不是那些炫酷的算法模塊而是這些最基礎(chǔ)的安裝和環(huán)境配置環(huán)節(jié)。我在實(shí)際項(xiàng)目中學(xué)到的一個(gè)經(jīng)驗(yàn)是每臺(tái)工控機(jī)的系統(tǒng)環(huán)境都不一樣與其靠“經(jīng)驗(yàn)復(fù)制”裸裝機(jī)不如老老實(shí)實(shí)把安裝步驟、授權(quán)申請(qǐng)、環(huán)境變量、日志留存這些細(xì)節(jié)流程化。另外安裝前一定記得備份系統(tǒng)鏡像或創(chuàng)建還原點(diǎn)尤其是現(xiàn)場(chǎng)工控機(jī)萬(wàn)一裝完出現(xiàn)問(wèn)題幾分鐘內(nèi)恢復(fù)環(huán)境比現(xiàn)場(chǎng)排查省事得多。如果你正準(zhǔn)備在項(xiàng)目上部署這套軟件希望這份記錄能幫你繞開(kāi)我踩過(guò)的這些坑。