ai文件怎么导入cdr文件,ai文件怎么导出cdr
微软老照片AI修复开源代码运行错误微软开源代码:https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life
根据说明安装必要的第三方包,下载预先训练好的模型并尝试运行代码:
下面是无划痕照片的修复。
python run . py-input _ folder[test _ image _ folder _ path]-output _ folder[output _ path]-GPU 0一切正常。如果画面大一点,就用cpu。慢了点,但还过得去。其实大部分时间都得用CPU运行。大多数情况下,GPU内存不够用。
然后看有划痕的图片。
python run . py-input _ folder[test _ image _ folder _ path]-output _ folder[output _ path]-GPU 0-with_scratch多了一个参数with _ scratch。如果是小图,用GPU可以正常运行。源码自带的第一张样图只有612k,无法用GPU运行,内存也不够用。以下图片可以用GPU运行100-200k以上。根据源码的说明,把GPU设置为-1,用CPU运行应该是可以的,但是用CPU的时候会报错:
RuntimeError:输入类型(火炬。浮动传感器)和重量类型
(torch.cuda.FloatTensor)应该是一样的
该错误在detections.py中报告
如果配置。GPU=0:scratch _ image _ scale=scratch _ image _ scale . to(config。GPU)用torch . no _ grad():P=torch . sigmoid(model(scratch_image_scale))P=P . data . cpu()错误提示表示使用CPU时,scratch _ image _ scale加载到CPU中,但是下面的P=torch . sigmoid(model(scratch _ image _ scale)),这里出现错误。猜测这个模型参数类型是torch.cuda.FloatTensor,所以类型不一致。看下一句,P=P.data.cpu()。最后全部放到CPU里运行,因为画面稍大的时候GPU内存不够。以上都是我的猜测。知道原因后,修改一下就好了。修改如下:
# if配置。GPU=0:# scratch _ image _ scale=scratch _ image _ scale . to(config。GPU)scratch_image_scale=scratch _ image _ scale . to(torch . device( cuda ))With torch . no _ grad():p=torch . sigmoid(model(scratch _ image _ scale))p=p . data . cpu()实际上,无论命令行参数是否使用GPU,所有scratch _ image _ scale都会加载到GPU中,转移到预先训练好的模型中,然后用CPU运行。改造后运行正常。
下面是它附带的第一个图像修复效果:
效果挺好的,尤其是面部提升,有美容效果。
再看一张自己的老照片。
增强后的人脸图像的分辨率为256*256,比原始图像的分辨率高。可见面部有明显的美容效果。
我是一个业余程序员。源代码我还没完全看懂,但不影响我作为自信板凳的自娱自乐。
另外发现有很多老照片,比如斑痕,霉斑,保存不当。这个方案的修复效果还是比较差的。修复后图片普遍清晰,但黄斑和霉斑依然存在。估计czdds的训练数据都是无斑无霉的。可惜我的电脑配置无法训练自己的数据集。很期待微软的更新或者大神自己调教的模式。请给我一份复印件。