0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于AX650N+CLIP的以文搜圖展示

愛芯元智AXERA ? 來源:愛芯元智AXERA ? 2023-11-01 16:44 ? 次閱讀

背景

元氣滿滿的10月份就結(jié)束了,時間不長,卻產(chǎn)出了上千張照片,找到自己想要的照片有點難度。希望有一種精確的以文搜圖的方法,快速定位到某一類圖片(例如:金色頭發(fā)的小姐姐……)。

之前大家熟悉的計算機視覺模型(CV)基本上是采用監(jiān)督學(xué)習(xí)的方式,基于某一類數(shù)據(jù)集進行有限類別的任務(wù)學(xué)習(xí)。這種嚴(yán)格的監(jiān)督訓(xùn)練方式限制了模型的泛化性和實用性,需要額外的標(biāo)注數(shù)據(jù)來完成訓(xùn)練時未曾見過的視覺“概念”。

能否有一種“識別萬物”的圖像識別大模型呢?今天就借此機會,通過實操來重溫下由OpenAI在2021年初發(fā)布的Zero-Shot視覺分類模型CLIP,并移植到愛芯派Pro上實現(xiàn)簡單的以圖搜文示例。

CLIP

900da2c0-7882-11ee-939d-92fbcf53809c.jpg

Summary of our approach

2021年初由OpenAI發(fā)布的Zero-shot的視覺分類模型CLIP(Contrastive Language–Image Pre-training),該預(yù)訓(xùn)練的模型在沒有微調(diào)的情況下在下游任務(wù)上取得了很好的遷移效果。作者在30多個數(shù)據(jù)集上做了測試,涵蓋了OCR、視頻中的動作檢測、坐標(biāo)定位等任務(wù)。作者特意強調(diào)了CLIP的效果:沒有在ImageNet上做微調(diào)的CLIP,竟然能和已經(jīng)在ImageNet上訓(xùn)練好的ResNet 50打成平手,簡直不可思議。

● CLIP網(wǎng)站:

https://openai.com/research/clip

● CLIP論文:

https://arxiv.org/abs/2103.00020

深度學(xué)習(xí)在CV領(lǐng)域很成功,但是現(xiàn)在大家使用最多的強監(jiān)督學(xué)習(xí)方案總體而言存在以下問題:

● CV數(shù)據(jù)集標(biāo)注勞動密集,成本高昂

● 模型只能勝任一個任務(wù),遷移到新任務(wù)上非常困難

● 模型泛化能力較差

2.1 預(yù)訓(xùn)練

OpenAI的這項工作CLIP可以解決上述問題,思路看起來很簡單,看下圖就知道了,簡單來說CLIP是使用Text Encoder從文本中提取的語義特征和Image Encoder從圖像中提取的語義特征進行匹配訓(xùn)練:

902600ae-7882-11ee-939d-92fbcf53809c.jpg

pre training

2.2 推理

接下來是Zero-Shot的推理過程。給定一張圖片,如何利用預(yù)訓(xùn)練好的網(wǎng)絡(luò)去做分類呢?這里作者很巧妙地設(shè)置了一道“多項選擇”。具體來說,我給網(wǎng)絡(luò)一堆分類標(biāo)簽,比如cat, dog, bird,利用文本編碼器得到向量表示。然后分別計算這些標(biāo)簽與圖片的余弦相似度;最終相似度最高的標(biāo)簽即是預(yù)測的分類結(jié)果。

90592e5c-7882-11ee-939d-92fbcf53809c.jpg

Zero-Shot prediction

從論文中公開的效果非常不錯,CLIP的Zero-Shot遷移能力非常強。在ImageNet各種系列分類任務(wù)上,CLIP無需ImageNet標(biāo)注數(shù)據(jù)訓(xùn)練,通過Zero-Shot分類效果就可以達到ResNet監(jiān)督訓(xùn)練結(jié)果,并且泛化性和魯棒性更好。

9064cef6-7882-11ee-939d-92fbcf53809c.jpg

CLIP on ImageNet

愛芯派Pro(AX650N)

搭載愛芯元智第三代高能效比智能視覺芯片AX650N。集成了八核Cortex-A55 CPU,10.8TOPs@INT8 NPU,支持8K@30fps的ISP,以及H.264、H.265編解碼的VPU。接口方面,AX650N支持64bit LPDDR4x,多路MIPI輸入,千兆EtherNet、USB、以及HDMI 2.0b輸出,并支持32路1080p@30fps解碼內(nèi)置高算力和超強編解碼能力,滿足行業(yè)對高性能邊緣智能計算的需求。通過內(nèi)置多種深度學(xué)習(xí)算法,實現(xiàn)視覺結(jié)構(gòu)化、行為分析、狀態(tài)檢測等應(yīng)用,高效率支持Transformer模型和視覺大模型。提供豐富的開發(fā)文檔,方便用戶進行二次開發(fā)。

90764b18-7882-11ee-939d-92fbcf53809c.jpg

愛芯派Pro(AX650N inside)

上板示例

為了方便大家快速體驗CLIP的效果,我們在Github上開源了對應(yīng)的DEMO以及相關(guān)預(yù)編譯好的NPU模型,方便大家快速體驗。

● Github鏈接:

https://github.com/AXERA-TECH/CLIP-ONNX-AX650-CPP

提供的DEMO包內(nèi)容說明

文件名

描述

main

DEMO執(zhí)行程序

image_encoder.axmodel

圖像編碼模型(AX650N NPU)

image_encoder.onnx

圖像編碼模型(CPU)

images

測試圖片集

text_encoder.onnx

文本編碼模型

text.txt

文本輸入序列

vocab.txt

文本詞集

feature_matmul.onnx

特征比對模型

4.1 耗時統(tǒng)計

CLIP image encoder的模型,我們采用精度更好的基于ViT-B的Backbone

Backbone

輸入尺寸

參數(shù)

計算量

ViT-B/32

1,3,224,224

86M

4.4G MACs

單獨運行的耗時分析如下:

root@maixbox:~/qtang/CLIP# /opt/bin/ax_run_model -m image_encoder.axmodel -w 3 -r 10
 Run AxModel:
    model: image_encoder.axmodel
    type: NPU3
    vnpu: Disable
  affinity: 0b001
   repeat: 10
   warmup: 3
    batch: 1
 pulsar2 ver: 1.8-patch1 6fa8d395
 engine ver: [Axera version]: libax_engine.so V1.27.0_P3_20230627143603 Jun 27 2023 14:58:22 JK 1.1.0
  tool ver: 1.0.0
  cmm size: 93238580 Bytes
 ------------------------------------------------------
 min =  4.158 ms  max =  4.220 ms  avg =  4.198 ms
 ------------------------------------------------------

從上面可以看出,使用AX650N上的NPU運行image encoder,最快可以達到238 images/秒的特征提取速度,也就是說只需短短的4.2秒就能完成前面提及到的1000張照片的特征提取。

4.2 測試一

使用5張圖片,簡單來展示下CLIP具體的效果

9091f778-7882-11ee-939d-92fbcf53809c.png

5張測試圖片

測試結(jié)果

909d5528-7882-11ee-939d-92fbcf53809c.jpg

批量測試

從實際上板運行l(wèi)og可以看出,最后的特征匹配“matmul Inference”耗時<0.0008s,也就是不到1毫秒就能從1000張圖片中搜索到與文本對應(yīng)的置信度最高的圖片。

4.3 測試二

下面是AX650N上CLIP DEMO的Pipeline分別使用CPU后端和NPU后端運行image encoder模型的耗時&CPU負載對比:

90bf02c2-7882-11ee-939d-92fbcf53809c.jpg

CPU版本

90c95024-7882-11ee-939d-92fbcf53809c.jpg

NPU版本

Pipeline各模塊統(tǒng)計

CPU

NPU

耗時

440 ms

7 ms

CPU負載

(滿載800%)

397%

90%

內(nèi)存占用

1181 MiB

460 MiB

4.3 測試三

前面介紹的是Meta開源的英文語料的CLIP模型,當(dāng)然也有社區(qū)大佬提供了中文語料微調(diào)模型:

輸入圖片集:

90f35c0c-7882-11ee-939d-92fbcf53809c.png

input images

輸入文本:“金色頭發(fā)的小姐姐”

輸出結(jié)果:

9102caf2-7882-11ee-939d-92fbcf53809c.jpg

CLIP中文示例

交互示例

我們最近還更新了基于愛芯派Pro的交互式以文搜圖示例,更加直觀的展現(xiàn)其功能。

● Demo安裝步驟可參考

https://github.com/AXERA-TECH/CLIP-ONNX-AX650-CPP/releases

結(jié)束語

隨著Vision Transformer網(wǎng)絡(luò)模型的快速發(fā)展,越來越多有趣的AI應(yīng)用將逐漸從云端服務(wù)遷移到邊緣側(cè)設(shè)備和端側(cè)設(shè)備。例如基于本文提及到的CLIP模型,在端側(cè)可以實現(xiàn)以下場景應(yīng)用:

事件抓拍相機,實時抓拍監(jiān)控場景下各種突發(fā)事件

事件快速回溯,從海量的視頻數(shù)據(jù)中快速找到某一特點人物和事件

智能NAS,家用私有網(wǎng)盤不再擔(dān)心找不到照片

同時為了降低社區(qū)開發(fā)者Transformer模型在邊緣側(cè)移植的研究門檻,業(yè)界優(yōu)秀的開源智能硬件公司矽速科技推出的基于AX650N的社區(qū)開發(fā)板愛芯派Pro(MAIX-IV)已經(jīng)正式上架,歡迎關(guān)注。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像識別
    +關(guān)注

    關(guān)注

    9

    文章

    516

    瀏覽量

    38196
  • 計算機視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1690

    瀏覽量

    45878
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1199

    瀏覽量

    24594

原文標(biāo)題:愛芯分享 | 基于AX650N+CLIP的以文搜圖展示

文章出處:【微信號:愛芯元智AXERA,微信公眾號:愛芯元智AXERA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    TPA3220功放的OTW_CLIP管腳會異常拉低,為什么?

    當(dāng)功放的功率達到120W時,TPA3220功放的OTW_CLIP管腳會異常拉低。 正常情況下FAULT和OTW_CLIP管腳均為高電平,如圖為FAULT和OTW_CLIP管腳的真值表
    發(fā)表于 09-29 09:04

    TAS5630電路PBTL接法,CLIP燈無法滅是怎么回事?

    TAS5630電路PBTL接法,正在測試時CLIP信號燈亮(CLIP低電平),輸出為0,無論重新開機或人工復(fù)位,均不能使得CLIP燈滅,請大俠教我。謝謝。
    發(fā)表于 09-03 07:58

    愛芯元智推出邊端側(cè)智能SoCAX650N,讓視覺更智能

    當(dāng)前大模型蓬勃發(fā)展,OpenAI的Sora、ChatGPT、CLIP、DALL-E,Google的Gemini、ViT-22B,Meta的LLaMA3、DINO v2,
    的頭像 發(fā)表于 05-09 14:39 ?1293次閱讀
    愛芯元智推出邊端側(cè)智能SoCAX<b class='flag-5'>650N</b>,讓視覺更智能

    TPAK SiC優(yōu)選解決方案:有壓燒結(jié)銀+銅夾Clip無壓燒結(jié)銀

    TPAK SiC優(yōu)選解決方案:有壓燒結(jié)銀+銅夾Clip無壓燒結(jié)銀
    的頭像 發(fā)表于 04-25 20:27 ?520次閱讀
    TPAK SiC優(yōu)選解決方案:有壓燒結(jié)銀+銅夾<b class='flag-5'>Clip</b>無壓燒結(jié)銀

    愛芯元智AX620E和AX650系列芯片正式通過PSA Certified安全認證

    萬物互聯(lián)的時代,安全性已成為物聯(lián)網(wǎng)產(chǎn)品設(shè)計及部署的基本要求。近日,愛芯元智AX620E和AX650系列芯片(包含AX630C/AX620Q/AX65
    的頭像 發(fā)表于 04-23 15:45 ?693次閱讀
    愛芯元智<b class='flag-5'>AX</b>620E和<b class='flag-5'>AX650</b>系列芯片正式通過PSA Certified安全認證

    650V 75A溝槽和場阻IGBT JJT75N65HE數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《650V 75A溝槽和場阻IGBT JJT75N65HE數(shù)據(jù)手冊.pdf》資料免費下載
    發(fā)表于 04-10 18:01 ?0次下載

    650V 40A溝槽和場阻IGBT JJT40N65UH數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《650V 40A溝槽和場阻IGBT JJT40N65UH數(shù)據(jù)手冊.pdf》資料免費下載
    發(fā)表于 04-10 17:10 ?0次下載

    650V 10A溝槽和場阻IGBT JJT10N65SC資料文檔

    電子發(fā)燒友網(wǎng)站提供《650V 10A溝槽和場阻IGBT JJT10N65SC資料文檔.pdf》資料免費下載
    發(fā)表于 04-08 17:15 ?1次下載

    N76E003芯片Xdata使用超過650就會不穩(wěn)定了的原因?怎么解決?

    N76E003這款芯片的Xdata,使用超過650,就會有各種奇怪的問題產(chǎn)生了,以前就遇到過這樣的問題,當(dāng)時是定時器莫名變慢了,找了半天找不到原因,后面清了一些變量,釋放了一些Xdata空間
    發(fā)表于 01-17 07:02

    【愛芯派 Pro 開發(fā)板試用體驗】ax650使用ax-pipeline進行推理

    /AXERA-TECH/ax-pipeline.git 下載sdk cd ax-pipeline ./download_ax_bsp.sh ax650 cd
    發(fā)表于 12-19 17:36

    更強!Alpha-CLIP:讓CLIP關(guān)注你想要的任何地方!

    然而CLIP必須整張圖片作為輸入并進行特征提取,無法關(guān)注到指定的任意區(qū)域。然而,自然的2D圖片中往往包含不同的物體,part和thing。如果能由用戶或檢測模型指定需要關(guān)注的區(qū)域,在圖像編碼的過程就確定需要關(guān)注的對象,將會提升CLIP
    的頭像 發(fā)表于 12-10 10:28 ?902次閱讀
    更強!Alpha-<b class='flag-5'>CLIP</b>:讓<b class='flag-5'>CLIP</b>關(guān)注你想要的任何地方!

    【愛芯派 Pro 開發(fā)板試用體驗】愛芯元智AX650N部署yolov8s 自定義模型

    愛芯元智AX650N部署yolov8s 自定義模型 本博客將向你展示零基礎(chǔ)一步步的部署好自己的yolov8s模型(博主展示的是自己訓(xùn)練的手寫數(shù)字識別模型),本博客教你從訓(xùn)練模型到轉(zhuǎn)化成利于
    發(fā)表于 11-24 20:40

    【愛芯派 Pro 開發(fā)板試用體驗】愛芯元智AX650N部署yolov5s 自定義模型

    愛芯元智AX650N部署yolov5s 自定義模型 本博客將向你展示零基礎(chǔ)一步步的部署好自己的yolov5s模型(博主展示的是安全帽模型),利用yolov5 官方的代碼工具導(dǎo)出onnx模型,并通過
    發(fā)表于 11-16 19:34

    【愛芯派 Pro 開發(fā)板試用體驗】篇一:開箱篇

    愛芯派 Pro (AXera-Pi Pro)M4N Dock 是一款集成了高算力、高能效 AI SOC 的開發(fā)板。它采用了愛芯 AX650N 作為主控芯片。AX650N 集成了 8 核 A55
    發(fā)表于 11-15 11:32

    如何利用CLIP 的2D 圖像-文本預(yù)習(xí)知識進行3D場景理解

    自我監(jiān)督學(xué)習(xí)的目的是獲得有利于下游任務(wù)的良好表現(xiàn)。主流的方法是使用對比學(xué)習(xí)來與訓(xùn)練網(wǎng)絡(luò)。受CLIP成功的啟發(fā),利用CLIP的預(yù)訓(xùn)練模型來完成下游任務(wù)引起了廣泛的關(guān)注。本文利用圖像文本預(yù)先訓(xùn)練的CLIP知識來幫助理解3D場景。
    的頭像 發(fā)表于 10-29 16:54 ?1264次閱讀
    如何利用<b class='flag-5'>CLIP</b> 的2D 圖像-文本預(yù)習(xí)知識進行3D場景理解