color_restore_SR实验报告 - yubo105139/paper GitHub Wiki
测试报告
各个模块的时间 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,效果比使用默认的效果好。
各个模块相互之间的流程 效果对比
模块和数据介绍
- 模块分为 上色(baidu)、修复(microsoft)、超分real_SR(腾讯)、超分BSRGAN
- 测试数据来源 : 在 提供的原始图片上剪切尺寸为256*256小图 ,包括人脸图、风景(没有人脸的图)。
- 上色 作用: 是黑白照片转彩色.
实验一 单模块比较
数据原图、数据原图的上色图、数据原图的修复图结果如下:
结论一:
-
上色 使得 黑白照片 变 彩色,视觉效果更好;
-
修复 可以去除图片上的刮伤,但对图片颜色改动不大;
-
直接在原图上修复未找到一张人脸,人脸检测效果比较差
实验二 对比 修复 上色 两个模块的 流程
选择性挑选有特点的图像如下:
对比 上色 修复 流程
修复-上色-超分(BSRGANSR) 和 _上色-修复-超分(BSRGAN) 对比
结论二:
- 对比 先上色还是后上色:先上色后修复的视觉结果 比先修复后上色的视觉效果好
- 直接在就照片上修复,可能在就照片上检索不到人像,导致可能是人像的区域修复效果差
- 先上色后修复可以在第3张图搜索到人脸做优化;而直接修复搜索不到人脸
实验三:对比加不加修复
上色-修复-超分(BSRGAN) 和 上色-超分(BSRGAN) 结果如下:
上色-修复-超分(RealSR)和 上色-超分RealSR 结果如下:
结论三:
-
如若图像上有刮痕,使用修复再超分的视觉效果 优于 直接超分的视觉效果;
-
在无人脸的图像上,使用修复和不修复的视觉效果相差不大,修复之后的颜色微深一点;
-
发现在有人脸却未检测出结果的图像上,使用修复的效果比较差;
-
发现在有人脸却未检测出结果的图像上,BSRGAN和RealSR两者效果差异比较大,实验四详细介绍;
实验四 bsrgan 和realsr 对比
上色-超分(BSRGAN、上色-超分(RealSR)、上色-修复-超分(BSRGAN)和上色-修复-超分(RealSR) 对比:
结论四:
- BSRGAN超分过后的图比较细腻,视觉效果好,噪点比较少
- 在有人脸且在修复能检测到人脸的图上对比 结果最好 的是 上色+修复+BSRGAN的结果
- 在有人脸且在修复不能检测到人脸的图上对比 结果最好 的是 上色+BSRGAN的结果
- 无人脸的图像上 结果如第一小点一样,BSRGAN超分效果好。