神经网络复现之Pytorch-yolov3

博客链接 网络结构图最中间下面batch_size应该13×13×512
视频链接

特征金字塔:进行多尺度特征融合,提取出更有效的特征。典型例子yolov3。
先验框调整过程

先验框调整过程,中心由左上角往右下角区域调整(绘图原点原因造成图片显示是往右上角调整),同时先验框宽高也在调整。

  1. darknet.py:主干网络构建,定义残差结构,通过循环构建darknet主干提取网络,返回底部三个特征层 52×52×256、26×26×512、13×13×024。
  2. yolo3.py:主要是yolobody网络构建,通过七次卷积获得最终三个特征层(注意进行七次卷积的位置),五次卷积后的结果再卷积、上采样、cat。
  3. utils.py文件中DecodeBox解码:利用网络预测结果对先验框进行调整的过程。将anchor调整为适应不同特征层(通过计算得出先验框宽高,与后面预测wh结合调整为预测框)、获得先验框中心(网格左上角)、与预测xy结合调整中心位置、预测框通过比例返回到原始图片上、得到物体置信度和种类置信度。
  4. yolo.py里的YOLO(object):创建模型、加载权重、CUDA是否使用、图片加灰条、解码得到预测框、NMS、去灰条、画框。
  5. yolo_training.py中的YOLOLoss(nn.Module):(在训练的main函数中分三次计算)。通过prediction计算出先验框与预测框的xywh调整参数、物体置信度、种类置信度。通过get_target得到xywh、物体和种类置信度的真实调整值。并通过get_ignore把预测结果和真实结果iou大的去掉,方便网络训练。最后计算不同损失并求出总损失。
  6. yolo_training.py中的get_target函数:利用真实框和先验框计算交并比,找到哪些先验框内部包含物体。get_ignore函数将预测结果进行解码,判断预测结果和真实值的重合程度,如果重合程度过大则忽略,因为这些特征点属于预测比较准确的特征点,作为负样本不合适。
  7. class Generator(object):数据生成器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值