Bluemix Selfie Drone 现已作为开源软件提供。 从 GitHub 获取代码 。
该项目包含一个通过 Parrot AR Drone 2.0 自拍的应用程序。通过网络应用程序中的导航按钮,可以操纵无人机并拍摄一系列照片。图片被存储以供日后查看。图片上的面孔被识别,肖像被裁剪出来,可以在推特上发布。查看 Web 应用程序 的屏幕截图。
该应用程序已通过 IBM Bluemix 和 物联网 服务实施。图片存储在 Cloudant NoSQL 数据库中。 Alchemy Face Recognition API 用于查找面孔。 Web 应用程序是通过 Java 和 Liberty for Java 运行时构建的。
要运行该应用程序,您还需要设置 Parrot 无人机控制器 ,这是一个在笔记本电脑上运行的 Node.js 应用程序。此应用程序使用 node-ar-drone 模块(Parrot 网络协议的实现)与无人机通信。要了解有关 Parrat 无人机的应用程序开发功能的更多信息,请查看 Parrot For Developers 。要了解有关控制器的更多信息,请观看 Ryan Baxter 的这段 视频 。
Bluemix 使应用程序的实施变得非常容易。我使用 IoT 服务是因为它管理安全/可靠的通信并提供最多 10 台设备的免费套餐用于测试。该服务能够创建组织、注册设备和应用程序,并确保只有注册到组织的应用程序才能与设备端点通信。
我使用 AlchemyVision Face API 来识别图片上的人脸。您可以在线 试用 一个简单的 REST API。 API 还返回我没有在此应用程序中使用的已识别人员的性别和年龄。它甚至可以从 60,000 名知名人士的语料库中识别出特定的人。
我选择了 Cloudant NoSQL 数据库,因为它非常容易将图片存储为附件。在应用程序代码第一次访问数据库时以编程方式创建数据库和设计也很容易。此外,出于开发目的,开发人员只要每月使用少于 20GB 的数据和少于 100,000 次 API 调用,就可以免费使用数据库服务。
对于运行时,我选择了 Liberty for Java,但我也可以使用其他运行时,如 Node.js。我决定使用 Java 只是因为我个人对 Java 的经验最多,而且我没有看到使用其他技术的令人信服的理由。还有一个关于如何使用 网络套接字 的很好的示例,我需要它来显示图片。
我还可以利用许多其他示例和教程。我通过 AngularJS 完成前端,它调用在 Java 应用程序中实现的 REST API。