YOLOV3输出tensor的解读

YOLOV3模型有3个输出tensor,对应输入图像的32倍、16倍和8倍下采样。每个tensor表示不同尺度的检测,用于检测不同大小的物体。每个小方格有3个anchor box,总共可检测10647个物体。输出tensor维度为(batchsize, 10647, 85),其中85包含位置、置信度和类别概率信息。" 107527744,8035154,MySQL基础操作详解,"['数据库管理', 'SQL查询', '表连接', '数据操作', '存储过程']
摘要由CSDN通过智能技术生成

用过YOLOV3模型的人都知道,YOLOV3网络有3个输出tensor,他分别是对输入RGB三通道图像的32倍,16倍以及8倍的下采样,YOLOV3支持三种尺寸的图像输入,分别是320x320,416x416以及608x608,我们以416X416为例,输入和输出示意图如下:

Yolo v3 采用 FPN(Feature Pyramid Network,特征金字塔结构,就是多种尺寸的特征图构成金字塔结构) 网络的思路输出多尺度特征,效果很好,对于如上的tensor输出,它的维度顺序是怎样的呢?在百思不得其解的情况下,就需要看代码来解惑了。我们找到darknet的代码后处理实现部分,关键流程在函数forward_yolo_layer中:

我们关注entry_index的实现:

 我们知道,根据YOLOV3论文中的说法,以416X416尺寸的输入图像为例,YOLOV3是将其按照 13x13,26x16,52x52分割成小块,如下图的样子,用示意图表示如下,原图尺寸是1200x741.

先用FFMPG将其转换为416X416NV12格式:

ffmpeg -i beauty.jpeg -pix_fmt nv12 -s 416x416 beauty.nv12.yuv

之后,用命令查看:

ffplay -pix_fmt nv12 -f rawvideo -video_size 416x416 ./beauty.nv12.yuv

可以看到,图像scale的目的已经达到了:

开发程序,分别对图像进行32倍,16倍和8倍下采样,画出网格:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stddef.h>
#include <stdint.h>
#inc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值