奈斯网站冷知识,奈斯官网(奈斯什么)
7372023-09-09
style="text-indent:2em;">老铁们,大家好,相信还有很多朋友对于为什么和用代码放照片怎么弄好看的相关问题不太懂,没关系,今天就由我来为大家分享分享为什么以及用代码放照片怎么弄好看的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
本文目录
可以的,我们这里介绍一个旧照片着色&修复神器DeOldify,包括修复效果、技术细节等。
项目地址:https://github.com/jantic/DeOldify/blob/master/README.md
该项目的目的是为旧照片着色并将其修复。本文将简要介绍技术细节。首先,先来看一下DeOldify对旧照片的修复效果!(大部分原图像来自r/TheWayWeWeresubreddit。)
和人体骨骼一起拍照的医学生(约1890年)
WhirlingHorse(1898)
19世纪80年代的巴黎
20世纪20年代的爱丁堡俯瞰
伦敦滑铁卢车站人们第一次看到电视机(1936)
抽鸦片的大清子民(1880)
非常旧和质量差的照片也能修复得很好:
南达科他州枯木镇(1877)
家庭合照(1877)
但,模型效果并不总是完美的。下图中红手让人抓狂:
塞内卡原住民(1908)
该模型还能对黑白线稿进行着色:
技术细节
这是一个基于深度学习的模型。具体来说,我所做的是将以下方法组合在一起:
带自注意力机制的生成对抗网络。生成器是一个预训练Unet,我将它修改为具有光谱归一化和自注意力。这是一个非常简单的转换过程。不过,之前我拼命地尝试用WassersteinGAN,但效果并不好,直到用上这个版本,一切都变了。我喜欢WassersteinGAN的理念,但它在实践中并没有成功。我爱上了带自注意力的GAN。
受GANProgressiveGrowing的启发(参见《ProgressiveGrowingofGANsforImprovedQuality,Stability,andVariation》)设计出的训练结构。不同之处在于层数保持不变——我只是不断改变输入的尺寸并调整学习率,以确保尺寸之间的转换顺利进行。似乎基本最终结果是相同的——训练更快、更稳定,且泛化效果更好。
两个时间尺度上的更新规则(参见《GANsTrainedbyaTwoTime-ScaleUpdateRuleConvergetoaLocalNashEquilibrium》)。这个也非常简单,只是一个一对一生成器/critic迭代及较高级别的critic学习率。
生成器损失分为两个部分:一部分是基于VGG16的基本感知损失(或特征损失)——这只是偏向生成器模型来复制输入图像。另一部分是来自critic的损失分数。感知损失本身不足以产生好的结果,只会带来大量的棕色/绿色/蓝色填充——测试的时候作弊可是神经网络的强项!这里要理解的重点是:GAN本质上是在为你学习损失函数——这实际上是朝着我们在机器学习中追求的理想迈进了一大步。当然,让机器学习你以前手工编码的东西通常会得到更好的结果。在这个例子中就是这样。
该模型的美妙之处在于,它可能适用于所有类型的图像修复,效果也应该很好。上文展示了很多模型结果,但这只是我想开发的流程的一个组件。
接下来,我想做的是「defade」模型。我已经做了一些初步努力,截至本文写作时,它还在训练阶段。大体上,是训练同样的模型用于重建使用过分的对比度/亮度调整后的图像。我已经看到了一些还不错的试验结果:
关于该项目
该项目的重点是:我想利用GAN使旧照片变得好看,更重要的是,做一个有用的项目。我对视频很感兴趣,但是首先我需要先解决如何处理模型和内存的关系。如果该模型在1080TI上的训练时间不用花费两三天就太棒了(然而GAN通常需要这么长时间……)我将积极更新和改进代码,并尝试使该项目对用户友好。
开始操作
该项目基于Fast.AI库构建。不过,我使用的是旧版本库,即将更新为新版本。构建该项目的先决条件是:
旧版本Fast.AI库。埋头该项目两个月后,我有点疑惑,因为标注为「old」的旧版本Fast.AI库和我用的库不一样。因此建议使用这里的库:https://github.com/jantic/fastai。
不管Fast.AI的依赖项是什么,总有方便的requirements.txt和environment.yml。
Pytorch0.4.1(需要spectral_norm,因此需要最新的稳定版本)。
JupyterLab
Tensorboard(即安装Tensorflow)和TensorboardX(https://github.com/lanpa/tensorboardX)。
ImageNet:很棒的训练数据集。
强大的GPU:我想要比GeForce1080TI(11GB)更大内存的GPU。内存越少花费时间就会越多。Unet和Critic非常大,但是它们规模越大,获得的结果也会越好。
至于想要立刻开始转换自己的图像的人:如果要立刻开始使用自己的图像而不训练模型的话,你需要我上传预训练权重。我正在做这件事。做好之后,你可以在可视化notebook中看到。我将使用ColorizationVisualization.ipynb。你需要设置colorizer_path=IMAGENET.parent/('bwc_rc_gen_192.h5')。我上传的权重文件用于生成器(着色器)。
然后你就可以把想转换的任意图像放在/test_images/文件夹,然后在notebook内部看到结果:
vis.plot_transformed_image("test_images/derp.jpg",netG,md.val_ds,tfms=x_tfms,sz=500)我把图像大小设置为500px左右,你需要在足够内存的GPU上运行(比如11GBGeForce1080Ti)。如果内存过少,你需要将图像调小或者尝试在CPU上运行模型。我试过后一种方法,非常慢……我还没有研究具体原因。
这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境win10+python3.6+pycharm5.0,主要内容如下,先看一下生成的效果图:
1.首先,下载安装itchat,这是一个微信接口包,专门用于获取微信好友信息,这里我们主要用它来获取微信好友头像信息,安装的话,直接在cmd窗口输入命令“pipinstallitchat”就行,如下:
2.接着,安装pillow,这是python的一个图像处理库,专门用于处理图像,这里我们主要用它来拼接微信好友的头像,生成照片墙,安装的话,与上面类似,直接在cmd窗口输入命令“pipinstallpillow”就行,如下:
3.最后,就是编写代码来实现照片墙制作了,主要代码如下,基本思路就是先用itchat获取微信好友信息,然后根据获取到的UserName信息获取到微信好友的头像,下载到本地image文件夹中,最后再利用pillow一个一个拼接微信好友的头像,生成一个完整的照片墙:
点击运行程序,扫码登录微信,就会自动下载微信好友头像到image文件夹中,下载完成后,会自动生成一个all.jpg图片,就是最终的照片墙,同时也会发送到手机微信上,最终效果如下:
至此,我们就完成了利用python来制作微信好友头像照片墙。总的来说,整个过程不难,主要用到itchat和pillow这2个库,只要你有一定的python基础,熟悉一下相关代码和示例,多练习一下,很快就能掌握的,网上也有相关教程和资料,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
一个男人在微头条上用女人??的头像,我觉得他应该是为了多吸引眼球,然后达到多吸引一些关注。有这种做法和想法的人,通常虚荣心都比较重,好面子。我的想法不然,我却是用了我平生以来最黑的一张照片做了“头像”。
可以使用批处理或脚本编程语言来实现照片批量重命名为0到100的操作。1.首先,是可以通过批处理或脚本编程语言来实现。2.借助批处理或脚本编程语言,你可以编写一段代码来实现重命名的功能。通过使用循环结构和计数器变量,可以遍历所有的照片,并将它们按照要求进行重命名。具体实现会涉及文件夹的遍历、文件名的获取和修改等操作。3.除了批处理和脚本编程语言,你还可以考虑使用专门的文件管理工具来进行批量重命名操作。这些工具通常提供了直观的界面和多种重命名选项,可以简化操作过程。需要注意的是,在进行批量重命名操作之前,请务必备份你的照片数据,以防止意外情况导致文件丢失或损坏。
关于本次为什么和用代码放照片怎么弄好看的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。