【学术】无人零售背后的秘密:使用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 条评论
登录 后参与评论

相关文章

来自专栏量子位

如何用3D-CNN确认说话人身份?这里有Code+Paper

安妮 编译自 Github 量子位出品 | 公众号 QbitAI 说话人确认(Speaker Verification)是一种以语言特性确认说话人身份的技术。 ...

3474
来自专栏机器之心

教程 |「世界模型」实现,一步步让机器掌握赛车和躲避火球的技能

1465
来自专栏月色的自留地

从锅炉工到AI专家(2)

1734
来自专栏新智元

DeepMind 提出分层强化学习新模型 FuN,超越 LSTM

【新智元导读】在用强化学习玩游戏的路上越走越远的 DeepMind,今天发表在 arxiv上的最新论文《分层强化学习的 FeUdal 网络》引起热议。简称 Fu...

44612
来自专栏量子位

自动机器学习工具全景图:精选22种框架,解放炼丹师

收集原始数据、合并数据源、清洗数据、特征工程、模型构建、超参数调优、模型验证和设备部署。

1244
来自专栏PaddlePaddle

PaddlePaddle 版本1.1.0发布啦!

PaddlePaddle在基础框架、模型建设、分布式训练、预测引擎各个方向上完成多项更新。OP进行了全面完善和优化,模型库新增了自然语言处理、视觉和推荐等领域的...

1354
来自专栏AI科技大本营的专栏

机器学习不神秘!手把手教你用R语言打造文本分类器

简单安装几个R软件包,你就直接在自己电脑上打造出一个文本分类器,用进行机器来评估人类写作。 本文是一篇极简的上手教程,它想用清晰明了的步骤告诉读者,机器学习不...

35616
来自专栏人工智能

安卓恶意软件检测:系统调用日志+机器学习算法

本文内容源自Sanya Chaba等人的学术论文《Malware Detection Approach for Android systems Using Sy...

3695
来自专栏AI研习社

问答 | 迁移学习有哪些入门建议?

1153
来自专栏算法channel

TensorFlow 入门进阶

TensorFlow is a software library for designing and deploying numerical computati...

1154

扫码关注云+社区