劃痕檢測全流程算子實操詳解)
工業(yè)工件表面劃痕檢測常遇到一類典型問題單條劃痕被污漬、局部反光遮擋斷裂成多段Blob 分析會將其識別成多個獨立小連通域計算得到的劃痕長度遠小于真實值。本文基于 VisionMaster 現(xiàn)成流水線圖像源→快速匹配→位置修正→陰影校正→圖像歸一化→圖像濾波→形態(tài)學(xué)處理→Blob 分析逐個拆解每個算子作用、參數(shù)優(yōu)化邏輯全程不新增算子通過原生節(jié)點調(diào)參實現(xiàn)斷點拼接、拉長目標短線劃痕適合金屬板材、鋰電池極片類表面缺陷落地復(fù)用。整體流水線總覽算子功能介紹陰影校正 預(yù)處理第一層抹平全局明暗不均針對打光不均、局部陰影、大面積污漬帶來的畫面亮度偏差通過濾波平滑背景亮度曲線校正整體明暗差弱化大塊污漬和工件基底的灰度反差讓被污漬蓋住的劃痕邊緣更容易顯現(xiàn)。自帶 4 項可調(diào)運行參數(shù)濾波尺寸、增益、亮度校正補償、噪聲。參數(shù)參數(shù)描述濾波尺寸卷積核的大小取值范圍1~50。卷積核越大濾波效果越平滑增益增強前景目標取值范圍0~100亮度校正補償對圖像整體灰度水平進行調(diào)整取值越高圖片整體灰度越高取值范圍0~255噪聲干擾像素灰度閾值取值范圍0~255。灰度值低于該值的像素點其灰度值將被置為0濾波尺寸濾波本質(zhì)用固定尺寸的滑動窗口遍歷圖像所有像素按預(yù)設(shè)規(guī)則融合窗口內(nèi)像素灰度值替換窗口中心原始像素值實現(xiàn)降噪、邊緣保留、模糊等效果。增益Gain圖像傳感器采集到微弱光電信號后電路對原始電壓信號做放大處理的倍率作用是拉高畫面亮度單位常用dB分貝或線性倍數(shù)標注是工業(yè)相機最常用曝光配套參數(shù)。 分為兩類模擬增益光電信號轉(zhuǎn)數(shù)字前放大信噪比損耗小優(yōu)先使用數(shù)字增益信號模數(shù)轉(zhuǎn)換后軟件拉升亮度會同步放大噪點盡量少用。光線打在 CMOS/CCD 感光像素→光子轉(zhuǎn)化微弱電信號電壓極小→增益電路按設(shè)定倍率放大電壓→模數(shù)采樣轉(zhuǎn)為圖像灰度數(shù)據(jù)輸出。 舉個直觀例子原始感光電壓僅 2mV增益設(shè)為 4 倍放大后輸出 8mV最終畫面整體亮度提升。圖像歸一化圖像歸一化可對圖像的灰度分布按照規(guī)則進行調(diào)整以增強圖像局部細節(jié)。第1種直方圖均衡化暴力拉差距法大白話原理如果全班成績都擠在60~70分之間大家拉不開差距。這個算法就“強行”把60分的同學(xué)拉到40分把70分的同學(xué)拉到90分。目的不是改分數(shù)而是讓大家分數(shù)差距變大好壞一眼就能看出來。處理后的樣子圖片明暗對比特別強烈暗的地方更暗亮的地方更亮畫面變“清晰”了但顏色會有點失真。什么時候用它只要想“肉眼看清”圖像里的細節(jié)就用它。比如劃痕檢測讓細小的劃痕和背景黑白分明、老照片修復(fù)、醫(yī)學(xué)看X光片、霧天照片去霧。一句話總結(jié)為了讓你人眼看得更清楚。第2種直方圖歸一化統(tǒng)一尺子法大白話原理不管這張圖原本是偏暗全班都在40分還是偏亮全班都在80分我找出圖里最暗的點和最亮的點然后按比例把整張圖“壓縮”或“拉伸”強行把最暗的變成0分最亮的變成100分。關(guān)鍵區(qū)別它只動尺子不動排名。原本比旁邊亮的處理后還是比旁邊亮只是大家站在了同一個起點上。處理后的樣子圖片明暗關(guān)系沒變只是整體亮度被均勻地拉到了0~255這個標準范圍里。什么時候用它當你要把多張圖片放在一起對比或者喂給傳統(tǒng)電腦程序非深度學(xué)習(xí)時。比如工廠流水線拍了一百個零件有的光線亮有的暗先歸一化讓電腦判斷時不受亮度干擾。一句話總結(jié)為了把不同亮度的圖片塞進同一個標準盒子里第3種均值標準差歸一化AI專用擺正法大白話原理先算出全班平均分比如平均60分然后每個同學(xué)的成績都減去60分。這樣一來比平均亮的變正數(shù)比平均暗的變負數(shù)全班成績就圍繞著“0分”上下波動了。再除以一個波動幅度把大家的分數(shù)聚攏一點。關(guān)鍵警告處理完后圖片里有大量的負數(shù)如果硬要顯示出來就是一片灰蒙蒙的噪點根本不是給人看的正常圖片。處理后的樣子完全看不出原圖的樣子全是灰的數(shù)值在-1到1之間浮動。什么時候用它只且僅用于“人工智能深度學(xué)習(xí)模型”訓(xùn)練和推理之前。比如人臉識別、自動駕駛、AI大模型讀圖之前的必經(jīng)步驟。電腦不喜歡看0~255的圖片就喜歡看這種圍繞0上下波動的數(shù)據(jù)算得快學(xué)得準。一句話總結(jié)為了把圖片加工成電腦愛吃的數(shù)據(jù)“飼料”圖像濾波濾波 給圖片“美顏磨皮”或者“描邊勾線”。它的核心原理就一句話每個像素點的新數(shù)值由它自己加上周圍一圈鄰居的數(shù)值共同決定。就像你原來考了60分但發(fā)現(xiàn)前后左右四個同桌都考了90分老師懷疑你寫錯卷子于是把你的分數(shù)改成和同桌差不多——這就是濾波的原理。高斯濾波原理依靠鄰域像素高斯權(quán)重加權(quán)平滑近處像素權(quán)重更高整體過渡柔和降噪幅度可控。場景適配 參數(shù)適用場景去除成像顆粒噪點、工件浮塵是細長劃痕檢測最優(yōu)可選方案避坑要點只用3×3 最小核核越大越容易模糊劃痕頭尾弱邊緣、縮短識別長度項目用法放在圖像歸一化后、形態(tài)學(xué)處理前小力度降噪保留斷點兩側(cè)劃痕細節(jié)方便后續(xù)閉運算拼接長線。形態(tài)學(xué)處理形態(tài)學(xué)處理模塊主要用來從圖像中提取出對描繪區(qū)域形狀有意義的圖像分量使后續(xù)的識別工作能夠抓住目標對象最為本質(zhì)的形狀特征如邊界和連通區(qū)域等。形態(tài)學(xué)處理針對的是圖像中的白色像素點。核心基礎(chǔ)原理形態(tài)學(xué)運算依靠結(jié)構(gòu)元素卷積模板滑動遍歷全圖像素按照設(shè)定規(guī)則改動連通域輪廓基礎(chǔ)運算分腐蝕、膨脹兩類再衍生開閉組合運算膨脹以結(jié)構(gòu)元素范圍向外擴張亮區(qū)域邊界填補細小空隙、拉近分段缺陷腐蝕向內(nèi)收縮亮區(qū)域邊界削除細小零散噪點毛刺閉運算本項目首選 先膨脹 后腐蝕先小幅膨脹補上污漬造成的劃痕斷點空隙把同一條劃痕斷開的兩段連成整塊連通域再用同等幅度腐蝕還原劃痕原本粗細不會讓線條整體變粗變形完美適配斷續(xù)劃痕拼接需求開運算 先腐蝕 后膨脹用來剔除小顆粒噪點不適合修補長線斷點。關(guān)鍵可調(diào)參數(shù)釋義結(jié)構(gòu)元素形狀可選矩形、圓形細長劃痕優(yōu)先用矩形尺寸寬、長、傾斜角度寬度貼合劃痕粗細長度控制斷點填補跨度角度對齊劃痕傾斜方向迭代次數(shù)控制運算執(zhí)行輪次常規(guī)場景取 1 次即可多次迭代會過度粘連相鄰劃痕。BLOB分析BLOB斑點 / 連通域分析是視覺檢測經(jīng)典后處理算子承接形態(tài)學(xué)處理輸出的預(yù)處理圖像通過灰度閾值分割提取畫面內(nèi)互相連通的像素區(qū)域計算面積、長度、長寬比等特征篩選真實缺陷參數(shù)軸比范圍開啟后算法僅篩選出最小外接矩形短軸長度和長軸長度比值在軸比范圍內(nèi)的blob。連通性設(shè)置判斷圖像上像素點是否互相連通的標準包括4連通和8連通。通常設(shè)置為8連通可比設(shè)置為4連通獲得更大的blob。4 連通、8 連通基礎(chǔ)規(guī)則4 連通只有上下、左右這 4 個正交方向相鄰才算像素連通斜對角挨著不算連通8 連通上下左右 4 個斜對角總共 8 個方向相鄰都算連通判定連通更寬松。對照兩張圖解圖 19、圖 20圖 194 連通判定結(jié)果2 塊獨立連通區(qū)右側(cè)有一小塊白色像素它只和主色塊呈斜對角相鄰4 連通不認斜向相鄰沒法和左側(cè)大片白色連通于是被拆成 2 個獨立 Blob左側(cè)大塊、右上角小塊分開計數(shù)圖里兩個橙框就是兩塊獨立區(qū)域。圖 208 連通判定結(jié)果整塊 1 個連通區(qū)右上角小塊和主色塊斜向相鄰8 連通把斜向視作連通條件零散小塊并入主體所有白色像素合并成一整塊 Blob只生成 1 個連通區(qū)域整體被同一個框圈住。單閾值通過單閾值算法進行圖像二值化需設(shè)置低閾值。該算法適用于對算法效率要求較高或需對較大檢測目標進行二值化的場景。該算法二值化處理速度快但存在空間量化誤差相對精度較低。不同極性設(shè)置下二值化效果有所差異。極性用于指定在二值化之前灰度圖中前景的灰度是否亮于背景。極性設(shè)置為暗于背景時灰度值小于低閾值的像素點被分割為前景其余像素點為背景。極性設(shè)置為亮于背景時灰度值大于或等于低閾值的像素點被分割為前景其余像素點為背景。單閾值 亮于背景 低閾值的運算邏輯圖像像素灰度取值范圍常規(guī)是0純黑~255純白極性設(shè)「亮于背景」時像素灰度 低閾值 200 → 判定為前景劃痕 Blob綠色標記保留像素灰度 ≤200 → 判定為背景黑色區(qū)域直接忽略 圖里背景灰度遠低于 200、劃痕亮條灰度高于 200所以劃痕全部被提取、黑背景完全過濾。