CN116659550A - 一种基于对焦深度法单目测距的自动校正方法 - Google Patents
一种基于对焦深度法单目测距的自动校正方法 Download PDFInfo
- Publication number
- CN116659550A CN116659550A CN202310649074.7A CN202310649074A CN116659550A CN 116659550 A CN116659550 A CN 116659550A CN 202310649074 A CN202310649074 A CN 202310649074A CN 116659550 A CN116659550 A CN 116659550A
- Authority
- CN
- China
- Prior art keywords
- image
- depth
- calibration
- calibration step
- definition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012937 correction Methods 0.000 title claims abstract description 27
- 238000013507 mapping Methods 0.000 claims abstract description 36
- 238000001514 detection method Methods 0.000 claims abstract description 11
- 238000005259 measurement Methods 0.000 claims abstract description 5
- 230000003287 optical effect Effects 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 9
- 238000013519 translation Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000010845 search algorithm Methods 0.000 claims description 4
- 239000013598 vector Substances 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000003708 edge detection Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 206010034719 Personality change Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C25/00—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automatic Focus Adjustment (AREA)
- Measurement Of Optical Distance (AREA)
Abstract
本发明公开一种基于对焦深度法单目测距的自动校正方法,涉及对焦校正技术领域;而本发明包括以下步骤:S1、标定步骤一,首先标定摄像头模块与投影仪光学镜头之间的映射关系,投影仪投影图像到墙上,标定板由4个特定特征图组成,通过摄像头模块拍摄特定特征图,标定时,在白灯光下进行;本发明中,通过自动左右梯形功能,不需要手动调整投影仪的四个角点的梯形,计算出设备的仪态角度后,根据角度,算法自动调整4个梯形的控制点,采用基于陀螺仪、摄像头、步进马达以及投影画面特征点检测和三角测量原理实现自动梯形矫正,在保持精准度的同时,成本也更经济。
Description
技术领域
本发明涉及对焦校正技术领域,具体为一种基于对焦深度法单目测距的自动校正方法。
背景技术
随着科技的不断发展,投影仪作为一种高科技产品已经被广泛应用于娱乐、教育、商务等领域。
然而,投影仪在实际应用过程中会出现一些问题,比如投影图像的形状失真、变形等,这些问题会直接影响用户的观感和使用体验;
在现有的技术中,基于TOF测距技术:通过TOF(TimeofFlight)测距模块,可以实现对投影画面与墙面的距离实时检测,从而确定投影仪与墙面之间的角度,从而进行梯形矫正,优点是实时性好,但需要额外的硬件模块支持,成本较高;
基于陀螺仪技术:通过陀螺仪模块,可以实现对投影仪的姿态角度的检测,从而确定投影画面与墙面之间的角度,从而进行梯形矫正,优点是实时性好,不需要额外的硬件模块支持,但对于一些投影仪姿态变化频繁的场景效果可能不理想为了解决这个问题,市场上出现了多种左右梯形矫正的方法和设计;
基于摄像头技术:通过内置或外接摄像头实时拍摄投影画面和墙面,并利用计算机视觉算法进行图像处理,从而实现自动梯形矫正,优点是实现方便,成本较高,但可能受到环境光线等因素的影响;
基于投影画面特征点检测技术:通过检测投影画面中的特征点,如四个角点,来确定投影画面与墙面之间的角度,从而进行梯形矫正,优点是不需要额外的硬件模块支持,但需要对投影画面进行特征点检测,对于一些复杂场景效果可能不理想
基于三角测量原理:通过投影仪和墙面上的两个标志点之间的距离和角度计算,确定投影仪和墙面之间的角度,从而进行梯形矫正,优点是准确性高,但需要在安装时精确测量两个标志点之间的距离和角度,操作繁琐;
从而存在以下缺陷:
1、高精度的摄像头和TOF测距模块使得左右梯形矫正设备具有更高的精度和稳定性,但由于成本高昂,导致设备价格普遍较高,不是大多数用户的经济实用选择,此外,如果设备需要进行大规模生产,成本将进一步增加;
2、市场上左右梯形设计的设备在效率方面也存在问题,导致用户体验不佳,例如,一些设备普遍需要5秒左右才能完成左右梯形失真的矫正,这对于需要快速响应的场景来说并不是很友好,在商务会议和教育培训等需要迅速响应的场景中,这种设计方案的不足就更加明显;
3、虽然高精度摄像头和TOF测距模块可以提高设备的精度和稳定性,但在实际应用中,这些设备也存在一定的精度问题,例如,在一些特殊光线条件下,摄像头可能无法准确地捕捉画面,这可能导致矫正参数的计算出现误差,此外,TOF测距模块的精度也可能受到环境因素的影响,如光线强度和物体表面的反射率等;
针对上述问题,发明人提出一种基于对焦深度法单目测距的自动校正方法用于解决上述问题。
发明内容
为了解决高精度摄像头成本高、左右梯形设计设备的对焦矫正效率低以及TOF测距模块的精度差的问题;本发明的目的在于提供一种基于对焦深度法单目测距的自动校正方法。
为解决上述技术问题,本发明采用如下技术方案:一种基于对焦深度法单目测距的自动校正方法,包括以下步骤:
S1、标定步骤一,首先标定摄像头模块与投影仪光学镜头之间的映射关系,投影仪投影图像到墙上,标定板由4个特定特征图组成,通过摄像头模块拍摄特定特征图,标定时,在白灯光下进行;
S2、标定步骤二,通过摄像头模块拍摄图像,拍摄的标定图像覆盖整个标定图,并保持图像的清晰度和对比度,拍摄清晰后,根据获取到的图像,做第一标定区域的识别,第一标定区域,然后将标定区域,以及拍摄到的投影图像和摄像头分辨率模块设为在同一空间坐标系中;
S3、标定步骤三,记录下当前图像清晰度,用于完成清晰度自动对焦,将清晰度、马达位置、当前时间戳、马达方向的记入数据结构保存,数据用于完成最终的对焦清晰度算法;
S4、标定步骤四,检查是否清晰度到达最佳清晰度,到达最佳清晰度,则进入标定步骤五,否则到回标定步骤二,继续驱动马达,重复标定步骤一到标定步骤四,直到清晰度达到最佳的状态;
S5、标定步骤五,根据标定步骤二得到的对焦过程中一系列的图像,建立深度图信息,具体方法是:将镜头移动方向为同一个方向的数据分组,然后将镜头移动方向相同的数据整合成一个数组,根据数据中的图像矩阵信息和时间戳信息,提取图像中的清晰度深度信息,并将深度信息和时间戳信息保存为一个新的数据,将一系列的图片全部提取完深度信息为深度图数据,由标定步骤六,将这深度图数据参数保存,用于后续计算,标定完成;
S6、完成标定后,根据标定步骤一:陀螺仪识别3个方向的角速度,并记录角速度的变化过程,当3个角速度2秒内值超出稳定值的10%的时候,标记为设备有挪动,进入标定步骤二:开始移动镜头并拍摄投影的特征图,首先,驱动马达将镜头往镜头收缩的方向移动,在运动的过程中,持续地拍摄摄像头捕捉到的投影特征图,这些图像用于构建一个完整的DFF对焦深度模型,在运动过程中,马达运动使用步进马达的4相8步控制,马达移动过程的数据信息记录下来,包括马达位置,时间戳;
S7、将标定步骤三中镜头运动过程中捕捉到的一系列图像保存起来,在移动到边界时,需要反向转动马达,重复上述过程以获取相反方向的图像数据,同时,在捕捉图像数据的过程中,需要确保摄像头的位置和开始运行之前摄像头位置和角度一致,以确保图像的模型的连续性,最后将两个方向捕捉到的图像数据合并;
S8、在标定步骤二和标定步骤三中,先将对焦移动到清晰位置,即再次将马达反向转动,接下来,利用深度优先搜索算法(DFS)对3D坐标进行优化,首先在3D坐标中找到最优的对焦平面,DFS算法可以遍历所有可能的对焦平面,从而找到最优的平面,在每个节点上,计算对焦平面的焦距和图像清晰度,并进行比较以找到最优解,最优的对焦平面是使得所有像素点的图像清晰度总和最大的平面;
S9、在进行DFS算法优化前,定义一个损失函数,损失函数是评价图像清晰度的函数;
S10、在标定步骤四中,得到每个点与平面焦距的差值后,对不同深度处的图像进行对比度分析,来估计物体的深度信息,先对每一帧图像进行高斯滤波,以减少噪声的影响,计算图像的梯度幅度,以便于判断焦点是否在正确的位置,使用Sobel算子计算图像的x方向和y方向的梯度,然后将两个梯度幅度合并为一个梯度幅度;
S11、计算每个像素点处的对比度,以确定焦点位置,对每个像素点处的梯度幅度进行平方,然后计算平均值,对于每个像素点,它的对比度等于它周围n×n个像素点的梯度平方和的平均值减去它自身的梯度平方,在整个图像上找到对比度最大的点,将其作为当前的焦点;
S12、标定步四得到每个像素焦点位置后,进入标定步骤五,通过模型选择了最佳的点的焦距位置,创建一个空白图像,分辨率和通道设置为跟摄像头的原始图像一致,然后对其进行灰度化处理;
S13、标定步骤六由标定步骤五得到的深度图,将每个像素点在深度图中的深度值与其在原始图像中的坐标进行对应,并将其存储在影射表A中,并用字典来实现影射表,对于每个像素点,在深度图中查找其对应的深度值,并将其与其在原始图像中的坐标进行映射,得到的影射表包含了原始图像中每个像素点的深度信息,根据影射表,对原始图像进行后续的深度处理,类似景深效果,选择不同的深度范围和分辨率来生成影射表,以满足不同场景下的应用需求,防止识别出来的角度数值不一,得到的影射表准确地反映平面的深度信息,以满足计算角度的需求;
S14、得到影射表后,使用反三角函数来计算左右角度,对于每个像素点,通过影射表中存储的深度信息和相机到物体的距离来计算出其对应的物体到投影仪的距离,计算出其对应的投影仪左右角度,因此,由三个函数关系,最终得出左右梯形的左右角度;
S15、由标定步骤六得到的左右角度,计算投影仪梯形的4个梯形角点调整值,分别表示左上角、左下角、右上角和右下角,调整值是将这些角点移动到它们正确的位置所需的距离,通过将左右梯形的左右角度带入预先计算好的函数中,计算出四个角点的调整值,然后将这些调整值应用到投影仪中,校正其投影的形状。
优选地,在S1中,投影仪需要正投在投影屏幕上,特定特征图为1920X1080分辨率,图案尺寸各为300X300,颜色为黑底白色,特定特征图投在屏幕的中央位置,并保持平整,避免出现变形,特定特征图分为4格检测区域,每个检测区域都由相同的特征图构成。
优选地,在S2中,建立投影和摄像头模块之间的关系,具体步骤如下:
A:用opencv建立投影仪图片到摄像头拍摄的图片之间的映射矩阵,映射矩阵描述摄像头和投影仪之间的几何变换关系,包括平移、旋转和缩放变换;
B:根据预设4组特征图确定图像和投影机之间的向量,继续循环获取第二检测区域,提取标定点,提取完后,将4组特征图的平移、旋转和缩放参数保存起来;
C:根据上述得到的标定信息,建立基本的平面深度图,通过对摄像头模块获取的图像进行处理来实现,首先对图像进行校正以去除畸变,使用opencv库中的cv2.undistort()函数来完成,然后对校正后的图像进行灰度化处理,并使用canny算子进行边缘检测,使用霍夫变换检测出图像中的直线,并对直线进行拟合,使用cv2.HoughLinesP()函数和numpy.polyfit()函数来实现,通过直线的交点,得到平面深度图的像素坐标,从而建立平面深度图;
D:得到深度图后,通过使用标定矩阵将深度图转换为3D坐标,通过将深度图上的每个像素坐标与相应的深度值一起传递到cv2.reprojectImageTo3D()函数中,得到对应的3D坐标,得到的3D坐标进行坐标系转换,将摄像头坐标系转换为世界坐标系,得到3D坐标后,将3D坐标保存起来。
优选地,在S9中,采用梯度方差(GradientVariance)作为损失函数,梯度方差是图像清晰度的一个衡量指标,其值越小,表示图像清晰度越高,计算每个像素点的梯度值,并求其方差,从而得到整个图像的梯度方差,然后从初始状态开始遍历所有可能的状态,并计算损失函数的值,在每个状态下,需要计算对焦平面的焦距,并根据损失函数的值进行比较,如果当前状态的损失函数值小于当前最优解,则更新最优解。
优选地,在S11中,将焦点位置与预设的深度区间进行比较,确定物体的深度范围,如果物体的深度在预设范围内,则认为焦点在正确的位置,否则,将镜头向正确的方向移动一段距离,并重新执行标定步骤二到标定步骤四。
优选地,在S12中,使用OpenCV库中的cv2.cvtColor()函数来实现,然后,将灰度图像传递到DFF模型中,以获得对应的深度图,使用OpenCV库中的cv2.filter2D()函数来实现,然后将深度图转换为3D坐标,使用S2中使用的方法来实现,然后将3D坐标投影回2D图像中,使用OpenCV库中的cv2.projectPoints()函数来实现,然后再使用S7中得到的梯度减去平面梯度,得到一张从左到右或从右到左的梯度深度图。
与现有技术相比,本发明的有益效果在于:
1、本发明中,通过自动左右梯形功能,不需要手动调整投影仪的四个角点的梯形,计算出设备的仪态角度后,根据角度,算法自动调整4个梯形的控制点;
2、本发明中,采用基于陀螺仪、摄像头、步进马达以及投影画面特征点检测和三角测量原理实现自动梯形矫正,在保持精准度的同时,成本也更经济。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明流程示意图。
图2为本发明模块示意图。
图3为本发明特殊图案的显示图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:如图1-3所示,本发明提供了一种基于对焦深度法单目测距的自动校正方法,包括以下步骤:
S1、标定步骤一,首先标定摄像头模块001与投影仪光学镜头之间的映射关系,如图3显示的特殊图案,投影仪投影图像到墙上,标定板由4个特定特征图组成,通过摄像头模块001拍摄特定特征图,标定时,在白灯光下进行;
S2、标定步骤二,通过摄像头模块001拍摄图像,拍摄的标定图像覆盖整个标定图,并保持图像的清晰度和对比度,拍摄清晰后,根据获取到的图像,做第一标定区域的识别,第一标定区域,然后将标定区域,以及拍摄到的投影图像和摄像头分辨率模块设为在同一空间坐标系中;
S3、标定步骤三,记录下当前图像清晰度,用于完成清晰度自动对焦,将清晰度、马达位置、当前时间戳、马达方向的记入数据结构保存,数据用于完成最终的对焦清晰度算法;
S4、标定步骤四,检查是否清晰度到达最佳清晰度,到达最佳清晰度,则进入标定步骤五,否则到回标定步骤二,继续驱动马达,重复标定步骤一到标定步骤四,直到清晰度达到最佳的状态;
S5、标定步骤五,根据标定步骤二得到的对焦过程中一系列的图像,建立深度图信息,具体方法是:将镜头移动方向为同一个方向的数据分组,然后将镜头移动方向相同的数据整合成一个数组,根据数据中的图像矩阵信息和时间戳信息,提取图像中的清晰度深度信息,并将深度信息和时间戳信息保存为一个新的数据,将一系列的图片全部提取完深度信息为深度图数据,由标定步骤六,将这深度图数据参数保存,用于后续计算,标定完成;
S6、完成标定后,根据标定步骤一:陀螺仪识别3个方向的角速度,并记录角速度的变化过程,当3个角速度2秒内值超出稳定值的10%的时候,标记为设备有挪动,进入标定步骤二:开始移动镜头并拍摄投影的特征图,首先,驱动马达将镜头往镜头收缩的方向移动,在运动的过程中,持续地拍摄摄像头捕捉到的投影特征图,这些图像用于构建一个完整的DFF对焦深度模型,在运动过程中,马达运动使用步进马达的4相8步控制,马达移动过程的数据信息记录下来,包括马达位置,时间戳;
S7、将标定步骤三中镜头运动过程中捕捉到的一系列图像保存起来,在移动到边界时,需要反向转动马达,重复上述过程以获取相反方向的图像数据,同时,在捕捉图像数据的过程中,需要确保摄像头的位置和开始运行之前摄像头位置和角度一致,以确保图像的模型的连续性,最后将两个方向捕捉到的图像数据合并;
S8、在标定步骤二和标定步骤三中,先将对焦移动到清晰位置,即再次将马达反向转动,接下来,利用深度优先搜索算法(DFS)对3D坐标进行优化,首先在3D坐标中找到最优的对焦平面,DFS算法可以遍历所有可能的对焦平面,从而找到最优的平面,在每个节点上,计算对焦平面的焦距和图像清晰度,并进行比较以找到最优解,最优的对焦平面是使得所有像素点的图像清晰度总和最大的平面;
S9、在进行DFS算法优化前,定义一个损失函数,损失函数是评价图像清晰度的函数;
S10、在标定步骤四中,得到每个点与平面焦距的差值后,对不同深度处的图像进行对比度分析,来估计物体的深度信息,先对每一帧图像进行高斯滤波,以减少噪声的影响,计算图像的梯度幅度,以便于判断焦点是否在正确的位置,使用Sobel算子计算图像的x方向和y方向的梯度,然后将两个梯度幅度合并为一个梯度幅度;
S11、计算每个像素点处的对比度,以确定焦点位置,对每个像素点处的梯度幅度进行平方,然后计算平均值,对于每个像素点,它的对比度等于它周围n×n个像素点的梯度平方和的平均值减去它自身的梯度平方,在整个图像上找到对比度最大的点,将其作为当前的焦点;
S12、标定步四得到每个像素焦点位置后,进入标定步骤五,通过模型选择了最佳的点的焦距位置,创建一个空白图像,分辨率和通道设置为跟摄像头的原始图像一致,然后对其进行灰度化处理;
S13、标定步骤六由标定步骤五得到的深度图,将每个像素点在深度图中的深度值与其在原始图像中的坐标进行对应,并将其存储在影射表A中,并用字典来实现影射表,对于每个像素点,在深度图中查找其对应的深度值,并将其与其在原始图像中的坐标进行映射,得到的影射表包含了原始图像中每个像素点的深度信息,根据影射表,对原始图像进行后续的深度处理,类似景深效果,选择不同的深度范围和分辨率来生成影射表,以满足不同场景下的应用需求,防止识别出来的角度数值不一,得到的影射表准确地反映平面的深度信息,以满足计算角度的需求;
S14、得到影射表后,使用反三角函数来计算左右角度,对于每个像素点,通过影射表中存储的深度信息和相机到物体的距离来计算出其对应的物体到投影仪的距离,计算出其对应的投影仪左右角度,因此,由三个函数关系,最终得出左右梯形的左右角度;
S15、由标定步骤六得到的左右角度,计算投影仪梯形的4个梯形角点调整值,分别表示左上角、左下角、右上角和右下角,调整值是将这些角点移动到它们正确的位置所需的距离,通过将左右梯形的左右角度带入预先计算好的函数中,计算出四个角点的调整值,然后将这些调整值应用到投影仪中,校正其投影的形状。
在S1中,投影仪需要正投在投影屏幕上,特定特征图为1920X1080分辨率,图案尺寸各为300X300,颜色为黑底白色,特定特征图投在屏幕的中央位置,并保持平整,避免出现变形,特定特征图分为4格检测区域,每个检测区域都由相同的特征图构成。
在S2中,建立投影和摄像头模块001之间的关系,具体步骤如下:
A:用opencv建立投影仪图片到摄像头拍摄的图片之间的映射矩阵,映射矩阵描述摄像头和投影仪之间的几何变换关系,包括平移、旋转和缩放变换;
B:根据预设4组特征图确定图像和投影机之间的向量,继续循环获取第二检测区域,提取标定点,提取完后,将4组特征图的平移、旋转和缩放参数保存起来;
C:根据上述得到的标定信息,建立基本的平面深度图,通过对摄像头模块001获取的图像进行处理来实现,首先对图像进行校正以去除畸变,使用opencv库中的cv2.undistort()函数来完成,然后对校正后的图像进行灰度化处理,并使用canny算子进行边缘检测,使用霍夫变换检测出图像中的直线,并对直线进行拟合,使用cv2.HoughLinesP()函数和numpy.polyfit()函数来实现,通过直线的交点,得到平面深度图的像素坐标,从而建立平面深度图;
D:得到深度图后,通过使用标定矩阵将深度图转换为3D坐标,通过将深度图上的每个像素坐标与相应的深度值一起传递到cv2.reprojectImageTo3D()函数中,得到对应的3D坐标,得到的3D坐标进行坐标系转换,将摄像头坐标系转换为世界坐标系,得到3D坐标后,将3D坐标保存起来。
在S9中,采用梯度方差(GradientVariance)作为损失函数,梯度方差是图像清晰度的一个衡量指标,其值越小,表示图像清晰度越高,计算每个像素点的梯度值,并求其方差,从而得到整个图像的梯度方差,然后从初始状态开始遍历所有可能的状态,并计算损失函数的值,在每个状态下,需要计算对焦平面的焦距,并根据损失函数的值进行比较,如果当前状态的损失函数值小于当前最优解,则更新最优解。
在S11中,将焦点位置与预设的深度区间进行比较,确定物体的深度范围,如果物体的深度在预设范围内,则认为焦点在正确的位置,否则,将镜头向正确的方向移动一段距离,并重新执行标定步骤二到标定步骤四。
在S12中,使用OpenCV库中的cv2.cvtColor()函数来实现,然后,将灰度图像传递到DFF模型中,以获得对应的深度图,使用OpenCV库中的cv2.filter2D()函数来实现,然后将深度图转换为3D坐标,使用S2中使用的方法来实现,然后将3D坐标投影回2D图像中,使用OpenCV库中的cv2.projectPoints()函数来实现,然后再使用S7中得到的梯度减去平面梯度,得到一张从左到右或从右到左的梯度深度图。
工作原理:实现摄像头模块和投影仪光学镜头之间的映射关系,从而实现深度图像的生成,具体实现方法包括以下步骤:首先,在投影仪正投在投影屏幕上的情况下,使用特殊图案标定摄像头模块和投影仪之间的映射关系,然后,使用opencv建立投影仪图片到摄像头拍摄的图片之间的映射矩阵,并根据预设的特征图确定图像和投影机之间的向量;接着,根据标定步骤六的标定信息,建立基本的平面深度图,并将深度图转换为3D坐标,实现步骤中需要注意保持图像的清晰度和对比度,以及避免特征图的变形等问题,以提高识别精确度;
生成DFF对焦深度图,通过驱动马达将镜头移动并拍摄投影特征图,使用这些图像构建完整的对焦深度模型,在捕捉图像数据的过程中,需要确保摄像头的位置和开始运行之前摄像头位置和角度一致,以保持图像模型的连续性,接下来,通过深度优先搜索算法对3D坐标进行优化,找到最优的对焦平面,该平面可使所有像素点的图像清晰度总和最大,然后,利用对比度分析来估计物体的深度信息,并确定焦点位置,最后选择最佳点的焦距位置创建一张深度图。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种基于对焦深度法单目测距的自动校正方法,其特征在于,包括以下步骤:
S1、标定步骤一,首先标定摄像头模块001与投影仪光学镜头之间的映射关系,投影仪投影图像到墙上,标定板由4个特定特征图组成,通过摄像头模块001拍摄特定特征图,标定时,在白灯光下进行;
S2、标定步骤二,通过摄像头模块001拍摄图像,拍摄的标定图像覆盖整个标定图,并保持图像的清晰度和对比度,拍摄清晰后,根据获取到的图像,做第一标定区域的识别,第一标定区域,然后将标定区域,以及拍摄到的投影图像和摄像头分辨率模块设为在同一空间坐标系中;
S3、标定步骤三,记录下当前图像清晰度,用于完成清晰度自动对焦,将清晰度、马达位置、当前时间戳、马达方向的记入数据结构保存,数据用于完成最终的对焦清晰度算法;
S4、标定步骤四,检查是否清晰度到达最佳清晰度,到达最佳清晰度,则进入标定步骤五,否则到回标定步骤二,继续驱动马达,重复标定步骤一到标定步骤四,直到清晰度达到最佳的状态;
S5、标定步骤五,根据标定步骤二得到的对焦过程中一系列的图像,建立深度图信息,具体方法是:将镜头移动方向为同一个方向的数据分组,然后将镜头移动方向相同的数据整合成一个数组,根据数据中的图像矩阵信息和时间戳信息,提取图像中的清晰度深度信息,并将深度信息和时间戳信息保存为一个新的数据,将一系列的图片全部提取完深度信息为深度图数据,由标定步骤六,将这深度图数据参数保存,用于后续计算,标定完成;
S6、完成标定后,根据标定步骤一:陀螺仪识别3个方向的角速度,并记录角速度的变化过程,当3个角速度2秒内值超出稳定值的10%的时候,标记为设备有挪动,进入标定步骤二:开始移动镜头并拍摄投影的特征图,首先,驱动马达将镜头往镜头收缩的方向移动,在运动的过程中,持续地拍摄摄像头捕捉到的投影特征图,这些图像用于构建一个完整的DFF对焦深度模型,在运动过程中,马达运动使用步进马达的4相8步控制,马达移动过程的数据信息记录下来,包括马达位置,时间戳;
S7、将标定步骤三中镜头运动过程中捕捉到的一系列图像保存起来,在移动到边界时,需要反向转动马达,重复上述过程以获取相反方向的图像数据,同时,在捕捉图像数据的过程中,需要确保摄像头的位置和开始运行之前摄像头位置和角度一致,以确保图像的模型的连续性,最后将两个方向捕捉到的图像数据合并;
S8、在标定步骤二和标定步骤三中,先将对焦移动到清晰位置,即再次将马达反向转动,接下来,利用深度优先搜索算法(DFS)对3D坐标进行优化,首先在3D坐标中找到最优的对焦平面,DFS算法可以遍历所有可能的对焦平面,从而找到最优的平面,在每个节点上,计算对焦平面的焦距和图像清晰度,并进行比较以找到最优解,最优的对焦平面是使得所有像素点的图像清晰度总和最大的平面;
S9、在进行DFS算法优化前,定义一个损失函数,损失函数是评价图像清晰度的函数;
S10、在标定步骤四中,得到每个点与平面焦距的差值后,对不同深度处的图像进行对比度分析,来估计物体的深度信息,先对每一帧图像进行高斯滤波,以减少噪声的影响,计算图像的梯度幅度,以便于判断焦点是否在正确的位置,使用Sobel算子计算图像的x方向和y方向的梯度,然后将两个梯度幅度合并为一个梯度幅度;
S11、计算每个像素点处的对比度,以确定焦点位置,对每个像素点处的梯度幅度进行平方,然后计算平均值,对于每个像素点,它的对比度等于它周围n×n个像素点的梯度平方和的平均值减去它自身的梯度平方,在整个图像上找到对比度最大的点,将其作为当前的焦点;
S12、标定步四得到每个像素焦点位置后,进入标定步骤五,通过模型选择了最佳的点的焦距位置,创建一个空白图像,分辨率和通道设置为跟摄像头的原始图像一致,然后对其进行灰度化处理;
S13、标定步骤六由标定步骤五得到的深度图,将每个像素点在深度图中的深度值与其在原始图像中的坐标进行对应,并将其存储在影射表A中,并用字典来实现影射表,对于每个像素点,在深度图中查找其对应的深度值,并将其与其在原始图像中的坐标进行映射,得到的影射表包含了原始图像中每个像素点的深度信息,根据影射表,对原始图像进行后续的深度处理,类似景深效果,选择不同的深度范围和分辨率来生成影射表,以满足不同场景下的应用需求,防止识别出来的角度数值不一,得到的影射表准确地反映平面的深度信息,以满足计算角度的需求;
S14、得到影射表后,使用反三角函数来计算左右角度,对于每个像素点,通过影射表中存储的深度信息和相机到物体的距离来计算出其对应的物体到投影仪的距离,计算出其对应的投影仪左右角度,因此,由三个函数关系,最终得出左右梯形的左右角度;
S15、由标定步骤六得到的左右角度,计算投影仪梯形的4个梯形角点调整值,分别表示左上角、左下角、右上角和右下角,调整值是将这些角点移动到它们正确的位置所需的距离,通过将左右梯形的左右角度带入预先计算好的函数中,计算出四个角点的调整值,然后将这些调整值应用到投影仪中,校正其投影的形状。
2.如权利要求1所述的一种基于对焦深度法单目测距的自动校正方法,其特征在于,在S1中,投影仪需要正投在投影屏幕上,特定特征图为1920X1080分辨率,图案尺寸各为300X300,颜色为黑底白色,特定特征图投在屏幕的中央位置,并保持平整,避免出现变形,特定特征图分为4格检测区域,每个检测区域都由相同的特征图构成。
3.如权利要求1所述的一种基于对焦深度法单目测距的自动校正方法,其特征在于,在S2中,建立投影和摄像头模块001之间的关系,具体步骤如下:
A:用opencv建立投影仪图片到摄像头拍摄的图片之间的映射矩阵,映射矩阵描述摄像头和投影仪之间的几何变换关系,包括平移、旋转和缩放变换;
B:根据预设4组特征图确定图像和投影机之间的向量,继续循环获取第二检测区域,提取标定点,提取完后,将4组特征图的平移、旋转和缩放参数保存起来;
C:根据上述得到的标定信息,建立基本的平面深度图,通过对摄像头模块001获取的图像进行处理来实现,首先对图像进行校正以去除畸变,使用opencv库中的cv2.undistort()函数来完成,然后对校正后的图像进行灰度化处理,并使用canny算子进行边缘检测,使用霍夫变换检测出图像中的直线,并对直线进行拟合,使用cv2.HoughLinesP()函数和numpy.polyfit()函数来实现,通过直线的交点,得到平面深度图的像素坐标,从而建立平面深度图;
D:得到深度图后,通过使用标定矩阵将深度图转换为3D坐标,通过将深度图上的每个像素坐标与相应的深度值一起传递到cv2.reprojectImageTo3D()函数中,得到对应的3D坐标,得到的3D坐标进行坐标系转换,将摄像头坐标系转换为世界坐标系,得到3D坐标后,将3D坐标保存起来。
4.如权利要求1所述的一种基于对焦深度法单目测距的自动校正方法,其特征在于,在S9中,采用梯度方差(GradientVariance)作为损失函数,梯度方差是图像清晰度的一个衡量指标,其值越小,表示图像清晰度越高,计算每个像素点的梯度值,并求其方差,从而得到整个图像的梯度方差,然后从初始状态开始遍历所有可能的状态,并计算损失函数的值,在每个状态下,需要计算对焦平面的焦距,并根据损失函数的值进行比较,如果当前状态的损失函数值小于当前最优解,则更新最优解。
5.如权利要求1所述的一种基于对焦深度法单目测距的自动校正方法,其特征在于,在S11中,将焦点位置与预设的深度区间进行比较,确定物体的深度范围,如果物体的深度在预设范围内,则认为焦点在正确的位置,否则,将镜头向正确的方向移动一段距离,并重新执行标定步骤二到标定步骤四。
6.如权利要求1所述的一种基于对焦深度法单目测距的自动校正方法,其特征在于,在S12中,使用OpenCV库中的cv2.cvtColor()函数来实现,然后,将灰度图像传递到DFF模型中,以获得对应的深度图,使用OpenCV库中的cv2.filter2D()函数来实现,然后将深度图转换为3D坐标,使用S2中使用的方法来实现,然后将3D坐标投影回2D图像中,使用OpenCV库中的cv2.projectPoints()函数来实现,然后再使用S7中得到的梯度减去平面梯度,得到一张从左到右或从右到左的梯度深度图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310649074.7A CN116659550A (zh) | 2023-06-02 | 2023-06-02 | 一种基于对焦深度法单目测距的自动校正方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310649074.7A CN116659550A (zh) | 2023-06-02 | 2023-06-02 | 一种基于对焦深度法单目测距的自动校正方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116659550A true CN116659550A (zh) | 2023-08-29 |
Family
ID=87722058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310649074.7A Pending CN116659550A (zh) | 2023-06-02 | 2023-06-02 | 一种基于对焦深度法单目测距的自动校正方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116659550A (zh) |
-
2023
- 2023-06-02 CN CN202310649074.7A patent/CN116659550A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10147192B2 (en) | Coordinate-conversion-parameter determination apparatus, coordinate-conversion-parameter determination method, and non-transitory computer readable recording medium having therein program for coordinate-conversion-parameter determination | |
CN106091984B (zh) | 一种基于线激光的三维点云数据获取方法 | |
US9759548B2 (en) | Image processing apparatus, projector and projector system including image processing apparatus, image processing method | |
CN107729893B (zh) | 一种合模机的视觉定位方法、系统和存储介质 | |
US7456842B2 (en) | Color edge based system and method for determination of 3D surface topology | |
US20150189267A1 (en) | Image projection device and calibration method thereof | |
US20220092819A1 (en) | Method and system for calibrating extrinsic parameters between depth camera and visible light camera | |
CN107084680B (zh) | 一种基于机器单目视觉的目标深度测量方法 | |
AU2017225023A1 (en) | System and method for determining a camera pose | |
CN105869160A (zh) | 利用Kinect实现三维建模和全息显示的方法及系统 | |
CN111750820A (zh) | 影像定位方法及其系统 | |
JP2003130621A (ja) | 3次元形状計測方法およびその装置 | |
WO2022088881A1 (en) | Method, apparatus and system for generating a three-dimensional model of a scene | |
CN114792345B (zh) | 一种基于单目结构光系统的标定方法 | |
CN112161586A (zh) | 一种基于编码棋盘格的线结构光视觉传感器标定方法 | |
CN105335959A (zh) | 成像装置快速对焦方法及其设备 | |
KR20050061115A (ko) | 카메라 움직임을 보상한 객체 움직임 추출 장치 및 그 방법 | |
CN116524022B (zh) | 偏移数据计算方法、图像融合方法、装置及电子设备 | |
Ibrahim et al. | Projector-Camera Calibration on Dynamic, Deformable Surfaces | |
CN111028299A (zh) | 基于图像中点属性数据集计算标定点空间距的系统和方法 | |
CN114792343B (zh) | 图像获取设备的标定方法、获取图像数据的方法、装置 | |
CN116659550A (zh) | 一种基于对焦深度法单目测距的自动校正方法 | |
CN107292932B (zh) | 基于图像膨胀率的迎面视频测速方法 | |
CN115841517A (zh) | 一种基于dic双圆交比的结构光标定方法和装置 | |
CN109410272A (zh) | 一种变压器螺母识别与定位装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |