学习caffe第一天,用SSD上上手。

我的根目录$caffe_root为/home/gpu/ljy/caffe

   一、运行SSD示例代码

   1.到https://github.com/weiliu89/caffe.git下载caffe-ssd代码,是一个caffe文件夹

   2.参考已经配好的caffe目录下的makefile.config修改¥caffe_root下的makefile.config.

   3.在$caffe_root下打开命令行终端,输入以下命令

make -j8
make py
make test -j8
make runtest -j8编译完成4.下载VGG_ILSVRC_16_layers_fc_reduced.caffemodel预训练模型,放到$caffe_root/models/VGG下。(没有VGG文件夹就建一个) 下载数据集VOCtest_06_Nov-2007.tar等三个压缩包放在$caffe_root/data下,并解压。5.修改./data/VOC0712/create_list.sh里面的路径为自己的路径,修改./data/VOC0712/create_data.sh,本文如下图所示:(VOC0712文件夹可能没有,那就从网上下一个)  

 6.命令行切换到$caffe_root并执行上面两个脚本,直接命令行输入就是执行 7.训练,命令行输入下面: python examples/ssd/ssd_pascal.py 或者下载训练好的模型 8.测试
A.python examples/ssd/score_ssd_pascal.py这个要先改里面的gpu个数,输出是分数
B.python examples/ssd/plot_detections.py输出是是视频的标注...C. ./.build_release/examples/ssd/ssd_detect.bin models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_120000.caffemodel /home/gpu/ljy/caffe/data/ljy_test/TestData/pictures.txt这是单张图片的测试,C++版本的,其中ctrl+h可以查看隐藏文件夹,最后那个pictures.txt是待测试文件夹的路径列表,如下图:

测试结果如下:(暂时还不知道输出的都是什么东西,可能是类别、置信度和位置吧)

D 单张图片测试,python版本

点开ssd_detect.ipynb,复制并保存为ssd_detect.py,然后修改里面的路径(包括$caffe_root和测试图片的路径),并在最后加上plt.show()

然后命令行运行该代码即可

   二、训练并测试自己的数据

    1.生成训练和测试数据

我们自己的数据基本是jpeg或者其他图片格式的,而caffe输入的一般是LMDB的数据,所以我们要进行转换。我们转换的方法是

 A.将图像用工具进行标注(工具这里先不介绍),得到txt标注文件

B.将txt文件和图片转换成VOC格式(用脚本)

C.将VOC格式转换为LMDB格式,利用SSD示例代码提供的转换脚本。

 (1) 在 $caffe_root/data/VOCdevkit目录下创建ljy_test目录,该目录中存放自己转换完成的VOC数据集; (2) $CAFFE_ROOT/examples目录下创建ljy_test目录; (3) $CAFFE_ROOT/data目录下创建ljy_test目录,同时将data/VOC0712下的create_list.sh,create_data.sh,labelmap_voc.prototxt这三个文件copy到ljy_test目录下,分别重命名为create_list_ljy_test.sh,create_data_ljy_test.sh, labelmap_ljy_test.prototxt (4) 对上面新生成的两个create文件进行修改,主要修改是将VOC0712相关的信息替换成ljy_test 修改后的两个文件分别如下:

  然后修改labelmap_indoor.prototxt,将该文件中的类别修改成和自己的数据集相匹配,注意需要保留一个label 0 , background类别

完成上面步骤的修改后,可以开始LMDB数据数据的制作,在$CAFFE_ROOT目录下分别运行:

  ./data/ljy_test/create_list_indoor.sh

  ./data/ljy_test/create_data_indoor.sh

  命令执行完毕后,可以在$CAFFE_ROOT/examples/ljy_test目录下查看转换完成的LMDB数据数据。

   2.训练

  A.将预训练好的模型放在$CAFFE_ROOT/models/VGGNet下(我们这里在运行SSD示例代码的4已经放过了,可以省略)

B.将$caffe_root/examples/ssd/ssd_pascal.py拷贝到自己的文件夹$caffe_root/examples/ljy_test/下,并重命名为ssd_pascal_ljy.py

C.修改ssd_pascal_ljy.py为自己的各个路径,其中要在$caffe_root/models/VGGNet/下建立ljy_test文件夹,修改如下:

D.执行训练代码。在$caffe_root下打开命令行,并输入

python examples/ljy_test/ssd_pascal_ljy.py等待训练就可以了...有可能遇到loss=nan的情况,这个待议,正常情况下是下面酱紫的:

  3.测试

  A.c++版本的测试

   跟上面ssd示例测试的差不多,改一下路径即可

  B.python版本的测试

  同最上面

  4.参考:http://blog.csdn.net/u014696921/article/details/53353896,https://github.com/weiliu89/caffe.git

转载于:https://www.cnblogs.com/EstherLjy/p/6863890.html

Caffe上用SSD训练和测试自己的数据相关推荐

  1. fddb库上使用ssd训练的人脸检测器

    fddb库上使用ssd训练的人脸检测器 如果你正在使用opencv3.3及以上的版本,而且想直接看结果而不是训练的话,可以直接跳过第一节的caffe-ssd配置 1. 下载并编译ssd git clo ...

  2. caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)

    caffe是一个非常清晰且高效的深度学习框架,目前有着不少的用户,也渐渐的形成了自己的社区,社区上可以讨论相关的问题. 我从开始看深度学习的相关内容到能够用caffe训练测试自己的数据,看了不少网站, ...

  3. 【12】Caffe学习系列:训练和测试自己的图片

    一.准备数据 有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载imagenet图片来训练.验证码始终出不来需要翻墙(是g ...

  4. tensorflow(七)实现mnist数据集上图片的训练和测试

    本文使用tensorflow实现在mnist数据集上的图片训练和测试过程,使用了简单的两层神经网络,代码中涉及到的内容,均以备注的形式标出. 关于文中的数据集,大家如果没有下载下来,可以到我的网盘去下 ...

  5. [深度学习] RCNNs系列(1) Ubuntu下Faster RCNN配置及训练和测试自己的数据方法

    最近用到Faster RCNN进行目标检测,前前后后两周把RCNN,SPPNet,Fast RCNN和Faster RCNN大体调查了一遍,准备写一个RCNNs系列,后面还要加上今年最新的Mask R ...

  6. FCN训练不收敛的原因分析和最详细的FCN训练与测试自己的数据程序配置

    在2015年发表于计算机视觉顶会CVPR上的Fully Convolutional Networks for Semantic Segmentation 论文(下文中简称FCN)开创了图像语义分割的新 ...

  7. caffe 的命令行训练与测试

    本文转自: http://blog.csdn.net/yiliang_/article/details/60464968 Train训练(用cmd caffe命令行) (solver.prototxt ...

  8. 使用GPU在caffe上进行CNN训练

    1.配置caffe环境 [请参考此篇博客:http://blog.csdn.net/ws_20100/article/details/48850449] 本篇介绍如何在caffe环境下,实现" ...

  9. 基于caffe用SSD训练自己的数据

    题记:因需要用到caffe的检测模型,之前在mxnet上用ssd训练过,故还用ssd来训练.从环境到训练,踩了不少坑,记录一下,方便以后翻阅.环境问题,因之前配过,用的docker,并未记录.当初也是 ...

最新文章

  1. 「二分查找」之我见!今天刷一道leetcode算法!
  2. hexo部署在Github-Page流程
  3. python批量下载文件只有1kb_Python 实现批量从不同的Linux服务器下载文件
  4. linux调小根目录,Linux根目录分区大小调整教程
  5. leetcode剑指 Offer 63. 股票的最大利润(动态规划)
  6. 如何解决“请考虑使用 app.config 将程序集“XXXXXXXX”从版本XXXX重新映射到版本XXXX”的问题
  7. php 模板 自己,php自己写了一个模板
  8. codeforces346e
  9. TypeError: this.getResolve is not a function
  10. rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo
  11. ikbc机械键盘打字出现重复_入手第一把机械键盘,打字打到上瘾——ikbc 新Poker键盘 体验...
  12. 嵌入式Linux--使用libpng库解码png图片
  13. oracle sql调优面试,数据库优化常见的面试题
  14. html5颜色选择按钮,H5的input color系统颜色选择器
  15. 学习计算机基础有什么推荐的书和视频?
  16. 【管理】企业项目的OKR实战
  17. CNCF的中国云原生调查报告
  18. 手机浏览器类型ua php,通过userAgent判断手机浏览器类型(示例代码)
  19. 无法解析的外部符号 EVP_EncryptFinal_ex
  20. 固态盘到底该怎么做Raid?

热门文章

  1. ssm jsp跳转jsp_去掉Shiro默认login.jsp跳转
  2. 内核初始化kernel.asm
  3. CSS3 Media Queries详细介绍和使用实例
  4. 深入理解RMQ LCA
  5. 软件工程系列教材:软件架构设计实践教程
  6. golang中的strings.Split
  7. golang中的panic和recover
  8. 常考数据结构与算法:重建二叉树
  9. idea创建mybatis的config.xml和mapper.xml方法
  10. 设计模式:迭代器模式(Iterator Pattern)