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颜色空间的代码.
请帮助我改进代码以加快执行速度.
我最近试图解决同样的问题是:
缩小处理后的图像以获得不错的性能(我将所有内容缩小到320px宽度)
使用核心计算机视觉库检测图像中的面部 - https://github.com/liuliu/ccv
基于检测到的面部矩形信息使用HAAR物体探测器检测眼睛(它只有眼睛的级联检测 - https://github.com/inspirit/jsfeat
对于步骤2,我还使用了JSFEAT库中的"灰度"和"equalize_histogram".
此外,如果步骤3失败,您可以尝试猜测眼睛的位置(取决于您的准确度有多高).
这个工作流程给了我满意的结果和性能.它在台式机(iMac上约500毫秒)和移动设备(使用网络摄像头图像的iphone 4上约3000毫秒)上进行了测试.不幸的是,我现在无法发布一个链接到工作示例,但是一旦我有了东西,我会发布一个链接到github.
您可以使用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)
上面的代码来自库中的示例之一。希望对您有帮助
| 归档时间: |
|
| 查看次数: |
14596 次 |
| 最近记录: |