Caffe上用SSD训练和测试自己的数据
学习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训练和测试自己的数据相关推荐
- fddb库上使用ssd训练的人脸检测器
fddb库上使用ssd训练的人脸检测器 如果你正在使用opencv3.3及以上的版本,而且想直接看结果而不是训练的话,可以直接跳过第一节的caffe-ssd配置 1. 下载并编译ssd git clo ...
- caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)
caffe是一个非常清晰且高效的深度学习框架,目前有着不少的用户,也渐渐的形成了自己的社区,社区上可以讨论相关的问题. 我从开始看深度学习的相关内容到能够用caffe训练测试自己的数据,看了不少网站, ...
- 【12】Caffe学习系列:训练和测试自己的图片
一.准备数据 有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载imagenet图片来训练.验证码始终出不来需要翻墙(是g ...
- tensorflow(七)实现mnist数据集上图片的训练和测试
本文使用tensorflow实现在mnist数据集上的图片训练和测试过程,使用了简单的两层神经网络,代码中涉及到的内容,均以备注的形式标出. 关于文中的数据集,大家如果没有下载下来,可以到我的网盘去下 ...
- [深度学习] RCNNs系列(1) Ubuntu下Faster RCNN配置及训练和测试自己的数据方法
最近用到Faster RCNN进行目标检测,前前后后两周把RCNN,SPPNet,Fast RCNN和Faster RCNN大体调查了一遍,准备写一个RCNNs系列,后面还要加上今年最新的Mask R ...
- FCN训练不收敛的原因分析和最详细的FCN训练与测试自己的数据程序配置
在2015年发表于计算机视觉顶会CVPR上的Fully Convolutional Networks for Semantic Segmentation 论文(下文中简称FCN)开创了图像语义分割的新 ...
- caffe 的命令行训练与测试
本文转自: http://blog.csdn.net/yiliang_/article/details/60464968 Train训练(用cmd caffe命令行) (solver.prototxt ...
- 使用GPU在caffe上进行CNN训练
1.配置caffe环境 [请参考此篇博客:http://blog.csdn.net/ws_20100/article/details/48850449] 本篇介绍如何在caffe环境下,实现" ...
- 基于caffe用SSD训练自己的数据
题记:因需要用到caffe的检测模型,之前在mxnet上用ssd训练过,故还用ssd来训练.从环境到训练,踩了不少坑,记录一下,方便以后翻阅.环境问题,因之前配过,用的docker,并未记录.当初也是 ...
最新文章
- 「二分查找」之我见!今天刷一道leetcode算法!
- hexo部署在Github-Page流程
- python批量下载文件只有1kb_Python 实现批量从不同的Linux服务器下载文件
- linux调小根目录,Linux根目录分区大小调整教程
- leetcode剑指 Offer 63. 股票的最大利润(动态规划)
- 如何解决“请考虑使用 app.config 将程序集“XXXXXXXX”从版本XXXX重新映射到版本XXXX”的问题
- php 模板 自己,php自己写了一个模板
- codeforces346e
- TypeError: this.getResolve is not a function
- rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo
- ikbc机械键盘打字出现重复_入手第一把机械键盘,打字打到上瘾——ikbc 新Poker键盘 体验...
- 嵌入式Linux--使用libpng库解码png图片
- oracle sql调优面试,数据库优化常见的面试题
- html5颜色选择按钮,H5的input color系统颜色选择器
- 学习计算机基础有什么推荐的书和视频?
- 【管理】企业项目的OKR实战
- CNCF的中国云原生调查报告
- 手机浏览器类型ua php,通过userAgent判断手机浏览器类型(示例代码)
- 无法解析的外部符号 EVP_EncryptFinal_ex
- 固态盘到底该怎么做Raid?
热门文章
- ssm jsp跳转jsp_去掉Shiro默认login.jsp跳转
- 内核初始化kernel.asm
- CSS3 Media Queries详细介绍和使用实例
- 深入理解RMQ LCA
- 软件工程系列教材:软件架构设计实践教程
- golang中的strings.Split
- golang中的panic和recover
- 常考数据结构与算法:重建二叉树
- idea创建mybatis的config.xml和mapper.xml方法
- 设计模式:迭代器模式(Iterator Pattern)