文末彩蛋:七月在线干货组最新升级的《2021大厂最新AI面试题 [含答案和解析, 更新到前121题]》免费送!
项目一:FastMOT 基于 YOLO、深排序和光流的高性能多对象跟踪
项目地址:
https://github.com/GeekAlexis/FastMOT
FastMOT 是一个自定义多个对象跟踪器,可以实现:
- YOLO探测器
- SSD探测器
- 深度排序+OSNet REID
- KLT光流跟踪
- 相机运动补偿
深度学习模型通常是Deep SORT的瓶颈,这使得Deep SORT无法用于实时应用程序。此项目协议可以在Jetson上显着加快整个系统的实时运行速度。它也提供了足够的灵活性来调整速度精度的权衡,而无需轻量级的模型。
为了实现更快的处理,跟踪器每N帧仅运行一次检测器和特征提取器。然后使用光流填充间隙。在Deep SORT中交换了特征提取器,以获得更好的ReID模型OSNet。还添加了一项功能,可以重新识别移出框架的目标,以便跟踪器可以保留相同的ID。在CrowdHuman(82%mAP@0.5)上训练了YOLOv4,而SSD是TensorFlow的预训练的COCO模型。
检测器和特征提取器均使用TensorRT后端并执行异步推理。此外,使用Numba对大多数算法(包括卡尔曼滤波器,光流和数据关联)进行了优化和多线程处理。
性能:
使用py-motmetrics通过Jetson Xavier NX上的MOT17数据集评估性能。当使用来自MOT17的公开检测时,MOTA分数接近最新的跟踪器。跟踪速度最高可达到38 FPS,具体取决于对象的数量。在台式机CPU / GPU上,FPS应该更高。
这意味着即使跟踪器运行速度更快,它仍然非常准···确。更轻量级的探测器/功能提取器可能用于获得更多的速度。请注意,普通的深度排序+YOLO很难在大多数边缘设备和台式机上实时运行。
系统环境:
- CUDA >= 10
- cuDNN >= 7
- TensorRT >= 7
- OpenCV >= 3.3
- PyCuda
- Numpy >= 1.15
- Scipy >= 1.5
- TensorFlow < 2.0 (for SSD support)
- Numba == 0.48
- cython-bbox
此项目支持多类别跟踪,因此可以轻松扩展到自定义类别(例如,车辆)。需要在对象类上训练YOLO和ReID模型。检查Darknet以训练YOLO,并检查fast-reid以训练ReID。训练后,将模型转换为ONNX格式,并将其放置在fastmot /模型下。要将YOLO转换为ONNX,tensorrt_demos是一个很好的参考。