2016-07-15 184 views
0

我正在为考勤系统创建一个安卓应用程序,在该应用程序中,我会在检测到人脸时尽快捕获照片。我能够做到这一点,但只有一个问题,这个系统可能伪造员工的照片,因为现在没有活力检查。如何检查安卓人脸检测中的人脸检测

mCamera.setFaceDetectionListener(new Camera.FaceDetectionListener(){ 
    @Override 
    public void onFaceDetection(final Camera.Face[]faces,Camera camera){ 
     if(faces!=null&&faces.length>0){ 
      try{ 
       if(lastCaptureTiume+10000<=System.currentTimeMillis()){ 

        mCamera.takePicture(null,null,jpegCallback); 
        lastCaptureTiume=System.currentTimeMillis(); 
       } 
      } 
      catch(Exception e) 
      { 
      } 
     } 
    }); 
} 

在jpegCallback上,我正在检查面部并裁剪它以便进一步处理。

我搜索了一些活泼的样本,但没有运气,如果有人知道我如何实现活力,请帮助。

回答

0

您可以依次拍摄多张照片并查看它们是否以非显而易见的方式变化(例如,无翻译或旋转)。

的问题是,如果你担心游戏的系统,它是现在呈现一个画面到系统是可行的,没有什么能够阻止别人​​来呈现平板或电子书阅读器,足够聪明,可以向系统显示一个简短的动画。

如果可能的话,它可能会更富有成果,可能从不同的视角拍摄全身照片。这一切都取决于Android应用程序的运行位置(例如自动徽章展位)。如果它在与会者的手机上运行,​​并且想要确定他的身份,恐怕你不能。

使用Android version 5,您可以尝试使用脸部的z扫描。在几架飞机上迅速聚焦,在平截头体中相隔5厘米。如果脸部贴在三维头骨上,你会“看到”一个聚焦区域从鼻子向外同心移动。除非你有一个真正平坦的脸的参加者。您必须以随机距离聚焦两到三次,以便人员不会离开相机进行补偿。为了估计聚焦,你可以尝试使用图像中的局部变化。

当然,这将限制您的应用将兼容的模型。