K210快速上手教程(色块、人脸、声源识别等) | 您所在的位置:网站首页 › 人脸识别定位追踪什么意思 › K210快速上手教程(色块、人脸、声源识别等) |
k210实现各种功能快速上手
前言开发环境以及材料准备软件Maixpy IDE使用说明识别色块并且串口输出最大色块中心坐标声源方向的坐标识别基于MicroPython的人脸识别
前言
最近想要做一个项目是涉及到目标识别的,我想要实现一个功能就是识别到目标并且把目标的坐标信息通过串口传输给单片机进行控制,那么目前我认为最好的选择就是使用k210了,它不仅成本低,性能好,而且基于MicroPython的开发极易上手,就算是不会python的小萌新也能实现简单的使用,这是各方面完全吊打openmv呀! 首先我来介绍一下什么是k210: 210 是嘉楠(Cannaan)科技的一款集成机器视觉与机器听觉能力的系统级芯片 (RSIC-V CPU)。使用台积电 (TSMC) 超低功耗的 28 纳米先进制程,具有双核 64 位处理器,拥有较好的功耗性能,稳定性与可靠性。该方案力求零门槛开发,可在最短时效部署于用户的产品中,赋予产品人工智能(AI)。 可以说是集性能强劲与高性价比于一身。 开发环境以及材料准备
打开软件后的第一步就是把开发板通过安卓线连接上电脑,然后在电脑的设备管理器处找到对应的COM口。如果没有找到说明电脑没有安装ch340的驱动,这就需要自行百度去安装了。 关于软件的菜单栏,在这里我只介绍工具烂,其他菜单栏的用不上大家完全可以不用管了,如果想要深入学习的小伙伴也可以看一下。 可以把这一段的代码复制到软件里,注意原来的代码要删掉,然后点击绿色的三角形运行,效果如下 大家注意yellow_threshold = (65, 100, -10, 6, 24, 51) 这个赋值语句,大家要把期望识别的颜色的lab值填写到这里,就可以识别对应的颜色了。 代码的功能就是:当摄像头未识别到色块时,串口不会有输出。当识别到色块时,会把最大色块的坐标信息通过串口1,使用波特率115200传输出去(串口,波特率以及对应的引脚都可以自己修改) fm.register(15, fm.fpioa.UART1_RX, force=True) fm.register(17, fm.fpioa.UART1_TX, force=True)这两句代码即是修改串口的tx与rx引脚。其他的代码可以不用去理解,直接用就好了,毕竟本文就是为了快速入门而实现某个特定功能的,想要学习的话是需要先入门学习python的哦。这时候,就可以把这两个引脚连接到单片机,设置波特率为115200就可以实现坐标的接收啦! 声源方向的坐标识别从亚马逊的 Alexa、 google 智能音箱到国内的天猫精灵、小爱同学等智能音箱都有一个共同的功能,那就是声源定位,其原理是利用多个分布在不同方向的麦克风阵列采集声音,进而定位声源的位置。 麦克风阵列扩展模块由 7 个数字麦克风组成,其中 6 个分布在四周不同方向, 1 个在模块正中央,便于识别各个方向声源。另外 12 个 LED 指示灯,方便指示声源位置。 ''' 实验目的:通过麦克风阵列编程实现声源定位,并在LCD上显示。 ''' #导入MIC_ARRAY和LCD模块 from Maix import MIC_ARRAY as mic import lcd #初始化模块 lcd.init() mic.init() while True: #获取原始的声源黑白位图,尺寸 16*16 imga = mic.get_map() #获取声源方向并设置LED显示 b = mic.get_dir(imga) a = mic.set_led(b,(0,0,255)) #将声源地图重置成正方形,彩虹色 imgb = imga.resize(160,160) imgc = imgb.to_rainbow(1) #显示声源图 lcd.display(imgc) mic.deinit()效果如下,能够检测刮胡刀转动的声音并且在lcd上显示位置与声音大小(拍摄效果不好请见谅) 我们来简单介绍一下 K210 的 KPU。 KPU 是 K210 内部一个神经网络处理器,它可以在低功耗的情况下实现卷积神经网络计算, 实时获取被检测目标的大小、坐标和种类,对人脸或者物体进行检测和分类。 KPU 具备以下几个特点: ➢ 支持主流训练框架按照特定限制规则训练出来的定点化模型 ➢ 对网络层数无直接限制,支持每层卷积神经网络参数单独配置,包括输 入输出通道数目、输入输 出行宽列高1320 ➢ 支持两种卷积内核 1x1 和 3x3 ➢ 支持任意形式的激活函数 ➢ 实时工作时最大支持神经网络参数大小为 5.5MiB 到 5.9MiB ➢ 非实时工作时最大支持网络参数大小为(Flash 容量-软件体积) 简单来说就是 KPU 能加载和运行各种现成的 AI 算法模型,实现各种机器视 觉等功能。 MaixPy 中人脸识别本质是目标检测,主要通过在 K210 的 KPU 上跑 YOLO (You Only Look Once)目标检测算法来实现。 我们来看一下 KPU 在 MaixPy 下的用法。 #引入kpu模块 import sensor,lcd,time import KPU as kpu #设置摄像头 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) #sensor.set_vflip(1) #设置摄像头后置 lcd.init() #LCD初始化 clock = time.clock() #task = kpu.load(0x300000) #需要将模型(face.kfpkg)烧写到flash的 0x300000 位置 task = kpu.load("/sd/facedetect.kmodel") #模型SD卡上 #模型描参数 anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) #初始化yolo2网络 a = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor) while(True): clock.tick() img = sensor.snapshot() code = kpu.run_yolo2(task, img) #运行yolo2网络 #识别到人脸就画矩形表示 if code: for i in code: print(i) b = img.draw_rectangle(i.rect()) #LCD显示 lcd.display(img) print(clock.fps()) #打印FPS人脸识别的话并不是有了代码就可以实现了,还需要一个模型库,比如说一个刚出生的婴儿是不会认识爸爸妈妈的,而是经过后天的学习一步步在脑海里存入记忆,最后才能在众多的人中识别出爸爸妈妈。机器也是如此,你要给他一个知识库(模型),让他知道什么是人脸。 我已经打包了k210的开发软件以及模型库打包上传到csdn了免费的。 首先找到后缀名为kfpkg的文件然后再使用 K210 固件烧录工具烧录直接烧录该文件即可 (博客还未写完,其他功能后续更新噢) |
CopyRight 2018-2019 实验室设备网 版权所有 |