当前位置: 首页 > news >正文

学风建设网站可以发描文本的网站

学风建设网站,可以发描文本的网站,郑州做网站好,做视频up主视频网站这可能是全网唯一一篇介绍Android Camera2接口集成人脸算法的文章了~ 写在前面#xff1a; 说起人脸识别#xff0c;相信大家都不会感到陌生#xff0c;在我们平时的工作生活中#xff0c;人脸打卡、刷脸支付等等已经是应用的非常广泛了#xff0c;人脸识别也给我们的生活… 这可能是全网唯一一篇介绍Android Camera2接口集成人脸算法的文章了~ 写在前面 说起人脸识别相信大家都不会感到陌生在我们平时的工作生活中人脸打卡、刷脸支付等等已经是应用的非常广泛了人脸识别也给我们的生活带来了极大的便利。 这篇文章的目的是让大家了解熟悉Android平台上人脸算法集成的基本流程针对应用层的集成。相信读完这篇文章后大家会觉的原来集成人脸识别算法也是so easy。 这篇文章将针对下面几点展开介绍 一、Android平台人脸识别流程图 二、ArcSoft人脸识别算法sdk下载 三、Camera2 API 集成 ArcSoft人脸识别算法 一、Android平台人脸识别流程图 人脸识别流程图基本如下图所示。 用一句话来说就是获取camera数据送到算法中进行识别最后显示识别结果。 二、ArcSoft人脸识别算法sdk下载 人脸识别算法很多如果是高通平台高通也是有一套人脸识别算法的。我这里选择的是arcsoft的识别算法这个目前是免费的而且相对来说算法效果也还不错。 接下来我们看下如何去获取arcsoft的人脸识别sdk。 1登录arcsoft官网然后选择进入开发者中心。 https://ai.arcsoft.com.cn/ 2注册并登录开发者中心后在开发者中心界面我们选择“新建应用”然后勾选人脸识别功能。 如下图所示我创建的应用是“CameraDemo”。这个界面的APP_ID 和SDK_KEY我们后面代码里面需要用到。这个界面还有个“下载SDK”的按钮点击就可以下载我们需要的sdk demo。 3Demo下载下来后我们先跑下arcsoft官方Demo看下效果。 我们选择人脸检测属性(视频)。如下图所示效果还不错我们可以看到识别出来的信息里面包含了性别、年龄、是否是真人这些基本信息。 三、Camera2 API 集成 ArcSoft人脸识别算法 通过上面的2步大家有没觉的集成人脸识别还是蛮简单的。介绍完了官方的demo那接下来我们看下采用Android Camera2 的api如何去集成arcsoft的人脸识别算法呢。 1、如下面代码块所示arcsoft 官方demo采用的是Camera1的api接口设置的预览数据的回调回调的直接就是nv21的byte[]数据然后再把byte[]数据送进去算法处理。 private void initCamera() {DisplayMetrics metrics new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);CameraListener cameraListener new CameraListener() {Overridepublic void onCameraOpened(Camera camera, int cameraId, int displayOrientation, boolean isMirror) {previewSize camera.getParameters().getPreviewSize();drawHelper new DrawHelper(previewSize.width, previewSize.height, previewView.getWidth(), previewView.getHeight(), displayOrientation, cameraId, isMirror, false, false);}Overridepublic void onPreview(byte[] nv21, Camera camera) {if (faceRectView ! null) {faceRectView.clearFaceInfo();}ListFaceInfo faceInfoList new ArrayList();int code faceEngine.detectFaces(nv21, previewSize.width, previewSize.height, FaceEngine.CP_PAF_NV21, faceInfoList);if (code ErrorInfo.MOK faceInfoList.size() 0) {code faceEngine.process(nv21, previewSize.width, previewSize.height, FaceEngine.CP_PAF_NV21, faceInfoList, processMask);if (code ! ErrorInfo.MOK) {return;}} else {return;}ListAgeInfo ageInfoList new ArrayList();ListGenderInfo genderInfoList new ArrayList();ListFace3DAngle face3DAngleList new ArrayList();ListLivenessInfo faceLivenessInfoList new ArrayList();int ageCode faceEngine.getAge(ageInfoList);int genderCode faceEngine.getGender(genderInfoList);int face3DAngleCode faceEngine.getFace3DAngle(face3DAngleList);int livenessCode faceEngine.getLiveness(faceLivenessInfoList);// 有其中一个的错误码不为ErrorInfo.MOKreturnif ((ageCode | genderCode | face3DAngleCode | livenessCode) ! ErrorInfo.MOK) {return;}if (faceRectView ! null drawHelper ! null) {ListDrawInfo drawInfoList new ArrayList();for (int i 0; i faceInfoList.size(); i) {Log.v(TAG,---faceInfoList.get(i).getRect():faceInfoList.get(i).getRect());drawInfoList.add(new DrawInfo(drawHelper.adjustRect(faceInfoList.get(i).getRect()), genderInfoList.get(i).getGender(), ageInfoList.get(i).getAge(), faceLivenessInfoList.get(i).getLiveness(), RecognizeColor.COLOR_UNKNOWN, null));}drawHelper.draw(faceRectView, drawInfoList);}}} 2、接下来我们要介绍的是使用Camera2接口如何集成arcsoft的人脸识别算法。 我们先来看下我自己写的demo效果图 下面来讲解下代码实现的主要步骤 不熟悉Camera2接口的同学建议先找一篇关于Camera2 API的文章先了解下关于Camera2,我自己前面也写过算是比较详细的文章介绍也欢迎大家阅读 i、初始化imageReader。 mImageReader ImageReader.newInstance(mPreviewSize.getWidth(), mPreviewSize.getHeight(),ImageFormat.YUV_420_888, 2);mImageReader.setOnImageAvailableListener(mOnImageAvailableListener, mBackgroundHandler); ii、创建session的时候把imagerReader的surface也add进去。 这样我们就能拿到实时的视频流。 mPreviewRequestBuilder.addTarget(mImageReader.getSurface()); mCameraDevice.createCaptureSession(Arrays.asList(surface, mImageReader.getSurface()),new CameraCaptureSession.StateCallback() {} iii、在imageReader的实时流回调里面我们需要把接收到的YUV_420_888的数据先转换成nv21格式然后再送进arcsoft的人脸检测算法中进行处理 Camera1 接口上设置预览数据回调后回调的直接就是nv21格式的数据相对来说会比Camera2上的处理会简单很多。 不过Android 目前已经不再对Camera旧的架构进行维护而且目前主流的手机采用的基本上也都是Camera2的接口。所以我们还是非常有必要熟悉掌握Camera2的各种使用。 private final ImageReader.OnImageAvailableListener mOnImageAvailableListener new ImageReader.OnImageAvailableListener() {Overridepublic void onImageAvailable(ImageReader reader) {Image image reader.acquireLatestImage();if(image null){return;}synchronized (mImageReaderLock) {if(!mImageReaderLock.equals(1)){Log.v(TAG, --- image not available,just return!!!);image.close();return;}if (ImageFormat.YUV_420_888 image.getFormat()) {Image.Plane[] planes image.getPlanes();lock.lock();if (y null) {y new byte[planes[0].getBuffer().limit() - planes[0].getBuffer().position()];u new byte[planes[1].getBuffer().limit() - planes[1].getBuffer().position()];v new byte[planes[2].getBuffer().limit() - planes[2].getBuffer().position()];}if (image.getPlanes()[0].getBuffer().remaining() y.length) {planes[0].getBuffer().get(y);planes[1].getBuffer().get(u);planes[2].getBuffer().get(v);if (nv21 null) {nv21 new byte[planes[0].getRowStride() * mPreviewSize.getHeight() * 3 / 2];}if(nv21 ! null (nv21.length ! planes[0].getRowStride() * mPreviewSize.getHeight() *3/2)){return;}// 回传数据是YUV422if (y.length / u.length 2) {ImageUtil.yuv422ToYuv420sp(y, u, v, nv21, planes[0].getRowStride(), mPreviewSize.getHeight());}// 回传数据是YUV420else if (y.length / u.length 4) {ImageUtil.yuv420ToYuv420sp(y, u, v, nv21, planes[0].getRowStride(), mPreviewSize.getHeight());}//调用Arcsoft算法,绘制人脸信息drawFaceInfo(nv21);}lock.unlock();}}image.close();}}; 这篇文件介绍的是针对应用层上的人脸算法集成。 现在很多手机厂商人脸算法有一部分是在hal层完成的。比如美颜算法这些直接就是在hal层完成的了这样处理效率会更高。 《Android Camera开发入门》、《Camx初认识》已经上架可以点击了解 - 小驰成长圈 期待见证彼此的成长  觉得不错点个赞呗
http://www.zqtcl.cn/news/260425/

相关文章:

  • 高密建网站龙门城乡规划建设局网站
  • 阿里云从哪里建设网站企业设计网站公司排名
  • 长春做网站推广的公司公司要做个网站吗
  • 天水 网站建设招聘个人网站建设的国外文献综述
  • 什么网站做推广最好建行网站用户名是什么
  • 网站建设和维护需要学的东西服务器学生
  • 电子工厂网站建设企业管理咨询报告
  • 敖汉旗网站建设网站建设班级通讯录
  • 把手机做网站服务器做网站商丘
  • 婚恋咨询网站运营做速卖通代码的网站
  • 网站建设流程有哪七步c语言做的网站有什么优缺点
  • 树在线网页制作网站邢台中北世纪城网站兼职
  • 备案网站建设方案模板怎么看网站域名
  • asp iis设置网站路径效果好网站建设哪家好
  • 河南做外贸网站的公司大连在哪个省的什么位置
  • 网站架构怎么做wordpress e-commerce themes
  • 哪些网站微信支付平台经营管理系统
  • 教育教学成果展示网站建设桂林网站开发公司
  • 唐山房产网站建设asp.net 网站压缩
  • 卫浴网站设计大型网站建设的必须条件
  • 肇庆制作企业网站seo网站建设课程
  • 没有公司自己做网站wordpress lms插件
  • 申请一个网站需要怎么做北京网络公司信息
  • 珠海市建设局网站分销系统价格多少
  • 杭州建网站企业seo营销工具
  • php旅游类网站开发wordpress 文章内
  • 企业管理外贸企业网站优化
  • 免费图纸网东莞百度快照优化排名
  • 南宁网站建设培训学校青海网站建设加q5299丶14602做词
  • 鱼台做网站多少钱wordpress pot