新聞中心

EEPW首頁 > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 從CLIP應(yīng)用領(lǐng)會(huì)隱空間的魅力

從CLIP應(yīng)用領(lǐng)會(huì)隱空間的魅力

作者:高煥堂 時(shí)間:2023-11-29 來源:電子產(chǎn)品世界 收藏


本文引用地址:http://2s4d.com/article/202311/453408.htm

1 前言

在前面所刊登的《從認(rèn)識(shí) 多模態(tài)模型》一文里,已經(jīng)闡述了 基于的運(yùn)作了。在本文里,將從商店柜臺(tái)的產(chǎn)品推薦應(yīng)用來說明:我們可以拿 的源代碼,搭配商家自有產(chǎn)品圖像(Image) 和圖像敘述文句(Text),來訓(xùn)練出企業(yè)自用的CLIP 小模型,同時(shí)也領(lǐng)會(huì)其幕后(Latent space) 的運(yùn)作及其效果。

茲復(fù)習(xí)一下CLIP 的特性,它的目標(biāo)是透過大量圖片及文字描述,建立兩者間的對應(yīng)關(guān)系。其做法是利用ResNet50 等來萃取圖像的特征,并映射到隱空間(Latent space)。也就是將圖像編碼成為隱空間向量。同時(shí),也利用Transformer 萃取與圖像相配對文句的特征,并將文句編碼成為隱空間向量。最后經(jīng)由模型訓(xùn)練來逐漸提高兩個(gè)向量的相似度。換句話說,CLIP 能將圖像和文句映像到同一個(gè)隱空間,因此可以迅速計(jì)算圖像與文句的相似度。

換句話說,CLIP 發(fā)揮了隱空間的魅力,藉之學(xué)習(xí)整個(gè)文句與其對應(yīng)的圖像之間的關(guān)系。當(dāng)我們在整個(gè)文句上訓(xùn)練時(shí),它可以學(xué)到更多的隱藏的東西,并在圖像和文句之間找到一些規(guī)律。因而,在當(dāng)今主流的ChatGPT 和Stable Diffusion 大模型,其幕后都使用CLIP 來提供“文找圖”和“圖找文”的雙向功能。在一般企業(yè)里,也常常需要上述的“文找圖”和“圖找文”雙向功能。

2 以“商店柜臺(tái)AI產(chǎn)品推薦”為例

這是一項(xiàng)CLIP 模型的應(yīng)用案例。其應(yīng)用于商家( 如便利商店) 柜臺(tái),進(jìn)行瞬間實(shí)時(shí)商品推薦。典型的使用情境是:

1) 客人在便利商店里,挑選了一項(xiàng)產(chǎn)品,拿到柜臺(tái)結(jié)賬,例如青島啤酒;

2) 柜臺(tái)( 收銀臺(tái)) 正上方天花板設(shè)置一個(gè)Camera,立即拍下這張圖像,如圖1;

image.png

圖1

3) 柜臺(tái)的收款機(jī)(POS) 系統(tǒng)把這張圖像,傳送給后臺(tái)的CLIP 模型;

4) 此時(shí),CLIP 模型立即找出< 最接近( 相似)> 的產(chǎn)品圖像,如圖2;

image.png

image.png

圖2

5) CLIP 模型回傳給POS 系統(tǒng),然后將這兩張相關(guān)圖像,顯示于柜臺(tái)的雙向平板屏幕上,柜臺(tái)人員和客人立即看到了(圖3),達(dá)到促銷的效益;

image.png

圖3

6) 依不同客人結(jié)帳的產(chǎn)品,而立即找出最符合客人〈偏好〉的相關(guān)產(chǎn)品,達(dá)到實(shí)時(shí)推薦& 行銷。再如,另一位客人購買產(chǎn)品是圖4;

image.png

圖4

7) CLIP 模型就立即找出< 最接近( 相似)> 的相關(guān)< 產(chǎn)品> 的圖像,如圖5;

image.png

image.png

圖5

8) CLIP 模型回傳給POS 系統(tǒng),然后將這兩張相關(guān)圖像,顯示于柜臺(tái)的雙向平板屏幕上,柜臺(tái)人員和客人立即看到了,達(dá)到促銷的效益。

上述的CLIP 模型是針對“產(chǎn)品”的。而一般POSPOS 機(jī)的人臉AI 是針對“人”。我們可以擴(kuò)大建立一個(gè)商品推薦AI 模型,把兩者匯合起來,就實(shí)現(xiàn)了“比客人更懂客人”的極佳效果了。

3 實(shí)現(xiàn)方法

接下來,就來說明如何實(shí)現(xiàn)上述的“商店柜臺(tái)AI產(chǎn)品推薦”模型開發(fā)。

Step1下載CLIP源代碼

下載網(wǎng)址是:https://github.com/moein-shariatnia/OpenAI-CLIP

Step2準(zhǔn)備訓(xùn)練圖像(Image)

在本范例里,收集了該商店的產(chǎn)品圖像,共20張。放置在這活頁夾/ox_super_market_data/train/ 里(圖-6):

1701235215482754.png

圖6 訓(xùn)練數(shù)據(jù)

Step3準(zhǔn)備相對應(yīng)的文本(Text)

在本范例里,會(huì)自動(dòng)讀取圖像的文件名(File name)來做為圖像的相互對應(yīng)的文本。例如,圖6 里的第0 張圖,其檔名為:”天工貢糖_J”。于是,就擷取”天工貢糖”做為此圖像的相對應(yīng)文本,如圖7所示。

image.png

圖7 圖與文的對應(yīng)關(guān)系

Step4展開訓(xùn)練(Training))

接著,就基于上述圖像數(shù)據(jù)、文本數(shù)據(jù)、以及它們之間的對應(yīng)關(guān)系,來訓(xùn)練CLIP模型。如果使用一般的GPU硬件設(shè)備來進(jìn)行訓(xùn)練,大約10 分鐘即可訓(xùn)練5000回合。然后匯出*.ckpt 檔案。

Step5應(yīng)用(一):圖找文

訓(xùn)練好了CLIP 模型,就拿一些圖像來檢測看看CLIP 的< 圖找文> 功能,如圖8 里的圖像。

1701235327392194.png

圖8 測試圖像

在源碼里也提供了CLIP 的預(yù)測功能,就搭配我們自己訓(xùn)練的模型( 即*.ckpt 檔案),來檢驗(yàn)CLIP 的預(yù)測能力。例如輸入圖8 里的image_00.jpg 圖像,CLIP 立即找出其< 最接近的> 文本,如圖9。

image.png

圖9 CLIP做了很棒的預(yù)測

Step6應(yīng)用(二):文找圖

接下來,就拿一段文本來檢測CLIP 的“文找圖”功能。例如:輸入文句:”有沒有青島山水美啤酒呢?”CLIP 找出其“最接近的”圖象,如圖10。

image.png

圖10

根據(jù)圖10的描述可以繪出該圖像為圖11,CLIP輸出了美好的結(jié)果。

image.png

圖11

Step8應(yīng)用(三):圖找圖

再來,就拿一張圖檢測看看CLIP 的“圖找圖”功能。例如:輸入一張圖,然后由CLIP 立即找出其“最接近的”圖象,如圖12,CLIP 的表現(xiàn)很棒。

1701235538839830.png

圖12

4 結(jié)語

本文以大家很能理解的應(yīng)用案例,來讓您體會(huì)CLIP 幕后的作業(yè),尤其是它將圖像特征,以及文本特征映像到隱空間,也就是將其編碼成為隱空間向量,并計(jì)算其相似度。最后,基于相似性來找出“最接近的”圖像或文本。

(本文來源于《EEPW》2023年11月期)



關(guān)鍵詞: 202311 CLIP 隱空間

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉