一种基于机器视觉的户型图元素自动提取方法与系统与流程

文档序号:15851787发布日期:2018-11-07 10:07阅读:555来源:国知局
一种基于机器视觉的户型图元素自动提取方法与系统与流程

本发明涉及机器视觉与智能家装设计领域,特别涉及一种基于机器视觉的户型图元素自动提取方法与系统。

背景技术

在智能家装设计领域,随着互联网技术与人工智能技术的飞速发展,各种线上体验需求激增,例如指定双人床、衣柜、床头柜、梳妆台、书桌、餐桌等户型图元素与户型,利用人工智能技术对这些户型元素进行专业的自动布局,快速呈现各种室内装修效果图;再比如利用三维重建技术将2d户型图转化为3d户型图,让体验者在三维虚拟室内模拟各种家装设计效果。不管是在自动布局方面,还是三维重建方面,户型图元素自动提取都具有重要的现实意义。

现有的户型图元素自动提取主要分为两种方法:一种是根据户型矢量图中保存的线条等图元信息,利用组合约束规则进行元素自动提取,该方法可以精确提取部分户型元素,但对缺乏规则的户型元素该方法将失效;另一种是使用机器视觉算法直接在户型图图像中进行目标元素的提取,该方法更具通用性,缺点是该方法识别的准确度不够,特别是对于户型元素较多的情况,容易漏检。

专利cn105279787a《基于拍照的户型图识别生成三维房型的方法》,首先对户型图进行透视变化矫正;其次利用二值化方法得到墙体区域,并根据墙体之间的信息进行门窗识别;最后进行三维重建。该方法必须确保墙体与背景不同色,且只提取了户型图中的墙体、门窗信息,未考虑其他户型元素的提取。专利cn106528904a《住宅户型图建筑结构智能识别及功能区自动规划设计方法》,首先从户型矢量图中获取墙体、门窗信息,且墙体与门窗构成封闭居室;其次,获取各个封闭居室的用途定义与墙体、门窗具体信息;最后根据功能区结构特征以此在封闭居室内进行户型元素的识别与功能区的划分。该方法针对的是包括墙体与门窗的矢量图,而且需要用户指定各封闭区域的用途定义,不具备自动户型元素提取的功能,用户体验较差。专利cn106844614a《一种户型图功能区域快速识别系统》,首先对户型图图像进行清晰度预处理;其次利用fasterrcnn深度学习目标检测框架进行各功能区域的目标检测;最后将检测结果发送到户型图云服务系统。该方法利用深度学习进行户型元素目标检测,以数据驱动,但该方法对整张户型图都使用一个通用检测模型,容易产生漏检现象,而且对于墙体这样不规则的户型元素,深度学习检测效果不佳。



技术实现要素:

本发明提供一种基于机器视觉的户型图元素自动提取方法,能够高效的、准确的提取户型图中的标尺信息、墙体区域及其他户型元素;一种基于机器视觉的户型图元素自动提取系统可以作为子模块嵌入到智能家装平面图设计系统,辅助家装设计,提高工作效率。

本发明的第一个方面,提供了:

一种基于机器视觉的户型图元素自动提取方法,包括如下步骤:

第1步,对户型图进行二值化处理,得到二值图像;

第2步,从二值化的图像中识别出尺寸数字字符,以及字符所在区域和区域的位置,并且识别图像中的直线;

第3步,将识别出的尺寸数字字符与其相对应的比例尺线段直线进行匹配;

第4步,根据设定的不同的墙体拐角的形状,在二值图像中识别出墙体拐角,并从墙体拐角作为起点进行搜索,识别出墙体所在的区域;

第5步,将墙体所在的区域构成封闭区域,对封闭区域的功能进行识别,并对封闭区域内的其它元素的功能进行识别。

在一个实施例中,所述的第1步中,在进行二值化处理之前,对图像进行预处理操作,去除黑色干扰噪点。

在一个实施例中,所述的第2步中,通过googletesseractocr引擎识别出尺寸数字字符。

在一个实施例中,所述的第2步中,字符所在区域需要满足区域的宽度小于长度和/或区域的大小在设定阈值内。

在一个实施例中,所述的第2步中,识别图像中的直线是采用opencvlsd直线段检测算法。

在一个实施例中,所述的第2步中,对识别到的直线进行过滤操作,去除掉符合以下任意条件的直线:直线段长度小于设定像素阈值、直线的方向为非水平方向或者非竖直方向。

在一个实施例中,所述的第3步中,尺寸数字字符与其相对应的直线的匹配规则是以下条件:数字字符区域中心点必需在对应比例尺线段的设定位置;尺寸数字字符区域中心点与对应比例尺线段中点的连线几乎是垂直的;尺寸数字字符区域中心点到对应比例尺中点的距离应在设定的阈值范围之内。

在一个实施例中,所述的第4步中,识别出墙体拐角时还对墙体厚度进行判定,墙体厚度;其中,是实际墙体宽度,是比例尺系数;是比例尺线段直线的像素长度与其相对应的尺寸数的比值。

在一个实施例中,是由第3步中所获得的全部的比例尺线段直线的像素长度与其相对应的尺寸数的比值经过一维密度聚类后求平均值的方法所得到的。

在一个实施例中,所述的第4步中,在二值图像中识别出墙体拐角步骤之前,需要对二值图像中的双线进行合并处理,并删除掉比例尺线段直线。

在一个实施例中,所述的第4步中,识别出墙体所在的区域的终止搜索条件是满足以下条件:①当前矩形区域的两边不存在平行的直线段;②当前矩形区域与其他任意的、未进行搜索处理的拐角矩形区域存在交集;③当前矩形区域已被标注为候选墙体区域。

在一个实施例中,所述的第4步中,识别出墙体所在的区域的步骤之后,还包括墙体区域后处理的步骤,包括:①合并同一方向上间隔小于阈值的墙体,形成连续的墙体区域;②去除孤立的墙体区域。

在一个实施例中,对封闭区域的功能和对封闭区域内的其它元素的功能进行识别是采用神经网络方法。

本发明的第二个方面,提供了:

一种基于机器视觉的户型图元素自动提取系统,包括:

图像预处理模块,用于对户型图进行二值化处理,得到二值图像;

字符和直线识别模块,用于从二值化的图像中识别出尺寸数字字符,以及字符所在区域和区域的位置,并且识别图像中的直线;

匹配模块,用于将识别出的尺寸数字字符与其相对应的比例尺线段直线进行匹配;

墙体区域识别模块,用于根据设定的不同的墙体拐角的形状,在二值图像中识别出墙体拐角,并从墙体拐角作为起点进行搜索,识别出墙体所在的区域;

功能识别模块,用于将墙体所在的区域构成封闭区域,对封闭区域的功能进行识别,并对封闭区域内的其它元素的功能进行识别。

本发明的第三个方面,提供了:

一种计算机可读取介质,其记载了可运行上述基于机器视觉的户型图元素自动提取方法的计算机程序。

附图说明

图1是本发明所述一种基于机器视觉的户型图元素自动提取系统流程图

图2是本发明标尺识别流程图

图3是本发明墙体识别流程图

图4是本发明所述实施例中九种墙体拐角区域及其墙体搜索方向示意图

具体实施方式

本发明提供一种基于机器视觉的户型图元素自动提取方法,包括标尺识别、墙体识别、区域分类与区域内元素检测四个模块。标尺识别利用数字字符ocr与直线段进行规则匹配,计算得到平均比例尺系数;墙体识别模块首先提取九种墙体拐角矩形区域,其次根据墙角矩形区域进行方向墙体搜索,最后进行后处理,得到所有墙体区域;区域分类利用卷积神经网络对墙体组成的封闭区域进行分类识别,得到区域类别标签;区域内元素检测模块利用深度学习检测框架对区域内进行目标元素定位与识别,获取其他户型元素的位置与标签。本发明能够高效的、准确的提取户型图中的标尺信息、墙体区域及其他户型元素,可以辅助户型元素自动布局功能,减少人工干预工作量。

更具体地说:

标尺识别:根据户型图上的标尺直线段及相应的数字字符提取标尺信息,包括以下三个步骤:

模块一、步骤1:数字字符提取,首先利用闭形态学操作去除黑色干扰噪点,并用局部二值化操作提取户型图的二值图像;其次对二值图像调用googletesseractocr引擎进行数字字符识别,得到数字字符区域及识别结果;最后对区域及结果进行过滤,过滤的条件为:①区域的宽度小于长度,目的是只提取水平方向上的数字字符,②识别结果的区域必须在设定的范围,其目的是控制只得到特定大小字符区域,可以排除识别错误的数字字符,例如可以设定为长度小于2或者大于5像素,目的是排除,假定最终得到的数字字符区域为,其中为区域的个数。

步骤2:直线段提取,首先调用opencvlsd直线段检测算法检测户型图中的所有直线段;其次对直线段进行过滤,过滤的条件为:①直线段长度小于像素,目的是去除较短的直线段,本实施例中选择=20像素,即直线段长度小于20个像素的将被过滤掉;②非水平方向或者非竖直方向上的直线段。假定最终得到的直线段表示为,其中为直线段的首末端点坐标,为直线段的个数,在本实施例中若,则将该直线段过滤掉。

步骤3:数字字符区域与直线段匹配,匹配的规则是:①数字字符区域中心点必需在对应比例尺线段的设定位置(由于在对户型图进行尺寸标注时,通常是将数字字符放在直线的上方位置或者左边位置处,因此,可以这里的设定位置可以根据实际情况进行定义,例如是比例尺线段的上方、左方等,没有特别限制);②数字字符区域中心点与对应比例尺线段中点的连线几乎是垂直的(由于制图时,尺寸数字的标注通常是位于直线的中央的,因此也可以用于对数字和直线相对位置的判定);③数字字符区域中心点到对应比例尺中点的距离应在一定的范围之内。设数字字符区域中心点为,对应比例尺中点为,则直线段的角度即为

由于只考虑水平方向上的比例尺,若,则不匹配;③数字字符区域中心点到对应比例尺中点的距离应在一定的范围之内,实施例中设距离阈值像素,即超出此阈值则不匹配,在所有匹配中选择距离最短的作为当前字符区域的最优匹配直线段。

根据户型图上的标尺直线段及相应的数字字符提取标尺信息,获得平均比例尺系数。比例尺系数是实际尺寸数与比例尺线段的像素长度的比值,例如可以理解为实际的每100cm的长度在图像上是40个像素这样的概念。假定最终得到的数字字符区域与直线段的匹配集合为,对应的比例尺系数为,对进行一维密度聚类,选择聚类簇最大的比例尺系数的平均值作为最终的比例尺系数。由于在直线识别的过程中,可能存在直线段识别断裂或者连接情况,因此有可能会导致计算比例尺系数时出现误差,通过上述方法进行聚类后计算平均值,可以减小识别误差,更有利于后续的对墙体厚度的识别的稳定性。

模块二、墙体识别:实际中的墙体宽度有240mm或者120mm,利用标尺识别得到的,将实际墙体宽度转换为户型图中的像素宽度,转换公式为

利用直线段提取墙体区域,通过上述的换算,就可以将图像中特定宽度的区域再结合其形状识别为墙体拐角,本步骤中通过计算可以排除掉宽度过大或者过小的区域,如图3所示,具体包括:

步骤1:直线段预处理,其目的是尽可能多的排除非墙体直线段的干扰。首先进行双线合并,由于户型图中直线段存在若干个像素的宽度,在直线提取过程中会出现双线现象,因此需要进行双线合并处理;其次去除比例尺对应的直线段,排除不必要的干扰。

步骤2:墙体拐角矩形区域提取,利用预处理后的直线段,按图4所示,在最大墙体宽度范围内进行9种墙体拐角矩形区域提取,最大墙体宽度可由计算得到,假定获得的拐角矩形区域为

其中为对应的拐角类型,为拐角矩形区域总数。

步骤3:墙体区域搜索,对墙体拐角矩形区域,根据其拐角类型对应的所搜方向进行墙体搜索,搜索步长设置为当前方向上的拐角矩形长度,其途径的矩形区域均标注为候选墙体区域,搜索的终止条件为:①当前矩形区域的两边不存在平行的直线段,即该区域为非墙体;②当前矩形区域与其他任意的、未处理的拐角矩形区域存在交集;③当前矩形区域已被标注为候选墙体区域。

步骤4:墙体区域后处理,分两步完成:①合并同一方向上间隔较小的墙体,形成连续的墙体区域;②去除孤立的墙体区域,即墙体区域两端不存在任何墙体。设最终得到的墙体区域为

其中为墙体区域总数。

模块三、区域分类:区域分类主要是对墙体构成的封闭区域进行判别,实施例中待识别的类型包括主卧、次卧、书房、卫生间、阳台、厨房、客厅、餐厅八个类别。首先根据墙体进行封闭区域筛选,得到封闭区域

其中为封闭区域的个数;其次采用六层卷积神经网络进行分类模型离线训练,实施例中包括四个卷积层与两个全连接层,输入的图像尺寸为64×64,存储得到的离线模型,利用离线模型对所有封闭区域进行分类识别,获取相应的区域标签,带标签的区域表示为

由于各个封闭区域的功能之间,具有一定的空间联系,也会具有一定特定的空间形状,在一些户型图中也会对房间的功能用文字进行标注,因此,可以通过一些已有的户型图数据库采用人工智能的方式进行识别,例如可以采用一部分数据样本进行模型的训练(可以利用空间形状、文字标识、空间相对位置等作为变量),再通过一部分样本对训练好的模型进行识别效果的验证。以上图像功能识别是基于常规的人工智能计算方法(例如神经网络、支持向量机等),在此没有特别的限定。

模块四、区域内元素检测:这部分对封闭区域中的所有户型元素进行定位与识别,采用深度学习目标检测框架进行户型元素检测,实施例中选择fasterrcnn深度学习目标检测框架,特征提取网络采用区域分类中的六层卷积神经网络结构,并以相应的模型进行微调,在次基础上利用事先标注的户型数据进行离线模型训练,得到区域元素检测模型,以此模型对进行目标检测,得到每个区域中的户型元素检测结果。在户型图中,也有一些其它的元素,例如家具、洁具等,它们都是具有类似的图形形状,因此也可以采用与模块三中类似的神经网络算法来进行识别,本发明中没有特别的限定。

基于上述的方法,本发明还提供一种基于机器视觉的户型图元素自动提取系统,包括系统初始化、户型矢量图输入、矢量图转换位图、户型元素自动提取、用户矫正与元素json文件输出,可以作为子模块嵌入到智能家装平面图设计系统,辅助家装设计,提高工作效率。

整体系统如下:

系统初始化:加载离线训练的区域分类模型与户型元素检测模型文件,分配必须的变量与内存空间。

户型矢量图输入:从磁盘加载户型矢量图,检查户型矢量图的有效性,若是无效的户型图则直接返回。

矢量图转换位图:将户型矢量图转换成位图,便于户型元素提取使用。

户型元素自动提取:利用基于机器视觉的自动户型元素提取方法,提取户型图中的元素。

用户矫正:提供人机交互式功能,利用交互式功能可以对错检、漏检的户型图元素进行校正。

元素json文件输出:将最终获取的户型图元素形成<图,类别>标签对,保存成json文件,存入磁盘,为后续自动布局、三维重建等提供辅助依据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1