python神经网络一键格式化黑白视频为彩色视频
Colorful Image Colorization
图片的颜色上色,主要使用到了CNN卷积神经网络,作者在ImageNet数据集上进行了大量的训练,并将此问题使用在分类任务中,以解决问题的潜在的不确定性,并在训练时使用颜色重新平衡的损失函数方法来增加颜色的多样性。该算法在测试时作为CNN中的前馈通道实现,并在超过一百万个彩色图像上进行了训练。且使用“着色图灵测试”评估算法。
此算法作者为了训练神经网络,从imageNet数据集上搜集大量的数据,并将所有搜集的图像从图片的RGB空间转换为Lab空间。
与RGB三种颜色空间类似,Lab空间具有3个通道,但是与RGB不同,Lab空间对颜色的编码为:
- The L channel :代表颜色的亮度
- The a channel :绿-红
- The b channel :蓝-黄
Lab颜色空间是根据Commission International Eclairage(CIE)在1931年所制定的一种测定颜色的国际标准建立的。于1976年被改进,并且命名的一种色彩模式。Lab颜色模型弥补了RGB和CMYK两种色彩模式的不足。它是一种设备无关的颜色模型,也是一种基于生理特征的颜色模型。 [1] Lab颜色模型由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。因此,这种颜色混合后将产生具有明亮效果的色彩。
由于L通道仅编码强度,因此神经网络可以将L通道用作为网络的灰度输入
神经网络训练学习并预测a、b通道。 给定输入L通道和预测的ab通道,3中通道合并便可以生成彩色的图片
以上知识点是图片上色的主要过程,当我们分享对象检测与人脸识别时,我们总是把图片检测与人脸识别的图片与视频分开,其视频识别过程其实就是图片视频的连续检测,再把图片合成视频(现在的视频一般1秒钟有60帧的画面),若你的电脑配置能够达到此计算速度,或者稍微差点,其识别的视频都可以很流畅的运行,上期文章分享了如何把一张黑白的图片转换为彩色照片,本期基于上次的代码来进行黑白视频的转换
彩色图片
黑白视频转换为彩色视频
黑白视频的输入可以来源于输入的视频或者摄像头
如果没有输入视频,便打开系统设置的默认的摄像头
初始化系统模型,获取ab通道信息
我们在while死循环中从视频中获取获取帧画面,使用图片的上色技巧来上色,最后再实时把图片显示以达到显示视频的结果
以上便是黑白视频转换为彩色视频的全部代码,小伙伴们可以直接修改输入视频的地址来进行自己视频的转换