Android的FaceDetector底层技术

时间:2022-11-19 09:58:46

I'm implementing a face tracker on Android, and as a literature study, would like to identify the underlying technique of Android's FaceDetector.

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

Simply put: I want to understand how the android.media.FaceDetector classifier works.

简单地说:我想了解android。media。FaceDetector分类器。

A brief Google search didn't yield anything informative, so I thought I'd take a look at the code.

简短的谷歌搜索没有提供任何有用的信息,所以我想看看代码。

By looking at the Java source code, FaceDetector.java, there isn't much to be learned: FaceDetector is simply a class that is provided the image dimensions and number of faces, then returns an array of faces.

通过查看Java源代码,FaceDetector。java,没有什么可学的:face检测器只是一个类,它提供了图像的维度和面孔的数量,然后返回一系列的面孔。

The Android source contains the JNI code for this class. I followed through the function calls, where, reduced to the bare essentials, I learned:

Android源代码包含这个类的JNI代码。我接着通过函数调用,在那里,减少到最基本的东西,我学到了:

  1. The "FaceFinder" is created in FaceFinder.c:75
  2. “FaceFinder”是在FaceFinder中创建的
  3. On line 90, bbs_MemSeg_alloc returns a btk_HFaceFinder object (which contains the function to actually find faces), essentially copying it the hsdkA->contextE.memTblE.espArrE array of the original btk_HSDK object initialized within initialize() (FaceDetector_jni.cpp:145) by btk_SDK_create()
  4. 在第90行,bbs_MemSeg_alloc返回一个btk_HFaceFinder对象(它包含查找人脸的函数),本质上将其复制为初始化()中的原始btk_HSDK对象的context . memtble.esparre数组(facedetector_jni.145)。
  5. It appears that a maze of functions provide each other with pointers and instances of btk_HSDK, but nowhere can I find a concrete instantiation of sdk->contextE.memTblE.espArrE[0] that supposedly contains the magic.
  6. 看起来,错综复杂的函数为彼此提供了btk_HSDK的指针和实例,但我找不到一个具体的sdk实例——>context . memtble.esparre[0],它应该包含了魔法。

What I have discovered, is a little clue: the JNI code references a FFTEm library that I can't find the source code for. By the looks of it, however, FFT is Fast Fourier Transform, which is probably used together with a pre-trained neural network. The only literature I can find that aligns with this theory is a paper by Ben-Yacoub et al.

我发现了一点线索:JNI代码引用了一个FFTEm库,我找不到它的源代码。但是,通过它的外观,FFT是快速傅里叶变换,它可能与预先训练的神经网络一起使用。我能找到的唯一与这个理论一致的文献是Ben-Yacoub等人的一篇论文。

I don't even really know if I'm set on the right path, so any suggestions at all would undoubtedly help.

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

Edit: I've added a +100 bounty for anybody who can give any insight.

编辑:我为任何有洞察力的人增加了+100奖励。

3 个解决方案

#1


3  

I'm on a phone, so can't respond extensively, but Google keywords "neven vision algorithm" pull up some useful papers...

我在打电话,所以不能广泛响应,但是谷歌关键字“neven vision算法”找到一些有用的文件…

Also, US patent 6222939 is related.

此外,美国专利6222939也有关系。

Possibly also some of the links on http://peterwilliams97.blogspot.com/2008/09/google-picasa-to-have-face-recognition.html might be handy...

也有可能是http://peterwilliams97.blogspot.com/2008/09/google-picasa-to have-face-recognition.html上的一些链接可能很方便……

#2


4  

I Found a couple of links too...Not sure if it would help you...

我也找到了一些链接……不确定是否能帮到你……

http://code.google.com/p/android-playground-erdao/source/browse/#svn/trunk/SnapFace

http://code.google.com/p/android-playground-erdao/source/browse/ svn /箱子/ SnapFace

http://code.google.com/p/jjil/

http://code.google.com/p/jjil/

http://benosteen.wordpress.com/2010/03/03/face-recognition-much-easier-than-expected/

http://benosteen.wordpress.com/2010/03/03/face-recognition-much-easier-than-expected/

#3


0  

have a look at this: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1562271

看看这个:http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?

I think I once saw some matlab code doing this in a presentation. Maybe it's somewhere online.

我记得我在一次演示中见过一些matlab代码。也许是在线的地方。

Greetings, Lars

问候,拉尔斯

#1


3  

I'm on a phone, so can't respond extensively, but Google keywords "neven vision algorithm" pull up some useful papers...

我在打电话,所以不能广泛响应,但是谷歌关键字“neven vision算法”找到一些有用的文件…

Also, US patent 6222939 is related.

此外,美国专利6222939也有关系。

Possibly also some of the links on http://peterwilliams97.blogspot.com/2008/09/google-picasa-to-have-face-recognition.html might be handy...

也有可能是http://peterwilliams97.blogspot.com/2008/09/google-picasa-to have-face-recognition.html上的一些链接可能很方便……

#2


4  

I Found a couple of links too...Not sure if it would help you...

我也找到了一些链接……不确定是否能帮到你……

http://code.google.com/p/android-playground-erdao/source/browse/#svn/trunk/SnapFace

http://code.google.com/p/android-playground-erdao/source/browse/ svn /箱子/ SnapFace

http://code.google.com/p/jjil/

http://code.google.com/p/jjil/

http://benosteen.wordpress.com/2010/03/03/face-recognition-much-easier-than-expected/

http://benosteen.wordpress.com/2010/03/03/face-recognition-much-easier-than-expected/

#3


0  

have a look at this: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1562271

看看这个:http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?

I think I once saw some matlab code doing this in a presentation. Maybe it's somewhere online.

我记得我在一次演示中见过一些matlab代码。也许是在线的地方。

Greetings, Lars

问候,拉尔斯