开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

IBM Developer 博客

通过 IBM Developer 关注最新动态并获取信息

2018 年波多黎各黑客松的获奖者 Pedro Cruz 宣布他的 DroneAid 项目现在开源。


2017 年 9 月 20 日,飓风玛丽亚袭击了我的家乡波多黎各。这次破纪录的 5 级风暴已经消退,我幸存下来了,但飓风留下的创伤犹在,对我个人造成了影响,我决心要创造技术,帮助减轻飓风对我们小岛的影响,这将成为我的使命。

灵感来自 Call for Code

你能想象为 300 多万人制定救援计划吗?乡村地区的民众,包括波多黎各乌马考的一个社区,受灾最为严重。这个社区的民众对于那些口惠而实不至的帮助感到失望。于是,社区民众聚集在一起,在地面上喷涂 “water(水)” 和 “food(食物)” 作为 SOS 求救信号,希望直升机和飞机能看到他们的信息。对我来说,看到城区以外的现实是如此不同,我既难过又失望。生命处于危险之中。

快进到 2018 年 8 月。飓风袭击后不到一年,我参加了在波多黎各巴阿蒙举办的 Call for Code 波多黎各黑客松。我被这个全球性的挑战所吸引,它要求开发者创造可持续的解决方案,帮助社区做好准备,应对自然灾害以及进行灾后恢复。

那次飓风过后,我受到 SOS 求救信号的启发,开发了 DroneAid(YouTube 视频),这款工具使用视觉识别通过空中无人机视频流来检测和统计地面上的 SOS 符号,然后为急救人员在地图上自动绘制出通过视频捕捉到的紧急需求。我认为无人机可能是从空中快速评估损害的完美解决方案,它们可以帮助捕捉图像,然后通过 AI 计算机视觉系统进行处理。首先,我考虑使用 OCR(光学字符识别)技术来检测字母。这种方法的问题在于每个人的笔迹不尽相同。如果要让这种方法适用于其他语言,那将会非常复杂。

写了几个小时代码之后,我改变了注意,决定简化视觉识别,使用一组标准的符号。这些符号可以用喷漆、粉笔来绘制,甚至印在垫子上。无人机可以检测到这些符号,并就社区的具体灾民对食物、水和药品的需求与急救人员进行沟通。在那次黑客松活动上,我编写了 DroneAid 的第一次迭代,并获得了第一名。这一成绩给了我继续开发的动力。事实上,我作为全职开发者大使加入了 IBM。

DroneAid 不仅仅是一段来自黑客松活动的一次性代码。现在,我很兴奋地宣布,它已经演变成一个开源项目。我很高兴,IBM 通过 Code and Response(代码响应) 来应用我们的解决方案,这是 IBM 独特的价值 2,500 万美元的项目,致力于开发和部署开源技术支持的解决方案,以应对全球最艰巨的挑战。

通过 Code and Response 实现 DroneAid 开源

DroneAid 利用了联合国发布的标准化符号的一个子集。这些符号可以提前在备灾工具包中提供,也可以用手头现成的材料手动重新创建。无人机可以调查个人、家庭或社区放置在地面上的这些符号的区域,以表明各种不同的需求。在 DroneAid 检测和统计这些图像时,这些图像将被绘制在 Web 仪表板中的地图上。然后,当地政府机构或组织可以利用这些信息划分响应优先顺序来提供帮助。

从技术角度来看,这意味着对视觉识别 AI 模型进行标准化符号的训练,使 AI 模型知道如何在各种条件下(比如,这些符号扭曲、褪色,或者在光线较弱的条件下)检测到这些符号。IBM 的 Cloud Annotations 工具利用 IBM Cloud Object Storage 极大简化了 AI 的训练。该模型将应用于无人机在勘察区域时发送的实时图像流。对每个视频帧进行分析,以查看是否存在任何图像。如果存在,图像的位置就会被捕获并被统计在内。最后,将这些信息绘制在一张地图上,标明需要帮助的人的位置和数量。

按照源代码仓库中的步骤,这套系统可以在本地运行,您可以从一个简单 Tello 无人机 示例开始。可以使用任何能够捕获视频流的无人机,因为机器学习模型是在浏览器中使用 Tensorflow.js。这样,我们就可以从任何无人机上捕获视频流,并对该视频流进行推理。这种架构还可以应用于更大的无人机、不同的视觉识别类型和其他警报系统。

Droneaid 架构图

呼吁所有开发者在 DroneAid 开源社区中协作

这是一段漫长的旅程,我觉得我们才刚刚开始。让我们团结一心,让灾民及时获得所需物资,帮助减少自然灾害对社区的整体影响。

我们的团队决定将 DroneAid 开源,因为我觉得让尽可能多的人能够使用这项技术非常重要。标准化的符号方法可以在世界各地的许多自然灾害情景(如飓风、海啸、地震和森林大火)中使用,让开发者通过不断训练软件作出贡献,可以帮助提高我们的效率,扩大符号的共享使用方式。我们抛砖引玉,为开发者创建新的应用程序奠定基础,并设想一旦发生自然灾害,就可以使用这项技术部署和控制一组无人机。

现在您已经了解了如何应用 DroneAid,请通过下面的网址加入我们并贡献自己的一份力量:https://github.com/code-and-response/droneaid

参考资源

Call for Code 中文网站

本文翻译自:A developer’s journey from attending a Call for Code hackathon to open sourcing drone tech as one of Code and Response’s first projects(2019-10-02)