获取样本数据及构件识别方法及电子设备
文献发布时间:2023-06-19 18:27:32
技术领域
本申请涉及图形图像处理技术领域,尤其涉及一种获取样本数据及构件识别方法及电子设备。
背景技术
目前对CAD图纸中的构件进行识别的方法主要分为以下四类:
第一,直接使用检测模型,例如faster-rcnn模型,该方法简单通用;
第二,使用检测模型和分类模型识别构件,检测模型主要是检测构件,提高构件召回率;分类模型主要用于识别检测到的构件类别;
第三,采用矢量图像识别构件,但是需要提前获取矢量数据,然而从CAD图纸或图像中准确获取矢量数据的成本很高;
第四,采用解析CAD图纸得到构件图元,之后采用图形图像方法识别从构件图元中识别构件。
其中,第一类和第二类由于模型输入大小的限制,使得对大构件的识别能力有限;第三类和第四类需要解析CAD图纸,然而CAD图纸中存储的大构件信息不一定完整,同时大构件由于跨度大,不一定绘制在一个图层,导致提取大构件图元数据比较困难,同时大构件特征比较分散,根据图形特征识别困难。
在CAD图纸中,大构件具有长宽比变化剧烈的特点,大构件的边长很长,可以能会达到6K多像素,目前的识别方式会导致大量的大构件漏识别或者识别不全。
发明内容
本申请提供了一种获取样本数据及构件识别方法及电子设备,用以解决大构件漏识别或识别不全的问题。
第一方面,本申请实施例提供了一种获取样本数据的方法,包括:
获取原始CAD图像以及标注CAD图像,其中,所述标注CAD图像中包括一个完整构件各分段的标注框,相邻分段的标注框存在重叠区域;
基于所述原始CAD图像进行切图,获得第一子图像集合,以及基于所述标注CAD图像进行切图,获得第二子图像集合;
将所述第一子图像集合和所述第二子图像集合作为训练样本数据,其中,所述训练样本数据用于对预设的神经网络模型进行训练得到构件识别模型。
可选地,所述基于所述原始CAD图像进行切图,获得第一子图像集合,以及基于所述标注CAD图像进行切图,获得第二子图像集合,包括:
对所述原始CAD图像进行多尺度缩放后,得到至少一个缩放后的原始CAD图像,对所述至少一个缩放后的原始CAD图像以及所述原始CAD图像进行切图,获得所述第一子图像集合;所述第一子图像集合中包括每个所述缩放后的原始CAD图像各自对应的切图集合,以及所述原始CAD图像对应的切图集合;
对所述标注CAD图像进行多尺度缩放后,得到至少一个缩放后的标注CAD图像,对所述至少一个缩放后的标注CAD图像进行切图,获得所述第二子图像集合;其中,所述第二子图像集合中包括每个所述缩放后的标注CAD图像各自对应的切图集合,以及所述表示CAD图像对应的切图集合;
其中,所述多尺度缩放的缩放比例大于0且小于1。
可选地,对所述原始CAD图像进行多尺度缩放,包括:
对所述原始CAD图像进行图像膨胀操作后,采用双线性差值算法对图像膨胀操作后的所述原始CAD图像进行多尺度缩放;
对所述标注CAD图像进行多尺度缩放,包括:
对所述标注CAD图像进行图像膨胀操作后,采用双线性差值算法对图像膨胀操作后的所述标注CAD图像进行多尺度缩放。
可选地,对所述至少一个缩放后的原始CAD图像以及所述原始CAD图像进行切图,获得所述第一子图像集合,包括:
按照指定滑动路线,采用第一预设尺寸的切图模板,对所述原始CAD图像进行滑动切图,获得第一切图集合;
分别对每个所述缩放后的原始CAD图像进行以下切图处理:按照指定滑动路线,采用第二预设尺寸的切图模板,对所述缩放后的原始CAD图像进行滑动切图,获得第二切图集合;
基于所述第一切图集合和各所述第二切图集合,获得所述第一子图像集合;
其中,所述指定滑动路线包括以下至少一种:
图像的左上顶点到右上顶点的连接线;
图像的左上顶点到左下顶点的连接线;
图像的右上顶点到右下顶点的连接线;
图像的左下顶点到右下顶点的连接线;
图像的左上顶点到右下顶点的连接线;
图像的右上顶点到左下顶点的连接线。
可选地,对所述至少一个缩放后的标注CAD图像进行切图,获得所述第二子图像集合,包括:
按照指定滑动路线,采用第三预设尺寸的切图模板,对所述标注CAD图像进行滑动切图,获得第三切图集合;
分别对每个所述缩放后的标注CAD图像进行以下切图处理:按照指定滑动路线,采用第四预设尺寸的切图模板,对所述缩放后的标注CAD图像进行滑动切图,获得第四切图集合;
基于所述第三切图集合和各所述第四切图集合,获得所述第二子图像集合;
其中,所述指定滑动路线包括以下至少一种:
图像的左上顶点到右上顶点的连接线;
图像的左上顶点到左下顶点的连接线;
图像的右上顶点到右下顶点的连接线;
图像的左下顶点到右下顶点的连接线;
图像的左上顶点到右下顶点的连接线;
图像的右上顶点到左下顶点的连接线。
可选地,基于所述第一切图集合和各所述第二切图集合,获得所述第一子图像集合,包括:
从所述第一切图集合和各所述第二切图集合中,获取各待识别构件对应的切图数量;
将切图数量少于阈值的待识别构件作为目标构件;
将所述第一切图集合和所述第二切图集合中包括所述目标构件的切图,作为第一目标切图;
以所述目标构件为中心,采用第五预设尺寸的切图模板,对所述第一目标切图进行切图,获得第五切图集合;
获取所述第五切图集合中各切图的信息熵,获取信息熵大于设定值的第二目标切图,采用第六预设尺寸的切图模板,对所述第二目标切图进行切图,获得第六切图集合,所述第六切图集合包括的各切图中所述目标构件的位置随机分布;
将所述第一切图集合、所述第二切图集合、所述第五切图集合和所述第六切图集合,整合得到所述第一子图像集合。
可选地,基于所述第三切图集合和各所述第四切图集合,获得所述第二子图像集合,包括:
从所述第三切图集合和各所述第四切图集合中,获取各待识别构件对应的切图数量;
将切图数量少于阈值的待识别构件作为目标构件;
将所述第三切图集合和所述第四切图集合中包括所述目标构件的切图,作为第三目标切图;
以所述目标构件为中心,采用第七预设尺寸的切图模板,对所述第三目标切图进行切图,获得第七切图集合;
获取所述第七切图集合中各切图的信息熵,获取信息熵大于设定值的第四目标切图,采用第八预设尺寸的切图模板,对所述第四目标切图进行切图,获得第八切图集合,所述第八切图集合包括的各切图中所述目标构件的位置随机分布;
将所述第三切图集合、所述第四切图集合、所述第七切图集合和所述第八切图集合,整合得到所述第二子图像集合。
第二方面,本申请实施例提供了一种构件识别方法,包括:
获取待识别CAD图像;
基于所述待识别CAD图像,获得待识别子图像集合;
将所述待识别子图像集合,输入到构件识别模型,获得所述构件识别模型输出的构件预测结果;其中,所述构件识别模型为训练样本数据对神经网络模型进行训练得到,所述训练样本数据采用第一方面所述的方法获得;
基于所述构件预测结果,识别所述待识别CAD图像中的构件。
可选地,基于所述待识别CAD图像,获得待识别子图像集合,包括:
对所述待识别CAD图像进行多尺度缩放后,得到至少一个缩放后的待识别CAD图像;
基于所述至少一个缩放后的待识别CAD图像以及所述待识别CAD图像,获得所述待识别子图像集合;
其中,所述多尺度缩放的缩放比例大于0且小于1。
可选地,基于所述至少一个缩放后的待识别CAD图像以及所述待识别CAD图像,得到所述待识别子图像集合,包括:
分别对每个所述缩放后的待识别CAD图像进行镜像对称,得到至少一个第一待识别子图像集合;一个所述第一待识别子图像集合中包括属于同一缩放尺度的所述缩放后的待识别图像及镜像对称后得到的图像;
分别对每个所述缩放后的待识别CAD图像以及所述待识别CAD图像进行切图,获得至少一个第一切图集合,以及所述待识别CAD图像对应的第二切图集合;一个所述第一切图集合中包括属于同一缩放尺度的待识别CAD图像的切图;
分别对每个所述第一切图集合和所述第二切图集合中的切图进行镜像对称后,对得到的切图进行缩放,获得至少一个第二待识别子图像集合;一个所述第二待识别子图像集合中包括属于同一缩放尺度的切图;
将所述待识别图像、每个所述第一待识别子图像集合和每个所述第二待识别子图像集合整合,得到所述待识别子图像集合。
可选地,将所述待识别子图像集合,输入到构件识别模型,获得所述构件识别模型输出的构件预测结果,包括:
对所述第二待识别子图像集合中每个切图进行以下过滤处理:计算所述切图的二维信息熵,在获得的熵值小于设定熵值时,从所述第二待识别子图像集合中删除所述切图;
分别将每个所述第一待识别子图像集合和所述第二待识别子图像集合输入到所述构件识别模型,获得所述第一待识别子图像集合和所述第二待识别子图像集合各自对应的构件预测结果。
可选地,基于所述构件预测结果,识别所述待识别CAD图像中的构件,包括:
获取每个所述第一待识别子图像集合对应的构件预测结果,作为第一构件预测结果,获取所述待识别CAD图像对应的构件预测结果,作为第二构件预测结果,合并所述第一构件预测结果和所述第二构件预测结果,得到大图预测结果;
获取每个所述第二待识别子图像集合对应的构件预测结果,作为第三构件预测结果,合并每个所述第三构件预测结果,得到小图预测结果;
合并所述大图预测结果和所述小图预测结果,作为所述待识别CAD图像中的构件的识别结果。
可选地,所述第三构件预测结果中包括识别到构件或部分构件的标记框;
合并每个所述第三构件预测结果,得到小图预测结果,包括:
分别对每个所述第三构件预测结果进行以下处理:将所述第三构件预测结果转换为与所述待识别CAD图像相同大小的二值图像,对所述二值图像进行0.5倍缩放后,对缩放后的所述标记框进行颜色填充;
对处理后的每个所述第三构建预测结果对应的二值图像进行连通域分析,得到合并后的标记框;
对合并后的标记框进行2倍缩放后,得到所述小图预测结果。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的方法,或者,实现第二方面所述的方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,通过将CAD图纸转换为原始CAD图像,在原始CAD图像中完整构件分段添加标注框得到标注CAD图像,相邻分段的标注框存在重叠区域,对标注CAD图像以及原始CAD图像分别切图,得到训练样本数据,从而使得采用该训练样本数据对预设的神经网络模型进行训练得到的构件识别模型,能够有效识别大构件,提高大构件的识别成功率,降低漏识别以及识别不全的概率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中获取样本数据的方法流程示意图;
图2为本申请实施例中整体标注和分段标注对比示意图;
图3为本申请实施例中膨胀操作后缩放的效果示意图;
图4为本申请实施例中对大图进行多种方式裁切的示意图;
图5为本申请实施例中yolov5x6模型的结构示意图;
图6为本申请实施例中构件识别方法流程示意图;
图7为本申请实施例中分段预测以及合并的过程示意图;
图8为本申请实施例中的多尺度预测过程示意图;
图9为本申请实施例中获取样本数据的装置结构示意图;
图10为本申请实施例中构件识别装置结构示意图;
图11为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中,为了解决CAD图纸中的大构件漏识别以及识别不全的问题,提出了一种获取样本数据的方法,通过利用该方法获得训练样本数据对预设的神经网络模型进行训练,得到构件识别模型,提高采用该构件识别模型识别大构件的成功率。
如图1所示,本申请实施例中获取样本数据的方法主要包括以下步骤:
步骤101,获取原始CAD图像以及标注CAD图像,其中,所述标注CAD图像中包括一个完整构件各分段的标注框,相邻分段的标注框存在重叠区域。
其中,原始CAD图像为对CAD图纸进行转换得到。对原始CAD图像具体采用的格式不做限制。
其中,CAD图纸中包括至少一个构件,该至少一个构件可以是长宽比大于阈值的大构件,也可以是长宽比不大于阈值的普通构件。
本申请实施例中,考虑到大构件本身很长,构件识别模型完整检测到大构件比较困难,为此对原始CAD图像进行特殊处理,即对原始CAD图像中的大构件采用分段标注的方式添加标注框,保证每个分段的标注框质检存在一定范围的重叠区域。如图2中左侧图示完整标注大构件后的效果示意图,右侧图示为采用分段标注的方式添加标注框后的效果示意图。
步骤102,基于所述原始CAD图像进行切图,获得第一子图像集合,以及基于所述标注CAD图像进行切图,获得第二子图像集合;
示例性实施例中,所述基于所述原始CAD图像进行切图,获得第一子图像集合,以及基于所述标注CAD图像进行切图,获得第二子图像集合,包括:
对所述原始CAD图像进行多尺度缩放后,得到至少一个缩放后的原始CAD图像,对所述至少一个缩放后的原始CAD图像以及所述原始CAD图像进行切图,获得所述第一子图像集合;所述第一子图像集合中包括每个所述缩放后的原始CAD图像各自对应的切图集合,以及所述原始CAD图像对应的切图集合;
对所述标注CAD图像进行多尺度缩放后,得到至少一个缩放后的标注CAD图像,对所述至少一个缩放后的标注CAD图像进行切图,获得所述第二子图像集合;其中,所述第二子图像集合中包括每个缩放后的标注CAD图像各自对应的切图集合,以及所述表示CAD图像对应的切图集合;
其中,所述多尺度缩放的缩放比例大于0且小于1。
本申请实施例中,考虑到大构件本身很长,构件识别模型完整检测到大构件比较困难,采用多尺度缩放对原始CAD图像以及标注CAD图像进行缩放,并对缩放后的图像以及原始CAD图像和标注CAD图像进行切图,以便于构件识别模型识别到多尺度缩放后的图像中的完整构件,以及对切图后的图像中的分段的构件进行识别,提高识别成功率。
示例性实施例中,对所述原始CAD图像进行多尺度缩放,包括:对所述原始CAD图像进行图像膨胀操作后,采用双线性差值算法对图像膨胀操作后的所述原始CAD图像进行多尺度缩放;
对所述标注CAD图像进行多尺度缩放,包括:对所述标注CAD图像进行图像膨胀操作后,采用双线性差值算法对图像膨胀操作后的所述标注CAD图像进行多尺度缩放。
对原始CAD图像和标注CAD图像进行多尺度缩放,缩放比例在0~1之间取值,考虑到CAD图像本身包括大量线条,在缩放时需要用双线性差值算法来缩放,同时为了最大限度防止缩放后线条图像失真,在缩放前对图像进行图像膨胀操作,例如,使用5*5大小的结构元素对图像进行膨胀操作。如图3中左侧所示为原图的局部图像,中间所示为对该局部图像进行1次膨胀操作后的效果,右侧所示为对膨胀操作后的该局部图像进行0.5倍缩放后的效果。
示例性实施例中,对所述至少一个缩放后的原始CAD图像以及所述原始CAD图像进行切图,获得所述第一子图像集合,包括:
按照指定滑动路线,采用第一预设尺寸的切图模板,对所述原始CAD图像进行滑动切图,获得第一切图集合;分别对每个所述缩放后的原始CAD图像进行以下切图处理:按照指定滑动路线,采用第二预设尺寸的切图模板,对所述缩放后的原始CAD图像进行滑动切图,获得第二切图集合;基于所述第一切图集合和各所述第二切图集合,获得所述第一子图像集合;
其中,所述指定滑动路线包括以下至少一种:
图像的左上顶点到右上顶点的连接线;
图像的左上顶点到左下顶点的连接线;
图像的右上顶点到右下顶点的连接线;
图像的左下顶点到右下顶点的连接线;
图像的左上顶点到右下顶点的连接线;
图像的右上顶点到左下顶点的连接线。
示例性实施例中,对所述至少一个缩放后的标注CAD图像进行切图,获得所述第二子图像集合,包括:
按照指定滑动路线,采用第三预设尺寸的切图模板,对所述标注CAD图像进行滑动切图,获得第三切图集合;分别对每个所述缩放后的标注CAD图像进行以下切图处理:按照指定滑动路线,采用第四预设尺寸的切图模板,对所述缩放后的标注CAD图像进行滑动切图,获得第四切图集合;基于所述第三切图集合和各所述第四切图集合,获得所述第二子图像集合;
其中,所述指定滑动路线包括以下至少一种:
图像的左上顶点到右上顶点的连接线;
图像的左上顶点到左下顶点的连接线;
图像的右上顶点到右下顶点的连接线;
图像的左下顶点到右下顶点的连接线;
图像的左上顶点到右下顶点的连接线;
图像的右上顶点到左下顶点的连接线。
本申请实施例中,考虑到工程图纸光栅化图像后往往会达到上万分辨率,不便于直接使用,采用对图像进行切图的方式,将大图切分成小图,对小图中的构件进行识别后再合并得到大图识别结果。这里,沿图像左上顶点、左下顶点、右上顶点、右下顶点组成的六个连线进行滑动切图,切图大小假设为1792像素*1792像素,将切分得到的小图作为训练样本数据的一部分。
示例性实施例中,基于所述第一切图集合和各所述第二切图集合,获得所述第一子图像集合,包括:
从所述第一切图集合和各所述第二切图集合中,获取各待识别构件对应的切图数量;将切图数量少于阈值的待识别构件作为目标构件;将所述第一切图集合和所述第二切图集合中包括所述目标构件的切图,作为第一目标切图;以所述目标构件为中心,采用第五预设尺寸的切图模板,对所述第一目标切图进行切图,获得第五切图集合;获取所述第五切图集合中各切图的信息熵,获取信息熵大于设定值的第二目标切图,采用第六预设尺寸的切图模板,对所述第二目标切图进行切图,获得第六切图集合,所述第六切图集合包括的各切图中所述目标构件的位置随机分布;将所述第一切图集合、所述第二切图集合、所述第五切图集合和所述第六切图集合,整合得到所述第一子图像集合。
示例性实施例中,基于所述第三切图集合和各所述第四切图集合,获得所述第二子图像集合,包括:
从所述第三切图集合和各所述第四切图集合中,获取各待识别构件对应的切图数量;将切图数量少于阈值的待识别构件作为目标构件;
将所述第三切图集合和所述第四切图集合中包括所述目标构件的切图,作为第三目标切图;以所述目标构件为中心,采用第七预设尺寸的切图模板,对所述第三目标切图进行切图,获得第七切图集合;获取所述第七切图集合中各切图的信息熵,获取信息熵大于设定值的第四目标切图,采用第八预设尺寸的切图模板,对所述第四目标切图进行切图,获得第八切图集合,所述第八切图集合包括的各切图中所述目标构件的位置随机分布;将所述第三切图集合、所述第四切图集合、所述第七切图集合和所述第八切图集合,整合得到所述第二子图像集合。
为了避免待识别构件对应的切图数量不平衡,对切图数量较少的目标构件采用中心裁切法再次进行裁切,中心裁切法以目标构件为中心,裁切如1792像素*1792像素大小的切图,同时为了最大限度弥补此类切图的图像信息,计算切图的信息熵,如果信息熵大于设定值(如0.3),则进行多次中心裁切,此时目标构件在裁切后的切图中位置随机。如图4所示为对大图进行多种方式裁切(多起点裁切+中心裁切+信息熵过滤)得到的切图的示意。
步骤103,将所述第一子图像集合和所述第二子图像集合作为训练样本数据,其中,所述训练样本数据用于对预设的神经网络模型进行训练得到构件识别模型。
其中,考虑到显存和速度,本申请实施例中预设的神经网络模型采用yolov5x6模型作为基本模型,yolov5x6模型的结构具体如图5所示。yolov5x6模型包括输入端(Input)、Backbone、Neck(PANet)和输出端(Output)。其中,为了识别到大构件,本申请实施例中在Backbone的BottleneckCSP部分中增加Bottleneck结构的数量,进一步增加网络深度,也就是说,Backbone中包括不少于设定数量的Bottleneck结构。由于Bottleneck结构为一种残差结构,加深结构模型不会出现梯度爆炸问题。并且,在训练时采用长尾目标检测损失(loss)缓解数据不平衡问题。并且,为了适应大小变化剧烈的构件,采用多尺度的样本数据训练模型,并且对训练样本数据进行在线数据增强,包括但不限于对训练样本数据进行HSV色彩变换、循环镜像、马赛克(mosaic)和混合(mixup)增强等。
基于同一构思,本申请实施例中还提出了一种构件识别模型的训练方法,该方法主要包括:获取训练样本数据,该训练样本数据采用上述获取样本数据的方法获得,此处不再赘述;采用该训练样本数据对预设的神经网络模型进行训练,得到构件识别模型。采用的具体的神经网络模型可参见获取样本数据的方法实施例中的相关描述,此处不再赘述。
基于同一技术构思,本申请实施例中提供了一种构件识别方法,该方法采用构件识别模型对待识别CAD图像中的构件进行识别,该构件识别模型采用以上实施例获得训练样本数据进行训练得到。
如图6所示,本申请实施例中,构件识别方法主要包括以下步骤:
步骤601,获取待识别CAD图像。
其中,待识别CAD图像为对待识别构件的CAD图纸进行转换得到。对CAD图像具体采用的格式不做限制。
其中,CAD图纸中包括至少一个构件,该至少一个构件可以是长宽比大于阈值的大构件,也可以是长宽比不大于阈值的普通构件。
步骤602,基于所述待识别CAD图像,获得待识别子图像集合。
示例性实施例中,基于所述待识别CAD图像,获得待识别子图像集合,包括:对所述待识别CAD图像进行多尺度缩放后,得到至少一个缩放后的待识别CAD图像;基于所述至少一个缩放后的待识别CAD图像以及所述待识别CAD图像,获得所述待识别子图像集合;其中,所述多尺度缩放的缩放比例大于0且小于1。
示例性实施例中,基于所述至少一个缩放后的待识别CAD图像以及所述待识别CAD图像,得到所述待识别子图像集合,包括:
分别对每个所述缩放后的待识别CAD图像进行镜像对称,得到至少一个第一待识别子图像集合;一个所述第一待识别子图像集合中包括属于同一缩放尺度的所述缩放后的待识别图像及镜像对称后得到的图像;分别对每个所述缩放后的待识别CAD图像以及所述待识别CAD图像进行切图,获得至少一个第一切图集合,以及所述待识别CAD图像对应的第二切图集合;一个所述第一切图集合中包括属于同一缩放尺度的待识别CAD图像的切图;分别对每个所述第一切图集合和所述第二切图集合中的切图进行镜像对称后,对得到的切图进行缩放,获得至少一个第二待识别子图像集合;一个所述第二待识别子图像集合中包括属于同一缩放尺度的切图;将所述待识别图像、每个所述第一待识别子图像集合和每个所述第二待识别子图像集合整合,得到所述待识别子图像集合。
例如,分别对待识别CAD图像进行三个尺度的缩放1.0、0.76和0.52,1.0的尺度即为待识别CAD图像本身。对小于1.0的尺度进行左右和上下镜像对称,将得到的图像与待识别CAD图像共同作为大图层面的第一待识别子图像集合。对待识别CAD图像以及每个缩放后的待识别CAD图像等大图进行切图后,对得到的切图进行缩放,假设进行三个尺度的缩放1.0、0.8和0.6,对0.8和0.6两个尺度缩放后进行左右和上下镜像对称,将得到的图像与1.0缩放尺度的切图共同作为小图层面的第二待识别子图像集合。通过镜像对称丰富待识别子图像集合中的图像,能够提高构件模型的识别率。
步骤603,将所述待识别子图像集合,输入到构件识别模型,获得所述构件识别模型输出的构件预测结果;其中,所述构件识别模型为训练样本数据对神经网络模型进行训练得到,所述训练样本数据采用以上实施例提供的获取样本数据的方法获得。
示例性实施例中,将所述待识别子图像集合,输入到构件识别模型,获得所述构件识别模型输出的构件预测结果,包括:
对所述第二待识别子图像集合中每个切图进行以下过滤处理:计算所述切图的二维信息熵,在获得的熵值小于设定熵值时,从所述第二待识别子图像集合中删除所述切图;分别将每个所述第一待识别子图像集合和所述第二待识别子图像集合输入到所述构件识别模型,获得所述第一待识别子图像集合和所述第二待识别子图像集合各自对应的构件预测结果。
本申请实施例中,考虑到一个大图通过会裁切得到上百幅1792像素*1792像素的小图,如果每幅小图都进行多次预测会大大增加构件识别模型的耗时,而有些小图中包括的线条相对较少或者没有线条,包括的信息不多,因此为了提高构件识别模型的预测速度,在对第二待识别子图像集合中的切图(即小图)进行预测之前,计算该图的二维信息熵,对熵值小于设定阈值(如0.05)的图不进行多尺度预测,以降低构件识别模型的预测耗时,通过实验测量通过该方式能够将构件识别模型的预测耗时降低30%左右。
步骤604,基于所述构件预测结果,识别所述待识别CAD图像中的构件。
示例性实施例中,基于所述构件预测结果,识别所述待识别CAD图像中的构件,包括:获取每个所述第一待识别子图像集合对应的构件预测结果,作为第一构件预测结果,获取所述待识别CAD图像对应的构件预测结果,作为第二构件预测结果,合并所述第一构件预测结果和所述第二构件预测结果,得到大图预测结果;获取每个所述第二待识别子图像集合对应的构件预测结果,作为第三构件预测结果,合并每个所述第三构件预测结果,得到小图预测结果;合并所述大图预测结果和所述小图预测结果,作为所述待识别CAD图像中的构件的识别结果。
示例性实施例中,所述第三构件预测结果中包括识别到构件或部分构件的标记框;合并每个所述第三构件预测结果,得到小图预测结果,包括:分别对每个所述第三构件预测结果进行以下处理:将所述第三构件预测结果转换为与所述待识别CAD图像相同大小的二值图像,对所述二值图像进行0.5倍缩放后,对缩放后的所述标记框进行颜色填充;对处理后的每个所述第三构建预测结果对应的二值图像进行连通域分析,得到合并后的标记框;对合并后的标记框进行2倍缩放后,得到所述小图预测结果。
需要说明的是,该实施例中为了进一步提高超大构件识别率,采用化整为零的思路,每次预测构件的一部分,然后再合并构件的每部分,得到超大构件的识别结果。如图7所示为分段预测以及合并的过程示意图,主要包括以下步骤:
分段检测步骤:构件识别模型对大构件分段检测,保留检测到的各分段的标记框(表示为bouding Box,简称bbox,具体可以是包围盒或外接矩形),分段的bbox越多,得到的检测结果越准确,然而会增加计算量,为了平衡准确度和计算量,可以将分段的bbox的数量控制在设定数量范围内,即不小于第一预设数量,且不大于第二预设数量,第一预设数量小于第二预设数量。
bbox转换二值图步骤:为了快速准确将分段检测得到的大量的分段bbox合并成多个大的bbox,将多个分段bbox所属的子图像转换为和原图(即待识别CAD图像)等比例的二值图像,对该二值图像进行0.5倍缩放并对bbox内部进行填充。
计算合并后的bbox步骤:对二值图像进行连通域分析,合并连通区域,得到合并后的bbox,并对合并后的bbox的坐标进行上采样以及2倍缩放后得到最终的识别结果。
以上合并bbox的方法相对直接计算bbox所属子图像的IOU(交并比)的方式,能够降低耗时90%,将分段检测和bbox合并后得到的结果进行nms(非极大值抑制)操作后,得到最终的识别结果。
结合图8所示对本申请实施例中的多尺度预测过程进行举例说明,在大图层面多尺度预测过程中,对待识别CAD图像进行三个尺度的缩放,每个尺度对应得到一个预测结果,将这三个预测结果进行nms合并后,得到大图层面的预测结果;在小图层面多尺度预测过程中,对大图进行切图后,对各切图进行三个尺度的缩放,每个尺度对应得到一个切图的预测结果,对各切图的预测结果进行nms合并,得到小图层面的预测结果;最后将大图层面的预测结果和小图层面的预测而结果进行nms合并,得到最终的构件识别结果。
本申请实施例中,通过将CAD图纸转换为原始CAD图像,在原始CAD图像中完整构件分段添加标注框得到标注CAD图像,相邻分段的标注框存在重叠区域,对标注CAD图像以及原始CAD图像分别切图,得到训练样本数据,从而使得采用该训练样本数据对预设的神经网络模型进行训练得到的构件识别模型,能够有效识别大构件,提高大构件的识别成功率,降低漏识别以及识别不全的概率。
在基于待识别CAD图像,获得待识别子图像集合之后,通过采用以上方法提供的训练样本数据训练得到的构件识别模型,对该待识别子图像集合进行识别,得到构件预测结果,通过该构件预测结果识别到待识别CAD图像中的构件,提高了构件识别的准确性。
并且,通过对待识别CAD图像进行处理,得到大图层面的第一待识别子图像集合,和小图层面的第二待识别子图像集合,通过对大图层面的第一待识别子图像集合进行整体识别,得到整体检测结果,通过对小图层面的第二待识别子图像集合进行识别,得到局部检测结果,对局部检测结果进行合并后得到整合后的整体检测结果,结合整体检测结果和该整合后的整体检测结果,获得最终识别到的构件,使得能够兼顾构件整体和局部,进一步提高构件识别准确率。
基于同一构思,本申请实施例中提供了一种获取样本数据的装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图9所示,该装置主要包括:
获取模块801,用于获取原始CAD图像以及标注CAD图像,其中,所述标注CAD图像中包括一个完整构件各分段的标注框,相邻分段的标注框存在重叠区域;
切图模块802,用于基于所述原始CAD图像进行切图,获得第一子图像集合,以及基于所述标注CAD图像进行切图,获得第二子图像集合;
整合模块803,用于将所述第一子图像集合和所述第二子图像集合作为训练样本数据,其中,所述训练样本数据用于对预设的神经网络模型进行训练得到构件识别模型。
基于同一构思,本申请实施例中提供了一种构件识别装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图10所示,该装置主要包括:
获取模块901,获取待识别CAD图像;
处理模块902,用于基于所述待识别CAD图像,获得待识别子图像集合;
预测模块903,用于将所述待识别子图像集合,输入到构件识别模型,获得所述构件识别模型输出的构件预测结果;其中,所述构件识别模型为训练样本数据对神经网络模型进行训练得到,所述训练样本数据采用以上实施例所述的方法获得;
识别模块904,用于基于所述构件预测结果,识别所述待识别CAD图像中的构件。
基于同一构思,本申请实施例中还提供了一种电子设备,如图11所示,该电子设备主要包括:处理器1001、存储器1002和通信总线1003,其中,处理器1001和存储器1002通过通信总线1003完成相互间的通信。其中,存储器1002中存储有可被至处理器1001执行的程序,处理器1001执行存储器1002中存储的程序,实现以上方法实施例所描述的各步骤。
上述电子设备中提到的通信总线1003可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线1003可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1002可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器1001的存储装置。
上述的处理器1001可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
- 基于大数据分析的非法用户识别方法及装置、电子设备
- 生物统计识别方法,用于获取生物统计数据以实施此生物统计识别方法的便携式电子设备和电子设备
- 基于数据增强的训练样本获取方法、装置和电子设备