文章目录
- 一、运动控制和机器视觉
-
- 1、什么是运动控制
- 2、运动控制卡和运动控制器有区别吗?
- 3、运动控制系统的主要组成部分有哪些?
- 4、运动控制系统包含那些分类?
- 5、运动控制器应用的领域有哪些?
- 6、步进电机与伺服电机有哪些区别?
- 7、说说运动控制卡的工作原理
- 8、运动控制卡技术特点有那些?
- 9、众多运动控制卡如何做选型?
- 10、编码器位置检测有那些常见的设备?
- 11、你知道那些做运动轴卡的公司?
- 12、你知道光源有哪些种类
- 13、简单说说几种光源的用途
- 14、什么是马尔视觉理论,简单说说
- 15、视觉信息处理过程包括几个主要表达层次
- 16、视觉信息处理的三个阶段是什么
- 17、OpenCV中cv::Mat的深拷贝和浅拷贝问题
- 18、 OpenCV中RGB2GRAY是怎么实现的
- 19、连续图像转化为数字图像需要进行哪些操作?
- 20、数字图像中有哪些基本特征?
- 21、图像边缘检测中常用的边缘检测算子有哪些?
- 22、对霍夫变换的理解
- 23、对HOG特征的理解
- 24、图像的插值方法有哪些?
- 25、Grabcut的基本原理和应用
- 26、SIFT/SURF的特征提取方法,是如何保持尺度不变性的?
- 27、关于FLANN算法
- 28、Canny边缘检测的流程
- 29、 图像锐化
- 30、图像对比度
- 31、 图像滤波有哪些?
- 32、如何检测图片中的汽车,并识别车型,如果有遮挡怎么办?
- 33、常用图像增强算法
- 34、数字图像处理中常用图像分割算法有哪些?
一、运动控制和机器视觉
1、什么是运动控制
运动控制是指“控制移动”之意。其代表可以举出利用各种电机进行位置控制等。电能附加给电机,使电机工作,转换为动能。这项技术作为机床、机械手控制、半导体制造装置、注塑成型机、数字家电检查装置等的核心,发挥着巨大的作用,在这一领域的设备投资近年来大幅增长。
2、运动控制卡和运动控制器有区别吗?
**运动控制器:**可脱机独立运行,ZDevelop编程,工作方式类似PLC,可网线连接PC或者工控机,调用API函数,多任务独立运行,程序存储空间大,一般124KB-32M
**网络运动控制卡:**可网线连接PC或者工控机,调用API函数,程序存储空间小,一般4-128KB,一般只有一个任务数,一般不脱机独立运行,但可写部分程序到控制卡,直接接线,无需转接板,方便操作
PCI/PCIe运动控制卡:必须以工控机为载体,需要PCI卡槽,并需要安装PCI驱动,可调用API函数,不能写程序到PCI卡,接线需要转接板,接线麻烦
3、运动控制系统的主要组成部分有哪些?
运动控制器、驱动或放大器、执行器、反馈传感器。
运动控制器主要用于生成轨迹点和闭合位置反馈环。驱动或放大器用于将来自运动控制器的控制信号(通常是速度或扭矩信号)转换为更高功率的电流或电压信号。执行器,如液压泵、气缸、线性执行机或电机,用以输出运动。反馈传感器用以反馈执行器的位置到位置控制器,以实现和位置控制环的闭合。
4、运动控制系统包含那些分类?
根据有无反馈和如何反馈可以分为开环控制系统、闭环控制系统和半闭环控制系统三类。
开环控制系统:根据输入量和干扰量进行控制,而输出端和输入端之间不存在反馈回路,输出量在整个控制过程中对系统的控制不产生任何影响,这样的系统称为开环控制系统。开环控制系统没有自动纠偏的能力。
半闭环控制系统:如果系统的反馈信号不是直接从系统的输出端引出,而是间接地取自中间的测量元件,例如在控制机床的进给伺服系统中,若将位置检测装置安装在传动丝杠的端部,间接测量工作台的实际位移,则这种系统称为半闭环控制系统。
闭环控制系统:输出端和输入端之间存在反馈回路,输出量对控制过程产生直接影响,这种系统称为闭环控制系统,其就是应用反馈系统来减少偏差,控制精度高。但因为其一直存在着纠偏,很容易引起振荡,是系统不稳定,而无法稳定工作。所以在闭环控制系统中精度和稳定性之间总会存在着矛盾,必须合理的解决。
5、运动控制器应用的领域有哪些?
**冶金行业:**电弧炉电机控制、轧机轧辊控制、产品定尺控制等。
**机械行业:**机床定位控制、加工轨迹控制、自动化流水线及机械手的控制等。
**信息行业:**磁盘驱动器磁头的定位控制、打印机的控制等。
**建筑行业:**电梯及电梯群的控制等。
**其他行业:**立体仓库和立体车库的控制等。
6、步进电机与伺服电机有哪些区别?
步进电机:可高精度定位的电机。与输入脉冲同步,呈阶梯状地一点点旋转一定角度。由于步进电机根据输入脉冲准确旋转,所以无需旋转量检测就能够高精度定位。一般的分辨率是:1步(1个脉冲)= 1.8°、 0.72°、0.36°等。
- 可以开环高精度定位。
- 启动和停止的响应性优越。
- 不累积停止时的角度误差(一般步进电机的误差为一般±0.05°,精度高)。
- 即使处于停止状态,也可获得较大的自保持力。
- 低速时可获得大转矩。
- 电机的结构简单,使维护工作变得简单。
**伺服电机:**分为交流伺服电机和直流伺服电机。主要在制造工厂使用(机床、产业机械手等)。伺服电机具备检测转角的编码器,进行闭环高精度的定位。
- 能够产生较大的加减速转矩,即使负荷或脉冲速度急剧变化,也不会产生失步现象,获得高速响应。
- 不仅可从低速到高速获得平稳而圆滑的旋转,运转中噪音也小,效果好。
- 以小型化、轻量化实现高输出功率。
7、说说运动控制卡的工作原理
运动控制卡是基于总线的电机运动控制卡。采用专用控制芯片为核心器件,输入输出信号均为光电隔离,可与各种类型的步进电机驱动器连接,驱动步进电机,组成高精度位置控制系统或调速系统。可与电脑机组成主从式控制结构:电脑机负责人机界面的管理和其它管理工作;而运动控制卡负责运动控制方面的所有细节。运动控制卡用户通过厂家提供的动态链接库可方便快速的开发出自己需要的运动控制功能。
8、运动控制卡技术特点有那些?
运动控制卡是一种安装在PC机中专门用于步进和伺服电机控制的板卡(与图象卡和MODEM类似)。它与PC机构成主从式控制结构:PC机负责人机界面的管理和其它管理工作(如键盘和鼠标的输入、图形显示、网络通讯等);而控制卡负责运动控制方面的所有细节(如升降速处理、脉冲输出、直线圆弧插补、原点限位监测等)。
- **友好界面:**PC平台控制系统受到机器操作员的普遍欢迎。与单片机和PLC方案的界面相比,PC机(显示器、键盘、鼠标、通讯端口、硬盘、软驱等)具有无可比拟的输入输出能力。
- **强大作用:**由于PC机的强大作用以及雷赛控制卡的先进技术,基于PC机的运动控制系统能够实现单片机系统和PLC系统所无法应付的无数高级作用。
- **开发便利:**运动控制卡用户可使用VB、VC、C++BUIDER等高级编程语言,快速开发人机界面、调用成熟可靠的运动函数,在几天或几周时间内完成强大控制软件的开发。修改和添加作用十分便利,而且开发好的软件极易移植到类似的机器中。
9、众多运动控制卡如何做选型?
从功能方面考虑
运动控制卡的功能,一股都包括归季、定速、点位、直线插补、多轴联动插补和圆弧插补等功能。用户应该要根据自己的需要进行选择,功能的要求符合自己用就可以,不需要的功能反而是累赘。一股的情况下,功能越多,价格也越高。所以,在功能的选择上,以实用为标准,但也应考虑未来的扩展。
从性能方面考虑
运动控制卡的性能一般包括通信速度、响应速度和控制速度〔脉冲中速度)。建议用户需要根据自己的应用的最高要求,计算自己需要的性能指标,然后预留20%左右的余量即可。
从可靠性方面考虑
使用运动控制卡,运动控制卡的稳定性是非常重要的。因为一个控制系统的稳定性,是由电机、驱动器、电源、运动控制卡硬件、软件组成的。一股的能经过市场检验的运动控制卡,在隔离设计(比如电源隔离、光耦隔离等)、滤波和保护限位保护、接口保护)等都是有考虑的,能力上不会有多大的差别。如果有经验的话,可以观察一下控制卡上的电路,进行一下地连线的分析都可以进行判断如果明显连个光耦(或者磁隔离)都没有,或者虽然有光耦,但是地还是在一起,根本就没有隔离开,那可靠性就不太稳定。简单的说,板卡上的地线如何处理,可以快速的判断硬件上的可靠性。
从易用性方面考虑
易用性包括硬件的易用性和软件的易用性。硬件的易用性需要连线方便实用,从用户方便实用的角度考虑。软件的易用性包括文档的质量、例程的质量和软件入手的难度上,重要的是能快速有效的完成自己需要的功能,而不是很复杂很难用,时间也是成本。
10、编码器位置检测有那些常见的设备?
编码器有 EA 、 EB 、 EZ 三个信号,脉冲计数信号由 EA 和 EB 端口输入;它可以接收两种类型的脉冲信号:正负脉冲输入或 A/B 相正交信号; EZ 信号是编码器零位信号。
常见的有旋转编码器、光栅尺、探针
11、你知道那些做运动轴卡的公司?
目前国内外运动控制卡公司有美国的GALIL和PMAC,英国的翠欧,台湾的台达、凌华和研华,大陆的研控、雷赛、高古、乐创和风行等。
12、你知道光源有哪些种类
条光、背光源、球面光源、点光源、同轴光源、组合光源、环形光源
13、简单说说几种光源的用途
**同轴光源:**所得的图像非常均匀。适用于表面微小物体检测
**角度照射:**在一定的工作距离下,光束集中,亮度高,均匀性好,但是照射面积小(常用于液晶矫正,塑胶容器检测,工件螺孔定位,标签检测,管脚检查,pcb印字检查。尤为适合各种奇形怪状的物体。【30,45,60,75度】)
**垂直照射:**照射面积大,光照均匀性好,适用于较大面积照明,用于基底和线路板定位,晶体检查等【0角度环光,面光源】
球面照射(瓦罐状照射,圆顶光源):用于检测曲面的金属表面文字。
**背光源照射:**适合检测物体的轮廓(测量),透明物体的不透明部分。
**条光:**条光照射宽度应大于检测距离,否则会出现照射距离远导致的亮度差,或者照射距离近的辐射不够大。条光长度应该处于可以照射被照亮的地方即可。如果为高反射物体(金属)应加上漫反射板或者偏正片,黑色物体则不需要。
**环形光:**根据按照距离可以过滤某些角度的光源,距离远则使用小角度光源,距离越高,要求光源直径越大。目标面积小,且主要特性在中部,课选择小尺寸0角度光源或小角度光源。目标需要表现的特征在边缘,课选择90度角环光,或者大角度环光。检测表面划伤,可选择90角环光,尽量选择波长短的光源(衍射效果不明显)。
**背光源:**选择背光源时候应根据物体大小选择合适背光源。选择背光源时,应把物体放在背光源的中间。背光源一般为检测轮廓时,可以尽量使用波长短得光源其衍射性弱,图像边缘不容易产生重影,对比度高。背光源与物体的距离根据实际情况选择。检测液位可以将背光源侧立使用。圆轴类的产品,螺旋状的产品常使用背光源。
14、什么是马尔视觉理论,简单说说
马尔计算视觉理论包含二个主要观点:首先,马尔认为人类视觉的主要功能是复原三维场景的可见几何表面,即三维重建问题;其次,马尔认为这种从二维图像到三维几何结构的复原过程是可以通过计算完成的,并提出了一套完整的计算理论和方法。所以,马尔视觉计算理论在一些文献中也被称为三维重建理论。
15、视觉信息处理过程包括几个主要表达层次
根据马氏( Marr )提出的假设,视觉信息处理过程包括三个主要表达层次,即为初始间图、二维半简图和三维简图。
1 、初始简图
亮度图像含有两种重要信息:图像的亮度变化和局部集合特征。
初始简图所包含的信息大部分集中在与实际边缘以及边缘终止点有关的剧烈灰度变化上。
如果所用边缘检测方法所产生的是短线段,那么,就要利用聚集过程把那些相容的描述线段连接起来。
2 、二维半简图
二维半简图包含景物表面的信息,可以把它看做某些内在特性的混合信息。二维半简图清楚地表示物体表面方向的信息。
3 、三维简图
三维表达法能够完全而又清晰地表示有关物体形状的信息,其方法之一即为广义柱体。
16、视觉信息处理的三个阶段是什么
光学过程、化学过程、神经处理过程
17、OpenCV中cv::Mat的深拷贝和浅拷贝问题
深拷贝
:分配新内存的同时拷贝数据,当被赋值的容器被修改时,原始容器数据不会改变。
浅拷贝
:仅拷贝数据,当被赋值容器修改时,原始容器数据也会做同样改变。
OpenCV的Mat时,有几种赋值方式分别为:
深拷贝是 b = a.clone(); 和 a.copyTo(b);
浅拷贝是 b = a;和 b(a);
关于这个问题,我还测试了OpenCV中的ROI,就是图像截图,发现ROI也是浅拷贝。C++中利用opencv存储图像的结构体是Mat。
18、 OpenCV中RGB2GRAY是怎么实现的
本质上就是寻找一个三维空间到一维空间的映射,以R、G、B为轴建立空间直角坐标系,则图片上的每一个像素点都可以用一个点表示,则可以通过一个公式Gray = 0.29900×R + 0.58700×G + 0.11400×B
,来完成一维空间的映射。
19、连续图像转化为数字图像需要进行哪些操作?
取样 量化
20、数字图像中有哪些基本特征?
颜色特征、纹理特征、形状特征、空间关系特征等。
21、图像边缘检测中常用的边缘检测算子有哪些?
Roberts算子、Prewitt算子、Sobel算子、Canny算子、Laplacian算子等。
22、对霍夫变换的理解
霍夫变换常用来提取图像中的直线和圆等几何形状。它通过一种投票算法检测具有特定形状的物体,就是通过计算累计结果的局部最大值得到一个符合该几何形状的集合作为结果。
算法原理:针对每个像素点,使得Θ在-90度到180度之间,用极坐标p = xcosΘ + ysinΘ计算得到共270组(p,theta)代表着霍夫空间的270条直线。将这270组值存储到H中。如果一组点共线,则这组点中的每个值,都会使得H(p,Θ)加1,因此找到最大的H值,就是共线的点最多的直线,也可以通过设定阈值来判定。
23、对HOG特征的理解
其主要思想是:在边缘具体位置未知的情况下,边缘方向的分布也可以很好的表示行人目标的外形轮廓,即梯度的统计信息,而梯度主要位于边缘的地方很好地描述。 HOG特征检测算法的几个步骤:颜色空间归一化—>梯度计算—>梯度方向直方图—>重叠块直方图归一化—>HOG特征。
24、图像的插值方法有哪些?
最近邻法、双线性内插法、三次内插法
25、Grabcut的基本原理和应用
Graph Cut和Grab Cut算法,两者都是基于图论的分割方法。 Graph Cut在计算机视觉领域普遍应用于前背景分割、抠图等。 基本原理:根据待分割的图像,确定图的节点与边,即图的形状已确定下来,是给图中所有边赋值相应的权值,然后找到权值和最小的边的组合,就完成了图像分割。
26、SIFT/SURF的特征提取方法,是如何保持尺度不变性的?
SIFT(Scale-Invariant Feature Transform)算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
如何保持尺度不变性? ①尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯差分函数来识别潜在的对于尺度和旋转不变的关键点。(第一步获取图片的高斯金字塔,高斯金字塔指的是图片在不同尺寸下进行的高斯模糊处理后的图片,为了寻找图片的特征点,我们要找到图片在不同尺寸空间里的极值,这些极值通常存在于图片的边缘或者灰度突变的地方,所以要对高斯模糊后的图片进行高斯差分,然后到寻找极值点。) ②关键点定位:由于图片的坐标是离散,所以要精确定位的话,作者采用了曲面拟合的方法,通过插值找到真正极值点的位置,位置找到之后,我们要找到这个极值点的主方向。 ③关键点方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而保证了对于这些变换的不变性。 ④关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度作为关键点的描述符,它允许比较大的局部形状的变形或光照变化。
SURF是在SIFT的基础上改进的,原理基本相似,在特征点检测这儿,SIFT是先进行非极大值抑制,再去除低对比度的点,最后再通过Hessian矩阵去除边缘的点;而SURF是先用Hessian矩阵确定候选点,然后再进行非极大值抑制,该算法提高了SIFT的速度和鲁棒性,且理论上SURF是SIFT速度的3倍。(见书《OpenCV3编程入门》P417)
27、关于FLANN算法
FLANN算法也属于关键点匹配算法,算法步骤整体来说分为两步:一是建立索引,而是搜索。 建立索引:其实就是要两部分参数,一是数据也就是mat矩阵,二是一些具体参数,这个参数要根据建立的索引类型来设置。而有哪些索引类型呢?共有:线性索引、KD-Tree索引、K均值索引、复合索引、LSH方法索引、自动索引六种。 进行搜索:有两种搜索方式 :搜索k邻近 (具体点的个数由用户设定,设n个就一定返回n个)、搜索半径最近 (即可能不存在符合条件的点,则返回空的)。 SIFT/SURF是基于浮点数的匹配,ORB是二值匹配,速度更快。对于FLANN匹配算法,当使用ORB匹配算法的时候,需要重新构造HASH。
28、Canny边缘检测的流程
图像降噪——计算图像梯度,得到可能边缘——非极大值抑制——双阈值筛选
29、 图像锐化
平滑:把图像变模糊;
锐化:把图像变清晰;
图像锐化主要用于增强图像的灰度跳变部分,这和图像平滑对灰度跳变的抑制正好相反。
30、图像对比度
对比度:指一幅图像中灰度反差的大小;
对比度 = 最大亮度 / 最小亮度
31、 图像滤波有哪些?
定义:把滤波想象成一个包含加权系数的窗口,当使用这个滤波器平滑处理图像时,就把这个窗口放到图像上,透过该窗口查看。
滤波的作用:去除图像中的噪声
低通滤波器:去除图像中的高频部分——模糊化
高通滤波器:去除图像中的低频部分——锐化
线性滤波器:方框滤波、均值滤波、高斯滤波
非线性滤波:中值滤波、双边滤波
32、如何检测图片中的汽车,并识别车型,如果有遮挡怎么办?
首先这是一个细粒度的分类(Fine-Grained Classification)问题,和普通的分类不一样,要分类的类别往往只是有细微的差异。 思路: ①人工框定局部图像,然后识别。比如我去框定,汽车的车灯,汽车的前脸,汽车轮毂等,然后用 cnn或 deep cnn其他的分类器做这些的分类,对于分类器来说输入是汽车的车灯+汽车的前脸+汽车轮毂,而不是整张图片,分类器再从车灯前脸等提取高级特征,从而得到一个分类模型。 ②不做局部变换,做图片整体识别。但是做分级或是分层。首先,训练第一个分类器,它只针对汽车和非汽车进行分类,标记了car 和 other。这一步要求尽可能的广,涵盖生活中常见的图片,力求98%以上的准确率,每个分类用了2w张图片,实际上能达到99.5%的准确率。接着,对于汽车做品牌分类器,只对汽车所属的品牌进行分类,不对细分的子品牌分类。这一步每一类人工标记5000张图片,输入是第一步的输出,准确率能达到96%以上。 最后,对每个品牌的汽车进行车型分类,这一层识别率在94%左右。这样会得到一个0.98×0.96×0.94~0.88的识别率。
33、常用图像增强算法
①直方图均衡化:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。 这种方法通常用来增加许多图像的局部对比度,这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。
②对数图像增强算法:对数图像增强是图像增强的一种常见方法,其公式为: S = c log(r+1),其中c是常数(以下算法c=255/(log(256)),这样可以实现整个画面的亮度增大。
③指数图像增强算法:指数图像增强的表达为:S = cR^r,通过合理的选择c和r可以压缩灰度范围,算法以c=1.0/255.0, r=2实现。
④加Masaic算法(马赛克):原理:用中心像素来表示邻域像素
⑤曝光过度问题处理:对于曝光过度问题,可以通过计算当前图像的反相(255-image),然后取当前图像和反相图像的较小者为当前像素位置的值。
⑥高反差保留:高反差保留主要是将图像中颜色、明暗反差较大两部分的交界处保留下来,比如图像中有一个人和一块石头,那么石头的轮廓线和人的轮廓线以及面部、服装等有明显线条的地方会变被保留,而其他大面积无明显明暗变化的地方则生成棕灰色。其表达形式为:dst = r×(img - Blur(img))。
⑦拉普拉斯算子图像增强:使用中心为5的8邻域拉普拉斯算子与图像卷积可以达到锐化增强图像的目的。
⑧Gamma校正:伽马变换主要用于图像的校正,将灰度过高或者灰度过低的图片进行修正,增强对比度。伽马变换对图像的修正作用其实就是通过增强低灰度或高灰度的细节实现的。
34、数字图像处理中常用图像分割算法有哪些?
①多数的图像分割算法:均是基于灰度值的不连续和相似的性质。
②图像边缘分割:边缘是图像中灰度突变像素的集合,一般用微分进行检测。基本的边缘检测算法有:Roberts算子、Sobel算子。稍高级的算法有:Canny边缘检测器。
③图像阈值分割:由于阈值处理直观、实现简单且计算速度快,因此阈值处理在分割应用中处于核心地位。如Otsu(最大类间方差算法)算法。
④基于区域的分割:区域生长算法和区域分裂与聚合都是属于基于区域的分割算法。
⑤形态学分水岭算法
的不连续和相似的性质。
②图像边缘分割:边缘是图像中灰度突变像素的集合,一般用微分进行检测。基本的边缘检测算法有:Roberts算子、Sobel算子。稍高级的算法有:Canny边缘检测器。
③图像阈值分割:由于阈值处理直观、实现简单且计算速度快,因此阈值处理在分割应用中处于核心地位。如Otsu(最大类间方差算法)算法。
④基于区域的分割:区域生长算法和区域分裂与聚合都是属于基于区域的分割算法。
⑤形态学分水岭算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H0driCLo-1678066831269)(D:\Project\zxOperationShare\2021-2023全新整理面试题+简历模板.NET笔面试题\ASP.NET Core笔试题-20220311版本\20210114UpdateASPNET Core笔试题\image-20210119143621350.png)]