依庄防,博士,泰伯网海外特约专栏作者。傣族,出生于西双版纳,目前就职于Development Seed(美国华盛顿特区),是一位机器学习算法工程师。
作者: 依庄防
人工智能不可阻挡地向各行业渗透。这一现象,恰巧撞上了“商业遥感卫星发射潮”。这似乎预示了某种潜流。此刻,从事卫星遥感影像解译和大数据提取的专业人士、科研人员、政府部门和企业都跃跃欲试:恨不得在获取数据的同时,一股脑儿在卫星上直接解译、处理和打包,地面接收站再根据用户需求分发。
显然,这种愿景目前还无法实现。商业卫星影像本身数据量庞大,有很多难点尚未攻关。不过,在高分辨率影像应用领域,市场和科研都有一些亮眼的成果——它们让高分遥感从获取、解译到数据分配的一条龙服务的愿景成为可能。
(注:目前热议的人工智能,其实包括了很多领域和应用。讲真,所有可以用机器代替人工来做,特别是重复性强的,在媒体报道中都统称人工智能。本文所指的人工智能,具体指用机器学习、深度学习等计算机视觉技术去分析、解译高分遥感数据。)
所以,只有充分了解高分辨率遥感影像的直接应用难度,才能为人工智能与遥感的结合,构建合理的想像。
高分遥感应用难度
难度1. 数据大
高分遥感影像的分辨率越大,其数据就越大。
30米分辨率指的是遥感影像上每一个像素对应的地物是30米x30米。比如地面120米 x 120米的地块,在分辨率为30米的卫星影像图上是16个像元,但是在3米x 3米的卫星影像上就是1600个像元,到了30厘米 x 30厘米的卫星影像图中则变成了160000个像元。
分辨率越高记录的数据信息越详细,不仅仅是像元随着高分影像增大,其每个像元的信息复杂性也在增加,因此高分遥感影像分辨率的提高和其更低分辨率影像之间的文件大小不是线性关系。
难度2. 分析难
分辨率越高,信息量越大,数据提取就越难。
同一个地点,高分辨率遥感影像随着分辨率越高获取的地面数据越多,信息越复杂,就越难提取有用的信息。
如果在一二十年前用Landsat卫星影像(30米分辨率)做一个县市级别的土地利用分类工作,直接把数据导入地理信息和图像解译工作平台(ERDAS,ENVI和ArcGIS等等)大概都可以作出个产品来。但是如果卫星影像分辨率达到了30厘米(相当于30m分辨率高出100倍的精度):30米分辨率时只能看到大概的形状,30厘米就可以看到路上行驶的车辆了——遥感影像分辨率越高,精度越高,可以观察到的地物就越多,那么在众多繁杂的信息中分辨出有用信息的难度就越大。
普通影像处理软件处理分辨率越高的影像就越困难,此时人工智能的作用就凸显了。高性能超级计算机,可以不知疲倦地实时处理人工和普通影像处理软件无法完成的工作。
Digital GlobeWorldView-3影像两个分辨率对比图,左图是分辨率为1.24米(文件大小为1.7M),右图分辨率是0.31米(图片大小是10.2M)
难度3. 可用性不确定
解译数据的可用性。
这时,可能会有遥感专业的同事说,信息量大,正是高分辨率遥感的魅力所在。这话是没有错的。
下面咱们还要讲怎么使用人工智能遥感从高分辨率遥感影像中提取有用的信息。但是在实现这一步之前,有一个不可忽视的细节难度——分辨率越高的影像解译和提取的信息越多,处理不好,反倒可能使得结果没办法用。
我们从高分辨率影像中提取的数据,最终目的是希望可以放在地图上,供专业人士或者普通市民使用。基本上很多计算机视觉里面使用到机器学习和深度学习(比如图像分割、对象检测和图像分类)都可以在高分辨率遥感中应用。
无人驾驶汽车使用的机器学习算法是图像分割,即该车在街道上行驶时不断的拍照和解读,哪里是道路、道路边界、行道树和行人。从高分辨率遥感解译信息其实也是这么一回事,从图像分割中知道哪里是楼房、道路、桥梁、树林、机场等等。
和一般计算机视觉不同的是,高分遥感提取的数据需要放在地图上,就是说这数据不仅要在机器学习(人工智能)模型中达到好的精度,还要有准确的地理信息(比如经纬度等等)——这最终才有可用性。
比如咱们用图像分割中解译出来的道路在地图上向右平移了5米,或者解译出来的楼房缺了三分之一等等。那么数据要用到现实生活,如导航或者计算建筑面积,就没啥用了。
难度4.其他
高分辨率遥感影像本身特点带来的问题。
除了以上高分辨率遥感影像文件大、信息复杂、信息提取难度高、以及人工智能模型结果的可用性不确定等因素之外,高分辨率遥感影像本身还存在以下问题:
①云层覆盖。大家抬眼看天空,云层千变万化。不同的季节和地区云层覆盖不一。一旦卫星影像研究区域的云覆盖率到了10%以上就很难从中提取好的数据。当然这个问题在商业小卫星覆盖率高的地区,卫星可以在短时间内重复性的访问一个地点,或者在天气晴朗的时候使用无人机获取数据等,是可以解决这个问题的。
②时空分辨率的取舍。空间分辨率,是到目前一直强调的高分辨率。而时间分辨率指的是遥感影像以多高的频率获取,比如是一天拍一次上海,还是一个月一次,还是一年一次。
高分辨率卫星影像不仅仅处理和解译难,获取的费用也是不菲的。因此没有长期的研究、资金支持和投入,没有市场需求,同时开发的高分遥感产品不能在时间或空间分辨率中占得优势的话,企业很难在市场上存活。比如美国Digital Globe,它的卫星影像是根据客户需要去采集数据,它最好的数据产品WorldView-3和4的分辨率可达0.31米。Planet Lab的商业模式则不同,它是通过提高时间分辨率但(部分)放弃空间分辨率(他们的最高分辨率的卫星影像产品是1米空间分辨率),以实现每周生成覆盖全球的遥感影像。当然,Planet同时也在提高卫星影像的空间分辨率来抢占市场。
③波段多,难以取舍。和计算机视觉的机器学习、人工智能模型中大部分只是用红绿蓝三个色相通道(就是普通的照片)不同,高分辨率遥感影像可以有十几到上百个波段,不同的地物解译和图像分割可选取不通的波段组合。但是选择多了也很痛苦,因为目前高分率波段组合和选择在机器学习(人工智能)上的应用还没有足够积累。
人工智能和高分遥感的结合
人工智能和高分辨率遥感可以说是天作之合。
高分辨率遥感影像的存在是为了能让我们实时监测地面发生的变化。比如一个城市哪里新建了房屋,哪里新建了道路桥梁;农业上哪一个作物得了病虫害;或者哪一个地区发生旱灾涝害,要怎样疏导灾民,如何重建。也有保险公司在实时监测用户的屋顶材料和冰雹雪灾之间的联系,从而为拓展房屋保险业务提供服务。人工智能可以让我们大规模、智能化、实时性的实现数据提取。
前面说了那么多困难,那么,人工智能和高分辨率遥感影像解译能结合吗?能有未来吗?答案是肯定的。下面待我给大家一一解读。
传统计算机视觉的新玩法
01.啥是机器学习(深度学习)
机器学习可以分为监督学习,非监督学习和强化学习。
顾名思义,监督学习指的是告诉模型你认为图像里哪是房子哪是路,人工智能就会建立原始卫星影像和你给的标签(房子,道路)之间的数学关系。非监督学习就是不告诉模型哪是房子哪是道路,模型根据卫星影像里面的像元值对图像进行分类。强化学习则是啥也不告诉模型,让模型自己学习,并不断强化。当然我这是往简单里说,具体的解释大家可以参考其他机器学习的资料。
高分辨率遥感影像解译用的最多的是监督学习。
第一排的两张图是监督学习中的图像分割训练数据(左图是卫星影像图,右图是标签数据——房子和道路)。这个训练图集的关系就如同解方程式:其中卫星影像图就相当于X,标签数据就是y,人工智能模型就是在X和y中找数学关系。然后我们可以通过这个关系从未被人工智能模型训练过的卫星影像图中提取房子和道路的信息。
第二排的两张图是监督学习中的对象检测训练数据(左图是卫星影像图,右图是房子的对象检测框)。
在第一排训练数据训练的图像分割模型,就可以从高分辨率遥感影像中找出卫星影像中哪一个像元是房子或者道路。第二排训练数据集训练的模型则可以用来“找房子”,这个方法一般可以用来数房子,即可以用通过新房子在一段时间的建设数量来衡量区域经济发展的速度。比如第一排的训练数据集可以通过在高分辨率遥感影像和标签数据之间建立数学关系(这里通常通过深度学习的方法),进而预测未知影像中的检测对象。
人工智能模型通过输入的高分辨率遥感影像和标签数据来预测检测对象。图中第一排是房屋建筑面积的预测模型,第二排是道路系统检测模型。
02.高分影像和开放街道地图(Open Street Map)为机器学习新玩法雪中送炭
高分遥感影像数据量大,传统的分析方法是下载一整片卫星影像,导入到可以用来分析这个影像的地理信息软件中来分析。这项工作繁琐、缓慢、不讨好,而且受各种不可知因素影响。没有大量的人工投入很难用于应急,比如洪涝灾害来了,只能依靠过往的地图和模型信息积累来开展工作。
通过区块地图服务(Tile Map Service)实现高分遥感的实时分享,以及开放街道地图的存在,它们是未来人工智能在高分辨率遥感影像解译方面长足发展的两个重要基础。要做到以上实时预测道路网络,离不开这两个基石。
03.区块地图服务(Tile Map Service)
大家肯定熟悉百度地图、高德地图、必应卫星影像图。照理来说,全球或整个中国的地图数据那么大,储存了那么多数据,比如你喜欢的餐馆、书店、咖啡馆、电影院等等,以及你上学、上班和回家的每一条路,还有千千万万同学的同学、朋友的朋友的住宅小区等等。数据那么大,可是并不妨碍你一打开手机就可以浏览。
这得益于区块地图服务(当然还有其他的技术,咱们先往简单里说),这个技术可以使我们从全球地图开始,点击放大地图20次就可以看到世界上任何一个地区的街景。地图在每一次放大过程中的信息量不一样,在全球水平上是非常粗糙的国家级数据,放大20次在手机屏幕上展示的信息就是你感兴趣的街景图。
在放大地图的过程中越来越多的信息被展现,在缩小的过程你会发现经常走的那条街不见了,慢慢的学校在地图上消失了,然后在全国地图上你只看到你的省会城市。
这和高分遥感影像实时分享有啥关系?说白了就是同一个道理。高分遥感简单的说是你可以放到最大看到的卫星影像图,精细、信息量大。可以想像,这些块状的卫星影像就像地板砖一样(英文用词是tile,很形象),分辨率为1米的块状卫星影像要覆盖(铺满)整个中国大概需要千万亿块(960万平方公里)。可想而知要在这个分辨率尺度上解译国家级别的数据,这个工作量和人工需求有多大,就更不要说比1米分辨率更高的高分辨率影像了。
商业卫星影像公司可以通过生成不同分辨率影像,来满足不同的用户需求。比如要做建筑物占地面积或者道路系统的人工智能模型,就会希望用到最高空间分辨率的影像(下图提到的放大次数我们希望用到zoom level 17以上的影像数据),但是做农业相关的土地利用图就不需要高分辨率的影像。
区块地图服务可以从全球低分辨率的卫星影像放大到高尺度的卫星影像。
04.开放街道地图
开放街道地图是以人人都可以编辑的世界地图为其宗旨。全球有几百万会员每天都在世界不同的国家和地区编辑和录入数据。其中人道主义援助的贡献特别突出,比如海地和尼泊尔地震期间就有全球的志愿者通过高清卫星影像编辑地图,比如勾画出哪个地段的道路和房子被毁了,哪里是最近的救援点和医院等等。
开放街景地图可以作为机器学习的训练数据集,特别是训练数据中的标签数据。我们最近开发了一个开放的python数据包,叫做Label Maker。该数据包可以从开放街道地图的API匹配同个地区的Mapbox卫星影像来生成包括TensorFlow、MXNet、Pytorch、Theano和Keras框架下的深度学习训练数据集。
我们在Label Maker的上面放了几个机器学习的案例,包括图像分类和对象检测,大家可以去看看(我的中文博客介绍)。
高分影像、开放街景地图和Label Maker,加上云计算,可以实现很多以往传统的中低分辨率遥感影像和传统的卫星影像解译无法做到的。SkyNet是我们做图像分割的一个机器学习方法,开放的,大家可以去玩玩。
我们用SkyNet可以实时从高分遥感影像中解译道路系统。当然SkyNet的背后是剑桥大学在前几年开发的SegNet技术。机器学习中的图像分割(也是SkyNet)背后的技术是目前无人驾驶汽车中主要使用的计算机视觉技术之一。 我们现在还在开发更多、更新、运算更快的算法。北美和全球都有很多类似的公司和机构,开发各种深度学习、传统机器学习在高分辨率遥感影像解译中的应用软件包和工具。希望未来可以给大家多多介绍。
高分遥感影像的出现和人工智能可以帮我们做很多事情。作为这个领域的专业人士,我们该从应用的角度出发,挖掘人工智能和高分影像的应用。比如对于智能城市的建设,第一道数据关口是我们的城市里道路建设和房屋状况是怎么样的?哪里发展最快,哪里比较慢,为什么?洪涝灾害来了哪里会受灾比较严重?医院学校都建在哪里,其他的公共设施都建在哪里?
高分遥感的实时更新以及人工智能的快速运算,需要能够回答智能城市建设的最基本问题。比如下图,通过对比人工智能模型的建筑占地面积预测结果和已经在地图上标记的建筑占地面积,就可以找出一个城市哪些建筑是新的、还没有标记在地图上的。开放街景地图的制图任务管理人员可以号召制图志愿者到这些地方添加没有地图标记的建筑物。同样的道理,人工智能和高分辨率遥感影像的结合,除了可以帮城市规划机构标记城市化的进程外,遥感的多光谱波段还可以“看见”城市建筑物的材料,从而“预见”城市在不同自然灾害下的脆弱程度,这对灾后重建工作也会起到很大作用。
浅见未来
01.人工智能也需要加入人的协助
目前人工智能在高分辨率遥感影像上的应用日新月异,但是因为卫星遥感影像应用难度,以及人工智能本身的应用瓶颈,还不能实现全程的自动化。因此,从卫星影像采集到卫星影像解译和数据整理一条龙服务还难以达到。不过,相关专业人士可以在这个过程中助力。
比如上面提到的道路系统和房屋建筑占地面积预测在一定程度上是可以实现全程自动化的,但是还有大量案例是无法全部自动化的。
2018年我们帮助世界银行制作巴基斯坦、尼日利亚和赞比亚三国的高压电网图。高压电网在高分辨率影像中是非常难以分辨的,我们通过人工智能模型预测高压电塔的分布、引导专业制图人员制图的方式完成,这要比传统人工查看高压电塔、画高压电网的方法在速度上提高了33倍工作产出(该方法现在是开放的报告和模型方法,可供大家参阅)。
02.高分辨率影像解译和人工智能要完成三件事
现在人工智能(机器学习和深度学习)和高分辨率遥感的解译和应用热情空前高涨,但是所有业内人士也不能忽略这个问题:如何从高分遥感影像中提取可直接应用的数据。
这个问题不是专业人士拍拍脑袋就能够决定的,而是应该从不同应用案例和使用者的角度出发来解译和整理数据。比如同样的方法论,我上面提到的应用图像分割从高分辨率遥感影像中提取道路系统。城市规划师需要的数据与交通管理部门不同,涝灾情况下的导航需要的道路系统也与灾后重建所需要的不同。
道路系统属性不同,能够支持不同的工作和需求。因此,机器学习算法工程师和高分辨率遥感影像解译的工作,必须能够满足三方面的要求:第一,数据的完整性;第二,预测的准确性;第三,数据的应用性。其中,第三个条件不应该是最后考虑的,而是要在人工智能模型的开发过程中贯穿始终。
希望我们可以一起做更多更有意义的工作,通过开放的软件开发服务更多的社区、地区、国家和需要数据的人。
文章转载泰博网