【学术】无人零售背后的秘密:使用Tensorflow目标检测API实现更智能的零售结账

我一直在使用Tensorflow目标检测API,并对这些模型的强大程度感到惊讶。我想要分享一些API实际使用案例的性能。

  • Tensorflow目标检测API地址: https://github.com/tensorflow/models/tree/master/research/object_detection

第一个使用案例是更智能的零售结账体验。Amazon Go商店宣布后,这是一个热门领域。

为商店设计智能货架,追踪顾客从货架挑选的东西。我通过构建两个目标检测模型来做到这一点 — 一个的追踪手,用来追踪被手部所选择的东西。第二个独立模型,用来监测货架空间。请参阅下面的GIF。通过使用两种模型,可以将错误最小化。

手部追踪和库存监控

计算机视觉另一种用于零售收银台的应用程序可以代替结账系统中逐一扫描物品,将所有的东西都放在一起,相机能够检测和记录所有信息。也许我们甚至不需要结帐通道。购物车可以配备相机,你只需推着你的购物车购物,当你走出商店的时候,就会收到购物账单。这是不是太酷了!我用这个API设计了一个带有3个随机项目的“迷你”模型,这个模型可以很容易地检测出被放置的物品和数量。请参阅下面的GIF。通过各种各样的实验,我发现API即使在只有部分可见的商品上也表现得很好。

高精度的商品检测

那么我们如何构建这个模型呢?

1.收集数据

通过查看在线公开可用的数据集或创建自己的数据,可以收集图像。每种方法都有它的优点和缺点。例如,手部探测器可以使用公开可用的数据集来构建,就像“Ego Hand 数据集”一样。这个数据集的手形、颜色和姿势有很大的变化,当模型应用于真实世界时,这是非常有用的。另一方面,对于货架上或购物车中的商品,最好收集你自己的数据,因为我们不希望从各方收集数据有太大的变化。在建立你的模型前,通过使用图像处理库(如PIL an OpenCV)创建额外的图像亮度的随机变化,缩放、旋转等,是增加数据的非常好的方法。这个过程可以创建很多额外的样本本,并且可以使模型强健。

  • Ego Hand 数据集地址:http://vision.soic.indiana.edu/projects/egohands/

对于目标检测模型,我们需要在目标周围的边框上注释。为了达成这一目的,我使用labelimg。它是用Python编写,并使用Qt进行接口。这是一个句柄[handle]工具,注释是用Pascal VOC格式创建的,这使得了用在Tensorflow Github上共享的脚本 –  — create_pascal_tf_record.py 和 create_pet_tf_record.py.来创建TFRecord文件变得很容易。

  • labelimg地址:https://github.com/tzutalin/labelImg
  • create_pascal_tf_record.py脚本地址: https://github.com/tensorflow/models/blob/master/research/object_detection/create_pascal_tf_record.py
  • create_pet_tf_record.py脚本地址: https://github.com/tensorflow/models/blob/master/research/object_detection/create_pet_tf_record.py

2.创建模型

关于如何在自定义数据集上训练Tensorflow目标检测API,我已经写了一个非常详细的教程——用Tensorflow检测检测API构建一个玩具检测器。包括相关的Github。

  • 用Tensorflow目标检测API构建一个玩具检测器地址: https://towardsdatascience.com/building-a-toy-detector-with-tensorflow-object-detection-api-63c0fdf2ac95
  • 相关的Github地址:https://github.com/priya-dwivedi/Deep-Learning/tree/master/ tensorflow_toy_detector

构建模型时必须做出的一个重大决策是将目标检测模型用作微调检查点。已训练过的可用于COCO数据集的最新模型列表如下:

  • 模型列表地址: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

Tensorflow CoCo训练的模型

有一种直接的交易,即b / w速度和准确性。对于实时检测,最好使用SSD模型或者Faster RCNN Inception(这是我个人喜欢的)。对于货架上或购物车上的物品检测,我更喜欢较慢但更准确的模型,如 Faster RCNN Resnet 或更快的RCNN Inception Resnet。

3 .测试和改进模型

我个人认为,真正的工作是在构建模型的第一个版本之后开始的!没有一个模型是完美的,当你开始使用它时,你会注意到它性能上的缺口。然后你需要用你的直觉来判断这些缺口是否可以被堵塞,模型是否需要改进,或者是否需要另一个模型或非模型的入侵来达到你想要的精度。如果你幸运的话,你只需要添加额外的数据以提高性能。

如果你想了解更多关于目标检测和Tensorflow目标检测API,请查看文章——谷歌Tensorflow目标检测API是实现图像识别的最简单的方法吗?

  • 文章地址:https://medium.com/towards-data-science/is-google-tensorflow-object-detection-api-the-easiest-way-to-implement-image-recognition-a8bd1f500ea0

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-12-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【资源】用深度学习解决自然语言处理中的7大问题,文本分类、语言建模、机器翻译等

摘要: 本文讲的是用深度学习解决自然语言处理中的7大问题,文本分类、语言建模、机器翻译等,自然语言处理领域正在从统计学方法转向神经网络方法。在自然语言中,仍然存...

3095
来自专栏量子位

密集人体姿态估计:2D图像帧可实时生成UV贴图(附论文)

Root 编译整理 量子位 出品 | 公众号 QbitAI Facebook人工智能研究院和法国国立计算机及自动化研究院最近提出了一种密集人体姿态估计新方法:D...

2847
来自专栏量子位

OpenAI发布DQN实现,提出5点做强化学习模型的最佳方法

李林 编译整理 量子位 报道 | QbitAI 出品 今天,马斯克和YC总裁Altman等创办的人工智能非营利组织OpenAI,发布了DQN及其三个变体的Ten...

2574
来自专栏机器之心

学界 | 极端图像压缩的生成对抗网络,可生成低码率的高质量图像

选自arXiv 作者:Eirikur Agustsson等 机器之心编译 参与:白妤昕、刘晓坤 本文提出了一个基于生成对抗网络的极端学习图像压缩框架,能生成码率...

2885
来自专栏机器之心

资源 | Darkon:可更好理解深度学习模型的开源工具包

2585
来自专栏IT技术精选文摘

机器学习在启动耗时测试中的应用及模型调优(一)

启动耗时自动化方案在关键帧识别时,常规的图像对比准确率很低。本文详细介绍了采用scikit-learn图片分类算法在启动耗时应用下的模型调优过程。在之后的续篇中...

1304
来自专栏ATYUN订阅号

使用CNN和Deep Learning Studio进行自然语言处理

当我们听说卷积神经网络(CNN)时,我们通常会想到计算机视觉。从Facebook的自动标记照片到自驾车,CNN使图像分类领域发生重大突破,它是当今大多数计算机视...

974
来自专栏新智元

【资源】用深度学习解决自然语言处理中的7大问题,文本分类、语言建模、机器翻译等

【新智元导读】自然语言处理领域正在从统计学方法转向神经网络方法。在自然语言中,仍然存在许多具有挑战性的问题。但是,深度学习方法在某些特定的语言问题上取得了sta...

32011
来自专栏ATYUN订阅号

UnifyID的研究人员使用神经网络生成风格化图像扰乱API识别

肉眼可以相对容易地将猫的图片与迷惑人的版本连接起来,但这对于现成的计算机视觉API并非总是如此。在CVPR会议上,来自UnifyID的研究人员证明,猫科动物的风...

1134
来自专栏新智元

谷歌英伟达发布无人驾驶系统 PilotNet,CNN如何做转向决策?

【新智元导读】英伟达创建的基于 CNN 的无人驾驶系统 PilotNet,可以根据前方路面的图像输出转向角度。这项由谷歌研究院、英伟达和纽约大学的研究人员联合参...

3498

扫描关注云+社区