本来是想跑一下下面工程的训练文件,结果一直卡在mxnet的版本问题中,还好一切顺利,记录下配置过程:
https://github.com/Seanlinx/mtcnn
git clone https://github.com/Seanlinx/mtcnn.git #下载mtcnn工程
cd prepare_data/wider_annotations/
vim transform.py #修改transform.py中数据集路径为自己的存放路径
python transform.py #在prepare_data/wider_annotations/目录下生成anno.txt
cd .. #返回上一级目录
vim gen_pnet_data.py #配置好需要存放文件的路径
#另外需要修改一行代码:
#img = cv2.imread(os.path.join(im_dir, im_path + '.jpg'))
#修改为img = cv2.imread(os.path.join(im_path))
python gen_pnet_data.py #生成12和pnet文件
python gen_imglist.py #生成train_12.txt
#把12文件放在指定的images文件夹内,train_12.txt放在和images同级的imglists文件夹内
cd ../
mkdir data
vim example/train_P_net.py
修改训练文件train_P_net.py:
parser.add_argument('--dataset_path', dest='dataset_path', help='dataset folder',
default='/disk1/xue/data3/mtcnn1', type=str)
接着就是训练pnet的过程中一直遇到的问题:
1.官网提供的预编译好的是不适用的,需要下载源码
2.mtcnn中的mxnet_diff.patch文件与新版本的mxnet有冲突,所以需要回退相应的版本,经过测试发现回退到v1.0.0版本是可以通过的
3.需要注意回退到老的版本后编译可能不会通过,可以运行以下代码:
git submodule update --init --recursive
编译mxnet成功之后把mtcnn下的mxnet_diff.patch复制到mxnet所在目录,运行:
git apply mxnet_diff.patch
make -j4
再次回到mtcnn目录下:
python example/train_P_net.py
ok.