yolov5 + deepsort实现了行人计数
2023-02-18 16:36:03 时间
本项目使用yolov5作为检测器,使用deepsort作为跟踪器,跟踪并计数镜头前走过的行人数量。
代码中设置的是只计数行人的数量,如果要计数其他东西比如车辆之类的也非常简单,只需要稍微修改一下代码即可,
在parser.add_argument('--classes', default=0, type=int, help='filter by class: --class 0, or --class 0 1 2 3')中,通过classes来过滤yolov5要检测类别,0表示检测人,1表示自行车,还有其他的类别。
项目入口:主要的外部输入的参数,defalt为默认参数
if __name__ == "__main__":
torch.multiprocessing.set_start_method('spawn')
parser = argparse.ArgumentParser()
# 视频的路径,默认是本项目中的一个测试视频test.mp4,可自行更改
parser.add_argument('--input', type=str, default="./test.mp4",
help='test imgs folder or video or camera') # 输入'0'表示调用电脑默认摄像头
# 处理后视频的输出路径
parser.add_argument('--output', type=str, default="./output",
help='folder to save result imgs, can not use input folder')
parser.add_argument('--weights', type=str, default='weights/yolov5l.pt', help='model.pt path(s)')
parser.add_argument('--img_size', type=int, default=640, help='inference size (pixels)')
parser.add_argument('--conf_thres', type=float, default=0.4, help='object confidence threshold')
parser.add_argument('--iou_thres', type=float, default=0.4, help='IOU threshold for NMS')
# GPU(0表示设备的默认的显卡)或CPU
parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
# 通过classes来过滤yolo要检测类别,0表示检测人,1表示自行车,更多具体类别数字可以在19行附近打印出来
parser.add_argument('--classes', default=0, type=int, help='filter by class: --class 0, or --class 0 1 2 3')
yolo5_config = parser.parse_args()
print(yolo5_config)
main(yolo5_config)
print("结果保存在:", yolo5_config.output)
yolov5 + deepsort实现了行人计数功能, 统计摄像头内出现过的总人数,以及对穿越自定义黄线行人计数效果如下
相关文章
- SPI:Java的高可扩展利器
- Java反射机制清空字符串导致业务异常分析
- 7000+字图文并茂解带你深入理解java锁升级的每个细节
- 全文手敲代码,教你用Java实现扫雷小游戏
- 4种方法教你如何查看java对象所占内存大小
- 手绘图解java类加载原理
- Java中的线程到底有哪些安全策略
- Java中观察者模式与委托,还在傻傻分不清
- 一图详解java-class类文件原理
- Java遇上SPL:架构优势和开发效率,一个不放过
- 长篇图解java反射机制及其应用场景
- [java并发编程]基于信号量semaphore实现限流器
- java并发编程-StampedLock高性能读写锁
- 【java并发编程】ReentrantLock 可重入读写锁
- 【java并发编程】Lock & Condition 协调同步生产消费
- Java synchronized对象级别与类级别的同步锁
- java并发编程JUC第十二篇:AtomicInteger原子整型
- java并发编程JUC第十一篇:如何在线程之间进行对等数据交换
- java并发编程JUC第十篇:CyclicBarrier线程同步
- java并发编程JUC第九篇:CountDownLatch线程同步