Page Title

好搭智眼离线图像识别模块


2022-04-08 15:12:29


概述:


好搭智眼离线图像识别模块是新一代高性能视觉识别模块,采用 64 位 RISC-V 神经网络处理器 K210 开发设计,集成多种先进的离线视觉处理算法,支持人脸识别/色块检测/颜色识别/线条检测等,能够应用在智能机器人、智能小车、创意设计、STEAM 教育、创客比赛、智能玩具各种领域。

  image.pngimage.png


参数:


尺寸 : 40×32×12mm

工作电压:3.3-5V

接口类型:XH2.54mm-4P

引脚定义:RX、TX-信号 V-电源 G-地

支持I2C或者串口通讯功能

image.png

 

硬件详解


image.png 

LED灯:通过灯光不同的颜色可以反映出不同的识别结果,当设置为白光常亮时可以当作补光灯使用

摄像头:实时的采集图像数据,可以调节摄像头图像缩放、白平衡、亮度、饱和度等参数

Wifi线:传感器板载ESP8285芯片,具有wifi无线通信功能,可以实现云端图像识别,无线图传

K210理器:带有神经网络处理单元,双核64位RISC-V处理器,在MCU级别处理中具有十分优秀的图像处理能力

SD座:支持Micro-SD(TF)卡,用于保存图片使用(注意:有些SD卡并不支持,仅支持SPI通讯方式,不支持SDIO功能)

USB板载USB-UART芯片,可以直接与电脑通信与控制,同时作为固件更新接口(注意:USB供电会通讯接口对外输出,二者不可同时供电)

LCD屏幕:高清广视角的TFT-ISP彩色屏幕,带有小巧而优秀的图像显示效果,方便于算法调试

摇杆按键:可实现“上下左右中”的5个方向的控制,提供简单实用的UI交互

复位按键:可实现硬件复位

通讯接口:图像处理数据与主控的交互接口,支持UART和I2C方式,可以在UI界面设置

 

 

image.png

 

界面详解


image.png 

运行界面

算法状态: 此区域用于显示当前正在运行的算法

图像区域: 显示摄像头的图像

显示元素: 对被测物体进行标识,包括检测框、坐标、信息

系统状态: 显示当前帧率和当前图像缩放变焦值


设置界面

菜单选项: 上下拨动摇杆来选择不同的菜单,垂直短按摇杆可以进入相应的设置页面

版本信息: 此处可以查看固件版本号和固件发布日期

简介说明: 对当前菜单进行介绍说明

控件按钮: 各种交互按键,用于进行设置操作,不同菜单下的控件是不同的,当导航键移动

到某个控件上时会进行高亮显示或蓝边显示

 

运行界面往右拨动摇杆可以进入 UI 设置界面,

UI 设置共有三个页面:算法设置、摄像头设置、硬件设置

依次往左拨动摇杆则会逐次退出页面,直至返回运行界面

image.png image.png image.png

算法设置                              摄像头设置                               硬件设置

算法设置: 可以开启或关闭算法,配置算法参数

摄像头设置: 用于调整摄像头的参数,可以对图像进行缩放、白平衡、饱和度、亮度、对比度等参数进行精细调节,需要具备一定的摄像头调参基础,适用于高阶玩家

硬件设置: 用于配置通讯方式、波特率、设备地址、灯光颜色、语言等参数,以适配不同的使用模式

操作提示: 当摇杆悬停到不同的控件上时,会显示相应的介绍信息或操作说明


切换算法


摇杆按键功能定义


上电开机后便可以通过摇杆对视觉传感器进行操作,传感器采用5 向导航摇杆,操作定义如下表所示:

image.png


具体操作


提示:拨动即为短按,长按需要至少为 2 秒以上的保持时间后再松开

image.png 

1. 通过上下拨动导航键可以快速的切换算法,每次切换算法后,都会关闭之前的算法

2. 算法切换顺序按照算法 ID 排序


功能算法


image.png

 

 

算法详细使用


1、人脸识别


算法简介

检测图像中是否含有人脸,可以通过按键对人脸进行学习训练,当再次检测到该人脸时,返回一个分类标签用于区分是哪个人脸。


训练新的人脸

在运行界面可以训练新的人脸,操作方法如下:

图片.png

新训练的人脸会自动分配标签值,分配原则是:选择当前可用ID号中最小的那个序号


删除所有人脸


在运行界面中,垂直长按摇杆2秒以上,可以删除所有模型数据

新版固件人脸识别增加口罩检测支持

图片.png

该算法支持人脸检测(未训练的人脸)和人脸识别(已训练的人脸)同时运行,检测到未训练的人脸时会显示标签为0,名称为“新人脸”,当检测到已训练的人脸时,会显示相应的标签和存储的名称特殊的,如果检测到戴口罩的新人脸,会显示“新人脸(口罩)”,标签固定为200

图片.png

由于未训练的人脸标签为0,所以当有检测任意人脸的需求时,程序需要判断检测结果数量。

注意:0和200均为未训练过的人脸,已训练过的人脸显示对应的标签。由于拍摄角度、光照等原因,有时已训练过的人脸会被识别新人脸,此时可以多训练几个模型以提高识别准确率。


示例程序


1、好搭掌控


如果提示报错无法使用,请点击软件右上角的更多-更新文件。

图片.png

 

2、好搭bit

25.png



2、物体分类


算法简介

可以对任意物体进行离线学习并识别,目前支持存储25个物体,用户可以对已训练的模型进行重命名,删除操作


训练新的物体

在运行界面可以训练新的物体,操作方法如下:

图片.png

新训练物体会自动分配标签值,分配原则是:选择当前可用ID号中最小的那个序号


删除所有模型

在运行界面中,垂直长按摇杆2秒以上,可以删除所有模型数据


示例程序

参照人脸识别



3、物体识别


算法简介

识别常见的20类物体,返回他们的坐标信息和分类标签,详见下图。

图片.png


示例程序


1、好搭掌控

图片.png


2、好搭bit

26.png



4、卡片识别


算法简介

识别图像中是否有指定的卡片图案,返回其卡片坐标、大小、分类标签等信息。包括交通标志类,图形符号类,数字类

图片.png


示例程序

参照物体识别



5、颜色识别


算法简介

用户指定一个或多个识别区域,识别该区域的颜色分类。每个检测位置称为一个识别区域,其位置和大小由用户进行设置,最多25组识别区域,返回该区域的颜色标签信息和实际的红R、绿G、蓝B数值。


颜色分类标签

定义了7种颜色分类标签:

image.png 

注意:由于紫色、青色(蓝绿色)、橙色、灰色等,相对来说容易造成误报,因此这几个颜色部分区间被划分为临近颜色的标签,部分被划分为未知颜色,如果用户确实有这几种颜色的使用需求,可以通过返回参数的R、G、B实际值自行计算与判断


返回结果

识别到颜色后,UI界面上的识别区域将会变为其对应颜色的方框,如果是未知颜色,则会显示一个四角框

当通过主控读取寄存器时,将会返回以下的数据:

image.png 

image.png

此时有5x5=25个识别结果,程序中根据结果的序号获取需要的数据。


示例程序


1、好搭掌控

图片.png


2、好搭bit

27.png



6、色块识别


算法简介

用户指定检测一个或多个颜色,判断图像中是否有该颜色的色块,返回其坐标和大小,支持多颜色多色块检测,颜色分类标签与颜色识别中的定义相同。

haodaai_vision_blob_setting.png


算法性能

根据不同的应用需求来选择合适能算法性能,有3个选项可以设置,分别为“灵敏”、“均衡”、“准确”在灵敏模式下识别速度快,帧率高。准确模式下可以检测远处的色块,但速度会降低。默认为均衡性能


同时检测的最大数量

单个颜色的最大检测数量支持1~5个的输出当设置为1时,只返回一个最优结果,如果图像中有多个色块,则返回最大的那个,如果大小相近,则优先返回左上角的那个当设置大于1时,返回色块的数量不会超过这个值。


最小色块的区域大小

如果背景中存在相同颜色的小色块,可以通过合理的设置最小值实现过滤功能绝对值坐标系下的预设值为:2x2、4x4、8x8、16x16、32x32、64x64、128x128像素百分比坐标系下的预设值为:1x1、2x3、3x4、6x8、9x12、21x28、42x56 %


待检测的颜色

以按键形式提供用户选择,开启某个颜色后会显示一个小眼睛图标,未开启的颜色则会显示一个带斜杠的眼睛图标,可以同时开启一个或多种颜色

haodaai_vision_blob_running.png

识别到指定色块后会在UI界面上进行标识,显示其位置、大小、分类标签、名称等信息


示例程序


1、好搭掌控

7_06-好搭智眼-色块识别_1665546494460.png


2、好搭bit

28.png



7、标签识别


算法简介


判断图像中是否有Apriltag标签图案,目前支持16H5,25H9,36H11的编码形式,算法运行时需要先指定用哪一种解码方式,不同的编码形式不可以同时检测,但同一种编码可同时检测25个标签。

haodaai_vision_apriltag_family.png

apriltag标签为一组已经定义好的黑白方块图案,不同的编码形式使用的方块数量是不同的。每个图案都有一个预定义的分类标签值,识别后会返回该值。

Apriltag图案下载 https://github.com/AprilRobotics/apriltag-imgs/tree/master

haodaai_vision_apriltag_running.png

识别到标签后会返回其坐标、大小和标签编号


示例程序


参照人脸识别



8、线条识别


算法简介

检测图像中是否有线条,如果有则会返回线条的两个端点和倾斜角度,最多可同时检测5个线段,如果为曲线,则会返回近似的直线段


返回结果

haodaai_vision_line_running_01.png

检测到线条后会返回其两个端点和倾斜角度

注意:水平向右为0度,逆时针增大,垂直向上为90度,水平向左为180度,一般不会向下检测输出角度

haodaai_vision_line_running_02.png

最多可同时可检测5个线段,为便于UI界面上进行区分,按结果顺序依次用“红、黄、绿、蓝、紫”五种颜色进行标记


示例程序


1、好搭掌控

6.png


2、好搭bit

29.png



9、二维码识别


算法简介

可以识别一个标准二维码,该二维码可包含最多25个ASCII码字符数据

7.png

该算法返回结果包含两种信息,第一组结果为属性信息,后续结果为字符数据,每组结果包含5个 字符


示例程序


1、好搭掌控

8.png


2、好搭bit

30.png



10、运动物体检测


算法简介

在摄像头静止状态下,通过对比相邻帧的像素差异,来判断图像中是否有发生变化的区域,如果有 则认为该区域有运动物体,返回这个区域的坐标信息。该算法目前只能返回一个检测结果。

9.png


示例代码


1、好搭掌控

10.png


2、好搭bit

31.png



使用技巧


1. 由于是对像素进行统计处理,当识别区域较多且较大时,处理速度会相应的变慢,反之则会比较快速。

2. 当识别区域窗口较小时(比如 2x2),可以识别较小的色块,处理速度快,但统计样本太少,容易被干扰,可信度较低,适合于背景单一可控的环境。

3. 当识别区域窗口较大时(比如 32x32),统计样本多,即便出现若干的杂色也会被滤除,具有较高的可信度,但处理速度会变慢,适合于复杂环境中。


应用案例


1、好搭bit使用(好搭MakeCode版本)


硬件连接


使用4P连接线将好搭智眼离线图像识别模块连接在haoda:bit的I2C端口,接着haoda:bit与计算机连接,haoda:bit开机,确定电脑资源管理器跳出“MICROBIT”U盘,进入下载模式。

image.png

 

指令学习


在高级---扩展中找到HaodaAI,并添加扩展

image.png


 设置模块指令,用于初始化好搭智眼离线图像识别模块的端口,本课程中使用端口I2C 地址0x60

image.png


设置模块指令,用于初始化好搭智眼离线图像识别模块参数,设置其恢复默认参数

image.png


用于启动和切换算法,可以随时切换到其他算法,同时只能存在一个算法

image.png


运行模块指令,用于检测该算法下摄像头有无检测到相应的信息

image.png


示例代码


显示内置颜色分类标签信息    

image.png


2、好搭掌控使用(好搭Block版本)


硬件连接


使用4P连接线将好搭智眼离线图像识别模块连接在好搭掌控的I2C端口,接着好搭掌控与计算机连接,好搭掌控开机。

image.png

 

指令学习


在添加扩展—用户库中添加好搭智眼

image.png


 设置需要的算法

image.png


识别物体的ID

image.png


好搭Block右上角“更多”点击“更新文件”


示例代码


当摄像头识别到颜色时可在OLED屏显示对应的ID

18.png


附件下载


apriltags1-50.pdf