CN109614871A - 一种光伏屋顶及光伏障碍物自动识别算法 - Google Patents
一种光伏屋顶及光伏障碍物自动识别算法 Download PDFInfo
- Publication number
- CN109614871A CN109614871A CN201811343290.4A CN201811343290A CN109614871A CN 109614871 A CN109614871 A CN 109614871A CN 201811343290 A CN201811343290 A CN 201811343290A CN 109614871 A CN109614871 A CN 109614871A
- Authority
- CN
- China
- Prior art keywords
- point
- roof
- barrier
- profile
- plane
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及一种光伏屋顶及光伏障碍物自动识别算法,结合高程图和正射影图两种图像的信息,对屋顶轮廓定位,在图像识别的每个屋顶的轮廓内,采用最小二乘拟合和种子填充算法,找到屋顶平面内的点,拟合得到一个平面,求出对应的平面方程,并修正屋顶轮廓范围,对全图的屋顶进行识别后,在屋顶识别基础上分别屋顶内障碍物信息进行搜索和识别,可自动识别屋顶的同时识别各种光伏障碍物。大大提高了设计工作效率和识别精度,减少了人为操作所花费的时间和精力。
Description
技术领域
本发明涉及一种光伏设计技术,特别涉及一种基于正射图像和高程信息的光伏屋顶及光伏障碍物自动识别算法。
背景技术
目前光伏行业设计屋顶光伏项目时,光伏组件的排布位置需要避开屋顶上的光伏障碍物。光伏障碍物包括气楼、女儿墙、排风设备、空调外机、水箱和采光带等。普通障碍物和屋顶平面具有一定的高度差,而采光带为屋顶透光需要,和屋顶平面没有明显的高度差,但是可以从视觉上进行区分。传统方法进行方案设计时,需要在正射影像上,手动框选屋顶及相关的光伏障碍物,存在费时、容易遗漏的问题。
发明内容
本发明是针对光伏障碍物影响光伏项目设计时间和准确率的问题,提出了一种光伏屋顶及光伏障碍物自动识别算法,可自动识别屋顶的同时识别光伏障碍物。
本发明的技术方案为:一种光伏屋顶自动识别算法,具体包括如下步骤:
1)数据采集及处理:
采集一片实际目标区域的三维地理模型,利用自动处理软件,导出得到完整的正射图和数字表面高程图,正射图中每个像素点包含区域的RGB信息,数字表面高程图中每个像素点包含对应的高度信息,两幅图片的大小、分辨率以及左上角的地理位置都相同;找到每个像素点Pi(xi,yi)对应的RGB值(ri,gi,bi)和高程值zi,每个像素点的位置和对应实际的地理坐标位置;相邻像素点的地理位置之间有一个固定的采样距离d米;
2)屋顶轮廓定位:
基于目标区域的正射RGB图像信息,利用训练好的图像识别框架,识别得到每个屋顶的大致范围;并通过求凸包络算法,得到每个屋顶的大致轮廓坐标集合Im,m为屋顶的个数;
3)屋顶信息识别:
对图像识别的每个屋顶的轮廓内,采用最小二乘拟合和种子填充算法,找到屋顶平面内的点,拟合得到一个平面,求出对应的平面方程,并修正屋顶轮廓范围:
具体实现步骤如下:
3A)对图像识别得到的任意一个屋顶轮廓坐标集合I,找到其中位置坐标的极大和极小值,从而得到一个包围屋顶的矩形窗口,四个角点的像素坐标分别为(xmin,ymin),(xmax,ymin),(xmax,ymax),(xmin,ymax);
3B)在对应的数字表面高程图中,利用GDAL包提供的方法读取四个角点包围的矩形区域点集,记为M;如果屋顶范围内像素点过多,则进行适当的预处理,对原始数据进行降采样;得到新的像素点集M';同时,将对应的多边形轮廓坐标I中每个点的坐标转化为降采样后的近似坐标I’;
3C)在多边形I’轮廓范围内,以设定步长,筛选出多个候选点作为初始种子像素,用于搜索屋顶平面:在筛选的种子像素中选择一个像素点P0(x0,y0)作为初始种子,根据初始像素点及其周围四个点P0 1(x0-1,y0),P0 2(x0+1,y0),P0 3(x0,y0-1)和P0 4(x0,y0+1),及像素点对应的高程值z0、z0 1~z0 4得到一个平面点集L,采用最小二乘法,拟合得到一个(x,y,z)空间内的初始平面,并计算得到平面方程A0x+B0y+C0z+D0=0;
3C-1):从种子像素P0出发,根据填充算法,在像素点集M'内依次向周围搜索下一个点,搜索到平面方程内的点,则将新点加入平面中重新拟合平面方程式;如当前点为Pj(xj,yj),当前点所在平面方程为Akx+Bky+Ckz+Dk=0,则接下去待搜索的点为Pj周围的四个点为(xj-1,yj),(xj+1,yj),(xj,yj-1),(xj,yj+1);依次判断这四个坐标对应点的位置是否在点集M’内,如果是则按步骤3C-2)进行4个新点是否在当前平面上的判断;
3C-2):检查搜索的新点是否为新的点,即是否已经判断过,有记录,已经有记录,则继续判断下一个点;如没有记录,将该点坐标(xj-1,yj)带入平面方程Akx+Bky+Ckz+Dk=0,得到该点与平面的高度差为|(Ak(xj-1)+Bkyj+Dk)/Ck-zj|,判断高度差是否在阈值允许的高度差范围内;如果在范围中,则将该点加入平面点集L,并重新拟合得到一个新的平面方程Ak+1x+Bk+1y+Ck+1z+Dk+1=0,并且将点(xj-1,yj)作为当前种子,对周围四个点进行搜索和判断;如果不在范围中,说明该点不在平面内,将此点加入平面外点集CM’ Li,记录后,按前一个有效点平面方程继续检查下一点;
3C-3):执行以上的搜索和判断点,直到搜索到该平面点集L的边界,即L内的点都用做种子判断过,且周围找不到新的高程值在平面范围内的点,根据搜索到的最后一点重新拟合的平面方程ALx+BLy+CLz+DL=0即为该平面的最终方程;3C-4):对平面内的所有经过搜索和判断的点集L,拟合得到一个外包络多边形H’,将多边形H’坐标转换到降采样前的坐标H。根据图像识别得到的轮廓I和识别屋顶平面得到的轮廓H分别得到包围的多边形区域SI和SH,求两个区域交集得到重叠部分区域SIH,并得到其外轮廓,即为修正后的屋顶轮廓;
3C-5):计算重叠部分区域SIH的面积,如果面积小于设定面积阈值,说明初始点选择错误,此时重新选择初始种子,并回到3C-1)步再次进行屋顶轮廓识别;如果面积大于设定面积阈值,此时再计算重叠部分区域SIH占图像识别得到的屋顶区域SI的比重SIH/SI,如果该值小于设定比重阈值,说明图像识别得到的不只是一个屋顶;从SI中去除SIH区域,继续在剩下的区域中利用DSM图像中的高程信息识别得到屋顶区域并和图像识别区域SI求交集得到SIH2;如此重复,直到识别出的屋顶区域SIH1、SIH2…SIHm总合占SI的比值达到规定的阈值,即认为图像识别区域SI中所有屋顶区域均被识别。
一种光伏障碍物自动识别算法,根据所述光伏屋顶自动识别算法识别出屋顶区域的基础上对障碍物进行识别:
在屋顶轮廓范围内,以平面方程为参考,基于高程信息找出不在误差范围内的障碍物,得到对应的轮廓坐标和高度;
步骤A:
A-1:在屋顶区域SI中,根据每个点Pj(xj,yj)到屋顶平面方程ALx+BLy+CLz+DL=0的距离,利用跨平台计算机视觉库中Imgproc.threshold方法筛选出超过阈值的点,即为障碍物上的点;然后用Imgproc.findContours方法,将障碍物点进行分类,相邻的点为同一个障碍物,并得到每个障碍物的外轮廓点集;障碍物上每个点相对屋顶的高度,通过计算点到屋顶平面方程距离的方式得到;
A-2:对每个识别得到的障碍物轮廓,利用轮廓简化算法筛选,得到几个关键点组成的轮廓;算法步骤:从轮廓点集中选出一个初始点Pn,及其下一点Pn+1和下下一点Pn+2;计算角度∠PnPn+1Pn+2,如果该角度与180°的差值小于一个阈值,则认为这三个点在同一条直线上,因此将点Pn+1从轮廓点集中删除,并继续以点Pn+2为起始,判断∠Pn+2Pn+3Pn+4;如果差值大于阈值,则认为Pn+1为关键点,保留在轮廓点集中,继续以点Pn+1为起始,判断∠Pn+1Pn+ 2Pn+3;直到所有点都遍历完,剩下的即简化后的障碍物轮廓;
步骤B:
B-1:对障碍物点集进行筛选:根据障碍物外轮廓的位置,去除屋顶外的障碍物;根据障碍物包含的点集数量,去除过小的障碍物;
B-2:将剩余障碍物的外轮廓坐标,转化为步骤1)中数据采集的DSM图中的像素位置。
一种光伏障碍物自动识别算法,根据所述光伏屋顶自动识别算法识别出屋顶区域的基础上对障碍物进行识别,出现非高程信息障碍物识别,则按下面步骤识别:
C-1:搭建图像识别模型:基于经典的卷积神经网络模型,结合密集特征金字塔网络和旋转检测网络,搭建采光带检测模型;
C-2:模型训练:利用现有的RGB高程图像,人工标注屋顶采光带样本,对样本进行预处理,转化成深度算法需要的格式,扩增样本量、划分不同的训练验证集合,之后用图像识别模型进行训练;
C-3:将需要识别的高程图像,代入训练好的模型中,识别得到屋顶采光带的轮廓坐标。
C-1:搭建图像识别模型:基于经典的卷积神经网络模型,结合密集特征金字塔网络和旋转检测网络,搭建采光带检测模型;
C-2:模型训练:利用现有的RGB高程图像,人工标注屋顶采光带样本;对样本进行预处理,转化成深度算法需要的格式,扩增样本量、划分不同的训练验证集合;之后用图像识别模型进行训练;
C-3:将需要识别的高程图像,代入训练好的模型中,识别得到屋顶采光带的轮廓坐标;
C-4:根据步骤C-3中识别得到的多个屋顶轮廓,对采光带轮廓坐标进行筛选;如果采光带完全在一个屋顶轮廓内,保留;如果某个采光带不完全在任何一个屋顶轮廓内,则判断此采光带和此屋顶轮廓的重叠面积是否大于一个95%,如大于95%,则认为采光带在该屋顶轮廓范围内,保留,如小于95%则认为采光带不在该屋顶轮廓范围内,作为无效采光带删除,95%为设定的阈值,可根据精度调整。
本发明的有益效果在于:本发明一种光伏屋顶及光伏障碍物自动识别算法,结合高程图和正射影图两种图像的信息,通过自动识别算法,对全图的屋顶和屋顶光伏障碍物信息进行搜索和识别,大大提高了设计工作效率和识别精度,减少了人为操作所花费的时间和精力。
附图说明
图1为本发明光伏屋顶及光伏障碍物自动识别算法流程示意图;
图2为本发明屋顶障碍物识别结果的示意图。
具体实施方式
如图1所示光伏屋顶及光伏障碍物自动识别算法流程示意图,具体包括如下步骤:
1、数据采集及处理:
基于一片实际目标区域的三维地理模型,利用自动处理软件(如商业软件ContextCapture),导出得到完整的正射图(每个像素点包含区域的RGB信息)和DSM图(数字表面高程图,Digital Surface Model,每个像素点包含对应的高度信息)。两幅图片的大小、分辨率以及左上角的地理位置都相同。因此,找到每个像素点Pi(xi,yi)对应的RGB值(ri,gi,bi)和高程值zi。每个像素点的位置,对应实际的地理坐标位置。相邻像素点的地理位置之间有一个固定的采样距离d米。比如一幅1000*1000像素的正射图和同样大小的DSM图,左上角的实际地理坐标为(X0,Y0),则其任意像素点(xi,yi)的实际地理位置为(d×xi+X0,d×yi+Y0)。
2、屋顶轮廓定位
基于目标区域的正射RGB图像信息,利用训练好的图像识别框架,识别得到每个屋顶的大致范围。并通过求凸包络算法,得到每个屋顶的大致轮廓坐标集合Im,m为屋顶的个数。
3、屋顶信息识别
对图像识别的每个屋顶的轮廓内,采用最小二乘拟合和种子填充算法,找到屋顶平面内的点(不包括障碍物),拟合得到一个平面,求出对应的平面方程,并修正屋顶轮廓范围。
具体实现步骤如下:
步骤A:
对图像识别得到的任意一个屋顶轮廓坐标集合I,找到其中位置坐标的极大和极小值,从而得到一个包围屋顶的矩形窗口,四个角点的像素坐标分别为(xmin,ymin),(xmax,ymin),(xmax,ymax),(xmin,ymax);
步骤B:
在对应的DSM图中,利用GDAL包提供的方法读取四个角点包围的矩形区域点集,记为M。如果屋顶范围内像素点过多,需要进行适当的预处理,对原始数据进行降采样。假设原始分辨率为0.02米,即相邻像素点之间实际距离。降采样采用在原始图像上每n个(n≥1)像素取1个点组成新的矩形区域,则新的矩形分辨率为0.02*n米。取点时,从左上角第一个点向右、向下依次间隔取点,如果行或列末尾剩余像素中不够读取一个新点,则直接舍去,得到新的像素点集M'。同时,将对应的多边形轮廓坐标I中每个点的坐标转化为降采样后的近似坐标I’。
步骤C:
在多边形I’轮廓范围内,以一定步长,筛选出多个候选点作为种子像素,用于搜索屋顶平面。在筛选的种子像素中选择一个像素点P0(x0,y0)作为初始种子。根据初始像素点及其周围四个点P0 1(x0-1,y0),P0 2(x0+1,y0),P0 3(x0,y0-1)和P0 4(x0,y0+1),及像素点对应的高程值z0、z0 1~z0 4得到一个平面点集L,采用最小二乘法,拟合得到一个(x,y,z)空间内的初始平面,并计算得到平面方程A0x+B0y+C0z+D0=0。
C-1)从种子像素P0出发,根据填充算法,在像素点集M'内依次向周围搜索下一个点,搜索到平面方程内的点,则将新点加入平面中重新拟合平面方程式。如当前点为Pj(xj,yj),当前点所在平面方程为Akx+Bky+Ckz+Dk=0,则接下去待搜索的点为Pj周围的四个点为(xj-1,yj),(xj+1,yj),(xj,yj-1),(xj,yj+1)。依次判断这四个坐标对应点的位置是否在点集M’内,如果是则按步骤C-2)进行4个新点是否在当前平面上的判断。
C-2)检查搜索的点(如上一步中点(xj-1,yj))是否为新的点,即是否已经判断过(每次判断完一个点都会进行记录)。已经有记录,则继续判断下一个点;如没有记录,将该点坐标(xj-1,yj)带入平面方程Akx+Bky+Ckz+Dk=0,得到该点与平面的高度差为|(Ak(xj-1)+Bkyj+Dk)/Ck-zj|(根据方程计算得到的该点坐标处平面高程值为-(Ak(xj-1)+Bkyj+Dk)/Ck),与zj的差即为点和平面的高程差,可近似看作点到平面的距离),判断高度差是否在阈值允许的高度差范围内。如果在范围中,则将该点加入平面点集L,并重新拟合得到一个新的平面方程Ak+1x+Bk+1y+Ck+1z+Dk+1=0,并且将点(xj-1,yj)作为当前点(种子),对周围四个点进行搜索和判断;如果不在范围中,说明该点不在平面内,将此点加入平面外点集CM’ Li,记录后,按前一个有效点平面方程继续检查下一点。
每次搜索根据一个种子判断周围四个点中是不是有平面里的点,有的话把它们当做种子放到栈里面。因为栈是先进后出,每次都是从栈里拿一个种子,判断一下周围是否有新的种子,再把新的种子放到栈里面,没有的话拿下一个种子,最后等到栈空了,这次搜索就结束了。以新的种子为一个新的搜索开始。
C-3)执行以上的搜索和判断点,直到搜索到该平面点集L的边界,即L内的点都用做种子判断过,且周围找不到新的高程值在平面范围内的点,根据搜索到的最后一点重新拟合的平面方程ALx+BLy+CLz+DL=0即为该平面的最终方程。
C-4)对平面内的所有经过搜索和判断的点集L,拟合得到一个外包络多边形H’,将多边形H’坐标转换到降采样前的坐标H。根据图像识别得到的轮廓I和识别屋顶平面得到的轮廓H分别得到包围的多边形区域SI和SH,求两个区域交集得到重叠部分区域SIH,并得到其外轮廓,即为修正后的屋顶轮廓。
C-5)计算重叠部分区域SIH的面积,如果面积过小,小于设定面积阈值,说明初始点可能选择错误,比如在障碍物上,因此只识别了障碍物上的一个区域。此时需要重新选择初始种子,并回到C-1)步再次进行屋顶轮廓识别。如果面积没有过小,此时再计算重叠部分区域SIH占图像识别得到的屋顶区域SI的比重SIH/SI。如果该值小于设定比重阈值,说明图像识别得到的不只是一个屋顶,如南北坡的情况。从SI中去除SIH区域,继续在剩下的区域中利用DSM图像中的高程信息识别得到屋顶区域并和图像识别区域SI求交集得到SIH2。如此重复,直到识别出的屋顶区域SIH1、SIH2…SIHm总合占SI的比值达到规定的阈值,即认为图像识别区域SI中所有屋顶区域均配识别。
4、障碍物识别
在屋顶轮廓范围内,以平面方程为参考,基于高程信息找出不在误差范围内的障碍物,包括气楼、女儿墙、排风设备、空调外机和水箱等,得到对应的轮廓坐标和高度。在屋顶轮廓范围内,基于图像识别方法,找出高度信息无法识别的光伏障碍物,如采光带等。
步骤A:
1)在屋顶区域SI中,根据每个点Pj(xj,yj)到屋顶平面方程ALx+BLy+CLz+DL=0的距离,利用OpenCV(基于BSD许可(开源)发行的跨平台计算机视觉库)中Imgproc.threshold方法筛选出超过阈值的点,即为障碍物上的点。然后用Imgproc.findContours方法,将障碍物点进行分类,相邻的点为同一个障碍物,并得到每个障碍物的外轮廓点集。障碍物上每个点相对屋顶的高度,可以通过计算点到屋顶平面方程距离的方式得到。
2)对每个识别得到的障碍物轮廓,利用轮廓简化算法筛选,得到几个关键点组成的轮廓。算法步骤:从轮廓点集中选出一个初始点Pn,及其下一点Pn+1和下下一点Pn+2。计算角度∠PnPn+1Pn+2,如果该角度与180°的差值小于一个阈值,则认为这三个点在同一条直线上,因此将点Pn+1从轮廓点集中删除,并继续以点Pn+2为起始,判断∠Pn+2Pn+3Pn+4;如果差值大于阈值,则认为Pn+1为关键点,保留在轮廓点集中,继续以点Pn+1为起始,判断∠Pn+1Pn+2Pn+3。直到所有点都遍历完,剩下的即简化后的障碍物轮廓。
步骤B:
1)对障碍物点集进行筛选。根据障碍物包含的点集数量,去除过小的障碍物,比如房屋边上树木等。
2)将剩余障碍物的外轮廓坐标,转化为原始DSM图(是指步骤1中数据采集的DSM图)中的像素位置。
5、非高程信息障碍物识别
对于无法利用高程信息识别的光伏障碍物,如采光带等,需要利用图像识别算法在高程图像上进行识别,并根据屋顶轮廓进行筛选。
1)搭建图像识别模型。基于经典的卷积神经网络模型,可结合密集特征金字塔网络和旋转检测网络,搭建采光带检测模型。
2)模型训练。利用现有的RGB高程图像,人工标注屋顶采光带样本。对样本进行预处理,转化成深度算法需要的格式,扩增样本量、划分不同的训练验证集合。之后用图像识别模型进行训练。
3)将需要识别的高程图像(屋顶识别前的高程图),代入训练好的模型中,识别得到屋顶采光带的轮廓坐标。
4)根据步骤3)中识别得到的多个屋顶轮廓,对采光带轮廓坐标进行筛选。因为图像识别容易受到图像质量的影响,可能将其他物体误识别为采光带。因此,如果采光带完全在一个屋顶轮廓内,保留;如果某个采光带不完全在任何一个屋顶轮廓内,则判断此采光带和此屋顶轮廓的重叠面积是否大于一个阈值(95%),如大于阈值,则认为采光带在该屋顶轮廓范围内,保留,如小于阈值则认为采光带不在该屋顶轮廓范围内,作为无效采光带删除。
6、识别信息汇总
综合识别得到的屋顶轮廓、坡度和朝向,以及障碍物的轮廓和相对屋顶的高度,汇总到正射影像上,以便校验,并进行后续的光伏方案设计。如图2是在正射图中标出的两种障碍物轮廓。图中1为风机,根据高程信息识别后得到近似多边形轮廓及高度;2为采光带,利用图像识别得到近似的矩形轮廓。
Claims (3)
1.一种光伏屋顶自动识别算法,其特征在于,具体包括如下步骤:
1)数据采集及处理:
采集一片实际目标区域的三维地理模型,利用自动处理软件,导出得到完整的正射图和数字表面高程图,正射图中每个像素点包含区域的RGB信息,数字表面高程图中每个像素点包含对应的高度信息,两幅图片的大小、分辨率以及左上角的地理位置都相同;找到每个像素点Pi(xi,yi)对应的RGB值(ri,gi,bi)和高程值zi,每个像素点的位置和对应实际的地理坐标位置;相邻像素点的地理位置之间有一个固定的采样距离d米;
2)屋顶轮廓定位:
基于目标区域的正射RGB图像信息,利用训练好的图像识别框架,识别得到每个屋顶的大致范围;并通过求凸包络算法,得到每个屋顶的大致轮廓坐标集合Im,m为屋顶的个数;
3)屋顶信息识别:
对图像识别的每个屋顶的轮廓内,采用最小二乘拟合和种子填充算法,找到屋顶平面内的点,拟合得到一个平面,求出对应的平面方程,并修正屋顶轮廓范围:
具体实现步骤如下:
3A)对图像识别得到的任意一个屋顶轮廓坐标集合I,找到其中位置坐标的极大和极小值,从而得到一个包围屋顶的矩形窗口,四个角点的像素坐标分别为(xmin,ymin),(xmax,ymin),(xmax,ymax),(xmin,ymax);
3B)在对应的数字表面高程图中,利用GDAL包提供的方法读取四个角点包围的矩形区域点集,记为M;如果屋顶范围内像素点过多,则进行适当的预处理,对原始数据进行降采样;得到新的像素点集M';同时,将对应的多边形轮廓坐标I中每个点的坐标转化为降采样后的近似坐标I’;
3C)在多边形I’轮廓范围内,以设定步长,筛选出多个候选点作为初始种子像素,用于搜索屋顶平面:在筛选的种子像素中选择一个像素点P0(x0,y0)作为初始种子,根据初始像素点及其周围四个点P0 1(x0-1,y0),P0 2(x0+1,y0),P0 3(x0,y0-1)和P0 4(x0,y0+1),及像素点对应的高程值z0、z0 1~z0 4得到一个平面点集L,采用最小二乘法,拟合得到一个(x,y,z)空间内的初始平面,并计算得到平面方程A0x+B0y+C0z+D0=0;
3C-1):从种子像素P0出发,根据填充算法,在像素点集M'内依次向周围搜索下一个点,搜索到平面方程内的点,则将新点加入平面中重新拟合平面方程式;如当前点为Pj(xj,yj),当前点所在平面方程为Akx+Bky+Ckz+Dk=0,则接下去待搜索的点为Pj周围的四个点为(xj-1,yj),(xj+1,yj),(xj,yj-1),(xj,yj+1);依次判断这四个坐标对应点的位置是否在点集M’内,如果是则按步骤3C-2)进行4个新点是否在当前平面上的判断;
3C-2):检查搜索的新点是否为新的点,即是否已经判断过,有记录,已经有记录,则继续判断下一个点;如没有记录,将该点坐标(xj-1,yj)带入平面方程Akx+Bky+Ckz+Dk=0,得到该点与平面的高度差为|(Ak(xj-1)+Bkyj+Dk)/Ck-zj|,判断高度差是否在阈值允许的高度差范围内;如果在范围中,则将该点加入平面点集L,并重新拟合得到一个新的平面方程Ak+1x+Bk+1y+Ck+1z+Dk+1=0,并且将点(xj-1,yj)作为当前种子,对周围四个点进行搜索和判断;如果不在范围中,说明该点不在平面内,将此点加入平面外点集CM’ Li,记录后,按前一个有效点平面方程继续检查下一点;
3C-3):执行以上的搜索和判断点,直到搜索到该平面点集L的边界,即L内的点都用做种子判断过,且周围找不到新的高程值在平面范围内的点,根据搜索到的最后一点重新拟合的平面方程ALx+BLy+CLz+DL=0即为该平面的最终方程;
3C-4):对平面内的所有经过搜索和判断的点集L,拟合得到一个外包络多边形H’,将多边形H’坐标转换到降采样前的坐标H;根据图像识别得到的轮廓I和识别屋顶平面得到的轮廓H分别得到包围的多边形区域SI和SH,求两个区域交集得到重叠部分区域SIH,并得到其外轮廓,即为修正后的屋顶轮廓;
3C-5):计算重叠部分区域SIH的面积,如果面积小于设定面积阈值,说明初始点选择错误,此时重新选择初始种子,并回到3C-1)步再次进行屋顶轮廓识别;如果面积大于设定面积阈值,此时再计算重叠部分区域SIH占图像识别得到的屋顶区域SI的比重SIH/SI,如果该值小于设定比重阈值,说明图像识别得到的不只是一个屋顶;从SI中去除SIH区域,继续在剩下的区域中利用DSM图像中的高程信息识别得到屋顶区域并和图像识别区域SI求交集得到SIH2;如此重复,直到识别出的屋顶区域SIH1、SIH2…SIHm总合占SI的比值达到规定的阈值,即认为图像识别区域SI中所有屋顶区域均被识别。
2.一种光伏障碍物自动识别算法,其特征在于,根据权利要求1所述光伏屋顶自动识别算法识别出屋顶区域的基础上对障碍物进行识别:
在屋顶轮廓范围内,以平面方程为参考,基于高程信息找出不在误差范围内的障碍物,得到对应的轮廓坐标和高度;
步骤A:
A-1:在屋顶区域SI中,根据每个点Pj(xj,yj)到屋顶平面方程ALx+BLy+CLz+DL=0的距离,利用跨平台计算机视觉库中Imgproc.threshold方法筛选出超过阈值的点,即为障碍物上的点;然后用Imgproc.findContours方法,将障碍物点进行分类,相邻的点为同一个障碍物,并得到每个障碍物的外轮廓点集;障碍物上每个点相对屋顶的高度,通过计算点到屋顶平面方程距离的方式得到;
A-2:对每个识别得到的障碍物轮廓,利用轮廓简化算法筛选,得到几个关键点组成的轮廓;算法步骤:从轮廓点集中选出一个初始点Pn,及其下一点Pn+1和下下一点Pn+2;计算角度∠PnPn+1Pn+2,如果该角度与180°的差值小于一个阈值,则认为这三个点在同一条直线上,因此将点Pn+1从轮廓点集中删除,并继续以点Pn+2为起始,判断∠Pn+2Pn+3Pn+4;如果差值大于阈值,则认为Pn+1为关键点,保留在轮廓点集中,继续以点Pn+1为起始,判断∠Pn+1Pn+2Pn+3;直到所有点都遍历完,剩下的即简化后的障碍物轮廓;
步骤B:
B-1:对障碍物点集进行筛选:根据障碍物外轮廓的位置,去除屋顶外的障碍物;根据障碍物包含的点集数量,去除过小的障碍物;
B-2:将剩余障碍物的外轮廓坐标,转化为步骤1)中数据采集的DSM图中的像素位置。
3.一种光伏障碍物自动识别算法,其特征在于,根据权利要求1所述光伏屋顶自动识别算法识别出屋顶区域的基础上对障碍物进行识别,出现非高程信息障碍物识别,则按下面步骤识别:
C-1:搭建图像识别模型:基于经典的卷积神经网络模型,结合密集特征金字塔网络和旋转检测网络,搭建采光带检测模型;
C-2:模型训练:利用现有的RGB高程图像,人工标注屋顶采光带样本;对样本进行预处理,转化成深度算法需要的格式,扩增样本量、划分不同的训练验证集合;之后用图像识别模型进行训练;
C-3:将需要识别的高程图像,代入训练好的模型中,识别得到屋顶采光带的轮廓坐标;
C-4:根据步骤C-3中识别得到的多个屋顶轮廓,对采光带轮廓坐标进行筛选;如果采光带完全在一个屋顶轮廓内,保留;如果某个采光带不完全在任何一个屋顶轮廓内,则判断此采光带和此屋顶轮廓的重叠面积是否大于95%,如大于95%,则认为采光带在该屋顶轮廓范围内,保留,如小于95%则认为采光带不在该屋顶轮廓范围内,作为无效采光带删除,95%为设定的阈值,可根据精度调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811343290.4A CN109614871B (zh) | 2018-11-13 | 2018-11-13 | 一种光伏屋顶及光伏障碍物自动识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811343290.4A CN109614871B (zh) | 2018-11-13 | 2018-11-13 | 一种光伏屋顶及光伏障碍物自动识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614871A true CN109614871A (zh) | 2019-04-12 |
CN109614871B CN109614871B (zh) | 2022-05-13 |
Family
ID=66003266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811343290.4A Active CN109614871B (zh) | 2018-11-13 | 2018-11-13 | 一种光伏屋顶及光伏障碍物自动识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614871B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222605A (zh) * | 2019-05-24 | 2019-09-10 | 深兰科技(上海)有限公司 | 一种障碍物检测方法及设备 |
CN110378227A (zh) * | 2019-06-17 | 2019-10-25 | 北京达佳互联信息技术有限公司 | 修正样本标注数据的方法、装置、设备及存储介质 |
CN110705526A (zh) * | 2019-10-25 | 2020-01-17 | 云南电网有限责任公司电力科学研究院 | 一种基于无人机的树障清除方法、装置及系统 |
CN110910401A (zh) * | 2019-10-31 | 2020-03-24 | 五邑大学 | 半自动化图像分割数据标注方法、电子装置及存储介质 |
CN111985455A (zh) * | 2020-09-08 | 2020-11-24 | 国网江西省电力有限公司电力科学研究院 | 一种光伏组件可见光故障模型的训练和识别方法及装置 |
CN115424017A (zh) * | 2022-08-23 | 2022-12-02 | 河海大学 | 一种建筑物内外轮廓分割方法、装置及存储介质 |
CN116863331A (zh) * | 2023-06-20 | 2023-10-10 | 北京图知天下科技有限责任公司 | 建筑群目标屋顶区域的确定方法、装置以及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110033110A1 (en) * | 2008-04-23 | 2011-02-10 | Pasco Corporation | Building roof outline recognizing device, building roof outline recognizing method, and building roof outline recognizing program |
CN102521884A (zh) * | 2011-12-16 | 2012-06-27 | 南京大学 | 一种基于LiDAR数据与正射影像的3维屋顶重建方法 |
CN104036544A (zh) * | 2014-06-25 | 2014-09-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
-
2018
- 2018-11-13 CN CN201811343290.4A patent/CN109614871B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110033110A1 (en) * | 2008-04-23 | 2011-02-10 | Pasco Corporation | Building roof outline recognizing device, building roof outline recognizing method, and building roof outline recognizing program |
CN101978395A (zh) * | 2008-04-23 | 2011-02-16 | 株式会社博思科 | 建筑物屋顶轮廓识别装置、建筑物屋顶轮廓识别方法及建筑物屋顶轮廓识别程序 |
CN102521884A (zh) * | 2011-12-16 | 2012-06-27 | 南京大学 | 一种基于LiDAR数据与正射影像的3维屋顶重建方法 |
CN104036544A (zh) * | 2014-06-25 | 2014-09-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
Non-Patent Citations (3)
Title |
---|
V. VERMA ET AL.: "《3D Building Detection and Modeling from Aerial LIDAR Data》", 《IEEE XPLORE》 * |
徐福圆: "基于遥感图像的屋顶面积识别及屋顶光伏容量估计", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
桑红石 等: "基于标记信息的快速轮廓跟踪算法", 《华中科技大学学报(自然科学版)》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222605A (zh) * | 2019-05-24 | 2019-09-10 | 深兰科技(上海)有限公司 | 一种障碍物检测方法及设备 |
CN110222605B (zh) * | 2019-05-24 | 2021-11-19 | 深兰科技(上海)有限公司 | 一种障碍物检测方法及设备 |
CN110378227A (zh) * | 2019-06-17 | 2019-10-25 | 北京达佳互联信息技术有限公司 | 修正样本标注数据的方法、装置、设备及存储介质 |
CN110705526A (zh) * | 2019-10-25 | 2020-01-17 | 云南电网有限责任公司电力科学研究院 | 一种基于无人机的树障清除方法、装置及系统 |
CN110705526B (zh) * | 2019-10-25 | 2023-08-08 | 云南电网有限责任公司电力科学研究院 | 一种基于无人机的树障清除方法、装置及系统 |
CN110910401A (zh) * | 2019-10-31 | 2020-03-24 | 五邑大学 | 半自动化图像分割数据标注方法、电子装置及存储介质 |
CN111985455A (zh) * | 2020-09-08 | 2020-11-24 | 国网江西省电力有限公司电力科学研究院 | 一种光伏组件可见光故障模型的训练和识别方法及装置 |
CN115424017A (zh) * | 2022-08-23 | 2022-12-02 | 河海大学 | 一种建筑物内外轮廓分割方法、装置及存储介质 |
CN115424017B (zh) * | 2022-08-23 | 2023-10-17 | 河海大学 | 一种建筑物内外轮廓分割方法、装置及存储介质 |
CN116863331A (zh) * | 2023-06-20 | 2023-10-10 | 北京图知天下科技有限责任公司 | 建筑群目标屋顶区域的确定方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109614871B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614871A (zh) | 一种光伏屋顶及光伏障碍物自动识别算法 | |
CN109409263B (zh) | 一种基于Siamese卷积网络的遥感影像城市地物变化检测方法 | |
CN100349185C (zh) | 地图生成设备、地图发送方法 | |
KR101347260B1 (ko) | 촬영이미지별 수치데이터 합성을 처리하는 영상도화이미지 제작시스템 | |
CN112766274A (zh) | 一种基于Mask RCNN算法的水尺图像水位自动读数方法及系统 | |
CN104732577B (zh) | 一种基于uav低空航测系统的建筑物纹理提取方法 | |
CN114758252B (zh) | 基于图像的分布式光伏屋顶资源分割与提取方法及系统 | |
CN107492094A (zh) | 一种高压电线绝缘子的无人机视觉检测方法 | |
KR102035030B1 (ko) | 차선 정보를 이용한 자동 도화 방법 | |
CN110244766A (zh) | 一种光伏电站无人机巡检航线的规划方法及系统 | |
CN110866494B (zh) | 一种基于光学遥感影像的城镇群提取方法及系统 | |
CN103925927B (zh) | 一种基于车载视频的交通标识定位方法 | |
CN112818925B (zh) | 一种城市建筑和树冠识别方法 | |
CN109238239A (zh) | 基于航空摄影的数字测量三维建模方法 | |
CN101303231A (zh) | 正射镶嵌线的自动选择与正射影像无缝镶嵌方法 | |
CN111027511B (zh) | 基于感兴趣区块提取的遥感图像舰船检测方法 | |
JP2007101276A (ja) | 三次元計測用投影装置及びシステム | |
CN114241024B (zh) | 基于滑动边缘检测的人工神经网络建筑物纹理贴图方法及其系统 | |
CN110634138A (zh) | 一种基于视觉感知的桥梁变形的监测方法、装置及设备 | |
CN111508032A (zh) | 相机标定过程中的特征点排序方法 | |
JP4517003B2 (ja) | 道路標識自動認識システム | |
JPH05181411A (ja) | 地図情報照合更新方式 | |
JP3437671B2 (ja) | ランドマーク認識装置およびランドマーク認識方法 | |
JP2014126537A (ja) | 座標補正装置、座標補正プログラム、及び座標補正方法 | |
JP2007256280A (ja) | 物体認識システム及びそれを用いた物体の変位計測方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211021 Address after: 211111 No. 199, Zhengfang Middle Road, Jiangning Development Zone, Nanjing, Jiangsu Applicant after: ENVISION ENERGY (NANJING) SOFTWARE TECHNOLOGY Co.,Ltd. Applicant after: Vision Energy Co.,Ltd. Address before: No. 199, Zhengfang Middle Road, Jiangning Development Zone, Nanjing, Jiangsu 210008 Applicant before: ENVISION ENERGY (NANJING) SOFTWARE TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |