本发明涉及神经网络领域,更具体地,涉及一种基于bp神经网络的鱼眼镜头拍摄图像畸变矫正方法。
背景技术:
随着智能科学、计算机视觉技术的发展,以及人们对视频监控和采集日益增长的需求,具有宽广视野的鱼眼镜头越来越被广泛的应用在生活中。但是使用鱼眼镜头拍摄获得的照片及视频都会发生严重的畸变现象。为了获得人们习惯的画面,以及计算机可识别的图像,需要对通过鱼眼镜头获得的图像进行畸变矫正处理。传统的畸变矫正方法需要根据镜头的参数对矫正前后的图像进行模型建立,由于不同镜头的参数不一样,因此针对不同的镜头进行校正需要耗费较大的时间人力成本。
技术实现要素:
本发明为解决以上图像畸变矫正方法需耗费较大时间成本、人力成本的缺陷,提供了一种基于bp神经网络的鱼眼镜头拍摄图像畸变矫正方法,该方法矫正畸变的效率与现有相比得到了提高。
为实现以上发明目的,采用的技术方案是:
一种基于bp神经网络的鱼眼镜头拍摄图像畸变矫正方法,包括以下步骤;
s1.设纸张a上均匀分布有m行、n列的特征点,使用鱼眼镜头对纸张a进行拍摄,获得拍摄的图像;
s2.对图像进行预处理;
s3.对经过预处理的图像进行特征点的提取;
s4.提取的特征点中,水平距离最大的相邻的两个特征点间的水平距离x为每列特征点间的距离,垂直距离最大的相邻的两个特征点间的垂直距离y为每行特征点间的距离;
s5.利用x、y、m、n构建起理想的特征点分布图;
s6将提取的图像特征点与理想的特征点分布图中的特征点按照特征点的排列顺序进行匹配;
s7.得到匹配结果后,将提取的图像特征点和理想的特征点分布图中的特征点作为bp神经网络的输入和输出,得到神经网络的网络层间加权系数wki和wij;
s8.将拍摄的图像中每个像素点作为bp神经网络的输入,即可得到其矫正后的坐标,像素点的像素值保持为拍摄的图像中该像素点的像素值;通过以上操作完成拍摄图像的畸变矫正。
神经网络具有很强的自学习性、自组织性、高度非线性和鲁棒性等特点使得其在解决非线性拟合等问题上有着独特的优势,能够解决多层次的复杂问题。本发明采用神经网络解决图像畸变矫正,打破传统的图像畸变矫正技术的束缚,在非线性畸变矫正方面有着无可替代的优越性。
优选地,所述图像进行预处理具体包括以下依次执行的内容:
s11.将图像转换为灰度图像并反向处理;
s12.对图像进行二值化处理;
s13.对图像进行滤波处理;
s14.对图像进行腐蚀处理;
s15.对图像进行均值滤波处理;
s16.对图像进行二值化处理。
优选地,所述步骤s3中提取得到特征点后,对特征点进行去重处理。
优选地,所述纸张的颜色为黑色,所述特征点的颜色为白色。
优选地,所述特征点呈圆状。
优选地,所述步骤s3对图像进行多次的特征点提取,每次提取得到特征点后,将得到的特征点的坐标保存起来,然后对图像进行腐蚀,再基于腐蚀后的图像进行特征点的提取。
与现有技术相比,本发明的有益效果是:
本发明提供的方法应用bp神经网络来对鱼眼镜头拍摄的图像进行畸变矫正,矫正畸变的效率与现有相比得到了提高。并且神经网络具有很强的自学习性、自组织性、高度非线性和鲁棒性等特点使得其在解决非线性拟合等问题上有着独特的优势,能够解决多层次的复杂问题。本发明采用神经网络解决图像畸变矫正,打破传统的图像畸变矫正技术的束缚,在非线性畸变矫正方面正有着无可替代的优越性。
附图说明
图1为纸张的特征点示意图。
图2为鱼眼镜头拍摄图像的示意图。
图3为预处理后的图像的示意图。
图4为提取的特征点的示意图。
图5为执行步骤s11后图像的示意图。
图6为执行步骤s12后图像的示意图。
图7为执行步骤s13后图像的示意图。
图8为执行步骤s14、s15、s16后图像的示意图。
图9为孤立点的判断示意图。
图10为连续的孤立点的示意图。
图11为孤立点的去重示意图。
图12为理想的特征点分布示意图。
图13(a)为畸变图的特征点的分布示意图。
图13(b)为孤立点查找后的特征点抽象图。
图13(c)为特征点抽象图与理想的特征点分布图匹配的示意图。
图14为仿真实验预处理后的示意图。
图15为提取的特征点的示意图。
图16为理想的特征点分布图的示意图。
图17为矫正后的特征点的示意图。
图18为方法的实施示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图18所示,本发明提供的鱼眼镜头拍摄图像畸变矫正方法包括以下步骤;
s1.如图1所示,设纸张a上均匀分布有m行、n列的特征点,使用鱼眼镜头对纸张a进行拍摄,获得拍摄的图像,如图2所示;
s2.对图像进行预处理,得到的图像如图3、图13(a)所示;
s3.对经过预处理的图像进行特征点的提取,具体如图4、图13(b)所示;
s4.提取的特征点中,水平距离最大的相邻的两个特征点间的水平距离x为每列特征点间的距离,垂直距离最大的相邻的两个特征点间的垂直距离y为每行特征点间的距离;
s5.利用x、y、m、n构建起理想的特征点分布图,如图12所示;
s6将提取的图像特征点与理想的特征点分布图中的特征点按照特征点的排列顺序进行匹配,如图13(c)所示;
s7.得到匹配结果后,将提取的图像特征点和理想的特征点分布图作为bp神经网络的输入和输出,得到神经网络的网络层间加权系数wki和wij;
s8.将拍摄的图像中每个像素点作为bp神经网络的输入,即可得到其矫正后的坐标,像素点的像素值保持为拍摄的图像中该像素点的像素值;通过以上操作完成拍摄图像的畸变矫正。
在具体的实施过程中,如图5~8所示,所述图像进行预处理具体包括以下依次执行的内容:
s11.将图像转换为灰度图像并反向处理;通过将图像转换为灰度图像,降低图像维度(二维数组)。
s12.对图像进行二值化处理;可以大大降低数据复杂度,同时排除部分颜色差造成的识别干扰。
s13.对图像进行滤波处理;对于图像中未被阈值处理消除的噪声点,采用中值滤波对其进行修复。因为在下一步的形态学处理过程中,区域的完整性对形态学处理的结构有严重的引爆效应。
s14.对图像进行腐蚀处理;此步处理的主要目的是将特征点连通域的面积减少,降低后续孤立点查找的循环次数。
s15.对图像进行均值滤波处理;因为步骤s14进行了腐蚀处理,故特征点连通域的边缘可能不够平滑,用滤波平滑特征点连通域边缘,有利于后续孤立点查找的过程中获得更精确的孤立点位置。
s16.对图像进行二值化处理。因为步骤s15采用的是均值滤波,滤波后有部分像素点的灰度值不被二值化,通过阈值处理将其二值化。
本实施例中采用孤立点查找的办法进行样本特征点查找,即认为每一个孤立点都是样本的特征点。孤立点查找算法的判断标准是:如果有一个点与周围的其他点颜色不一样,则认为该点是孤立点。在本实施例的图像检测中,目标点必须是黑色的(灰度值为0)。每一次孤立点检查后,会把检测出的孤立点的坐标保存起来,然后对图片进行腐蚀,再继续做检测,直至整幅图像不再存在黑色的像素点。这样可以保证,较大面积的特征点连通域也可以通过腐蚀处理成孤立点,而该孤立点可以近似认为是该特征点连通域的中心。在本实施例中,考虑到畸变后的圆形连通域会发生形变,故把“周围的点”定义为坐标值与目标点坐标值相差3个像素单位的点,如图9所示:
黑色的点表示目标点,如果黑色的点为黑色(灰度值为0)且最外围相距3个像素点单位的点都是白色(灰度值为255)的话,则目标点为孤立点。灰色的点表示灰度值可以是0也可以是255(即可以是黑点,也可以是白点)。
但是可能出现如图10所示的情况,按照定义该区域内存在四个相近的“孤立点”。在这种情况下若进行多一次腐蚀,则可能所有点都被腐蚀;若少一次腐蚀,则可能检测不到孤立点。而且可能存在某一个点前一次检测是孤立点,经过一次腐蚀之后,依然是孤立点。因为需要再添加一个“孤立点去重”的处理,将如图四个或者实际情况下n个相近或者重复的孤立点缩减到一个。由于在孤立点统计过程中,会把所有的孤立点坐标放到一个的二维矩阵中,因此缩减消重的过程只要对该数组进行处理即可。同时认为如果某个点若前后两次被判断为孤立点,则以第二次为更精确的值,则前一次需找到的其附近的孤立点将被消除。在算法中,“附近”被定义为像素行列坐标与被比较的坐标相差2个单位长度。如图11所示:
实施例2
本实施例对本发明提供的方法进行了具体的仿真实验,其实验过程及结果如图14~17所示,可以看到,输入的部分特征点由于处在边缘的关系,不能很好地被识别出来,孤立点提取存在部分特征点丢失。经过神经网络的矫正之后,依旧能够得到较好的矫正效果。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。