Android的FaceDetector的基础技术 [英] Underlying technique of Android's FaceDetector

查看:354
本文介绍了Android的FaceDetector的基础技术的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我实现在Android脸跟踪,并作为文献研究,希望找出Android的FaceDetector的基础技术。

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.media.FaceDetector 分类作品

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

一个简单的谷歌搜索没有取得任何资料,所以我想我会看看在code。

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

通过查看Java源代码code,<一个href="https://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/java/android/media/FaceDetector.java"><$c$c>FaceDetector.java,没有太多的要学习: FaceDetector 仅仅是被提供的图像尺寸和面数的一类,然后返回面的阵列

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.

在Android源包含JNI code该类。我跟着通过函数调用,其中,减少到最基本的要素,我学到了:

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

  1. 在FaceFinder在<创建的href="https://android.git.kernel.org/?p=platform/external/neven.git;a=blob;f=FaceRecEm/common/src/b_FDSDK/FaceFinder.c;h=b24ac111f98dd5a580849adb72c434a36479b135;hb=HEAD#l75"><$c$c>FaceFinder.c:75
  2. 在90行, bbs_MemSeg_alloc 返回 btk_HFaceFinder 对象(其中包含的功能,真正找到面),基本上复制它的 hsdkA-&GT; contextE.memTblE.espArrE 中初始化初始化原 btk_HSDK 对象的数组()( <一href="https://android.git.kernel.org/?p=platform/external/neven.git;a=blob;f=FaceDetector_jni.cpp;h=03bd908bed10527a782b9d74770ffc9be2f4aeb4;hb=HEAD#l145"><$c$c>FaceDetector_jni.cpp:145)通过 btk_SDK_create()
  3. 在它看来,功能迷宫相互提供 btk_HSDK 的指针和实例,但我无处可以找到 sdk-的具体实例&GT; contextE.memTblE.espArrE [0] ,理应包含魔术
  1. The "FaceFinder" is created in FaceFinder.c:75
  2. 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()
  3. 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.

我什么的有无的发现,是一个小线索:JNI code引用FFTEm库,我无法找到源$ C ​​$下。通过它的外观,但是,FFT是快速傅立叶变换的,这可能是一起有pre训练神经网络中使用。唯一的文学,我可以发现,对准这个理论是一纸由本 - 雅各布等人。

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.

我甚至不真正了解,如果我在正确的道路上设置的,所以在所有的任何建议,无疑将有所帮助。

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

编辑:我添加了一个+100赏金任何人谁可以给任何见解

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

推荐答案

我在手机上,所以不能广泛响应,但谷歌的关键字内文视觉算法拉了一些有用的论文......

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

此外,美国专利6222939涉及。

Also, US patent 6222939 is related.

可能还有些上的http://peterwilliams97.blogspot.com/2008/09/google-picasa-to-have-face-recognition.html可能是方便......

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

这篇关于Android的FaceDetector的基础技术的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆