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

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

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

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


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

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

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