机器视觉开发
什么是图像识别?
图像识别的原理
- 图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是应用深度学习算法的一种实践应用。
图像识别的应用场景
- 现阶段图像识别技术一般分为人脸识别与商品识别,人脸识别主要运用在安全检查、身份核验与移动支付中;商品识别主要运用在商品流通过程中,特别是无人货架、智能零售柜等无人零售领域。
图像识别的人工智能应用
- 图像识别是人工智能的一个重要领域。为了编制模拟人类图像识别活动的计算机程序,人们提出了不同的图像识别模型。例如模板匹配模型。这种模型认为,识别某个图像,必须在过去的经验中有这个图像的记忆模式,又叫模板。当前的刺激如果能与大脑中的模板相匹配,这个图像也就被识别了。例如有一个字母A,如果在脑中有个A模板,字母A的大小、方位、形状都与这个A模板完全一致,字母A就被识别了。这个模型简单明了,也容易得到实际应用。但这种模型强调图像必须与脑中的模板完全符合才能加以识别,而事实上人不仅能识别与脑中的模板完全一致的图像,也能识别与模板不完全一致的图像。例如,人们不仅能识别某一个具体的字母A,也能识别印刷体的、手写体的、方向不正、大小不同的各种字母A。同时,人能识别的图像是大量的,如果所识别的每一个图像在脑中都有一个相应的模板,也是不可能的。
- 为了解决模板匹配模型存在的问题,格式塔心理学家又提出了一个原型匹配模型。这种模型认为,在长时记忆中存储的并不是所要识别的无数个模板,而是图像的某些“相似性”。从图像中抽象出来的“相似性”就可作为原型,拿它来检验所要识别的图像。如果能找到一个相似的原型,这个图像也就被识别了。这种模型从神经上和记忆探寻的过程上来看,都比模板匹配模型更适宜,而且还能说明对一些不规则的,但某些方面与原型相似的图像的识别。但是,这种模型没有说明人是怎样对相似的刺激进行辨别和加工的,它也难以在计算机程序中得到实现。因此又有人提出了一个更复杂的模型,即“泛魔”识别模型。
- 一般工业使用中,采用工业相机拍摄图片,然后利用软件根据图片灰阶差做处理后识别出有用信息,图像识别软件国外代表的有康耐视等,国内代表的有图智能等。
图像识别的发展历程
- 图像识别的发展经历了三个阶段:文字识别、数字图像处理与识别、物体识别。文字识别的研究是从 1950年开始的,一般是识别字母、数字和符号,从印刷文字识别到手写文字识别, 应用非常广泛。
- 数字图像处理和识别的研究开始于1965年。数字图像与模拟图像相比具有存储,传输方便可压缩、传输过程中不易失真、处理方便等巨大优势,这些都为图像识别技术的发展提供了强大的动力。物体的识别主要指的是对三维世界的客体及环境的感知和认识,属于高级的计算机视觉范畴。它是以数字图像处理与识别为基础的结合人工智能、系统学等学科的研究方向,其研究成果被广泛应用在各种工业及探测机器人上。现代图像识别技术的一个不足就是自适应性能差,一旦目标图像被较强的噪声污染或是目标图像有较大残缺往往就得不出理想的结果。
- 图像识别问题的数学本质属于模式空间到类别空间的映射问题。目前,在图像识别的发展中,主要有三种识别方法:统计模式识别、结构模式识别、模糊模式识别。图像分割是图像处理中的一项关键技术,自20世纪70年代,其研究已经有几十年的历史,一直都受到人们的高度重视,至今借助于各种理论提出了数以千计的分割算法,而且这方面的研究仍然在积极地进行着。
- 现有的图像分割的方法有许多种,有阈值分割方法,边缘检测方法,区域提取方法,结合特定理论工具的分割方法等。从图像的类型来分有:灰度图像分割、彩色图像分割和纹理图像分割等。早在1965年就有人提出了检测边缘算子,使得边缘检测产生了不少经典算法。但在近二十年间,随着基于直方图和小波变换的图像分割方法的研究计算技术、VLSI技术的迅速发展,有关图像处理方面的研究取得了很大的进展。图像分割方法结合了一些特定理论、 方法和工具,如基于数学形态学的图像分割、基于小波变换的分割、基于遗传算法的分割等。
使用StivckV + Maixpy - IDE 进行图像识别开发
开发平台
- Maixpy - IDE
开发环境
Windows
Linux
开发组件
- M5Stack - StickV
描述
M5Stick-V RISC-V AI摄像头
M5Stick-V是一款内置Kendryte K210的AIOT(AI + IOT)摄像头,集成双核64位RISC-V CPU和最先进的神经网络处理器边缘计算片上系统(SoC)
M5stickV AI摄像头具备机器视觉能力,配备了OmniVision OV7740图像传感器,采用了OmniPixel®3-HS技术,提供了同类最佳的低光灵敏度,支持多种视觉识别能力的它(如实时获取被检测目标的大小)与坐标•实时获取被检测目标的种类),并且能够在低危情况下进行卷积神经网络计算,因此M5StickV会是一个很好的零门机器机器视觉嵌入式解决方案,支持MicroPython开发环境,这可以让您在使用M5stick-V上进行项目开发时,程序代码将会更加精简。
产品特性
- 双核64位RISC-V RV64IMAFDC(RV64GC)CPU / 400Mhz(普通)
- 双精度FPU
- 神经网络处理器(KPU)/ 0.8排名
- 底层IO架构(FPIOA)
- 双硬件512点16位复数FFT
- SPI,I2C,UART,I2S,RTC,PWM,定时器支持
- AES,SHA256加速器
- 直接内存存取控制器(DMAC)
- 支持Micropython
- 固件加密支持
应用
面部识别/检测
物体检测/分类
- 实时获取目标的大小和坐标
- 实时获取检测到的目标类型
- 形状识别
- 视频/显示
- 游戏模拟器
常见驱动问题
- M5StickV 主控在部分系统中,可能无法免驱工作,用户可以通过手动安装FTDI驱动修复该问题。
主控资源 | 参数 |
---|---|
肯德利K210 | 双核64位RISC-V RV64IMAFDC(RV64GC)CPU / 400Mhz(普通) |
静态随机存取存储器 | 8米 |
闪光 | 1600万 |
输入电压 | 5V @ 500mA |
KPU神经网络参数大小 | 5.5MiB-5.9MiB |
主机接口 | TypeC x 1,GROVE(I2C + I / 0 + UART)x 1 |
RGB LED | RGBW x 1 |
按键 | 自定义按键x 2 |
IPS屏幕 | 1.14 TFT,135 * 240,ST7789 |
摄像头 | OV7740 |
视场 | 55° |
电源管理单元 | AXP192 |
锂电池 | 200毫安 |
外部存储 | TF卡(microSD) |
MEMS六轴传感器 | MPU6886 |
净重 | 23克 |
毛重 | 82克 |
产品尺寸 | 48 24 22毫米 |
包装尺寸 | 144 44 43毫米 |
外壳材质 | 塑胶(PC) |
TF卡(microSD)测试
- M5StickV当前并不能识别所有类型的TF卡(microSD),我们对一些常见的TF卡进行了测试,测试结果如下。
品牌 | 内存 | 类型 | 传输速度 | 分区格式 | 测试结果 |
---|---|---|---|---|---|
金斯顿 | 8G | HC | 4类 | FAT32 | 好的 |
金斯顿 | 16G | HC | 10类 | FAT32 | 好的 |
金斯顿 | 32G | HC | 10类 | FAT32 | 不 |
金斯顿 | 64G | XC | 10类 | FAT文件 | 好的 |
闪迪 | 16G | HC | 10类 | FAT32 | 好的 |
闪迪 | 32G | HC | 10类 | FAT32 | 好的 |
闪迪 | 64G | XC | 10类 | / | 不 |
闪迪 | 128G | XC | 10类 | / | 不 |
夏克 | 16G | HC | 10类 | FAT32 | 还可以(紫色) |
夏克 | 32G | HC | 10类 | FAT32 | 好的 |
夏克 | 64G | XC | 10类 | / | 不 |
突耶 | 32G | HC | 10类 | / | 不 |
功能描述
肯德利K210
Kendryte K210是集成机器视觉能力的系统级芯片(SoC)。使用台积电(TSMC)超低功耗的28纳米先进制程,具有双核64位处理器,拥有更好的性能,稳定性和可靠性。该方案力求零门生物学开发,可在最短时效部署于用户的产品中,实现产品人工智能。
- 具备机器视觉能力
- 更好的低视觉视觉处理速度与准确率
- 内置卷积人工神经网络硬件加速器,KPU,可高效进行卷积人工神经网络运算
- 台积电28nm先进制程,温度范围-40°C到125°C,稳定可靠
- 支持固件加密,难以使用普通方法破解
- 独特的地理位置IO布局,使产品设计更加灵活
- 低电压,与相同处理能力的系统合并具有较高的可靠性
- 3.3V / 1.8V双电压支持,无需重新转换,节省成本
中央处理器
本芯片搭载基于RISC-V ISA的双核心64位的高性能低功耗CPU,具有以下特性:
- 核心数量:双核处理器
- 处理器位宽:64位CPU 400MHz
- 标称频率:400MHz
- 指令集扩展:IMAFDC
- 浮点处理单元(FPU):双精度
- 平台中断管理
- 本地中断管理
- 指令缓存:32KiB x 2
- 数据缓存:32KiB x 2
- 片上SRAM:8MiB
OV7740
- 支持输出格式:RAW RGB和YUV
- 支持图像尺寸:VGA,QVGA,CIF或其他更小尺寸
- 支持太阳黑子消除
- 支持内部和外部帧同步
- 标准SCCB串行接口
- 数字视频端口(DVP)并行输出接口
- 嵌入式一次性燃料(OTP)存储器
- 片上锁相环(PLL)
- 用于内核的嵌入式1.5 V稳压器
- 尺寸:656 x 488
- 电源:-内核:1.5VDC±5%-模拟:3.3V±5%-I / O:1.7〜3.47V
- 温度范围:-工作:-30°C至70°C-稳定图像:0°C至50°C
- 输出格式:-8/10位原始RGB数据-8位YUV
- 镜头尺寸:1/5“
- 输入时钟频率:6〜27 MHz
- 最大图像传输速率:VGA(640x480):60 fps-QVGA(320 x 240):120 fp
- 灵敏度:6800 mV /(Lux-sec)
- 最大曝光间隔:502 x tROW
- 分辨率尺寸:4.2μm×4.2μm
- 图像面积:2755.2μm×2049.6μm
- 封装/管芯尺寸:-CSP3:4185μm×4345μm-COB:4200μm×4360μm
MAX98357
- 单电源工作(2.5V至5.5V)
- 3.2W输出功率:4Ω,5V
- 2.4mA静态电流
- 效率92%(RL =8Ω,POUT = 1W)
- 22.8µVRMS输出噪声(AV = 15dB)
- 1kHz时,0.015%THD + N
- 无需MCLK
- 8kHz至96kHz采样速率
- 支持左声道,右声道以及(左声道/ 2 +右声道/ 2)输出
- 成熟的边沿速度控制调整D类放大器输出校正
- 1kHz下,具有77dB PSRR
- 低RF敏感度,可抑制GSM发射的TDMA噪声
- 喀嗒声抑制电路
AXP192
- 工作电压:2.9V-6.3V(AMR:-0.3V〜15V)
- 可配置的智能电源选择系统
- 自适应USB或AC适配器输入的电流和电压限制
- 内部理想二极管的电阻低于100mΩ
MPU6886
- 陀螺仪功能
- 数字输出X,Y和Z轴角速度传感器(陀螺仪),用户放置满量程范围为±250 dps,±500 dps,±1000 dps和±2000 dps,集成式16位ADC
- 数字光纤低通滤波器
- 低功率陀螺仪仪操作
- 工厂校准的灵敏度比例因子
- 镜头尺寸:1/5“
- 自我测试
加速度计功能
- 数字输出X,Y和Z轴加速度计,连续满量程范围为±2g,±4g,±8g和±16g,集成16位ADC
- 用户中断中断
- 唤醒动作中断,用于应用处理器的低功耗操作
- 自我测试
SPI / I2C双通信模式
注意事项:当前M5Stack发布的M5StickV存在两种版本,用户编程使用时需根据其对应的转换映射进行不同的配置,具体区别如下。
I2C单模式(蓝色PCB)版本的M5StickV电路设计中,MPU6886仅支持用户配置其通信模式为I2C,其映射映射为SCL-28,SDA-29。
SPI / I2C双模式(黑色PCB)版本的M5StickV电路设计中,MPU6886支持用户配置其通信模式为SPI或I2C,其映射为SCL-26,SDA-27。,使用时,可通过切换CS引脚踩来切换模式(高允许1为I2C模式,依次为0为SPI模式)
具体细节映射如下图所示:
相关链接
数据表
网页
GITHUB
原理图
按理程序
- Maixpy参考示例