目标识别、目标检测、目标分割、目标跟踪是计算机视觉领域最热门的方向之一。传统机器学习方法中较为常见的做法是在滑动窗口中手工提取特征(例如Hog、SIFT等),然后将提取的特征送入分类器(例如SVM、Adaboost等)中,训练分类器预测输出。而每一类物体都有不同的特征,我们也很难提前知道哪种特征更加优秀,于是近年来目标识别的研究方向转向了深度学习。

        目标识别(检测)问题与分类问题不同,识别或检测要求精准定位目标。一种解决问题的思路是将其看作一个回归问题,这种思路解决问题的效果可能并不理想,另一种更为普遍的做法还是使用滑动窗口进行检测。…

        博客正式进入caffe源码精读系列,博主会在阅读源码的过程中将自己认为重要的部分记录下来,整理成笔记。由于博主之前粗略浏览过一遍源码,对caffe的架构和caffe中使用的库有了了解,这些笔记介绍整体工作流程和框架的同时,还将偏重于源码的细节。第一篇博客主要由程序入口开始介绍caffe训练的流程。…

        caffe提供了将图像转换为lmdb或者leveldb格式的工具,在tool文件夹下的convert_imageset中可以找到对应文件,这个工具在很多例子中都有用到,比如mnist和imagenet,由于caffe默认使用lmdb这种又快又小的格式,我们在处理大量图像时也会用到,而我们如果要根据自身需求进行修改,那就需要读源码了。…

        caffe中需要将数据存储为lmdb、hdf5等数据库格式,caffe自带的convert_image工具可以完成lmdb数据格式的转换,但是遇到浮点数,这个工具就不行了,所以,只有存成hdf5了。对于python存储hdf5,本文分析多个demo的数据生成代码,并作出总结(主要就是贴代码了):…

        上一节,我们介绍了使用Caffe训练我们自己的图像用于分类,由于我们有ImageNet的例子,所以一切显得非常自然。那么,如果我们要用裸数据来训练网络(用于分类或者回归),那我们应该怎么做呢?这篇博文进行了详细的介绍。…

我们参考caffe中ImageNet的例子来完成图像分类,我们的流程如下

1.参考ImageNet的代码,构建我们自己的数据集,jpg格式的图像分为train和val,即训练集和测试集

2.在文本文件中列出图像和标注

3.修改create_convert脚本,将图像转化为lmdb格式,注意,一定是jpg格式的图像,如果没有进行大小归一化,最好在脚本中进行缩放操作

4.使用make_mean脚本,计算图像均值

5.修改solver_prototxt文件和train_val_prototxt文件中的参数,进行训练…

        Caffe的作者是贾扬清(伯克利大学博士期间成果),其在深度学习科学研究中有着非同一般的地位,尤其是其代码在github上开源,以及CUDA加速的使用,使得普通学者也可以较为轻松的进行训练,介绍就不多说了,作为Caffe的第一课,首先就是Caffe环境配置、编译以及导入IDE中方便调试了,我们开始吧。…