Deep-compression阅读笔记
基本步骤
以上是Deep compression中所述的神经网络压缩方法,主要包括三个步骤:
剪枝:将部分很小的(认为不重要的)权值设为0,使权值矩阵转为一个稀疏矩阵
量化:将剪枝后保留的权值进行量化,使剪枝后保留的权值共享一些的使用一些值,这样可以减小保存权值使用的空间,进一步压缩所需要的存储空间
霍夫曼编码(可选):霍夫曼编码是一种编码形式,可以减小数据的保存需要的存储空间
经过以上的步骤,神经网络的存储空间可以被压缩到一个很小的值,同时提高预测运行的速度,降低功耗,且并几乎不损失准确率。
剪枝剪枝的实现非常方便,即设定一个阈值,绝对值大于这个阈值的权值被保留,其他权值被置0,公式如下所示:
pruning(x) = \begin{cases} 0 & |x| \leq TH \\ x & |x| > TH\end{cases}剪枝过后,权值矩阵由稠密矩阵转为稀疏矩阵(或由稀疏矩阵转为更稀疏的矩阵),由此权值矩阵可以使用存储稀疏矩阵的压缩存储方式存储,例如CSR(compressed sparse row) 或CSC(compressed sparse column)。该论文 ...
Faster-RCNN阅读笔记
系统架构
Faster-RCNN是Fast-RCNN的后续版本,主要针对Fast-RCNN速度过慢进行优化。在Fast-RCNN中,速度的瓶颈主要是用于生成候选区域的Selective Search过程。在Faster-RCNN中,候选区域的生成使用RPN网络,且共享的使用了卷积产生的特性,由此将候选区域的生成方式纳入神经网络的范畴下。该系统有以下部分构成:
卷积神经网络:对待测图片进行几层卷积,产生高级特征,这些高级特征用于RPN生成候选框和RoI池化输入
PRN网络:根据卷积产生的高级特性生成一系列不考虑物品类别的候选区域,即代替Selective Search方法
Fast-CNN:RoI pool层输入的Fast-RCNN网络,输入为高级特征和候选区域,生成该候选区域的类别信息和候选区域的调整因子
PRN网络PRN网络用于产生类别无关的候选区域,即代替Selective Search的功能,其结构如下:
其输入为从共享卷积部分的输出feature map,该部分再经过PRN网络的卷积部分,变为PRN feature,其长宽不变,通道数变为$(4+2)n$,其中n为每个点上 ...
流水线式p2p接口的分析与实现
0.简介P2P接口是一种双向握手接口,传输的前级和后级各提供一个数据有效信号valid和忙信号busy信号,只有当两个信号达成某种指定情况时,握手完成,数据传输完成,否则数据传输均未完成。这可以看成一种分布式控制方式,每个模块的开发人员仅需要考虑上下级的握手信号即可。
1.端口
端口名
类型
位宽
功能
din_valid
input
1
输入数据有效信号
din_busy
output
1
输入部分忙,不接受输入数据
dout_valid
output
1
输出有效信号
dout_busy
input
1
输出部分忙,下一级不接受输入
din
input
-
输入数据
dout
output
-
输出数据
2.状态分析2.1.输入状态分析
din_valid
din_busy
状态
0
0
静默,无数据传输
1
0
正常接收数据,无阻塞情况发生
0
1
输入忙,但无数据输入
1
1
输入数据被阻塞
2.2.输出状态分析
dout_valid
dout_busy
状态
0
0
静默,无数据传输
...
P2P接口串行FIR设计
设计目标设计一个仅使用一个乘法器单元的参数化串行FIR,要求:
FIR参数可配置
具有双向P2P握手协议,可嵌入P2P流水线中
当流水线后续被阻塞时,要求完成当前运算再进入等待状态
结构框图
整体结构如上图所示,共分为4个模块:
P2P输入模块:输入模块,接收P2P握手信号,将数据传递给FIR滤波器并控制整个系统运行,为控制流起点
FIR滤波器:功能模块,完成FIR滤波运算
P2P输出端口:将功能模块的输出通过P2P握手方式发送给P2P转发模块
P2P转发模块:隔离FIR滤波器和后向模块,使当后向模块阻塞时FIR滤波器仍能完成当前运算且不丢失数据
参数说明
参数
默认值
功能
ADDR_WIDTH
3
配置地址位宽,要求为最小为ceil(log2(COM_NUM))
DATA_WIDTH
8
输入数据位宽
COM_NUM
6
FIR级数
端口列表系统端口
名称
类型
位宽
功能
clk
input
1
系统时钟
rst_n
input
1
系统复位信号
配置端口
名称
类型
位宽
功能
cfg_addr
in ...
Fast-RCNN阅读笔记
系统架构
由于RCNN存在流水线过长,检测速度慢的问题,Fast-RCNN几乎将整个过程置于深度学习的框架下,因此带来了准确率和速度的提升,该系统主要组成部分如上图所示,有:
CNN特征提取器:与RCNN不同,该网络的输入为整张图片,输出为特征张量
候选框提取:与RCNN相同使用Selective Search提取候选框,只是候选框通过大小变换后作用于CNN提取出的特征张量中,而不直接作用于图片
RoI Pooling层:该层次用于将不同大小的候选框归一化到同一个大小上,然后通过全连接层计算出固定长度的特征向量
分类器:根据特征向量对物品进行分类,列表包括物品类别和背景
回归器:根据特征向量微调候选框位置和大小,最终生成针对候选框的调整因子
该系统对于待识别图片,首先将其使用Selective Search处理获得一系列候选框,随后将其归一化到固定大小,送入CNN网络中提取特征。对于提取出的特征张量,假设其保留了原图片的空间位置信息,将候选框做对应变换后映射到特征张量上,提取出大小不同的候选区域的特征张量。对于每个候选区域的特征张量,使用RoI pooling层将其大小归一化,随后 ...
RCNN学习笔记
系统结构
RCNN物品目标识别系统如上图所示,如图所示,共分为四步:
候选区域提取:使用Selective search选择候选区域,并进行预处理,全部处理为相同大小
CNN特征提取:使用CNN将特征区域图像提取为一个特征向量
SVM分类:使用支持向量机判断支持该候选区域是否属于某一个类别
边界回归:若确定某候选框属于某个类别,则使用回归的方式微调候选框的位置
候选区域提取RCNN使用Selective search算法代替滑动框,该算法可以提取类别无关的物品候选区域。该算法分为以下步骤:
初始化一些小候选框
不断合并小候选框为大候选框,并保存所有未合并的候选框,产生一系列候选区域
具体算法如上文所示,首先产生一系列初始区域R,并计算R中所有相邻区域之间的评分s,保存在集合S中,随后不断合并最高评分的两个区域,最终产生一系列候选区域。
初始化初始化的过程使用论文《Efficient graph-based image segmentation》过程中的方法,即使用无向图$G=(V,E)$表示一张图片,其中V表示所有无向图中所有像素,即令每一个像素对应一个顶点;E表示连接,仅有 ...
LBP特征物品识别系统
系统结构
LBP是一种常规的人脸识别使用的特征,系统架构如上图所示,主要分为三个部分:
滑动框:滑动框在图片上滑动,产生不同的子图
LBP特征提取器:针对滑动框产生的子图,计算LBP特征
分类器:根据LBP特征,判断当前图片是否是人脸
LBP特征原始LBP特征原始LBP特征是一个3X3区域的区域特征。考虑一个像素的特征值,该特征值与周围的8个像素(3X3区域)有关,对于像素值大于该像素的周围像素赋值1,其他赋值0,如下图所示:
如图中红框的中心像素,像素值为134,使用134和红框的其他像素(周围像素)比较,若大于134为1,否则为0,最后周围的8个像素的值依次为00101010,将其视为二进制数,转化为十进制就是42。
圆形LBP特征圆形LBP特征与原始LBP特征类似,只是周围像素为一个圆形环绕的,如下图所示:
LBP使用如图所示8个实心点位置的像素计算,其中四个红色实心点不落在像素上,使用双线性插值的方法计算对应的值,最后带入原始LBP的计算方法中计算中间像素的值。该LBP使用(P,R)表示,P表示带入计算的像素点数,R表示半径,如上图即为(8,2)
系统使用的LBP系统使 ...
HoG特征SVM物品识别系统
系统架构
该系统仍然是基于滑动框+传统机器学习的目标识别系统,分为两个主要部分:
HoG特征提取:从滑动框中提取出的子图中提取HoG特征
支持向量机(SVM):以子图的HoG特征为输入,判断该子图中是否有物品
HoG特征该系统的最大贡献为提出基于梯度的HoG(locally normalized Histogram of Oriented Gradient)特征,该特征的计算流程分为5步,分别如下所示:
归一化归一化目的是去除光线的影响,gamma校正的公式如下所示:
y(x,y) = I(x,y)^{gamma}原论文尝试了多种输入方法,包括灰度图像和彩色图像与是否gamma校正的组合,由于这一步对最终结果影响很小,因此最终默认为使用彩色输入,不进行gamma校正。
梯度计算梯度的计算使用相邻或不相邻的像素值相减获得,两个方向的梯度和计算出整体梯度的角度和模。原论文尝试了多种计算方法,最终使用的计算方法如下所示:
grad_x(x,y) = I(x+1,y) - I(x-1,y) \\
grad_y(x,y) = I(x,y+1) - I(x,y-1) \\
||grad( ...
harr特征加级联分类器的目标检测系统
1.识别系统架构
以上是Harr特征+级联分类器的识别系统架构图,系统分为以下几个部分:
滑动框:固定大小的在原图上滑动的框,用于获取子图
Harr特征提取器:在子图上提取指定的四种Harr特征(获取的特征非常多)
级联分类器:基于选定的一些特征,进行分类,筛选出正例
对于该目标识别器,将目标检测问题转换为目标分类问题:滑动框在原图上滑动,识别部分识别每一个滑动子图,判断是否为需要识别的目标。
1.1.Harr特征Harr特征是一类非常简单的特征,如下图所示有四个框,这四个框的大小是可变的,使用黑色部分覆盖的像素之和减去白色部分覆盖的像素之和即为Harr特征:
Harr(x) = \sum pic_{black}(x) - \sum pic_{white}(x)
例如以下图片示意:
取第一个4x4的区域数据计算第二种harr特征,被黑色覆盖的区域和为3,被白色区域覆盖的和为2,因此可获得基于第二种模板下滑动框的harr特征为3-2=1。对于基于某一个模板,一个候选框可取多个特征,例如对于24x24的滑动框,基于第一种模板(对角线模板),可以在2x2,3x3,…,24x24等多个 ...
目标检测技术指标
mAP:识别准确率mAP在目标检测中用于判断识别的准确率,即用于衡量物品被检测出的概率,其跟以下两个指标有关:
Precision(准确率):检测出的“物品有多少是真的物品
Recall(召回率):数据集中的物品有多少被检出
对于以上两个概念,将其置于标准二分类问题框架下有以下公式:
Precision = \cfrac{TP}{TP+FP} \\
Recall = \cfrac{TP}{TP+FN}对于以上,有:
TP:正例,被识别为正例
FP:反例,被识别为正例
TN:反例,被识别为正例
FN:正例,被识别为反例
对于不同的识别阈值,Precision和Recall会发生变化,选取多个阈值(不重新训练模型),可以获得多组Precision和Recall,将这数据绘制图像,横轴为Recall,纵轴为Precision,曲线下的面积为参数AP
多次测试取平均值即为参数mAP值,该值越大说明系统性能越强
IOU:检测效果通俗来说,IOU用于衡量目标检测中目标框的准不准,其定义为:
IOU = \cfrac{A \bigcap B}{A \bigcup B}其中A为系统预测出 ...