yolo小白算法学习

http://t.csdnimg.cn/abaVh理解此文

机器学习理解

假设我们正在尝试解决一个预测房价的问题。我们的目标是根据房屋的各种特征(如面积、位置、年龄等)来预测其价格。

1. **问题定义**:这是一个回归问题,预测的是连续值(即房价)。

2. **数据收集**:收集售价数据

3. **数据预处理**:清理格式化数据集,例如删除缺失值或异常值,将文本数据转换为数值表示形式。

4. **特征工程**:选择有助于预测房价的特征。包括房屋面积、地理位置等。

5. **模型选择**:使用线性回归算法建立预测模型。(用线拟合数据点,使线到数据点的距离差异最小)

6. **训练模型**:使用部分数据集(比如70%的数据)来训练模型。在训练过程中,模型会不断调整参数以最小化预测错误。

7. **评估模型**:使用剩余的30%数据作为测试集,计算模型的预测误差(例如均方误差),以了解模型的表现如何。

8. **模型优化**:如果模型表现不佳,可以尝试增加更多的特征、改变模型类型或者调整超参数,然后重新进行训练和评估。

9. **部署与监控**:当模型性能满意时,将其部署到实际应用中,并持续监控其预测结果是否准确。

想理解的代码


# 定义一个名为 yolo_detect 的函数,用于进行目标检测。
def yolo_detect(self, im):
    # 对输入图像(im)执行预处理操作,可能包括调整大小、归一化等。
    img = self.preprocess(im)

    # 使用模型(self.m)对预处理后的图像进行推理,得到预测结果 pred,并设置增强(augment)为 False。
    # 由于返回的预测是一个张量列表,因此取第一个元素 [0]。
    pred = self.m(img, augment=False)[0]

    # 将预测结果从其他数据类型转换为 float 类型。
    pred = pred.float()

    # 对预测结果应用非最大抑制(non_max_suppression),以消除重叠的边界框。
    # 这里使用了自定义的阈值(conf_thres)和交并比阈值(iou_thres)。
    pred = non_max_suppression(pred, self.conf_thres, self.iou_thres )

    # 初始化一个空列表 pred_boxes 用于存储最终检测到的边界框及其相关信息。
    pred_boxes = []

    # 遍历经过非最大抑制后的预测结果 det:
    for det in pred:
        # 如果 det 不为空且包含至少一个边界框,则将其坐标从相对比例缩放回原始图像尺寸(通过调用 scale_coords 函数),并将结果四舍五入。
        if det is not None and len(det):
            det[:, :4] = scale_coords(
                img.shape[2:], det[:, :4], im.shape).round()

        # 再次遍历每个边界框:
        for *x, conf, cls_id in det:
            # 提取出类别标签 lbl(根据类别ID在名称列表中查找);
            lbl = self.names[int(cls_id)]
            # 提取出边界框的四个顶点坐标 x1, y1, x2, y2;
            x1, y1 = int(x[0]), int(x[1])
            x2, y2 = int(x[2]), int(x[3])
            # 提取出置信度 conf;
            # 将提取出的信息作为一个元组添加到 pred_boxes 列表中。
            pred_boxes.append((x1, y1, x2, y2, lbl, conf))

    # 返回存储有所有检测到的边界框信息的列表 pred_boxes。
    return pred_boxes

非最大抑制(NMS)

置信度

lou

非最大抑制(NMS)算法(包括删除高重叠框的过程):

  1. 对输入图像进行预测,得到包含多个边界框和相关置信度的列表。
  2. 按照置信度降序排列该列表。第一个方框具有最高的置信度。
  3. 创建一个新列表来存储经过 NMS 过滤后的唯一框。
  4. 定义一个 IOU 阈值,用于判断两个框是否具有高重叠。

重复以下步骤直到处理完所有框:

5. 从原始框列表中取出第一个框(最高置信度),并将其添加到新列表中。

6. 计算该框与剩余框中同类别框的 IOU 值。

7. 如果找到一个或多个框的 IOU 大于预定义阈值,则移除具有较低置信度的框。

DeepSORT车辆跟踪

假设你在观看一场足球比赛,你正在试图跟踪球员的位置。SORT 算法就像一个助手,只能通过球员的运动轨迹来判断哪个球员是哪个。如果两个球员跑得很快并且彼此靠近,这个助手可能会混淆他们。这就是身份切换现象

现在引入 Deep SORT 算法。Deep SORT 的助手不仅考虑了球员的运动轨迹,还观察了球员的外观特征(比如球衣号码、头发颜色等)。这样一来,即使球员在短时间内快速移动或相互靠近,助手也能更准确地识别和跟踪每个球员。

简而言之,Deep SORT 是一种改进的跟踪算法,它结合了目标的运动信息和外观信息

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值