Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
d2l-zh
提交
60827085
D
d2l-zh
项目概览
OpenDocCN
/
d2l-zh
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
d2l-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
60827085
编写于
11月 07, 2018
作者:
A
Aston Zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ssd till concat
上级
240ec4de
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
6 addition
and
10 deletion
+6
-10
chapter_computer-vision/ssd.md
chapter_computer-vision/ssd.md
+6
-10
未找到文件。
chapter_computer-vision/ssd.md
浏览文件 @
60827085
...
...
@@ -12,17 +12,13 @@
接下来我们介绍如何实现图中的各个模块。我们先介绍如何实现类别预测和边界框预测。
### 类别预测
### 类别预测
层
设目标的类别个数为$q$。每个锚框的类别个数将是$q+1$,其中类别0表示锚框只包含背景。在某个尺度下,设特征图的高和宽分别为$h$和$w$,如果以其中每个单元为中心生成$a$个锚框,那么我们
将要对$hwa$个锚框进行分类
。
设目标的类别个数为$q$。每个锚框的类别个数将是$q+1$,其中类别0表示锚框只包含背景。在某个尺度下,设特征图的高和宽分别为$h$和$w$,如果以其中每个单元为中心生成$a$个锚框,那么我们
需要对$hwa$个锚框进行分类。如果使用全连接层作为输出,很容易导致模型参数过多。回忆
[
“网络中的网络(NiN)”
](
../chapter_convolutional-neural-networks/nin.md
)
一节介绍的使用卷积层的通道来输出类别预测的方法。SSD采用同样的方法来降低模型复杂度
。
具体来说,类别预测层使用一个保持输入高和宽的卷积层。这样一来,输出和输入在特征图宽和高上的空间坐标一一对应。考虑输出和输入同一空间坐标$(x,y)$:输出特征图上$(x,y)$坐标的通道里包含了以输入特征图$(x,y)$坐标为中心生成的所有锚框的类别预测。因此输出通道数为$a(q+1)$,其中索引为$i(q+1) + j$($0
\l
eq j
\l
eq q$)的通道代表了索引为$i$的锚框的类别索引为$j$的预测。
如果使用全连接层作为输出,可能会导致有过多的模型参数。回忆
[
“网络中的网络:NiN”
](
../chapter_convolutional-neural-networks/nin.md
)
这一节里我们介绍了使用卷积层的通道来输出类别预测,SSD采用同样的方法来降低模型复杂度。
具体来说,类别预测层使用一个保持输入高宽的卷积层,其输出的$(x,y)$像素通道里包含了以输入$(x,y)$像素为中心的所有锚框的类别预测。其输出通道数为$a(n+1)$,其中通道$i(n+1)$是第$i$个锚框预测的背景置信度,而通道$i(n+1)+j+1$则是第$i$锚框预测的第$j$类目标的置信度。
下面我们定义一个这样的类别分类器,指定$a$和$n$后,它使用一个填充为1的$3
\t
imes3$卷积层。注意到我们使用了较小的卷积窗口,它可能不能覆盖锚框定义的区域。所以我们需要保证前面的卷积层能有效的将较大的锚框区域的特征浓缩到一个$3
\t
imes3$的窗口里。
下面我们定义一个这样的类别预测层。指定参数$a$和$q$后,它使用一个填充为1的$3
\t
imes3$卷积层。该卷积层的输入和输出的高和宽保持不变。
```
{.python .input n=1}
import sys
...
...
@@ -39,9 +35,9 @@ def cls_predictor(num_anchors, num_classes):
padding=1)
```
### 边界框预测
### 边界框预测
层
对每个锚框我们需要预测如何将其变换到真实的目标边界框。变换由一个长为4的向量来描述,分别表示左下和右上的x、y轴坐标偏移。与类别预测类似,这里我们同样使用一个保持高宽的卷积层来输出偏移预测,它有$4a$个输出通道,对于第$i$个锚框,它的偏移预测在$4i$到$4i+3$这4个通道里
。
边界框预测层的设计与类别预测层的设计类似。唯一不同的是,这里需要为每个锚框预测4个偏移量,而不是$q+1$个类别
。
```
{.python .input n=2}
def bbox_predictor(num_anchors):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录