1.推理指令
使用已有的模型进行推理,在命令行中传入参数
python detect.py --weight yolov5s.pt --source demo.mp4 --data coco.yaml
# --weight训练好的或者预训练的模型文件
# --sourse要传入进行推理的文件(传入0表示打开电脑默认摄像头)
# --data数据集的配置文件
(或者直接修改detect.py文件默认参数,这样不需要在命令行传入参数直接运行python detect.py,但每次都修改有些麻烦)
最终推理结果会被放置在yolov5/runs/detect目录下
2.参数列表
参数 | 功能 | 传入信息示例 |
---|---|---|
--weights | 指定模型路径或 Triton URL | 模型文件路径,如 ROOT / "Models/model_onnx/ASL_m_85.onnx" |
--source | 指定输入文件、目录、URL、全局匹配模式、屏幕(0 代表 webcam) | 文件路径或目录路径等,如 ROOT / "../Datas/test-vid/love.mp4" |
--data | 指定数据集配置文件路径 | 数据集配置文件路径,如 ROOT / "data/data_ASL.yaml" |
--imgsz | 指定推理图像大小 | 一个或两个整数组成的列表,表示高和宽,如 [640] |
--conf-thres | 设置置信度阈值 | 浮点数,如 0.25 |
--iou-thres | 设置非极大值抑制(NMS)的 IoU 阈值 | 浮点数,如 0.45 |
--max-det | 设置每张图像的最大检测数量 | 整数,如 1000 |
--device | 指定 CUDA 设备,若为空则为 CPU | 设备编号或 "cpu",如 "0" 或 "0,1,2,3" |
--view-img | 是否显示结果 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--save-txt | 是否将结果保存为.txt 文件 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--save-csv | 是否将结果以 CSV 格式保存 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--save-conf | 在保存为.txt 文件的标签中是否保存置信度 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--save-crop | 是否保存裁剪后的预测框 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--nosave | 是否不保存图像或视频 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--classes | 按类别进行过滤 | 整数组成的列表,如 [0] 或 [0, 2, 3] |
--agnostic-nms | 是否进行类别无关的 NMS | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--augment | 是否进行增强推理 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--visualize | 是否可视化特征 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--update | 是否更新所有模型 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--project | 指定保存结果的项目路径 | 路径,如 ROOT / "runs/detect" |
--name | 指定保存结果的名称 | 字符串,如 "exp" |
--exist-ok | 若项目 / 名称已存在是否继续,不递增 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--line-thickness | 设置边界框的厚度(像素) | 整数,如 3 |
--hide-labels | 是否隐藏标签 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--hide-conf | 是否隐藏置信度 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--half | 是否使用 FP16 半精度推理 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--dnn | 是否使用 OpenCV DNN 进行 ONNX 推理 | 布尔值,action="store_true",若执行命令时带有该参数则为 True |
--vid-stride | 设置视频帧率步长 | 整数,如 1 |
3.常用参数
一般可能修改的参数有:
1. --source
指定模型推理的输入源。
2. --weights
指定模型的权重文件路径或Triton URL。当有新的训练好的模型或者要使用不同的预训练模型时,这个参数就需要修改。
3. --conf - thres
置信度阈值,用于筛选检测结果中可信度较高的目标
例如,在一个对准确性要求极高的场景下,可以适当提高`--conf - thres`,减少误检
4. --iou - thres
是非极大值抑制(NMS)的交并比(IoU)阈值,用于去除重叠过多的检测框
如果想要更完整地检测出目标,可能需要适当降低`--iou - thres`,但这可能会导致一些稍微重叠的检测框被保留
5. --classes
用于按类别过滤检测结果。当只关注特定类别的目标检测时,可以修改这个参数。
例如,模型可以检测多种物体(如人、车、动物等),但在某个应用场景中只关心人的检测,就可以通过这个参数指定只检测人的类别。
5. --device
指定使用的计算设备,如CUDA设备或CPU。当有不同的硬件资源可用或者想要在不同设备上测试模型性能时,会修改这个参数。