趙晉巍,劉曉鵬,羅 威,程 瑾,毛 彬,宋 宇
大數(shù)據(jù)時代數(shù)據(jù)分析工作通常需要處理不同來源、不同領(lǐng)域的數(shù)據(jù),這些數(shù)據(jù)呈現(xiàn)出不同的模態(tài)[1],如視頻、圖片、語音,以及工業(yè)場景下的傳感數(shù)據(jù)和紅外、聲譜等。多模態(tài)數(shù)據(jù)是指對同一個描述對象通過不同領(lǐng)域或視角獲取到的數(shù)據(jù),而把描述這些數(shù)據(jù)的每一個領(lǐng)域或視角叫做一個模態(tài)[2]。顧名思義,多模態(tài)數(shù)據(jù)融合的研究內(nèi)容就是這些不同類型的數(shù)據(jù)的融合問題,即利用計算機進行多模態(tài)數(shù)據(jù)的綜合處理。
Contrastive Language-image Pre-training(CLIP)模型是一個在各種“圖像-文本”對上進行訓(xùn)練的神經(jīng)網(wǎng)絡(luò)[3]。它是一種基于對比學(xué)習(xí)的多模態(tài)模型,通過圖像和它對應(yīng)描述文本的對比訓(xùn)練,達到學(xué)習(xí)兩者匹配關(guān)系的目的。作為多模態(tài)訓(xùn)練的結(jié)果,CLIP 模型可用于查找最能代表圖像的文本片段,或根據(jù)給定文本查詢最合適的圖像,甚至可以基于文本對圖像進行分類[4]。CLIP 模型打破了自然語言處理和計算機視覺兩大門派“涇渭分明”的界限,實現(xiàn)了多模態(tài)的AI 系統(tǒng),融合了不同模態(tài)進行檢索,這使CLIP 模型在圖像和文本搜索中非常有用。筆者開展了多年的開源軍事相關(guān)圖片資源的本地化建設(shè),內(nèi)容涵蓋裝備使用、軍事行動、保障維修等方面,共搜集到圖片30 余萬張,這些圖片資源大多帶有原生的描述文本,而且某些重要的圖片已進行了人工分類和標注,因此具備開展圖片深度挖掘處理的資源基礎(chǔ)。在圖片資源發(fā)現(xiàn)上,傳統(tǒng)的圖片檢索技術(shù)采用文本匹配模式,即通過搜索關(guān)鍵詞與圖片標題、描述信息進行精確或模糊匹配。而對于描述信息缺失的圖片或標引錯誤的圖片來說,文本匹配模式無能為力,并且也無法進行以圖搜圖,如通過模糊圖片找到更高清圖片,或通過圖片找到相似前景目標物的圖片?;诖耍疚耐ㄟ^CLIP 模型的再訓(xùn)練,開展多模態(tài)搜索的相關(guān)應(yīng)用研究,包括軍事領(lǐng)域內(nèi)圖片資源的以文搜圖和以圖搜圖。
以往的計算機視覺(Computational Vision,CV)模型通常被訓(xùn)練用于預(yù)測有限的物體類別(如ImageNet 數(shù)據(jù)集中有1 000 個分類標簽)。這種嚴格的監(jiān)督訓(xùn)練方式限制了模型的泛化性和實用性,因為這樣的模型通常還需要額外的標注數(shù)據(jù)來完成訓(xùn)練時未曾見過的圖像(視覺)“概念”[5]。2021 年初,OpenAI 推出了AI 視覺模型CLIP(圖1),該模型以4 億對網(wǎng)絡(luò)圖文數(shù)據(jù)集(Web ImageText,WIT)作為訓(xùn)練集,將文本作為圖像標簽進行訓(xùn)練。當進行下游推理任務(wù)時,只需要提供和圖像語義對應(yīng)的文本描述,就可以進行零樣本(Zero-Shot)推理遷移。經(jīng)過龐大的數(shù)據(jù)集訓(xùn)練,CLIP 模型在圖文識別和融合上展現(xiàn)了很高的表現(xiàn)力。
圖1 CLIP 模型的框架結(jié)構(gòu)
1.1.1 預(yù)訓(xùn)練
CLIP 模型聯(lián)合訓(xùn)練圖像編碼器(如ResNet50)和文本編碼器(如BERT),以預(yù)測一批圖像和文本的正確配對。假設(shè)給定一個包括N個“圖像-文本”對的數(shù)據(jù)集,就能得到n個圖片的特征和n個文本的特征,CLIP 模型的訓(xùn)練目標是判斷在一個數(shù)據(jù)集中N×N個“圖像-文本”對中的哪一對是匹配的。為此,CLIP 模型通過線性投影將每個編碼器的表示映射到多模式嵌入空間,通過聯(lián)合訓(xùn)練圖像編碼器和文本編碼器來最大化數(shù)據(jù)集中的n對匹配的圖文特征余弦相似度,同時最小化N2-N個錯誤對的余弦相似度,從而達到對比學(xué)習(xí)的目的。此外,CLIP 模型在這些相似度上用對稱的交叉熵損失進行優(yōu)化。
圖1 中的預(yù)訓(xùn)練對比學(xué)習(xí)(Contrastive Pre-training)部分,N×N矩陣對角線上配對的n個“圖像-文本”對都是正樣本,矩陣中非對角線上的N2-N個元素都是負樣本,有了正負樣本,模型就可以通過對比學(xué)習(xí)的方式去訓(xùn)練,因此不需要任何手工標注。
1.1.2 Zero-Shot 的推理
在計算機視覺中,Zero-Shot 學(xué)習(xí)通常指在圖像分類中對沒見過的對象類別進行泛化的研究[6]。CLIP 模型的預(yù)訓(xùn)練方式是預(yù)測一張圖片和一段文本在其數(shù)據(jù)集中是否匹配。為了實現(xiàn)Zero-Shot 推理,將每個數(shù)據(jù)集中所有類的名稱作為潛在文本配對的集合,并用CLIP 模型預(yù)測最可能的“圖像-文本”配對,即把分類轉(zhuǎn)換為檢索問題。
具體到圖 1 中的提取預(yù)測類別文本特征(Create dataset classifier from label text)和Zero-Shot推理預(yù)測(Use for zero-shot prediction)部分,首先計算圖像的特征嵌入和可能分類集合的特征嵌入,然后計算這些嵌入的余弦相似度,然后用一個溫度參數(shù)進行縮放,并通過Softmax 函數(shù)將其歸一化為概率分布。預(yù)測層是具有L2 歸一化輸入、L2 歸一化權(quán)重、無偏差和溫度縮放的多項式邏輯回歸分類器。圖像編碼器計算圖像的特征表示,而文本編碼器基于視覺類別的文本來生成線性分類器的權(quán)重。如對ImageNet[7]數(shù)據(jù)集上的Zero-Shot 遷移,文本編碼器需要生成1 000 個類別的表示,而且用每張圖片的特征表示和這1 000 個文本表示進行匹配,最接近的文本特征對應(yīng)的類別就是圖像屬于的類別。
另一方面,預(yù)訓(xùn)練之后得到的文本和圖片的特征是沒有分類標簽的,CLIP 模型使用類似“A photo of a {label}.”模板生成分類文本。該方法比只使用標簽文本的Baseline 性能有所提高,在ImageNet數(shù)據(jù)集上的準確率提高了1.3%[5]。
1.1.3 CLIP 模型的實驗性能
圖2 顯示了CLIP Zero-Shot 推理與ResNet101模型在不同的數(shù)據(jù)集(如ImgeNet 原生數(shù)據(jù)集及其篩選出的素描、動漫等數(shù)據(jù)集和構(gòu)造的包含很多對抗樣本的數(shù)據(jù)集)測試結(jié)果的對比,隨著數(shù)據(jù)集難度的增加,ResNet101 的分類精度在一直下降,而CLIP 模型卻并沒有隨著數(shù)據(jù)集難度的加大而出現(xiàn)性能下降等情況。因此與標準ImageNet 模型相比,CLIP Zero-Shot 推理對分布偏移更具魯棒性,比基于ImageNet 數(shù)據(jù)集的標準有監(jiān)督訓(xùn)練模型要好得多。
圖2 CLIP 模型的魯棒性實驗結(jié)果
有學(xué)者提出了利用文字表述來對圖像進行編輯的模型,即StyleCLIP 模型[8]。該模型借助CLIP 模型的“文本-圖像”相關(guān)性能力和StyleGAN 的圖像生成能力,通過文本驅(qū)動生成圖像。StyleCLIP 模型提出了隱空間優(yōu)化(Latent Optimization)、隱空間映射(Latent Mapper)和全局方向(Global Directions)3 種實現(xiàn)方式,每種方式都可以實現(xiàn)編輯圖像的目的,只是在實現(xiàn)細節(jié)上有所區(qū)別。
Google 的研究人員提出了ViLD 模型[9],這是一種通過視覺和語言知識蒸餾的訓(xùn)練方法。ViLD 模型由文本嵌入(ViLD-text)和圖像嵌入(ViLD-image)學(xué)習(xí)器兩部分組成。它將CLIP 圖像分類模型應(yīng)用到了目標檢測任務(wù)上,在新增類別推理上Zero-Shot超過了有監(jiān)督訓(xùn)練的方法。
騰訊的研究人員提出了CLIP2Video 模型[10],以端到端的方式將圖像語言預(yù)訓(xùn)練模型轉(zhuǎn)換為視頻文本檢索模型,即將CLIP 模型的“文本-圖像”對擴展到“文本-視頻”對,以解決視頻文本檢索問題。該模型基于CLIP 捕獲的空間語義,主要通過時間差分塊(temporal difference block,TDB)和時間對齊塊(temporal alignment block,TAB)兩個模塊將圖片語言預(yù)訓(xùn)練模型轉(zhuǎn)換為視頻文本檢索。這兩個模塊是為了捕獲視頻幀的時間關(guān)系和視頻語言關(guān)系而設(shè)計的。對時間差分塊,本文在序列中加入圖像幀的差分來模擬運動變化;對時間對齊塊,本文將視頻序列和文本序列對齊到相同的空間,以增強視頻片段和短語之間的相關(guān)性。
有學(xué)者提出了將跨模態(tài)注意力對比的“語言-圖像”預(yù)訓(xùn)練模型(CMA-CLIP)[11]用于圖文分類任務(wù),還提出了序列注意力(sequence-wise attention)和模式注意力(modality-wise attention)兩種跨模態(tài)注意力,以有效地融合來自圖像和文本對的信息。CMA-CLIP 模型在多任務(wù)分類的MRWPA 數(shù)據(jù)集上表現(xiàn)優(yōu)異。
如前文所述,CLIP 模型可用于圖像分類、目標檢測、視頻理解、圖像編輯等領(lǐng)域。由于CLIP是一種在巨量圖像和文本對上預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò),我們可根據(jù)自身資源特點開展針對性的再訓(xùn)練,以提高自身資源檢索或分類的精度。作為這種多模態(tài)訓(xùn)練的結(jié)果,CLIP 模型可用于查找最能代表圖像的文本片段,或根據(jù)給定文本查詢最合適的圖像,圖文檢索(以文搜圖、以圖搜文、以圖搜圖等)是CLIP 模型最直接實現(xiàn)的應(yīng)用。
CLIP 模型庫中有RN50、RN101、ViT-B/32、ViT-B/16 等9 個模型,本文主要針對ViT-B/32 模型進行了再訓(xùn)練。ViT-B/32 模型用于編碼圖像特征,包括圖像分辨率、嵌入維度、Transformer 的層數(shù)、Transformer 模型頭數(shù)等輸入維度和輸出維度,參數(shù)配置表如表1 所示。
表1 ViT-B/32 模型的參數(shù)配置
訓(xùn)練樣本主要從自建的軍事相關(guān)圖片數(shù)據(jù)集中進行構(gòu)建,樣本元數(shù)據(jù)字段包括圖片標題、圖片描述、分類、圖片路徑等,數(shù)據(jù)格式保存為JSON格式。
訓(xùn)練過程主要包括以下3 個步驟。
第一步:通過DataLoader 函數(shù)加載一個批次(batch)的N個“文本-圖像”對。將N個文本通過文本編碼器(Text Encoder)進行文本編碼,定義文本編碼器中每條文本編碼為長度為dt的一維向量,那么這個批次的文本數(shù)據(jù)經(jīng)Text Encoder 輸出為[T1,T2,…TN],維度為(N,dt)。類似地,將N個圖像通過圖像編碼器(Image Encoder)進行圖像編碼輸出為[I1,I2,…IN],維度為(I,di)。
第二步:訓(xùn)練樣本T1,T2,…TN和I1,I2,…IN是一一對應(yīng)的,將這個對應(yīng)關(guān)系記為正樣本;將原本并不對應(yīng)的“文本-圖像”對標記為負樣本,由此便產(chǎn)生N個正樣本,N2-N個負樣本,用以訓(xùn)練文本編碼器和圖像編碼器。
第三步:計算Ii與Tj之間的余弦相似度Ii·Tj,用來度量文本與圖像之間的對應(yīng)關(guān)系。余弦相似度越大,說明Ii與Tj的對應(yīng)關(guān)系越強,反之越弱。即通過訓(xùn)練文本編碼器和圖像編碼器的參數(shù),最大化N個正樣本的余弦相似度,最小化N2-N個負樣本的余弦相似度。優(yōu)化目標函數(shù)的公式為:
基于存有30 余萬張圖片的開源軍事相關(guān)圖片數(shù)據(jù)集,設(shè)計開發(fā)了具有以文搜圖和以圖搜圖功能的服務(wù)原型系統(tǒng),核心流程如圖3 所示。
圖3 多模態(tài)搜索服務(wù)原型系統(tǒng)流程
多模態(tài)搜索服務(wù)原型系統(tǒng)主要包括以下3 種主體功能。一是圖片數(shù)據(jù)集預(yù)處理,將30 余萬張圖片進行向量化預(yù)處理,加載CLIP 模型并特征化圖片向量,形成圖片集特征化矩陣并緩存。二是通過文本編碼器進行查詢文本的特征化,通過圖像編碼器(ViT)進行查詢圖像的特征化。三是查詢匹配,通過線性映射層將文本和圖像特征進行嵌入,映射到相同特征維度,同時進行L2 標準化。將查詢文本或圖像與圖片集特征化矩陣進行余弦相似度計算,并根據(jù)相似性對結(jié)果進行排序。
服務(wù)原型系統(tǒng)采用Django+Redis緩存框架開發(fā),系統(tǒng)分為以文搜圖和以圖搜圖兩個搜索功能區(qū)。
圖4 是以“Aerial refueling”作為搜索文本進行場景搜圖的效果展示。圖4 顯示,系統(tǒng)返回的前160個結(jié)果集合中僅有6 張圖片沒有明顯的空中加油動作,證明系統(tǒng)以文搜圖的準確率還是非常高的。圖5 為檢索“air force”文本的返回結(jié)果,檢出了噴涂有“air force”文字的美軍機和美空軍標志,未來可在目標文字光學(xué)字符識別(Optical Character Recognition,OCR)及目標檢測上開展深入研究應(yīng)用。
圖4 以文搜圖的場景搜圖效果展示
圖5 以文搜圖的OCR 效果展示
圖6 是以圖搜圖的效果展示。上傳圖片為一張無人機照片,通過以圖搜圖,不僅可以獲得相關(guān)類似甚至更高清的圖片,同時基于圖片庫還可以得到該圖片豐富的背景信息,從細覽頁得知該無人機是美海軍測試的MQ-25 無人加油機。
圖6 以圖搜圖的效果展示
目前,多模態(tài)檢索、預(yù)訓(xùn)練模型受到越來越多的關(guān)注,學(xué)界也興起了關(guān)于多模態(tài)檢索未來趨勢和發(fā)展的大討論,CLIP 模型在多模態(tài)搜索工具的研究上邁出了第一步,實現(xiàn)了在大規(guī)模數(shù)據(jù)的情況下模型對圖像和文本的學(xué)習(xí)能力的大幅提升。本文通過收集的大規(guī)模軍事相關(guān)圖片數(shù)據(jù)集,借助CLIP模型,設(shè)計開發(fā)了具有以文搜圖和以圖搜圖功能的多模態(tài)搜索服務(wù)原型網(wǎng)站。在實際測試中發(fā)現(xiàn),CLIP 模型對一些抽象文本也能夠檢索出不錯的結(jié)果。下一步將圍繞針對軍事裝備相關(guān)圖片的模型微調(diào),以及在軍事裝備及事件分類、目標檢測、人物軌跡跟蹤等方面開展分析和應(yīng)用研究。