使用javascript和html5进行眼睛检测

Oli*_* B. 5 javascript html5 eye-detection

有没有人有任何想法或步骤或算法使用JavaScript和HTML5在2D图像上执行眼睛检测?

我已经将RGB转换为YCbCr色彩空间

现在我需要一些眼睛提取方面的帮助

function hellow(e)
{
    var r,g,b,a,gray;
    var imageData = ctxBg.createImageData(gameWidth,gameHeight);
    var das =imageData.data;

    for(var i=0;i<=800;i++)
    {
        for(var j=0;j<=640;j++)
        {
            var d = (j*imageData.width+i)*4;
            var helow = ctxBg.getImageData(i,j,1,1);
            r=helow.data[0];
            g=helow.data[1];
            b=helow.data[2];
            a=helow.data[3];
            das[d]=Math.round((0.299 *r) - (0.168935*g) + (0.499813*b));
            das[d+1]=Math.round((0.587 *r) - (0.331665*g) + (0.418531*b));
            das[d+2]=Math.round((0.114 *r) - (0.50059*g) + (0.081282*b));
            das[d+3]=a;
            console.log(das[d]+":"+das[d+1]+":"+das[d+2]);
        }
    }
    ctxBg.putImageData(imageData,0,0);
    //console.log('c');
    e.preventDefault(); 
}
Run Code Online (Sandbox Code Playgroud)

这是我将rgb转换为YCbCr颜色空间的代码.

请帮助我改进代码以加快执行速度.

Tom*_*ski 6

我最近试图解决同样的问题是:

  1. 缩小处理后的图像以获得不错的性能(我将所有内容缩小到320px宽度)

  2. 使用核心计算机视觉库检测图像中的面部 - https://github.com/liuliu/ccv

  3. 基于检测到的面部矩形信息使用HAAR物体探测器检测眼睛(它只有眼睛的级联检测 - https://github.com/inspirit/jsfeat

对于步骤2,我还使用了JSFEAT库中的"灰度"和"equalize_histogram".

此外,如果步骤3失败,您可以尝试猜测眼睛的位置(取决于您的准确度有多高).

这个工作流程给了我满意的结果和性能.它在台式机(iMac上约500毫秒)和移动设备(使用网络摄像头图像的iphone 4上约3000毫秒)上进行了测试.不幸的是,我现在无法发布一个链接到工作示例,但是一旦我有了东西,我会发布一个链接到github.


Ger*_*sio 5

您可以使用tracking.js使用各种技术从相机捕获的真实场景中检测眼睛。

使用库导入脚本并将画布添加到 HTML 后,您可以执行以下操作:

var videoCamera = new tracking.VideoCamera().hide().render().renderVideoCanvas(),
    ctx = videoCamera.canvas.context;

videoCamera.track({
    type: 'human',
    data: 'eye',
    onFound: function(track) {
        for (var i = 0, len = track.length; i < len; i++) {
            var rect = track[i];
            ctx.strokeStyle = "rgb(0,255,0)";
            ctx.strokeRect(rect.x, rect.y, rect.size, rect.size);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

上面的代码来自库中的示例之一。希望对您有帮助

  • 请参阅我刚刚更新的 https://github.com/mtschirs/js-objectdetect#performance 快速眼*检测*库的性能比较。对于纯粹的眼睛*跟踪*,请继续使用 tracker.js 或采用 https://github.com/auduno/headtrackr 中的 camshift 算法。 (3认同)