揭秘|算豐TDL SDK:打造高效智能應用的神秘武器!
算豐TDL SDK 是一款集成算法開(kāi)發(fā)包,提供了便捷的編程接口,使開(kāi)發(fā)者們能夠更快、高效地將各種智能技術(shù)應用于自己的產(chǎn)品和服務(wù)中。無(wú)論開(kāi)發(fā)者是否是智算領(lǐng)域的專(zhuān)家,有了這個(gè)SDK作為助手,都能輕松構建智能應用。
開(kāi)發(fā)者們可以利用這一簡(jiǎn)單易用的工具,把更多精力放在算法模型、應用創(chuàng )新和優(yōu)化上,而不必耗費大量時(shí)間去處理模型部署相關(guān)的問(wèn)題。今天,就讓我們來(lái)領(lǐng)略它是如何助力開(kāi)發(fā)者來(lái)構建指南應用。
一、TDL SDK:智能開(kāi)發(fā)的得力助手
算豐推出的TDL SDK,支持眾多常用算法,提供了統一友好的編程接口及詳盡的配套開(kāi)發(fā)文檔。這意味著(zhù)開(kāi)發(fā)者們即便是初次嘗試,也能迅速掌握并開(kāi)始高效的開(kāi)發(fā)工作,大大縮減了開(kāi)發(fā)者在應用程序開(kāi)發(fā)上所需的時(shí)間。
下圖是TDL SDK的系統架構圖,基于算豐自研的Middleware和TPU SDK,包括內部?jì)纱竽K(Core和Service)、算法C接口、算法應用(Application)。
?
圖1 TDL SDK系統框架
Core提供了算法相關(guān)接口,封裝復雜的底層操作及算法細節,在內部會(huì )對模型進(jìn)行相應的前后處理,并完成推理。Service提供算法相關(guān)輔助API,例如:繪圖, 特征比對, 區域入侵判定等功能。C接口實(shí)現對現有現有算法模塊的功能封裝,除了支持TDL SDK內部模型外,還支持開(kāi)發(fā)者自有模型(需按文檔進(jìn)行模型轉換)。Application封裝應用邏輯,如包含人臉抓拍的應用邏輯。
二、如何使用TDL SDK?
使用TDL SDK非常簡(jiǎn)單,首先我們需要在算豐的開(kāi)發(fā)者論壇
https://developer.sophgo.com/thread/556.html下載我們的TDL SDK。
接下來(lái)我們以YOLO V8模型為例,演示如何借助TDLSDK,快速將模型部署到算豐開(kāi)發(fā)板上。
- 準備YOLO V8 的pt/onnx模型。首先我們可以從yolov8的官方倉庫(https://github.com/ultralytics/ultralytics)中獲取到pt模型文件,并進(jìn)行下載。
- 將pt模型轉換為onnx,再由onnx轉換為部署模型所需的cvimodel文件。
這里大家可以參考這份文檔來(lái)進(jìn)行模型轉換,里面有非常詳細的指令說(shuō)明:
https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/zh/01.software/TPU/YOLO_Development_Guide/build/html/index.html
- 配置交叉編譯環(huán)境?wget
https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gztar xvf host-tools.tar.gzcd?host-tools
export?PATH=$PATH:$(pwd)/gcc/riscv64-linux-musl-x86_64/bin - 編譯cvitek_tdl_sdk/* 進(jìn)入到cvitek_tdl_sdk的sample目錄下并執行一鍵編譯*/
chmod 777 compile_sample.sh./compile_sample.sh - 配置開(kāi)發(fā)板的環(huán)境變量 將編譯好的程序放到算能開(kāi)發(fā)板上后,我們還需要引入依賴(lài)庫路徑,才能完成實(shí)際的部署。export?LD_LIBRARY_PATH=/tmp/lfh/cvitek_tdl_sdk/lib:\
/tmp/lfh/cvitek_tdl_sdk/sample/3rd/opencv/lib:\/tmp/lfh/cvitek_tdl_sdk/sample/3rd/tpu/lib:\/tmp/lfh/cvitek_tdl_sdk/sample/3rd/ive/lib:\/tmp/lfh/cvitek_tdl_sdk/sample/3rd/middleware/v2/lib:\/tmp/lfh/cvitek_tdl_sdk/sample/3rd/lib:\/tmp/lfh/cvitek_tdl_sdk/sample/3rd/middleware/v2/lib/3rd:
注: /tmp/lfh為示例中開(kāi)發(fā)板的掛載文件夾,請以你的實(shí)際路徑為準。
- 部署完成,運行模型chmod 777 sample_yolov8
- ./sample_yolov8 /tmp/lfh/yolov8n_headperson.cvimodel?/tmp/lfh/pic1.jpg
指令運行成功,即可說(shuō)明我們的模型已經(jīng)順利移植部署到了板子上啦。以下為可視化展示(mAP(0.5): 86.4%):
?
圖2 人形人頭檢測
除了單獨的人形檢測,我們也提供了基于yolo v8推理的人形與交通工具的檢測(mAP(0.5): 81.8%),客流統計(平均準確率: 96.3%)等等;
?
圖3 客流統計
三、TDL SDK支持哪些算法?
TDL SDK作為一個(gè)便捷的開(kāi)發(fā)工具包,就像是一個(gè)種類(lèi)豐富的算法超市,涵蓋了各種智能應用場(chǎng)景。以下我們列出了當前已經(jīng)支持的算法:
?
上述的常用算法,大部分都已經(jīng)在實(shí)際項目中落地,并且也在不斷優(yōu)化迭代,開(kāi)發(fā)者可以自行體驗。除了支持已有的模型,TDL SDK還開(kāi)放同類(lèi)模型的推理接口,開(kāi)發(fā)者只要參考文檔導出模型,可以直接用現有接口推理其自有模型。不僅如此,除了列表里提到的部分,TDL SDK還在不斷維護升級,以支持更多的主流算法。
四、結語(yǔ)
TDL SDK就像是打開(kāi)智能世界大門(mén)的鑰匙,可以幫助開(kāi)發(fā)者快速上手智能開(kāi)發(fā)。如果你正在尋找一款高效、易用的智能開(kāi)發(fā)工具包,那么TDL SDK絕對是你的不二之選!期待與你一起開(kāi)拓智能化的新時(shí)代!