<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

基于AX650N/AX620Q部署YOLO-World

愛芯元智AXERA ? 來源:愛芯元智AXERA ? 2024-04-17 15:36 ? 次閱讀

背景

目標檢測計算機視覺領域一項重要的任務。開集目標檢測(Open-set Object Detection)與閉集目標檢測(Closed-set Object Detection)是目標檢測領域的兩個概念。

之前我們已經適配了基于Transformer結構的開集目標檢測經典之作:OWL-ViT(Open-World Localization with Vision Transformers)。去年大模型、多模態模型學術界的研究也取得了爆發式的進展,代表作是由IDEA-Research提出的GroundingDINO ,雖然GroundingDINO效果不錯,但畢竟是學術界的成果,在邊緣側/端側AI芯片上部署性能并不容易和理想。

到了2024年,是否學術界/工業級已經迭代出了更快、更強、更易部署的開集目標檢測模型了呢?

當然有!它就是接下來走馬觀花分享的開集目標檢測工業級力作:YOLO-World。同時我們還嘗試在AX650N、AX620Q上完成端到端的部署,給行業內對邊緣側/端側部署開集目標檢測模型的愛好者提供一種新的思路。

YOLO-World介紹

● 官方在線DEMO:

https://www.yoloworld.cc/

● 論文傳送門:

https://arxiv.org/pdf/2401.17270

● Github項目:

https://github.com/AILab-CVC/YOLO-World

YOLO-World由Tencent AI Lab、ARC Lab (AI Research Center) at Tencent PCG (Platform and Content Group) 以及華中科技大學電子信息通信學院(School of EIC, Huazhong University of Science & Technology)合作提出的一個創新的實時開放詞匯目標檢測方法,它通過結合視覺-語言建模和大規模數據集上的預訓練,增強了YOLO(You Only Look Once)檢測器的開放詞匯檢測能力。

970e446a-fc8c-11ee-a297-92fbcf53809c.jpg

YOLO-World的主要貢獻和特點包括:

●開放詞匯檢測能力:YOLO-World能夠檢測超出預定義類別的更廣泛對象,這對于現實世界的復雜場景非常有用,因為現實世界中的對象類別是多樣且不斷變化的;

● 高效率:YOLO-World在保持高準確度的同時,還實現了高效率的檢測,這對于需要實時處理的應用場景(如自動駕駛、監控等)至關重要;

971eb4d0-fc8c-11ee-a297-92fbcf53809c.jpg

●Re-parameterizable Vision-Language Path Aggregation Network (RepVL-PAN):提出了一個新的網絡結構RepVL-PAN,它通過更好的視覺-語義表示來增強文本和圖像特征之間的交互;

97223060-fc8c-11ee-a297-92fbcf53809c.jpg

●區域-文本對比損失:引入了一種新的區域-文本對比損失函數,以促進模型學習區域和文本之間的對應關系,這對于開放詞匯檢測的性能至關重要;

● 預訓練方案:論文提出了一種有效的預訓練方案,通過在大規模檢測、定位和圖像-文本數據集上進行區域-文本對比學習,將檢測數據、定位數據和圖像-文本數據統一為區域-文本對;

●零樣本性能:在LVIS數據集上的實驗結果表明,YOLO-World在零樣本設置下取得了35.4的平均精度(AP),同時保持了52.0 FPS的高幀率,這顯示了其在大規模詞匯檢測上的強大能力(精度&速度均領先 GLIP和Grounding DINO);

97363510-fc8c-11ee-a297-92fbcf53809c.jpg

●下游任務的適應性:預訓練后的YOLO-World在多個下游任務上表現出色,包括對象檢測和開放詞匯實例分割,這表明了其良好的泛化能力;

●開源代碼和模型:論文承諾將預訓練的權重和代碼開源,以便于更多的實際應用和進一步的研究。

總的來說,YOLO-World的提出為實時目標檢測領域帶來了新的視角,特別是在處理開放詞匯和提高模型泛化能力方面,它的創新方法和優異性能為未來的目標檢測研究和應用奠定了基礎。

愛芯派Pro(AX650N)

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

愛芯派Zero(AX620Q)

搭載愛芯元智第四代智能視覺芯片AX620Q,該芯片集成新一代智眸4.0 AI-ISP,最高支持5MP@30fps實時真黑光,同時集成新一代通元4.0高性能、場景優化的NPU引擎,使得產品低功耗、高畫質、智能處理和分析等方面行業領先。提供穩定易用的SDK軟件開發包,方便用戶低成本評估、二次開發和快速量產。幫助用戶在智能家居應用和其他AIoT項目中發揮更大的價值。

模型獲得

相關材料

為方便大家轉換,我們提供一些必要的參考文件:

https://pan.baidu.com/share/init?surl=HIXFkv_OjqbnTx-9WhZ00Q&pwd=y94b

文件名 描述
ax620e文件夾 包含適用于 AX630C/AX620Q的DEMO 和NPU模型文件axmodel
ax650文件夾 包含適用于AX650A/AX650N 的DEMO和NPU模型文件 axmodel
onnx_edit.py onnx yolo world后處理裁剪腳本
ssd_horse.jpg 測試圖片
yolo_world_v2_s_xxx-sub.onnx 已導出的ONNX模型
yolo_world.json pulsar2 build依賴的配置文件

ONNX導出

雖然YOLO World相比Grounding DINO在工業部署上已經方便很多,但由于開集目標檢測網絡結構必然的復雜性,仍然存在一些Trick值得深究。因此我們熟悉的創新模型部署大佬(ZHEQIUSHUI)貢獻了一些微不足道的修改(YOLO -World Optimize,https://github.com/ZHEQIUSHUI/YOLO-World/tree/not_einsum),在不影響精度的情況下,讓后續的上板部署更佳便捷。

python環境安裝

conda create --name=yolo_world python=py3.9
conda activate yolo_world

其他依賴安裝

pip install torch==1.11.0+cpu torchvision==0.12.0+cpu torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cpu -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mmcv==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mmdet==3.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnx onnxruntime onnxsim -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install transformer -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install git+https://github.com/lvis-dataset/lvis-api.git -i https://pypi.tuna.tsinghua.edu.cn/simple

YOLO-World安裝并下載權重

git clone -b not_einsum --recursive https://github.com/ZHEQIUSHUI/YOLO-World.git
cd YOLO-World
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
wget https://huggingface.co/wondervictor/YOLO-World/resolve/main/yolo_world_s_clip_base_dual_vlpan_2e-3adamw_32xb16_100e_o365_goldg_train_pretrained-18bea4d2.pth

導出ONNX

python deploy/export_onnx.py configs/pretrain/yolo_world_v2_s_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py ./yolo_world_v2_s_obj365v1_goldg_pretrain-55b943ea.pth --custom-text data/texts/coco_class_texts.json --opset 11 --device cpu --model-only --simplify

完成以上操作后,我們將得到yolo_world_v2_s_obj365v1_goldg_pretrain-55b943ea.onnx模型。

模型轉換

ONNX模型優化

在使用pulsar2工具鏈轉換之前,先對前一步獲得的yolo_world_v2_s_xxx.onnx模型進行必要的計算圖優化,便于提高模型部署效率。使用onnx_edit.py優化完成后,將獲得yolo_world_v2_s_xxx-sub.onnx。

import onnx


input_path = "work_dir/yolo_world_v2_s_obj365v1_goldg_pretrain-55b943ea.onnx"
output_path = "work_dir/yolo_world_v2_s_obj365v1_goldg_pretrain-55b943ea-sub.onnx"
input_names = ["images"]
output_names = [
  "onnx::Reshape_1191",
  "onnx::Reshape_1260",
  "onnx::Reshape_1329",
  
  "onnx::Reshape_1172",
  "onnx::Reshape_1241",
  "onnx::Reshape_1310",
]


onnx.utils.extract_model(input_path, output_path, input_names, output_names)
9806b190-fc8c-11ee-a297-92fbcf53809c.jpg981b7ef4-fc8c-11ee-a297-92fbcf53809c.jpg981f4886-fc8c-11ee-a297-92fbcf53809c.jpg

Pulsar2編譯

Pulsar2是新一代AI工具鏈,包含模型轉換、離線量化、模型編譯、異構調度四合一超強功能,進一步強化了網絡模型高效部署的需求。在針對第三代、第四代NPU架構進行了深度定制優化的同時,也擴展了算子&模型支持的能力及范圍,對Transformer結構的網絡也有較好的支持。

983df22c-fc8c-11ee-a297-92fbcf53809c.png

一鍵完成圖優化、離線量化、編譯、對分功能。整個過程耗時不到2分鐘,log信息量很大。

qtang@gpux2:$ pulsar2 build --input yolo_world_v2_s_obj365v1_goldg_pretrain-55b943ea-sub.onnx 
--config yolo-world.json 
--output_dir output 
--target_hardware AX650 
--npu_mode NPU3 --output_name yolo_world_s_u8_npu3.axmodel


32 File(s) Loaded.
Building onnx ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
                          Quant Config Table
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳┓
┃ Input ┃ Shape      ┃ Dataset Directory ┃ Data Format ┃ Tensor Format ┃ Mean      ┃ Std         ┃
┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇┩
│ images │ [1, 3, 640, 640] │ images      │ Image    │ BGR      │ [0.0, 0.0, 0.0] │ [255.0, 255.0, 255.0]│
└────────┴──────────────────┴───────────────────┴─────────────┴┘
Transformer optimize level: 1
32 File(s) Loaded.
[00:55:22] AX Set Float Op Table Pass Running ...     Finished.
[00:55:22] AX Set MixPrecision Pass Running ...      Finished.
[00:55:22] AX Transformer Optimize Pass Running ...    Finished.
[00:55:22] AX Set LN Quant dtype Quant Pass Running ...  Finished.
[00:55:22] AX Topk Operation Format Pass Running ...   Finished.
[00:55:22] AX Reset Mul Config Pass Running ...      Finished.
[00:55:22] AX Refine Operation Config Pass Running ...  Finished.
[00:55:22] AX Tanh Operation Format Pass Running ...   Finished.
[00:55:22] AX Confused Op Refine Pass Running ...     Finished.
[00:55:23] AX Quantization Fusion Pass Running ...    Finished.
[00:55:23] AX Quantization Simplify Pass Running ...   Finished.
[00:55:23] AX Parameter Quantization Pass Running ...   Finished.
Calibration Progress(Phase 1): 100%|██████████████████████| 32/32 [00:26<00:00, ?1.23it/s]
Finished.
[0049] AX Quantization Alignment Pass Running ... ? ? Finished.
[0049] AX Refine Int Parameter Pass Running ... ? ? ? Finished.
Finished.
[0050] AX Passive Parameter Quantization Running ... ?Finished.
[0050] AX Parameter Baking Pass Running ... ? ? ? ? ? Finished.
......
Network Quantization Finished.
quant.axmodel export success: 50_output/yolo_world_s/quant/quant_axmodel.onnx
Building native ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 000
......
tiling op... ? ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 253/253 000
new_ddr_tensor = []
build op serially... ? ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 613/613 0:00:07
build op... ? ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1198/1198 0:00:00
.......
2024-04-11 00:56:03.533 | INFO ? ? | yasched.test_onepass2467 - max_cycle = 4,302,999
build jobs ? ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3796/3796 0:00:00
2024-04-11 00:56:08.932 | INFO ? ? | yamain.command.build1110 - fuse 1 subgraph(s)

編譯輸出的文件,保存在output文件夾中,其中 yolo_world_s_u8_npu3.axmodel將用于在AX650N Demo板上運行。

上版部署

AX-Samples

開源項目AX-Samples實現了常見的深度學習開源算法在愛芯元智的AI SoC上的示例代碼,方便社區開發者進行快速評估和適配。

最新版本已開始提供AX650系列(AX650A、AX650N)、AX620E系列(AX630C、AX620E)的NPU示例,其中也包含了本文介紹的YOLO-World參考代碼。

https://github.com/AXERA-TECH/ax-samples

運行

/opt/test # ./ax_yolo_world -i ssd_horse.jpg -m yolo_world_s_u8_npu3.axmodel
--------------------------------------
model file : yolo_world_s_u8_npu3.axmodel
image file : ssd_horse.jpg
img_h, img_w : 640 640
--------------------------------------
Engine creating handle is done.
Engine creating context is done.
Engine get io info is done.
Engine alloc io is done.
Engine push input is done.
--------------------------------------
post process cost time:3.80 ms
--------------------------------------
Repeat 1 times, avg time 4.52 ms, max_time 4.52 ms, min_time 4.52 ms
--------------------------------------
detection num: 6
17: 98%, [ 216,  71, 420, 374], horse
16: 93%, [ 144, 204, 197, 347], dog
13: 86%, [ 469, 149, 499, 178], bench
 0: 76%, [ 431, 124, 451, 178], person
 0: 74%, [ 271,  13, 348, 236], person
 2: 69%, [  0, 105, 133, 196], car
--------------------------------------
9858fa22-fc8c-11ee-a297-92fbcf53809c.jpg

AX650N運行YOLO-World S耗時 <5 ms,完全滿足實時運行需求。

性能統計

目前我們已經完成了基于AX650N、AX630C、AX620Q芯片平臺的YOLO-World適配。

Platform FPS
AX650N 220
AX630C 33
AX620Q 24

結束語

隨著Open-Vocabulary Object Detection網絡模型的快速發展,越來越多有趣的多模態AI應用將逐漸從云端服務遷移到邊緣側設備和端側設備。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編解碼器
    +關注

    關注

    0

    文章

    229

    瀏覽量

    24006
  • 計算機視覺
    +關注

    關注

    8

    文章

    1605

    瀏覽量

    45672
  • PAN
    PAN
    +關注

    關注

    1

    文章

    18

    瀏覽量

    14216
  • 自動駕駛
    +關注

    關注

    773

    文章

    13125

    瀏覽量

    163516
  • AI芯片
    +關注

    關注

    17

    文章

    1681

    瀏覽量

    34467

原文標題:愛芯分享 | 基于AX650N/AX620Q部署YOLO-World

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

收藏 人收藏

    評論

    相關推薦

    愛芯元智發布第三代智能視覺芯片AX650N,為智慧生活賦能

    中國 上海 2023 年 3 月 6 日 ——人工智能視覺感知芯片研發及基礎算力平臺公司愛芯元智宣布推出第三代高算力、高能效比的SoC芯片——AX650N。這是繼AX620、AX630系列
    發表于 03-07 10:57 ?1305次閱讀
    愛芯元智發布第三代智能視覺芯片<b class='flag-5'>AX650N</b>,為智慧生活賦能

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

    ,超高算力的的SoC芯片,這是繼AX620、AX630系列后,第三代高算力、高能效比的SoC芯片——AX650N。支持8K@30fps的ISP,以及H.264、H.265編解碼的VPU。接口方面
    發表于 11-15 11:32

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

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

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

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

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

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

    A356型AX620A開發板產品手冊

    AX620A 是一款高算力,高能效比,低功耗的 AI SoC 芯片。芯片集成了四核 Cortex A7 CPU, 14.4TOPs@INT4 或 3.6TOPs@INT8 的高算力 NPU,支持 4K@30fps 的 ISP,以及支持 H.264、 H.265 編碼的 VPU。
    發表于 10-26 09:49 ?4次下載

    AX8052F1xx、AX-SFxx-1-xx、AX-SFxx-API-1-xx、AX-SIP-SFxx-1-xx 和 AX-SIP-SFxx-API-1-xx 的外部復位信號

    AX8052F1xx、AX-SFxx-1-xx、AX-SFxx-API-1-xx、AX-SIP-SFxx-1-xx 和 AX-SIP-SFx
    發表于 11-15 20:10 ?2次下載
    <b class='flag-5'>AX</b>8052F1xx、<b class='flag-5'>AX</b>-SFxx-1-xx、<b class='flag-5'>AX</b>-SFxx-API-1-xx、<b class='flag-5'>AX</b>-SIP-SFxx-1-xx 和 <b class='flag-5'>AX</b>-SIP-SFxx-API-1-xx 的外部復位信號

    愛芯元智第三代智能視覺芯片AX650N高能效比SoC芯片

    愛芯元智正式推出第三代高算力、高能效比的SoC芯片——AX650N。這是繼AX620、AX630系列后,愛芯元智推出的又一款高性能智能視覺芯片。 AX650N是一款兼具高算力與高能效比
    的頭像 發表于 03-10 17:13 ?3163次閱讀

    基于AX650N部署DETR

    目標檢測作為計算機視覺應用的基礎任務,一直備受行業應用重點關注。從最早學術界的Two-Stage方案Faster-RCNN,到首個利于工業界高效率部署的One-Stage方案SSD(Single
    的頭像 發表于 05-15 14:27 ?558次閱讀
    基于<b class='flag-5'>AX650N</b><b class='flag-5'>部署</b>DETR

    基于AX650N部署EfficientViT

    的速度。為了實現對ViT模型的實時部署,微軟和港中文共同在CVPR2023提出論文《EfficientViT: Memory Efficient Vision Transformer with Cascaded Group Attention》。
    的頭像 發表于 05-26 10:30 ?659次閱讀

    基于AX650N部署SegFormer

    語義分割(Semantic Segmentation)是計算機視覺中的一項基本任務。與單張圖像分類任務相比,語義分割相當于是像素級別上的分類任務。語義分割為許多下游應用特別是近幾年來的智能駕駛技術的落地提供了可能。
    的頭像 發表于 06-20 16:37 ?419次閱讀
    基于<b class='flag-5'>AX650N</b><b class='flag-5'>部署</b>SegFormer

    基于AX650N部署SegFormer

    語義分割(Semantic Segmentation)是計算機視覺中的一項基本任務。與單張圖像分類任務相比,語義分割相當于是像素級別上的分類任務。
    的頭像 發表于 06-20 16:37 ?451次閱讀
    基于<b class='flag-5'>AX650N</b><b class='flag-5'>部署</b>SegFormer

    愛芯元智發布新一代IPC SoC芯片AX630C和AX620Q

    中國 深圳 2023 年 10 月 27 日 ——AI視覺芯片研發及基礎算力平臺公司愛芯元智宣布,發布新一代IPC SoC芯片產品AX630C和AX620Q,以領先行業水平的高畫質、智能處理和分析
    發表于 10-27 16:26 ?582次閱讀
    愛芯元智發布新一代IPC SoC芯片<b class='flag-5'>AX</b>630C和<b class='flag-5'>AX620Q</b>

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

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

    愛芯元智AX620E和AX650芯片獲PSA一級安全認證

    據認證資料顯示,愛芯元智AX620E系列是專為IPC及其他智能視覺應用而生的高性能AI視覺處理器,在高畫質、智能處理和分析等方面均處于業界領先地位。該系列芯片采用Arm? Cortex?-A53雙核處理器,并集成了新一代愛芯智眸4.0 AI-ISP
    的頭像 發表于 04-23 17:04 ?348次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>