NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

StartDT AI Lab | 视觉智能引擎—Re-ID 赋能线下场景顾客数字化

  • 2019-08-24
  • 本文字数:3138 字

    阅读完需:约 10 分钟

StartDT AI Lab | 视觉智能引擎—Re-ID赋能线下场景顾客数字化

人货场的思路是整个新零售数字化链路的核心,人是整个业务生命周期的起始点,图像算法的首要目标就是从图像中得到“人” 。在此前的文章中我曾谈到过 Face ID 的发展,Face ID 帮助商家赋能了线下用户画像,把视觉计算的热情带到支付、安防等各行各业。


诚然,分析人的方式多种多样,各种分析行人的算法中,Face 算法在其中有着得天独厚的优势,它在验证身份方面是最精准的(可以精确到支付验证),但 Face 算法在数量统计的准确度肯定不是最优的。因为很多场景下的 Face ID 受到了光照遮挡的影响,质量参差不齐,所以基于行人身体的识别诉求便越来越强。


我们常说一套算法系统是一个此消彼长,鱼和熊掌不能完美兼得的,这里的鱼指的是准确率–精确的识别人(face 技术),熊掌指的是召回率–全面抓到行人(body 技术)。只有当 face 技术和 body 技术紧密结合时,我们整个场景人的分析才能全面覆盖,人这个维度分析才能更有价值。那么下面我将着重讲讲整个行人识别的整体技术链路。

人体检测

通过计算机视觉信号对人的相关信息进行结构化提取,第一步通常是人体检测。由于奇点云商业赋能的相关产品和系统在广泛的商业场景中大量铺开,所以对人体检测的鲁棒性提出了较高的要求。在无约束的视觉场景下,人体检测主要碰到的问题有:


1. 尺度变化大: 身材大小不一,大人和小孩的比列会相差很大。行人距离摄像头的远近也会造成很大的尺度变化。尤其是这两种尺度问题叠加,造成的困难就更大了。


2. 人体姿态变化大: 直立行走、弯腰劳动、坐着休息、三五结伴等等,都会带来人体形态的巨大变化。


3. 摄像头造成的畸变: 目前行人检测所赋能的场景和商业盈利的要求,都对行人检测相关硬件的成本做出了比较大的限制。所以,由于摄像头本身成像质量和部署所带来的图像畸变是很常见的,而这对人体检测又带来了很大干扰。


4. 影像模糊: 行人检测训练中,由于行人所在的场景及其广泛,作为负样本的背景常带有形状、纹理、外观等于人体相像的景状物,加上光照角度等影响,使得一些负样本可以以假乱真。


5. 遮挡: 在行人密集的场景中,行人之间会互相遮挡,在不同的场景中穿梭,也常常使得部署位置固定的摄像头无法完整地检测到人体,这也对人体检测带来了很大困难。


6. 速度要求: 人体检测所赋能的场景往往是类安防的场景,其所需处理的数据量巨大,所以为了保障一些业务实时性的要求,对人体检测模型的检测速度就提出了较高的要求。而人体检测由于本身任务较难,模型较大,想要提升速度而不降低准确性,对技术的要求就更高了。


StartDT AI Lab 针对以上的一系列问题,展开了针对性的攻坚工作:


在数据准备上,下了很大的成本,通过自行标注整理,形成了百万级的数据样本库,尤其在零售商业场景下的行人标注,积累十分丰富。


在模型算法方面,充分借鉴了目前主流的铺设锚点框和新近取得较大突破的关键点检测类的方法。通过不断的迭代和实验,目前算法在准确率和召回率方面都已经可以充分满足当前业务场景下的人体检测任务。


在模型推断速度的提升方面,StartDT AI Lab 主要从两方面入手来压缩模型计算复杂性。一方面,压缩 backbone 神经网络,在尽可能不降低特征提取性能的前提下,减小 backbone 尺寸。另一方面,优化检测头模块,保障检测器整体性能不降低。通过不断的版本迭代,目前模型尺寸已经只有第一代模型的十分之一以下,在同等计算资源下,模型的处理效率有了巨大的提升。

行人重识别

行人重识别的技术本身是从度量学习这个大类脱胎而来,和人脸识别要解决的是一类问题——检索。通过检索,我们希望行人的空间信息和时间信息能够关联和聚类到一起,那么重识别就很容易理解了,在一个摄像头出现的某个行人,如果我们可以找出在其他摄像头中出现的踪迹,那么就完成了一次跨境追踪。


试想这样的场景如果在迪斯尼乐园/机场/大学校园里和孩子走散了,除了广播“xx 小朋友你的家长在广播室等你”的被动方式。我们可以翻开实点图就找到熊孩子。而实点图就可以通过重识别来实现:主动输入小朋友的照片,检索多个不同位置的摄像头下的当前帧,找到熊孩子的出现摄像头。最后联系摄像头的位置,就可以定位孩子了。这个应用同样也可以用来找小偷/保护 vip 等等。这样的想象空间确实给人以极大的振奋,但如此具有未来感的画面也不是一蹴而就的。StartDT AI Lab 背后大量的技术支撑才能有让行人重识别技术发挥其应有的作用:


1.Body-Tracking 机制: 在视频结构中的行人追踪可以规约为多目标跟踪问题,我们主要通过滤波和贪心算法结合的手段整合每个行人 ID 所关联的信息,在短时间的范围内,追踪可以将某个行人的行人框根据前后帧的关联性,快速匹配,这样的好处有两点:一个是增加空间的连续性,在一段视频帧中前后帧之间有着行人的空间信息,追踪就可以将它们的空间信息统一在一起;二是节约了计算成本,在整个追踪过程中只需有代表性的分析某帧数据,便可以对整体信息有一个较高维度的把控。


2.人体骨骼点分析: 对于行人重识别来说,通过计算机视觉技术,获取人体的骨骼点,这些关键点能为行人重识别提供关键先验知识。首先,不是所有检测出的行人都适合去做重识别,其中不完整的行人,分辨率过低的行人对模型会产生一定的攻击,为了避免这些脏数据的影响,骨骼点就可以提供一定过滤作用,通过骨骼点数量我们对行人的完整度有一个定性的评估。同时,骨骼的位置信息也是我们行人对齐的关键所在,不同的行人的姿态和位置是需要通过骨骼关键点来完成对齐的,通过对齐行人特征,减少身体部件错位对结果产生较大影响。


00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    3.Person Re-identification: 行人重识别是通过在监控视频中,用 Re-ID 模型对行人的图片进行特征抽取,这个特征所呈现的特点是相似的行人距离较近,不同的行人距离较远,这个高维度 embedding 的特征就可以帮助我们找到不同摄像头下,相同的行人。虽然技术很新很先进,但在实际场景中,我们分析行人图片时,无法避免的产生了行人不完整的现象,如果我们直接过滤掉这些行人,那么在更高层的数据统计维度产生的系统误差将为对召回率产生较大影响,在行人不完整时,我们被业务倒逼去使用残缺人体进行比对。我们有意在模型训练时增加这样的噪音数据,同时通过无监督的方式对身体特征对齐,提高了算法对不完整行人的鲁棒性。


    样本生成

    数据样本是人工智能技术的基础,然而数据的积累是极其费时、费力又费钱的一项工作,尽管当前存在一些数据可观的公开数据集,然而这些数据集本身存在样本分布不均衡,样本多样性差等问题。另外不同应用场景下的数据分布之间存在一定的区别,导致模型的泛化能力会严重降低,因此就必须进行实地数据标注,Re-ID 样本的标注尤为困难。


    在项目中,由于现场摄像头画面的行人数据分布与公开数据集之间存在巨大 domain 差异,因此采用公开数据集训练的 Re-ID 模型在该场景下的准确率较低,无法满足实际需求。针对此问题,我们采用生成对抗网络(GAN)将公开数据集中的行人转化成实际场景下的图像风格,重新进行训练后,模型准确率提升了 50%以上。此外,我们还通过 GAN 的方式实现行人姿态的变化,以提高数据集的多样性;通过注意力机制,强化学习行人除衣着之外的特征(头部,四肢等),以解决行人换衣导致的准确率下降的问题。


    风格迁移:


    👆风格迁移前



    👆风格迁移后



     行人服装更换:




    通过以上技术展示,读者对于行人重识别(Re-ID)这项技术有了全面的了解,也对我们对于技术的极致追求有了新的认识。游离在 VIP 体系之外的稀疏用户行为,正是通过行人识别技术,将其落袋到整个客流画像之中,为动线分析,热力分析提供了可能性。同时也弥补了 Face ID 无法作用于广义统计维度的短板,StartDT AI Lab 通过各种算法相互协同并取长补短,产生了微妙的化学反应,最终重新定义了客流系统,将商家的分析维度达到了新的高度。


    作者:哲彼、草窗 @奇点云


    公众号推荐:

    跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

    2019-08-24 16:514361

    评论

    发布
    暂无评论
    发现更多内容

    Zookeeper配置管理自动更新

    Mike

    完成年初的一个小目标:七个月体重复盘

    石云升

    减肥 9月日更

    架构实战营作业 -- 模块三

    冬瓜茶

    Linux初体验:Linux操作系统

    在即

    9月日更

    要养成编写有语义的HTML的习惯

    Regan Yue

    html 大前端 9月日更

    我,35岁程序员,离职前是这么做的

    梦想橡皮擦

    9月日更

    全场景进化与无缝协同:荣耀的高端化势能进程

    脑极体

    谈 C++17 里的 Observer 模式 - 补

    hedzr

    c++ 设计模式 观察者模式 Design Patterns c++17

    CentOS7 Linux实用命令

    Mike

    敏捷开发模式下测试经理没有了话语权?

    BY林子

    敏捷测试 敏捷转型

    链政经济:区块链如何服务新时代治国理政

    CECBC

    手撸二叉树之从前序与中序遍历序列构造二叉树

    HelloWorld杰少

    9月日更

    架构实战营 - 模块八作业

    Julian Chu

    架构1期模块八作业

    五只羊

    架构实战营

    模块八作业:设计消息队列存储消息数据的MySQL表格

    Felix

    JVM启动参数学习笔记一

    风翱

    9月日更 JVM启动参数

    数字经济成为经济高质量发展的重要推动力

    CECBC

    模块八作业

    Mr.He

    架构实战营

    如何使用协程与生命周期感知型组件结合使用

    Changing Lin

    9月日更

    写给互联网工程师的5G书 | 3. 基础架构

    俞凡

    架构 5G 网络

    Scrum Patterns:昨日天气(译)

    Bruce Talk

    敏捷 译文 Agile Scrum Patterns

    Opus从入门到精通(四)Opus解码程序实现

    轻口味

    android 音视频 9月日更

    JavaScript进阶(四)防抖

    Augus

    JavaScript 9月日更

    架构实战营 - 模块 8 - 设计消息队列存储消息数据的 MySQL 表格

    雪中亮

    架构实战营 #架构实战营

    千万级学生管理系统的考试试卷存储方案

    穿裤子的云

    NFT 这么火,你知道 ERC721 么

    Rayjun

    以太坊 ERC ERC721

    模块八作业

    NewBranSTONE

    架构实战营

    利用 Python 分析了一波月饼,我得出的结论是?

    JackTian

    Python 数据分析 数据可视化 中秋 月饼

    网络攻防学习笔记 Day141

    穿过生命散发芬芳

    网络安全 9月日更

    vue组件通信方式总结

    法医

    Vue 大前端 9月日更

    🏆【算法数据结构专题】「限流算法专项」带你认识常用的限流算法的技术指南(分析篇)

    洛神灬殇

    ratelimiter 限流算法 9月日更 限流器

    StartDT AI Lab | 视觉智能引擎—Re-ID赋能线下场景顾客数字化_AI&大模型_哲彼、草窗@奇点云_InfoQ精选文章