【AIoT智慧烟感检测系统】SiPEED MAIX Bit K210开发板上手体验
[复制链接]
本帖最后由 Steve-George 于 2022-10-23 08:54 编辑
1.核心板介绍
Kendryte K210是一块具备机器视觉能力以及机器听觉能力的系统级芯片(SOC)。它使用了台积电超低功耗的28纳米先进制程同时拥有着双核64位处理器,使其具备更好的低功耗视觉实力速度与准确率。K210也具备了卷积人工神经网络硬件加速器KPU,可以高性能的进行卷积人工神经网络运算。其主要运用于物联网领域。使用该芯片可以实现人脸检测和人脸识别、实时获取被检测目标的种类、以机器视觉与机器听觉对目标进行跟踪等功能。在本文中,将采用SiPEED公司MAIX产品线的MAIX Bit开发板对其进行讨论。
1.1基本外观:
1.2 K210芯片基本参数
内核
|
RISC-V Dual Core 64bit, with FPU
|
主频
|
400MHz (可超频至600MHz)
|
SRAM
|
内置8M Byte
|
图像识别
|
QVGA@60fps/VGA@30fps
|
语音识别
|
麦克风阵列(8mics)
|
网络模型
|
支持YOLOv3
Mobilenetv2
TinyYOLOv2
人脸识别等
|
深度学习
|
支持TensorFlow \ Keras \ Darknet \ Caffe 等主流框架
|
外设
|
FPIOA、 UART、 GPIO、 SPI、 I2C、I2S、 TIMER
|
视频处理
|
神经网络处理器(KPU)
FPU满足IEEE754-2008标准
音频处理器(APU)
快速傅里叶变换加速器(FFT)
|
1.3开发板参数
板载资源
|
按键*2
RGB灯*1
MEMS Microphone*1
USB to UART
128Mbit Flash*1
|
板载接口
|
USB Type-C接口
24PIN DVP摄像头接口
24PIN LCD接口
MicroSD卡槽
所有IO排针引脚引出
|
尺寸
|
53.3*25.4mm
|
供电电压
|
5.0V @ 300mA(供电电流需大于300mA)
|
工作温度
|
-30℃ ~85C
|
2.MaixPy IDE安装
2.1 下载安装包
下载链接:https://dl.sipeed.com/MAIX/MaixPy/ide/
下载文件:maixpy-ide-windows-0.2.5.exe
2.2 安装
双击.exe安装运行程序,跟随引导完成安装即可。
2.3 使用IDE
打开MaixPy IDE,工具→选择开发板→Sipeed Maix Bit(with Mic)(如图1所示),点击连接按钮并运行,若运行成功则出现图像如图2、图3。
图1
图2
图3
3.运行案例
本节将简单讲解使用此开发板进行识别是否佩戴口罩,在kflash_gui中将模型下载到flash中,地址为0x300000,在main.py中输入如下代码:
import sensor, image, lcd, time
import KPU as kpu
color_R = (255, 0, 0)
color_G = (0, 255, 0)
color_B = (0, 0, 255)
class_IDs = ['no_mask', 'mask']
def drawConfidenceText(image, rol, classid, value):
text = ""
_confidence = int(value * 100)
if classid == 1:
text = 'mask: ' + str(_confidence) + '%'
color_text=color_G
else:
text = 'no_mask: ' + str(_confidence) + '%'
color_text=color_R
image.draw_string(rol[0], rol[1], text, color=color_text, scale=2.5)
lcd.init()
sensor.reset(dual_buff=True)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_hmirror(0)
sensor.run(1)
task = kpu.load(0x300000)
anchor = (0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823)
_ = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
img_lcd = image.Image()
clock = time.clock()
while (True):
clock.tick()
img = sensor.snapshot()
code = kpu.run_yolo2(task, img)
if code:
totalRes = len(code)
for item in code:
confidence = float(item.value())
itemROL = item.rect()
classID = int(item.classid())
if confidence < 0.52:
_ = img.draw_rectangle(itemROL, color=color_B, tickness=5)
continue
if classID == 1 and confidence > 0.65:
_ = img.draw_rectangle(itemROL, color_G, tickness=5)
if totalRes == 1:
drawConfidenceText(img, (0, 0), 1, confidence)
else:
_ = img.draw_rectangle(itemROL, color=color_R, tickness=5)
if totalRes == 1:
drawConfidenceText(img, (0, 0), 0, confidence)
_ = lcd.display(img)
print(clock.fps())
_ = kpu.deinit(task)
接Maix Bit后运行,可得如下结果,基于此,便可判别是否佩戴口罩。
|