主要是用于记录学习deep image matting 的过程
Python相关
使用Python,会有不同的环境
- 创建Python虚拟环境
#创建一个名叫python36 ,python3.6版本的虚拟环境
conda create -n python36 python=3.6
- 切换到对应的环境
conda activate python36
- 查询环境列表
conda env list
4.退出环境
source deactiave
5.安装( 包名:tensorboard)
conda install tensorboard
实现deep image matting 模型
运行deep image matting 模型 (主要参照 https://www.jianshu.com/p/91fc778cf4ed)
原始文章会清楚很多,这里只是记录运行过程
1.准备数据
下载好图片,放在项目文件夹内,或者其他的文件夹内 图片文件夹:matting_human_half
2.准备好的图片中包含原图和matiing
1)修改data/retrieve.py中root_dir,train_txt_path,val_txt_path的路径
root_dir 表示需要训练的图片的地址
root_dir = '/home/xxx/pythonTest/ydeep_image/image'
train_txt_path = '../data/train.txt'
val_txt_path = '../data/val.txt'
2)执行retrieve.py python3 retrieve.py
执行完成之后,生成所有图片的alpha 和 mask。
还有训练的train.txt 和 val.txt(val.txt中的路径表示随机默认挑选的图像用于验证)
由于公司服务器比较小,所以只训练了100张图片查看是否能运行完成,验证的图片数量也变成了2(在 retrieve.py 中修改验证数量)
def split(image_paths, num_val_samples=2):
if image_paths is None:
return None
3.开始训练
执行命令 python3 train.py --gpu_indices 0 1
--gpu_indices 0 1 表示使用的指定的GPU,0 1 表是使用第0 和 1块GPU
4.训练完成后,会在model文件夹中生成一个.cpkt文件
训练开始后,过一段时间后,可以执行命令,查看训练过程,因为是在局域网的服务器上跑的,所以需要加上--bind_all
tensorboard --logdir models/logs --bind_all
5.测试结果
1)测试抠图
准备数据,在test文件夹内,每一组对应的,原图和抠图(不明白为什么要抠图,后面再研究下)
执行 python3 predict.py
执行完成之后,生成一个pred_alphas文件夹,生成对应的图片
2)测试合成图片
执行
python3 predict_trimap.py
在data_dim/test文件夹中生成预测结果
需要注意的是,需要提供alpha文件和trimap文件