微信公眾號:OpenCV學(xué)堂
關(guān)注獲取更多計算機視覺與深度學(xué)習(xí)知識
基于CLIP—圖文對齊的語義先驗
CLIP的核心優(yōu)勢在于它通過圖文預(yù)訓(xùn)練建立了視覺特征與語義概念的對應(yīng)關(guān)系。在零樣本缺陷檢測中,這個特性可以被巧妙地利用。
實現(xiàn)邏輯:
使用CLIP的Vision Transformer作為圖像編碼器,提取圖像的patch特征圖
同時利用CLIP的文本編碼器,構(gòu)造兩類文本描述:"a good product"和"a defective product with anomaly"
關(guān)鍵在于:將圖像的分類特征token(CLS token)與patch特征圖進行聯(lián)合推理
具體做法:
輸入圖像通過Vision Transformer,得到[CLS]特征(代表全局語義)和patch特征網(wǎng)格(代表局部細節(jié))
[CLS]特征與文本特征進行相似度計算,得到初步的異常傾向判斷
更重要的是,將[CLS]特征作為“查詢”,與每個patch特征做交叉注意力,定位哪些patch與全局“正常語義”不一致
最終輸出:異常分數(shù)(0-1標(biāo)量)+ 異常分割熱力圖
基于CLIP實現(xiàn)的,五分鐘急速換型,任意樣本,4張圖即可檢測 - 演示

這種方法天然帶有語義理解能力,適合那些“缺陷可以用文字描述”的場景(如劃痕、污漬、缺角)。缺點是CLIP訓(xùn)練時主要以自然圖像為主,工業(yè)圖像的分布差異需要調(diào)整提示詞來彌補
基于DINO—自監(jiān)督特征的比對
DINO(self-distillation with no labels)是一個自監(jiān)督訓(xùn)練的Vision Transformer,它的特點是:同一個物體的不同視角、不同變形,在特征空間中會保持相似。換句話說,DINO對物體內(nèi)部的“正常變化”很魯棒,但對“異常區(qū)域”很敏感。
實現(xiàn)邏輯:
不依賴任何標(biāo)簽,DINO已經(jīng)學(xué)會了什么是“物體的內(nèi)在結(jié)構(gòu)”
核心假設(shè):正常樣本的圖像塊之間,特征應(yīng)該是相似的;而缺陷區(qū)域的特征會明顯偏離正常分布
具體做法:
收集一批正常的參考圖像(比如10-20張無缺陷的樣本),用DINO ViT提取它們的patch特征,構(gòu)建一個特征庫
對測試圖像,同樣提取patch特征
對于測試圖像中的每個patch,在參考特征庫中尋找最近鄰匹配
計算匹配距離——距離大的位置,就是潛在的異常區(qū)域
輸出:異常分割mask + 整圖的異常分數(shù)(可通過對mask區(qū)域取平均得到)

特點:DINO的優(yōu)勢在于它對紋理和結(jié)構(gòu)的表征非常細致,特別是對于規(guī)則紋理、重復(fù)圖案的工業(yè)品(如布料、PCB板、金屬表面),效果往往很好。完全不需要訓(xùn)練,只需要10-20張正常參考圖即可工作。
PatchCore的DINO增強版
PatchCore原本是一個基于ImageNet預(yù)訓(xùn)練ResNet的特征提取方法,但引入DINO后可以顯著提升性能,尤其是在紋理型缺陷上。
核心改進:
特征提取器替換:將原始PatchCore用的ResNet backbone替換為DINO ViT(推薦ViT-S/16或ViT-B/16)
特征聚合策略保留:核心仍然是coreset sampling + 最近鄰搜索,但特征空間的維度更高、更結(jié)構(gòu)化

具體做法:
使用DINO ViT提取正常樣本的patch特征,每個patch特征可以來自多個Transformer層的拼接(例如layer 9和layer 11的特征)
應(yīng)用貪心coreset采樣,在保持特征覆蓋度的前提下壓縮特征庫大小,降低推理時的計算開銷
異常檢測:對測試圖像每個patch,計算其在coreset特征庫中的最近鄰距離
高維相似度比較的關(guān)鍵改進——因為DINO特征的維度通常比ResNet高(768維 vs 256維),直接用歐氏距離可能產(chǎn)生維度災(zāi)難,建議使用余弦相似度或經(jīng)過PCA降維后再計算歐氏距離
對距離矩陣進行高斯平滑,得到最終的異常分割mask


為什么DINO比ResNet更好:
DINO的自監(jiān)督訓(xùn)練使得特征對物體內(nèi)部的語義一致性更敏感
多層特征融合可以同時捕獲局部紋理信息和更全局的結(jié)構(gòu)信息
在MVTec AD等工業(yè)基準上,DINO版PatchCore通常比原始PatchCore提高3-5個百分點的AUROC
結(jié)論
對于大多數(shù)工業(yè)場景,建議從方法三(DINO+PatchCore)開始嘗試,因為它綜合了DINO的特征表達能力和PatchCore成熟的檢測框架,且對異常召回率和定位精度都表現(xiàn)均衡。如果希望模型能理解“這是什么類型的缺陷”,再引入CLIP的思路作為補充。
三種方法都無需訓(xùn)練,唯一的成本是推理時的特征提取和最近鄰搜索,在現(xiàn)代GPU上處理一張圖通常在50-200ms之間。
2026掌握Transformer,CLIP,DINO等模型,解鎖零樣本缺陷檢測技術(shù),對所有未知缺陷都做到攔截,徹底告別YOLO與CNN算法的缺陷樣本收集的難題,五分鐘換型,實現(xiàn)對CNN網(wǎng)絡(luò)的AI技術(shù)性能跟各種指標(biāo)碾壓式突破,掌握零樣本工業(yè)缺陷檢測新范式,迫在眉睫,不要猶豫!
現(xiàn)在下單
原價:1199
優(yōu)惠價:999

加小助手微信,獲取優(yōu)惠券

推薦閱讀
玩轉(zhuǎn)YOLOv8~YOLO11全系模型從訓(xùn)練到推理就靠它了
C#上位機開發(fā)專屬OpenCV系統(tǒng)化教程
C#中輕松實現(xiàn)OpenCV算法零代碼開發(fā)
深度學(xué)習(xí)系統(tǒng)化學(xué)習(xí)路線圖專題(2025版本)
【零代碼】OpenCV C# 快速開發(fā)框架演示
正式發(fā)布|OpenVINO2025深度學(xué)習(xí)與大模型部署教程
C#上位機開發(fā)專屬OpenCV系統(tǒng)化教程
