计算机视觉系统中图像究竟经历了哪些“折磨”
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
前言
如今,计算机视觉(CV)已成为人工智能的主要应用之一(例如,图像识别,对象跟踪,多标签分类)。在本文中,我们将了解构成计算机视觉系统的一些主要步骤。
一般的计算机视觉系统工作流程具有如下步骤:
1.图像采集并输入到系统中。
2.图像预处理和提取特征。
3.利用提取的特征,通过机器学习系统来训练模型和做出预测。
接下来我们将简要介绍图像在这三个不同步骤中的一些主要过程。
图像采集并输入系统
在实现CV系统时,我们需要考虑两个主要组件:图像采集硬件和图像处理软件。部署CV系统要满足的主要要求之一是测试其鲁棒性。实际上,我们的系统应该能够适应环境变化(例如照明,方向,缩放比例的变化),并能够重复执行其设计任务。为了满足这些要求,可能有必要将某种形式的约束应用于我们系统的硬件或软件(例如,远程控制照明环境)
从硬件设备获取图像后,可以使用多种方法在软件系统中以数字方式表示颜色(色彩空间)。两种最著名的色彩空间是RGB(红色,绿色,蓝色)和HSV(色调,饱和度,值)。使用HSV色彩空间的主要优点是在仅考虑HS分量时可以使系统照明保持不变。这两种颜色空间如下图所示。
RGB与HSV颜色空间
图像预处理
一旦图像进入系统并使用色彩空间表示,我们便可以对图像进行不同的操作:
点运算符:点算子的一些例子是:强度归一化,直方图均衡化和阈值处理。通常使用点运算符来帮助更好地可视化人类视觉图像,但不一定为计算机视觉系统提供任何优势。
区域操作:在这种情况下,我们从原始图像中获取一组点,以便在图像的操作时重新得到一个像素点。这种类型的操作通常通过使用卷积来完成。为了获得操作后的结果,可以使用不同类型的内核与图像进行卷积。例如:直接平均,高斯平均和中值滤波器。对图像进行卷积运算可以减少图像中的噪波量并改善平滑度(尽管这也会导致图像稍微模糊)。由于我们使用一组点来在新图像中创建单个新点,因此新图像的尺寸将必然小于原始图像的尺寸。解决此问题的一种方法是应用零填充(将像素值设置为零)或通过在图像的边界使用较小的模板。使用卷积的主要限制之一是在处理尺寸较大的模板时其执行速度较慢,对此问题的一种的解决方案是改为使用傅立叶变换。卷积过程如下面的动图所示。
对图像进行了预处理后,我们便可以进行更多的操作,以尝试通过使用诸如一阶边缘检测(例如Prewitt算子,Sobel算子,Canny边缘检测器)等方法来提取图像中的边缘和形状,或者通过霍夫变换检测直线或者圆形。
特征提取
对图像进行预处理后,可以使用特征提取器从图像中提取四种主要类型的特征形态:
全局特征:将整个图像作为一个整体进行分析,然后从特征提取器中提取单个特征向量。全局特征的一个简单例子是合并像素值的直方图。
基于网格或基于块的特征:将图像分为不同的块,并从每个不同的块中提取特征。这种类型的特征通常用于训练机器学习模型。
基于区域的特征:将图像分割为不同的区域(例如,使用阈值或K-Means聚类等技术,然后分解成不同的连通域),然后从每个区域中提取特征。可以通过使用区域和边界描述方法(例如“矩”和“链码”)来提取特征。
局部特征:在图像中检测到多个单个兴趣点,并通过分析邻近兴趣点的像素来提取特征。可以从图像中提取的感兴趣的像素点主要有两种主要类型:角点和斑点。可以使用诸如Harris、Stephens Detector和Gaussians的Laplacian之类的方法来提取它们。最后,可以使用诸如SIFT(尺度不变特征变换)之类的技术从检测到的兴趣点中提取特征。通常使用局部特征来匹配图像以构建全景图或者进行3D重建、以及从数据库中检索图像。
一旦提取了一组判别特征,我们就可以使用它们来训练机器学习模型并进行预测。
机器学习训练并预测
在计算机视觉中用于对图像进行分类的常用工具之一是视觉单词袋(BoVW)。为了构造视觉单词袋,我们首先需要通过从一组图像中提取所有特征(例如,使用基于网格的特征或局部特征)来创建词汇表。之后,我们可以计算提取的特征在图像中出现的次数,并根据结果构建频率直方图。使用频率直方图作为基本模板,可以通过比较图像的直方图来对图像是否属于同一类进行分类,具体如下图所示。
这个过程可以概括为以下几个步骤:
我们首先通过使用特征提取算法(例如SIFT和Dense SIFT)从图像数据集中提取不同的特征来构建词汇表。
其次,我们使用K-Means或DBSCAN等算法对词汇表中的所有特征进行聚类,并使用聚类质心来总结数据分布。
之后,我们可以通过计算词汇中不同特征出现在图像中的次数来从每个图像构建频率直方图。
然后,通过对要分类的每个图像重复相同的过程,然后使用任何分类算法,找出词汇表中哪个图像与我们的测试图像最相似,可以对新图像进行分类。
此外,由于人工神经网络体系结构较为成熟,例如卷积神经网络(CNN)和循环人工神经网络(RCNN),这些网络结构可以为计算机视觉提出一个替代的工作流程,取代上面的过程,直接由输入图像经过神经网络直接得到输入结果。具体形式如下图所示。
在这种情况下,深度学习算法结合了计算机视觉工作流程的特征提取和分类步骤。使用卷积神经网络时,神经网络的每一层在描述时都应用了不同的特征提取技术(例如,第1层检测边缘,第2层在图像中找到形状,第3层对图像进行分割等)。
机器学习在计算机视觉中的进一步应用包括多标签分类和对象识别等领域。在多标签分类中,我们旨在构建一个模型,该模型能够正确识别图像中有多少个对象以及它们属于哪个类。相反,在对象识别中,我们旨在通过识别图像中不同对象的位置,将这一概念进一步发展。
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
计算机视觉系统中图像究竟经历了哪些“折磨”相关推荐
- 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码
1 简介 视网膜图像里的血管是可以被观察到的一类微血管,并且它是无创伤的,而其分布位置也属于深度部位[5].其分布.结构和形态特征的变化能在一定程度上反映病变的程度.而白血病.糖尿病以及高血压等疾病都 ...
- 计算机视觉技术在图像特征提取中的应用研究,基于图像特征提取的图像融合研究...
基于图像特征提取的图像融合研究 [摘要]:视觉信息是人类从自然界中获取信息的最主要手段,图像信息是一种主观性很强的重要信息表达形式,也是最难由计算机认知.处理与实现的信息之一.而图像特征提取作为计算机 ...
- CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)
CV:计算机视觉技术之图像基础知识(一)-以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边) 目录 一.图像中的傅里叶变换 1 ...
- 从系统中取得指定资源图像(转载)
从系统中取得指定资源图像(转载) 在Winuser.h中定义了一些系统常用的资源,比如对话框的图标,某些按钮上的图像等. 以下是部分OEM资源序号和一些标准ICON的ID: //----------- ...
- ni max不能连续采集图像_图像识别技术在智慧教室录播系统中的应用研究
在落实"互联网+教育"战略.深化教育教学改革的背景下,建设智慧教室是学校创新教学环境.提升人才培养质量的必然选择[1].随着微课.MOOC等移动学习方式的兴起,将现代教育技术融入教 ...
- Mac系统中怎么绘制函数图像?附绘制函数图像教程~
学数学常常要自己画图?画不对,画得慢,画的丑?Mac系统中怎么绘制函数图像?福利来了,mac系统下有非常方便的画函数图像的工具,可以快速地画出很多简单的,复杂的,2D的,3D的函数图像.简直就是学习数 ...
- linux系统浏览器无声音,在Deepin 20系统中外接显示器切换后浏览器没有声音的解决经历...
如果你在Deepin 20系统遇到浏览器没有声音的问题,请看以下解决经历,或许能给你提供帮助.可先参考在Deepin系统中没有声音的解决办法. 浏览器没有声音的解决历程 在家里笔记本有时候需要外接HD ...
- 计算机视觉技术在图像特征提取中的应用研究,彩色图像特征提取研究(一)
彩色图像特征提取研究(一) 彩色图像特征提取研究 徐红霞 摘要:以普通的彩色图像为例,介绍了对彩色图像特征提取的原理.其具体过程分为原图像的预处理.图像信息分析.图像的特征提取,然后用MATLAB实现 ...
- 【杂谈】计算机视觉在人脸图像领域的十几个大的应用方向,你懂了几分?
文/编辑 | 言有三 人脸图像属于最早被研究的一类图像,也是计算机视觉领域中应用最广泛的一类图像,可以说掌握好人脸算法,基本就玩转了计算机视觉领域.在经历了几十年的发展后,现在人脸图像都有哪些研究和应 ...
最新文章
- HDU5443(ST表)
- 华为云AI开发部总经理罗华霖:华为人工智能的实践与创新
- VS2010单元测试入门实践教程
- 在嵌入式Jetty(Embedded Jetty)中部署FastCGI Servlet载入PHP程序
- java中捕获异常的作用_在Java中捕获通用异常?
- mysql 格式化_mysql中格式化数字详解
- mac上SVN简单几个命令
- SimpleDateFormat时间日期格式化,时间日期类使用示例
- 每天学一点flash(4) 数组与xml配合使用
- 重写description方法
- 【Java算法】Java抽奖算法,适用于各种抽奖
- c语言入门基础知识总结
- Drool规则引擎介绍
- pycharm免安装版推荐
- 快速:通过画图了解Racket
- 对乔布斯创新能力看法
- linux-文件系统
- 5G的工业应用场景梳理
- curl 命令的学习笔记
- 基于tensorflow+CNN的新浪新闻文本分类