YOLOv5实战:从B站视频下载到智能检测全流程解析

张开发
2026/4/13 6:41:04 15 分钟阅读

分享文章

YOLOv5实战:从B站视频下载到智能检测全流程解析
1. 环境准备与工具安装搞计算机视觉项目最头疼的就是配环境我自己第一次跑YOLOv5的时候光装CUDA就折腾了两天。不过别担心我帮你把踩过的坑都总结好了跟着这个流程走能省下80%的时间。首先得有个Python环境推荐用Anaconda管理。我习惯用Python 3.8版本太新的版本可能会遇到依赖冲突。安装完Anaconda后打开终端创建一个专属环境conda create -n yolo5 python3.8 conda activate yolo5接下来安装PyTorch这是YOLOv5的底层框架。去PyTorch官网选择对应CUDA版本的命令如果你显卡是NVIDIA的一定要装GPU版本pip install torch1.10.0cu113 torchvision0.11.1cu113 -f https://download.pytorch.org/whl/torch_stable.html验证安装是否成功可以跑个简单测试import torch print(torch.cuda.is_available()) # 应该输出True print(torch.rand(2,3).cuda()) # 应该能正常打印张量2. 获取YOLOv5源码与模型YOLOv5的代码托管在GitHub上直接克隆最新版本就行。我建议新建个专门的项目文件夹mkdir yolo_project cd yolo_project git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt预训练模型的选择有讲究官方提供了多个版本yolov5s.pt最小最快的版本适合移动端yolov5m.pt平衡版yolov5l.pt精度更高yolov5x.pt最大最准的版本新手建议先用yolov5s练手等流程跑通再换大模型。下载命令很简单wget https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5s.pt3. 获取B站视频素材B站视频下载我推荐用you-get这个神器比官方客户端方便多了。先安装pip install you-get下载视频时有个小技巧先打开B站网页在视频播放页面按F12打开开发者工具切换到Network标签然后刷新页面。在过滤框输入m4s能找到真正的视频流地址复制这个地址用you-get下载会更稳定you-get -o ./data/videos https://视频流地址下载下来的视频可能是flv或m4s格式需要转成mp4。用ffmpeg一行命令搞定ffmpeg -i input.flv -c copy output.mp44. 运行目标检测终于到重头戏了detect.py脚本有超多实用参数我列几个最常用的--weights模型路径--source视频路径--conf置信度阈值默认0.25--img-size输入尺寸默认640--device指定GPU如--device 0完整命令示例python detect.py --weights yolov5s.pt --source data/videos/demo.mp4 --conf 0.5 --device 0运行时会实时显示处理进度完成后结果会保存在runs/detect/exp目录。视频检测结果会自动保存为.mp4文件还会生成包含检测框坐标的txt文件。5. 结果分析与优化第一次跑可能会遇到各种问题我整理了几个常见情况问题1检测框漂移原因视频帧率太高导致漏检解决加--fps参数限制处理帧率问题2小目标检测不到原因默认输入尺寸太小解决增大--img-size如1280问题3误检太多原因置信度阈值太低解决调高--conf如0.6如果想保存检测过程的统计信息可以加--save-txt和--save-conf参数。对于长视频建议用--half开启半精度推理速度能快一倍。6. 进阶技巧当基础流程跑通后可以尝试这些进阶操作多线程处理from multiprocessing import Pool def process_video(video_path): # 你的检测代码 with Pool(4) as p: # 4个进程并行 p.map(process_video, video_list)自定义模型 如果想检测特定物体可以用自己的数据集微调python train.py --img 640 --batch 16 --epochs 50 --data custom.yaml --weights yolov5s.pt导出为其他格式 部署时需要转成ONNX或TensorRTpython export.py --weights yolov5s.pt --include onnx engine7. 实际应用案例最近我用这套流程给一个电商客户做了商品检测系统。他们需要从直播视频中自动识别展示的商品关键点在于用--classes参数限定只检测特定类别设置--conf为0.7减少误报添加了后处理脚本过滤重复检测最终在RTX 3090上能达到实时处理30FPS准确率比人工标注还高。整个项目从环境搭建到交付只用了两周客户特别满意。

更多文章