在与人交流过程中听到了机器视觉与图像识别,感觉二者应该是有区别的。
机器视觉与图像识别在概念及具体实现过程的区别是什么呢?
基本上可以说差不多,前者偏重一个整体的感知,比如说感知空间位置、深度、距障碍的距离,双眼定距等,特别是机器人的场景
后者偏重识别,比如说图像文字识别一类的
该回答引用NewBing
您好,这是Bing。很高兴为您解答。😊
机器视觉与图像识别是两个相关但不相同的概念。根据网上的一些资料,我总结了以下几点区别:
可以看出,机器视觉与图像识别在概念上的区别主要在于:
在具体实现过程上的区别主要在于:
希望这些信息能够帮助您理解机器视觉与图像识别之间的区别。如果您还有其他问题,请随时提问。😊
源: 与必应的对话, 2023/5/26
(1) 计算机视觉技术与图像识别有何区别? - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/534067368.
(2) 图像处理、机器视觉、机器学习、深度学习,有什么区别呀? - 知乎. https://www.zhihu.com/question/456552069.
(3) 计算机视觉、机器视觉和图像处理,三者之间主要有什么关系?_图像处理、计算机视觉、机器视觉的关系_人工智能爱好者的博客-CSDN博客. https://blog.csdn.net/zhinengxuexi/article/details/88978877.
(4) 机器视觉怎样入门 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/78441643.
(5) 机器视觉与图像处理技术,你知道哪些? - 知乎专栏. https://zhuanlan.zhihu.com/p/546180868.
仿射变换是把一个二维坐标系转换到另一个二维坐标系的过程,转换过程坐标点的相对位置和属性不发生变换,是一个线性变换,该过程只发生旋转和平移过程。因此,一个平行四边形经过仿射变换后还是一个平行四边形。
所以,仿射= 旋转 + 平移
仿射变换矩阵为:
其中,(x,y)是原图坐标,(x’,y’)是变换后的坐标;m11,m12,m21,m22为旋转量,m13,m23为平移量。所以仿射变换矩阵实际为2*3的矩阵,以上只是齐次性,为了方便简洁表达旋转和平移,因此,仿射变换为线性变换。
在opencv中,实现仿射变换的函数为:
以下用python编程语言,opencv函数库简单实现一下仿射变换,以下程序实现把一张图片顺时针旋转45°,向左平移200个像素点,向下平移30个像素点,该过程的仿射变换矩阵为:
import cv2 as cv
import numpy as np
src = cv.imread("Google.jpg")
rows,cols = src.shape[0:2]
M = np.array([[np.cos(np.pi/4),np.sin(-np.pi/4),500],[np.sin(np.pi/4),np.cos(np.pi/4),30]]) #顺时针旋转45度,向左平移200,向下平移30
dst = cv.warpAffine(src,M,(2*cols, 2*rows))#把输出图像的大小改为输入图像的两倍
cv.imshow("src",src)
cv.imshow("dst",dst)
cv.imwrite("affine.jpg", dst)
cv.waitKey(0)
输入图像src:
输出图片dst:
机器视觉和图像识别的区别在于:机器视觉是利用机器代替人眼来进行检测、测量、识别和定位等功能,它的核心是图像处理技术,强调在图像中寻找信息和特征,然后进行分类和识别;而图像识别则是针对图像中的特定物体或场景进行识别和分析。
具体实现过程中,机器视觉一般需要从视频、图片等数据源中,通过图像采集、预处理、特征提取、类别判别等步骤,最终得出识别结果。而图像识别一般是利用深度学习等算法对大量数据进行训练,从而建立识别模型并进行识别。
以上给出的参考代码则是一个利用机器视觉技术实现自动打码的示例,其中使用了OpenCV和face_recognition等库实现了人脸检测和识别,以及视频读取、处理和保存等功能。具体实现过程中,首先通过face_recognition库得到已知人脸的编码,然后利用OpenCV读取视频,并进行人脸检测和对比,在需要打码的位置添加打码图片,最后将处理好的视频保存。