小编讲解的内容是ROI生成ROI校正两大功能。

感兴趣区域(ROI,region of interest),在机器视觉、图像处理中,在被处理的图像上以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,简称ROI。在图像处理领域,感兴趣区域是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点。圈定该区域以便进行进一步处理,或使用ROI圈定你想处理的目标,可以减少处理时间,提高精度。

在具体的视觉应用中,当工件来料位置固定不变时,常量ROI可以覆盖工件来料。但是当来料位置存在较大波动时,就无法通过固定的ROI来实现视觉应用。这时候我们可以通过粗定位对产品进行定位,根据定位位置、长宽,角度等数据使用生成ROI,通过生成ROI工具来满足视觉应用的要求;或者通过粗定位数据使用ROI校正工具对固定的ROI进行仿射变换,跟随产品位置来满足视觉应用的要求。

什么是ROI生成?

ROI生成,通过在图像上绘制一个ROI或者用前面模块的输出结果,或用户定义的指定数据生成特定ROI。可以创建的ROI类型有:点、直线、旋转矩形、椭圆、环形、不规则。

在后面的算子中调用所生成的ROI,将不进行全图搜索检测,只在ROI区域内进行搜索,这样可以屏蔽不感兴趣区域,令检测时间缩短。

一、ROI生成的应用场合

1、目标物体周边存在干扰点时,可以通过限定感兴趣区域来规避;

2、图片数据量大,感兴趣区域小,可以通过划定感兴趣区域,令检测时间缩短;

二、ROI生成算法界面

如图1中蓝色矩形框即为划定的旋转矩形ROI:

esp32视觉识别机械臂python_python

图1  ROI生成功能界面

三、ROI生成参数设置

ROI类型:支持自定义的ROI类型。

1、点

2、直线

3、旋转矩形

4、椭圆

5、环形

6、不规则

7、多边形

ROI的生成可手动自定义参数,也可以从外部引用变量参数,如图2所示:

              

esp32视觉识别机械臂python_计算机视觉_02

图2  ROI类型示例

四、应用场合案例

图3中矩形框即为划定的矩形ROI,ROI设置选定ROI生成后,找直线功能只在该ROI区域进行搜索边缘点。

esp32视觉识别机械臂python_python_03

图3  ROI生成案例

什么是ROI校正?

在实际应用中,每一个待检测工件在图像中的位置都发生偏移,从而ROI也需要移动,否则会导致检测不到所需要的特征。此时就可以创建定位基准,使ROI跟随基准移动,能够很好的解决这个问题。

esp32视觉识别机械臂python_计算机视觉_04

图4  使用ROI校正前后效果对比示例

(单击图片放大可查看详情)

一、ROI校正应用场合

1、定位产品抓取类项目应用

2、定位产品放料类项目应用

3、激光打标、切割类项目应用

4、点胶、焊点定位类项目应用

二、ROI进行校正的步骤

第一步:确定基准源。通过匹配或Blob分析等功能对此图像部分进行分析,获得基准点和基准角度。

第二步:选择生成仿射矩阵的参数。根据校正模式、参考点、参考角度生成仿射变换矩阵。

第三步:引用基准对ROI进行校正。选择支持的ROI校正方式的算子(例如定位、测量、检测、识别等算子工具),在算子中引用ROI基准对应的仿射变换矩阵,使ROI跟随基准进行移动,保证ROI能够准确框住测量区域。

三、算法原理

其工作原理是找到校正前后的基准点及基准角度,通过两点和两角度之间的关系计算出仿射变换矩阵,原ROI的位置信息通过仿射变换求得校正后的位置信息,根据校正后的位置信息重新生成ROI。

校正模式:补正可选方法有水平方向补正,垂直方向补正,水平和垂直方向上进行补正,水平、垂直以及角度进行补正,水平方向加角度补正,垂直方向加角度补正。

参考点:依据参考点计算出仿射矩阵中平移分量,可以由Blob分析结果、匹配结果、几何关系或用户自定义变量等点变量构成。

参考角度:依据参考角度计算出仿射矩阵中旋转分量,可以由Blob分析结果、匹配结果、几何关系或用户自定义变量等数值变量构成。

esp32视觉识别机械臂python_编程语言_05

图5  ROI校正原理

esp32视觉识别机械臂python_esp32视觉识别机械臂python_06

图6  ROI校正示例

四、应用场合案例

以灰度匹配的匹配结果中心点作为参考点,选择水平和垂直方向上进行补正,生成带有平移分量的仿射变换。当工件的位置发生偏移时,ROI校正能保证ROI相对于工件测量的位置是不变的,从而能够精确地进行找圆操作。

esp32视觉识别机械臂python_计算机视觉_07

图7  ROI校正案例示意

(单击图片放大可查看详情)