Caffe学习笔记
Caffe学习笔记,从Caffe的基本应用到源码解析,以及Caffe和其它框架之间的转换使用
零尾
为了艾泽拉斯
展开
-
Caffe(1)--环境配置教程(Ubuntu16.04+opencv3.1+Anaconda3+CUDA9.0+cuDNN7.0.5)
系统:ubuntu16.04 cuda:9.0(已安装) cudnn:7.0.5(已安装) anaconda:python3.6(已安装) opencv:3.1.0(已安装)0.安装依赖sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-...原创 2018-09-05 10:47:00 · 2922 阅读 · 0 评论 -
Caffe(2)--LeNet网络各层参数详解
“LeNet” 1、Data Layer 输入图像为:1*28*28,对应Channels*Height*Widthlayer { name: "mnist" type: "ImageData" top: "data" top: "label" include { phase: TRAIN }原创 2018-09-05 10:04:28 · 1142 阅读 · 0 评论 -
Caffe(3)--lmdb数据格式相关
caffe对于训练数据格式,支持:lmdb、h5py…… lmdb:常用于单标签数据,像分类等 h5py:用于多标签数据,对于回归等问题原因: 1、数据类型多种多样,有二进制文件、文本文件、编码后的图像文件(如JPEG、PNG、网络爬取的数据等),不可能用一套代码实现所有类型的输入数据读取,转换为统一格式可以简化数据读取层的实现; 2、使用LMDB、LEVELDB可以提高磁盘IO利用率...原创 2018-09-05 10:11:49 · 3431 阅读 · 2 评论 -
Caffe(4)--MobileNets实现,使用自定义数据集进行训练
论文地址:V1,https://arxiv.org/abs/1704.04861;V2,https://arxiv.org/abs/1801.04381模型实现:Caffe框架(非官方)https://github.com/shicai/MobileNet-Caffe1、下载模型 https://github.com/shicai/MobileNet-Caffe下载得到MobileNet...原创 2018-09-05 10:21:52 · 6011 阅读 · 18 评论 -
Caffe(5)--计算数据集的图像均值
特征标准化(使数据集中所有特征都具有零均值和单位方差)。 零均值:计算每一个维度上数据的均值(使用全体数据计算),之后在每一个维度上都减去该均值。 单位方差:在数据的每一维度上除以该维度上数据的标准差。在大多数情况下,我们并不关注所输入图像的整体明亮程度。比如在目标识别任务中,图像的整体明亮程度并不会影响图像中存在的是什么物体。更为正式地说,我们对图像块的平均亮度值不感兴趣,所以可以减去这...原创 2018-09-05 10:53:34 · 1354 阅读 · 0 评论 -
Caffe(6)--神经网络中卷积层、池化层输出特征图大小计算
在图像卷积和池化操作中有固定的kernel_size和stride,当stride > 1时,边界上会有可能发生越界的问题。Caffe中的卷积、池化后输出图像尺寸计算(1)卷积计算定义在conv_layer.cpp中的compute_output_shape()函数中 const int output_h = (height + 2 * pad_h - (dilatio...原创 2018-09-05 11:00:03 · 11930 阅读 · 1 评论 -
Caffe(7)--神经网络模型结构可视化
1、Netscope–支持Caffe的神经网络结构在线可视化工具Netscope是个支持prototxt格式描述的神经网络结构的在线可视工具,支持从GitHub Gist或者编辑器中可视化Caffe的网络结构。网址:http://ethereon.github.io/netscope/quickstart.html使用方法: (1)打开网页http://ethereon.github.i...原创 2018-09-05 11:03:06 · 2306 阅读 · 0 评论 -
深度学习实战教程(2)--Caffe下实现验证码识别
传统验证码识别:传统方法通常是先对验证码图像进行字符分割,再进行特征提取、最后通过分类器得到结果。一些验证码加入噪声或线条,字符位置不固定及粘连时,字符分割效果不好,也会影响后续字符识别。除了只包含字母和数字的验证码,国内还有一些识别汉字的验证码、计算加减乘除的验证码、图像匹配和图像分类的验证码,各种各样。深度学习验证码识别:深度学习做验证码识别是采用了多任务分类的思路。 多任务学习是针对数...原创 2018-09-13 11:10:20 · 3245 阅读 · 0 评论 -
Caffe(9)--实现多label输入
方法1:把图像和label分开,各自做成lmdb,最后把label的lmdb用slice层分开 参考:https://blog.csdn.net/u013010889/article/details/53098346方法2:使用hdf5 参考:https://note.youdao.com/web/#/file/879598B7BE5D4B6AAFDE5FD48C25B834/note/W...原创 2018-09-13 11:14:49 · 1430 阅读 · 0 评论 -
Caffe(10)--实现YOLOv1目标检测
0、YOLOv1论文YOLOv1核心思想:从R-CNN到Fast R-CNN一直采用的思路是proposal+分类(proposal提供位置信息。分类提供类别信息),精度高,但速度不行。YOLOv1更为直接一点,直接在输出层回归bounding box的位置和其所属类别,整张图作为网络的输入,把object detection的问题转换成一个regression问题。算法原理:1、...原创 2018-09-13 11:29:03 · 3617 阅读 · 0 评论 -
Caffe(11)--YOLOv1的Detection层实现
1、yolov1论文中分为77=49个网格2、对于3类的目标检测,每个网格有classes+num(coords+confidence)=3+2*(4+1)=13个参数,其中3为类别(voc中类别为20),则一张图回归出4913=637个参数(每个cell预测1个classes,2个box(每个box包含4个坐标和1个置信度),有492=98个box,最后一个全连接层的num_output=63...原创 2018-09-20 15:37:52 · 2257 阅读 · 0 评论 -
Caffe(12)--实现YOLOv2目标检测
DarkNet转Caffe中有很多潜在的问题,在YOLOv1、v2、v3几个网络中有一些特殊的层。要在Caffe中跑YOLO,就得在Caffe中源码实现这些层。这些层的Caffe源码实现可以在网上找到很多。YOLO特殊层的Caffe框架实现YOLOv1detection层源码实现YOLOv2route层用concat层替换reorg层源码实现...原创 2018-10-11 14:13:24 · 11239 阅读 · 3 评论 -
Caffe(13)--(SSRNet模型)Keras转Caffe教程
SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimationpaper:https://github.com/shamangary/SSR-Net/blob/master/ijcai18_ssrnet_pdfa_2b.pdf1.SSRNet模型Demo(1)源码:https://github.com/shama...原创 2018-11-20 11:57:30 · 5082 阅读 · 20 评论