算法|卫星遥感—地块/边界提取相关论文
作者:德怀特Development of a Parcel-Level Land Boundary Extraction Algorithm for Aerial Imagery of Regularly Arranged Agricultural Areas
链接:https://zhuanlan.zhihu.com/p/396874909
本文转载自知乎,作者已授权,未经许可请勿二次转载
- 期刊:Remote Sensing
- 第一/通讯作者:Rokgi Hong/Inhong Song-首尔大学农村系统工程系
- 投稿-接收时间:2020.12.31—2021.3.16
- 引用量:1 (截止2021.8.6)
- 论文地址:https://link.zhihu.com/?target=https%3A//www.mdpi.com/2072-4292/13/6/1167
本文使用的方法:Suzuki85 algorithm, Canny edge detection, Hough transform
假设相邻地块之间的边界是直线,因此本文开发的算法仅适用规则的农田地块(The developed algorithm is currently applicable only to regularly arranged land parcels)
introduction
从遥感图像中提取目标边界的方法可以分为三类:(1) edge-based (2) region-based (3) artificial neural network(ANN)-based
edge-based methonds:利用滤波器(image filter)检测图像梯度变化,如Gaussian filtering、watershed algorithm,缺点是这些方法的效果受限于滤波器的类型,对滤波器的类型很敏感
region-based methods:利用纹理特征描述区域特性(Region-based methods were used to delineate a region with specific characteristics using textural properties),缺点是提取的边界高度依赖于所选参数(Region-based methods can be problematic when the extracted boundaries are highly dependent on the selected parameters)
ANN-based methods:利用已有的边界数据训练人工神经网络,如结合GAN
其它方法:主动轮廓模型(activate contours)、植被指数NDVI/NDWI,但是这些方法是将具有相似属性的像素组合在一起,而不是提取多边形轮廓(these studies extracted boundaries by grouping individual pixels with similar properties rather than extracting boundary polygons with connected segment elements),在土地制图和地块分类的应用中,和像素聚合相比,提取多边形边界是更好的选择(For the applications to cadastral map production and artificial intelligence-based land cover classification, it is advantageous to extract boundaries of polygon type over the pixel aggregation.)Object boundary-based classification可以提升pixel-based land cover classification的精度
单一算法很难完成精准的农田地块边界检测,因为不同类型植被的光学属性相近(the similarities in the optical properties among various land cover types),因此本文使用多种算法,结合不同算法的优势
Suzuki85:将一个二值图像转化成边界的表示形式,并且将提取各边界之间的拓扑结构。
数字图像处理—边界跟踪算法Suzuki85:https://zhuanlan.zhihu.com/p/397588540 Canny edge detection:因为使用高斯滤波器,易出现边界侵蚀问题edge erosion issues
数字图像处理—canny边缘检测算法:https://zhuanlan.zhihu.com/p/398147697 Hough transform:检测直线
数字图像处理—霍夫变换:https://zhuanlan.zhihu.com/p/398602640 算法 本文提出的算法包括图像分割,地块边界检测和图像融合(image splitting, parcel contour detection, image merging)三个部分
文章图片
【算法|卫星遥感—地块/边界提取相关论文】parcel-level boundary extration procedures
分割图像可以提升边界检测的效率,对每一个分割后的图像(1024*1024),使用Suzuki85提取block-level contours ;hough变化检测parcel-level edges(直线检测),然后拓展到 block-level contours;第二次使用Suzuki85
1.Block-Level Contour Extraction
本文的田块数据如下,parcel是最小的田块单位;block由多个parcel组成,如下图(a)中的非常明显的白色矩形边界,包围着多个parcel。本文的检测思路是使用Suzuki85先将block的边界检测出来(block-level contour extraction),检测的效果如(c)所示,引出Suzuki85会将所有可能的边界检测出来,所以可以看到效果并不好,block边界的内部有很多“噪声边界”和我们暂时不需要的parcel边界,因此需要去除这些干扰边界。使用一定的方法去除之后的结果如(d)所示
Suzuki85算法需要二值图像,所以首先根据YCbCr color space model,将图像转换为8-bit grayscale,再利用一个合适的阈值,将grayscale转换为1-bit 黑白图像(monochrome)
文章图片
二值化的阈值选择方法:最小化intra-class variance,或者最大化inter-class variance
文章图片
其中,
文章图片
代表小于阈值的像素的个数,
文章图片
代表大于阈值的像素的个数,
文章图片
和
文章图片
是小于阈值的像素的均值和标准差,
文章图片
和
文章图片
是大于阈值的像素的均值和标准差,
二值化之后,使用Suzuki85提取block-level contours,提取的效果如下图中(c)所示,再使用Ramer–Douglas–Peuker algorithm简化轮廓信息,如下图中(d)所示
文章图片
Block-level contour extraction steps from (a) the original image, (b) binary image, (c) unprocessed contours, and (d) processed contours. Red lines represent the block-level contours.
2.Parcel-Level Edge Extraction from Block-Level Contours
将canny边缘检测算法应用到上面得到的grayscale图像,使用3*3的Sobel算子计算梯度,高阈值为240,低阈值为80。canny检测效果如下图(a)所示
canny边缘检测得到二值图像,再在此基础上,使用hough变换提取block内的地块边界(注意是在block中使用Hough变换,而不是在整张图像上——The Hough transform was used to extract the parcel edges within the block)
(疑问:如何在一个block中使用Hough变换?算法怎么知道block的位置?上一步虽然描绘出了block的轮廓,但是明显不准确,还有噪声。同时也不可能是输入block的位置标签,否则就不需要第一步检测block轮廓了,直接画出来就行了。难以理解如何在block内使用Hough变换。所以应该还是对整个图像使用Hough变换?)
这里使用probabilistic Hough transform提升计算效率(通过60个以上有效像素的边缘被判定为有效),同时少于于25像素或相互距离小于3像素的边缘被忽略。Hough变换的效果如下图(b)的蓝线,可以看到蓝线都是直线,在一定程度上消除了canny检测的一些“噪声”
(probabilistic Hough transform:随机选取一些前景点,而不是使用所有的前景点——a probabilistic Hough transform that performs a Hough transform on pixels randomly extracted from all target pixels was adopted in this study for computational efficiency)
文章图片
(a) Canny edge detection, (b) initial internal edge detection
3.Parcel Contour Extraction
将hough变换得到的直线边界叠加到(拓展到)block contours里,得到block里具体的parcel boundary(A specific parcel boundary within a block was extracted by extending a line segment from the Hough transform process to the block contours.)。edges和contours的层级关系(hierarchical relationship)通过ray casting algorithm和a type of inside-polygon test确定(all pairs of block-level contours and edges within the segment)
(疑问:这里确定的是什么样的层级关系?确定了这样的层级关系又有什么用处?——层级关系是指一个block contour是否包含一个parcel boundary,只有两个端点都在同一个block内的直线边界才会被保留并拓展到block contours内)
ray casting algorithm(光线投射算法):用来判断点相对于多边形的位置。简单来说是从某个点引出一根“射线”,与多边形的任意若干条边相交,累计相交的边的数目,如果是奇数,那么点就在多边形内,否则点就在多边形外(奇内偶外)
文章图片
A点引一条射线,与多边形3条边相交,奇数,所以A点在多边形内,而从B点引一条射线,与多边形的2条边相交,偶数,所以B点在多边形外
上面是百度找到的解释,ray casting algorithm详细内容如下(一些数学符号不太明白,云里雾里,时间有限之后再来研究),这篇论文里也给出了相关解释——An arbitrary ray was constructed to cast at a point and determined as the point lying within the contour when the ray meets the contour polygon an odd number of times. 基本和百度到的解释一样
文章图片
ray casting algorithm
a type of inside-polygon test:同样是确定一个点是否在任意polygon内部的算法:
https://www.sciencedirect.com/science/article/pii/S0925772101000128
Noise Cancelling:将角度范围
文章图片
按间隔
文章图片
分割成18个范围,计算每一条inner edge的角度,如果某个范围内inner edge的数量最多,则保留该范围内的inner edge,其它范围的都舍弃,效果如下图(c)所示
文章图片
(c) noise cancelling, and (d) density regulation. Red lines represent the block-level contours, while blue lines represent the parcel edges.To
Density Regulation:
如果两个Parcel-level edge端点距离
文章图片
和
文章图片
的长度差小于5像素,则只保留一个。Density Regulation的结果如上图(d)所示
文章图片
第二次使用Suzuki85算法
第二次使用Suzuki85算法最终确定有效的block-level contours和parcel-level edges
(Suzuki85需要输入二值图像,这里输入的应该是blok-level contour和parcel-level boundary叠加在一起后的二值图像)
文章图片
(a) the original image, (b) detected edges, and (c) extracted boundaries. Colors in (c) indicate parcel separation by different block borders.
(突然就从图(b)到(c)了?(b)是混杂在一起的直线边界,(c)是清晰的小地块边界)
算法验证 从两个方面进行匹配验证,提取的边界本身和边界组成的地块(Boundary Level Accuracy Assessments / Section Level Accuracy Assessments)
小结 Hong等人将传统图像处理方法Suzuki85、Canny边缘检测算法和霍夫变换结合使用,在假设所有相邻田块边界都是直线的基础上,实现了规则农田边界的精准检测
Hong et al. combined three traditional image processing methods, the Suzuki85 algorithm, Canny edge detection and Hough transform, to detect the boundaries of regularly arranged framlands. Performances of the developed algorithm was evaluated over six different study sites. But this algorithm only applies to regularly arranged framlands.(Since the developed algorithm is based on the assumption that land parcel boundaries are straight lines, a cautious approach should be taken in applications with non-regular shaped land parcels.)
感想 整篇论文读下来的观感不是很好,算法流程图虽然一开始就给出来了,但是文章对一些细节并没有讲清楚,更多的是“我用来什么什么算法,然后结果如下图所示”,比如说将inner edges拓展到block-level contours,具体如何拓展叠加?如果有重叠部分怎么处理。还有如何在block内使用Hough变换,block具体是怎么提取出来?(选择四个坐标点?)作者应该给出霍夫变换算法的输入和输出图像,这样就一目了然了。
同时也没有解释为什么要这么做(只是在一开始说用单一的算法效果不好,所以将几个算法结合起来使用,几行文字并并没有很强的说服力,应该用实验结果去验证)
个人决定该论文只是使用了一些传统的算法,叠加使用算是一点创新点,但是作者并没有充分的说明,证明这种做法很好。同时在解释算法流程的过程中,细节不够清晰,说明的图示太少,只给了每一步的最后结果
可能是我水平还太低,没有百分百理解,这篇论文就先放在这,以后有时间回过头再看看,应该会有其它论文使用类似的方法
☆ END ☆
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。
↓扫描二维码添加小编↓
文章图片
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- 一个选择排序算法
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 虚拟DOM-Diff算法详解
- 《数据结构与算法之美》——队列
- 算法回顾(SVD在协同过滤推荐系统中的应用)
- 简谈迪克斯特拉算法