一种基于BIM与计算机视觉的铺砖进度信息自动收集方法与流程

文档序号:17744644发布日期:2019-05-24 20:33阅读:303来源:国知局
一种基于BIM与计算机视觉的铺砖进度信息自动收集方法与流程

本发明涉及bim、计算机视觉和机器学习技术领域,具体涉及一种基于bim与计算机视觉技术的室内铺砖进度信息自动收集及可视化方法。



背景技术:

进度控制一直是建设工程项目管理的重要目标之一。卓有成效的进度控制很大程度上依赖于管理者及时、正确的决策,而准确、及时且直观的施工现场进度信息则是管理者决策成功的关键因素。大部分建设项目仍采用传统的人工检查的方式了解施工现场的实际进度,这种方式不仅浪费人力、耗费时间,且过于依赖工人经验,易出错,信息反馈不及时,进度情况也只是以表格和文字的形式,不利于管理者的决策。

近几年,廉价和高分辨率的手机、数码相机和其他图像拍摄设备的普及使得高清晰度图像的获取变得极为简单。图像中像素的r、g、b三个颜色通道的数值及各像素之间的色彩关系存储了大量的信息,逐渐成熟的计算机视觉算法不仅能够读取、改变及重新保存这些信息,更能借助如今大热的人工智能与机器学习算法对这些信息进行分析、学习和识别。也即是说,计算机视觉技术能够模仿甚至代替人,对图像中的场景作为判断,再考虑到低成本的内存以及不断增加的带宽容量,利用图像获取设备、计算机视觉技术和网络传输的施工现场信息自动化收集方式成为了可能。

bim(建筑信息模型,buildinginformationmodeling)是设施物理和功能特性的数字表达,是一个共享的知识资源。它起源于上世纪70年代的美国,旨在提供一个服务于建设项目全生命周期的信息模型,该模型不仅具有建筑物的功能特性、几何信息及构件的几何、材质、功能属性,同时还集合了项目的成本、进度和安全等信息。目前,我国通过应用bim技术,已有大量建设项目成功地实现了设计方案三维可视化、设计错误检测、4d施工模拟和施工现场信息集成等。然而,bim所能为建筑业提供的科技革新力远不止如此,bim的信息化理念使得它能够与其他各学科结合,如bim与gis的结合应用于建筑材料的运输、bim与计算机语义识别技术结合应用于建筑的合规检测以及bim与计算机视觉相结合应用于施工现场的进度、安全管理等。

当前关于施工现场智能化管理的相关方法主要集中于信息管理和进出管理等方面,在智能监控工人铺砖进度及劳动分析中存在很大的空缺。



技术实现要素:

有鉴于此,为解决上述现有技术中的问题,本发明提供了一种基于bim与计算机视觉技术的室内铺砖进度信息自动收集及可视化方法,将工程施工进度与bim、机器学习和计算机视觉技术相结合,能实时计算出室内铺砖进度,有效节省人力物力。

为实现上述目的,本发明的技术方案如下。

一种基于bim与计算机视觉技术的室内铺砖进度信息自动收集及可视化方法,包括以下步骤:

步骤1、采集瓷砖图像,建立数据库并提取特征,训练分类器并识别出施工现场室内瓷砖图像;

步骤2、通过计算机视觉的canny边缘检测算法获取瓷砖目标边界轮廓,并通过hough变换算法将瓷砖边缘以直线的形式提取出来;

步骤3、结合步骤1目标识别的结果,提出目标方向判定的累计投票算法来确定瓷砖所处的方位;

步骤4、进行相机标定,获取多个视场(即标定板)下的标定图像;获取每张标定图像中三组以上具有已知图像像素坐标和其对应真实世界坐标的点,实现棋盘格坐标系向相机坐标系转换,使原点转移到了相机的投影中心;

步骤5、使用autodeskrevit建模软件的族编辑器自建一个相机族作为通过revit并依据图纸建立的建筑三维模型中虚拟的相机,该相机族通过参数化建模储存了:1)相机相对室内空间的坐标(x,y,z);以及2)通过步骤4相机标定获取的4个相机内参和5个相机畸变系数,模型以小型球体显示。该相机族模型能够存储坐标信息,并以此获取相机与整个室内空间的相对位置,并计算铺砖工作进度;

步骤6、采用autodesk公司的bim360glue平台,进行云端进度可视化。

进一步地,所述步骤1中包括以下步骤:

步骤11、到各施工现场采集室内瓷砖表面的图像数据,建立一个新的瓷砖图像数据库;

步骤12、进行lbp特征提取,获取描述瓷砖整体的特征向量;

步骤13、将提取到的瓷砖lbp特征输入至svm分类器进行学习,利用训练好的分类器对新输入的数据进行分类;

步骤14、应用多尺度检测算法对目标进行识别。

进一步地,所述步骤3中包括以下步骤:

步骤31、以步骤14中多尺度检测后识别出的所有单块瓷砖的矩形区域中心为计算点(根据矩形框boundingbox的四个角点的像素坐标(x1,y1;x2,y2;x3,y3;x4,y4),计算矩形区域中心),向每一条步骤2中通过canny边缘检测算法提取出的线段做垂线,并计算计算点到该线段的垂直距离,找出离该点最近的线段k,若垂足在线段内,进入步骤32;若垂足落在线段外,进入步骤33;

步骤32、分别创建从线段k起点指向直线终点的向量a和从该直线起点指向计算点的向量b,若a×b<0,则点位于直线右侧,程序向右侧累计器投票,即valright=valright+1;若a×b>0,则点位于直线左侧,程序向左侧累计器投票,即valleft=valleft+1;进入步骤34;,变量valright、valleft分别代表位于直线右和左侧的计算点的累加和

步骤33、分别创建从线段k起点指向直线终点的向量a和从第一条直线起点指向计算点的向量b,若a×b>0,则点位于直线右侧,程序向右侧累计器投票,即valright=valright+1;若a×b<0,则点位于直线左侧,程序向左侧累计器投票,即valleft=valleft+1;进入步骤34;

步骤34、若valright>valleft,则认为目标构件(即所有已铺设瓷砖)位于步骤2中边缘检测后的连续多段线右侧,反之位于左侧。

进一步地,所述步骤4中包括以下步骤:

步骤41、使用印有固定边长的正方形黑白棋盘格的标定板,并固定相机的位置于拍摄角度,不断变换标定板的方位;

步骤42、通过opencv中的findchessboardcorners()函数将棋盘格的内角点稳定的识别出来,并且以棋盘格左下角的第一个点为起点,向图像坐标系中的y轴负方向(在图像坐标系中,左上角为原点,水平向右为x轴,垂直向下为y轴)将点进行编号,每列的最后一个点接下一列的起点;为了计算的方便,将世界坐标系的原点定在识别出的第一个角点处,世界坐标中的z轴垂直于标定板平面,棋盘格角点的编号方向为世界坐标中的y轴正方向,棋盘格水平向右的方向为x轴正方向;

步骤43、将所有标定照片的角点像素坐标与真实世界坐标组成数组输入到函数calibratecamera()后,求出内参、外参及畸变系数;

步骤44、将单张带有棋盘格的图片放置在地面上便可求出外参,以建立起瓷砖平面上的点与图像像素点之间的对应关系;

步骤45、将原点移动到摄像机投影点;根据下述公式(1),将等式两边同时乘上外参矩阵的逆矩阵,并使摄像机坐标为(0,0,0),则可求出摄像机在真实世界坐标系中的坐标;

式中:r为3×3的旋转矩阵,t为3×1大小的平移矩阵,ot为1×3的零矩阵。

使公式转换为(2),式中所求坐标中,x和y就是将真实世界坐标系原点移动到摄像机投影点的x与y方向距离,此时关键点坐标的映射关系,由原先的(u,v)→(xw,yw,0)转变为(u,v)→(xw-x,yw-y,0)。

进一步地,所述步骤5中包括以下步骤:

步骤51、进行相机族的建立及坐标信息录入,包括步骤:

首先,用参照平面和尺寸标注分别设置相机与两侧墙体及参照标高之间的距离,这三个距离作为相机族的三个参数,分别命名为“x方向长度”、“y方向长度”和“z方向高度”;

然后,由于相机内参和畸变系数只与相机自身有关,因此将这些参数也作为相机族的固有参数。为了之后将这些参数对应的信息提取出来,4个相机参数及5个畸变系数的参数分组方式都设定为“数据”,参数类型为“数值”;

最终,该相机族共包含两组12个参数,这些参数在建模时均可根据实际情况重新赋值。相机构件本身并不是建筑物实际建造时的组成部分,只是作为一个临时存储数据的载体,因此仅用一个小型的球体来创建相机实体;

步骤52、由于revit中得每一个元素都对应着一个由多位数字组成得id号,在知道所需元素id得情况下,以提取相机信息,包括步骤:

从当前激活的窗口中获取当前模型文档,从文档中获得给定id号的元素elem;

通过元素的类型id来获取元素类型,而元素类型中得参数则是在s51中自定义添加的参数类型;

用一个参数集合parameters将相机的所有类型参数都放在了一起;

创建了一个list,将名称为“x方向长度”和“y方向长度”的类型参数对应的值存储到了这个list中。设通过程序提取到的“x方向长度”和“y方向长度”分别为xr、yr,那么此时便可以根据这两个参数将坐标系原点由摄像机投影点转换到房间的西南角。关键点在图像中的像素坐标映射到以房间西南角为原点的坐标系中时,有:

(u,v)→(xw-x+xr,yw-y+yr,0)

步骤53、对瓷砖边长进行提取与误差修正,以房间的角落为原点的坐标系中,瓷砖的边界点坐标,在x和y两个方向必然都是边长的整数倍;

假设x=xw-x+xr,y=yw-y+yr,瓷砖边长为n,那么关键点在真实世界中的坐标可以用如下方式修正:

当x/n-[x/n]>0.5时,x=n×[x/n]+1,反之,x=n×[x/n];

当y/n-[y/n]>0.5时,y=n×[y/n]+1,反之,y=n×[y/n];

其中,[x]表示取整;

步骤54、通过二次开发把revit中所需要的房间几何轮廓信息提取出来,包括步骤:

用room类来创建读取到的元素;

读取房间的boundary参数中所有的boundarysegment,也即是房间的每一条轮廓线;

将每一条轮廓线和对应的起点、终点坐标读取出来;此时读取出来的各点坐标均是以软件默认的坐标系为参照,为了配合之前将坐标系原点移动到房间西南角的计算方法,筛选出横纵坐标最小的点,将这个点坐标归零,其余点等值变换后,获得了用于描绘房间几何轮廓的点坐标。

与现有技术比较,本发明的一种基于bim与计算机视觉技术的室内铺砖进度信息自动收集及可视化方法具有以下有益效果和优点:

本发明开发了一个综合了图像识别、边缘检测、相机标定等多类计算机视觉算法和bim模型的施工现场室内构件实际完成工程量自动计算流程;将自动化的施工现场进度信息收集由施工工序层次细化到了具体的实际完成工程量层次(例如:前人的研究能够判断室内是否开始铺设瓷砖,而本文则是能计算出实时铺设的面积);创造了将实际完成的进度在平面图中高亮显示的可视化展示方法;用本文的自动化施工现场进度信息收集方法连续获得进度信息后,大量的进度数据为工人劳动效率变化规律的分析提供了数据支持,也为精确的工人劳动效率统计提供了可能。

附图说明

图1为本发明的一种基于bim与计算机视觉技术的室内铺砖进度信息自动收集及可视化方法的流程示意图。

图2为本发明中相机族x方向和y方向长度的参数设定。

图3为本发明中相机族z方向长度的参数设定。

具体实施方式

下面将结合附图和具体的实施例对本发明的具体实施作进一步说明。需要指出的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明的一种基于bim与计算机视觉技术的室内铺砖进度信息自动收集及可视化方法,包括以下步骤:

步骤1、采集瓷砖图像,建立数据库并提取特征,训练分类器并识别出施工现场室内瓷砖图像,具体包括以下步骤:

步骤11、到各施工现场采集室内瓷砖表面的图像数据,建立一个新的瓷砖图像数据库,该数据库中每一种纹理的瓷砖分别采集于三种光照条件下,每种光照条件下包含三个不同的拍摄角度;

步骤12、进行lbp特征提取,获取描述瓷砖整体的特征向量;

步骤13、将提取到的瓷砖lbp特征输入至svm分类器进行学习,利用训练好的分类器对新输入的数据进行分类;

步骤14、应用多尺度检测算法对目标进行识别,按一定的比例不断的缩小图像,形成无数的子图像,构成一个图像金字塔;利用活动窗口遍历各子图像,找到与分类器要求相匹配的窗口位置,用矩形标记记录其所处位置,等比例的返回原图像中,并用矩形颜色框选出来;

步骤2、通过计算机视觉的canny边缘检测算法获取瓷砖目标边界轮廓,并通过hough变换算法将瓷砖边缘以直线的形式提取出来;

步骤3、结合步骤1目标识别的结果,提出目标方向判定的累计投票算法来确定瓷砖所处的方位,具体包括以下步骤:

步骤31、以步骤14中多尺度检测后识别出的所有单块瓷砖的矩形区域中心为计算点(根据矩形框boundingbox的四个角点的像素坐标(x1,y1;x2,y2;x3,y3;x4,y4),计算矩形区域中心),向每一条步骤2中通过canny边缘检测算法提取出的线段做垂线,并找出离该计算点最近的直线k,并计算计算点到该线段的垂直距离,找出离该点最近的线段k,若垂足在线段内,进入步骤32;若垂足落在线段外,进入步骤33;

步骤32、分别创建从该线段k起点指向直线终点的向量a和从该直线起点指向计算点的向量b,若a×b<0,则点位于直线右侧,程序向右侧累计器投票,即valright=valright+1;若a×b>0,则点位于直线左侧,程序向左侧累计器投票,即valleft=valleft+1;进入步骤34;

步骤33、分别创建从线段k起点指向直线终点的向量a和从第一条直线起点指向计算点的向量b,若a×b>0,则点位于直线右侧,程序向右侧累计器投票,即valright=valright+1;若a×b<0,则点位于直线左侧,程序向左侧累计器投票,即valleft=valleft+1;进入步骤34;

步骤34、若valright>valleft,则认为目标构件(即所有已铺设瓷砖)位于步骤2中边缘检测后的连续多段线右侧,反之位于左侧;

步骤4、进行相机标定,获取多个视场(即标定板)下的标定图像;获取每张标定图像中三组以上具有已知图像像素坐标和其对应真实世界坐标的点,实现棋盘格坐标系向相机坐标系转换,使原点转移到了相机的投影中心,具体包括以下步骤:

步骤41、使用印有固定边长的正方形黑白棋盘格的标定板,并固定相机的位置于拍摄角度,不断变换标定板的方位;

步骤42、通过opencv中的findchessboardcorners()函数将棋盘格的内角点稳定的识别出来,并且以棋盘格左下角的第一个点为起点,向图像坐标系中y轴负方向将点进行编号,每列的最后一个点接下一列的起点;为了计算的方便,将世界坐标系的原点定在识别出的第一个角点处,世界坐标中的z轴垂直于标定板平面,棋盘格角点的编号方向为世界坐标中的y轴正方向,棋盘格水平向右的方向为x轴正方向;

步骤43、将所有标定照片的角点像素坐标与真实世界坐标组成数组输入到函数calibratecamera()后,求出内参、外参及畸变系数;

步骤44、将单张带有棋盘格的图片放置在地面上便可求出外参,以建立起瓷砖平面上的点与图像像素点之间的对应关系;

步骤45、将原点移动到摄像机投影点;根据下述公式(1),将等式两边同时乘上外参矩阵的逆矩阵,并使摄像机坐标为(0,0,0),则可求出摄像机在真实世界坐标系中的坐标;

式中:r为3×3的旋转矩阵,t为3×1大小的平移矩阵,ot为1×3的零矩阵。

使公式转换为(2),式中所求坐标中,x和y就是将真实世界坐标系原点移动到摄像机投影点的x与y方向距离,此时关键点坐标的映射关系,由原先的(u,v)→(xw,yw,0)转变为(u,v)→(xw-x,yw-y,0);

步骤5、使用revit的族编辑器自建一个相机族作为模型中虚拟的相机,使其能够存储坐标信息,并以此获取相机与整个室内空间的相对位置,并计算铺砖工作进度,具体包括以下步骤:

步骤51、进行相机族的建立及坐标信息录入,包括步骤:

1)用参照平面和尺寸标注分别设置相机与两侧墙体及参照标高之间的距离,这三个距离作为相机族的三个参数,分别命名为“x方向长度”、“y方向长度”和“z方向高度”(如图2和图3所示);

2)由于相机内参和畸变系数只与相机自身有关,因此将这些参数也作为相机族的固有参数。为了之后将这些参数对应的信息提取出来,4个相机参数及5个畸变系数的参数分组方式都设定为“数据”,参数类型为“数值”(如图2和图3所示);

3)该相机族共包含两组12个参数,这些参数在建模时均可根据实际情况重新赋值。相机构件本身并不是建筑物实际建造时的组成部分,只是作为一个临时存储数据的载体,因此仅用一个小型的球体来创建相机实体;

步骤52、由于revit中得每一个元素都对应着一个由多位数字组成得id号,在知道所需元素id得情况下,可以使用语句:document.getelement(newelementid())来获取这个元素,以提取相机信息,包括步骤:

1)从当前激活的窗口中获取当前模型文档,从文档中获得给定id号的元素elem;

2)通过元素的类型id来获取元素类型,而元素类型中得参数则是在s51中自定义添加的参数类型;

3)用一个参数集合parameters将相机的所有类型参数都放在了一起;

4)创建了一个list,将名称为“x方向长度”和“y方向长度”的类型参数对应的值存储到了这个list中。设通过程序提取到的“x方向长度”和“y方向长度”分别为xr、yr,那么此时便可以根据这两个参数将坐标系原点由摄像机投影点转换到房间的西南角。关键点在图像中的像素坐标映射到以房间西南角为原点的坐标系中时,有:

(u,v)→(xw-x+xr,yw-y+yr,0)

步骤53、对瓷砖边长进行提取与误差修正,以房间的角落为原点的坐标系中,瓷砖的边界点坐标,在x和y两个方向必然都是边长的整数倍:

假设x=xw-x+xr,y=yw-y+yr,瓷砖边长为n,那么关键点在真实世界中的坐标可以用如下方式修正:

当x/n-[x/n]>0.5时,x=n×[x/n]+1,反之,x=n×[x/n];

当y/n-[y/n]>0.5时,y=n×[y/n]+1,反之,y=n×[y/n];

其中,[x]表示取整;

为了让上述坐标修正算法自动运行,本发明还编写了瓷砖边长的提取程序。瓷砖在revit建模中是依附于楼板的,它的建模流程可以简单概括为:

1)在楼板的类型参数——结构中添加一个有一定厚度的面层;

2)在修改中使用创建部件工具将面层与楼板结构层分离开;

3)最后选中分离出的面层,使用分割零件工具便可以用画草图的方式将面层分割成一块块瓷砖;

这种建模方式所创建的瓷砖只是零件,没有类型参数,因此与相机信息提取不同,需要将瓷砖零件从一个元素转换成一个几何实体来获得它的表面边长;

1)将提取到的元素转换成几何元素;

2)从几何元素中获得一个几何对象,再将这个几何对象转换成一个solid,这个solid不再具有其他的语义参数,而只有点、线、面等纯几何信息。对于一个瓷砖所构成的solid,它的形状就是一个简单的上下平面为正方形的立方体,而这样一个立方体总共有12条边,12条边中有8条长度相同且长于其他的四条(因为瓷砖的厚度很小);

3)筛选出立方体中最长的边;

4)将模型中提取出的瓷砖边长换算成以毫米为单位;

步骤54、通过二次开发把revit中所需要的房间几何轮廓信息提取出来,包括步骤:

1)用room类来创建读取到的元素;

2)读取房间的boundary参数中所有的boundarysegment,也即是房间的每一条轮廓线;

3)将每一条轮廓线和对应的起点、终点坐标读取出来;此时读取出来的各点坐标均是以软件默认的坐标系为参照,为了配合之前将坐标系原点移动到房间西南角的计算方法,筛选出横纵坐标最小的点,将这个点坐标归零,其余点等值变换后,获得了用于描绘房间几何轮廓的点坐标。

步骤6、采用autodesk公司的bim360glue平台,将实际进度平面图同步上传至云端,实现了多方项目参建者随时随地获取施工现场实时进度的目标;这些实际进度平面图用云平台中的attachments功能附着在对应的构件上。

综上所述,本发明的一种基于bim与计算机视觉技术的室内铺砖进度信息自动收集及可视化方法综合了图像识别、边缘检测、相机标定等多类计算机视觉算法和bim模型的施工现场室内构件实际完成工程量自动计算流程;将自动化的施工现场进度信息收集由施工工序层次细化到了具体的实际完成工程量层次;创造了将实际完成的进度在平面图中高亮显示的可视化展示方法;用本文的自动化施工现场进度信息收集方法连续获得进度信息后,大量的进度数据为工人劳动效率变化规律的分析提供了数据支持,也为精确的工人劳动效率统计提供了可能。

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