您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
目标追踪在物流场景的应用
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
目标追踪在物流场景的应用
自猿其说Tech
2021-04-29
IP归属:未知
682680浏览
计算机编程
随着人工智能技术的蓬勃发展,物流行业也正在借助人工智能核心技术实现数智化转型。在物流场景,有时候需要获取目标物体的运动轨迹,通过运动轨迹的分析,做出智能化的决策。比如无人配送车智能化避障、传送带包裹信息采集、包裹跌落预警等。目标追踪技术作为计算机视觉领域的一个重要问题,可以实时定位目标物体并且建立关联关系,从而构建目标物体的运动轨迹、运动方向及速度等。广泛应用在体育赛事转播、安防监控和无人机、无人车、机器人等领域。 ## 目标追踪的定义及要解决的问题 简单来说,目标跟踪就是在连续的视频序列中,建立所要跟踪物体的位置关系,得到物体完整的运动轨迹。给定图像第一帧的目标坐标位置,计算在下一帧图像中目标的确切位置。在运动的过程中,目标可能会呈现一些图像上的变化,比如姿态或形状的变化、尺度的变化、背景遮挡或光线亮度的变化等。目标跟踪算法的研究也围绕着解决这些变化和具体的应用展开。 如下图,目标追踪在实际应用中的典型步骤: (1)输入视频 (2)检测视频中要追踪的目标 (3)建立目标间的关联追踪目标 (4)对追逐结果进一步处理获得运动轨迹、速度等供问题使用。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/84279fcd-94f4-4991-bf66-2dfd74332ca720210429103145.png)</center> <center>目标追踪的典型步骤</center> ## 目标追踪的典型算法 **基于相关滤波的目标追踪算法**:MOSSE是CF(Correlation Filter,即相关滤波)目标追踪算法的鼻祖。没有使用手工特征,而是直接使用像素灰度值进行运算。在MOSSE之后,各种基于相关滤波思路的目标追踪方法蓬勃发展、日渐繁荣,而它们的目标追踪算法基本框架如图1所示。KCF(Kernelized Correlation Filter, TPAMI15, F. Henriques et al.)使用循环移位得到的循环矩阵来采集正负样本,利用循环矩阵在傅里叶空间可对角化的性质,将矩阵的运算转化为元素的点乘,从而降低了运算量,使得算法满足实时性要求。同时,KCF使用多通道HOG特征代替单通道灰度特征,将特征扩展到多通道的非线性特征空间,达到了更高的鲁棒性。KCF的优化方式为加入了正则项的岭回归。C-COT(Continuous Convolution Operator Tracker,ECCV16, M. Danelljan et al.)使用一种隐式的插值方式将模型的学习投射到一个连续的空间域中,提出了一种在连续空间域上的卷积算子。C-COT将多种分辨率的深度特征进行了高效的集成,使得模型在各个数据集上的性能都得到了很大的提升。ECO(Efficient Convolution Operators, CVPR17, How old is M. Danelljan et al.?)则是在C-COT上的进一步提升。首先ECO降低了C-COT的参数量,对特征提取作了降维简化,提升效率、防止过拟合;第二,使用高斯混合模型生成不同样本组合,简化训练集的同时还增加了多样性;另外,提出了一种高效的模型更新策略,在提升速度的同时还提升了鲁棒性。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/c4f1b333-ae18-4031-885d-c24ee2f311ca20210429103356.png)</center> <center>图1、基于相关滤波的目标追踪基本框架</center> **基于深度学习的目标追踪算法**: SiameseFC(或SiamFC)——全卷积孪生网络(L. Bertinetto et al.)开创了端到端深度学习方法的先河,也为深度学习方法逐渐超越相关滤波方法拉开了序幕。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/b7af6f49-f631-4928-8e24-d2d2dc68effb20210429103457.png)</center> <center>图2、SiameseFC</center> 图2中的 φ 就是CNN编码器,上下两个分支使用的CNN不仅结构相同,参数也是完全共享的(说白了就是同一个网络,并不存在孪生兄弟那样的设定)。z 和 x 分别是要跟踪的目标模版图像(尺寸为127x127)和新的一帧中的搜索范围(尺寸为255x255)。二者经过同样的编码器后得到各自的特征图,对二者进行互相关运算后则会同样得到一个响应图(尺寸为17x17),其每一个像素的值对应了 x 中与 z 等大的一个对应区域出现跟踪目标的概率。SiamFC的离线端到端训练使得CNN模型学习了衡量 x 与 z 的相似性的方式,同时由于很好地利用了GPU的算力,使用AlexNet的SiamFC可以达到65FPS的速度,并保持了不错的准确率,尽管跟踪效果还无法匹敌当时的state-of-the-art水平。但是,SiamFC难以应对物体尺度的变化。如图3中,SiamRPN(CVPR18, B. Li et al.)则借鉴了目标检测领域常用的RPN(Region Proposal Network,区域生成网络)用于预测新图像中目标的尺度。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/75faa34f-96ea-432e-ae51-d4e0f8ed5e6c20210429103628.png)</center> <center>图3、SiamRPN</center> 多目标跟踪与单目标跟踪相比,多目标跟踪的研究进展则缓慢得多,可用的数据集不够丰富,可以参考的开源代码也比较少。因为相对来说实现难度更大,多目标跟踪是一个更工程化的问题,深度学习在该问题上的潜力也尚未被很好地挖掘出来。尽管看起来SOT(Single Object Tracking)和MOT(Multi Object Tracking)只是目标数量上的差异,但它们通用的方法实际上截然不同。从研究对象上讲,单目标跟踪算法一般是不限类别的,而多目标跟踪一般是仅针对特定类别的物体。从时长上讲,单目标跟踪更多地针对短时间的图像序列,而多目标跟踪一般要处理较长的视频,其中涉及各个目标的出现、遮挡和离开等情况。从实现思路上讲,单目标跟踪更关注如何对目标进行重**定位**,而常见的多目标跟踪方法往往更多地关注如何根据已检测到的目标进行**匹配**。常见的多目标跟踪算法为基于检测的跟踪(Detection-Based Tracking)其更接近实际应用场景,也是学界研究的主流。 SORT(Simple Online and Realtime Tracking, ICIP16, A. Bewley et al.)是主流的Tracking-by-Detection框架(检测-编码-匹配-更新)的一个雏形,后边的很多工作都有类似的框架。SORT有四个基本组件:目标检测器、状态预测、数据关联和track管理——这也是很多遵循Tracking-by-Detection框架的多目标跟踪算法的基本组件。使用VGG16主干的Faster R-CNN作为目标检测器。对于目标的状态,SORT简单地使用中心坐标、面积、长宽比以及它们的变化率对目标进行建模,而没有利用任何外观信息。SORT使用Kalman滤波器主动地对目标之后的状态进行预测,并将预测的结果与实际检测到的目标边框进行匹配。track与detection的关系被视作二分图,二分图的每一条边的权重由它的两个顶点(分别为一个track和一个detection)的IOU定义。SORT使用匈牙利算法在这个二分图中寻找最优匹配,并为匹配设置最小IOU阈值,以减少错误的匹配数量。 DeepSORT(Simple Online and Realtime Tracking with a Deep Association Metric, ICIP17, N. Wojke, et al.)是SORT改进版本,其最大的贡献在于使用了深度CNN提取目标的特征以作为匹配标准。DeepSORT使用Mahalanobis距离作为运动特征的相似度标准,以及余弦距离作为外观特征编码的相似度标准,两种相似度通过加权平均来得到总体的相似度。另外,DeepSORT定义了一种级联式的匹配方法,使得近期活跃度较高的track被优先匹配。 从应用场景上来说,相关滤波的方法也有一些缺陷,比如目标的快速移动,形状变化大导致更多背景被学习进来等都会导致无法准确的追踪目标;而诸如siamese-rpn算法,采用深度学习模型端到端实现追踪,特别是RPN的引入能够更准确的追踪目标,适应适度形状变化的大的场景。 ## 目标追踪的应用场景 如图4左图所示,这个应用就是结构化去重,现实世界的视频图片数据都是非结构化的数据,只有转化为结构化的数据对我们才有更大的意义,所谓结构化就是指提取图像中的一些有用的信息;比如公安要采集某一个路口一天当中经过的车辆信息及驾驶员的行为信息,其中车辆信息包含车牌信息、车身颜色、车辆品牌等,驾驶员的行为信息具体包括驾驶员是否系安全带、是否打手机等;实际上路口架设的摄像头获取的数据包含了大量的重复信息,比如连续多帧中出现同一辆车,如果对所有的重复车辆都做处理的化,会浪费计算资源和存储资源,那么目标追踪在这个场景中就可以用来去除重复的车辆,从而只采集一辆车的结构化的信息;这样同一辆车只存储一条信息,避免重复存储信息。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/8f1f5286-36d1-4e18-b761-192194938c5820210429103905.jpg)</center> <center>图4</center> 如图1右图所示,这个应用就是无人车避障,无人车想要躲避障碍物,首先要在到达障碍物前就做出预判,从而准确规划路线,这时就可以通过目标追踪获得目标的运动轨迹,进而获得障碍物的运动速度、加速度、角速度等信息,利用这些信息可以准确的判断目标运动的速度及方向,提前做出预判,控制规划路线; 另一个应用就是关注感兴趣的目标,比如我在看一场巴萨和皇马的欧冠决赛,我对梅西比较感兴趣,但是足球场很大,一个人相对于球场显得很小,以至于摄像头拉远时我们看不清哪一个人是梅西,这时就可以通过目标追踪技术打标记,将焦点时时刻刻聚焦到梅西,了解梅西在足球场上的一举一动,提高用户体验。 ## 目标追踪在物流场景的应用 首先来了解一下物流全链路流程(图5),一件商品首先要经过入库储存的过程,在用户下单以后由指定的仓库发货,经过分拣中心分拣到配送站,再由配送站分配给快递小哥,送到用户手中。这包含了仓储、运输和配送三个环节,在这个过程中,应用目标追踪技术对人、货、车进行跟踪提取一些有用的运动信息,从而做一些智能化的管理,来节约人力成本和提高管理效率。这里介绍物流场景下的几个典型应用,具体包括传送带包裹计数、传送带掉件检测、暴力操作及无人配送车。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/5f35481a-95c2-40be-981b-d473e6c6c80120210429104019.png)</center> <center>图5</center> 第一个典型应用场景(图6左图)是传送带包裹计数,统计仓库在某一段时间内的包裹出库数量,从而为优化出库,减少调度时间,提供原始数据支持,为实现智能仓库的终极目标提供数据基础;比如,根据计数结果,有效判断包裹出库高峰期,合理调配人力,有效地减少库房空闲时间的浪费和高峰期的人员不足问题;又比如,自动统计每个仓库的流量高峰期,合理调配运输能力,减少场地的被占用时间和运输车辆和人员的等待时间。在智能化统计包裹数目的过程中,首先检测包裹,但是相邻的帧有部分包裹是重复的,如果直接对检测结果进行计数,由于重复包裹的存在,计数结果实际上远远大于实际的包裹数量,这时通过目标跟踪技术对包裹进行跟踪,可以有效去除重复包裹,从而精确计数。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/d866b336-c27d-41c2-8e1d-58f9056019f520210429104106.jpg)</center> <center>图6</center> 第二个典型应用场景是传送带掉件检测(图6右图),物流仓库、分拣中心的传送带有很好的机械结构能够对运动的货物形成有效保护。但是在一些极端情况下,例如一些故障,仍然有货物掉落的可能。这种情况会造成配送的延迟,甚至货物的丢失。因此需要能够及时发现货物掉落的情况。传送带物体掉落检测就实现了这一功能。相比靠人工进行检查,目前的方法能够有效降低人工成本,提高覆盖率,实时发现问题、解决问题。这里主要通过目标追踪技术获取目标运动轨迹,对运动的轨迹进行判断(运动目标检测),检测掉落的物体。 第三个典型应用场景是暴力操作,在仓库中,拣货操作的过程是有严格要求的,比如搬运货物的力度,货物离手的高度都是有严格限制的 ,一旦发生抛、扔包裹行为容易造成货物损坏。人工监控暴力操作,覆盖率低。现在有了基于视觉技术的检测方案,能够无死角实时监控,同时也可以有效保留记录,对不规范操作行为造成的后果进行追责;通过目标追踪技术获取目标运动轨迹,速度及方向等信息为暴力操作行为识别提供特征信息。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/dd01dacd-70ac-4dfe-a885-f08ecb2e6f9320210429104205.png) </center> <center>图7</center> 第四个典型应用场景是无人车配送,无人车配送主要是应用于城市末端配送业务,比如从站点配送到写字楼、高校园区、居民社区、商业区等;无人车配送可以节约人力成本提高配送效率,可以在一些特殊的情况下发挥作用,比如新冠期间,我们的无人配送车在武汉完成配送任务,避免了人员接触减少了感染风险;图4右图展示了无人配送车的一个完整运营流程图,无人配送车在配送站完成商品装载后上路行驶,经过红绿灯,还要实时躲避障碍物,最后将商品送到客户手中;无人车想要躲避障碍物,首先在到达障碍物前就做出预判,从而提前准确规划路线,这时就可以通过目标追踪获得目标的运动轨迹,进而获得障碍物的运动速度、加速度、角速度、方向等信息,利用目标运动的方向及速度信息,提前做出预判,控制规划好路线。 ## 目标追踪的难点及发展 目标追踪有形态变化、尺度变化、遮挡与消失及图像模糊等难点,物流场景也会存在这样的问题: **形态变化** - 姿态变化是目标跟踪中常见的干扰问题。运动目标发生姿态变化时, 会导致它的特征以及外观模型发生改变, 容易导致跟踪失败。 **尺度变化** - 尺度的自适应也是目标跟踪中的关键问题。当目标尺度缩小时, 由于跟踪框不能自适应跟踪, 会将很多背景信息包含在内, 导致目标模型的更新错误;当目标尺度增大时, 由于跟踪框不能将目标完全包括在内, 跟踪框内目标信息不全, 也会导致目标模型的更新错误。因此, 实现尺度自适应跟踪是十分必要的。 **遮挡与消失** - 目标在运动过程中可能出现被遮挡或者短暂的消失情况。当这种情况发生时, 跟踪框容易将遮挡物以及背景信息包含在跟踪框内, 会导致后续帧中的跟踪目标漂移到遮挡物上面。若目标被完全遮挡时, 由于找不到目标的对应模型, 会导致跟踪失败。 **图像模糊** - 光照强度变化, 目标快速运动, 低分辨率等情况会导致图像模型, 尤其是在运动目标与背景相似的情况下更为明显。因此, 选择有效的特征对目标和背景进行区分非常必要。 随着深度学习的发展,未来会围绕深度学习模型来进一步解决诸如上述问题。 ------------ ###### 自猿其说Tech-JDL京东物流技术发展部 ###### 作者:人工智能与大数据部-通用AI平台部 谷爱国 ------------
原创文章,需联系作者,授权转载
上一篇:HTML5之原生拖拽
下一篇:操作系统之内存管理
相关文章
Taro小程序跨端开发入门实战
Flutter For Web实践
配运基础数据缓存瘦身实践
自猿其说Tech
文章数
426
阅读量
2149963
作者其他文章
01
深入JDK中的Optional
本文将从Optional所解决的问题开始,逐层解剖,由浅入深,文中会出现Optioanl方法之间的对比,实践,误用情况分析,优缺点等。与大家一起,对这项Java8中的新特性,进行理解和深入。
01
Taro小程序跨端开发入门实战
为了让小程序开发更简单,更高效,我们采用 Taro 作为首选框架,我们将使用 Taro 的实践经验整理了出来,主要内容围绕着什么是 Taro,为什么用 Taro,以及 Taro 如何使用(正确使用的姿势),还有 Taro 背后的一些设计思想来进行展开,让大家能够对 Taro 有个完整的认识。
01
Flutter For Web实践
Flutter For Web 已经发布一年多时间,它的发布意味着我们可以真正地使用一套代码、一套资源部署整个大前端系统(包括:iOS、Android、Web)。渠道研发组经过一段时间的探索,使用Flutter For Web技术开发了移动端可视化编程平台—Flutter乐高,在这里希望和大家分享下使用Flutter For Web实践过程和踩坑实践
01
配运基础数据缓存瘦身实践
在基础数据的常规能力当中,数据的存取是最基础也是最重要的能力,为了整体提高数据的读取能力,缓存技术在基础数据的场景中得到了广泛的使用,下面会重点展示一下配运组近期针对数据缓存做的瘦身实践。
自猿其说Tech
文章数
426
阅读量
2149963
作者其他文章
01
深入JDK中的Optional
01
Taro小程序跨端开发入门实战
01
Flutter For Web实践
01
配运基础数据缓存瘦身实践
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号