首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

全网首发:Android Camera2 集成人脸识别算法

这篇文章将针对下面几点展开介绍: 一、Android平台人脸识别流程图 二、ArcSoft人脸识别算法sdk下载 三、Camera2 API 集成 ArcSoft人脸识别算法 一、Android平台人脸识别流程图...介绍完了官方的demo,那接下来我们看下采用Android Camera2 的api,如何去集成arcsoft的人脸识别算法呢。...1、如下面代码块所示,arcsoft 官方demo采用的是Camera1的api接口,设置的预览数据的回调,回调的直接就是nv21的byte[]数据,然后再把byte[]数据送进去算法处理。...格式,然后再送进arcsoft的人脸检测算法中进行处理 Camera1 接口上,设置预览数据回调后,回调的直接就是nv21格式的数据,相对来说会比Camera2上的处理会简单很多。...不过Android 目前已经不再对Camera旧的架构进行维护,而且目前主流的手机采用的基本上也都是Camera2的接口。所以我们还是非常有必要熟悉掌握Camera2的各种使用。

1.2K10

全网首发:Android Camera2 集成人脸识别算法

这篇文章将针对下面几点展开介绍: 一、Android平台人脸识别程图 二、ArcSoft人脸识别算法sdk下载 三、Camera2 API 集成 ArcSoft人脸识别算法 一、Android平台人脸识别流程图...人脸识别流程图基本如下图所示,用一句话来说就是获取camera数据,送到算法中进行识别,最后显示识别结果。...1、如下面代码块所示,arcsoft 官方demo采用的是Camera1的api接口,设置的预览数据的回调,回调的直接就是nv21的byte[]数据,然后再把byte[]数据送进去算法处理。...我们先来看下我自己写的demo效果图: 下面来讲解下代码实现的主要步骤: (不熟悉Camera2接口的同学,建议先找一篇关于Camera2 API的文章先了解下,关于Camera2,我自己前面也写过算是比较详细的文章介绍...Camera1 接口上,设置预览数据回调后,回调的直接就是nv21格式的数据,相对来说会比Camera2上的处理会简单很多。

2K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android移动直播,自定义采集视频数据推流

    解决方案 Android5.0以上,通过camera2采集YUV_420_888 不再调用 TXLivePusher 的 startCameraPreview 接口。...在摄像机的预览回调onImageAvailable()中,获取到 YUV_420_888 格式的视频数据,然后将 YUV_420_888 格式转码为 I420 格式,再使用 sendCustomVideoData...在摄像机的预览回调onPreviewFrame()中,获取到 NV21 格式的视频数据,然后将 NV21 格式转码为 I420 格式,再使用 sendCustomVideoData 向SDK填充您采集和处理后的...) { // 假设摄像机获取的视频格式是 NV21, 预览画面大小为 1280X720 // 即宽度 mPreviewWidth 值为1280,高度 mPreviewHeight 值为...camera2在获取摄像机预览宽高前,请先检测手机支持的分辨率,如果指定分辨率与支持的分辨率不一致,会获取到比指定分辨率小的画面,sendCustomVideoData时要以实际预览画面的宽高为准。

    5K102

    【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )

    关于手机端的开发流程 : ① 首先实现 Camera 采集图像数据 : 【Android RTMP】Android Camera 视频数据采集预览 ( 视频采集相关概念 | 摄像头预览参数设置 | 摄像头预览数据回调接口...) 【Android RTMP】Android Camera 视频数据采集预览 ( 图像传感器方向设置 | Camera 使用流程 | 动态权限申请 ) 【Android RTMP】Android Camera...视频数据采集预览 ( 图像传感器方向设置 | Camera 使用流程 | 动态权限申请 ) ② 理解 NV21 格式的图像数据 : 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析...将 NV21 格式的图像数据编码为 H.264 格式的图像数据 : 【Android RTMP】x264 编码器初始化及设置 ( 获取 x264 编码参数 | 编码规格 | 码率 | 帧率 | B帧个数...| 关键帧间隔 | 关键帧解码数据 SPS PPS ) Android RTMP】x264 图像数据编码 ( Camera 图像数据采集 | NV21 图像数据传到 Native 处理 | JNI 传输字节数组

    3.2K10

    Android 人脸识别之人脸注册

    格式的 Byte 数组,因为我们使用的sdk只能处理 NV21 格式的数据,NV21 格式限制高度不能为奇数; mBitmap = Application.decodeImage(mFilePath)...; //创建字节数组 大小由拍照传来的图片尺寸决定 byte[] data = new byte[mBitmap.getWidth() * mBitmap.getHeight() * 3 / 2]; try...{ //将bitmap转换成nv21,结果保存到data数组中 ImageConverter convert = new ImageConverter(); convert.initial...数据数组,传入图片的宽度、高度、NV21、探测结果 err = engine.AFD_FSDK_StillImageFaceDetection(data, mBitmap.getWidth(), mBitmap.getHeight...第三步: 经过上述的两部,我们已经成功的从图片中识别到了人脸,并且将该人脸在图片中的位置获取到了,接下来我们要做的就是使用 FR 人脸识别引擎识别该位置人脸中的特征信息。 if (!

    24.8K30

    一篇文章带你了解Android 最新Camera框架

    从Android 5.0开始,Google 引入了一套全新的相机框架 Camera2(android.hardware.camera2)并且废弃了旧的相机框架 Camera1(android.hardware.Camera...下面这张来自官方的图展示了 Pipeline 的工作流程,我们会通过一个简单的例子详细解释这张图。...整个拍摄流程如下: 创建一个用于从 Pipeline 获取图片的 CaptureRequest。 修改 CaptureRequest 的闪光灯配置,让闪光灯在拍照过程中亮起来。...每一个 Surface 都可以有自己的尺寸和数据格式,你可以从 CameraCharacteristics 获取某一个数据格式支持的尺寸列表。...需要注意的是,CaptureResult 并不包含任何图像数据,前面我们在介绍 Surface 的时候说了,图像数据都是从 Surface 获取的。

    1.8K41

    Android相机应用基本功能实现

    ——实现预览、拍照、保存照片等功能 Android: Camera相机开发详解(下) —— 实现人脸检测功能 Camera2架构概述 Camera2引用了管道的概念将安卓设备和摄像头之间联通起来,系统向摄像头发送...Camera2预览流程图 Camera2拍照流程图 Camera2录像流程图 Camera2中比较重要的类及方法 CameraManager 摄像头管理器,用于打开和关闭系统摄像头 getCameraIdList...这个数组的大小跟图片的格式有关,如 JPEG格式数组大小为1 Plane 图像数据的单色平面 **getBuffer()**:获取包含帧数据的ByteBuffer。...下面是我的手机跑起来时打印的日志 **注意 :**Camera2在一些低端机器上会出现预览画面拉伸问题。...在android 5.0,硬件兼容级别为legacy时,Camera2输出的宽高比和Camera Sensor保持一致。

    2K31

    一篇文章带你了解Android 最新Camera框架

    从Android 5.0开始,Google 引入了一套全新的相机框架 Camera2(android.hardware.camera2)并且废弃了旧的相机框架 Camera1(android.hardware.Camera...下面这张来自官方的图展示了 Pipeline 的工作流程,我们会通过一个简单的例子详细解释这张图。 ?...整个拍摄流程如下: 1.创建一个用于从 Pipeline 获取图片的 CaptureRequest。2.修改 CaptureRequest 的闪光灯配置,让闪光灯在拍照过程中亮起来。...每一个 Surface 都可以有自己的尺寸和数据格式,你可以从 CameraCharacteristics 获取某一个数据格式支持的尺寸列表。...需要注意的是,CaptureResult 并不包含任何图像数据,前面我们在介绍 Surface 的时候说了,图像数据都是从 Surface 获取的。 11) Request的整体处理流程 ?

    3.5K30

    你知道RGB,那你知道什么是YUV么?

    Camera2),不过项目中还在使用,这个不是重点。...其中,onPreviewFrame方法传回的byte数组,默认数据格式为 YCbCr_420_SP (NV21) 格式,这个才是重点。 所以 YCbCr 是什么?420 是什么?SP 是什么?...在 Android 中,接口返回的数据是以一维byte 数组存储,但是为了好理解,将一维的 byte 数组按照图片宽高,进行宽高抽象化,在文章中显示。这样好和图片实体对应,便于理解。...如果这样旋转,则会导致每一行数据排列错误,UV 和 Y 混排;而从内存的角度来看,数据是用数组存储的,这样的旋转会让原本连续的Y断开 - U1 V1 Y13 Y9 Y5 Y1 U2 V2 ......对于镜像,我们也可以按照上述的方法,一个一个字节的对应找规律。

    2.8K31

    Android Camera2

    image.png 从 Android 5.0 开始,Google 引入了一套全新的相机框架 Camera2(android.hardware.camera2)并且废弃了旧的相机框架 Camera1...下面这张来自官方的图展示了 Pipeline 的工作流程,我们会通过一个简单的例子详细解释这张图。...每一个 Surface 都可以有自己的尺寸和数据格式,你可以从 CameraCharacteristics 获取某一个数据格式支持的尺寸列表。...需要注意的是,CaptureResult 并不包含任何图像数据,前面我们在介绍 Surface 的时候说了,图像数据都是从 Surface 获取的。...12 一些从 Camera1 迁移到 Camera2 的建议 如果你熟悉 Camera1,并且打算从 Camera1 迁移到 Camera2 的话,希望以下几个建议可以对你起到帮助: Camera1 严格区分了预览和拍照两个流程

    2.2K51

    Android 端相机相关开发经验总结

    首先,Android系统目前已经提供了两套Camera API,其中Camera 2 API是从Android 5.0(API Level 21)开始提供的。...因为TextureView是从Android 4.0(API level 14)开始才有的(TexturView算是SurfaceView的一个增强版),所以在Android 4.0之后使用的是TextureViewPreview...是为Android 5.0(API level 21)及以上系统提供的,Camera2Api23继承自Camera2,是为Android 6.0(API level 23)及以上系统提供的。...相机权限 众所周知,从Android 6.0开始,Android系统引入了动态权限的机制,所以如果你的应用的targetSDK设置在23及以上的话,你需要在运行的时候检查相机权限是否授予了,如果没有授予的话就要申请...cameraview的代码你会发现,这不算是cameraview的锅,拍照(takePicture)的时候最终会回调onPictureTaken方法,其参数是byte[] data,一般情况下我们都只是将这个字节数组保存到某个文件中即可得到拍照的图片

    3.9K30

    播放器基础--YUV色彩模型

    做过camera, 播放器,图片处理的对YUV都不会陌生,但是关于YUV有很多的格式YUV420, NV21, YUV420sp, YV12等等往往令人混乱 介绍 YUV色彩模型利用人类视觉对亮度的敏感度比对色度的敏感度高的特点获得较...Y信号分量为黑白灰度图。U、V信号分量为单色彩色图。如果只需获取灰度图,只要获取Y分量就好了. YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。...VV的顺序(UV的顺序可能会调换) YUV420SP: Y是planer格式, UV是packet格式,即 YYYY YYYY UV UV的顺序(UV的顺序可能会调换) 常见的代码中YUV格式定义 NV21..., 即 YYYY YYYY VV UU YU12: 属于YUV420p, 即 YYYYYYYY UUVV YUV_420_888 Android camera2引入了这个格式,解析起来比较复杂点....其他人的博客有关于YUV_420_888的讲解,这里转一下 Android: Image类浅析(结合YUV_420_888) 内存空间的计算 以yuv420为例 Y = width * height

    1K30

    Android人脸识别之识别人脸特征

    其中嘉宾有《Android群英传》系列作者徐宜生、今日头条高级工程师月亮和六便士、阿里巴巴无线技术专家辰星。加入星球可以7折购买签名版《Android进阶之光》续作。更多福利请扫描下方二维码了解。...第一步: 创建两个叠加在一起的 SurfaceView,一个用于显示摄像头的预览信息,一个用于框出摄像头预览中人脸的位置; //覆盖在相机预览之上的一层surfaceview mGLSurfaceView...,该数据为NV21格式 byte数组 //调用FT人脸追踪引擎的人脸特征查明方法,结果保存到List result AFT_FSDKError err = engine.AFT_FSDK_FaceFeatureDetect...流程是这样的 提取图片中的人脸 → 与我们已经注册过得特征集合进行特征匹配 → 匹配程度最高的作为最终识别结果 这一过程是放在一个子线程中运行的,代码如下: //人脸识别线程 class FRAbsLoop...这里在废话几句:FD与FT引擎功能大致相同,完成的都是从一个 NV21 格式的图片 byte 数组中检测识别出人脸的位置 Rect 与角度信息。

    18.9K30

    Camera的预览帧率是如何设置的

    在不同的应用场景中,可能会有调整预览帧率的时候,比如客户需要录制的视频固定在24帧,或者需要优化Camera功耗(抖音功耗优化实践) (来自字节跳动技术团队的抖音功耗优化实践) 本篇文章分别从Camera1...和Camera2两套API来说明如何调整相机预览帧率 Camera1 getSupportedPreviewFpsRange: 获取设备支持的fps range 总结下来有两个关键点: 每个Range...值必须来自support list 帧率的设置需要在startPreview之前 如下是笔者的手机相机支持的fps range情况,可以看到最大的动态范围为【8,30】,最大的固定帧率为【30,30】 Camera2...CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES: 通过该Tag获取支持的fps range CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE...: 通过该Tag设置预览fps range 示例如下: 可以看到通过Camera2 API获取的fps range是没有乘以1000的 关于高帧率的设置,比如【240,240】,可以参考Android

    3.5K31
    领券