javascript - 在 javascript 中访问值

标签 javascript

我正在使用名为 CLMtracker 的 JS 库进行面部跟踪/情绪检测。

http://auduno.github.io/clmtrackr/examples/clm_emotiondetection.html

注意:对于那些尝试使用它的人来说,似乎在 chrome 中效果最好。

是我正在使用的示例,我想知道如何访问每种情绪的值。例如,我想每 10 秒检查一次值是什么并打印到控制台。由此我还想比较这些值以找到最高值并找到与之相关的情感。我想我说 max() 函数会给我数组中的最大值是对的吗?

我尝试过的:

我尝试获取 emotionData[0].emotion 和 emotionData[0].value 应该打印 Angry 和值,但它只打印 0。我也尝试过使用相同的方法处理似乎没有返回的数据任何东西。

编辑

emotionData 让我:

但是当我改变表情时它似乎没有显示任何更新/变化

enter image description here

最佳答案

ec.meanPredict(ctrack.getCurrentParameters()) 返回一个对象,其中包含所有情绪的所有当前分数。

例如,要获得“愤怒”的当前分数,您可以这样做:

ec.meanPredict(ctrack.getCurrentParameters())[0].value

所以,为了得到当前最可能的情绪,你可以这样做:

function getCurrentEmotion()
{
    if(!ec.meanPredict(ctrack.getCurrentParameters())){setTimeout(getCurrentEmotion,1000);return;}
    var currentData = ec.meanPredict(ctrack.getCurrentParameters());
    var currentScores = [];

    //Gather all scores in an array
    for(var i=0;i<currentData.length;i++)
    {
        currentScores.push(currentData[i].value);
    }

    //Get the biggest score
    var max = Math.max.apply(null,currentScores);
    //Calculate its index
    var indexOfScore = currentScores.indexOf(max);
    //Get the associated emotion
    var emotion = currentData[indexOfScore].emotion;
    console.log(emotion);

    //Set up a loop (did not add 'var', to allow stopping it from outside)
    currentEmotionLoop = setTimeout(getCurrentEmotion,3000);
}

要随时停止循环,请执行以下操作:

clearTimeout(currentEmotionLoop);

顺便说一句,ec 变量是私有(private)声明的,所以为了让它工作,要么删除声明它的地方的 var :

var ec = new emotionClassifier();

或者将这段代码写在同一个文件中,在同一个范围内。

关于javascript - 在 javascript 中访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726448/

相关文章:

javascript - 如何同步更多的gif图片?

javascript - 如何对数组进行排序,但排除某些元素(保持在数组中的相同位置)

javascript - 将当前页面的 HTML 放入新窗口

javascript - 避免弹出窗口标题上的 url

javascript - 播放 mp3 时突出显示文本

javascript - Angular ng-repeat 重复 tr 与多个 td

javascript - 调用 bs.reload(*.html) 是否会重新加载 app 目录下的所有 html 文件?

javascript - 使用Reducer Redux中的新内容更新数组

javascript - jQuery slideToggle 变得疯狂——为什么?

javascript - 如何从 Web 应用程序在客户端计算机上创建临时文件?