3.5.目标检测和数据集

目标检测

​ 用框框住目标,可以用几个数字表示框

  • 4个数字:左上角和右上角的横纵坐标
  • 4个数字:边框中心的横纵坐标和框的宽度和高度

1.边界框

​ 两种表示方法转换方法:

#@save
def box_corner_to_center(boxes):
    """从(左上,右下)转换到(中间,宽度,高度)"""
    x1, y1, x2, y2 = boxes[:, 0], boxes[:, 1], boxes[:, 2], boxes[:, 3]
    cx = (x1 + x2) / 2
    cy = (y1 + y2) / 2
    w = x2 - x1
    h = y2 - y1
    boxes = torch.stack((cx, cy, w, h), axis=-1)
    return boxes

#@save
def box_center_to_corner(boxes):
    """从(中间,宽度,高度)转换到(左上,右下)"""
    cx, cy, w, h = boxes[:, 0], boxes[:, 1], boxes[:, 2], boxes[:, 3]
    x1 = cx - 0.5 * w
    y1 = cy - 0.5 * h
    x2 = cx + 0.5 * w
    y2 = cy + 0.5 * h
    boxes = torch.stack((x1, y1, x2, y2), axis=-1)
    return boxes

​ 随便定义一下框的边界:

# bbox是边界框的英文缩写
dog_bbox, cat_bbox = [60.0, 45.0, 378.0, 516.0], [400.0, 112.0, 655.0, 493.0]

​ 转换,验证一下:

boxes = torch.tensor((dog_bbox, cat_bbox))
box_center_to_corner(box_corner_to_center(boxes)) == boxes

​ 将边界框在图中画出:

def bbox_to_rect(bbox, color):
    # 将边界框(左上x,左上y,右下x,右下y)格式转换成matplotlib格式:
    # plt绘制矩形的格式:((左上x,左上y),宽,高)
    return d2l.plt.Rectangle(
        xy=(bbox[0], bbox[1]), width=bbox[2]-bbox[0], height=bbox[3]-bbox[1],
        fill=False, edgecolor=color, linewidth=2)

​ 画一下

fig = d2l.plt.imshow(img)
fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue'))
fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'));

2. 目标检测数据集

​ 每行表示一个物体:图片文件名,物体类别,边缘框(同一类物体可能出现多次)

​ COCO:80个物体,330K图片,1.5M物体

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建yolo目标检测的环境需要以下几个步骤: 首先,我们需要安装Python和相关的依赖项。首先,确保我们已经安装了Python,并且版本在3.5以上。然后,使用pip命令安装以下依赖项:numpy、opencv-python、tqdm和matplotlib。 接下来,我们需要下载yolo-air模块及其预训练权重。在GitHub上找到yolo-air的代码库,并下载它。然后,下载yolo-air的预训练权重并将其放置在模块的文件夹中。 然后,我们需要下载yolo的配置文件。在GitHub上找到yolo的代码库,并下载它。然后,从代码库中找到适合我们的实验的配置文件,并将其放在yolo-air模块的文件夹中。 接下来,我们需要准备我们的数据集。将图像和其对应的标签放置在一个文件夹中,并确保标签文件的格式与yolo所需的格式相匹配。可以通过将标签转换为yolo格式或使用标签转换工具来实现。 之后,我们需要对数据集进行分割,将其划分为训练集和测试集。可以使用Python的库,如scikit-learn或numpy来实现数据集的划分。 最后,我们可以开始训练和测试我们的模型。使用yolo-air模块来加载我们的预训练权重和配置文件,并使用训练集进行训练。训练完成后,使用测试集进行模型的评估和验证。 总之,搭建yolo目标检测的环境涉及安装Python和相关依赖项,下载yolo-air模块和预训练权重,下载yolo的配置文件,准备数据集并进行分割,最后使用yolo-air模块进行训练和测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值