AI 检测相关 API

本文主要介绍了 Android SDK 中 AI 检测相关的 API。

开启人脸检测

 public DetectResult[] startDetectFace(byte[] data, int imageWidth, 
                                       int imageHeight, int angle, 
                                       boolean needFlipX)

请求参数

参数

类型

说明

是否必须

data

byte[]、int[]

检测数据源

imageWidth

int

图片宽度

imageHeight

int

图片高度

angle

int

角度

needFlipX

boolean

是否使用镜像

返回值

DetectResult[]

属性

类型

说明

imageWidth

int

图片宽度

imageHeight

int

图片高度

rotateDegree

int

旋转角度

faceDetectionReport

FaceDetectionReport

人脸检测报告

inAngle

int

角度

facePoints

float[]

人脸位置信息

data

byte[]

活体结果

argbData

int[]

参数数据

currentTimeMillis

long

当前时间

name

String

检测的名字

type

int

检测的类型

faceId

int

检测 ID

代码示例

DetectResult[] DetectResult =
    IdrsSdk.getInstance().startDetectFace(data, imageWidth,imageHeight,
                                          angle,needFlipX)

获取人脸特征

public float[] getFeature(DetectResult detectResult)

请求参数

参数

类型

说明

是否必须

detectResult

DetectResult

检测数据源

返回值

类型

说明

float[]

特征数组

代码示例

 float[] feature = IdrsSdk.getInstance().getFeature(DetectResult1)

获取位图特征

 public float[] getBitmapFeature(Bitmap bitmap) 

请求参数

参数

类型

说明

是否必须

bitmap

Bitmap

需要识别的图片

返回值

类型

说明

float[]

特征数组

代码示例

 float[] feature = IdrsSdk.getInstance().getBitmapFeature(bitmap)

人照比对

public float faceRecognitionSimilarity(float[] features1, float[] features2) 

请求参数

参数

类型

说明

是否必须

features1

float[]

需要对比的特征数组

features2

float[]

需要对比的特征数组

返回值

类型

说明

float

返回的相似度

代码示例

  float v = IdrsSdk.getInstance().faceRecognitionSimilarity(role.getFeature(), feature);

画面实时标记

public RectF viewRectToFrameRect(RectF viewRect, int viewWidth, 
                                 int viewHeight, int frameWidth, 
                                 int frameHeight, boolean mirror, int rotate) 

请求参数

参数

类型

说明

是否必须

viewRect

RectF

标记的矩形

viewWidth

int

控件的宽度

viewHeight

int

控件的高度

frameWidth

int

图片的宽度

frameHeight

int

图片的高度

mirror

boolean

是否需要镜像

rotate

int

旋转的角度

返回值

类型

说明

RectF

返回的矩形位置

代码示例

  RectF frameRect = IdrsSdk.getInstance().viewRectToFrameRect(
                        viewRect, cameraView.getWidth(),cameraView.getHeight(),
                         imageWidth, imageHeight, false, 0);

开启手势识别

public ArrayList<HandDetectionResult> startHandDetection(byte[] data,
                           int imageWidth, int imageHeight, int angle,
                           boolean isFrontCamera, boolean isStatic)

请求参数

参数

类型

说明

是否必须

data

byte[]

标记的矩形

imageWidth

int

控件的宽度

imageHeight

int

控件的高度

angle

int

旋转角度

isFrontCamera

boolean

是否前置摄像头

isStatic

boolean

是否需要镜像

返回值

ArrayList<HandDetectionResult>

属性

类型

说明

left

float

距左

top

float

距上

bottom

float

距底部

right

float

距右

action

String

手势的姿势

touchphone

boolean

是否手势

phoneTouchedPointx

float

手势x坐标

phoneTouchedPointy

float

手势y坐标

faceRect

RectF

手势矩形数据

代码示例

 ArrayList<HandDetectionResult> handDetectionResults =
     IdrsSdk.getInstance().startHandDetection(data, imageWidth,
                                              imageHeight, angle, needFlipX, true);

签名类型检测

public String classify_run(int width, int height, byte[] data, 
                           float[] roi, int rotation, boolean mirror)

请求参数

参数

类型

说明

是否必须

width

int

图片宽度

height

int

图片高度

data

byte[]

图片字节码数据

roi

float[]

提示文字数据信息

rotation

int

旋转角度

mirror

boolean

是否需要镜像

返回值

类型

说明

String

签名类型

代码示例

 String type = IdrsSdk.getInstance().classify_run(imageWidth, imageHeight,
                                                  data, floats, 0, false);

身份证识别

public String ocr_run(int width, int height, byte[] data, 
                      float[] roi, int rotation, boolean mirror, boolean isFront)

请求参数

参数

类型

说明

是否必须

width

int

图片宽度

height

int

图片高度

data

byte[]

图片字节码数据

roi

float[]

提示文字数据信息

rotation

int

旋转角度

mirror

boolean

是否需要镜像

isFront

boolean

是否前置摄像头

返回值

类型

说明

String

身份证数据

代码示例

  String json = IdrsSdk.getInstance().ocr_run(
      imageWidth, imageHeight, data, floats, 0, false, true);

身份证识别

public String ocr_run_Bitmap(Bitmap bitmap, 
                             float[] roi, int rotation, boolean isFront)

请求参数

参数

类型

说明

是否必须

bitmap

Bitmap

需要识别的图片

roi

float[]

提示文字数据信息

rotation

int

旋转角度

isFront

boolean

是否前置摄像头

返回值

类型

说明

String

身份证数据

代码示例

  String json = IdrsSdk.getInstance().ocr_run_Bitmap(bitmap, floats, 0, true);

开启激活词检测

 public int startDialogforData(Handler handler)

请求参数

参数

类型

说明

是否必须

handler

Handler

用于监听识别结果

返回值

代码示例

IdrsSdk.getInstance().startDialogforData(new Handler() {
                            @Override
                            public void handleMessage(@NonNull Message msg) {
                                super.handleMessage(msg);
                                if (msg.what == 100) {
                                    IdrsSdk.getInstance().stopDialog();
                                    Toast.makeText(CreateRoomActivity.this, "激活词识别成功: " + msg.obj,
                                        Toast.LENGTH_LONG).show();
                                }
                            }
                        });

结束激活词检测

public void stopDialog()

请求参数

返回值

代码示例

IdrsSdk.getInstance().stopDialog();

开始 TTS 合成

public void startTTs(String text, TTsListener listener) 

请求参数

参数

类型

说明

是否必须

text

String

需要播报的字符串

listener

TTsListener

合成监听

返回值

代码示例

IdrsSdk.getInstance().startTTs(text, new AudioService.TTsListener() {
                        @Override
                        public void onPlayComplete() {
                        
                        }

                        @Override
                        public void onTTSStatusChangeCallback(AudioService.TTSStatus ttsStatus) {

                        }

                        @Override
                        public void onDataCallback(byte[] text, int work_idx, byte[] data) {

                        }
                    });

结束 TTS 合成

public void cancelTts() 

请求参数

返回值

代码示例

IdrsSdk.getInstance().cancelTts();

暂停播放

public void pauseTts() 

请求参数

返回值

代码示例

IdrsSdk.getInstance().pauseTts();

当前是否暂停

public boolean isPauseTts()

请求参数

返回值

参数

类型

说明

isPause

boolean

当前是否暂停

代码示例

IdrsSdk.getInstance().isPauseTts();

是否正在播放

public boolean isPlayTts()

请求参数

返回值

参数

类型

说明

isPlay

boolean

是否正在播放

代码示例

IdrsSdk.getInstance().isPlayTts();

恢复 TTS

public void resumeTts()

请求参数

返回值

代码示例

IdrsSdk.getInstance().resumeTts();

TTS 参数设置

 public void setparamTts(String key, String value)

请求参数

参数

类型

说明

是否必须

key

String

font_name、

speed_level、

volume、

pitch_level

value

String

xiaoyun、1

返回值

代码示例

IdrsSdk.getInstance().setparamTts("font_name", "xiaoyun");//设置播报人
IdrsSdk.getInstance().setparamTts("speed_level", "1");//设置播报速度

获取 TTS 参数

public String getparamTts(String key)

请求参数

参数

类型

说明

是否必须

key

String

font_name、

speed_level、

volume、

pitch_level

返回值

类型

说明

String

对应 key 的 value 值

代码示例

IdrsSdk.getInstance().setparamTts("speed_level");//当前播放速度