|AI边缘推理与数据中心的差别在哪儿( 二 )


总之 , 如果你正在研究推理加速器 , 请明白它们是为什么而优化的 。
今年推出的大多数推断加速器都是为ResNet-50进行优化设计的 , 本人认为是一个糟糕基准测试 , 因为它使用了小图像 , 比如224×224 。
|AI边缘推理与数据中心的差别在哪儿
本文插图

对于像自动驾驶这样的应用程序 , 一般是需要处理200万像素的1440×1440级别的图像 。 对于这些应用程序 , YOLOv3是一个更好的基准测试 。
我们也开始看到与ResNet-50和YOLOv3有着截然不同的新模型 。 在生物医学工程或医学成像等市场 , 他们处理不同类型的传感器 , 而非行人目标的检测和识别 , 他们以一种非常不同的方式使用神经网络 。 在YOLOv3上运行良好的加速器可能在这些模型上运行得更好 。
简单介绍一下YOLOv3 , 它是YOLO (You Only Look Once)系列目标检测算法中的第三版 , 相比之前的算法 , 尤其是针对小目标 , 精度有显著提升 。 下面我们就来看看在算法中究竟有哪些提升 。
YOLOv3算法
|AI边缘推理与数据中心的差别在哪儿
本文插图

首先如上图所示 , 在训练过程中对于每幅输入图像 , YOLOv3会预测三个不同大小的3D tensor , 对应着三个不同的scale 。 设计这三个scale的目的就是为了能够检测出不同大小的物体 。 在这里我们以13x13的tensor为例做一个简单讲解 。 对于这个scale , 原始输入图像会被分成分割成13x13的grid cell , 每个grid cell对应着3D tensor中的1x1x255这样一个长条形voxel 。 255这个数字来源于(3x(4+1+80)) , 其中的数字代表bounding box的坐标 , 物体识别度(objectness score) , 以及相对应的每个class的confidence , 具体释义见上图 。
其次 , 如果训练集中某一个ground truth对应的bounding box中心恰好落在了输入图像的某一个grid cell中(如图中的红色grid cell) , 那么这个grid cell就负责预测此物体的bounding box , 于是这个grid cell所对应的objectness score就被赋予1 , 其余的grid cell则为0 。 此外 , 每个grid cell还被赋予3个不同大小的prior box 。 在学习过程中 , 这个grid cell会逐渐学会如何选择哪个大小的prior box , 以及对这个prior box进行微调(即offset/coordinate) 。 但是grid cell是如何知道该选取哪个prior box呢?在这里作者定义了一个规则 , 即只选取与ground truth bounding box的IOU重合度最高的哪个prior box 。
上面说了有三个预设的不同大小的prior box , 但是这三个大小是怎么计算得来的呢?作者首先在训练前 , 提前将COCO数据集中的所有bbox使用K-means clustering分成9个类别 , 每3个类别对应一个scale , 这样总共3个scale 。 这种关于box大小的先验信息极大地帮助网络准确的预测每个Box的offset/coordinate , 因为从直观上 , 大小合适的box将会使网络更快速精准地学习 。


推荐阅读