A题 图像边缘分析与应用
这道题目属于CV(计算机视觉)领域的题目,好像和去年的题目比较相像,如果是研究生或者对CV领域有所了解应该对此题比较擅长。题目写了要建立数学模型,但是用深度学习算法也应该可以解决题中所给问题,对于图像分割,边缘检测可以用一些常用的CV算法(网上一大堆,CNN、YOLO,还有最近比较火的swin transformer)。
另外,针对此题目,如果要建立数学模型,把图片看作像素点堆成的矩阵,用python中的pytorch或tensorflow处理图像会比较容易实现自己的想法,里面有大量的图像处理函数。
在边缘检测后,就需要对轮廓进行分段,这个就是题目的难点,可以这么来,依次遍历边缘点,可以先检测直线,这个很好办,依次加入点坐标进去,斜率不发生明显变化,那就可以定义为直线段,其他的都是弧线,剩下的弧线,从某点开始,依次连接其他点,算斜率,斜率方向要么绕顺时,要么逆时,改变方向就是下一个弧线,圆形就可以直接用这个方法搞出来;对于这种图像也好办,边缘检测后用DBSCAN聚类出来就行。
此题对小白不是很友好,DS- C君不建议编程能力弱的团队选择此题,如果有相关经验此题应该非常简单了。
题目
2021年亚太数学建模竞赛
问题
图像边缘分析与应用
随着科学技术的发展,对各种工件和零件的测量精度的要求越来越高,对测量仪器的要求也越来越高。各种图像测量设备如数字图像尺寸测量仪正在逐步取代传统的手工卡尺测量应用。一般情况下,摄像机经过标定后,根据标定后图像的点阵或棋盘格特征信息,对图像进行畸变校正,计算出图像坐标空间与世界坐标空间的映射关系。
目标物体的边缘在图像识别和计算机分析中是非常有用的。图像边缘是图像局部特征的不连续性的反映。边缘可以勾勒出目标物体的轮廓,使观察者一目了然。边缘包含丰富的内在信息(如方向、阶跃属性、形状等),是图像识别中提取图像特征的重要属性。图像边缘轮廓提取是图像边界分割中非常重要的一项处理,也是图像处理中的一个经典问题。轮廓提取和轮廓跟踪的目的都是为了获取图像的外部轮廓特征。在必要时应用某些方法来表达轮廓的特征,为图像形状分析做准备,对执行高级处理,如特征描述、识别和理解有重大影响。
轮廓可以描述为一组有序点,轮廓的一般表达式为多边形。轮廓可以是封闭的,也可以是开放的。图像上的封闭轮廓从头到尾都是连通的,开放轮廓通常与图像边界相交。在图1中,有五条封闭的等高线。虽然sobel和canny等边缘检测算法可以根据图像灰度值的差值来检测图像边缘像素的边界,但并没有将轮廓作为一个整体。在图像上,轮廓对应于一系列像素点。轮廓描述连续的点序列,边缘像素点可以组合成轮廓曲线来描述图像的边缘信息。
亚像素是定义在图像采集传感器的两个物理像素之间的虚拟像素。为了提高分辨率或图像质量,亚像素计算是非常有用的。亚像素边缘提取是一种比传统像素边缘提取更精确的方法。亚像素是指图像上每个像素点的坐标值不再是整数定位,而是浮点数定位。如果利用亚像素技术将精度提高到0.1像素,相当于提高10倍的图像系统分析分辨率。
以下三个示意图,在图1中,提取了图像的物体边缘轮廓线,并将图像边缘轮廓分割成直线段、圆弧段、圆等基本图形。在图2中,将一个圆角矩形的边缘轮廓分为几个几何形状。在图3中,在灰度像素图像网格的背景上绘制了一个椭圆的亚像素轮廓曲线。
图1所示。图像边缘检测
图2。图像边缘轮廓
图3。图像的亚像素边缘轮廓
问题1:建立一个数学模型,分析亚像素边缘提取的方法和过程有1/10像素精度及以上、亚像素边缘提取轮廓边界的主要对象的边缘部分的三张图片(Pic1_1、Pic1_2 Pic1_3)在附件1中,和亚像素边缘点数据转换成命令边缘轮廓曲线数据,需要考虑如何消除边缘毛刺和阴影部分的干扰影响。需要注意的是,Pic1_3图像是在相对复杂的光照条件下拍摄的,干涉信息更多。
a)请将提取的不同颜色的边缘轮廓绘制在图像上,输出为彩色边缘轮廓图像,并保存为png图像格式提交。文件名为pic1_1。png、pic1_2。png、pic1_3.png。
b)将边缘轮廓数据以附件1中的EdgeContoursOutput.xls文件的格式输出,将Pic1_1和Pic1_2图像的数据分别输出到工作表对应的Sheet1和Sheet2。输出数据包含总边缘轮廓数、图像坐标空间中总边缘轮廓长度、每条轮廓曲线的点数和长度以及每条轮廓点的X、Y坐标数据。
c)文中需要给出每张图像上的总轮廓曲线计数,以及每条曲线上的点计数和长度数据。见表1、表2、表3。
表1。Pic1_1边缘轮廓数据输出格式
总边缘轮廓计数
总边缘轮廓长度
边缘轮廓1 长度
PointCount
边缘轮廓2 长度
PointCount
... ... ...
表2。Pic1_2边缘轮廓数据输出格式
总边缘轮廓计数
总边缘轮廓长度
边缘轮廓1 长度
PointCount
边缘轮廓2 长度
PointCount
... ... ...
表3。Pic1_3边缘轮廓数据输出格式
总边缘轮廓计数
总边缘轮廓长度
问题2:在拍摄被测图像时,有一个点矩阵校准板放置在目标物体的同一水平高度上。定标板上的网点直径为1mm,两点之间的中心距离为2mm。附件2包含三张不同角度拍摄的标定板图像和一张产品图像(pic2_1 .bmp)。请建立数学模型,利用标定板图像信息对产品图像进行图像校正分析,考虑如何尽可能准确地计算出产品图像上边缘分割拟合曲线段的实际物理尺寸。请计算每个边缘轮廓的长度(mm),最后计算出总边缘轮廓长度(mm)。根据图4所示的轮廓数据标注,输出附件2中EdgeContoursLengthOutput.xls等表格格式文件的数据结果。
表4。边缘轮廓长度输出格式(mm)
轮廓ID 长度(毫米)
总边缘轮廓
边缘轮廓1
边缘轮廓2
边缘轮廓3
边缘轮廓4
边缘轮廓5
边缘轮廓6
图4。图像轮廓数据标注
问题3:附件3提供了两个亚像素轮廓边缘数据(EdgeContour1.xls和EdgeContour2.xls),其形状如图5所示。建立数学模型,分析边缘轮廓曲线数据自动分割拟合为直线段、圆弧段(含圆)、椭圆圆弧段(含椭圆),讨论边缘轮廓自动分割拟合的模型方法或策略。蓝色曲线从蓝色数字1标签开始,沿着箭头方向输出模型计算结果数据。绿色曲线从绿色数字1标签开始,沿箭头方向输出模型计算结果数据。请将分段曲线分段的参数按表格格式填写到表格中。提交表7和表8(轮廓1和轮廓2分割数据)。请注意,该表中的行类型是根据实际类型填充的。
图5。边缘轮廓曲线数据
表5所示。分割数据几何形状参数格式
类型 参数
行 StartPt EndPt 长度(像素)
圆 中心 半径 长度(像素)
CircularArc 中心 StartPt EndPt SweepAngle
椭圆 中心 大小 RotationAngle
EllipticArc 中心 大小 StartPt EndPt SweepAngle RotationAngle
表6所示。演示Coutour的分割数据
边缘轮廓演示
没有 类型 参数
S1 行 (20100) (80100) 60像素
S2 CircularArc (80, 90) (80100) (90, 90) -90°
S3 行 (90, 90) (90年,60岁) 30像素
S4 EllipticArc (90年,40) (20、10) (90年,60岁) (90年,20) + 180° -90°
表7所示。轮廓1分割数据输出格式
边缘轮廓1
没有 类型 参数
S1
S2
S3
S4
S5
...
表8所示。轮廓2分割数据输出格式
边缘轮廓2
没有 类型 参数
S1
S2
S3
S4
S5
...
备注:
- SweepAngle表示从起始点到结束点的扫角,角系;
- 尺寸表示指定椭圆或椭圆弧在X、Y方向上的半径值;
- RotationAngle表示指定椭圆或椭圆弧转角系统的转角值;
- 对于旋转角度的方向,从x轴正方向到y轴正方向的旋转方向为正,反之为负。
- 所有图像坐标点均在图像坐标系下表示,即左上角为(0,0)原点,x轴正方向向右,y轴正方向向下。