人脸识别windows离线SDK常见问题和解答
刘金会01 发布于2018-07 浏览:46977 回复:103
5
收藏
最后编辑于2022-09

1:错误码如1002在那里查找?

答:请参考官网的sdk文档有定义

2:提示db_operation_error是为啥?

答:请检查sdk路径是否带中文,这会导致数据库创建失败然后提示db_operation_error

3:vs2010或2017打开工程编译提示错误不能通过编译?

答:开发文档官方指定使用vs2015 comunity版本,用vs2010不合适,因为vs2010不支持c++11,sdk使用了c++11的新功能,vs2017若编译提示json库错误,如json::reader的错误,可自行google修正或 切换vs2015来编译调试。

4:sdk是否支持多线程?

答:目前版本暂不支持多线程,后续迭代优化版本会考虑提供支持。

5:  windows离线sdk是否支持c#,java语言?

 答:windows离线sdk是用c++语言编写的,支持用vs2015版本开发,推荐用vs2015  comunity版本。

     sdk提供动态库dll,目前已有客户实现了java调用和c#调用,这个需要自行调研,百度暂未提供这方面支持,后续会提供。

6: 人脸检测后得到的faceInfo信息(坐标、宽度等)不正确?

答: 这是一个小bug,只需把头文件baidu_face_api.h中得结构体Struct FaceInfo中得变量定义由int 修改为float即会正确。

7:windows离线sdk在debug版本报错?

答:   目前仅提供x86和x64的release版本的库,不支持debug版本,需要调试可在release版本下通过添加日志调试。

8: 如何激活?激活文件是否可以拷贝到其他电脑使用?

答:激活有两种方式,一是通过激活工具激活,输入在官网申请到得key,然后会在激活工具生成license.ini和license.key两个激活文件。

授权和设备绑定,这2个激活文件拷贝到其他电脑并不能使用,只能该电脑使用。

9:sdk中得激活工具licenseTool.exe和sdk的demo TestFaceApi.exe都不能运行,崩溃或提示缺少dll?

答:sdk是针对开发者的,这就需要推荐安装vs2015,并需要勾选c++。sdk是用c++语言编写的。崩溃或提示缺少dll是因为缺少运行环境。

10:证件照等图片检测不到人脸,但实际是有人脸的?

答: 默认可检测最小人脸大小是100,若检测不到,可通过设置最小人脸大小比如30:   api->set_min_face_size(30);  

达到调整最小人脸检测大小的目的,然后再调用检测,这样能检测到比较小得图片如证件照等。

11: linux在授权激活后core dump或windows x64运行报openblas.dll库文件错误

答:可参考置顶帖子,是因为openblas库文件和您的机器不兼容所致,openblas编译和机器的cpu等环境有关,

sdk自带的库文件若不适合您得机器,可参考置顶帖子自行编译可解决问题。

收藏
点赞
5
个赞
共103条回复 最后由海藻糖1984回复于2022-09
#65明智虹宇回复于2018-12
#62 独孤焰坤回复
跟电脑cpu有关系,运行算法耗时

这是我开发电脑配置,实际使用的工供机性能会更低,请问官方测试性能是基于什么硬件环境。

0
#64独孤焰坤回复于2018-12
#63 hkf1985nj回复
您好!我也有同样的问题,如果解决了,请提供一下,谢谢!

自己调用close(),他那个只是一个例子

0
#63hkf1985nj回复于2018-12
#59 o0o海纳百川o0o回复
请问我在win离线人脸识别SDK中,调用了test_usb_track_face_info获取人脸后如何停止采集并关闭摄像头
展开

您好!我也有同样的问题,如果解决了,请提供一下,谢谢!

0
#62独孤焰坤回复于2018-12
#60 明智虹宇回复
难道我是拿到假的SDK吗,官网上说720P追踪速度在30ms,我在电脑上测试是78ms,直接翻一倍。 [代码]   [代码]
展开

跟电脑cpu有关系,运行算法耗时

1
#61独孤焰坤回复于2018-12
#59 o0o海纳百川o0o回复
请问我在win离线人脸识别SDK中,调用了test_usb_track_face_info获取人脸后如何停止采集并关闭摄像头
展开

你转到函数的定义,里面有一个有一个人脸个数的size,判断一下size>0的时候是检测到人脸了,这时候加一个cap.close(),关闭摄像头,ok了

0
#60明智虹宇回复于2018-12

难道我是拿到假的SDK吗,官网上说720P追踪速度在30ms,我在电脑上测试是78ms,直接翻一倍。

BaiduApi.cs

    class BaiduApi
    {
        private static readonly ILog log = LogManager.GetLogger(typeof(BaiduApi));

        // sdk初始化
        [DllImport("BaiduFaceApi.dll", EntryPoint = "sdk_init", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
        private static extern int sdk_init(bool id_card);

        // 是否授权
        [DllImport("BaiduFaceApi.dll", EntryPoint = "is_auth", CharSet = CharSet.Ansi , CallingConvention = CallingConvention.Cdecl)]
        private static extern bool is_auth();

        [DllImport("BaiduFaceApi.dll", EntryPoint = "track_by_buf", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
        private static extern IntPtr track_by_buf(byte[] image, int size, int max_track_num);


        internal bool isAuth()
        {
            return is_auth();
        }

        internal void sdkInit()
        {
            log.Info("开始初始化");
            int init = sdk_init(false);
            log.InfoFormat("初始化结果:{0}",init);
        }

        private Stopwatch watch = Stopwatch.StartNew();
        internal string TrackFace(byte[] bytes)
        {
            watch.Reset();
            watch.Start();
            int max_track_num = 5; // 设置最多检测人数(多人脸检测),默认为1,最多可设为10
            IntPtr ptr = track_by_buf(bytes, bytes.Length, max_track_num);
            string buf = Marshal.PtrToStringAnsi(ptr);
            log.DebugFormat("track bytes :{0}", buf);
            log.DebugFormat("耗时:{0}", watch.ElapsedMilliseconds);
            return buf;
        }
    }

 

Main.cs

    public partial class Main : Form
    {
        private static readonly ILog log = LogManager.GetLogger(typeof(Main));

        private Capture capture;
        private BaiduApi baiduApi;
        private MCvFont f = new MCvFont(FONT.CV_FONT_HERSHEY_SIMPLEX, 1, 1);

        public Main()
        {
            InitializeComponent();
            baiduApi = new BaiduApi();
            capture = new Capture() {
                 FlipType = FLIP.HORIZONTAL
            };
            Application.Idle += new EventHandler(ProcessFram);
        }

        private void ProcessFram(object sender, EventArgs arg)
        {
            Image frame = capture.QueryFrame();
            if (frame != null)
            {
                string json = baiduApi.TrackFace(ImageUtil.img2byte(frame.Bitmap));
                imageBox1.Image = frame;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (!baiduApi.isAuth())
            {
                baiduApi.sdkInit();
            }
        }
    }
0
#59o0o海纳百川o0o回复于2018-12

请问我在win离线人脸识别SDK中,调用了test_usb_track_face_info获取人脸后如何停止采集并关闭摄像头

0
#58wangjiang409回复于2018-12

请问在windows离线人脸识别SDK中,调用usb_track_face_info获取人脸之后如何停止这个方法,关闭摄像头

0
#57善良的小乙哥回复于2018-11

很好有的百度api

0
#56月水璇回复于2018-11
#55 独孤焰坤回复
没办法支持中文,我现在解决的方式是添加一个配置文件,key value的形式,查询的时候自己去配置文件中查找一下  
展开

嗯。只能暂时先这样了。

0
#55独孤焰坤回复于2018-11
#53 月水璇回复
请问下人脸库不支持中文的问题你解决了吗?

没办法支持中文,我现在解决的方式是添加一个配置文件,key value的形式,查询的时候自己去配置文件中查找一下

 

0
#54hkf1985nj回复于2018-11

点击testface.exe,直接报错内存损坏。。。

0
#53月水璇回复于2018-11
#43 彦丶子凡回复
中文怎么解决?人脸库怎么输入中文?

请问下人脸库不支持中文的问题你解决了吗?

0
#52彦丶子凡回复于2018-11
#50 apgk123回复
求解一个问题,官方目前提供的c# 示例是控制台的,test_user_add 可以通过,但一直报无法创建face.db,然后报无法创建表。 第二,目前把这整个代码都移植到mvc中,出现一些错误: 1.有时一直卡在init这个函数上,内存瞬间飙升到99%,电脑直接死机。 2.不会卡的时候,就会报System.Runtime.InteropServices.SEHException: 外部组件发生异常(没有把face-resource文件夹复制到运行上一级目录都不会出错,只会报找不到face-resource 资源而已) 3.试过DllImport 本地完整路径,都没用。
展开

卡在init函数是你没有注册,或者你使用了两个界面去打开,这特么是百度自己的bug,我搞了半天才明白

0
#51彦丶子凡回复于2018-11
#50 apgk123回复
求解一个问题,官方目前提供的c# 示例是控制台的,test_user_add 可以通过,但一直报无法创建face.db,然后报无法创建表。 第二,目前把这整个代码都移植到mvc中,出现一些错误: 1.有时一直卡在init这个函数上,内存瞬间飙升到99%,电脑直接死机。 2.不会卡的时候,就会报System.Runtime.InteropServices.SEHException: 外部组件发生异常(没有把face-resource文件夹复制到运行上一级目录都不会出错,只会报找不到face-resource 资源而已) 3.试过DllImport 本地完整路径,都没用。
展开

把你的DB文件夹和openNI那个文件夹放到exe目录一起,就kyil可以了`

0
#50apgk123回复于2018-11

求解一个问题,官方目前提供的c# 示例是控制台的,test_user_add 可以通过,但一直报无法创建face.db,然后报无法创建表。

第二,目前把这整个代码都移植到mvc中,出现一些错误:

1.有时一直卡在init这个函数上,内存瞬间飙升到99%,电脑直接死机。

2.不会卡的时候,就会报System.Runtime.InteropServices.SEHException: 外部组件发生异常(没有把face-resource文件夹复制到运行上一级目录都不会出错,只会报找不到face-resource 资源而已)

3.试过DllImport 本地完整路径,都没用。

0
#4921...7@qq.com回复于2018-11
#34 cadence2004回复
想请教两个问题: 1, 这个人脸识别离线SDK支持多路摄像头吗? 2,支持网络摄像头吗?
展开

支持,需要写多线程界面

0
#48155******23回复于2018-11
#46 btr930730回复
坐标常常定位不准

这个问题有些bug 

0
#47kq和你一起回复于2018-11

c++  或者 python的demo 哪位大佬发我一下 谢谢 我弱鸡,不是很会玩外部接口的东西

0
#46btr930730回复于2018-11

坐标常常定位不准

0
TOP
切换版块