ARM,MIPS64,X86下银河麒麟 统信UOS人脸识别SDK

DM-AI2C1  SDKl  SDK简介AI2Cam SDK是人脸AI相机设备的上位机软件二次开发工具包,主要功能包含人脸识别及人脸活体判别等,API接口包含三部分:1.      相机设备访问:主要是打开相机,获取相机图像帧,关闭相机。2.      人脸业务请求:请求人脸识

DM-AI2C1-SDK

l  SDK简介

AI2Cam SDK是人脸AI相机设备的上位机软件二次开发工具包,主要功能包含人脸识别及人脸活体判别等,API接口包含三部分:

1.      相机设备访问:主要是打开相机,获取相机图像帧,关闭相机。

2.      人脸业务请求:请求人脸识别业务,请求活体判别业务

3.      基础图像处理:打开和保存图像,缩放图像,缩放图像,绘制图像,显示图像等。

 

l  SDK 库运行环境

Windows系统,银河麒麟系统,统信UOS v20 ,Android系统

 硬件平台:ARM架构,MIPS64,AMD架构

cpu:鲲鹏920,飞腾FT2000, 腾锐D2000,兆芯ZX-C, ZX-C+,KX-5000,KX-6000X系列,海光3000,龙芯3A3000,龙芯3A4000, 因特尔系列,AMD系列等;

l  头文件

AI2Cam_i.h

 

l  编译时库文件

AI2Cam.lib(Windows平台)

 

l  运行时库文件

AI2Cam.dll(Windows平台)

libAI2Cam.so(Linux平台)

 

l  结构体定义

 

//矩形定义

struct TH_RECT

{

      int    left;

      int    top;

      int    right;

      int    bottom;

};

 

//点定义

struct TH_POINT

{

      int  x;

      int  y;

};

 

       说明:矩形及点的定义,坐标系的原点为图像的左上角

//颜色定义

struct TH_COLOR

{

      unsigned char  r;

      unsigned char  g;

      unsigned char  b;

};

 

//AI相机设备信息

struct ai2cam_device_info

{

      char friendly_name[256];//相机显示名

      char vid[16];//相机vid

      char pid[16];//相机pid

      int sys_id;//系统分配的设备id

};

 

      l  接口说明

(可参考AI2Cam_i.h中的API接口注释)

 

1.     int  ai2cam_init(ai2cam_device_info* cam_info);

功能:初始化AI2Cam SDK

参数:

cam_info,相机设备信息。初始化成功后,用于存放相机设备的相关信息

返回值:int整型

      0,成功

              -1,未发现相机设备

              -2,未发现AI2Cam设备

                      -3,USB通信初始化失败

 

2.     void  ai2cam_uninit ();

功能:释放AI2Cam SDK

 

3.     int  ai2cam_camera_open(int res_w, int res_h);

功能:打开AI相机设备

参数:

res_w,res_h,相机分辨率的宽高

返回值:int整型

      0,成功

                           -99AI2Cam模块未成功初始化

                           -1,相机内部设备号非法

                                   -2,打开相机失败

4.     void  ai2cam_camera_close ();

功能:关闭AI相机设备

 

5.     int  ai2cam_camera_getframe (unsigned char* img_data, int img_width, int img_height, int transform_code = 0, TH_RECT* face_box = NULL)

功能:获取相机的图像帧数据

参数:

       img_data,图像数据,内存以HWC(C=BGR)方式排列,内存由                       调用方分配,内存大小为:img_width*img_height*3字节

       img_width,图像宽

       img_height,图像高

       transform_code,是否镜像图像帧:

                                   0-不镜像,1-水平镜像,2-垂直镜像

               face_box,人脸框座标

返回值:int整型

                                   0,取帧成功,无人脸

                                   1,取帧成功,有人脸

                                   -99,AI2Cam模块未成功初始化

                                   -1,img_dataimg_widthimg_height非法

                                   -2,取帧失败

 

6.     int   ai2cam_face_liveness(int timeout_ms ,int* result)

功能:向AI相机设备请求人脸活体判别业务

参数:

               timeout_ms,业务处理的超时时间,单位为毫秒

       result,保留

              返回值:int整型                          

                                   0,成功

                                   -101,人脸活体判别失败

                                   -99,AI2Cam模块未成功初始化

                                   -2,请求业务通信失败

 

7.     int    ai2cam_face_verify(unsigned char* img_data, int img_width, int img_height, int liveness, int timeout_ms, int* result);

功能:向AI相机设备请求人脸验证业务

返回值:

       img_data,传入AI相机的图像数据,内存以HWC(C=BGR)方式排列

       img_width,图像宽

       img_height,图像高

       liveness,是否进行活体判别:0-不启用,1-启用

              timeout_ms,业务处理的超时时间,单位为毫秒

       result,保留

              返回值:int整型                   

                                   0,成功

                                   -101,人脸验证失败

                                   -99,AI2Cam模块未成功初始化

                                   -1,图像数据预处理失败

                                   -2,请求业务通信失败

 

8.     结束

      

l  说明

Linux系统下,访问设备需要root权限的话(ai2cam_init返回-3),请操作以下:1.bin目录下的99-AI2Cam.rules文件放入/etc/udev/rules.d

2.拔出设备

3.运行sudo udevadm control --reload-rules

4.插入设备

 

l  应用指南

 

l  更多用开发高级指南请联系商务

 

l  文档内容到此结束