注意:
maxpool记录idx是抠出头发丝的关键!!!!
x1p, id1 = F.max_pool2d(x12,kernel_size=(2,2), stride=(2,2),return_indices=True)
x1d = F.max_unpool2d(x21d, id1, kernel_size=2, stride=2)
网络结构
- encoder:vgg16,14个conv层,5个max-pooling层
-
decoder:6个deconv层,5个unpooling层
network.png
Loss
- alpha prediction loss:MSE,alpha值为[0,1]
- compositionanl loss:MSE,RGB三个通道分别计算
- 只考虑unknow区域的loss,即gt matte不为0或1的区域
数据准备
- train dataset
- 用ps制作493个前景样本
- 从MS COCO和Pascal VOC随机抽取背景图像,每个前景对应100个背景,合成49300张图像
- trimap为matte图随机膨胀得到
- test dataset
- 用ps制作50个前景样本
- 从MS COCO和Pascal VOC随机抽取背景图像,每个前景对应20个背景,合成1000张图像
- trimap为matte图随机膨胀得到
数据预处理
- 随机裁剪,以unknow区域某点为中心,裁剪(320,320),(480,480)或(640,640)的图像块,resize到(320,320)
- 随机翻转
- 根据matte随机膨胀,得到trimap
网友评论