科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get( 六 )


self.final = nn.Conv2d(block_expansion, num_channels, kernel_size=(7, 7), padding=(3, 3))
self.estimate_occlusion_map = estimate_occlusion_map
self.num_channels = num_channels
(5)判别器类似于Pix2PixGenerator 。
def __init__(self, num_channels=3, block_expansion=64, num_blocks=4, max_features=512,
sn=False, use_kp=False, num_kp=10, kp_variance=0.01, **kwargs):
super(Discriminator, self).__init__
down_blocks =
for i in range(num_blocks):
down_blocks.append(
DownBlock2d(num_channels + num_kp * use_kp if i == 0 else min(max_features, block_expansion * (2 ** i)),
min(max_features, block_expansion * (2 ** (i + 1))),
norm=(i != 0), kernel_size=4, pool=(i != num_blocks - 1), sn=sn))
self.down_blocks = nn.ModuleList(down_blocks)
self.conv = nn.Conv2d(self.down_blocks[-1].conv.out_channels, out_channels=1, kernel_size=1)
if sn:
self.conv = nn.utils.spectral_norm(self.conv)
self.use_kp = use_kp
self.kp_variance = kp_variance
def forward(self, x, kp=None):
feature_maps =
out = x
if self.use_kp:
heatmap = kp2gaussian(kp, x.shape[2:], self.kp_variance)
out = torch.cat([out, heatmap], dim=1)
for down_block in self.down_blocks:
feature_maps.append(down_block(out))
out = feature_maps[-1]
prediction_map = self.conv(out)
return feature_maps, prediction_map
最终通过以下代码调用模型训练“python demo.py--config config/vox-adv-256.yaml --driving_video path/to/driving/1.mp4--source_image path/to/source/7.jpg --checkpointpath/to/checkpoint/vox-adv-cpk.pth.tar --relative --adapt_scale”效果如下:
科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get
科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get完整代码:
提取码:e4kx
作者简介:
李秋键 , CSDN博客专家 , CSDN达人课作者 。 硕士在读于中国矿业大学 , 开发有taptap竞赛获奖等等 。
科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get
科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get
科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get【科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get】点分享
科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get
科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get


推荐阅读