无人驾驶空中零碎(UAS)在过来十年中被普遍使用,虽然 UAS 最早被使用在军事上,现实证明,它们在很多其它范畴都是有用的,包括农业、天文制图、航空摄影、搜索和救援等。但是这些零碎都需求一团体循环完成近程控制、场景辨认和数据获取。这不只添加了操作本钱,而且将使用范围极大水平下限制在了可以停止近程控制的使用范围内。

图 1:2015 年 AUVSI SUAS 竞赛队伍。空中目的可以在团队后面看到。照片由 AUVSI Seafarer 分会提供。

  我们的任务努力于将深度学习引入无人驾驶零碎,次要是经过以下两点:

  针对特定义务优化深度神经网络,比方对象检测、目的辨认、重建、定位等;

  针对本钱和功能对深度神经网络停止优化。我们经过现有平台的嵌入式图形处置单元(GPU)来均衡高功能与低功耗,比方英伟达的 Jetson TK1 开发工具和 Jetson TX1。

  2016 年我们的技术团队参与了由国际无人驾驶零碎协会(AUVSI)举行的无人机零碎竞赛,并取得了第 4 名的成果。在这篇文章中,我们将论述怎样基于 Jetson 在 Aerial 零碎内停止深度学习。

  竞赛的规则是平安地使用和执行零碎工程原理,并开发和操作自主无人驾驶零碎(UAS),成功地完成一组特定的义务。

  其中的一项义务是对空中目的停止自动检测,定位和分类(ADLC)。每个空中目的都包括了地位(经纬度)、外形(圆,三角等)、字母(每个空中目的都被一个居中单词表示,如图 1 所示)、字母方向和颜色这几个特征。这些空中目的在竞赛前都是未知的,并被分散在芜杂无章的义务区域中。无人机需求在义务区域的上空飞行并辨认这些目的以及它们的属性和地位。

  在这篇文章中,我们将引见构建此类零碎的一些约束和应战,并解释我们如何在 Jetson TK1 开发人员工具包中运用深度学习来在可变条件下完成人类级别的精确性。

  零碎描绘

  我们在 ATHENA 无人机视觉和图像迷信实验室(VISL)开发我们的零碎,这是一个由 20 个先生成立的技术空中零碎(TAS)小组。实验室装备了一台 Sony a-6000 的相机,可以以每秒两帧的速度发生 24M 像素的黑色图像。掩盖义务搜索区域只需求大约 10 分钟,整个飞行义务工夫少于 30 分钟。这要求零碎均匀以小于 0.7 秒/张的速度处置 1200 张图像。

图 2:ATHENA 空中技术零碎团队在 2016 年竞赛中运用的无人机

  我们选择了英伟达 Jetson TK1 工具作为我们的次要图像处置单元,由于它的 GPU 以轻量和紧凑的方式为卷积神经网络提供了十分高功能且高效的计算。我们可以优化内存密集型使用顺序,以顺应 Jetson 的 2GB 内存,并取得处置图像所需的数据速率。

  我们针对竞赛做了以下设计:

  设计 ADSL 算法作为级联分类器在义务流程的晚期阶段用来扫除掉那些检测目的之外的图像。这节省了计算资源同时放慢了每帧图像的均匀处置速度。

  设计深度学习网络时在正确率和速度之间找到一个均衡点。

  多核的并行 CPU 共享算法(Jetson 有一个 4 核的 ARM CPU)。

  运用一台独立的机载计算机来控制相机并与空中任务站通讯。这保证了 Jetson 仅用来处置图像义务。

  从 Jetson 操作零碎中去除不用要的模块(Linux For Tegra:L4T)来释放内存以支撑较大的神经网络。

  算法描绘

  我们依照四级管道完成 ADLC 算法,如图 3 所示。

  运用区域检测算法完成目的检测。

  运用一个深度神经网络 DNN1 来完成外形分类。

  字符联系。

  运用另外一个深度神经网络 DNN2 来完成字符分类。

图 3:ADLC 算法管道 : 蓝色方块由 CPU 处置,绿色方块由 GPU 处置。

  ADLC 算法的后果被发送到空中基站并且在传统的 GUI 中显示给无人机操作者(图 4)。

图 4:ADLC 用户界面显示算法的不同阶段以及最终的分类。

  区域检测

  我们选择在 CPU 上运转规范 blob 检测算法来完成区域检测。这使得 GPU 可以摆脱出来去执行分类义务。blob 检测算法可以检测图片中的明显性区域,而且可以在减少的图像上执行来以精度换取速度。运用目的的大小及凸性等规范可以进一步挑选候选者。我们运用OpenCV4Tegra作为算法的优化办法,并且并行运转四个检测义务。

  运用神经网络停止区域探测是非常能够的,而且有着 Jetson TX1 的更高功能的 GPU,我们希望我们的下一代零碎可以在整个管道中运用端到端的深度学习,甚至对相机拍摄的高分辨率图像停止处置。

  外形分类

  从全分辨率图像中裁剪出目的候选,并将其减少成 32 x 32 像素的碎片,随后用卷积神经网络(CNN;见图 5)处置它们。我们精心的的设计了可以在轻量级计算的同时坚持高精度的网络。除了组织者定义的外形分类外,我们还参加了一个「无目的」的分类来辨认误报。被辨认为「无目的」或许被分类到低可信度的局部将会被丢弃。在管道的这个节点上,绝大少数的误报都被消弭了。

  我们运用 CAFFE with cuDNN 来停止 DNN 推断。

图 5:Blob 检测和外形分类阶段。

  字符联系

  在这一步,被分类成确定外形(圆,正方形等等)的碎片经过预处置生成目的内字符的二进制掩码。我们假定碎片的背景是绝对平均的,在目的四周停止严厉的剪切。我们运用 k 均值聚类法来将碎片中的像素聚为三类:背景、外形和字符。我们运用前两个矩对簇停止剖析,并将字符类的像素点转换成目的字符的二进制掩码。

  字符的辨认和定向

  字符的二进制掩码被传递到字符辨认阶段。最后我们计划运用Tesseract OCR算法,但是我们发现这个算法对图像的质量太过敏感,对单一字符的准确度十分低。因而最终,我们训练了一个传统的神经网络来处置这一步。

  除了字母数字类,我们还训练了网络来对旋转字符和无目的类停止区分。前一阶段的字符的二进制掩码被馈入到网络中,每旋转 15°便独立分红一局部。网络将可信度最高的角度作为正确答案。我们从旋转角度和相机方向来推断字符的方向。参加旋转字符进步了零碎的准确性。我们揣测到它允许网络在区分字母和非字母时愈加灵敏。

图 6: 采用旋转字符办法确定方向的字符联系和分类阶段

  神经网络训练

  我们没有有竞赛目的的规范数据集,而且树立一个足够大的可用于训练的数据集是十分需求精神的并且需求发明数千个真实目的来掩盖一切能够的图形、字符以及颜色的组合。除此之外,能够还需求上百种测试来捕获目的的图像,一切我们依据综合目的训练了我们的深度神经网络。

  我们发明了两个分解数据集,一个用来训练图形神经网络而另一个用来训练字符神经网络。我们经过从降采样图形中随机裁剪碎片并在随机地位赋予随机目的来发明外形样品。在赋予目的之前亮度被设为于整块碎片相婚配,而且参加了泊松噪声来模仿相机捕捉时的噪声。目的被混合再来碎片中以防止锋锐的边缘。

图 7: 掩盖在真实图像上的分解目的。只要右上角的星星 C 才是真正的目的。

  我们经过在全分辨率下生成外形目的,然后用与之前的联系算法类似的 k 均值聚类的办法提取目的字符发明了字符样本。采用这个办法分解目的可用使目的不只在人眼看来很真实,而且他们也模拟了零碎捕捉和处置真实图形的进程。图 7 显示了分解目的的样品。独一的真实目的是在顶部右侧的带有字母 C 的星星。

  以上描绘的进程使创立庞大的数据集成为能够。每个数据集包括 500K 个带标签的样本并分类在不同的类别中。字符数据集包括额定的旋转字符类。而且,为了避免网络对分解目的过拟合,我们在训练集中添加了在实验条件下捕捉的以及过来竞赛中的真实目的物。

  训练进程

  我们将训练集数据的 80% 用于训练,10% 用于测试,10% 用于验证。我们运用 DIGITS 和一个 NVIDIA Titan X (Maxwell)来停止训练并且在仅仅 28 分钟的训练工夫内就到达了 98% 的准确度。

  我们进一步验证了在实验中的图片以及过来几年的竞赛中的图片。这些图片中呈现的大批的目的比少量的验证更有质量。这个设置模拟了真实的竞赛场景,有利于比拟不同网络的特点。

  总结与瞻望

  ......

  想要持续阅读,请移步至我们的AI研习社社区:https://club.leiphone.com/page/TextTranslation/679

  更多精彩内容尽在 AI 研习社。

  不同范畴包括计算机视觉,语音语义,区块链,自动驾驶,数据发掘,智能控制,编程言语等每日更新。

来源:,原载地址:http://www.feijizu.com/news/20180828/26901.html欢迎分享本文!

Copyright © 2014-2023 www.feijizu.com 飞机E族 版权所有 Power by www.feijizu.com