机器视觉(machinevision)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。
过程控制(例如工业机器人和无人驾驶汽车)事件监测(例如图像监测)信息组织(例如图像数据库和图像序列的索引创建)物体与环境建模(例如工业检查,医学图像分析和拓扑建模)交感互动(例如人机互动的输入设备)
计算机视觉同样可以被看作是生物视觉的一个补充。在生物视觉领域中,人类和各种动物的视觉都得到了研究,从而创建了这些视觉系统感知信息过程中所使用的物理模型。另一方面,在计算机视觉中,靠软件和硬件实现的人工智能系统得到了研究与描述。生物视觉与计算机视觉进行的学科间交流为彼此都带来了巨大价值。
计算机视觉包含如下一些分支:画面重建,事件监测,目标跟踪,目标识别,机器学习,索引创建,图像恢复等。
颜色识别(Colorrecognition)
一般而言,从彩色CCD相机中获取的图像都是RGB图像。也就是说每一个像素都由红(R)绿(G)蓝(B)三个成分组成,来表示RGB色彩空间中的一个点。问题在于这些色差不同于人眼的感觉。即使很小的噪声也会改变颜色空间中的位置。所以无论我们人眼感觉有多么的近似,在颜色空间中也不尽相同。基于上述原因,我们需要将RGB像素转换成为另一种颜色空间CIELAB。目的就是使我们人眼的感觉尽可能的与颜色空间中的色差相近。
1、颜色(colour)颜色是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应,我们肉眼所见到的光线,是由波长范围很窄的电磁波产生的,不同波长的电磁波表现为不同的颜色,对色彩的辨认是肉眼受到电磁波辐射能刺激后所引起的一种视觉神经的感觉。
颜色具有三个特性,即色相、饱和度和明亮度。简单讲就是光线照到物体,反射到眼中的部分被大脑感知,引起的一种感觉。通过色相(Hue)、饱和度(Saturation)和明亮度(Value)来表示,即我们常说的HSV。当然,颜色有不止一种表示方法,RGB三原色也是另外一种表示方法。但是对人类最直观感受的方式是HSV。
2、颜色空间(Colorspace)
颜色是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应。我们肉眼所能见到的光线,是由波长范围很窄的电磁波产生;颜色就是人对光的一种感觉,由大脑产生的一种感觉。例如:绿叶反射波长为500~570nm的绿光。
例如初中物理中所学的光的三原色由红、绿、蓝组成,这就是RGB颜色空间,除此之外还有HSV、lab、CMY等颜色空间。
3、RGB模型(RGBmodel)
RGB三原色组成了五彩缤纷的世界,通过不同颜色之间的比例搭配得到赤橙黄绿青蓝紫,我们的相机、电视机就是利用颜色空间的模型,因此RGB主要面向硬件模型。色彩强度用0~255表示,总共256的灰度值,最大可呈现的色彩种类为256*256*256=16777216种。
4、HSV颜色模型(Hue,Saturation,Value)a、色相Hue如果将色彩分类,可分为含有颜色的有彩色与不含颜色的无彩色(黑、白、灰)两种。在有彩色中,红、蓝、黄等颜色的种类即称为“色相(Hue)”。作为主要色相有红、黄、绿、蓝、紫。以这些色相为中心,按照颜色的光谱将颜色排列成环状的图形我们称之为“色相环”。使用此色相环我们即可求得中间色与补色。b、饱和度Saturation饱和度(Saturation)是指颜色的鲜艳度,表示色相的强弱。颜色较深鲜艳的色彩表示“饱和度较高”,相反颜色较浅发暗的色彩表示“饱和度较低”。饱和度最高的颜色称为“纯色”,饱和度最低的颜色(完全没有鲜艳度可言的颜色)即为无彩色。c、明亮度Value明亮度(Value)表示颜色的明暗程度。无论有彩色还是无彩色都具有明亮度。明亮的颜色表示“明亮度较高”,相反暗的颜色表示“明亮度较低”。无论有彩色还是无彩色,明亮度最高的颜色即为白色,明亮度最低的颜色即为黑色。也就是说,有彩色的明亮度可用与该亮度对应的无彩色的程度进行表示。HSV的关系用一张图来表示如下:
5、Lab颜色模式(Labcolormode)
Lab模式是根据CommissionInternationalEclairage(CIE)在1931年所制定的一种测定颜色的国际标准建立的。于1976年被改进,并且命名的一种色彩模式。Lab颜色模型弥补了RGB和CMYK两种色彩模式的不足。它是一种设备无关的颜色模型,也是一种基于生理特征的颜色模型。
Lab颜色模型由三个要素组成,一个要素是亮度(L),a和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。因此,这种颜色混合后将产生具有明亮效果的色彩。
Lab模式既不依赖光线,也不依赖于颜料,它是CIE组织确定的一个理论上包括了人眼可以看见的所有色彩的色彩模式。
6、OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、JavaandMATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。
OpenCV于1999年由Intel建立,如今由WillowGarage提供支持。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括500多个C函数的跨平台的中、高层API。它不依赖于其它的外部库——尽管也可以使用某些外部库。OpenCV为IntelIntegratedPerformancePrimitives(IPP)提供了透明接口。这意味着如果有为特定处理器优化的IPP库,OpenCV将在运行时自动加载这些库。
7、OpenCV概述其全称是OpensourceComputerVisionLibrary,开放源代码计算机视觉库。也就是说,它是一套关于计算机视觉的开放源代码的API函数库。这也就意味着:(1)不管是科学研究,还是商业应用,都可以利用它来作开发;(2)所有API函数的源代码都是公开的,你可以看到其内部实现的程序步骤;(3)你可以修改OpenCV的源代码,编译生成你需要的特定API函数。但是,作为一个库,它所提供的,仅仅是一些常用的,经典的,大众化的算法的API。
一个典型的计算机视觉算法,应该包含以下一些步骤:(1)数据获取(对OpenCV来说,就是图片);(2)预处理;(3)特征提取;(4)特征选择;(5)分类器设计与训练;(6)分类判别;而OpenCV对这六个部分,分别(记住这个词)提供了API。
8、基于OpenCV的Color识别彩色模型数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述和解释颜色的方式,HSV的彩色描述对人来说是自然且非常直观的。
HSV模型HSV模型中颜色的参数分别是:色调(H:hue),饱和度(S:saturation),亮度(V:value)。由A.R.Smith在1978年创建的一种颜色空间,也称六角锥体模型(HexconeModel)。色调(H:hue):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;饱和度(S:saturation):取值范围为0.0~1.0,值越大,颜色越饱和。亮度(V:value):取值范围为0(黑色)~255(白色)。
RGB转成HSV设(r,g,b)分别是一个颜色的红、绿和蓝坐标,它们的值是在0到1之间的实数。设max等价于r,g和b中的最大者。设min等于这些值中的最小者。要找到在HSV空间中的(h,s,v)值,这里的h∈[0,360)是角度的色相角,而s,v∈[0,1]是饱和度和亮度。OpenCV下有个函数可以直接将RGB模型转换为HSV模型,OpenCV中H∈[0,180),S∈[0,255],V∈[0,255]。我们知道H分量基本能表示一个物体的颜色,但是S和V的取值也要在一定范围内,因为S代表的是H所表示的那个颜色和白色的混合程度,也就说S越小,颜色越发白,也就是越浅;V代表的是H所表示的那个颜色和黑色的混合程度,也就说V越小,颜色越发黑。大致识别蓝色的取值是H在100到140,S和V都在90到255之间。
形状识别(shaperecognition)是模式识别的重要方向,在计算机中物体的形状有多种表示方式,基于不同的形状表示方式,提出了多种形状识别方法,如基于傅里叶描述子、主分量分析、不变性距等方法。在形状识别中,识别所基于的模式特征非常重要。
随着多媒体技术、计算机通信技术及网络的迅速发展,人们在生活中广泛地应用性能俱佳的电子设备,也接触到更多的需要去处理的数字图像信息。
数字图像的识别技术已经日益广泛应用在我们生活和工作中各个方面安全等等。因此,图像目标识别具有重大研究意义,获得的研究成果应用前景非常广阔。分析研究形状识别在图像目标识别中发挥出重要作用,形状特征匹配的好差直接决定了目标识别的效果。
关于Maixduino的开发环境
手头有个多彩魔方,五种颜色,就拿它当识别颜色的实验道具了。
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之一:识别魔方各色块的灰度值,并将其显示在屏幕的左上角
1、Mind+图形编程
2、实验场景动态图
3、实验之一的说明:本案例以一只普通魔方的色彩为准(室内LED灯的光线,魔方采用手电筒补光),得出的灰度识别实验数据(灰度值)仅供参考(灰度数值受光线影响较大)
白色94红色61绿色75蓝色61黄色97橙色73
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之二:动态识别魔方各颜色块的LAB值,并将其显示在屏幕的左上角
3、实验场景图
4、实验场景视频(60秒)
实验之二的说明:本案例以一只普通魔方的色彩为准(室内LED灯的光线),得出的实验数据(LAB值)仅供参考
红色255、89、59绿色90、255、198蓝色113、169、255黄色254、235、27橙色253、156、39
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之三:识别二维码
1、什么是二维码二维码又称二维条码,常见的二维码为QRCode,QR全称QuickResponse,是一个近几年来移动设备上超流行的一种编码方式,它比传统的BarCode条形码能存更多的信息,也能表示更多的数据类型。
2、二维码的分类二维码,从字面上看就是用两个维度(水平方向和垂直方向)来进行数据的编码,条形码只利用了一个维度(水平方向)表示信息,在另一个维度(垂直方向)没有意义,所以二维码比条形码有着更高的数据存储容量。
从形成方式上,二维码可以分为两类,
a、堆叠式二维码:在一维条形码的基础上,将多个条形码堆积在一起进行编码,常见的编码标准有PDF417等
b、矩阵式二维码:在一个矩阵空间中通过黑色和白色的方块进行信息的表示,黑色的方块表示1,白色的方块表示0,相应的组合表示了一系列的信息,常见的编码标准有QR码,汉信码等
3、Mind+图形编程
4、实验场景图
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之四:识别条形码
1、什么是条形码条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用
2、条形码识别原理条码符号是由反射率不同的“条”、“空”按照一定的编码规则组合起来的一种信息符号。由于条码符号中“条”、“空”对光线具有不同的反射率,从而使条码扫描器接受到强弱不同的反射光信号,相应地产生电位高低不同的电脉冲。而条码符号中“条”、“空”的宽度则决定电位高低不同的电脉冲信号的长短。扫描器接收到的光信号需要经光电转换成电信号并通过放大电路进行放大。由于扫描光点具有一定的尺寸、条码印刷时的边缘模糊性以及一些其他原因,经过电路放大的条码电信号是一种平滑的起伏信号,这种信号被称为“模拟电信号”。“模拟电信号”需经整形变成通常的“数字信号”。根据码制所对应的编码规则,译码器便可将“数字信号”识读译成数字、字符信息
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之五:识别AprilTag码
1、AprilTag是一个视觉基准系统,可用于各种任务,包括AR,机器人和相机校准。这个tag可以直接用打印机打印出来,而AprilTag检测程序可以计算相对于相机的精确3D位置,方向和id。对于OpenMV来说,这个特别有用!它大概长这个样子:
2、和条形码二维码的区别AprilTag标记在机器视觉中显得比条形码、二维码更加有用,因为它能够通过AprilTag检测程序可以计算相对于相机的精确3D位置,方向和id;真实世界中的3D位置对于机器来说非常有用!AprilTag常用于各种任务,包括AR,机器人和相机校准。
4、实验串口返回情况,出错
初始化i2c2[MAIXPY]:传感器ID=9d[MAIXPY]:找到gc0328E(1474384666)SYSCALL:内存不足
回溯(最近一次调用最后一次):中的文件“main.py”,第22行内存错误:内存不足!请降低您正在运行此算法的图像的分辨率以绕过此问题!
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之六:识别直线
3、实验场景视频
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之七:识别圆形
2、实验场景图
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别实验之八:识别圆形,计算面积并打印
实验场景图
你可能感兴趣的
【花雕测评】【AI】MaixPy之神经网络KPU与人脸识别的初步体验
42518
【花雕测评】【AI】Mind+机器视觉之数字图像处理和显示的22种小测试