序言 ....................................................................................................................................................................................................................................................................... 8
OpenMV 嵌入式图像处理 ........................................................................................................................................................................................................................ 8
OpenMV 中国官方代理(星瞳科技): ................................................................................................................................................................................................... 8
版权所有 ......................................................................................................................................................................................................................................................... 8
本书适合什么人? ...................................................................................................................................................................................................................................... 8
OpenMV 是什么? ..................................................................................................................................................................................................................................... 8
OpenMV 适合做什么?............................................................................................................................................................................................................................ 9
OpenMV 不适合做什么? ....................................................................................................................................................................................................................... 9
本书需要一些什么背景知识? .............................................................................................................................................................................................................. 9
更多的资源? ............................................................................................................................................................................................................................................... 9
常见问题 ........................................................................................................................................................................................................................................................... 11
选择 OpenMV3 M7 还是 OpenMV2 M4?..................................................................................................................................................................................... 11
OpenMV3 M7 和 OpenMV2 M4 有什么区别? ........................................................................................................................................................................... 11
OpenMV 是开源的吗?.......................................................................................................................................................................................................................... 11
运行历程有错误怎么办? ...................................................................................................................................................................................................................... 11
如何看固件的版本。 ............................................................................................................................................................................................................................... 11
如何升级固件 ............................................................................................................................................................................................................................................. 12
如何打开终端/查看 print 的内容 ......................................................................................................................................................................................................... 12
OpenMV 与 OpenCV 的区别? .......................................................................................................................................................................................................... 12
OpenMV 的算法移植 OpenCV 的吗? ............................................................................................................................................................................................ 12
OpenMV 比树莓派有什么优势? ....................................................................................................................................................................................................... 12
OpenMV 使用什么语言编程? ........................................................................................................................................................................................................... 12
OpenMV 可以用 C 语言编程吗?可以用 IAR 或者 Keil 编程吗 ............................................................................................................................................ 12
OpenMV 的固件如何编译? ................................................................................................................................................................................................................ 13
OpenMV 的固件可以在 Windows/IAR/Keil 下编译吗? .......................................................................................................................................................... 13
OpenMV 用 MicroPython 会不会运行慢? .................................................................................................................................................................................... 13
OpenMV 可以脱机运行程序吗? ....................................................................................................................................................................................................... 13
OpenMV 的开发难吗?.......................................................................................................................................................................................................................... 13
Python 难吗? ........................................................................................................................................................................................................................................... 13
我不会写逻辑怎么办?比如不会把两个功能写在一起。 .......................................................................................................................................................... 13
可以用 NumPy, PIL 库吗? .................................................................................................................................................................................................................. 13
OpenMV 可以进行神经网络/深度学习吗?................................................................................................................................................................................... 13
OpenMV 的分辨率是多少? ................................................................................................................................................................................................................ 14
OpenMV 的可以使用高分辨率吗? .................................................................................................................................................................................................. 14
OV2640 版本的不是可以高分辨率吗? .......................................................................................................................................................................................... 14
为什么不使用更高像素的元件? ....................................................................................................................................................................................................... 14
OpenMV 的感光元件可以换吗? ....................................................................................................................................................................................................... 14
OpenMV 可以使用双路摄像头吗? .................................................................................................................................................................................................. 14
OpenMV 可以使用外置的摄像头吗?比如 USB 摄像头。 ..................................................................................................................................................... 14
OpenMV 的帧率是多少? ..................................................................................................................................................................................................................... 14
OpenMV 的识别距离多远呢? ........................................................................................................................................................................................................... 15
OpenMV 镜头可以换吗? ..................................................................................................................................................................................................................... 15
不同的镜头有什么区别? ...................................................................................................................................................................................................................... 15
长焦镜头可以看多远? .......................................................................................................................................................................................................................... 15
OpenMV 有什么算法?.......................................................................................................................................................................................................................... 16
OpenMV 可以识别数字吗? ................................................................................................................................................................................................................ 16
1
OpenMV 可以识别字母吗? ................................................................................................................................................................................................................ 16
OpenMV 可以识别汉字吗? ................................................................................................................................................................................................................ 16
OpenMV 可以识别形状吗? ................................................................................................................................................................................................................ 16
OpenMV 可以人脸识别吗? ................................................................................................................................................................................................................ 16
OpenMV 可以识别二维码吗? ........................................................................................................................................................................................................... 16
OpenMV 可以识别激光点吗? ........................................................................................................................................................................................................... 16
OpenMV 可以和其他芯片通信吗? .................................................................................................................................................................................................. 16
OpenMV 可以和 Arduino/51/STM32 通信吗? ........................................................................................................................................................................... 17
OpenMV 如何与 PLC 通信? .............................................................................................................................................................................................................. 17
OpenMV 可以和电脑通信吗? ........................................................................................................................................................................................................... 17
OpenMV 可以驱动步进电机/直流电机/舵机吗? ........................................................................................................................................................................ 17
OpenMV 可以驱动几个舵机? ........................................................................................................................................................................................................... 17
OpenMV 可以用在飞控上吗? ........................................................................................................................................................................................................... 17
OpenMV 如何供电? .............................................................................................................................................................................................................................. 17
OpenMV 的 3.3V 引脚是做什么用的? ........................................................................................................................................................................................... 17
OpenMV 可以用锂电池供电吗? ....................................................................................................................................................................................................... 17
OpenMV 工作电压是多少? ................................................................................................................................................................................................................ 17
OpenMV 运行程序的时候很烫怎么回事? .................................................................................................................................................................................... 17
LCD 几个占用几个引脚?..................................................................................................................................................................................................................... 18
LCD 是 SPI 接口的? ............................................................................................................................................................................................................................. 18
LCD 的分辨率是多少? ......................................................................................................................................................................................................................... 18
可以无线传输图像吗? .......................................................................................................................................................................................................................... 18
OpenMV SD 卡有什么用? .................................................................................................................................................................................................................. 18
OpenMV 内存卡最大支持多大的? .................................................................................................................................................................................................. 18
OpenMv 详细参数 ......................................................................................................................................................................................................................................... 19
应用 ................................................................................................................................................................................................................................................................ 19
引脚定义 ....................................................................................................................................................................................................................................................... 20
电路图 & 数据手册 ................................................................................................................................................................................................................................. 20
尺寸 ................................................................................................................................................................................................................................................................ 21
规格 ................................................................................................................................................................................................................................................................ 21
功耗 ................................................................................................................................................................................................................................................................ 22
温度范围 ....................................................................................................................................................................................................................................................... 22
10 分钟快速上手 下载软件 ........................................................................................................................................................................................................................ 23
Windows ...................................................................................................................................................................................................................................................... 23
MacOS .......................................................................................................................................................................................................................................................... 26
运行 hello world!.................................................................................................................................................................................................................................... 28
追踪小球 ....................................................................................................................................................................................................................................................... 29
更改阈值 ....................................................................................................................................................................................................................................................... 30
文件系统 ....................................................................................................................................................................................................................................................... 31
脱机运行 ....................................................................................................................................................................................................................................................... 31
一键下载 ....................................................................................................................................................................................................................................................... 32
供电 ................................................................................................................................................................................................................................................................ 32
SD 卡 .............................................................................................................................................................................................................................................................. 32
图像处理背景知识 ......................................................................................................................................................................................................................................... 34
什么是摄像头? ........................................................................................................................................................................................................................................ 34
什么是像素和分辨率? .......................................................................................................................................................................................................................... 35
2
什么是帧率 .................................................................................................................................................................................................................................................. 35
什么是颜色 .................................................................................................................................................................................................................................................. 35
光源的选择 .................................................................................................................................................................................................................................................. 36
镜头的焦距 .................................................................................................................................................................................................................................................. 36
镜头的滤片 .................................................................................................................................................................................................................................................. 37
Python 背景知识 ............................................................................................................................................................................................................................................. 38
使用 python 的好处 ................................................................................................................................................................................................................................. 38
REPL 和串口 .............................................................................................................................................................................................................................................. 38
Python 语法 ................................................................................................................................................................................................................................................ 39
输出 ................................................................................................................................................................................................................................................................ 39
变量 ................................................................................................................................................................................................................................................................ 39
list 列表 ......................................................................................................................................................................................................................................................... 40
tuple 元组 ..................................................................................................................................................................................................................................................... 41
条件判断 ....................................................................................................................................................................................................................................................... 42
循环 ................................................................................................................................................................................................................................................................ 42
切片 ................................................................................................................................................................................................................................................................ 44
对象 ................................................................................................................................................................................................................................................................ 44
模块 ................................................................................................................................................................................................................................................................ 44
OpenMV 图像处理的方法 ........................................................................................................................................................................................................................... 45
感光元件 ............................................................................................................................................................................................................................................................ 46
初始化 ........................................................................................................................................................................................................................................................... 46
设置彩色/黑白 ........................................................................................................................................................................................................................................ 46
设置图像大小 ............................................................................................................................................................................................................................................. 46
跳过一些帧 .................................................................................................................................................................................................................................................. 46
获取一张图像 ............................................................................................................................................................................................................................................. 46
自动增益/白平衡 .................................................................................................................................................................................................................................... 46
设置窗口 ROI ............................................................................................................................................................................................................................................. 46
设置翻转 ....................................................................................................................................................................................................................................................... 47
图像的基本运算 .............................................................................................................................................................................................................................................. 48
坐标 ................................................................................................................................................................................................................................................................ 48
获取/设置像素点 ....................................................................................................................................................................................................................................... 48
获取图像的宽度和高度 .......................................................................................................................................................................................................................... 48
图像的运算 .................................................................................................................................................................................................................................................. 48
使用图像的统计信息 ..................................................................................................................................................................................................................................... 50
ROI 感兴趣的区域 .................................................................................................................................................................................................................................... 50
Statistics ...................................................................................................................................................................................................................................................... 50
举例 ................................................................................................................................................................................................................................................................ 51
画图 ..................................................................................................................................................................................................................................................................... 52
画线 ................................................................................................................................................................................................................................................................ 52
画框 ................................................................................................................................................................................................................................................................ 52
画圆 ................................................................................................................................................................................................................................................................ 52
画十字 ........................................................................................................................................................................................................................................................... 52
写字 ................................................................................................................................................................................................................................................................ 52
例子 ................................................................................................................................................................................................................................................................ 53
寻找色块 ............................................................................................................................................................................................................................................................ 54
find_blobs 函数 ......................................................................................................................................................................................................................................... 54
3
阈值 ................................................................................................................................................................................................................................................................ 54
颜色阈值选择工具 .................................................................................................................................................................................................................................... 55
blobs 是一个列表 ..................................................................................................................................................................................................................................... 56
blob 色块对象 ............................................................................................................................................................................................................................................ 56
AprilTag 标记跟踪 .......................................................................................................................................................................................................................................... 58
AprilTag 简介 ............................................................................................................................................................................................................................................. 58
AprilTag 的种类 ......................................................................................................................................................................................................................................... 58
制作 AprilTag ............................................................................................................................................................................................................................................. 58
程序 ................................................................................................................................................................................................................................................................ 59
3D 定位.......................................................................................................................................................................................................................................................... 60
扩展阅读:................................................................................................................................................................................................................................................... 61
模版匹配 NCC.................................................................................................................................................................................................................................................. 62
模板匹配和特征点检测的比较: ......................................................................................................................................................................................................... 64
多模版匹配 NCC ............................................................................................................................................................................................................................................. 66
特征点检测 ....................................................................................................................................................................................................................................................... 68
模板匹配和特征点检测的比较: ......................................................................................................................................................................................................... 68
特征点检测................................................................................................................................................................................................................................................... 68
如何利用 OpenMV 进行测距 ..................................................................................................................................................................................................................... 71
扫码识别 ........................................................................................................................................................................................................................................................... 73
QR 码............................................................................................................................................................................................................................................................. 73
条形码 ............................................................................................................................................................................................................................................................ 74
Data Matrix ................................................................................................................................................................................................................................................... 75
颜色形状同时识别 ........................................................................................................................................................................................................................................ 77
颜色与模板匹配同时识别 .......................................................................................................................................................................................................................... 78
分辨不同人脸 .................................................................................................................................................................................................................................................. 80
高级特征 ........................................................................................................................................................................................................................................................... 83
HAAR ............................................................................................................................................................................................................................................................ 83
HOG ............................................................................................................................................................................................................................................................... 83
LBP ................................................................................................................................................................................................................................................................. 83
OpenMv 也是单片机 ..................................................................................................................................................................................................................................... 83
文件系统 ........................................................................................................................................................................................................................................................... 84
根目录 ........................................................................................................................................................................................................................................................... 84
绝对路径与相对路径 ............................................................................................................................................................................................................................... 84
MicroPython 的文件读写....................................................................................................................................................................................................................... 84
MicroPython 的 OS 模块 ....................................................................................................................................................................................................................... 84
OpenMV 的默认文件 .............................................................................................................................................................................................................................. 85
模块的使用 ...................................................................................................................................................................................................................................................... 86
什么是模块? ............................................................................................................................................................................................................................................. 86
如何使用模块? ........................................................................................................................................................................................................................................ 86
如何添加自定义模块? .......................................................................................................................................................................................................................... 86
pyb 各种外设 .................................................................................................................................................................................................................................................. 88
概览 ................................................................................................................................................................................................................................................................ 88
常用的函数 .................................................................................................................................................................................................................................................. 89
LED ................................................................................................................................................................................................................................................................ 89
IO .................................................................................................................................................................................................................................................................... 89
Servo ............................................................................................................................................................................................................................................................. 89
4
IO 中断 .......................................................................................................................................................................................................................................................... 90
定时器 ........................................................................................................................................................................................................................................................... 90
PWM .............................................................................................................................................................................................................................................................. 90
ADC ................................................................................................................................................................................................................................................................ 90
DAC ................................................................................................................................................................................................................................................................ 90
UART ............................................................................................................................................................................................................................................................. 90
SPI .................................................................................................................................................................................................................................................................. 91
I2C .................................................................................................................................................................................................................................................................. 91
字符串简介 json/正则............................................................................................................................................................................................................................... 92
介绍 ................................................................................................................................................................................................................................................................ 92
字符串 ........................................................................................................................................................................................................................................................... 92
字符串操作 .................................................................................................................................................................................................................................................. 92
JSON ............................................................................................................................................................................................................................................................. 93
python 生成 json ........................................................................................................................................................................................................................................ 93
其他单片机的 json 模块 .......................................................................................................................................................................................................................... 94
电脑其他语言的 json 模块 ...................................................................................................................................................................................................................... 94
正则表达式................................................................................................................................................................................................................................................... 94
串口通信上 ...................................................................................................................................................................................................................................................... 95
介绍 ................................................................................................................................................................................................................................................................ 95
传输复杂的数据 ........................................................................................................................................................................................................................................ 95
精简数据 ....................................................................................................................................................................................................................................................... 96
串口通信下 ...................................................................................................................................................................................................................................................... 98
OpenMV 串口调试扩展板 ..................................................................................................................................................................................................................... 98
使用 TTL-USB 模块 ................................................................................................................................................................................................................................. 98
星瞳串口助手 ............................................................................................................................................................................................................................................. 99
运行程序 ....................................................................................................................................................................................................................................................... 99
Arduino 解析程序 ................................................................................................................................................................................................................................... 100
代码 ............................................................................................................................................................................................................................................................. 101
wifi 通信 .......................................................................................................................................................................................................................................................... 103
wifi 扫描 ..................................................................................................................................................................................................................................................... 103
无线传输图像 .......................................................................................................................................................................................................................................... 104
无线传输小球坐标 ................................................................................................................................................................................................................................. 105
只传输一张图片 ..................................................................................................................................................................................................................................... 107
传感器 ............................................................................................................................................................................................................................................................. 109
超声波 ........................................................................................................................................................................................................................................................ 109
红外热释电 ............................................................................................................................................................................................................................................... 109
IMU .............................................................................................................................................................................................................................................................. 109
温度传感器 ............................................................................................................................................................................................................................................... 109
喇叭 ............................................................................................................................................................................................................................................................. 109
电机 .................................................................................................................................................................................................................................................................. 110
步进电机 .................................................................................................................................................................................................................................................... 110
什么是步进电机 ...................................................................................................................................................................................................................................... 110
步进电机驱动板 ...................................................................................................................................................................................................................................... 110
连线 ............................................................................................................................................................................................................................................................. 110
安装模块 .................................................................................................................................................................................................................................................... 110
代码 ............................................................................................................................................................................................................................................................. 111
5
直流电机 .................................................................................................................................................................................................................................................... 111
什么是直流电机 ...................................................................................................................................................................................................................................... 111
驱动板 ......................................................................................................................................................................................................................................................... 111
连线 ............................................................................................................................................................................................................................................................. 112
代码 ............................................................................................................................................................................................................................................................. 112
舵机 ............................................................................................................................................................................................................................................................. 113
连线 ............................................................................................................................................................................................................................................................. 113
检查电源 .................................................................................................................................................................................................................................................... 113
代码 ............................................................................................................................................................................................................................................................. 113
PCA9685 连接多个舵机 ..................................................................................................................................................................................................................... 113
手写第一个模块 ........................................................................................................................................................................................................................................... 115
第一个类 ......................................................................................................................................................................................................................................................... 116
实现一个简单的 Student 类 ................................................................................................................................................................................................................ 116
第一个温度传感器模块 ............................................................................................................................................................................................................................. 116
手动写一个电机模块 ................................................................................................................................................................................................................................. 117
了解控制原理 .......................................................................................................................................................................................................................................... 117
第一步:框架 .......................................................................................................................................................................................................................................... 117
第二步:添加构造函数 ....................................................................................................................................................................................................................... 117
添加硬件实现 .......................................................................................................................................................................................................................................... 118
测试 steps ................................................................................................................................................................................................................................................. 119
添加旋转角度函数 ................................................................................................................................................................................................................................. 119
完成 ............................................................................................................................................................................................................................................................. 120
OpenMv 固件 ................................................................................................................................................................................................................................................ 120
升级固件 ........................................................................................................................................................................................................................................................ 121
常规升级 .................................................................................................................................................................................................................................................... 121
DFU 升级 .................................................................................................................................................................................................................................................. 122
第一步,安装软件 .................................................................................................................................................................................................................................. 122
第二步,下载最新固件 ......................................................................................................................................................................................................................... 122
第三步,进入 DFU 模式 ....................................................................................................................................................................................................................... 123
第四步,烧录固件 .................................................................................................................................................................................................................................. 124
MacOS DFU 升级 ................................................................................................................................................................................................................................. 126
安装软件:................................................................................................................................................................................................................................................ 126
固件下载 .................................................................................................................................................................................................................................................... 126
进入 DFU 模式 ......................................................................................................................................................................................................................................... 126
烧录固件 .................................................................................................................................................................................................................................................... 127
编译固件 ........................................................................................................................................................................................................................................................ 128
获取 Ubuntu ............................................................................................................................................................................................................................................. 128
安装必须使用的软件 ............................................................................................................................................................................................................................ 128
获取项目代码 .......................................................................................................................................................................................................................................... 128
编译 ............................................................................................................................................................................................................................................................. 128
正版授权 ........................................................................................................................................................................................................................................................ 129
License ...................................................................................................................................................................................................................................................... 129
Debug .............................................................................................................................................................................................................................................................. 129
常见代码错误 ............................................................................................................................................................................................................................................... 130
ImportError:no module named xxx ................................................................................................................................................................................................... 130
MemoryError:FB Alloc Collision!!! ...................................................................................................................................................................................................... 130
6
AttributeError:'tuple' object has no attrbute 'rect' ....................................................................................................................................................................... 130
常见故障 ........................................................................................................................................................................................................................................................ 131
OpenMV 插上电脑没反应怎么办? ............................................................................................................................................................................................... 131
OpenMV 和 Arduino/STM32/51 串口连接,但是没有接收到信息怎么办? ................................................................................................................ 131
串口的数据是乱码怎么办? .............................................................................................................................................................................................................. 131
为什么不能上电运行程序呢? ......................................................................................................................................................................................................... 131
为什么不能保存程序到 OpenMV 呢? ......................................................................................................................................................................................... 131
运行程序之后 IDE 里的 没有图像/图像不动 呢? ................................................................................................................................................................. 131
为什么没有右侧的显示图像栏? .................................................................................................................................................................................................... 132
为什么帧率没有标识的那么高? .................................................................................................................................................................................................... 132
记录耗费时间 ............................................................................................................................................................................................................................................... 134
计算帧率 .................................................................................................................................................................................................................................................... 134
计算耗费的时间 ...................................................................................................................................................................................................................................... 134
OpenMV 配件 .............................................................................................................................................................................................................................................. 135
LCD 的使用 .................................................................................................................................................................................................................................................... 136
wifi 通信 .......................................................................................................................................................................................................................................................... 137
wifi 扫描 ..................................................................................................................................................................................................................................................... 137
无线传输图像 .......................................................................................................................................................................................................................................... 138
无线传输小球坐标 ................................................................................................................................................................................................................................. 139
只传输一张图片 ..................................................................................................................................................................................................................................... 141
洞洞板 ............................................................................................................................................................................................................................................................. 143
SD 卡 ............................................................................................................................................................................................................................................................... 144
项目实例 ......................................................................................................................................................................................................................................................... 145
追小球的小车 ............................................................................................................................................................................................................................................... 145
准备材料 .................................................................................................................................................................................................................................................... 145
连接电路,测试电机 ............................................................................................................................................................................................................................ 148
编写小车的模块 ..................................................................................................................................................................................................................................... 148
PID 算法的实现 ...................................................................................................................................................................................................................................... 149
调整参数,实现跟随 ............................................................................................................................................................................................................................ 150
追小球的云台 ............................................................................................................................................................................................................................................... 152
资料下载 .................................................................................................................................................................................................................................................... 152
材料 ............................................................................................................................................................................................................................................................. 152
连接 ............................................................................................................................................................................................................................................................. 152
代码 ............................................................................................................................................................................................................................................................. 152
巡线小车 ......................................................................................................................................................................................................................................................... 154
追小球的小车................................................................................................................................................................................................................................................ 155
连接电路,测试电机 ............................................................................................................................................................................................................................ 158
编写小车的模块 ..................................................................................................................................................................................................................................... 158
PID 算法的实现 ...................................................................................................................................................................................................................................... 159
调整参数,实现跟随 ............................................................................................................................................................................................................................ 160
例程解析 ......................................................................................................................................................................................................................................................... 162
网址:http://book.openmv.cc/example.html ................................................................................................................................................................................ 162
7
序言
OpenMV 嵌入式图像处理
OpenMV 中国官方代理(星瞳科技):
OpenMV 中文首页: http://openmv.cc
上手教程,视频教程,详细参数,中文文档,软件下载链接都在 http://openmv.cc
论坛是提问的第一选择,论坛地址:https://forum.singtown.com/category/5/openmv-cam
QQ 交流群: 324391148
立即购买: https://kaizhi-xu.taobao.com/
OpenMV 官网: https://www.openmv.io
OpenMV 中国网站: http://www.openmv.cc
版权所有
本书版权所属广州星瞳信息科技有限责任公司,未经授权禁止一切形式的转载抄袭,侵权必究。
本书适合什么人?
• 对嵌入式机器视觉感兴趣的人。
• 对 OpenMV 感兴趣,并想在项目里使用 OpenMV 的人。
• 对计算机视觉感兴趣的人,通过 OpenMV,可以做出一些好玩的项目,激发学习计算机视觉的兴趣,而不会卡在傅立叶变
化,小波变换,滤波之类的事情上。
OpenMV 是什么?
简单的来说,它是一个可编程的摄像头,通过 MicroPython 语言,可以实现你的逻辑。
而且摄像头本身内置了一些图像处理算法,很容易使用。
8