我对使用brain.js感兴趣:https://github.com/harthur/brain
有一个提供的演示,展示如何训练神经网络识别颜色对比度,但我如何设置它,以便它可以从输入中学习哪些颜色文本(白色或黑色)在不同背景上看起来更好图象?
以下是该演示:http://harthur.github.io/brain/
我有一组我想要训练的背景图像。然后我想保存该训练数据,并能够将其添加到使用这些背景图像的网站,并且能够确定在其上使用哪种颜色文本。
答案 0 :(得分:2)
看起来好像很简单:
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;
}
或其他效果。我还没有测试过这段代码。
答案 1 :(得分:1)
鉴于您的评论中的澄清,您有几个选择:
重要的是要记住,神经网络不知道颜色是什么,它不知道像素是什么,它只知道输入和输出。所以只需输入你的(任意复杂的)输入,看看它是如何处理的。我不知道您链接的NN的功能,但总的来说,认为它可以满足您的需求是合理的。我不了解性能 ...您必须确保它在实时场景中实际上足够快。
但我认真思考,你所要完成的事情是否真的如此核心,以至于它在设置和持续资源方面值得付出努力