关于camera2人脸识别机制的信息不足.我使用了Google的Camera2示例: android-Camera2Basic
我将人脸识别模式设置为FULL.
mPreviewRequestBuilder.set(CaptureRequest.STATISTICS_FACE_DETECT_MODE,
CameraMetadata.STATISTICS_FACE_DETECT_MODE_FULL);
Run Code Online (Sandbox Code Playgroud)
我也查了一下
STATISTICS_INFO_MAX_FACE_COUNT并且STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES:
int max_count = characteristics.get(
CameraCharacteristics.STATISTICS_INFO_MAX_FACE_COUNT);
int modes [] = characteristics.get(
CameraCharacteristics.STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES);
Run Code Online (Sandbox Code Playgroud)
输出:maxCount:5,模式:[0,2]
我的CaptureCallback:
private CameraCaptureSession.CaptureCallback mCaptureCallback
= new CameraCaptureSession.CaptureCallback() {
private void process(CaptureResult result) {
Integer mode = result.get(CaptureResult.STATISTICS_FACE_DETECT_MODE);
Face [] faces = result.get(CaptureResult.STATISTICS_FACES);
if(faces != null && mode != null)
Log.e("tag", "faces : " + faces.length + " , mode : " + mode );
}
@Override
public void onCaptureProgressed(CameraCaptureSession session, CaptureRequest request,
CaptureResult partialResult) {
process(partialResult); …Run Code Online (Sandbox Code Playgroud) 我想使用Face Unlock作为我的应用程序的第二个因素,因为我的大多数用户都不会使用密码锁定他们的手机.
是否有Android API可以在Android应用中集成Face Unlock?
有用于照片识别的人脸检测API,但我找不到可用于离线场景的API,特别是在应用程序中的其他因素.
如果你需要一个真实世界的例子,假设这是一个密码管理器,或者电话将被借给孩子......并且所有者永远不会锁定电话.面部解锁将确保他们需要私密的东西.
security android face-recognition password-protection android-support-library
我正在开发面部认证的C++应用程序.首先,我必须检测面部并预处理图像.
有人能指出一些面部识别库和算法的正确方向吗?我试过搜索/谷歌搜索,但我主要找到论文和很少的真实软件.
我正在尝试在Android上开发一个Face Recognition应用程序,因为我不想在项目上使用NDK(只是没有时间切换),我坚持使用Java开发整个应用程序,因此我遇到了一些问题:
似乎Contrib模块不包含在OpenCV 2.4.2中.无论如何在项目中使用它?
我尝试使用JavaCV来使用Contrib Module的"FaceRecognizer"类.有两个类可用,称为"FaceRecognizer"和"FaceRecognizerPtr".有谁知道这两者之间的区别是什么?
上面提到的类有一个叫做"Train"的方法,它在(C++中)接收两个类型为"Mat&Integer"(model->train(images,labels) & train(Vector<mat> theImages, Vector<int> theLabels)的向量.我尝试ArrayList<mat> & ArrayList<integer>在Java中传递它们和向量,但似乎该方法明确接受"CvArr"数据类型,我不知道如何获取...这是错误:
opencv_contrib.FaceRecognizer类型中的方法train(opencv_core.CvArr,opencv_core.CvArr)不适用于参数(ArrayList,ArrayList)
有谁知道如何将我的ArrayList更改为CvArr?
这是我的第一篇文章,我不确定是在一个帖子还是在三个帖子中提出所有三个问题,对于给您带来的任何不便表示遗憾...如果您需要有关该项目的任何其他信息,请随时提出.
在我的应用程序中,我尝试使用Open CV在特定图像上进行人脸识别,这里我首先训练一个图像,然后在训练该图像后,如果我在该图像上进行人脸识别,则它成功地识别出该训练过的人脸。但是,当我转向同一个人的另一张照片时,识别不起作用。它仅适用于经过训练的图像,所以我的问题是如何纠正它?
更新:我要做的是用户应该从存储中选择一个人的图像,然后在训练了所选图像之后,我想从存储中获取与我训练过的图像相匹配的所有图像。
这是我的活动课:
public class MainActivity extends AppCompatActivity {
private Mat rgba,gray;
private CascadeClassifier classifier;
private MatOfRect faces;
private ArrayList<Mat> images;
private ArrayList<String> imagesLabels;
private Storage local;
ImageView mimage;
Button prev,next;
ArrayList<Integer> imgs;
private int label[] = new int[1];
private double predict[] = new double[1];
Integer pos = 0;
private String[] uniqueLabels;
FaceRecognizer recognize;
private boolean trainfaces() {
if(images.isEmpty())
return false;
List<Mat> imagesMatrix = new ArrayList<>();
for (int i = 0; i < images.size(); i++)
imagesMatrix.add(images.get(i));
Set<String> uniqueLabelsSet = …Run Code Online (Sandbox Code Playgroud) 我最近实现了一些面部对齐算法.我看过以下文件:
所有论文都提到了一个重要的关键词:shape-indexed-feature或pose-indexed-feature.此功能在面部对齐过程中起着关键作用.我没有得到这个功能的关键点.为什么这么重要?
我正在开发一个与安全相关的项目,需要检查是否检测到任何面部,如果检测到面部然后执行某些操作,如果未检测到面部则关闭应用程序.
一切都是完美的工作,我正在使用SurfaceView它实现,SurfaceHolder.Callback并在开放的相机和相机有一个方法名称是startFaceDetection使用这种方法我检测到脸.
代码供参考
public class SurfaceViewPreview extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;
public SurfaceViewPreview(Context context, AttributeSet attrs) {
super(context, attrs);
setWillNotDraw(false);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder) {
try {
if (Camera.getNumberOfCameras() <= 0 || ContextCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED)
return;
mCamera = Camera.open(0);
mCamera.setPreviewDisplay(mHolder);
} catch (Exception e) {
e.printStackTrace();
if (this.mCamera != null) {
this.mCamera.release();
this.mCamera = null;
}
}
}
public void surfaceDestroyed(SurfaceHolder …Run Code Online (Sandbox Code Playgroud)