一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

摄像机视觉物体高度测量方法、装置及计算机可读存储介质与流程

2022-05-18 16:44:55 来源:中国专利 TAG:


1.本发明涉及视觉检测领域,具体涉及一种摄像机视觉物体高度测量方法、装置及计算机可读存储介质。


背景技术:

2.传统物体高度测量方法之一是双目匹配法,通过三角测量原理即目标点在左右两幅视图中成像的横坐标之间存在的差异(视差disparity),与目标点到成像平面的距离成反比例的关系,得到深度信息。方法二是结构光方法,其基本原理是通过投影一个预先设计好的图案作为参考图像(编码光源),将结构光投射至物体表面,再使用摄像机接收该物体表面反射的结构光图案,这样,同样获得了两幅图像,一幅是预先设计的参考图像,另外一幅是相机获取的物体表面反射的结构光图案,由于接收图案必会因物体的立体型状而发生变形,故可以通过该图案在摄像机上的位置和形变程度来计算物体表面的空间信息。普通的结构光方法仍然是部分采用了三角测距原理的深度计算。其他方法,如:激光散斑光源,单目相机测距。然而传统的三角测距方法或要求相机的参数,或要求功能复杂,或计算方式条件严格。


技术实现要素:

3.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种摄像机视觉物体高度测量方法、装置及计算机可读存储介质,用于解决现有技术中的至少一个缺陷。
4.为实现上述目的及其他相关目的,本发明提供一种摄像机视觉物体高度测量方法,包括:
5.获取待测建筑物的图像;其中,在所述待测建筑物的图像中包括标尺,所述标尺与所述待测建筑物的墙面平行,与水平地面垂直;
6.利用预先训练好的检测模型对所述待测建筑物的图像进行边缘提取以及角点检测,得到待测建筑物的角点与标尺的角点;
7.根据所述标尺的角点计算所述标尺在待测建筑物的图像中的第一高度;
8.根据所述待测建筑物的角点计算所述待测建筑物在待测建筑物的图像中的第二高度;
9.基于所述第一高度、所述第二高度、标尺的实际高度以及修正因子计算得到待测建筑物的高度。
10.可选地,所述检测模型包括边缘检测模型和角点检测模型,所述利用预先训练好的检测模型对所述待测建筑物的图像进行边缘提取以及角点检测,包括:
11.利用预先训练好的边缘检测模型对所述待测建筑物的图像进行边缘提取,得到待测建筑物的边缘图像,所述边缘图像包括建筑物的边缘以及标尺的边缘;
12.利用预先训练好的角点检测模型对所述边缘图像进行角点检测,得到待测建筑物的角点与标尺的角点。
13.可选地,所述边缘检测模型包括标尺边缘检测子模型和建筑物边缘检测子模型。
14.可选地,还包括:
15.利用第一训练数据,对第一初始神经网络进行训练,得到所述标尺边缘检测子模型;所述第一训练数据包括标尺图像和相应的标尺框标签。
16.可选地,还包括:
17.利用第二训练数据,对第二初始神经网络进行训练,得到所述建筑物边缘检测子模型;所述第二训练数据包括建筑物图像和相应的建筑物框标签。
18.可选地,所述角点检测模型包括标尺角点检测子模型和建筑物角点检测子模型。
19.可选地,还包括:
20.利用第三训练数据,对第三初始神经网络进行训练,得到所述标尺角点检测子模型;所述第三训练数据包括标尺图像和相应的标尺角点标签。
21.可选地,还包括:
22.利用第四训练数据,对第四初始神经网络进行训练,得到所述建筑物角点检测子模型;所述第四训练数据包括建筑物图像和相应的建筑物角点标签。
23.为实现上述目的及其他相关目的,本发明提供一种摄像机视觉物体高度测量装置,包括:
24.图像获取模块,用于获取待测建筑物的图像;其中,在所述待测建筑物的图像中包括标尺,所述标尺与所述待测建筑物的墙面平行,与水平地面垂直;
25.角点检测模块,用于利用预先训练好的检测模型对所述待测建筑物的图像进行边缘提取以及角点检测,得到待测建筑物的角点与标尺的角点;
26.标尺高度计算模块,用于根据所述标尺的角点计算所述标尺在待测建筑物的图像中的第一高度;
27.第一建筑物高度计算模块,用于根据所述待测建筑物的角点计算所述待测建筑物在待测建筑物的图像中的第二高度;
28.第二建筑物高度计算模块,用于基于所述第一高度、所述第二高度、标尺的实际高度以及修正因子计算得到待测建筑物的高度。
29.为实现上述目的及其他相关目的,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述数据可视化方法的步骤。
30.如上所述,本发明的一种摄像机视觉物体高度测量方法、装置及计算机可读存储介质,具有以下有益效果:
31.本发明的一种摄像机视觉物体高度测量方法,包括:获取待测建筑物的图像;其中,在所述待测建筑物的图像中包括标尺,所述标尺与所述待测建筑物的墙面平行,与水平地面垂直;利用预先训练好的检测模型对所述待测建筑物的图像进行边缘提取以及角点检测,得到待测建筑物的角点与标尺的角点;根据所述标尺的角点计算所述标尺在待测建筑物的图像中的第一高度;根据所述待测建筑物的角点计算所述待测建筑物在待测建筑物的图像中的第二高度;基于所述第一高度、所述第二高度、标尺的实际高度以及修正因子计算得到待测建筑物的高度。本发明围绕传统人工巡检核查房屋建筑面积的行业痛点,开展基于人工智能的建筑高度测量算法关键技术研究,精准掌握建筑物建设高度进展,实现监管数字化、智能化转变,提高房地产交易中心监管效率,节省人力资源,有效降低运行成本。
附图说明
32.图1为本发明一实施例一种摄像机视觉物体高度测量方法的流程图;
33.图2为本发明一实施例中角点检测模型的结构图;
34.图3为本发明一实施例中关键点位置与对应特征图的关联关系处理方法示意图;
35.图4为本明一实施例中同一个物体内部关键点之间的关系图;
36.图5为本发明一实施例一种摄像机视觉物体高度测量装置的结构图。
具体实施方式
37.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
38.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
39.如图1所示,本技术实施例提供一种摄像机视觉物体高度测量方法,包括:
40.s1获取待测建筑物的图像;其中,在所述待测建筑物的图像中包括标尺,所述标尺与所述待测建筑物的墙面平行,与水平地面垂直;
41.s2利用预先训练好的检测模型对所述待测建筑物的图像进行边缘提取以及角点检测,得到待测建筑物的角点与标尺的角点;
42.s3根据所述标尺的角点计算所述标尺在待测建筑物的图像中的第一高度;
43.s4根据所述待测建筑物的角点计算所述待测建筑物在待测建筑物的图像中的第二高度;
44.s5基于所述第一高度、所述第二高度、标尺的实际高度以及修正因子计算得到待测建筑物的高度。
45.本发明根据优化的深度学习网络输出关键点,计算图像标尺的长度d1,即第一高度,图上建筑物的高度d2,即第二高度。最后,根据比例尺原理估计出待测物体的实际高度d2。
[0046][0047]
d1表示标尺的实际高度。
[0048]
alpha为修正因子:
[0049]d′
2,k
物体预测高度,d
2,k
物体对象实际高度,n为实验次数。
[0050]
在本实施例中,基于所述第一高度、所述第二高度以及标尺的实际高度以及修正因子计算得到待测建筑物的高度。其中,修正因子alpha,受硬件设备和环境因素影响。因为摄像机视距受焦距和布置环境的影响。所以计算第一高度、第二高度和标尺高度得到的物
体高度与真实物体高度会有误差,所以引入修正因子alpha。修正因子计算方式,由多次实验测量结果和真实物体高度结果差决定。
[0051]
在一实施例中,所述检测模型包括边缘检测模型和角点检测模型,所述利用预先训练好的检测模型对所述待测建筑物的图像进行边缘提取以及角点检测,包括:
[0052]
利用预先训练好的边缘检测模型对所述待测建筑物的图像进行边缘提取,得到待测建筑物的边缘图像,所述边缘图像包括建筑物的边缘以及标尺的边缘;
[0053]
利用预先训练好的角点检测模型对所述边缘图像进行角点检测,得到待测建筑物的角点与标尺的角点。
[0054]
在一实施例中,所述边缘检测模型包括标尺边缘检测子模型和建筑物边缘检测子模型。
[0055]
在一实施例中,还包括:
[0056]
利用第一训练数据,对第一初始神经网络进行训练,得到所述标尺边缘检测子模型;所述第一训练数据包括标尺图像和相应的标尺框标签。
[0057]
每个标尺框标签可以标示标尺图像中标尺的位置,可以将标尺框出来。
[0058]
在一实施例中,还包括:
[0059]
利用第二训练数据,对第二初始神经网络进行训练,得到所述建筑物边缘检测子模型;所述第二训练数据包括建筑物图像和相应的建筑物框标签。
[0060]
每个建筑物框标签可以标示建筑物框图像的位置或框坐标。
[0061]
在一实施例中,所述角点检测模型包括标尺角点检测子模型和建筑物角点检测子模型。
[0062]
在一实施例中,还包括:
[0063]
利用第三训练数据,对第三初始神经网络进行训练,得到所述标尺角点检测子模型;所述第三训练数据包括标尺图像和相应的标尺角点标签。
[0064]
每个标尺角点标签可以标示标尺角点的位置。
[0065]
在一实施例中,还包括:
[0066]
利用第四训练数据,对第四初始神经网络进行训练,得到所述建筑物角点检测子模型;所述第四训练数据包括建筑物图像和相应的建筑物角点标签。
[0067]
每个建筑物角点标签可以标示建筑物角点的位置。
[0068]
在一实施例中,标尺角点检测子模型和建筑物角点检测子模型可以采用同样的结构,在训练模型过程中,可以采用同样的初始神经网络,利用不同的训练数据,训练得到标尺角点检测子模型和建筑物角点检测子模型。
[0069]
在利用标尺角点检测子模型和建筑物角点检测子模型对图像进行角点检测,得到标尺角点和建筑物角点。这个过程包括两个阶段,第一阶段,利用相应的角点检测子模型对输入图像数据进行特征提取,若是对标尺角点进行检测,对标尺图像进行特征提取,得到标尺角点特征图;若是对建筑物角点进行检测,则对建筑物图像进行特征提取,得到建筑物角点特征图;第二阶段,利用得到的特征图,对角点(关键点)位置进行预测,输出角点的坐标,或关键点的坐标。
[0070]
在第一阶段,可以利用kmd,u-net,u2net,resnet,全卷积网络等等进行特征提取,模型可以采用经典resnet中引用的shortcat连接,保证参数可微分。
[0071]
模型的具体结构如图2所示。
[0072]
在图2中,block0的输出作为block1,block2,block3,block4,block5,block6模块儿的输入或经shortcut的拼接后作为输入,接方式。block1的作用为输出通道数控制,它的输出对应关键点数目的特征图通道数。输出为对应目标物体的关键点数目的通道数的特征图。模型结合特征数据后处理层,组成数值坐标回归网络的全部。
[0073]
关于block0模块,主要采用卷积层,激活层,池化层,maxunpool层的组合重叠的形式,主要功能是提取图像的全局特征。block0模型的设计思想受vgg网络设计的启发,采用成熟的vgg结构设计特征。block0设计了与它相同的层数和卷积核参数,来提取特征并保留空间信息。block0与vgg算法的区别在于maxpool层后新增了maxunpool层。考虑到图像特征提取后,紧接着的maxpool层数据冗余的清洗过程,改变了图像特征的尺寸,会增大整个算法的关键点估计误差,所以采用maxunpool的结构,来保留空间信息。
[0074]
第二阶段,利用得到的特征图,对角点位置进行预测,输出角点的坐标,或关键点的坐标,即特征数据后处理阶段。
[0075]
具体地,特征数据后处理也称作特征图的数值坐标回归。特征数据后处理的主要思想是,处理输出的n张特征图与物体的n个关键位置坐标的对应关系。在本实施例中,采用特征图四向偏移的方式,回归关键点位置。同时,数值坐标回归的设计理念受dsntnn算法的启发,使两阶段数据处理具有连续性可导性。不同物体关键点数据集训练的模型适用于该物体种类的关键点预测。
[0076]
特征图f的四向偏移数据处理,是对每一张特征图,分别进行元素阈值比较,以及与向四个方向移动后的四个特征图进行比较;当元素位置大于阈值和四向移动后的元素时,得到一类关键点的位置集合。并且,每一张特征图只生成一类关键点的集合,其公式kp_j:
[0077][0078]
其中,j为物体的第j类关键点,其关键点位置与对应特征图的关联关系处理方法示意图如图3所示。
[0079]
在图3中,n张特征图f1-fn,每一张特征图将代表n类关键点的一种。图3中,将原特征图f_j向四个方向分别移位得到4个移位特征图,将原特征图与生成的移位特征图相同位置做数值比较,当某个位置坐标值大于四个方向的特征图的相同位置和阈值thr时,判断此处出现峰峰值,则此处为特征图的关键点。由于每一张特征只有一个关键点,再读出此处的坐标,就得到关键点坐标。
[0080]
记为第一阶段输出的特征图,即heatmap;它使用2d高斯分布建模求出一张图像上物体j部位(j类关键点)的heatmap,记第k个物体的j关键点的heatmap为p和x
j,k
表示位置信息,则有:
[0081][0082]
s符合正态分布,当p接近标注点x时,正态曲线达到峰峰值。反过来说,当图像中k物体的第j中关键点在p的s取峰峰值的时候。
[0083]
[0084]
向量图表示同一个物体内部关键点之间的关系图,即vectmap图。如图4所示,左图(a)箭头开始的区域为真实关键点坐标位置,箭头线段为关键点位置之间的关系图vectmap。右图(b)为可能预测得出的关键点位置和关键点之间关系图。所以,真实标签数据生成的特征图与预测的特征图之间做损失计算,可训练模型。
[0085]
是标签kps中点的物体关联关系的label图,即vector map向量图,图4中的箭头,表示向量。使用part affinity fields(paf)建立相邻关键点的连接区域,对于连接区域内的每一个像素,使用2d向量同时表征位置和方向信息。这个方向信息表示当前连接区域关键点对的连接方向,对应vectormap。为预测关键点之间的关联关系图,也叫标签中的某一个关联关系图:
[0086][0087]
nc(f)标签关系图数量;为关系图的均值
[0088]
通过第k个物体的关键点x
j1,k
和中心点x
o,k
之间的任意像素的单位向量计算l的真实值其中c表示第c条连接。
[0089][0090]
其中,v=(x
j2,k-x
j1,k
)/(||x
j2,k-x
j1,k
||2,其中l是否存在连接的条件是:
[0091]
0≤v.(f-x
j1,k
)≤l
c,k
and|v

(f-x
j1,k
)≤σ
l
[0092]
l
c,k
表示第c条关联关系,v不仅体现每类特征图到中心点位置的向量集合最小,还体现所有类关键点归属不同物体的连接的正确性。
[0093]
关于相邻相关关键点的连接,对任意关键点d
j1
到中心点do,通过计算pafs的线性积分,来表示关键点对的相关性,也即表征了关键点对的置信度。其公式为:
[0094][0095]
其中,p(u)是采用均匀采样的近似这两个关键点的相似度,
[0096]
p(u)=(1-u)do ud
j1
[0097]
u=[0,1],在复杂情境如物体存在遮挡和变形下,实现多物体关键点检测的greedy relaxationd思想:
[0098]
首先已知不同关键点的heatmap,也就是不同物体同类关键点的点集;需要将点集每个位置匹配给不同的物体,且每个点唯一匹配不同物体。关键点之间的相关性paf已知,将关键点作为图的顶点,将关键点之间的相关性paf看为图的边权,则将多物检测问题转化为二分图匹配问题,并用匈牙利算法求得相连关键点最优匹配。
[0099]
这里的最优匹配指一个点群中的点与另一个点群中的点进行唯一匹配,匹配边数最多,所有点都是匹配点,所有匹配边权重之和最大,任意两条边没有公共顶点。
[0100]
输出坐标位置于标签中的位置计算损失函数,可以训练模型。损失函数是保证网络能收敛的最重要因素。
[0101]
训练时,根据模型输出特征图对应的关键点问题,可将关键点预测坐标与真实坐标之间的l2范数损失记为预测关键点之间的关系与真实关系的损失记为得到整个
算法的优化目标含为f_loss。其计算方式如下:
[0102][0103][0104]
其中,预测关键位置数据中的位置坐标集;是预测中坐标对中心位置生成的vectormap。标签数据中关键位置的位置坐标集;是标签中坐标对中心位置生成的vectormap。标签关键点生成的特征图,是预测得到的特征图,也是生成关键点的特征图,标签中的向量图,是预测得到的向量图。
[0105]
另外,考虑到训练数据集只标注了图片中物体的部分关键点,或有多个物体重叠遮挡等情况,损失函数采取了空域加权操作,w表示二值化mask矩阵,当位置p的标签缺失时其值为w(p)=0,否则值为1。那么,未被标记的物体关键点不会影响模型的学习过程,其整个网络模型的优化目标函数f如下:
[0106][0107]
t表示关键点数量。
[0108]
如图5所示,本技术一实施例提供一种摄像机视觉物体高度检测装置,包括:
[0109]
图像获取模块,用于获取待测建筑物的图像;其中,在所述待测建筑物的图像中包括标尺,所述标尺与所述待测建筑物的墙面平行,与水平地面垂直;
[0110]
角点检测块,用于利用预先训练好的检测模型对所述待测建筑物的图像进行边缘提取以及角点检测,得到待测建筑物的角点与标尺的角点;
[0111]
标尺高度计算模块,用于根据所述标尺的角点计算所述标尺在待测建筑物的图像中的第一高度;
[0112]
第一建筑物高度计算模块,用于根据所述待测建筑物的角点计算所述待测建筑物在待测建筑物的图像中的第二高度;
[0113]
第二建筑物高度计算模块,用于基于所述第一高度、所述第二高度、标尺的实际高度以及修正因子计算得到待测建筑物的高度。。
[0114]
上述装置与检测方法具体实施方式大致相同,在此不再赘述。
[0115]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0116]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0117]
本技术实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述检测方法的步骤。
[0118]
本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述检测方法的步骤。
[0119]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0120]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0121]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0122]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0123]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器((ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
[0124]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献