当前位置:   article > 正文

讯飞人脸在线识别_讯飞 人脸比对 ret" : 20001

讯飞 人脸比对 ret" : 20001

官网文档:http://doc.xfyun.cn/msc_android/299548

讯飞的人脸识别注册和验证都包含了两个参数,一是账户ID二是待注册或者待验证的人脸图片;注意这里用的是图片的二进制流,并不是采用的摄像头等硬件实时扫描,sdk也不提供真人或者图片的验证即无法辨别用户是否在使用别人的照片在欺骗程序,相对应的安全性是无法得到保障的,那么这一套sdk方案的应用场景在哪,其实很明显就是有人员管理的门禁或者打卡验证服务。好了说了这么多废话,下面正式进入使用模式微笑

一,注册功能

  1. // FaceRequest对象,集成了人脸识别的各种功能
  2. private FaceRequest face = new FaceRequest(this);
  3. //EditText获取用户录入的Id
  4. mAuthid = editText.getText().toString();
  5. if (TextUtils.isEmpty(mAuthid)) {
  6. showTip("authid不能为空");
  7. return;
  8. }
  9. if (null != mImageData) {
  10. // 设置用户标识,格式为6-18个字符(由字母、数字、下划线组成,不得以数字开头,不能包含空格)。
  11. // 当不设置时,云端将使用用户设备的设备ID来标识终端用户。
  12. face.setParameter(SpeechConstant.AUTH_ID, mAuthid);
  13. face.setParameter(SpeechConstant.WFR_SST, "reg");
  14. ret = face.sendRequest(mImageData, mRequestListener);
  15. } else {
  16. showTip("请选择图片后再注册");
  17. }
  1. //注册结果
  2. if (ErrorCode.SUCCESS != ret) {
  3. showTip("出现错误:" + ret);
  4. }

  1. private RequestListener mRequestListener = new RequestListener() {
  2. //事件回调 用于接收扩展事件消息的函数。
  3. @Override
  4. public void onEvent(int eventType, Bundle params) {
  5. Log.e("FaceActivity", "事件类型" + eventType);
  6. }
  7. //结果数据回调 此函数可能回调多次,但在onCompleted(com.iflytek.cloud.SpeechError)回调错误时,将不回调此函数。
  8. @Override
  9. public void onBufferReceived(byte[] buffer) {
  10. try {
  11. String result = new String(buffer, "utf-8");
  12. Log.d("FaceDemo", result);
  13. JSONObject object = new JSONObject(result);
  14. String type = object.optString("sst");
  15. if ("reg".equals(type)) {
  16. register(object);
  17. } else if ("verify".equals(type)) {
  18. verify(object);
  19. }
  20. } catch (Exception e) {
  21. // TODO: handle exception
  22. }
  23. }
  24. //结束回调 回调此函数时,会话完成,若会话有错误,则通过参数1返回错误信息。
  25. @Override
  26. public void onCompleted(SpeechError error) {
  27. if (error != null) {
  28. switch (error.getErrorCode()) {
  29. case ErrorCode.MSP_ERROR_ALREADY_EXIST:
  30. showTip("authid已经被注册,请更换后再试");
  31. break;
  32. default:
  33. showTip(error.getPlainDescription(true));
  34. break;
  35. }
  36. }
  37. }
  38. };

二,认证功能

  1. //获取待认证id
  2. mAuthid = editText.getText().toString();
  3. if (TextUtils.isEmpty(mAuthid)) {
  4. showTip("authid不能为空");
  5. return;
  6. }
  7. if (null != mImageData) {
  8. // 设置用户标识,格式为6-18个字符(由字母、数字、下划线组成,不得以数字开头,不能包含空格)。
  9. // 当不设置时,云端将使用用户设备的设备ID来标识终端用户。
  10. face.setParameter(SpeechConstant.AUTH_ID, mAuthid);
  11. face.setParameter(SpeechConstant.WFR_SST, "verify");
  12. ret = face.sendRequest(mImageData, mRequestListener);
  13. } else {
  14. showTip("请选择图片后再验证");
  15. }


三,拍照并回调照片二进制数据

  1. // 设置相机拍照后照片保存路径
  2. mPictureFile = new File(Environment.getExternalStorageDirectory(), "picture" + System.currentTimeMillis() / 1000 + ".jpg");
  3. // 启动拍照,并保存到临时文件
  4. Intent mIntent = new Intent();
  5. mIntent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
  6. mIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPictureFile));
  7. mIntent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
  8. startActivityForResult(mIntent, REQUEST_CAMERA
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/482211
推荐阅读
相关标签
  

闽ICP备14008679号