用caffe训练自己的图片,完成图片分类

简述过程:

1.得到图片数据.

2.利用python程序生成train.txt和test.txt 这两个txt里面每行是图片名+空格+类别(用数字表示类别)

3.用脚本转化为lmdb格式

4.修改模型参数,prototxt文件,训练,得到caffemodel

5.在opencv中运行一个C++程序调用训练好的模型,并输出测试结果(图片 类名)

详细步骤:

https://www.cnblogs.com/david97/p/8961850.html 
caffe训练阶段,我是参考的这篇博客,除了刚开始获取train.txt和test.txt时没照着这个博客,其他全部照做

建议参考该博客,下面是我对主要步骤总结:(路径修改成自己的)

1.拿到图片数据,把图片放入train和test文件夹中。

2.利用获取文件名的python脚本,获取图片名到train.txt和test.txt中,根据文件名,利用查找替换功能在文件名后面写上标签,0 1(一定要从0开始,如果有三个类别就用0 1 2),放到create_img_db文件夹里

获取文件名到txt文件的python程序:(路径改成自己的) 

import os

def ListFilesToTxt(dir, file, wildcard, recursion):
    exts = wildcard.split(" ")
    files = os.listdir(dir)
    for name in files:
        fullname = os.path.join(dir, name)
        if (os.path.isdir(fullname) & recursion):
            ListFilesToTxt(fullname, file, wildcard, recursion)
        else:
            for ext in exts:
                if (name.endswith(ext)):
                    file.write(name + "\n")
                    break

def Test():

    dir = "D:/images/total"

    outfile = "D:/images/total/imgName.txt"
    wildcard = ".txt .exe .dll .lib .bmp"

    file = open(outfile, "w")
    if not file:
        print ("cannot open the file %s for writing" % outfile)
    ListFilesToTxt(dir, file, wildcard, 1)

    file.close()

Test()

3.修改并运行create_db.sh(D:\software_engineer\caffe-master\create_img_db),转lmdb格式,同时可以转换图片尺寸,并打乱顺序

(我开始用126*82的数据,最后测试的时候opencv报错,解决不了,后来在这里改成32*32就成功了,并且在我这个简单的例子中,缩小图片并没有影响准确率。另外,最后测试的时候图片不用改)

4.计算图像的均值(这一步可以不做,我没做)

5.在caffe-master\examples\testImg中准备好caffe文件(train_val.prototxt, solver.prototxt, deploy.prototxt),并修改里面的参数

6.训练 在 d/software_engineer/caffe-master/Build/x64/Release文件夹里面打开命令行(右键,git bash here),

执行./caffe.exe train --solver=D:/software_engineer/caffe-master/examples/testImg/solver.prototxt

7.测试(三种方法)

1. opencv3.3 DNN模块(很好用),代码见下一篇博客https://blog.csdn.net/sinat_41852207/article/details/88197593

2.(caffe自带测试分类工具)

3.用python程序

4.c++接口 我不会

发布了59 篇原创文章 · 获赞 46 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/sinat_41852207/article/details/88194744
今日推荐