甜点
最近写文章加了一个甜点小环节,在甜点环节就是随便聊一聊,可能和主题相关也可能不相关,尽量聊聊有趣的事。说到 RetinaNet 自然就想起来大牛何凯明。先来一张照片让大家认识一下我众多偶像中的一个。
其实在机器学习中活跃华人还真不少,而且他们对推动深度学习向前发展都作出相当重要贡献,我知道的就有李飞飞、吴恩达和何凯明。所以大家也应该相信自己能够深度学习并应用到现实中来提高我们生活质量,相信随着深度学习应用不断挖掘,势必推动人类的算力不断上升。说了半天也没啥有趣的,呵呵生活就是这样的。
基本要求
-
具有深度学习基础知识
-
了解卷积神经网络,以及一些经典神经网络结构,例如 VGG 或者 ResNet
-
熟悉 keras 基本语言
-
了解 yolo 基本结构和设计思想
具有了以上基础方便大家阅读和理解我的分享。
相关术语
SKU
在连锁零售门店中有时称单品为一个SKU(中文译为最小存货单位,英文全称为Stock Keeping Unit,简称SKU),我们需要通过目标识别
接下来就是准备一壶咖啡,开始干活 read code。
内容概述
之前写东西很少在开始写之前,对要写内容和要说明内容进行预先设计,都是想到哪里写到哪里。同时也留下许多没有收尾的系列。我们今天就先大概列出大纲把我要说的内容整理列出来,然后有了目标,我们就搜集资料一个一个地把 SKU100K 模型说清楚,
-
介绍一下 RetinaNet 网络结构
-
说一说 RetinaNet 主干网络结构,主要介绍在 RetinaNet 中使用到的 ResNet 网络的特点
-
细说 RetinaNet 中特征提取
-
RetinaNet 中 Anchors 先验框详解
-
Focal Loss 的作用
-
如何使用 SKU110K 进行预测
-
读源码
最后我们会一起阅读一下 SKU110K 的源码,如果有条件大家推动的话,我们就模仿作者实现一个 SKU110K 。
RetinaNet 算法
我们在目标object_detector_retinanet文件夹下 看到了 keras_restinanet 目录,说明一下什么是 Retinanet 目标检测算法,以及 Retinanet 相对于其他目标检测算法的优势所在。说到 Retinanet 算法,我们就不能不提一下我们引以为骄傲的何凯明大牛了,其实 Retinanet 算法就是何凯明在提出 Focal loss 同时为了验证 Focal Loss 的有效性而提出的。Retinanet 算法不仅因为其效果好而且更吸引的是其结构简单。
网络结构分析
现在基本大多数的用于目标检测单发 one_stage 网络结构有点类似,只要学好 YOLO 的结构,看其他用于目标检测网络结构应该就很好理解。首先使用经典网络的某几个层作为提取特征层,其实我们就是将网络输出特征图看作提取出
-
a 分就是主干网络,用于提取图像特征
-
b 部分就是主干提取特征添加了 pyramid net
-
c 和 d 部分是将提取到特征转换为预测结果
-
class subnet 用来预测每一个网格上每一个先验框的种类
-
box subnet 是每一个网格上每一个先验框调整情况,
其实仔细看一眼结果,在 retinanet 网络结构中也没有什么特别之处,都是先通过主干网络提取特征层,然后在不同尺寸(可以理解不同网格大小)的特征层生成一系列不同大小用于识别特征图,并且在生成的不同尺度的图像特征图间同特征融合来得到更加丰富信息的特征图,如果这这些不算了解可以看一下随后我分享的自动动手实现 yolo3 模型的内容。
网友评论