1、Caffe安装与配置:
关于Caffe-windows配置与安装网上有很多教程,我参考这篇博客配置成功:https://blog.csdn.net/nichengwuxiao/article/details/79113623
配置过程中可能会有很多错误,其实是由于文件编码问题,百度即可解决,注意要按照步骤进行
2、(可选)运行一下Mnist手写识别,这样你会更清楚整个训练过程
3、参考Ubuntu版人脸表情识别https://blog.csdn.net/u010496857/article/details/82789879,这个简介很详细,但是训练实在Intel云上跑的,我去注册发现好像已经不行了,建议大家去看看
这里要注意数据集的转换,我是在windows上生成LMDB数据集,我也生成LEVELDB数据集,过程与ubuntu版很类似,只需要调用caffe/buile/release下convert_imageset.exe即可生成,注意转换可能会提示Map Size溢出达到上限,具体参考我的博客https://blog.csdn.net/FL1623863129/article/details/94580062
4、标签文件生成,由于我对.net非常熟练,所以标签生成我是用C#写的,python其实也是很简单,这里我贴出标签生成的C#代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 图片转标签文件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string root = @"D:\Caffe\FaceExpression\ImageData";
string test = "test";
string train = "train";
string val = "val";
//生成train.txt
using (StreamWriter sw = new StreamWriter(root + "\\" + train + ".txt",true,Encoding.GetEncoding("GB2312")))
{
for (int i = 0; i < 7; i++)
{
DirectoryInfo di = new DirectoryInfo(root + "\\" + train + "\\" + i);
foreach (var fi in di.GetFiles())
{
sw.WriteLine(i+"\\"+fi.Name+" "+i);
}
}
}
//test.txt
using (StreamWriter sw = new StreamWriter(root + "\\" + test + ".txt", true, Encoding.GetEncoding("GB2312")))
{
for (int i = 0; i < 7; i++)
{
DirectoryInfo di = new DirectoryInfo(root + "\\" + test + "\\" + i);
foreach (var fi in di.GetFiles())
{
sw.WriteLine(i + "\\" + fi.Name + " " + i);
}
}
}
//val.txt
using (StreamWriter sw = new StreamWriter(root + "\\" + val + ".txt", true, Encoding.GetEncoding("GB2312")))
{
for (int i = 0; i < 7; i++)
{
DirectoryInfo di = new DirectoryInfo(root + "\\" + val + "\\" + i);
foreach (var fi in di.GetFiles())
{
sw.WriteLine(i + "\\" + fi.Name + " " + i);
}
}
}
}
}
}
5、网络配置文件和solver文件https://blog.csdn.net/u010496857/article/details/82789879已经给出来了,请自行去下载
6、训练模型,caffe/buile/release下有个训练的exe,写个bat文件即可运行,这里最纠结的是bat路径问题,比如linux下../../是本目录上一级目录,但是windows下式../才是同一个意思,配置文件写的20万迭代完毕,20万我用的i5处理器,比较烂而且是很久的CPU,跑了十几个小时才跑了一个模型,准确率不到20%
好了总结到此结束,我先大概记录下过程,后面有时间给出详细的训练全过程