我对使用brain.js 很感兴趣:https ://github.com/harthur/brain
提供了一个演示,展示了如何训练神经网络识别颜色对比度,但是我如何设置它以便它可以从输入中学习哪种颜色的文本(白色或黑色)在不同的背景图像上看起来更好?
这是那个演示:http ://harthur.github.io/brain/
我有一组要训练的背景图像。然后我想保存该训练数据并能够将其添加到使用这些背景图像的站点,这样就能够确定在它们之上使用哪种颜色的文本。
我对使用brain.js 很感兴趣:https ://github.com/harthur/brain
提供了一个演示,展示了如何训练神经网络识别颜色对比度,但是我如何设置它以便它可以从输入中学习哪种颜色的文本(白色或黑色)在不同的背景图像上看起来更好?
这是那个演示:http ://harthur.github.io/brain/
我有一组要训练的背景图像。然后我想保存该训练数据并能够将其添加到使用这些背景图像的站点,这样就能够确定在它们之上使用哪种颜色的文本。
看起来就像这样简单:
net.train([{input: { r: 0.03, g: 0.7, b: 0.5 }, output: { black: 1 }},
{input: { r: 0.16, g: 0.09, b: 0.2 }, output: { white: 1 }},
{input: { r: 0.5, g: 0.5, b: 1.0 }, output: { white: 1 }}]);
因此,要从输入中执行此操作,只需更改以下值:
var input = {};
input.r = hexToRgb($('#rgbTextField').r;
input.g = hexToRgb($('#rgbTextField').g;
input.b = hexToRgb($('#rgbTextField').b;
var output = {};
output.black = 1;
// finally...
net.train([ input, output ]);
var hexToRgb = function(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
或者大意的东西。我没有测试过这段代码。
鉴于您的评论中的澄清,您有几个选择:
重要的是要记住,神经网络不知道颜色是什么,也不知道像素是什么,它只知道输入和输出。所以只需输入你的(任意复杂的)输入,看看它是如何处理它的。我不知道您链接的 NN 的功能,但总的来说,认为它可以满足您的需求是合理的。我不知道性能......你必须确保它在现场场景中实际上对你来说足够快。
但我会认真思考你想要完成的事情是否真的对你的目标如此核心,以至于值得付出努力,无论是在设置还是持续资源方面。