隨著人工智慧技術的飛速進步,物聯網(IoT)設備也在AI的推動下不斷升級換代。開源模型層出不窮,推動了設備在AI功能上的大幅提升。當然,這一切都離不開硬體技術的革新。為了提高模型的推理速度和降低能耗,眾多製造商紛紛採用NPU(神經網絡處理單元)來運行模型。在這方面,Synaptics在AIoT領域投入了大量研發資源,推出了今年的重點產品——嵌入式SoC SL1680。該產品內置高達7.9TOPS的NPU性能,並配備了四核A73 ARM CPU、4K視頻編解碼能力,以及多種外圍接口,支持Linux和Android系統,能夠滿足大多數AIoT功能需求。
應用案例包括:
家庭智能安全網關(或中控)
工業自動化控制系統
智能機頂盒
智能會議系統
智能廣告顯示屏
在傳統的安防系統中,許多攝像頭並不具備AI功能,對於追蹤或數據統計等任務,往往需要人工操作。而這些繁瑣且重複的工作正是AI的強項。那麼,如何讓舊有系統和設備擁有這樣的能力呢?AI中樞(AI Hub)是一個理想的解決方案。通過SL1680豐富的外圍接口和連接線,可以從有線或無線網絡中收集攝像頭數據,並依託其強大的NPU運行多功能模型,實現物體識別、檢測、統計乃至實時響應等功能。
方案實現:
- 下載軟體:Synaptics 的SL1680 軟體代碼是開源的,可以直接到官網下載,或者在Releases · synaptics-astra/sdk (github.com) 網站下載預編譯文件
- 燒錄軟體:SL1680支持USB燒錄(PC到板子)或U盤燒錄。參考Astra Yocto Linux User Guide — Synaptics Astra SDK User Guide 1.0.0 documentation (synaptics-astra.github.io)
- 上電後,接入usb攝像頭,並用cmd使用adb連接開發板
- 輸入v4l2-ctl --list-devices 查看usb攝像頭設備號(可插多個攝像頭)
- 輸入v4l2-ctl -d /dev/video6 --list-formats-ext –all 查看攝像頭支持參數(後續選擇對應參數設置gstreamer)
測試驗證:
- Usb連接開發,在cmd中輸入adb shell 進入linux命令行界面
- 輸入以下變量以配置圖像顯示參數
- 輸入syna-ai-player --mach=sl1680 可以看到qt的界面,用鼠標選擇想用的功能
進階測試:
修改multi-AI的配置文件,讓多個AI模型共同作用在一個輸入源上
- 輸入
vi /home/root/demos/qmls/panels/MultiAi.qml
- 定位到40行的GridItem
- 修改type數值為1,這樣運行時就只會執行command1
- 刪除command2~command4的內容
- 替換command1的內容為
v4l2src device=/dev/video6 ! video/x-raw,framerate=30/1,format=YUY2,width=640,height=480 ! videoconvert ! \
tee name=t_data t_data. ! queue ! videoconvert ! videoscale ! video/x-raw,width=640,height=384,format=RGB ! synapinfer model=/usr/share/synap/models/object_detection/coco/model/yolov8s-640x384/model.synap mode=detector frameinterval=3 ! overlay1.inference_sink \
t_data. ! queue ! videoconvert ! videoscale ! video/x-raw,width=640,height=480,format=RGB ! synapinfer model=/usr/share/synap/models/object_detection/face/model/yolov5s_face_640x480_onnx_mq/model.synap mode=detector frameinterval=3 ! overlay2.inference_sink \
t_data. ! queue ! videoconvert ! videoscale ! video/x-raw,width=640,height=352,format=RGB ! synapinfer model=/usr/share/synap/models/object_detection/body_pose/model/yolov8s-pose/model.synap mode=detector frameinterval=3 ! overlay3.inference_sink \
t_data. ! queue ! synapoverlay name=overlay1 label=/usr/share/synap/models/object_detection/coco/info.json ! videoconvert ! \
queue ! synapoverlay name=overlay2 ! videoconvert ! \
queue ! synapoverlay name=overlay3 ! videoconvert ! waylandsink fullscreen=true - 保存內容,退出
- 再次運行syna-ai-player --mach=sl1680,選擇multi-AI功能
- 就會看到只有一個顯示界面,裡面有物體識別,人臉識別,體態識別三個模型識別的結果
此外,這種應用並不局限於本地USB攝像頭。實際上,上文提到的命令是基於GStreamer的,GStreamer以其強大的功能而廣受好評,它支持多種輸入和輸出源。因此,通過修改相應的命令,可以實現對不同輸入輸出源的支持,這也是其能夠成為AI HUB的原因之一。
FAQ:
Q1: SL1680支持RTOS操作系統?
A1: 目前還沒有,有計劃支持RTOS。
Q2: GStreamer命令在AIoT設備中有什麼作用?
A2: GStreamer命令可以處理多種輸入和輸出源,使AIoT設備能夠靈活地處理來自不同來源的數據,並輸出到所需的目標設備或平台。
Q3: AIoT設備在智能家居中有哪些實際應用?
A3: 在智能家居中,AIoT設備可以用於智能照明、溫度控制、安全監控、語音助手等多種功能,提高居家的便利性和安全性。
Q4:模型格式有什麼要求,需要轉換嗎?
A3:可以不轉換,能直接運行TensorFlowLite、ONNX和Caffe模型,但是啟動時間和推理時間會長一點點,推薦轉換成synap格式,以獲取更好的性能,轉換工具的使用也很方便。
Q5: 模型支持異構推理嗎?
A5:一個模型可以同時支持NPU,GPU,CPU異構推理,還可以指定網絡層精度來實現混合精度
►場景應用圖
通義萬相AI生成圖
►展示板照片
Astra
►方案方塊圖
Astra
►晶片框圖
synaptics
►核心技術優勢
- 強大的7.9TOPS NPU計算能力 - 多模態、低成本的AIoT SoC解決方案 - 4K級硬體編解碼能力 - 豐富的外圍設備接口 - 與Synaptics卓越的連接能力相匹配
►方案規格
CPU: Quad-core Arm® Cortex®-A73 64-bit processor with security extensions. Up to 2.1 GHz for each CPU, delivering up to 40000 DMIPS Memory Interface: 64/32-bit LPDDR4/LPDDR4x-3733 DRAM controller, up to 4 GB memory space. x1, x4 or x8-bit eMMC 5.1 Controller NPU: Support for multiple DNN frameworks and optimized for TensorFlow™ Lite inferencing via the SyNAP™ toolkit. Up to 7.9+ TOPS GPU: based graphics engine (Imagination™ PowerVR™ Series9XE GE9920) Up to 3840x2160 resolution Video Decoding: with support for AV1, H.265/264 MVC, VP8, VP9, MPEG-2. Flexible support for PIP (2160p60/2160p60) and Multi-View (1 x 2160p60 and 3 x 1080p60) Video Encoding: Multi-stream encoding for H.264, VP8 and simultaneous 2160p60 decode and 1080p60 encode Other: On-chip 32 Kbit OTP System and power management unit Video, audio via MIPI CSI-2, MIPI DSI, HDMI,I2S/TDM Gbit networking, PCIe connectivity SPI, SDIO, UART, USB, GPIO, ADCs