这篇教程keras学习笔记-黑白照片自动着色的神经网络-Beta版写得很实用,希望能帮到您。
keras学习笔记-黑白照片自动着色的神经网络-Beta版
Alpha版本不能很好地给未经训练的图像着色。接下来,我们将在Beta版本中做到这一点——将上面的将神经网络泛化。
以下是使用Beta版本对测试图像着色的结果。
特征提取器
我们的神经网络要做的是发现将灰度图像与其彩色版本相链接的特征。
试想,你必须给黑白图像上色,但一次只能看到9个像素。你可以从左上角到右下角扫描每个图像,并尝试预测每个像素应该是什么颜色。
例如,这9个像素就是上面那张女性人脸照片上鼻孔的边缘。要很好的着色几乎是不可能的,所以你必须把它分解成好几个步骤。
首先,寻找简单的模式:对角线,所有黑色像素等。在每个滤波器的扫描方块中寻找相同的精确的模式,并删除不匹配的像素。这样,就可以从64个迷你滤波器生成64个新图像。
如果再次扫描图像,你会看到已经检测到的相同的模式。要获得对图像更高级别的理解,你可以将图像尺寸减小一半。
你仍然只有3×3个滤波器来扫描每个图像。但是,通过将新的9个像素与较低级别的滤波器相结合,可以检测更复杂的图案。一个像素组合可能形成一个半圆,一个小点或一条线。再一次地,你从图像中反复提取相同的图案。这次,你会生成128个新的过滤图像。
经过几个步骤,生成的过滤图像可能看起来像这样:
这个过程就像大多数处理视觉的神经网络,也即卷积神经网络的行为。结合几个过滤图像了解图像中的上下文。
、 Possible precision loss when converting from float64 to uint16 .format(dtypeobj_in, dtypeobj_out))黑白照片自动着色的神经网络-Alpha版 |