CN116403132B - 一种基于图像和机器算法生成征地拆迁表的地物识别方法 - Google Patents
一种基于图像和机器算法生成征地拆迁表的地物识别方法 Download PDFInfo
- Publication number
- CN116403132B CN116403132B CN202310676252.5A CN202310676252A CN116403132B CN 116403132 B CN116403132 B CN 116403132B CN 202310676252 A CN202310676252 A CN 202310676252A CN 116403132 B CN116403132 B CN 116403132B
- Authority
- CN
- China
- Prior art keywords
- image
- cad
- information
- red line
- line
- 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.)
- Active
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 50
- 208000024891 symptom Diseases 0.000 title description 10
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000001514 detection method Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 16
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000003709 image segmentation Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000000877 morphologic effect Effects 0.000 claims description 9
- 230000009466 transformation Effects 0.000 claims description 9
- 238000003708 edge detection Methods 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 238000013135 deep learning Methods 0.000 claims description 5
- 235000013399 edible fruits Nutrition 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 3
- 238000012067 mathematical method Methods 0.000 claims description 3
- 210000002569 neuron Anatomy 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims 5
- 230000005012 migration Effects 0.000 claims 5
- 238000012937 correction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 33
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000011835 investigation Methods 0.000 description 6
- 238000007639 printing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000007635 classification algorithm Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000010339 dilation Effects 0.000 description 2
- 230000003628 erosive effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/17—Terrestrial scenes taken from planes or by drones
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- 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/10—Image acquisition
- G06V10/16—Image acquisition using multiple overlapping images; Image stitching
-
- 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/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- 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
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/176—Urban or other man-made structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/182—Network patterns, e.g. roads or rivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/188—Vegetation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/70—Labelling scene content, e.g. deriving syntactic or semantic representations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于图像和机器算法生成征地拆迁表的地物识别方法,该方法通过无人机航拍获得图像,并将图像拼成一张图,导入已有公路用地红线的CAD中,图像需要设置标靶点与路线用地红线坐标系进行标定,通过图像处理和计算机视觉算法对地物边界进行划分判定地物类型,并在CAD中实时显示各地物范围关键要素信息,最后将路线桩号范围进行划分段落并统计相应段落的地物要素信息生成征地拆迁表,本发明采用图像处理和计算机视觉算法对图像进行处理,采用Python语言编写相应程序,减少了人工干预和错误,提高了工作效率、数据精度和准确性,本发明方法简便易行,操作简单,可以有效地提高公路工程征地拆迁的工作效率和精度。
Description
技术领域
本发明涉及数据识别领域,尤其涉及一种基于图像和机器算法生成征地拆迁表的地物识别方法。
背景技术
在公路工程中,征地拆迁是一个重要的环节,需要对各地类进行大量的现场勘察和调查,以确定各地物的面积和要素信息,从而生成征地拆迁表。
传统的现场勘察和调查方法耗时耗力、成本高、且存在误差,因此需要一种快速、准确地识别地物并生成征地拆迁表的方法。
目前,利用无人机进行航拍已成为公路工程中识别地类的一种有效方式,但是,如何快速、准确地对航拍的图像进行处理和分析,以生成征地拆迁表,仍是亟待解决的问题。
发明内容
本发明的目的在于提供一种基于图像和机器算法生成征地拆迁表的地物识别方法,该方法通过无人机航拍获得图像,并将图像拼成一张图,导入已有公路用地红线的CAD中,图像需要设置标靶点与路线用地红线坐标系进行标定,通过图像处理和计算机视觉算法对地物边界进行划分,进而判定划分区域地物类型,并在CAD中实时显示各地物范围关键要素信息,最后需要将路线桩号范围进行划分段落并统计相应段落的地物要素信息并生成征地拆迁表。
为实现上述目的,本发明提供如下技术方案:
一种基于图像和机器算法生成征地拆迁表的地物识别方法,具体步骤如下:
S1:采用无人机进行航拍,设置标靶点与路线用地红线并用坐标系进行标定,采用Pix4Dmapper软件处理和拼接,生成全息图像,加载图像至CAD带路线桩号的用地红线中,对摄影图像进行预处理得到满足像素要求的TIF格式图像,通过相控点和RTK控制点将图像移至与项目相同的坐标系中,使图像与道路中线和红线位于同一种参考系;
S2:对CAD中用地红线范围内的图像进行要素识别,要素为不同果林、苗圃、农田、水塘、道路、建筑、水渠、河流、荒地的面积信息,并将各要素进行划分单元边界线,识别不同要素单元的特征信息,先识别红线,然后识别红线范围内的图像,将红线范围内的图像根据不同特征信息进行区分并识别其特征边界,绘制多段线特征边界;
S3:将步骤S2中单元边界线用多段线绘制,将识别出的要素特征信息显示在单元多段线内,用不同段落统计不同桩号范围的多段线包含的要素信息;
S4:在步骤S2中采用机器视觉算法识别用地红线和红线范围内的地物信息,由于地物信息的多样性和复杂性,采用机器视觉算法的多种算法如特征提取算法、物体识别和分类算法和图像分割算法;
S5:采用Python将步骤S3和S4的要素和地物信息通过CAD多段线自动划分显示,点击不同要素和地物信息单元后显示单元的特征信息,手动修改CAD多段线,统计特征信息;
S6:将S5中的CAD各单元要素和地物信息输出为Excel,使用AutoCAD.NETAPI和AutoLISP编程语言,编写CAD插件,与Excel的数据交换和处理,一键输出征地拆迁表。
步骤S1中,可通过以下步骤来实现:
(1)根据公路勘测规范要求布置全线测绘控制点,现场布置平面和高程控制点,布置控制点时应根据规范要求保证控制点前后间距和通视条件,用GPS采集控制点,航飞前根据测绘相关规定要求布置相控点,并与控制点联测以保证精度要求;
(2)完成步骤(1)后,在用无人机航飞前将公路路线导入无人机操作APP中,设定航飞路径,飞行完成后将图像用Pix4Dmapper软件预处理和拼接,得到完整图像,图像为TIF格式。
(3)用图像导入CAD插件VLX将步骤(2)得到的完整图像导入到有路线和用地红线的CAD中,由于要保证导入图像与地形图坐标系一致,导入时采用坐标校正命令insg,完成后图像与地形图坐标系一致。
步骤S2中,识别图像的用地红线也即边线,可以采用包括索贝尔(Sobel)算子等在内的经典梯度操作算子与图像进行卷积操作,得到的结果即为图像的边缘轮廓图。
步骤S2中,可通过以下步骤来实现:
(1)读取CAD文件并定位到用地红线所在的图层,使用CAD SDK或API读取文件,并获取所需图层信息;
(2)提取用地红线的轮廓信息,包括位置、方向和长度等,可以使用向量运算和矩阵变换等数学方法对CAD图形进行处理,提取轮廓信息;
(3)根据用地红线的位置和方向,确定红线范围内的图像区域,可以使用简单的几何计算(如矩形交)或复杂的图像分割算法实现;
(4)对红线范围内的图像进行要素识别,根据不同特征信息进行区分并识别其特征边界,可以使用传统的计算机视觉算法(如边缘检测、特征提取、聚类等)或深度学习模型(如卷积神经网络、语义分割网络等)实现:
(5)将每个要素单元根据其特征信息进行进一步分类,可以使用图像处理和机器学习算法实现,如神经网络:
(6)对于每个要素单元,识别其特征边界,可以使用计算机视觉、图像处理和深度学习算法实现,如轮廓检测、角点检测、边界框回归等;
(7)通过多段线将所有特征边界绘制出来。
上述步骤(4)中对红线范围内的图像进行要素识别,实现图像识别则需要在CAD软件中调用外部程序,可按照以下步骤进行:
通过官方网站下载安装包,并按照指示在计算机上安装OpenCV库,在VBA环境下,在代码中引用OpenCV库并调用其函数实现图像处理和分割,在程序中加载CAD文件,并通过VBA命令和API函数选择红线所在的图层和区域,通过CAD软件提供的打印或保存为图像等功能将CAD图形转换为位图,通过调用OpenCV库中的函数基于颜色的阈值分割算法进行图像分割,获取红线相关的信息,利用处理得到的红线信息反向映射回CAD文件中,通过调用CAD软件提供的API函数,根据处理结果对CAD图形进行修改,例如添加标注、修改线型等自动化操作。
在OpenCV中实现识别用地红线范围的要素,需要采用图像分割算法进行识别,将CAD图像调用OpenCV,采用以下方法:
(1)基于颜色阈值从图像文件中提取红线区域,将图像转换到HSV色彩空间,并根据红色的H(色调)和S(饱和度)通道阈值,得到包含红线的二值掩码,公式如下:
;
其中,表示二值掩码,/>和/>分别表示图像在位置/>的像素在HSV空间中的色调和饱和度,/>、/>、/>、/>分别表示阈值范围;
(2)对于二值掩码中存在的由于噪声引起的小区域,需要使用形态学操作如膨胀和腐蚀,和连通性处理如开运算和闭运算等方法去除;
(3)使用轮廓检测算法,例如找到二值图像中所有的轮廓,并采用一定的筛选规则来判断是否是红线轮廓,来获取红线的轮廓信息,
公式为,其中C表示所有轮廓的集合,/>表示第i个轮廓,/>表示轮廓/>的面积,对于一个连通区域,它的面积是由多个像素点组成的,进一步的,该轮廓检测算法,其中的/>表示的是轮廓/>对应的连通区域的像素点个数,因此可以将连通区域看作是一个像素点集合,而C应该被理解为所有连通区域的集合;
(4)根据红线轮廓信息,可以计算出红线的位置信息,例如坐标、长度、方向等,这可以通过计算轮廓的中心点、端点和方向角度等几何量来实现。
在CAD中调用OpenCV,需要用到以下技术方法:
使用CAD软件提供的打印或保存为图像等功能将CAD文件转换为常见的如BMP、JPEG的位图格式,使用OpenCV库提供的函数,在OpenCV环境中读取CAD文件转换后的图像文件,利用OpenCV提供的图像处理技术如边缘检测、色彩分割等方法,对图像进行处理并得到所需信息,利用AutoLISP编程语言编写AutoCAD插件,在AutoCAD中调用OpenCV库,将处理结果反向映射回CAD文件中,以通过COM对象连接AutoCAD和OpenCV,在AutoCAD中调用OpenCV相关功能,实现与OpenCV的交互。
识别图像中不同要素如不同果林、苗圃、农田、水塘、道路、建筑、水渠、河流、荒地等面积信息,实现图像中不同要素识别和多段线生成,通过以下方式进行:
(1)首先对原始图像进行预处理,包括去噪、增强、灰度化等操作,具体为Preprocessing:I′=Enhancement(De-noising(I)),其中,I表示原始图像,I′表示预处理后的图像,De-noising是去噪函数,Enhancement为增强函数;
(2)采用基于深度学习的目标检测算法,如Faster R-CNN、YOLOv3等,来实现对图像中的不同要素进行分割和分类,具体如下:
Faster R-CNN:cv2.dnn.readNetFromCaffe(prototxt,caffeModel);
net.setInput(blob);
detections=net.forward();
YOLOv3:cv2.dnn.readNetFromDarknet(cfgFile,weighFile);
net.setInput(blob);
layerOutputs=net.forward();
其中,prototxt和caffeModel分别表示模型的结构文件和权重文件,blob表示经过预处理后得到的数据块,detections和layerOutputs分别表示检测结果和输出特征图;
(3)根据目标分割和分类的结果,将不同要素的区域提取出来,并进行形态学操作和轮廓提取,以消除噪声和连接断裂部分,具体如下:
Extract ROIs:ROIs=GetROIs(I′,detections);
其中,GetROIs是提取目标区域的函数,ROIs表示提取得到的感兴趣区域;
(4)根据提取得到的目标区域,利用形态学操作、边缘检测、轮廓提取等方法将图像中的物体边界分割出来,并将其转换成多段线,具体如下:
Contour Extraction:contours=findContours(li,mode,method);
Contour Approximation:=approxPolyDP(contours,∈,closed);
Attribute Retrieval:Polyline.setAttributes(area,name);
CADPolylineGeneration:CADPolyline=coordinate Transformation(Polyline);
其中findContours表示轮廓提取函数,mode和method分别表示轮廓检索模式和近似方法,Polyline表示生成的多段线对象,∈和closed分别表示近似精度和是否闭合,area和name分别表示名称和面积信息,CADPolyline表示多段线对象在CAD坐标系下的表示方式;
(5)将生成的多段线反向映射回CAD文件中,具体如下:
Coordinate Transformation:cv2.perspectiveTransform(points,M);
其中,points是待转换的点集,M是变换矩阵,根据摄像机参数和场景信息计算得到。
步骤S3中,可以使用Python中的文本处理模块实现对不同桩号范围内的要素信息用不同段落进行统计,具体流程如下:
(1)定义好统计表的格式,包括表头、列名等信息;
(2)根据多段线所在的桩号范围,将其归入对应的类别中,可以通过遍历多段线列表,分别提取每个多段线的起始和终止桩号,并根据这些信息将其归入对应的类别中,可表示为:
category=getCategory(startMileage,endMileage);
其中,startMileage和endMileage分别表示多段线的起始和终止桩号,getCategory是根据桩号范围获取类别的函数;
(3)对于每个多段线,提取其包含的要素信息,并将其保存到相应的类别中,使用多段线对象的属性来获取名称、面积等信息,具体如下:
name=Polyline.getName();
area=Polyline.getArea();
其中,Polyline表示待处理的多段线对象,getName和getArea分别表示获取名称和面积的函数;
(4)遍历每个类别中的多段线,将其中的要素信息按照格式输出到对应的段落中,使用Python中的字符串操作函数来生成段落内容;
(5)将所有类别的段落按照顺序拼接起来,并输出到指定文件中,使用Python中的文件操作函数来实现。
本发明的有益效果:
(1)本发明采用无人机进行航拍,通过图像处理和计算机视觉算法对图像进行处理,可以快速、准确地识别公路工程地类,大大节省了现场勘察和调查的时间和成本,提高了工作效率;
(2)本发明在CAD软件中采用Python语言编写相应程序,实现了对各地类自动化的划分和属性设置,进一步减少了人工干预和错误,提高了数据精度和准确性;
(3)本发明设计了一种征地拆迁表生成方法,通过鼠标点击方式,对每个划分单元进行分类,并统计出相应的面积、株数、层数等征地拆迁所需的要素,可以快速、准确地生成征地拆迁表,方便工作人员进行后续工作;
(4)本发明采用了Pix4Dmapper软件对图像进行处理,通过图像处理和计算机视觉算法来识别公路工程地类,可以有效地减少误差,提高了数据精度和准确性;
(5)本发明方法简便易行,操作简单,可以有效地提高公路工程征地拆迁的工作效率和精度,具有广泛的应用前景并可应用在其他行业。
附图说明
图1为本发明的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一种基于图像和机器算法生成征地拆迁表的地物识别方法,具体步骤如下:
S1:采用无人机进行航拍,设置标靶点与路线用地红线并用坐标系进行标定,采用Pix4Dmapper软件处理和拼接,生成全息图像,加载图像至CAD带路线桩号的用地红线中,对摄影图像进行预处理得到满足像素要求的TIF格式图像,通过相控点和RTK控制点将图像移至与项目相同的坐标系中,使图像与道路中线和红线位于同一种参考系;
S2:对CAD中用地红线范围内的图像进行要素识别,要素为不同果林、苗圃、农田、水塘、道路、建筑、水渠、河流、荒地的面积信息,并将各要素进行划分单元边界线,识别不同要素单元的特征信息,先识别红线,然后识别红线范围内的图像,将红线范围内的图像根据不同特征信息进行区分并识别其特征边界,绘制多段线特征边界;
S3:将步骤S2中单元边界线用多段线绘制,将识别出的要素特征信息显示在单元多段线内,用不同段落统计不同桩号范围的多段线包含的要素信息;
S4:在步骤S2中采用机器视觉算法识别用地红线和红线范围内的地物信息,由于地物信息的多样性和复杂性,采用机器视觉算法的多种算法如特征提取算法、物体识别和分类算法和图像分割算法;
S5:采用Python将步骤S3和S4的要素和地物信息通过CAD多段线自动划分显示,点击不同要素和地物信息单元后显示单元的特征信息,手动修改CAD多段线,统计特征信息;
S6:将S5中的CAD各单元要素和地物信息输出为Excel,使用AutoCAD.NETAPI和AutoLISP编程语言,编写CAD插件,与Excel的数据交换和处理,一键输出征地拆迁表。
步骤S1中,可通过以下步骤来实现:
(1)根据公路勘测规范要求布置全线测绘控制点,现场布置平面和高程控制点,布置控制点时应根据规范要求保证控制点前后间距和通视条件,用GPS采集控制点,航飞前根据测绘相关规定要求布置相控点,并与控制点联测以保证精度要求;
(2)完成步骤(1)后,在用无人机航飞前将公路路线导入无人机操作APP中,设定航飞路径,飞行完成后将图像用Pix4Dmapper软件预处理和拼接,得到完整图像,图像为TIF格式。
(3)用图像导入CAD插件VLX将步骤(2)得到的完整图像导入到有路线和用地红线的CAD中,由于要保证导入图像与地形图坐标系一致,导入时采用坐标校正命令insg,完成后图像与地形图坐标系一致。
步骤S2中,识别图像的用地红线也即边线,可以采用包括索贝尔(Sobel)算子等在内的经典梯度操作算子与图像进行卷积操作,得到的结果即为图像的边缘轮廓图。
步骤S2中,可通过以下步骤来实现:
(1)读取CAD文件并定位到用地红线所在的图层,使用CAD SDK或API读取文件,并获取所需图层信息;
(2)提取用地红线的轮廓信息,包括位置、方向和长度等,可以使用向量运算和矩阵变换等数学方法对CAD图形进行处理,提取轮廓信息;
线段长度计算公式:,其中/>为线段,/>和/>为起点和终点横坐标,/>和/>为起点和终点纵坐标;
向量点积公式:,/>和/>为向量,/>和/>为向量/>和/>的模长,/>为向量/>和/>的夹角;
(3)根据用地红线的位置和方向,确定红线范围内的图像区域,可以使用简单的几何计算(如矩形交)或复杂的图像分割算法实现,矩形交面积公式:,其中/>、/>、/>、、/>、/>、/>和/>代表矩形的边界坐标;
(4)对红线范围内的图像进行要素识别,根据不同特征信息进行区分并识别其特征边界,可以使用传统的计算机视觉算法(如边缘检测、特征提取、聚类等)或深度学习模型(如卷积神经网络、语义分割网络等)实现:
Sobel算子:,/>,其中I为输入的图像矩阵,/>和/>分别代表图像在x和y方向上的梯度值;
(5)将每个要素单元根据其特征信息进行进一步分类,可以使用图像处理和机器学习算法实现,如神经网络:
神经网络的反向传播算法:,其中/>是连接第l+1层和第l层神经元之间权重的矩阵,/>是第l+1层的误差项,/>表示按元素相乘,/>是第l层神经元的激活函数对于加权输入/>的导数;
(6)对于每个要素单元,识别其特征边界,可以使用计算机视觉、图像处理和深度学习算法实现,如轮廓检测、角点检测、边界框回归等;
(7)通过多段线将所有特征边界绘制出来。
上述步骤(4)中对红线范围内的图像进行要素识别,实现图像识别则需要在CAD软件中调用外部程序,可按照以下步骤进行:
通过官方网站下载安装包,并按照指示在计算机上安装OpenCV库,在VBA环境下,在代码中引用OpenCV库并调用其函数实现图像处理和分割,在程序中加载CAD文件,并通过VBA命令和API函数选择红线所在的图层和区域,通过CAD软件提供的打印或保存为图像等功能将CAD图形转换为位图,通过调用OpenCV库中的函数基于颜色的阈值分割算法进行图像分割,获取红线相关的信息,利用处理得到的红线信息反向映射回CAD文件中,通过调用CAD软件提供的API函数,根据处理结果对CAD图形进行修改,例如添加标注、修改线型等自动化操作。
在OpenCV中实现识别用地红线范围的要素,需要采用图像分割算法进行识别,将CAD图像调用OpenCV,采用以下方法:
(1)基于颜色阈值从图像文件中提取红线区域,将图像转换到HSV色彩空间,并根据红色的H(色调)和S(饱和度)通道阈值,得到包含红线的二值掩码,公式如下:
;
其中,表示二值掩码,/>和/>分别表示图像在位置/>的像素在HSV空间中的色调和饱和度,/>、/>、/>、/>分别表示阈值范围;
(2)对于二值掩码中存在的由于噪声引起的小区域,需要使用形态学操作如膨胀和腐蚀,和连通性处理如开运算和闭运算等方法去除;
(3)使用轮廓检测算法,例如找到二值图像中所有的轮廓,并采用一定的筛选规则来判断是否是红线轮廓,来获取红线的轮廓信息,
公式为,其中C表示所有轮廓的集合,/>表示第i个轮廓,/>表示轮廓/>的面积,对于一个连通区域,它的面积是由多个像素点组成的,进一步的,该轮廓检测算法,其中的/>表示的是轮廓/>对应的连通区域的像素点个数,因此可以将连通区域看作是一个像素点集合,而C应该被理解为所有连通区域的集合;
(4)根据红线轮廓信息,可以计算出红线的位置信息,例如坐标、长度、方向等,这可以通过计算轮廓的中心点、端点和方向角度等几何量来实现。
在CAD中调用OpenCV,需要用到以下技术方法:
使用CAD软件提供的打印或保存为图像等功能将CAD文件转换为常见的如BMP、JPEG的位图格式,使用OpenCV库提供的函数,在OpenCV环境中读取CAD文件转换后的图像文件,利用OpenCV提供的图像处理技术如边缘检测、色彩分割等方法,对图像进行处理并得到所需信息,利用AutoLISP编程语言编写AutoCAD插件,在AutoCAD中调用OpenCV库,将处理结果反向映射回CAD文件中,以通过COM对象连接AutoCAD和OpenCV,在AutoCAD中调用OpenCV相关功能,实现与OpenCV的交互。
识别图像中不同要素如不同果林、苗圃、农田、水塘、道路、建筑、水渠、河流、荒地等面积信息,实现图像中不同要素识别和多段线生成,通过以下方式进行:
(1)首先对原始图像进行预处理,包括去噪、增强、灰度化等操作,具体为Preprocessing:I′=Enhancement(De-noising(I)),其中,I表示原始图像,I′表示预处理后的图像,De-noising是去噪函数,Enhancement为增强函数;
(2)采用基于深度学习的目标检测算法,如Faster R-CNN、YOLOv3等,来实现对图像中的不同要素进行分割和分类,具体如下:
Faster R-CNN:cv2.dnn.readNetFromCaffe(prototxt,caffeModel);
net.setInput(blob);
detections=net.forward();
YOLOv3:cv2.dnn.readNetFromDarknet(cfgFile,weighFile);
net.setInput(blob);
layerOutputs=net.forward();
其中,prototxt和caffeModel分别表示模型的结构文件和权重文件,blob表示经过预处理后得到的数据块,detections和layerOutputs 分别表示检测结果和输出特征图;
(3)根据目标分割和分类的结果,将不同要素的区域提取出来,并进行形态学操作和轮廓提取,以消除噪声和连接断裂部分,具体如下:
Extract ROIs:ROIs=GetROIs(I′,detections);
其中,GetROIs是提取目标区域的函数,ROIs表示提取得到的感兴趣区域;
(4)根据提取得到的目标区域,利用形态学操作、边缘检测、轮廓提取等方法将图像中的物体边界分割出来,并将其转换成多段线,具体如下:
Contour Extraction:contours=findContours(li,mode,method);
Contour Approximation:=approxPolyDP(contours,∈,closed);
Attribute Retrieval:Polyline.setAttributes(area,name);
CADPolylineGeneration:CADPolyline=coordinate Transformation(Polyline);
其中findContours表示轮廓提取函数,mode和method分别表示轮廓检索模式和近似方法,Polyline表示生成的多段线对象,∈和closed分别表示近似精度和是否闭合,area和name分别表示名称和面积信息,CADPolyline表示多段线对象在CAD坐标系下的表示方式;
(5)将生成的多段线反向映射回CAD文件中,具体如下:
Coordinate Transformation:cv2.perspectiveTransform(points,M);
其中,points是待转换的点集,M是变换矩阵,根据摄像机参数和场景信息计算得到。
步骤S3中,可以使用Python中的文本处理模块实现对不同桩号范围内的要素信息用不同段落进行统计,具体流程如下:
(1)定义好统计表的格式,包括表头、列名等信息;
(2)根据多段线所在的桩号范围,将其归入对应的类别中,可以通过遍历多段线列表,分别提取每个多段线的起始和终止桩号,并根据这些信息将其归入对应的类别中,可表示为:
category=getCategory(startMileage,endMileage);
其中,startMileage和endMileage分别表示多段线的起始和终止桩号,getCategory是根据桩号范围获取类别的函数;
(3)对于每个多段线,提取其包含的要素信息,并将其保存到相应的类别中,使用多段线对象的属性来获取名称、面积等信息,如下:
name=Polyline.getName();
area=Polyline.getArea();
其中,Polyline表示待处理的多段线对象,getName和getArea分别表示获取名称和面积的函数;
(4)遍历每个类别中的多段线,将其中的要素信息按照格式输出到对应的段落中,使用Python中的字符串操作函数来生成段落内容;
(5)将所有类别的段落按照顺序拼接起来,并输出到指定文件中,使用Python中的文件操作函数来实现。
上述(4)中遍历每个类别中的多段线,统计每个类别的要素信息时,需要遍历该类别中的所有多段线,并将其中的要素信息按照格式输出到对应的段落中,方法如下:
对于每个类别:
paragraph = category + "\n”#生成标题行;
tableFormat = ":{:<width1}{:< width2}{:<width3}"#定义表格格式;
for each polyline in category:#遍历该类别中的多段线;
name = polyline.getName()#获取要素名称;
area = polyline.getArea()#获取要素面积;
row = tableFormat.format("", name,area) + "\n” #生成一行数据;
paragraph+= row#将一行数据添加到段落中;
其中,category表示当前处理的类别,paragraph表示生成的段落内容,tableFormat表示表格格式,width1、width2和width3分别表示列宽,遍历类别中的多段线时,需依次获取每个多段线的名称和面积等信息,并根据表格格式生成一行数据,最后将所有的行数据拼接起来,生成完整的段落内容。
Claims (5)
1.一种基于图像和机器算法生成征地拆迁表的地物识别方法,其特征在于,包括以下步骤:
S1:采用无人机进行航拍,设置标靶点与路线用地红线并用坐标系进行标定,采用Pix4Dmapper软件处理和拼接,生成全息图像,加载图像至CAD带路线桩号的用地红线中,对摄影图像进行预处理得到满足像素要求的TIF格式图像,通过相控点和RTK控制点将图像移至与道路相同的坐标系中,使图像与道路中线和红线位于同一种参考系;
S2:对CAD中用地红线范围内的图像进行要素识别,要素为不同果林、苗圃、农田、水塘、道路、建筑、水渠、河流、荒地的面积信息,并将各要素进行划分单元边界线,识别不同要素单元的特征信息,先识别红线,然后识别红线范围内的图像,将红线范围内的图像根据不同特征信息进行区分并识别其特征边界,绘制多段线特征边界;
S3:将步骤S2中单元边界线用多段线绘制,将识别出的要素特征信息显示在单元多段线内,用不同段落统计不同桩号范围的多段线包含的要素信息;
S4:在步骤S2中采用机器视觉算法识别用地红线和红线范围内的地物信息;
对红线范围内的图像进行要素识别,并在CAD软件中调用外部程序进行图像识别,按照以下步骤进行:
(1)安装OpenCV库,在CAD中调用OpenCV库;
(2)加载CAD文件并获取红线所在区域,将CAD图形转换为位图;
(3)使用OpenCV进行图像分割,将处理结果反向映射回CAD文件;
在CAD图像调用OpenCV,在OpenCV中采用图像分割算法识别用地红线范围的要素,按照以下步骤进行:
(1)将CAD文件导出为图像,在OpenCV中读取图像,利用OpenCV提供的图像处理技术进行图像处理,将处理结果反向映射回CAD文件中,再利用COM对象,与OpenCV交互;
(2)基于颜色阈值从图像文件中提取红线区域,得到包含红线的二值掩码,
采用,其中,/>表示二值掩码,/>和/>分别表示图像在位置/>的像素在HSV空间中的色调和饱和度,/>、/>、/>、/>分别表示阈值范围;
(3)采用形态学操作和连通性处理去除二值掩码中存在的由于噪声引起的小区域;
(4)采用轮廓检测算法检测并提取红线轮廓,获取红线的轮廓信息,利用红线轮廓信息计算红线的位置信息,轮廓检测算法,其中C表示所有轮廓的集合,/>表示第i个轮廓,/>表示轮廓/>的面积,对于一个连通区域,它的面积是由多个像素点组成的,进一步的,该轮廓检测算法,其中的/>表示的是轮廓/>对应的连通区域的像素点个数,连通区域为一个像素点集合,而C为所有连通区域的集合;
S5:采用Python将步骤S3和S4的要素和地物信息通过CAD多段线自动划分显示,点击不同要素和地物信息单元后显示单元的特征信息,手动修改CAD多段线,统计特征信息;
S6:将S5中的CAD各单元要素和地物信息输出为Excel,使用编程语言,编写CAD插件,与Excel的数据交换和处理,一键输出征地拆迁表。
2.根据权利要求1所述的一种基于图像和机器算法生成征地拆迁表的地物识别方法,其特征在于:
所述步骤S1通过以下步骤实现:
(1)根据公路勘测规范要求布置全线测绘控制点,现场布置平面和高程控制点,根据规范要求布置控制点,保证控制点前后间距和通视条件,用GPS采集控制点,航飞前根据测绘相关规定要求布置相控点,并与控制点联测;
(2)完成步骤(1)后,在用无人机航飞前将公路路线导入无人机操作APP中,设定航飞路径,飞行完成后将图像用Pix4Dmapper软件预处理和拼接,得到完整TIF格式图像;
(3)用图像导入CAD插件VLX,将步骤(2)得到的完整TIF格式图像导入到有路线和用地红线的CAD中,采用坐标校正命令insg,使图像与地形图坐标系一致。
3.根据权利要求1所述的一种基于图像和机器算法生成征地拆迁表的地物识别方法,其特征在于:
所述步骤S2通过以下步骤实现:
(1)读取CAD文件并定位到用地红线所在的图层,读取文件,获取所需图层信息;
(2)提取用地红线的轮廓信息,包括位置、方向和长度,使用向量运算和矩阵变换数学方法对CAD图形进行处理,提取轮廓信息;
(3)根据用地红线的位置和方向,采用矩形交算法确定红线范围内的图像区域,矩形交算法为:
,其中/>、/>、、/>、/>、/>、/>和/>代表矩形的边界坐标,/>代表矩形交面积;
(4)对红线范围内的图像进行要素识别,采用Sobel算子对不同特征信息区分并识别其特征边界,Sobel算子:,/>,其中I为输入的图像矩阵,/>和/>分别代表图像在x和y方向上的梯度值;
(5)采用神经网络算法对每个要素单元根据其特征信息进行进一步分类,神经网络算法:,其中/>是连接第l+1层和第l层神经元之间权重的矩阵,是第l+1层的误差项,/>表示按元素相乘,/>是第l层神经元的激活函数对于加权输入/>的导数;
(6)对于每个要素单元,识别其特征边界;
(7)通过多段线绘制所有特征边界。
4.根据权利要求1所述的一种基于图像和机器算法生成征地拆迁表的地物识别方法,其特征在于:
步骤S2中识别图像中不同要素的面积信息,按照以下步骤进行:
对原始图像进行预处理,采用基于深度学习的目标检测算法对图像中的不同要素进行分割和分类,根据目标分割和分类的结果,对不同要素进行形态学操作和轮廓提取,根据提取得到的目标区域,采用形态学操作、边缘检测、轮廓提取方法分割图像中的物体边界,转换成多段线,并反向映射回CAD文件中。
5.根据权利要求1所述的一种基于图像和机器算法生成征地拆迁表的地物识别方法,其特征在于:
所述步骤S3通过以下步骤实现:
使用Python中的文本处理模块对不同桩号范围内的要素信息用不同段落进行统计,定义统计表格式,对识别出的多段线进行分类,提取多段线包含的要素信息,统计每个类别的要素信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310676252.5A CN116403132B (zh) | 2023-06-08 | 2023-06-08 | 一种基于图像和机器算法生成征地拆迁表的地物识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310676252.5A CN116403132B (zh) | 2023-06-08 | 2023-06-08 | 一种基于图像和机器算法生成征地拆迁表的地物识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116403132A CN116403132A (zh) | 2023-07-07 |
CN116403132B true CN116403132B (zh) | 2023-08-18 |
Family
ID=87020257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310676252.5A Active CN116403132B (zh) | 2023-06-08 | 2023-06-08 | 一种基于图像和机器算法生成征地拆迁表的地物识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116403132B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117494248B (zh) * | 2023-12-29 | 2024-04-12 | 中科图新(苏州)科技有限公司 | 坐标数据处理方法、装置、计算机设备、存储介质 |
CN117789053B (zh) * | 2024-01-02 | 2024-07-16 | 东南大学建筑设计研究院有限公司 | 一种基于多图像增强语义分割的产权地块识别方法 |
CN118134398A (zh) * | 2024-05-06 | 2024-06-04 | 安徽省交通规划设计研究总院股份有限公司 | 基于cad对象特性的标记数量表生成系统、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106247936A (zh) * | 2016-08-26 | 2016-12-21 | 江苏省工程勘测研究院有限责任公司 | 基于三维激光扫描的征地拆迁实物调查方法及调查系统 |
CN109191574A (zh) * | 2018-09-07 | 2019-01-11 | 江苏省工程勘测研究院有限责任公司 | 基于无人机倾斜摄影的征地拆迁实物调查信息管理系统 |
WO2020107687A1 (zh) * | 2018-11-27 | 2020-06-04 | 邦鼓思电子科技(上海)有限公司 | 一种基于视觉的工作区域边界的检测系统、方法及机器设备 |
WO2020233152A1 (zh) * | 2019-05-17 | 2020-11-26 | 东南大学 | 基于城市建筑空间数据的建成区边界识别方法及设备 |
KR20210072689A (ko) * | 2019-12-09 | 2021-06-17 | 주식회사 업데이터 | 딥러닝 영상인식을 활용한 지장물 예측 모델 생성 방법 및 장치 |
WO2022088407A1 (zh) * | 2020-10-29 | 2022-05-05 | 东南大学 | 基于实体模型的城市设计无纸化智能交互审查方法 |
CN115205692A (zh) * | 2022-09-16 | 2022-10-18 | 成都戎星科技有限公司 | 基于生成对抗网络的典型地物要素智能识别与提取方法 |
CN115964456A (zh) * | 2023-03-16 | 2023-04-14 | 广东泰一高新技术发展有限公司 | 一种地理信息空间数据管理方法及管理系统 |
-
2023
- 2023-06-08 CN CN202310676252.5A patent/CN116403132B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106247936A (zh) * | 2016-08-26 | 2016-12-21 | 江苏省工程勘测研究院有限责任公司 | 基于三维激光扫描的征地拆迁实物调查方法及调查系统 |
CN109191574A (zh) * | 2018-09-07 | 2019-01-11 | 江苏省工程勘测研究院有限责任公司 | 基于无人机倾斜摄影的征地拆迁实物调查信息管理系统 |
WO2020107687A1 (zh) * | 2018-11-27 | 2020-06-04 | 邦鼓思电子科技(上海)有限公司 | 一种基于视觉的工作区域边界的检测系统、方法及机器设备 |
WO2020233152A1 (zh) * | 2019-05-17 | 2020-11-26 | 东南大学 | 基于城市建筑空间数据的建成区边界识别方法及设备 |
KR20210072689A (ko) * | 2019-12-09 | 2021-06-17 | 주식회사 업데이터 | 딥러닝 영상인식을 활용한 지장물 예측 모델 생성 방법 및 장치 |
WO2022088407A1 (zh) * | 2020-10-29 | 2022-05-05 | 东南大学 | 基于实体模型的城市设计无纸化智能交互审查方法 |
CN115205692A (zh) * | 2022-09-16 | 2022-10-18 | 成都戎星科技有限公司 | 基于生成对抗网络的典型地物要素智能识别与提取方法 |
CN115964456A (zh) * | 2023-03-16 | 2023-04-14 | 广东泰一高新技术发展有限公司 | 一种地理信息空间数据管理方法及管理系统 |
Non-Patent Citations (1)
Title |
---|
变分法遥感影像人工地物自动检测;胡翔云;巩晓雅;张觅;;测绘学报(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116403132A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116403132B (zh) | 一种基于图像和机器算法生成征地拆迁表的地物识别方法 | |
Kakani et al. | Improved OCR based automatic vehicle number plate recognition using features trained neural network | |
CN113160192B (zh) | 复杂背景下基于视觉的压雪车外观缺陷检测方法及装置 | |
CN108229303B (zh) | 检测识别和检测识别网络的训练方法及装置、设备、介质 | |
Alidoost et al. | A CNN-based approach for automatic building detection and recognition of roof types using a single aerial image | |
CN103049763B (zh) | 一种基于上下文约束的目标识别方法 | |
EP4091109A1 (en) | Systems for multiclass object detection and alerting and methods therefor | |
CN112528878A (zh) | 检测车道线的方法、装置、终端设备及可读存储介质 | |
US9530218B2 (en) | Method for classification and segmentation and forming 3D models from images | |
Wang et al. | Tea picking point detection and location based on Mask-RCNN | |
CN108230330B (zh) | 一种快速的高速公路路面分割和摄像机定位的方法 | |
CN110838105A (zh) | 一种业务流程模型图像识别与再构方法 | |
CN112883926B (zh) | 表格类医疗影像的识别方法及装置 | |
CN111680690A (zh) | 一种文字识别方法及装置 | |
US11880981B2 (en) | Method and system for leaf age estimation based on morphological features extracted from segmented leaves | |
CN115115954A (zh) | 基于无人机遥感的松材线虫病疫区变色立木智能识别方法 | |
CN116883650A (zh) | 一种基于注意力和局部拼接的图像级弱监督语义分割方法 | |
CN115100469A (zh) | 一种基于分割算法的目标属性识别方法、训练方法和装置 | |
Chen et al. | Improved fast r-cnn with fusion of optical and 3d data for robust palm tree detection in high resolution uav images | |
CN112241736A (zh) | 一种文本检测的方法及装置 | |
CN112686872B (zh) | 基于深度学习的木材计数方法 | |
CN111914706B (zh) | 一种文字检测输出结果质量检测和控制的方法与装置 | |
CN111709377B (zh) | 特征提取方法、目标重识别方法、装置及电子设备 | |
CN116703904A (zh) | 一种基于图像的钢筋数量检测方法、装置、设备及介质 | |
Varkentin et al. | Development of an application for car license plates recognition using neural network technologies |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |