标记识别方法及装置与流程

文档序号:29403078发布日期:2022-03-26 09:57阅读:138来源:国知局
标记识别方法及装置与流程

1.本技术涉及图像处理技术领域,更具体地,涉及一种标记识别方法及装置。


背景技术:

2.基准标记是为自动检测而设计的人工视觉特征。在相关技术中,为了实现对物体的识别定位跟踪,通常在相应的物体上设置对应包含基准标记,通过对应基准标记识别定位,进而获取到物体的身份和位姿信息。
3.在相关技术中,一般是基于边缘检测和图像二值化,对基准标记进行关键点提取,再基于所提取到的关键点识别基准标记的身份和位姿信息。但是,通过该方式识别到的位姿信息的存在精度较差的问题。


技术实现要素:

4.有鉴于此,本技术提出了一种标记识别方法及装置。
5.第一方面,本技术实施例提供了一种标记识别方法,所述方法包括:获取包含现实环境中的标记的标记图像;获取所述标记图像中目标数量的角点;基于所述目标数量的角点,从所述标记图像中确定所述标记所在的区域;基于预先训练的关键点检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点;获取所述多个图像特征点的种类,所述种类的数量是基于所述标记的标记类型确定;基于所述多个图像特征点以及所述图像特征点的种类,对所述标记进行识别,得到识别结果,所述识别结果用于对所述标记的追踪及定位。
6.第二方面,本技术实施例提供了一种标记识别装置,所述装置包括:图像获取模块、角点获取模块、区域确定模块、特征点提取模块、种类获取模块以及标记识别模块。图像获取模块,用于获取包含现实环境中的标记的标记图像;角点获取模块,用于获取所述标记图像中目标数量的角点;区域确定模块,用于基于所述目标数量的角点,从所述标记图像中确定所述标记所在的区域;特征点提取模块,用于基于预先训练的关键点检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点;种类获取模块,用于获取所述多个图像特征点的种类,所述种类的数量是基于所述标记的标记类型确定;标记识别模块,用于基于所述多个图像特征点以及所述图像特征点的种类,对所述标记进行识别,得到识别结果,所述识别结果用于对所述标记的追踪及定位。
7.第三方面,本技术实施例提供了一种计算机设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行第一方面提供的标记识别方法。
8.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行第一方面提供的标记识别方法。
9.本技术提供的方案中,获取包含现实环境中的标记的标记图像;获取标记图像中目标数量的角点;基于目标数量的角点,从标记图像中确定标记所在的区域;基于预先训练的关键点检测模型,提取标记所在的区域对应的图像中的多个图像特征点;获取多个图像特征点的种类,所种类的数量是基于标记的标记类型确定;基于多个图像特征点以及图像特征点的种类,对标记进行识别,得到识别结果,识别结果用于对标记的追踪及定位。如此,通过获取标记图像中的角点,来确定标记所在的区域,可以实现更加准确且快速地确定标记所在的区域;基于此,可以提取到更多更为密集的图像特征点,实现了更高的姿态精度;并且结合图像特征点的种类,对标记进行识别,也大大提高了标记识别的鲁棒性。
附图说明
10.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1示出了本技术一实施例提供的标记识别方法的流程示意图。
12.图2示出了本技术实施例提供的基准标记的示意图。
13.图3示出了本技术实施例提供的识别流程示意图。
14.图4示出了图2所示步骤s260在一种实施方式中的子步骤流程示意图。
15.图5示出了本技术再一实施例提供的标记识别方法的流程示意图。
16.图6示出了本技术一实施例提供的标记的关键特征点的示意图。
17.图7示出了本技术另一实施例提供的标记的关键特征点的示意图。
18.图8示出了本技术再又一实施例提供的标记识别方法的流程示意图。
19.图9示出了本技术一实施例提供的标记的局部图案的示意图。
20.图10示出了本技术又再一实施例提供的标记识别方法的流程示意图。
21.图11示出了本技术一实施例提供的runetag标记的图像特征点的示意图。
22.图12示出了本技术另一实施例提供的runetag标记的图像特征点的示意图。
23.图13示出了本技术一实施例提供的topotag标记的图像特征点的示意图。
24.图14示出了本技术另一实施例提供的topotag标记的图像特征点的示意图。
25.图15示出了本技术一实施例提供的apriltag标记的图像特征点的示意图。
26.图16示出了本技术另一实施例提供的apriltag标记的图像特征点的示意图。
27.图17是根据本技术另一实施例提供的一种标记识别装置的框图。
28.图18是本技术实施例的用于执行根据本技术实施例的标记识别方法的计算机设备的框图。
29.图19是本技术实施例的用于保存或者携带实现根据本技术实施例的标记识别方法的程序代码的存储单元。
具体实施方式
30.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
detector(ssd)算法,使用单个卷积网络来预测标记的边界框及其类概率,从局部形状中回归关键点和数字符号,没有利用传统的低阶图像处理技术检测边缘或斑点,重新采样像素或特征的边界框假设,实现更快的计算速度,提高了标记识别的效率以及准确性。
38.步骤s220:获取所述标记图像中目标数量的角点。
39.在本实施例中,角点就是极值点,可以理解为在某方面属性特别突出的点,针对图像而言,角点可以理解为图像中梯度值和梯度方向的变化速率都很高的点,也可以理解为图像两条或两条以上边缘的交点,即物体轮廓线的连接点。基于此,在获取到现实环境中包含标记的标记图像后,可以通过提取标记图像中的目标数量的角点来确定标记所在的区域,也就是说,通过提取标记的轮廓线的连接点,来确定该标记所在的区域。其中,目标数量可以是预先设置的,也可以根据不同的应用场景对其进行调整,本实施例对此不作限制;提取标记图像中的角点可以通过多种检测算法来提取,检测算法包括但不限于基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测等。
40.由于角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度;并且即使拍摄标记图像的视角发生变化,由于角点具备稳定性质的特征,仍可以保证基于角点确定的标记所在区域的准确性。
41.步骤s230:基于所述目标数量的角点,从所述标记图像中确定所述标记所在的区域。
42.在本实施例中,由于角点检测算法可能存在一定误差,导致获取到的目标数量的角点可能并非完全是标记的轮廓曲线上的角点,可能同时包括了现实环境中其他物体的轮廓曲线上的角点。因此,可以进一步基于目标数量的角点,从标记图像中确定标记所在的区域。
43.具体地,获取目标数量的角点中每个角点与预设区域的边界框之间的关联度,以及获取每个角点指向标记中心的方向向量与预设方向向量之间的夹角余弦值;判断每个角点与预设区域的边界框值之间的关联度是否小于预设关联度,且每个角点指向标记中心的方向向量与预设方向向量之间的夹角余弦值是否大于预设数值;若否,则获取不满足上述判断条件的角点作为不合格角点,并将不合格角点从目标数量的角点中筛除,得到多个合格角点;基于多个合格角点,确定所述标记所在的区域。
44.具体地,获取标记图像中的角点,并基于角点确定标记所在的区域,即为如图3所示的阶段1,对标记图像进行感兴趣区域(region of interest,roi)检测,可以预先训练roi检测模型,在实际应用中,即可直接调用预先训练的roi检测模型,对标记图像中标记所在的区域进行检测,即检测标记的roi。
45.在本实施例中,基于单级多框预测器(the single shot detector,ssd)和单尺度预测器,对roi检测模型进行训练。其中,ssd的核心是使用应用于特征映射的小卷积滤波器来预测固定的一组默认边界框的类别分数和框偏移量,生成固定大小的边界框集合以及在这些框中存在对象类实例的分数,可以将该分数作为置信度。首先,可以通过基于大量的训练样本,对分类器进行训练直至满足预设条件,其中,预设条件可以为:总损失值小于预设值、总损失值不再变化、或者训练次数达到预设次数等;训练样本包括正样本和负样本,正样本为包括各种标记的图像,负样本为未包含标记的图像。可以理解的,在根据大量的训练样本对分类器进行多个训练周期的迭代训练后,其中,每个训练周期包括多次的迭代训练,
不断对参数进行优化,使得上述总损失值越来越小,最后变小为一个固定值,或者小于以上预设值,此时,则表示初始模型已收敛;当然也可以是在训练次数达到预设次数后,确定初始模型已经收敛,此时,则可以将初始模型中的分类器作为用于检测标记roi的roi检测模型。其中,预设值以及预设次数均为预先设置的,也可以根据不同的应用场景对其数值进行调整,本实施例对此不作限制。
46.其中,在roi检测阶段的总损失函数为ssd预测器的损失、单尺度预测器的损失以及掩模损失的和值,总损失函数l
roi
可以通过以下公式计算:
47.l
roi
=l
box
+l
corner
+l
mask
48.其中,l
box
代表ssd预测器的损失,即预测标记的边界时的损失,l
corner
代表单尺度预测器的损失,即预测角点的损失,l
mask
代表掩模损失。
49.l
box
可以通过以下公式计算:
[0050][0051]
n为匹配的边框的总数量,l
conf
(c
(b)
)为预测边框的softmax损失值。其中,softmax损失值可以通过以下公式计算:
[0052][0053]
代表第i个默认框/角点匹配到p类的第j个真实的默认框/角点,pos代表正锚点,neg代表负锚点。分类置信度的损失是基于正锚点和负锚点来定义的,而边框或角点信息的损失是基于正锚点来定义的。
[0054]
其中,代表预测相对于anchor的偏移量,可以通过以下公式表示:
[0055][0056]
l可以代表边界框的定位,l可以通过中心(l
cx
,l
cy
)和尺寸(lw,lh)进行表示,l
cx
代表中心点的横坐标,l
cy
代表中心点的纵坐标,lw代表宽度,lh代表长度。
[0057]
l
corner
可以通过以下公式计算:
[0058][0059]
n为匹配的角点的总数量,l
conf
(c
(p)
)为预测角点的softmax损失值,为预测数据与真实数据之间的平滑损失。其中,预测数据g和真实数据之间的g*之间的平滑损失可以通过以下公式计算:
[0060]
[0061]
可以通过以下公式进行计算:
[0062][0063]
可以表示预测角点到默认角点p
(d)
的偏移量,可以通过以下公式进行表示:
[0064][0065]
为了数值稳定性,将一个规格化二维向量表示为以下冗余形式:
[0066][0067]
其中,为无序角点指向标记中心的方向向量。
[0068]
l
mask
可以通过以下公式计算:
[0069][0070]
m代表预测掩模,代表真实掩模。
[0071]
其中,给定大小为h
×
w的输入图像,特征x0使用mobilenet骨干编码器和残差块提取空间维数h/8
×
w/8。mobilenet比vgg-16更高效,因为它使用了深度可分离卷积,在保留特征提取能力的同时降低了计算复杂度。由于基准标记由简单的小形状组成,在高级目标检测之前先提取中级特征。二通道掩模m,大小为h/8
×
w/8
×
2,表示标记和背景的分割x0有几个卷积层。然后骨干特征x0和掩模m连接为中间特征x1.两个预测器分别用于预测边界框和角点。
[0072]
在一些实施方式中,所述标记所在的区域为目标区域,当所述目标区域的数量为多个时,获取多个目标区域中每个目标区域的置信度,得到多个置信度;获取所述多个置信度中最大的置信度对应的目标区域,作为所述标记所在的区域。如此,置信度越高,表征获取到的目标区域与标记的实际边框所包含的区域越一致,因此,通过获取置信度最大的目标区域作为标记所在的区域,可以提高标记确定的准确性。
[0073]
在另一些实施方式中,所述标记所在的区域为目标区域,当所述目标区域的数量为多个时,获取多个目标区域中每个目标区域的置信度;基于所述每个目标区域的置信度,判断所述多个目标区域中是否存在目标数量的待选区域,所述待选区域的置信度大于预设置信度,所述目标数量为至少两个;若存在,则获取所述目标数量的待选区域的坐标信息的均值,作为目标坐标信息;获取所述目标坐标信息对应的区域,作为所述标记所在的区域。如此,当同时存在多个较大的置信度时,获取多个较大置信度对应的目标区域的坐标信息的均值,并将该均值坐标信息作为标记所在的区域,可以防止计算机设备在多个待选区域之间来回选择切换,导致无法准确确定出标记所在的区域,进而导致标记后续的识别不准确。
[0074]
步骤s240:基于预先训练的关键点检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点。
[0075]
在本实施例中,也可以通过预先训练的关键点检测模型,提取已确定标记所在的区域对应的图像中的多个图像特征点,即为如图3所示的阶段2。其中,关键点检测模型也是基于单标度锚定预测器来预测的,给定一个大小为w
×
w的输入图像,定位点排列成w/8
×
w/
8的网格。另一方面,模板预测器采用中间特征作为输入,并估计采用2
×
2个锚的单尺度方法。具体训练过程可以参阅前述实施例中的内容,在此不再赘述。
[0076]
其中,在关键点检测阶段的总损失函数l
detect
可以通过以下公式计算:
[0077]
l
detect
=l
keypoint
+l
template
+l
mask
[0078]
其中,l
mask
表示前述的掩模损失,l
keypoint
表示单标度锚定预测器的损失,l
template
表示模板预测器的损失。
[0079]
l
template
和l
keypoint
分别可以通过以下公式计算:
[0080][0081][0082]
其中,和是根据c
(k)
和c
(t)
计算出的定位。
[0083]
步骤s250:获取所述多个图像特征点的种类,所述种类的数量是基于所述标记的标记类型确定。
[0084]
在本实施例中,在提取到多个图像特征点后,可以进一步确定多个图像特征点中每个图像特征点的种类,其中,图像特征点的种类是基于标记的标记类型确定的,图像特征点的种类可以仅包括编码特征点、非编码特征点,也可以包括可见特征点和不可见特征点。示例性地,当标记的标记类型为topotag时,多个图像特征点的种类则包括编码特征点和非编码特征点;当标记的标记类型为runetag时,多个图像特征点的种类则包括可见特征点和不可见特征点。
[0085]
步骤s260:基于所述多个图像特征点以及所述图像特征点的种类,对所述标记进行识别,得到识别结果,所述识别结果用于对所述标记的追踪及定位。
[0086]
在一些实施方式中,请参阅图4,步骤s260可以包括以下步骤:
[0087]
步骤s261:基于与所述标记的标记类型对应的预定义模板,对所述多个图像特征点进行排序,得到多个有序特征点。
[0088]
在本实施例中,由于通过关键点检测模型提取到的多个图像特征点是无序的,若要对标记的身份标识(identity document,id)进行身份识别,基于无序的图像特征点可能无法识别出标记id,或者误识别标记id。因此,可以对多个图像特征点进行排序,得到多个有序特征点。其中,对多个图像特征点进行排序可以获取与标记的标记类型对应的预定义模板,作为目标排序模板;根据目标排序模板中关键点的排列顺序,为多个图像特征点中每个图像特征点分配对应的编号,即对多个图像特征点进行排序。示例性地,apriltag、topotag以及runetag三种标记类型,分别对应一种预定义模板,预定义模板可以是预先设置的,也可以根据实际应用场景对其进行调整,本实施例对此不作限制。
[0089]
步骤s262:基于所述多个有序特征点中每个有序特征点的种类,以及所述多个有序特征点于所述标记图像中的坐标位置信息,得到对所述标记进行识别的识别结果。
[0090]
具体地,基于所述多个有序特征点中每个有序特征点的种类,获取所述每个有序特征点的编码值;根据所述每个有序特征点的编码值,确定所述标记对应的标记编号(即标记id);通过逆单应性矩阵,获取所述多个有序特征点于所述标记图像中的坐标位置信息。;
根据所述坐标位置信息,确定所述标记的位姿信息;基于所述位姿信息以及标记编号,生成所述识别结果。可以理解为,先获取多个有序特征点于标记图像中的像素点坐标,并以图像特征点所在平面为世界坐标xy平面,并在该平面中确定世界坐标的原点;进而可以获取世界坐标中的图像特征点在相机坐标系下的坐标信息,以及相机在世界坐标中的坐标信息,即可确定除标记的位姿信息。其中,位姿信息包括六个自由度信息,即坐标位置信息以及角度位置信息。如此,可以对标记进行实时的追踪及定位。
[0091]
在本实施例中,通过获取标记图像中的角点,来确定标记所在的区域,可以实现更加准确且快速地确定标记所在的区域;基于此,可以提取到更多更为密集的图像特征点,实现了更高的姿态精度;并且结合图像特征点的种类,对标记进行识别,也大大提高了标记识别的鲁棒性。
[0092]
请参照图5,图5为本技术再一实施例提供的一种标记识别方法的流程示意图。下面将结合图5对本技术实施例提供的标记识别方法进行详细阐述。该标记识别方法可以包括以下步骤:
[0093]
步骤s401:获取包含现实环境中的标记的标记图像。
[0094]
步骤s402:获取所述标记图像中目标数量的角点。
[0095]
步骤s403:基于所述目标数量的角点,从所述标记图像中确定所述标记所在的区域。
[0096]
步骤s404:基于预先训练的关键点检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点。
[0097]
步骤s405:获取所述多个图像特征点的种类,所述种类的数量是基于所述标记的标记类型确定。
[0098]
在本实施例中,步骤s401至步骤s405的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
[0099]
步骤s406:根据预设获取规则,从所述多个图像特征点中获取多个关键特征点,所述关键特征点对应的局部图案至少包括两种。
[0100]
在本实施例中,标记由多个局部图案构成,在设计标记时,可以通过引入特别设计的关键点来定义标记的方向,并且关键特征点对应的局部图案至少包括两种,基于此,标记可以不用满足相关技术中的旋转不对称性,并且可以迅速通过关键特征点判断出标记的方向。可选地,可以通过预设获取规则,从多个图像特征点中获取用于定义标记方向的关键特征点。示例性地,图6中的图像特征点p1、p2、p3、p4即为获取到的多个关键特征点,关键特征点p1、p2、p3均为相同的局部图案,关键特征点p4为另一种局部图案。
[0101]
步骤s407:根据所述多个关键特征点中每个关键特征点的局部图案,确定所述标记的方向。
[0102]
在实际应用中,可能由于拍摄标记图像的视角不同,进而导致标记图像中的标记并非是正向的,可能是相对预设标准方向旋转了一定角度的,如图7所示,相对图6中位于预设标准方向的标记逆时针旋转了90度,因此,可以在获取到多个关键特征点后,通过根据每个关键特征点的局部图案来确定标记的方向。
[0103]
步骤s408:判断所述标记的方向是否符合预设标准方向。
[0104]
进一步地,判断标记的方向是否符合预设标准方向,即判断标记是否为正向摆放
的,具体地,可以从左上角的关键特征点,按照顺时针方向,依次将所有关键特征点的类型进行排序,得到关键特征点的类型序列;判断关键特征点的类型序列是否与预设类型序列一致。若一致,则判定标记的方向是符合预设标准方向的,若不一致,则判定标记的方向不符合预设标准方向。
[0105]
步骤s409:若符合,则执行所述基于与所述标记的标记类型对应的预定义模板,对所述多个图像特征点进行排序,得到多个有序特征点的步骤。
[0106]
步骤s410:若不符合,则将所述标记旋转至所述预设标准方向,针对旋转后的所述标记,执行所述基于与所述标记的标记类型对应的预定义模板,对所述多个图像特征点进行排序,得到多个有序特征点的步骤。
[0107]
基于此,若标记的方向不符合预设标准方向,则将标记旋转至预设标准方向,在对标记所在区域中识别到的多个图像特征点进行排序,得到多个有序特征点。
[0108]
步骤s411:基于所述多个有序特征点中每个有序特征点的种类,以及所述多个有序特征点于所述标记图像中的坐标位置信息,得到对所述标记进行识别的识别结果。
[0109]
在本实施例中,步骤s411的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
[0110]
在本实施例中,可以通过识别引入的用于表征标记的方向及边框的关键特征点,来确定标记的方向。如此,相较于相关技术中只能通过大量的位转换的方式来进行方向的识别的方法,更加便捷,同时也提高了标记识别的效率;并且,减少了与环境元素混淆的可能性,进而提高标记识别的准确性。
[0111]
请参照图8,图8为本技术再又一实施例提供的一种标记识别方法的流程示意图。下面将结合图8对本技术实施例提供的标记识别方法进行详细阐述。该标记识别方法可以包括以下步骤:
[0112]
步骤s510:响应于标记制作指令,显示提示信息、多种标记的类型以及多种所述局部图案,所述局部图案用于构成所述标记,所述提示信息用于提示选择标记的类型以及局部图案。
[0113]
在本实施例中,基准标记可以由用户自行选择设计。用户可以输入标记制作指令,计算机设备响应于标记制作指令,显示多种标记的类型、多种局部图案以及提示信息,提示信息用于提示用户选择待生成的标记的类型,同时选择用于生成该类型标记的局部图案。其中,标记的类型可以包括但不限于图2所示的5种类型,局部图案的颜色可以是多种,不局限于黑白两种颜色,并且,局部图案也可以包括多种类别的局部图案,同一类别的局部图案的形状和底色相同,但是局部图案的内部符号可以不同;不同类别的局部图案的形状和底色不相同,具体请参阅图9所示class1、class2、class3
……
class c等多种类别的局部图案。
[0114]
在一些实施方式中,提示信息中还可以包括关键特征点选取的提示信息,即提示用户选择至少两种不同的局部图案,作为用于表征标记方向的局部图案。如此,便于后续标记识别时,可以更加便捷地识别出标记的方向。
[0115]
步骤s520:响应于确认指令,获取所述确认指令中携带的标记的类型,作为指定标记类型,以及获取所述确认指令中携带的局部图案,作为指定局部图案。
[0116]
基于此,在用户选择好标记的类型以及构成标记的局部图案后,可以输入确认指
令,对应地,计算机设备响应于确认指令,获取确认指令中携带的标记的类型,作为指定标记类型,以及获取确认指令中携带的局部图案,作为指定局部图案。
[0117]
步骤s530:基于所述指定局部图案,生成与所述指定标记类型对应的标记。
[0118]
在本实施例中,计算机设备在获取到指定局部图案和指定标记类型后。按照指定标记类型的格式,将局部图案进行随机组合排列,生成与指定标记类型对应的标记;可选地,也可以按照指定排列组合方式,将局部图案进行排列组合,生成与指定标记类型对应的标记,本实施例对此不作限制。
[0119]
步骤s540:获取包含现实环境中的标记的标记图像。
[0120]
步骤s550:获取所述标记图像中目标数量的角点。
[0121]
步骤s560:基于所述目标数量的角点,从所述标记图像中确定所述标记所在的区域。
[0122]
步骤s570:基于预先训练的关键点检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点。
[0123]
步骤s580:获取所述多个图像特征点的种类,所述种类的数量是基于所述标记的标记类型确定。
[0124]
步骤s590:基于所述多个图像特征点以及所述图像特征点的种类,对所述标记进行识别,得到识别结果,所述识别结果用于对所述标记的追踪及定位。
[0125]
在本实施例中,步骤s540至步骤s590的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
[0126]
在本实施例中,为用户提供了标记定制的本地模式,即可以由用户自行选择其需要的局部图案以及标记类型,进而使得生成的新的标记可以更加符合用户的审美及需求;并且,构成标记的局部图案可以包括多种颜色及形状,极大的减少了与环境元素混淆的可能性,进而提高了标记识别的准确性和鲁棒性。
[0127]
请参照图10,图10为本技术又再一实施例提供的一种标记识别方法的流程示意图。下面将结合图10对本技术实施例提供的标记识别方法进行详细阐述。该标记识别方法可以包括以下步骤:
[0128]
步骤s610:获取包含现实环境中的标记的标记图像。
[0129]
步骤s620:获取所述标记图像中目标数量的角点。
[0130]
步骤s630:基于所述目标数量的角点,从所述标记图像中确定所述标记所在的区域。
[0131]
步骤s640:获取所述标记的标记类型,作为目标标记类型。
[0132]
步骤s650:获取与所述目标标记类型对应的关键点检测模型,作为目标检测模型。
[0133]
在本实施例中,步骤s610至步骤s650的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
[0134]
步骤s660:基于所述目标检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点。
[0135]
在一些实施方式中,若所述目标标记类型为第一标记类型,基于所述目标检测模型,提取所述标记所在的区域对应的图像中的多个可见特征点以及多个不可见特征点,作为所述多个图像特征点。示例性地,针对runetag类型的标记,请参阅图11,在相关技术中,
图像特征点仅定义在可见的点上,如此,当标记图像的质量较差时,则会导致对多个图像特征点的排序较为困难,进而影响对标记的识别。而在本实施例中,图像特征点在可见点和不可见点上都定义图像特征点,请参阅图12,黑色的点代表可见特征点,灰色的点代表不可见特征点。如此,则可以利用规则进行排序,使得对多个图像特征点的排序更为容易,进而提高后续对标记识别的准确性。
[0136]
在另一些实施方式中,若所述目标标记类型为第二标记类型,基于所述目标检测模型,提取所述标记所在的区域对应的图像中的多个第一编码位特征点、多个第二编码位特征点以及非编码位特征点,作为所述多个图像特征点。示例性地,针对topotag类型的标记,在相关技术中,图像特征点仅包括可编码特征点,其中,可编码特征点可以表征“0”或“1”,请参阅图13所示。而在本实施例中,可以将图像特征点分为三类,第一编码位特征点“0”、第二编码位特征点“1”以及非编码位特征点,其中,非编码位特征点可以是在没有局部图案的区域进行定义。具体地,请参阅图14。如此,可以获取到更密集的图像特征点,以便进行图像特征点的排序,进而可以提高标记识别的精确度。
[0137]
在又一些实施方式中,若目标标记类型为第三标记类型,基于目标检测模型,提取与标记的预设尺寸对应的预设数量的图像特征点,作为多个图像特征点。示例性的,针对apriltag类型的标记,在相关技术中,请参阅图15,仅在标记的边界的四个角上定义图像特征点,并不于对标记内部进行编码位特征点的提取。而在本实施例中,可以提取标记内部图像中更为密集的图像特征点,并对图像特征点进行编码定义,请参阅图16,可以定义白色区域的图像特征点代表编码位“1”,黑色区域的图像特征点代表编码位“0”。如此,可以获取到除边界上四个图像特征点之外的,更为密集的图像特征点,进而提高基于更为密集的图像特征点,对标记进行识别的准确性。
[0138]
步骤s670:获取所述多个图像特征点的种类,所述种类的数量是基于所述标记的标记类型确定。
[0139]
步骤s680:基于所述多个图像特征点以及所述图像特征点的种类,对所述标记进行识别,得到识别结果,所述识别结果用于对所述标记的追踪及定位。
[0140]
在本实施例中,步骤s670至步骤s680的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
[0141]
在本实施例中,通过确定标记的标记类型,以确定与标记类型对应的目标检测模型,再通过目标检测模型检测到更多的图像特征点。如此,针对不同标记类型的标记,均可以使用预先训练的检测模型从标记中提取出更为密集的图像特征点,进而可以得到更为密集且有排列的图像特征点,实现对标记更为精准的身份识别以及位姿信息识别,提高对标记追踪及定位的准确性。
[0142]
请参照图17,其中示出了本技术一实施例提供的一种标记识别装置700的结构框图。该装置700可以包括:图像获取模块710、角点获取模块720、区域确定模块730、特征点提取模块740、种类获取模块750和标记识别模块760。
[0143]
图像获取模块710用于获取包含现实环境中的标记的标记图像;
[0144]
角点获取模块720用于获取所述标记图像中目标数量的角点;
[0145]
区域确定模块730用于基于所述目标数量的角点,从所述标记图像中确定所述标记所在的区域;
[0146]
特征点提取模块740用于基于预先训练的关键点检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点;
[0147]
种类获取模块750用于获取所述多个图像特征点的种类,所述种类的数量是基于所述标记的标记类型确定;
[0148]
标记识别模块760用于基于所述多个图像特征点以及所述图像特征点的种类,对所述标记进行识别,得到识别结果,所述识别结果用于对所述标记的追踪及定位。
[0149]
在一些实施方式中,标记识别模块760可以包括:排序单元以及识别单元。其中,排序单元可以用于基于与所述标记的标记类型对应的预定义模板,对所述多个图像特征点进行排序,得到多个有序特征点。识别单元可以用于基于所述多个有序特征点中每个有序特征点的种类,以及所述多个有序特征点于所述标记图像中的坐标位置信息,得到对所述标记进行识别的识别结果。
[0150]
在该方式下,识别单元可以包括:编码获取子单元、编号获取子单元、坐标获取子单元、位姿获取子单元以及识别子单元。其中,编码获取子单元可以用于基于所述多个有序特征点中每个有序特征点的种类,获取所述每个有序特征点的编码值。编号获取子单元可以用于根据所述每个有序特征点的编码值,确定所述标记对应的标记编号。坐标获取子单元可以用于通过逆单应性矩阵,获取所述多个有序特征点于所述标记图像中的坐标位置信息。位姿获取子单元可以用于根据所述坐标位置信息,确定所述标记的位姿信息。识别子单元可以用于基于所述位姿信息以及标记编号,生成所述识别结果。
[0151]
在一些实施方式中,所述图像特征点的种类与构成标记的局部图案的种类一一对应,标记识别装置700还可以包括:关键点获取模块、方向确定模块及方向判断模块。其中,关键点获取模块可以用于在所述基于与所述标记的标记类型对应的预定义模板,对所述多个图像特征点进行排序,得到多个有序特征点之前,根据预设获取规则,从所述多个图像特征点中获取多个关键特征点,所述关键特征点对应的局部图案至少包括两种。方向确定模块可以用于根据所述多个关键特征点中每个关键特征点的局部图案,确定所述标记的方向。方向判断模块可以具体用于判断所述标记的方式是否符合预设标准方向;若符合,则执行所述基于与所述标记的标记类型对应的预定义模板,对所述多个图像特征点进行排序,得到多个有序特征点的步骤;若不符合,则将所述标记旋转至所述预设标准方向,针对旋转后的所述标记,执行所述基于与所述标记的标记类型对应的预定义模板,对所述多个图像特征点进行排序,得到多个有序特征点的步骤。
[0152]
在该方式下,标记识别装置700还可以包括:显示模块、标记信息获取模块以及标记生成模块。其中,显示模块可以用于在所述获取包含现实环境中的标记的标记图像之前,响应于标记制作指令,显示提示信息、多种标记的类型以及多种所述局部图案,所述局部图案用于构成所述标记,所述提示信息用于提示选择标记的类型以及局部图案。标记信息获取模块可以用于响应于确认指令,获取所述确认指令中携带的标记的类型,作为指定标记类型,以及获取所述确认指令中携带的局部图案,作为指定局部图案。标记生成模块可以用于基于所述指定局部图案,生成与所述指定标记类型对应的标记。
[0153]
在一些实施方式中,特征点提取模块740可以包括:类型获取单元、模型获取单元以及特征点提取单元。其中,类型获取单元可以用于获取所述标记的标记类型,作为目标标记类型。模型获取单元可以用于获取与所述目标标记类型对应的关键点检测模型,作为目
标检测模型。特征点提取单元可以用于基于所述目标检测模型,提取所述标记所在的区域对应的图像中的多个图像特征点。
[0154]
在该方式下,特征点提取单元可以具体用于若所述目标标记类型为第一标记类型,基于所述目标检测模型,提取所述标记所在的区域对应的图像中的多个可见特征点以及多个不可见特征点,作为所述多个图像特征点。
[0155]
在该方式下,特征点提取单元还可以具体用于若所述目标标记类型为第二标记类型,基于所述目标检测模型,提取所述标记所在的区域对应的图像中的多个第一编码位特征点、多个第二编码位特征点以及非编码位特征点,作为所述多个图像特征点。
[0156]
在一些实施方式中,所述标记所在的区域为目标区域,当所述目标区域的数量为多个时,区域确定模块730可以包括:置信度获取单元以及区域确定单元。其中,置信度获取单元可以用于获取多个目标区域中每个目标区域的置信度,得到多个置信度。区域确定单元可以用于获取所述多个置信度中最大的置信度对应的目标区域,作为所述标记所在的区域。
[0157]
在另一些实施方式中,所述标记所在的区域为目标区域,当所述目标区域的数量为多个时,区域确定模块730可以包括:置信度获取单元、判断单元、坐标信息获取单元以及区域确定单元。其中,置信度获取单元可以用于获取多个目标区域中每个目标区域的置信度。判断单元可以用于基于所述每个目标区域的置信度,判断所述多个目标区域中是否存在目标数量的待选区域,所述待选区域的置信度大于预设置信度,所述目标数量为至少两个。坐标信息获取单元可以用于若所述多个目标区域中存在目标数量的待选区域,则获取所述目标数量的待选区域的坐标信息的均值,作为目标坐标信息。区域确定单元可以用于获取所述目标坐标信息对应的区域,作为所述标记所在的区域。
[0158]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0159]
在本技术所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
[0160]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0161]
综上所述,本技术实施例提供的方案中,获取包含现实环境中的标记的标记图像;获取标记图像中目标数量的角点;基于目标数量的角点,从标记图像中确定标记所在的区域;基于预先训练的关键点检测模型,提取标记所在的区域对应的图像中的多个图像特征点;获取多个图像特征点的种类,所种类的数量是基于标记的标记类型确定;基于多个图像特征点以及图像特征点的种类,对标记进行识别,得到识别结果,识别结果用于对标记的追踪及定位。如此,通过获取标记图像中的角点,来确定标记所在的区域,可以实现更加准确且快速地确定标记所在的区域;基于此,可以提取到更多的图像特征点,实现了更高的姿态精度;并且结合图像特征点的种类,对标记进行识别,也大大提高了标记识别的鲁棒性。
[0162]
下面将结合图18对本技术提供的一种计算机设备进行说明。
[0163]
参照图18,图18示出了本技术实施例提供的一种计算机设备800的结构框图,本技术实施例提供的标记识别方法可以由该计算机设备800执行。其中,计算机设备800可以是
等能够运行应用程序的设备。
[0164]
本技术实施例中的计算机设备800可以包括一个或多个如下部件:处理器801、存储器802、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器802中并被配置为由一个或多个处理器801执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
[0165]
处理器801可以包括一个或者多个处理核。处理器801利用各种接口和线路连接整个计算机设备800内的各个部分,通过运行或执行存储在存储器802内的指令、程序、代码集或指令集,以及调用存储在存储器802内的数据,执行计算机设备800的各种功能和处理数据。可选地,处理器801可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器801可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以集成到处理器801中,单独通过一块通信芯片进行实现。
[0166]
存储器802可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器802可用于存储指令、程序、代码、代码集或指令集。存储器802可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储计算机设备800在使用中所创建的数据(比如上述的各种对应关系)等。
[0167]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0168]
在本技术所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0169]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0170]
请参考图19,其示出了本技术实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质900中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
[0171]
计算机可读存储介质900可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质900包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质900具有执行上述方法中的任何方法步骤的程序代码910的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码910可以例如以适当形式进行压缩。
[0172]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管
参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1