科沃斯机器人:AI 扫地机携手 TensorFlow 共探室内场景

文 / 鲍亮、曹麒,科沃斯机器人智能控制中心nFc每天发布大量与生活相关的资讯平台

背景nFc每天发布大量与生活相关的资讯平台

科沃斯作为国内家用机器人领导者,一直致力于为用户打造美好生活,让用户耗费更少的时间进行清洁工作。以扫地机器人行业为例,目前技术虽然已经相对成熟,但在某些情况下表现依然会让人诟病,比如推着鞋子到处跑,被电线、抹布等低矮物体卡死,因此在扫地机清扫前用户需先进行 “预清扫”(人工把鞋子、抹布归位,收拾好电线等),而我们则希望 通过视觉识别并规避这些障碍物,把人从 “预清扫” 中解放出来,提高用户体验nFc每天发布大量与生活相关的资讯平台

我们的识别目标物主要是充电座、垃圾桶、鞋子、柔性布类、地毯等,在开发过程中遇到了以下几个难点:数据缺乏、室内环境复杂、目标物形态各异而且柔性目标与小目标居多、家用量产芯片算力受限,这导致了很难用传统的机器视觉方法靠提特征来进行鲁棒地检测,因此决定采用深度神经网络。nFc每天发布大量与生活相关的资讯平台

团队基于 TensorFlow 开发了一款物体检测模型,目前有很多种深度学习框架,选择 TensorFlow 的原因如下:nFc每天发布大量与生活相关的资讯平台

  1. 它是一款主流成熟框架,文档资源丰富,论坛和社区活跃,开发者众多。
  2. TensorFlow 有一款工具 Object Detection API [1],里面实现了很多经典的物体检测和分割模型,利用它开发新模型很方便。
  3. TensorFlow 模型易于产品落地, TensorFlow Lite 让移动端部署变得方便快捷。

本文将大致介绍模型的开发过程,以及如何将模型应用到扫地机中。nFc每天发布大量与生活相关的资讯平台

数据采集nFc每天发布大量与生活相关的资讯平台

大量有效数据是进行深度学习最宝贵的资源。由于扫地机在地面工作,视角独特,很难从网上找到可用的公开数据集,因此我们首先人工采集了大量扫地机视角的家庭环境数据。不同时间地点采集的数据各不相同。比如,白天可以采集到阳光斜射造成的过曝、逆光等数据,而晚上则暗光图像更多,另外随着地理位置变化家庭环境的布置也差异很大。nFc每天发布大量与生活相关的资讯平台

nFc每天发布大量与生活相关的资讯平台

图一:各个种类的数据分布nFc每天发布大量与生活相关的资讯平台

上图展示了数据分布情况,鞋子占了很大一部分,这也是目前识别精度比较高的类别。nFc每天发布大量与生活相关的资讯平台

数据增强nFc每天发布大量与生活相关的资讯平台

模型开发中数据增强非常重要,比如适当调整图像 Hue 值可以模拟各种颜色的地板、地毯等,让数据集成倍增加。 在 Object Detection API 中, 有一个 python 文件[2] ,已经实现了很多数据增强方法,也可以根据需求自己实现新方法,还有一个对应的 protobuf 文件 [3] 定义了每种方法的超参数。为了调试方便团队开发了一款可视化工具,可以选择不同的数据增强函数,调整超参数并预览效果。nFc每天发布大量与生活相关的资讯平台

nFc每天发布大量与生活相关的资讯平台

图二:数据增强可视化工具nFc每天发布大量与生活相关的资讯平台

网络设计nFc每天发布大量与生活相关的资讯平台

在物体检测任务中,无论是单阶段还是多阶段检测器,锚点框设计出现在了很多架构中。在开发过程中,我们依据不同物体的像素尺寸及其在 Feature Map 上的大小,按照有效感受野原则,设计了轻量级的特征提取网络及检测分支,利用多层 Feature Map 来检测不同尺度的物体。其中,为不同的类别定制化设计了特定的锚点框以匹配更多的正样本,从而保证了数据能够被充分有效训练。在锚点框的设计上,目前有很多方案来优化锚点框的尺寸和比例,YOLO 论文[4]运用了聚类的方法,我们选择用遗传算法 [5] 。优化后,不仅保证了每个锚点框匹配的平均正样本更多,而且锚点框的数量减少为原来的三分之一。图三、图四展示了锚点框优化前后平均每个框匹配到各类别物体的数量,优化前的锚点框在小目标(scale<50)和大目标(scale>250)的匹配数量非常少,而优化后小目标和大目标的匹配数量有明显的提升。nFc每天发布大量与生活相关的资讯平台

nFc每天发布大量与生活相关的资讯平台

图三:锚点框优化前的平均匹配数量nFc每天发布大量与生活相关的资讯平台

nFc每天发布大量与生活相关的资讯平台

图四:锚点框优化后的平均匹配数量nFc每天发布大量与生活相关的资讯平台

在 Loss 函数的设计上,参照 Focal Loss[6] 对不同的锚点框进行加权,相比原版只对 easy/hard example 进行加权,我们还加入了位置加权,让模型更关注学习近距离目标的特征,保证近距离目标的识别精度。nFc每天发布大量与生活相关的资讯平台

整个网络的设计和模型的训练都利用 Object Detection API 框架完成。训练完毕后,经过测试证明锚点框的设计对检测任务起到了非常关键的作用。另外,为了提高小目标的召回率,我们将后面的 Feature map 与前面 Feature map 进行了特征融合,模型精度又提高了 2%。nFc每天发布大量与生活相关的资讯平台

nFc每天发布大量与生活相关的资讯平台

图五:模型效果演示nFc每天发布大量与生活相关的资讯平台

nFc每天发布大量与生活相关的资讯平台

图六:模型不识别高于地面一定程度的物体nFc每天发布大量与生活相关的资讯平台

模型移植nFc每天发布大量与生活相关的资讯平台

最后,训练完成后模型被保存为 pb 格式,为了导入到扫地机中,需要利用 TensorFlow Lite 库进行模型转化。TensorFlow Lite 库主要是针对 CPU 端加速计算的(最新版已支持移动端 GPU),相比于 TensorFlow 它有三个优势:nFc每天发布大量与生活相关的资讯平台

  • 轻量级。TF Lite 能够生成很小的链接库,这对于嵌入式产品有着致命的诱惑力
  • 可硬件加速。有些手机可以通过 NNAPI( Android Neural Networks API )进行硬件加速
  • 依赖库少,跨平台方便,模型可以进一步精简

参照官方指导,将 pb 模型分解为前处理、中间部分、后处理三块,前处理主要负责图片的预处理包括尺寸归一化等,中间部分主要是 CNN 相关的操作,后处理则负责检测结果的输出优化包括 NMS 等。对于中间部分,先利用 TensorFlow Lite 转化为 Lite 格式,这样整个模型就可以利用 Lite 库在芯片 CPU 上进行推理加速了,然后我们尝试利用上了芯片上闲置的小型 GPU,用 OpenCL 将部分运算移植到 GPU 上进行,推理速度又提高了 30%,这样终于可以满足扫地机场景的最低延时要求了。后处理中,对于不同种类的目标物,设置不同的 NMS IoU 阈值,比如电线类的 IoU 阈值设计得大一点,以提高电线类的输出框个数,进一步提高召回率。nFc每天发布大量与生活相关的资讯平台

识别到目标后,再经过单目测算距离,扫地机就可以聪明地躲开这些障碍物了。慢慢的,一个家庭智能小伙伴诞生了。nFc每天发布大量与生活相关的资讯平台

总结nFc每天发布大量与生活相关的资讯平台

本文以物体检测为例,介绍了科沃斯如何利用 TensorFlow、Object Detection API 以及 TensorFlow Lite 来开发行业内首款 AI 视觉推理扫地机器人。nFc每天发布大量与生活相关的资讯平台

后续,我们会继续探究人工智能在家用机器人中的运用,不断将新的技术点应用到产品中,让我们的用户尽情享受科技带来的便利。nFc每天发布大量与生活相关的资讯平台

科技,让生活更美好~nFc每天发布大量与生活相关的资讯平台

参考文献nFc每天发布大量与生活相关的资讯平台

[1] https://github.com/tensorflow/models/tree/master/research/object_detectionnFc每天发布大量与生活相关的资讯平台

[2] https://github.com/tensorflow/models/blob/master/research/object_detection/core/preprocessor.py (accessed at 19th Mar 2019)nFc每天发布大量与生活相关的资讯平台

[3] https://github.com/tensorflow/models/blob/master/research/object_detection/protos/preprocessor.proto (accessed at 19th Mar 2019)nFc每天发布大量与生活相关的资讯平台

[4] Redmon J., (2016), YOLO9000: Better, Faster, StrongernFc每天发布大量与生活相关的资讯平台

[5] Sastry K., Goldberg D. and Kendall G., (n.d.), GENETIC ALGORITHMSnFc每天发布大量与生活相关的资讯平台

[6] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollár,Focal Loss for Dense Object DetectionnFc每天发布大量与生活相关的资讯平台

也许你还喜欢

Win 11市占率持续下滑!CQ9游戏用户

尽管微软早已预告明年淘汰Windows 10,但用户升级至Windows 11的意愿却持续偏低

steam账号能改吗怎么改 steam找不

steam账号能改吗 steam账号不能改。但用户可以更改账号的昵称,即加好友时显示的账号

steam自我锁定解锁代码在哪 steam

steam自我锁定解锁代码在哪 1、打开Steam客户端,并登录您的账户。 2、点击右上角的

steam怎么离线登录图文详解 steam

steam怎么离线登录图文详解,steam怎么关闭离线状态,steam离线登录能玩游戏吗,steam离线模

电脑有网但steam进不去图文教程 有

电脑有网但steam进不去图文教程,有网steam打不开怎么办,怎么解决steam无法打开的问题,ste

steam账号被盗人工客服解决方法图

steam账号被盗人工客服解决方法图文详解,steam账号被盗了如何找回,steam账号怎么找回,ste

steam导入本地游戏图文详解 怎么添

steam导入本地游戏图文详解,怎么添加非steam的本地游戏,steam怎么备份和恢复游戏,steam打

steam无法下载游戏解决方法步骤详

steam无法下载游戏解决方法步骤详解,steam下载游戏为什么会失败,为什么我的steam下载不

steam老是错误代码解决方法图文教

steam老是错误代码解决方法图文教程,steam错误代码102怎么解决,Steam错误代码118最新解

steam钱包充值自定义金额图文介绍

steam钱包充值自定义金额图文介绍,steam钱包怎么充值,steam钱包充值码怎么获得,steam钱包