YOLOv5提高检测速度:使用detect.py进行多进程推理

YOLOv5提高检测速度:使用detect.py进行多进程推理

需求

我们的项目有一个需求,就是10s之内得检测完一张图片。但实际上程序可能需要的时间接近40s,所以就有了一个多线程的需求。所以下面测试我将通过跑3次相同路径下图片的耗时进行比较。使用的GPU设备是RTX3060。

原始推理

我先对他的main函数做了一些简单的修改。

def main(path):
    opt = parse_opt(path)
    check_requirements(ROOT / 'requirements.txt', exclude=('tensorboard', 'thop'))
    return run(**vars(opt))

if __name__ == '__main__':
    s_t = time.time
### 使用YOLOv5实现摄像头实时物体检测 为了使用YOLOv5进行摄像头实时物体检测,可以按照以下方法操作: #### 准备工作 确保已经安装了必要的依赖库并配置好环境。可以从GitHub官方仓库获取YOLOv5源码[^3]。 ```bash git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt ``` #### 修改`detect.py`脚本以支持多个摄像头输入 对于多摄像头的支持,在运行`detect.py`时可能遇到一个问题:默认情况下仅能成功处理单个视频流或设备。如果希望同时利用两个不同的摄像装置(比如内置相机和外接USB相机),则需调整代码逻辑来分别初始化这些资源,并为每一个创建独立的数据读取线程或者进程[^1]。 针对特定的摄像头索引设置可以通过命令行参数传递给程序,例如通过指定`source=0`访问计算机内部集成的webcam;而像连接至系统的其他外部成像单元,则通常采用更高的编号如`source=1`或其他路径字符串表示文件名或是网络地址等形式[^4]。 #### 调整图像显示延迟 为了避免界面卡顿现象发生,应当适当修改OpenCV用于控制画面刷新频率的部分——即将原本等待按键事件的时间间隔从无限期(`waitKey(0)`)更改为较短周期(例如每过大约十几毫秒就更新一次屏幕内容)。这有助于保持流畅度的同时不影响交互体验。 ```python cv2.waitKey(10) ``` #### 启动检测过程 最后一步就是启动整个流程,只需简单地执行Python脚本来触发后续一系列动作,包括但不限于加载预训练模型权重、开启选定的目标采集渠道以及循环播放经过标注后的视屏片段直至手动终止会话为止。 ```bash python detect.py --weights yolov5s.pt --weights`: 指定要使用模型权重文件位置; - `--img`: 设置推理图片尺寸大小,默认值一般设为640像素宽高相等正方形裁剪区域; - `--conf`: 定义置信度阈值,低于此概率得分的对象不会被标记出来; - `--source`: 设定视频来源,这里选择了ID为0的本地物理传感器作为输入端口。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值