Android的底层技术&x27;面部检测器

Android的底层技术&x27;面部检测器,android,java-native-interface,fft,face-detection,Android,Java Native Interface,Fft,Face Detection,我正在安卓上实现一个人脸跟踪器,作为一项文献研究,我想确定安卓人脸检测器的底层技术 简单地说:我想了解android.media.FaceDetector分类器是如何工作的 一个简短的谷歌搜索并没有产生任何信息,所以我想我应该看看代码 通过查看Java源代码,没有什么可学的:FaceDetector只是一个类,它提供了图像尺寸和面数,然后返回面数组 Android源代码。我完成了函数调用,在这里,我学到了一些基本知识: “FaceFinder”是在中创建的 在第90行,bbs_MemSeg_al

我正在安卓上实现一个人脸跟踪器,作为一项文献研究,我想确定安卓人脸检测器的底层技术

简单地说:我想了解
android.media.FaceDetector
分类器是如何工作的

一个简短的谷歌搜索并没有产生任何信息,所以我想我应该看看代码

通过查看Java源代码,没有什么可学的:
FaceDetector
只是一个类,它提供了图像尺寸和面数,然后返回面数组

Android源代码。我完成了函数调用,在这里,我学到了一些基本知识:

  • “FaceFinder”是在中创建的
  • 在第90行,
    bbs_MemSeg_alloc
    返回一个
    btk_HFaceFinder
    对象(包含实际查找面的函数),实质上是将其复制到原始
    btk_HSDK
    对象的
    contextE.memTblE.espArrE
    数组中,该数组由
    btk_HSDK_create()在initialize()中初始化
  • 似乎迷宫般的函数相互提供了
    btk_HSDK
    的指针和实例,但我在任何地方都找不到
    sdk->contextE.memTblE.espArrE[0]
    的具体实例,据说它包含了魔法
  • 我发现了一点线索:JNI代码引用了一个FFTEm库,我找不到它的源代码。然而,从表面上看,FFT是快速傅里叶变换,它可能与预先训练的神经网络一起使用。我能找到的唯一符合这个理论的文献是

    我甚至不知道自己是否走上了正确的道路,所以任何建议都毫无疑问会有所帮助


    编辑:我为任何能提供任何见解的人增加了+100奖金。

    我也找到了几个链接…不确定这是否对你有帮助

    看看这个:

    我想我曾经在一次演示中看到一些matlab代码在做这个。 也许在网上的某个地方

    您好,
    拉尔斯

    我在打电话,所以无法做出广泛的回应,但谷歌关键词“neven vision algorithm”拉了一些有用的论文

    还有,是相关的


    可能还有一些链接可能很方便…

    libFFTEm不是从Android的人脸检测层引用的,实际上它是所有源代码在外部/neventh中的编译输出,这解释了为什么我找不到源代码!谢谢这表明,如果它确实使用快速傅里叶变换,那么在
    neven
    中应该有一些证据。然而,我并没有什么特别感兴趣的。看起来libFFTEm
    中的“Em”可能指的是“期望最大化”,这是一种用于基于颜色的皮肤检测的统计方法。有一个项目,从Android中提取了neven人脸检测库:。感谢您的回复,这些项目确实很有趣,但我想了解安卓内置的人脸检测器是如何工作的(
    Android.media.FaceDetector
    )。我在谷歌上搜索了这个链接:也许是代码。我不知道,我这里没有matlab或scilab来尝试它。也许你有:恐怕我找不到任何证据证明这是Neven Vision所基于的技术。谷歌似乎收购了Neven Vision,一种基于Hartmut Neven申请的各种专利的物体识别技术。我还没有找到关于该算法的详细描述,但对该专利的后续研究提供了一点见解。该研究为该技术提供了一些见解。这似乎表明它严重依赖于。