如何更改yolov5中的边界框厚度和标签文本?

问题描述 投票:0回答:4

我使用 YOLOv5s 在自定义数据集上进行对象检测,给定视频中有多个对象,有时标签文本和边界框厚度看起来非常糟糕。我如何定制这些东西?

computer-vision object-detection yolov5
4个回答
2
投票

使用

detect.py
时,传入以下参数来调整标签和边界框:

--line-thickness 1
--hide-labels True
--hide-conf True

对于

--line-thickness
参数,传入一个整数值来调整厚度,对于标签和置信度,它们默认设置为
False
。将它们设置为
True
将隐藏它们。


0
投票

请小心使用

--hide-labels True
hide-conf True

在某些情况下,您可能会遇到错误消息。只有
--hide-labels
--hide-conf
应该可以完美工作。

以下是您可以与
detect.py
一起使用的参数列表。

detect.py [-h] [--weights WEIGHTS [WEIGHTS ...]] [--source SOURCE]
                 [--data DATA] [--imgsz IMGSZ [IMGSZ ...]]
                 [--conf-thres CONF_THRES] [--iou-thres IOU_THRES]
                 [--max-det MAX_DET] [--device DEVICE] [--view-img]
                 [--save-txt] [--save-conf] [--save-crop] [--nosave]
                 [--classes CLASSES [CLASSES ...]] [--agnostic-nms]
                 [--augment] [--visualize] [--update] [--project PROJECT]
                 [--name NAME] [--exist-ok] [--line-thickness LINE_THICKNESS]
                 [--hide-labels] [--hide-conf] [--half] [--dnn]

0
投票

在 detector.py 文件中,您可以看到有一个名为 run 的函数,您可以在其中操作检测结果

def run(
        weights=ROOT / 'yolov5s.pt',  # model path or triton URL
        source=ROOT / 'data/images',  # file/dir/URL/glob/screen/0(webcam)
        data=ROOT / 'data/coco128.yaml',  # dataset.yaml path
        imgsz=(640, 640),  # inference size (height, width)
        conf_thres=0.25,  # confidence threshold
        iou_thres=0.45,  # NMS IOU threshold
        max_det=1000,  # maximum detections per image
        device='',  # cuda device, i.e. 0 or 0,1,2,3 or cpu
        view_img=False,  # show results
        save_txt=False,  # save results to *.txt
        save_conf=False,  # save confidences in --save-txt labels
        save_crop=False,  # save cropped prediction boxes
        nosave=False,  # do not save images/videos
        classes=None,  # filter by class: --class 0, or --class 0 2 3
        agnostic_nms=False,  # class-agnostic NMS
        augment=False,  # augmented inference
        visualize=False,  # visualize features
        update=False,  # update all models
        project=ROOT / 'runs/detect',  # save results to project/name
        name='exp',  # save results to project/name
        exist_ok=False,  # existing project/name ok, do not increment
        line_thickness=3,  # bounding box thickness (pixels)
        hide_labels=False,  # hide labels
        hide_conf=False,  # hide confidences
        half=False,  # use FP16 half-precision inference
        dnn=False,  # use OpenCV DNN for ONNX inference
        vid_stride=1,  # video frame-rate stride
):

现在您可以在此处调整线条粗细

line_thickness=3


0
投票

在 def parse_opt() 内的 detector.py 文件中,我在这行代码中更改了 line_thickness=1(默认为 3) parser.add_argument("--line-thickness", default=1, type=int, help= “边界框厚度(像素)”)。它对我有用。

def parse_opt(): 解析器 = argparse.ArgumentParser() parser.add_argument("--weights", nargs="+", type=str, default=ROOT / "yolov5s.pt", help="模型路径或 triton URL") parser.add_argument("--source", type=str, default=ROOT / "data/images", help="file/dir/URL/glob/screen/0(webcam)") parser.add_argument("--data", type=str, default=ROOT / "data/coco128.yaml", help="(可选) dataset.yaml 路径") parser.add_argument("--imgsz", "--img", "--img-size", nargs="+", type=int, default=[640], help="推断大小 h,w") parser.add_argument("--conf-thres", type=float, default=0.25, help="置信阈值") parser.add_argument("--iou-thres", type=float, default=0.45, help="NMS IoU 阈值") parser.add_argument("--max-det", type=int, default=1000, help="每个图像的最大检测数") parser.add_argument("--device", default="", help="cuda 设备,即 0 或 0,1,2,3 或 cpu") parser.add_argument("--view-img", action="store_true", help="显示结果") parser.add_argument("--save-txt", action="store_true", help="将结果保存到 *.txt") parser.add_argument("--save-csv", action="store_true", help="以 CSV 格式保存结果") parser.add_argument("--save-conf", action="store_true", help="保存 --save-txt 标签中的置信度") parser.add_argument("--save-crop", action="store_true", help="保存裁剪后的预测框") parser.add_argument("--nosave", action="store_true", help="不保存图像/视频") parser.add_argument("--classes", nargs="+", type=int, help="按类过滤:--classes 0, 或 --classes 0 2 3") parser.add_argument("--agnostic-nms", action="store_true", help="class-agnostic NMS") parser.add_argument("--augment", action="store_true", help="增强推理") parser.add_argument("--visualize", action="store_true", help="可视化功能") parser.add_argument("--update", action="store_true", help="更新所有模型") parser.add_argument(“--project”,默认= ROOT /“运行/检测”,help =“将结果保存到项目/名称”) parser.add_argument("--name", default="exp", help="将结果保存到项目/名称") parser.add_argument("--exist-ok", action="store_true", help="现有项目/名称可以,不要增加") parser.add_argument("--line-thickness", default=1, type=int, help="边界框厚度(像素)") parser.add_argument("--hide-labels", default=False, action="store_true", help="隐藏标签") parser.add_argument("--hide-conf", default=False, action="store_true", help="隐藏机密") parser.add_argument("--half", action="store_true", help="使用 FP16 半精度推理") parser.add_argument("--dnn", action="store_true", help="使用 OpenCV DNN 进行 ONNX 推理") parser.add_argument("--vid-stride", type=int, default=1, help="视频帧率步幅") opt = parser.parse_args() opt.imgsz *= 2 if len(opt.imgsz) == 1 else 1 # 展开 print_args(变量(选择)) 返回选择

© www.soinside.com 2019 - 2024. All rights reserved.