color_restore_SR实验报告 - yubo105139/paper GitHub Wiki

TOC

测试报告

各个模块的时间 GPU占比 测试

上色

上色参数介绍:

模型耗时:只有 forward耗时

程序耗时:从读取图像到保存图像整个耗时

GPU占用:nvidia显卡 占用量

上色
图片尺寸(单张) 模型耗时(s) 程序耗时(s) GPU占用(最高)
128*81 0.0523 0.2045 6625M
256*256 0.05232 0.22448 6625M
262*190 0.0536 0.2076 6625M
512*512 0.05019 0.2598 6625M
1280*814 0.0547 0.4658 6625M
1024*768 0.05341 0.39008 6625M
5120*3256 0.09257 4.933566 6625M

结论

  • 上色模块 GPU占比为6625M,且与传入图片尺寸无关-----无论图像尺寸多大都可以进行上色操作
  • 耗时:256*256的图像耗时约为0.22秒;512*512的图像耗时约为0.26秒;1024*768的图像耗时约为0.39秒;5120*3256的图像耗时约为4秒;---上色模块耗时随着图像尺寸的增加而增加。

超分

参数同上色模块,对比分为RealSR 模型 和 BSRGAN 模型

图片尺寸 RealSR模型耗时(s) BSRGAN模型耗时(s) RealSR程序耗时(s) BSRGAN程序耗时(s) GPU占用(RealSR) GPU占用(BSRGAN)
256*256 0.3206(首张) 0.1497(首张) 0.6029(首张) 1771 1989
256*256 0.1396(平均) 0.1291(平均) 0.39302(平均) 0.3943(平均) 1771 1989
512*512 0.7232(首张) 0.5622(首张) 1.79002(首张) 4377 4595
512*512 0.5546(平均) 0.5414(平均) 1.58936(平均) 1.6583(平均) 4377 4595
768*768 3.1306(首张) - - out of memory out of memory
1027*768 - - out of memory out of memory

结论

  • 每个模型的第一张图像运行时间 都比第二张图像的运行时间;BSRGAN比RealSR的运行时间

  • GPU占用上 各个批次尺寸下 BSRGAN都比RealSR的模型运行耗时短,约低0.02秒;BSRGAN都比RealSR的程序耗时长,约高0.1秒;

修复

实验一:

修复去噪分为四步 数据加载(mask)、去噪、正脸检测+恢复、混合

自己设置的参数包括 是否有刮伤是否切割

图像中是否有人脸 是通过 正脸检测+修复模块 检测得来;

修复
图片尺寸 整体运行耗时(s) 去噪模块模型耗时(s) 去噪模块程序耗时(s) GPU占用(mask) GPU占用(修复) GPU占用(人脸恢复) 备注(刮伤自己设;代码检测人脸)
256*256 9.8697 0.50468(首张) 0.55743(首张) 5523M 2965M 有人脸、单张、无刮伤
256*256 0.2999 0.00978(平均) 0.06952(平均) 5523M 2965M 有人脸、多张、无刮伤
256*256 9.547 0.51982(首张) 0.58262(首张) 5523M 1125M 无人脸、单张、无刮伤
256*256 0.1422 0.00987(平均) 0.06905(平均) 5523M 1125M 无人脸、多张、无刮伤
256*256 12.7437 0.544089(首张) 0.71235(首张) 1241M 5523M 2965M 有人脸、单张、刮伤
256*256 0.41562 0.019003(平均) 0.10381(平均) 1241M 5523M 2965M 有人脸、多张、刮伤
256*256 12.1807 0.51982(首张) 0.57485(首张) 1241M 5293M 1125M 无人脸、单张、刮伤
256*256 0.23677 0.01794(平均) 0.08824(平均) 1241M 5293M 1125M 无人脸、多张、刮伤
512*512 10.852 1.12179(首张) 1.3233(首张) 5231M 2965M 有人脸、单张、无刮伤
512*512 0.94019 0.0192(平均) 0.27286(平均) 5231M 2965M 有人脸、多张、无刮伤
512*512 10.324 0.00901(首张) 1.34608(首张) 5231M 1125M 无人脸、单张、无刮伤
512*512 0.3995 0.01685(平均) 0.266(平均) 5231M 1125M 无人脸、多张、无刮伤
512*512 1241M out of memory 有人脸、单张、刮伤
512*512 1241M out of memory 有人脸、多张、刮伤
512*512 1241M out of memory 无人脸、单张、刮伤
512*512 1241M out of memory 无人脸、多张、刮伤

结论一

  • 图像尺寸为256*256时,检测到人脸且无刮伤时耗时约为0.29秒;未检测到人脸且无刮伤时约为0.14秒;检测到人脸且有刮伤时耗时约为0.42秒;

  • 图像尺寸为512*512时,检测到人脸且无刮伤时耗时约为0.94秒;未检测到人脸且无刮伤时约为0.39秒;检测到人脸且无刮伤时out of memory;

  • 修复模块比较占用资源,对于内存不高的电脑只适合修复小图

  • 如若图像中无刮伤时不运行mask操作,可节省时间。

  • 如若图像中无人脸时,可不运行 正脸检测(模型 GPU占比约为92.1M)+修复模块混合 操作 ,以便节省时间。

  • 设置是否切割的参数:设置为True,会将图片切割成小图修复最后粘贴到一起,视觉效果不好,分块,建议一直设置为False。

实验二 整张图片耗时

将 大尺寸图像切割成小图逐个修复,再合并到一张图像。##可以添加

修复
图片尺寸 整体耗时(不包括切割和合成操作) 备注、(结果是块状,无人脸是因代码未检测到人脸)
1280*814 11.101(s) 无人脸、未上色原图、无刮伤
1280*814 15.4761(s) 无人脸、未上色原图、刮伤
1280*814 11.5246(s) 无人脸、上色图、无刮伤
1280*814 15.3083(s) 无人脸、上色图、刮伤

结论二:

  • 设置刮伤参数为True时,程序耗时约高4秒
  • 相同大小的上色图和未上色图,在程序耗时上相差不大。

实验三 改代码 对生成的 mask 和 原图 切块输入网络测试

左侧为切割mask和原始图像生成的修复图 右侧为 原始图

mask

下面为原始大图 切割成小图 ,然后挨个修复小图,最后将修复的图合成到一张图上的结果

mask

结论三:

  • 效果和大图直接切成小图在使用默认mask效果没区别,都有明显分块;
  • mask 只与修复的效果有关;使用切割的mask,效果比使用默认的效果好。

各个模块相互之间的流程 效果对比

模块和数据介绍

  • 模块分为 上色(baidu)、修复(microsoft)、超分real_SR(腾讯)、超分BSRGAN
  • 测试数据来源 : 在 提供的原始图片上剪切尺寸为256*256小图 ,包括人脸图、风景(没有人脸的图)。
  • 上色 作用: 是黑白照片转彩色.

实验一 单模块比较

数据原图、数据原图的上色图、数据原图的修复图结果如下:

结果图

结论一:

  • 上色 使得 黑白照片 变 彩色,视觉效果更好;

  • 修复 可以去除图片上的刮伤,但对图片颜色改动不大;

  • 直接在原图上修复未找到一张人脸,人脸检测效果比较差

实验二 对比 修复 上色 两个模块的 流程

选择性挑选有特点的图像如下:

对比 上色 修复 流程

修复上色对比

修复-上色-超分(BSRGANSR) 和 _上色-修复-超分(BSRGAN) 对比

图2

结论二:

  • 对比 先上色还是后上色:先上色后修复的视觉结果 比先修复后上色的视觉效果好
  • 直接在就照片上修复,可能在就照片上检索不到人像,导致可能是人像的区域修复效果差
  • 先上色后修复可以在第3张图搜索到人脸做优化;而直接修复搜索不到人脸

实验三:对比加不加修复

上色-修复-超分(BSRGAN) 和 上色-超分(BSRGAN) 结果如下:

修复对比图1

上色-修复-超分(RealSR)和 上色-超分RealSR 结果如下:

修复对比图2

结论三:

  • 如若图像上有刮痕,使用修复再超分的视觉效果 优于 直接超分的视觉效果;

  • 在无人脸的图像上,使用修复和不修复的视觉效果相差不大,修复之后的颜色微深一点;

  • 发现在有人脸却未检测出结果的图像上,使用修复的效果比较差;

  • 发现在有人脸却未检测出结果的图像上,BSRGAN和RealSR两者效果差异比较大,实验四详细介绍;

实验四 bsrgan 和realsr 对比

上色-超分(BSRGAN、上色-超分(RealSR)、上色-修复-超分(BSRGAN)和上色-修复-超分(RealSR) 对比:

超分模型对比1

超分模型对比1

结论四:

  • BSRGAN超分过后的图比较细腻,视觉效果好,噪点比较少
  • 在有人脸且在修复能检测到人脸的图上对比 结果最好 的是 上色+修复+BSRGAN的结果
  • 在有人脸且在修复不能检测到人脸的图上对比 结果最好 的是 上色+BSRGAN的结果
  • 无人脸的图像上 结果如第一小点一样,BSRGAN超分效果好。