K210是個啥
K210是由一家叫做嘉楠的曾經做挖礦芯片的公司推出的一款MCU,其特色在於芯片架構中包含了一個自研的神經網絡硬件加速器KPU,可以高性能地進行卷積神經網絡運算。值得注意的是,在AI計算方面,K210的算力是相當可觀的,根據嘉楠官方的描述,K210的KPU算力有0.8TOPS 。下圖列出了芯片一些具體參數。
關於Sipeed和MaixPy
Sipeed就是之前做荔枝派的那家公司了,MaixPy 項目的啟動,契機是 K210 芯片流片完成。於是大家想着做一套讓更多人在嵌入式使用的 AI 開發的易使用的軟件套件, 因為Micropython的易用性,而且 k210 有 6+2MiB 內存,主頻 400MHz,完全能夠駕馭Micropython, 故選擇了Micropython作為編程語法。有關MaixPy的使用以及能做的事情請點這里
從SD中運行人臉識別模型
Sipeed官方對於人臉識別的模型和腳本可訪問這里MaixPy實現人臉識別。下面詳細介紹怎樣把模型放在SD卡中加載,節約內部SRAM空間。建議大家后續的使用模型存放SD卡中
官方是將模型和MaixPy固件打包成一個kfpkg包,其實.kfpkg就是一個.zip壓縮包,按照官方教程下載后修直接修改后綴名為.zip,解壓后得到模型和固件,如下圖:
我們復制其中三個.smodel模型文件到SD中(文件名可修改,但一定要是通過自己的機器碼下載的模型,因為.smodel是加密模型),開發板中燒錄的固件最好是僅支持IDE的最小MaixPy固件,我這里使用的是maixpy_v0.5.1_128_g43d665c05_minimum_with_ide_support.bin
。使用kpu.load()
從SD卡中讀取模型文件即可使用,例如:
import KPU as kpu
task_fd = kpu.load("/sd/FD_face.smodel") # 加載人臉檢測模型
task_ld = kpu.load("/sd/KP_face.smodel") # 加載人臉五點關鍵點檢測模型
task_fe = kpu.load("/sd/FE_face.smodel") # 加載人臉196維特征值模型