投稿
开启辅助访问
 找回密码
 立即注册
取消
搜索
热搜:
活动 交友 discuz
开发者专区 + 关注 已有8人关注 发新帖
分享到

人脸识别sdk用法

#继续跟进中#时间:2020-08-25 阅读:7951 回复:6

0

主题

2

帖子

22

积分

合作伙伴

积分
22
咨询用法
开发相关模块: 接口
企业名称: 仅管理员可见
客户姓名: 仅管理员可见
我们在机器人中安装了自己的app《远程医生》,需要远程医生中调用机器人的人脸识别功能。

1,我们按照sdk文档配置了Manifest文件和AndroidManifest.xml文件。
2,问题如下:
1)回调类ModuleCallback中,只走了onSuspend方法,onSendRequest未被调用。
2)人脸识别的调用方式,是否正确
在程序中的相关代码如下:
//1、连接服务器
RobotApi.getInstance().connectServer(this, new ApiListener() {
    @Override
    public void handleApiDisabled() {
    }
    @Override
    public void handleApiConnected() {
        //Server已连接,设置接收请求的回调,包含语⾳指令、系统事件等
        System.out.println("连接服务器成功~~~~~~");
        RobotApi.getInstance().setCallback(new ModuleCallback());
    }
    @Override
    public void handleApiDisconnected() {
        //连接已断开
        System.out.println("断开连接");
    }
});

//2,回调类
class ModuleCallback extends ModuleCallbackApi {

    @Override
    public boolean onSendRequest(int reqId, String reqType, String reqText, String reqParam)  throws RemoteException {

        RobotApi.getInstance().finishModuleParser(reqId, true);

        System.out.println("~~~~~~~");
        System.out.println(reqId);
        System.out.println(reqType);
        System.out.println(reqText);
        System.out.println("~~~~~~~");

        PersonInfoListener listener = new PersonInfoListener() {
            @Override
            public void onData(int code, List<Person> data) {
                //code : Definition.STATUS_INFO_UPDATE
                //data : 识别的⼈脸数据
                System.out.println(code);
                System.out.println(data);
                System.out.println("~~~~~~~~~~~~~~~");
                //结束
                RobotApi.getInstance().stopGetAllPersonInfo(reqId, this);
            }
        };
        //开始
        RobotApi.getInstance().startGetAllPersonInfo(reqId, listener);

        return true;
    }

    @Override
    public void onRecovery() throws RemoteException {
        //控制权恢复,收到该事件后,重新恢复对机器⼈的控制
        System.out.println("控制权恢复~~~~~onRecovery");
    }

    @Override
    public void onSuspend() throws RemoteException {
        //控制权被系统剥夺,收到该事件后,所有Api调用无效
        System.out.println("控制权被系统剥夺~~~onSuspend");
    }
}
回复
使用道具 举报

0

主题

6

帖子

46

积分

新手上路

Rank: 1

积分
46
LiYanZhao| 2020-8-25 20:45:05 | 显示全部楼层
Api的调用需要先获得授权,在onRecovery回调后才能调用,请先确定下app的启动方式,是否从Home桌面点击启动,如果是通过Android Studio直接run上去的是不可以的,可以先通过三指下拉 -> 点击应用中心,进入Home桌面后, 点击启动App,尝试下是否可行。
回复
使用道具 举报

0

主题

2

帖子

22

积分

合作伙伴

积分
22
李进才| 2020-8-26 14:33:19 | 显示全部楼层
谢谢,onRecovery已经能收到了,新问题是onSendRequest方法没被调用到。这个又是什么问题呢?
@Override
public boolean onSendRequest(int reqId, String reqType, String reqText, String reqParam)  throws RemoteException {

        RobotApi.getInstance().finishModuleParser(reqId, true);

        PersonInfoListener listener = new PersonInfoListener() {
            @Override
            public void onData(int code, List<Person> data) {
                //code : Definition.STATUS_INFO_UPDATE
                //data : 识别的⼈脸数据
                System.out.println(code);
                System.out.println(data);
                System.out.println("~~~~~~~~~~~~~~~");
                //结束
                RobotApi.getInstance().stopGetAllPersonInfo(reqId, this);
            }
        };

        //开始
        RobotApi.getInstance().startGetAllPersonInfo(reqId, listener);

        return true;
    }
回复
使用道具 举报

0

主题

6

帖子

46

积分

新手上路

Rank: 1

积分
46
LiYanZhao| 2020-8-27 11:39:18 | 显示全部楼层
李进才 发表于 2020-8-26 14:33
谢谢,onRecovery已经能收到了,新问题是onSendRequest方法没被调用到。这个又是什么问题呢?
@Override
pu ...

onSendRequest是语音或远程指令的回调,不知道您是否触发了语音指令,可以尝试在开启语音识别后,对着机器人说:“小豹小豹”,看看是否能收到request回调。
回复
使用道具 举报

0

主题

2

帖子

22

积分

合作伙伴

积分
22
李进才| 2020-10-9 12:40:42 | 显示全部楼层
人脸识别的时候,经常返回1006错误,10次至少有4次是识别不到的。请问这是才能原因呢?
D/LauncherActivity: faceDetect~~~~~~~
D/PersonInfo: getAllPersonInfo: ...
W/irobot.sdk_dem: Accessing hidden field Lsun/misc/Unsafe;->theUnsafesun/misc/Unsafe; (light greylist, reflection)
D/PersonInfo: ===>> onData: 1006 - 0
D/LauncherActivity: onData: 1006, []
回复
使用道具 举报

0

主题

6

帖子

46

积分

新手上路

Rank: 1

积分
46
LiYanZhao| 2020-10-9 13:47:02 | 显示全部楼层
李进才 发表于 2020-10-9 12:40
人脸识别的时候,经常返回1006错误,10次至少有4次是识别不到的。请问这是才能原因呢?
D/LauncherActivity ...

您好,请问下您的接口调用方式是每次需要识别人脸的时候都重新调用一次接口,只使用第一次获取的数据是吗 ? startGetAllPersonInfo获取人脸数据这个接口是一个持续性的接口,只需要调用一次,后续只要识别到人脸的时候都会自动回调onData,不需要每次都重新调用,您可以尝试修改下调用方式试一下。
回复
使用道具 举报

0

主题

3

帖子

8

积分

新手上路

Rank: 1

积分
8
anfieldfan| 2023-8-9 10:36:42 | 显示全部楼层
然后有将近25%是真正英国乐透5走势图的去计算和填数,那部分没法儿蒙,但福彩双色球开奖页面是选择题其实很多时候是可以靠超级大乐透开奖结果猜的,即便你不知道正确答案

回复
使用道具 举报
快速回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

    0

    主题

    3

    帖子

    8

    积分

    新手上路

    Rank: 1

    积分
    8

发私信

TA 的相关文章

    官方微信
    发布 快速回复 返回顶部 返回列表