【直播内容总结】穿越时光 让黑白地雷战原彩重现
7.23的直播会已经结束,本篇文字来源于 https://bbs.huaweicloud.com/forum/thread-66653-2-1.html 论坛本人的跟帖。
本文的内容和图片是本人对老师直播内容的整理和总结。特此说明。
老师一开始就介绍今天的重点是介绍:
今天的内容是:输入一个黑白图片,怎么玩,才能导出一张彩色的图片。
所以今天是图片转换(后面会有视频转换,和优化部分:而优化的瓶颈可能就不是昇腾处理器,而在前处理和后处理)
第一部分:
老师先介绍了几个关键的知识点,比如:
(1)Lab颜色空间:跟RGB有区别。数值在0~100。
Lab颜色空间中的L通道是可以直接用作灰度图的输入的,所以推理的时候只需要预测AB通道即可。
(2)卷积:算法中大量用到了卷积,包含dilation=0和dilation=1的卷积
还包含了反卷积:(可以起到上采样的效果)
(3)卷积核 featuremap
第二部分:
老师接下来介绍了具体的模型的主要思路:
利用卷积计算提取特征,然后用卷积进行分类,从而计算出每个灰度图片的色彩预期。
这样生成的Lab再转换为RGB就可以是目的的彩色的图片了。
具体的过程可由以下的内容表示:
我们看一下这个过程的具体复杂度:
从特征提取和预测的数量级都很高,计算量和参数量也非常大,传统CPU不可能做到,这时候只有借助于昇腾处理器的超级AI处理能力才能解决问题。
第三部分:
老师介绍了基于昇腾处理器的开发流程
首先,上色这个是别人提供的模型,首先要经过转换,才能在昇腾处理器上跑。
然后要做评估,如果算子不行或缺失,要开发算子,补齐算子库。
然后使用ACL进行业务开发。
如果之后发现性能不够,还需要做性能优化和调试。
在模型转换方面,提供了ATC工具:
在模型转换时,有以下的约束:
老师接着使用MindStudio进行演示:
并介绍了2个重要的模型评估工具:img2bin和amexec
下图是推理的结果:推理10次,运行时长为9.8m,可以达到一秒处理100帧的速度。基本上对于黑白视频影像是没问题了。
老师又介绍了ACL(称之为昇腾计算语言,或者昇腾加速库)的开发过程,这里是一个简单的HelloWorld:
可见,使用ACL做业务开发非常简洁。
接着,老师介绍了上色的整体代码结构:
model 下是转换好的模型
main.cpp, colorize_process.cpp, model_process.cpp是三个最主要的代码。其中main分别调用后两个代码进行前处理和后处理。
一般情况下,用户对于main.cpp和model_process.cpp无需修改,只需要修改 colorize_process.cpp即可完成自己的代码开发。
最后,老师根据以上的代码,做了转换后的演示:
比如:这是对黑白人像转换的结果
这是对风景图像转换的结果:
效果看起来都非常好。
最后,老师做了总结,并留下了伏笔,下一课,我们还需要继续学习视频该如何转换。
个人感受:听了这部分内容,顿时对黑白图片的上色过程感觉清晰了,虽然中间很多算法不是很懂,但是整体的过程已经非常明晰了。真希望自己把自己父母的一些黑白照片给上个色。毕竟他们的老照片都是他们心里的宝贝啊。。。
最后附上色的算法地址:
https://developer.huaweicloud.com/techfield/ascend.htmlzh/developer/mindx-sdk/cartoon/990674866img?fromPage=1
以及码云地址:
https://gitee.com/Atlas200DK/sample-colorization
有条件的小伙伴可以下载学习哦。。。。
- 点赞
- 收藏
- 关注作者
评论(0)