tensorflow js RGB 从输入 img 到 Lab

tensorflow js RGB to Lab from input img

我一直在搜索和调试,但找不到适合我的东西。我正在做一个 web 应用程序,我尝试从黑白图像到彩色图像,为此我输入了一个输入,我在其中加载图像并进行推理(目前使用图像到图像模型)。

事实上,我想在进入网络之前将 rgb 图像转换为 lab 作为预处理,因为这就是我打算训练它的方式。我的代码如下:

var myInput = document.getElementById('myFileInput');

function processPic() {
    if (myInput.files && myInput.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#prev_img_id').attr('src', e.target.result);
            //Initiate the JavaScript Image object.
            var image = new Image();
           //Set the Base64 string return from FileReader as source.
           image.src = e.target.result;
           image.onload = function () {
               //alert(this.height)
               const webcamImage = tf.fromPixels(this);
               const batchedImage = webcamImage.expandDims(0);
               predict(batchedImage.toFloat().div(tf.scalar(127)).sub(tf.scalar(1)))
            }
        }

        reader.readAsDataURL(myInput.files[0]);
    }
}

myInput.addEventListener('change', processPic, false);


function predict(the_img) {
    //get predictions 
    let pred = mobilenet.predict(the_img);
    //retreive the highest probability class label 
    let cls = pred.argMax().buffer().values[0];

    alert(IMAGENET_CLASSES[cls]);
}

有一些关于将 RGB 转换为 LAB 的资源,例如http://www.easyrgb.com/en/math.php.

您也可以试试这个 JS 实现(https://github.com/antimatter15/rgb-lab,它实际上使用 easyrgb 网站上的方程式),调用 rgb2lab()在你的 image.onload.

中运行

要访问 `` 所需的图像数据,您可以查看此 SO 线程 (),即使用中介 canvas.

我写了一些代码来使用 tensorflow.js 操作来执行此操作代码可以通过矩阵乘法进一步优化但它会起作用并且如果这仍然相关的话应该会让你走上正确的道路。

RGB2LAB TFJS