图像理解任务复杂多样,单纯的目标检测已经不能满足你了?
作为目标检测领域的扛把子,PaddleDetection当然不仅仅提供通用目标检测算法,还拥有多个业界先进、实用的关键点检测和多目标跟踪算法。除了可以准确识别、定位目标,还可以对移动的目标进行连续跟踪、分析路径,甚至进行姿态、行为分析!
再加上已有的超越YOLOv5的单阶段目标检测算法:PPYOLOv2、霸榜PaperWithCode的AnchorFree算法:FAFNet、旋转框检测、实例分割等等明星算法,PaddleDetection已经可以全方位、立体式地满足开发者各个维度的需求,助力你成为目标检测界的懂王!
这么用心研发的高水准产品,还不赶紧收藏上车!
传送门:
https://github.com/PaddlePaddle/PaddleDetection
下面,让我们来详细看看PaddleDetection最近上新的这两样“宝贝”:关键点检测和多目标跟踪,有什么厉害之处!
关键点检测
正如下图中展示的,关键点检测技术可以提取目标特定关键点的位置以及整体结构。以人体关键点检测为例,提取的信息则是人体关节位置以及关节点间的整体关联结构。
(From PaddleDetection HRNet BodyKeypoint Detection Network)
人体关键点检测在安防、医疗、影视等领域中有极广泛的应用场景,例如进行打斗等异常动作、运动分析评估、演员动作捕捉与姿态迁移等等。
除了可以检测人体关键点外,手部关键点也因为是实现人机、人车交互中手势识别的关键,被各界开发者高度重视。
(From Google AI Blog On-Device, Real-Time Hand Tracking with MediaPipe)
而人脸关键点检测,更是人脸识别、脸部动作捕捉、迁移技术的基础支撑及核心关键。
(From Qualcomm Snapdragon and Qualcomm Neural Processing SDK are products of Qualcomm Technologies, Inc. and/or its subsidiaries.)
还有很多业界大神基于关键点检测技术进行生物行为分析研究。
(From ICCV paper:Cross-Domain Adaptation for Animal Pose Estimation)
关键点检测技术这么神通广大,那它原理具体是怎样的呢?
以人体关键点检测为例,主流的算法分为top-down和bottom-up两大类。
像下图所示的,先检测出人,再对每个人分别检测关键点,就是Top-down的方式。也就是先使用检测算法得出图中每一个人体所在位置,对单个人的区域进行截图,再使用top-down关键点算法对每个单人截图进行单人关键点位置检测,最后再根据截图位置映射回原图。HRNet就是典型的Top-Down算法。
而bottom-up方法则相反:先对整图直接查找每一类关键点所在位置,然后各类关键点再根据特定规则进行group组合以区分属于的不同的人。近年比较优秀的算法HigherHRNet以及在其基础上的改进版SWAHR都属于这类算法。
图片来源:
https://beyondminds.ai/blog/an-overview-of-human-pose-estimation-with-deep-learning/
无论你是明确的希望使用某一类方法,还是想要对两类方法进行对比、组合试验,PaddleDetection都能很好的满足你!
下面的表格就是PaddleDetection提供的两类经典算法在COCO数据集、不同输入尺寸下的数据展示。
多目标跟踪
多目标跟踪(Multiple Object Tracking,MOT)指的是在视频序列中同时检测多个目标的轨迹。它的应用范围也非常广泛,比如安防监控和自动驾驶等场景中的行人、车辆跟踪及轨迹分析等等。
当前主流的MOT策略是tracking by detection,这种策略将整个多目标跟踪任务拆分为两部分:检测 Embedding。检测部分即针对视频,检测出每一帧中的潜在目标。Embedding则将检出的目标分配和更新到已有的对应轨迹上(即ReID重识别任务)。根据这两部分实现的顺序,主流的多目标跟踪算法可以划分为SDE系列和JDE系列2类。
下面,就让我们详细看看这两系列算法的区别:
- SDE系列:
这类算法完全分离检测和embedding两个环节,检测器和embedding模型(ReID)解耦串联。这样的设计可以使系统无差别的适配各类检测器,并使开发者可以针对两个模块分别调优。但由于是两个算法串联,这类方法的缺点也比较明显,那就是耗时较长,在构建实时MOT系统中面临较大挑战。
DeepSORT是SDE系列算法的代表,它扩展了原有的SORT(Simple Online and Realtime Tracking)算法,增加了一个CNN模型对检测出的人像提取特征,在深度外观描述的基础上整合外观信息。
- JDE系列:
JDE(Joint Detection and Embedding)即在共享神经网络中同时学习目标检测任务和外观嵌入任务。这类算法的训练过程被构建为一个多任务联合学习问题,兼顾精度和速度。
JDE原论文是基于Anchor Base的YOLOv3新加一个Reid head学习外观embedding特征。
FairMOT则是以Anchor Free的CenterNet 为基础,由两个齐次的分支去用于预测像素级的目标分数和ReID特征,任务之间实现的公平性联合学习,实现高精度的实时跟踪。
不要以为我们只是说说罢了,这里我们介绍的这2系列3种多目标跟踪(MOT)算法,在PaddleDetection中都提供了高性能实现。
而采用业界通用多目标检测评估方法:将6个公开数据集组成一个大规模、多标签的联合数据集(包括Caltech Pedestrian, CityPersons, CUHK-SYSU, PRW, ETHZ, MOT17和MOT16),其中MOT16作为评测数据集。而采用MOTA作为评估指标,结果如下表所示:
在MOT-16 Training Set上结果
在MOT-16 Test Set上结果
除此之外,PaddleDetection还可以将关键点检测和多目标技术相结合,获取更多人体姿态相关信息。例如我们使用多目标跟踪算法FairMot获取行人位置及id信息,结合关键点检测HRNet算法检测行人关键点得到最终输出结果,得到如下图所示效果:
(From PaddleDetection HRNet BodyKeypoint Detection Network:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/docs/images/mot_pose_demo_640x360.gif)
PaddleDetection全貌
对PaddleDetection熟悉的小伙伴可能比较清楚,除了本篇介绍的关键点检测及多目标跟踪能力外,PaddleDetection作为中国产业实践中目标检测领域一柄重器,能力可谓完备而强大,简单的可以概括为以下三个方面:
全明星算法阵容:
- 拥有超越YOLOv4、YOLOv5 的PP-YOLO系列算法
- 1.3M 超超超轻量目标检测算法PP-YOLO Tiny
- 全面领先同类框架的RCNN系列算法
- 以及SOTA 的Anchor Free算法:PAFNet(Paddle Anchor Free)
全功能覆盖:
除全系列通用目标检测算法外,额外覆盖旋转框检测、实例分割、行人检测、人脸检测、车辆检测等垂类任务。
简单易用、全流程打通:
不仅全面支持动态图开发,可以顺畅的完成动静转化;还从数据预处理、算法训练调优、压缩、多端部署等全流程、各环节顺畅打通,极大程度地提升了用户开发的易用性,加速了算法产业应用落地的速度。
你还在等什么?!如此用心研发的高水准产品,还不赶紧Star收藏上车!
传送门:
https://github.com/PaddlePaddle/PaddleDetection