使用Picterra和FME创建计算机视觉工作流

Picterra可以识别图像中的物体和图案。使用新的FME转换器把你的数据连接到这个平台,通过包括海豹、树苗和道路裂缝的示例,从图像中获得洞察力。

——Dmitri Bagh

计算机视觉(Computer Vision或CV)这个词早就在科学论文和专业会议报告的幻灯片中出现了。从汽车到智能手机,它在日常生活中的应用越来越多。

在Safe Software,我们不能忽视这项令人兴奋的技术。2018,我们在Safe Innovation Daze中首次尝试CV,这是一个有趣的项目,后来发展为一系列FME转换器,这些转换器使用OpenCV训练CV模型和检测图像中的物体。

我们在FME WT 2019中演示了这项技术,演示了FME 如何检测道路标记和消防栓,但是我们的很多用户想知道计算机视觉是否可以被用于地理空间图像。这很有道理,因为很多机构处理大量的航空、卫星和无人机图像,通常需要花费上百个小时进行正射,查找变化,识别新的物体,跟踪消失的实体,并用这些信息更新数据。

经过更多的实验,我们发现FME在它一直很强大的地方非常有效:为CV工具准备数据,将结果转换为可用的格式和产品。就检测本身而言,这正是我们特色的客户,瑞士公司Picterra,为图像信息提取工作流增加了真正的价值。

 

什么是Picterrra?

什么是Picterra以及它如何帮助我们的用户?我向产品市场经理Monika Ambrozowicz提出了这个问题,她这样告诉我:”Picterra是基于云的地理空间平台,让用户能够按比例尺识别地球上任何地方的物体和图案(道路裂缝、毁坏的屋顶、太阳能电池板、动物等)。Picterra独特的地方在于我们的用户基于他们自己的数据创建和部署了独特的可执行和随时可用的深度学习模型。平台不受限于特定的案例。事实上,可以肯定的说,只要你能从图像上看到的,就可以使用Picterra检测出来。所有这些都是在几分钟内完成的,不需要一行代码,只需要几个人为的注释。“

 

FME和Picterra如何协同工作

你可以使用FME读取和写出几乎所有的地理空间矢量格式,从非常流行的shapefile到国家标准再到遗留数据(legacy data)。FME还可以把任意这些格式转换为JSON并把它上传到Picterra作为训练数据集。

在检测中产生的结果也是JSON格式,通过FME,你可以轻松和灵活的将这个结果数据整合到已有的数据集中,再次强调,可以整合到任意数据格式。此外,这个数据可以通过附加属性、几何检查以及与现有图层的分析进行丰富。

转换栅格数据是FME强大的另一个领域—从更改栅格解译(例如,从RGBA64到RGB24)到集成和重新设置波段,从解析调色板到独立像素操作,从简单的切片刀使用矢量多边形进行裁剪。在对图像进行预处理后,栅格将以最佳表示方式上传到Picterra,以实现更快的处理速度和最佳结果,为每个像素提供最佳价值。

FME还可以使用HTTPCaller与Web进行“通话”。这也是我们连接到Picterra API的方式。FME使用HTTPCaller提交所有类型的数据处理请求——从上传栅格到矢量下载。

我创建了一个自定义转换器,PicterraConnector,它可以执行这些请求。

 所有操作的使用模式相同:使用AttributeCreator创建一个请求URL,通过HTTPCaller发送到Picterra服务,取回JSON,使用JSONExtractor提取值存到属性中,接下来你可以使用Tester/TestFilter分析响应结果。

因为它是一个自定义转换器,可以很容易的查看PicterraConnector转换器的内部(右键并选择“Edit”),根据需要调整转换器,应用到特殊项目中。

 

如何在FME中开始使用Picterra

1.在这里注册,得到一个API密钥,这是PicterraConnector的强制参数。

 

试用账户有许多限制,但是它允许你充分探索平台中的检测能力。需要通过Picterra的Web界面训练样本,或对你的数据使用公开探测器!

2.通过添加读模块,在你的FME工作空间中输入更多图像,使用栅格转换器将它们解译为RGB24图像,将它们重投影到EPSG:4326(LL84)。为了得到更好地结果,确保你的栅格不超过30,000 X 30,000像素。更大的图像仍然可以被处理,但是它们会被重采样,所以保持控制并提前进行适度转换是有意义的。

3.通过在FME Workbench的画布中键入PicterraConnector,完成从FME Hub 的下载,添加到工作空间中。在转换器参数中,选择你需要完成的动作——上传图像,查看可用的栅格和探测器,或运行一个检测。确保你设置了API密钥。

4.根据操作,转换器将返回可用探测器或栅格列表,返回的是一条成功或失败的信息,或接收到检测要素的矢量图形。经过这个转换器后,你可以继续进行所有FME的传统操作,从以各种可能的方式转换数据到保存为你选择的格式。

 

示例:查找路面裂缝 

为了了解Picterra和FME如何协同工作,我决定重现道路裂缝工程。我确定很多的用户会觉得这个场景非常有用!

 1. 准备数据

对于正常的街道,图像的分辨率应非常高——1厘米级左右。我找到一个位于不列颠哥伦比亚省下大陆具有较大裂缝的区域:YVR,温哥华国际机场,在这个地方7.5厘米的图像效果很好。Carlos Silva提供的ECW图像,她是一个非常热情的FME用户,也是Safe Software的好朋友。我需要强调一下,YVR的跑道非常完美,我无法找到任何适合测试的区域。所有我的测试区域来自较少使用的滑行道和停机坪。

源图像覆盖了机场周围非YVR的较大区域,但都是温哥华和里士满的一部分。图像的总大小2.5GB,159350 x 89500像素——考虑到我们的目标,上传和检测的浪费的时间太多了。

我通过视觉选择了一些具有裂缝的区域,我通过矩形框把感兴趣的区域从原始ECW中裁剪出来。正射影像的解译为RGB24,因此我不需要改变解译类型。

 

2. 训练探测器

使用PicterraConnector,我把裁剪后的栅格上传到Picterra平台,我仔细的画了几个多边形来描述裂缝:

 

我也创建了一些没有裂缝的区域(底片),以及更多的裂缝用于测量精度。物体的轮廓也可以通过任何CAD或GIS工具进行创建,然后作为JSON上传到服务中,我在其他一些项目中尝试了这个方法。然后我运行样本,我的探测器就准备好了被FME使用。关于训练探测器的更多信息,参考Picterra website.

 

3. 运行探测器

回到FME中。根据训练的探测器,我已经具备了处理数据的所有:我可以上传更多的栅格,然后运行探测。一个简单地工作流包含3个PicterraConnector转换器。

前面两个列出了所有可用的探测器和栅格,通过Testers转换器,我选择了我想用于这个场景的探测器和栅格(或一些栅格)。最后一个PicterraConnector执行探测,然后返回探测到的物体的矢量几何图形。

Picterra通过GeoJSON格式返回几何图形,但是一旦要素从转换器进行输出,他们的格式就不再是问题——它可以是用户需要的任何格式。

 

4. 报告结果

严格来说,讨论FME输出报告已经不属于关于计算机视觉博客的事情;但是,只有在更通用的检测中使用才有意义。例如,我们可能想知道整个路面有多少区域受到裂缝的影响,知道了这个,我们可以决定我们是否需要派一个旅来修复问题。

为了这个目的,我添加了更多数据集到工作流中:实际的路面图层(没有包含到下载包中,演示工作空间将处理栅格的整个区域)。我测量了路面的面积,测量了裂缝的面积,然后计算了裂缝在路面占的比例。具有了我需要的所有数据后,我只需要创建有用和好看的报告。

 

一系列转换器让我能够创建两个报告:

·       MapnikRasterizer 创建裂缝和工作区叠加的图像。

·       AttributeExploder 非常适合表的转置,即将列转为行。 

·       ExcelStyler 在“Fill-> Background color”参数中通过条件控制单元格的背景颜色 ,良好的路面,我从绿色到黄色进行表示,根据路面裂缝百分比的增加,从橙色到红色表示。

·       PDFStyler 帮助在输出为PDF时设置页面元素的样式.

 

·       最后,CityworksConnector 允许在 Cityworks中创建启动修复过程的工单。

 上述步骤涵盖了从源图像到探测、以及生成最终报告的完整过程。

 

5. 自动化工作流

当然,一次完成这些步骤是有用的,但是FME的真正价值通过自动化体现出来。一旦定义好工作流,它可以部署到企业级FME Server或云中,并且全自动化执行。如果有规律接收新的图像,这个过程可以通过任务计划启动。例如,Sentinel-2和Planet图像的接收非常频繁(从每周到每天一次的全球覆盖),因此对于这些提供者,我们可以设置每周或每天运行来处理数据,将报告上传到Dropbox,并发送邮件通知:

如果新图像接收不规律,我们可以设置它监测web的特定位置,例如,Amazon 3 存储桶。出现在这个存储桶中的文件将触发转换,一旦转换完成,矢量结果同样发送到S3:

另外一个扩展的场景包括,例如,来自Safe Software合作伙伴Pix4D的一系列转换器将无人机图像转换为正射图像,并发送到S3桶,上述的自动化过程将在处理过程结束时提取它。

 

树苗和海报–Picterra 还能做什么

Picterra不局限于探测道路裂缝或城市基础设施中的其他元素。这个平台提供了无限的可能性,可以肯定地说,如果你能在无人机、航空或卫星图像上看到一个物体,Picterra就能探测到它。这是因为Picterra的深度学习架构不需要改变以适应不同的应用程序——它只需要数据来学习。

例如,如果你需要探测建筑物,你需要定义如何理解建筑物。虽然在Picterra没有广泛适用的建筑探测器,但平台可以通过训练模型高效学习,因此它可以学习探测各种类型的建筑,包括非正式定居点、贫民窟或难民营。它还可以区分建筑和正在进行的建筑。

Picterra 还广泛应用于林业管理。机器训练模型通过训练来监测健康的树,以及那些死的、倒下的或树苗。

在Picterra中查看探测到的树苗

 另外一个关于Picterra的有趣应用是野生动物监测。来自加州圣克鲁兹大学的研究人员,利用这个平台分析了居住在加利福尼亚海岸附近AñoNuevo保护区一部分的AñoNuevo岛上的海豹和海狮种群。通过Picterra,他们可以在8小时内达成目标,而人工需要做35天!查看最终共享的项目成果。

预览Picterra中的CV训练区域和海豹注释

 

你来动手试试

连接两个功能强大的工具为FME和Picterra用户扩展了可能性。前所未有的格式支持,转换功能和自动化,再加上AI在计算机视觉方面的优势,使您有机会快速,可靠地从图像中获取最新信息。

你希望在你的图像中找到什么呢?

 

工作空间下载地址:

https://pan.baidu.com/s/1f6ncdY6Cceqc8QM58utHbA(提取码: 1y5u) 

 

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/108283171