网站首页  词典首页

请输入您要查询的论文:

 

标题 PictureBox(C#)+百度离线SDK实现人脸识别
范文

    安国有 王淑妍

    【摘 ?要】基于VS2012编程工具,论文通过C#语言调用Picture控件和百度人脸离线识别SDK,实现基本的人脸识别与跟踪。

    【Abstract】Based on VS2012 programming tools, the paper calls Picture controls and Baidu offline face recognition SDK through C# language to realize basic face recognition and tracking.

    【关键词】C#;Picture控件;百度人脸识别离线SDK;人脸识别与跟踪

    【Keywords】C#; Picture controls; Baidu offline face recognition SDK; face recognition and tracking

    【中图分类号】TP391.4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文献标志码】A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文章编号】1673-1069(2020)07-0170-02

    1 引言

    随着各大公司(百度、腾讯等)AI开放平台的推出,及其各自功能的日臻完善,对于一般的程序编写者,结合工作需求,利用开放平台的SDK和API功能,量身开发应用程序已成为可能。作为初学者,利用已知的开发工具和语言调用开放的SDK或API的能力不足,为此将自己开发的心得加以总结,以供同行借鉴与交流,进而推进AI技术在各行业的应用与普及。

    2 百度人脸识别离线SDK下载与激活

    2.1 “人脸识别SDK”下载

    通过百度AI开发平台下载所需SDK,例如,通过VS2012编程工具,利用C#语言,开发B/S运行模式的人脸识别应用软件,則需下载“Win C# 离线识别SDK”。

    2.2 SDK申请与激活

    无论试用,还是永久使用百度人脸识别离线SDK,都需要通过百度AI开放平台注册合法用户账号,然后通过账号登录平台,按照如下操作步骤逐一完成方可。

    2.2.1 SDK申请

    根据下载的SDK以及开发意向,填写相关申请信息,并提交信息,等待百度AI开发平台的后台审核。如果审核通过,再次登录平台时,即可看到两条审核通过信息,每条信息中含有序号,因此一定保存好“序号”,以便后续离线激活SDK使用。

    2.2.2 离线激活SDK

    解压已下载的“Baidu_Face_Offline_SDK_Windows_Csharp.zip”文件,找到bin文件,其下有两个文件夹:“X64”和“X86”,如开发程序64位应用程序,则运行“X64”文件夹下的“LicenseTool.exe”程序,反之则运行“X86”的“LicenseTool.exe”,然后填写对应的“序号”即可激活SDK,激活成功后,在“X64”或“X86”文件夹下会生成两个文件:icense.ini和license.key,这两个文件切记不能删除。

    3 开发环境部署

    如果基于VS2012编辑器,利用C#语言调用百度“人脸离线识别SDK”,开发C/S模式Windows应用程序,因此其开发环境要求如下:

    ①Windows7以上操作系统,安装VS2012工具软件;

    ②由于百度人脸识别离线SDK的运行需要.NET Framework 4.5.2,因此安装完VS2012工具软件,应该下载.NET Framework 4.5.2,并进行安装。

    4 项目首显窗体设置

    通过解压后的“testface.sln”文件打开项目,由于此应用程序希望通过自建窗体的pictureBox控件显示人脸识别与跟踪情况,因此需要按下述步骤操作:

    ①通过项目属性,设置“应用程序”选项中的“输出类型”为:Windows应用程序。

    ②在项目中创建form1窗体,在窗体中添加pictureBox1、button1、button2控件。

    ③修改Face.cs类文件,实现项目启动首先显示form1窗体。

    在此文件命名空间引用处,添加using System.Windows.Forms;

    删除Main方法原有语句,然后输入如下语句:

    Application.EnableVisualStyles();

    Application.SetCompatibleTextRenderingDefault(false);

    Application.Run(new form1());

    这时运行程序,即可看到首先显示的界面即为form1窗体。

    5 定义、修改相关方法,实现人脸识别与跟踪

    第一,在Face.cs类文件中定义如下方法,实现百度人脸识别离线SDK初始化:

    public void InitSDK()

    {

    bool id=false;//表示以生活照识别

    int n = sdk_init(false);

    }

    第二,在FaceTrack.cs文件中,定义数据转换函数,修改相关方法,实现pictureBox控件显示人脸识别与跟踪。

    为了确保函数的定义和方法的修改,在命名空间引用处,添加下面语句:

    Using System.IO;

    Using System.Drawing;

    ①定义数据转换函数

    private Bitmap BToBp(byte[] Bytes)

    {

    MemoryStream stream = null;

    try

    {

    stream = new MemoryStream(Bytes);

    return new Bitmap((Image) new Bitmap(stream));

    }

    catch (ArgumentNullException ex){throw ex;}

    catch (ArgumentException ex){throw ex;}

    finally{stream.Close();}

    }

    ②修改usb_csharp_track_face方法,实现pictureBox控件显示人脸识别与跟踪

    首先给方法定义两个形参,如下:

    public void usb_csharp_track_face(int dev, System.Windows.Forms pictureBox p1);

    其次分别删除using (var window=new Window(“face”))和window.ShowImage(image)语句;

    最后在Marshal.FreeHGlobal(ptT)下面增加两条独立语句:

    Bitmap b=BToBp(image.ToBytes());p1.Image=b;

    第三,通过窗体按钮调用相关方法,实现SDK初始化和人脸识别与跟踪。

    ①在form1中创建对象实例,定义无形参的人脸识别与跟踪方法,具体如下:

    首先,创建对象实例:Face Fa=new Face();FaceTrack Ft=new FaceTrack();

    其次,定義无形参方法,以供线程调用:

    Private void run()

    {

    Ft.usb_csharp_track_face(0,pictureBox1);

    }

    ②通过button1按钮单击事件,调用相关方法,实现SDK初始化。

    private void button1_Click(object sender,EventArgs e)

    {

    Fa.InitSDK();

    }

    ③通过buttion2按钮的单击事件,创建新线程,调用run方法,实现人脸识别与跟踪。

    private void button2_Click(object sender,EventArgs e)

    {

    Thread MyThread=new Thread(run);

    MyThread.Start();

    }

    第四,运行方法。首先单击button1,进行SDK初始化,使之常驻内容,支撑其他方法的调用,待初始化完成,然后单击button2,执行人脸识别和跟踪,并通过form1 窗体上的pictureBox1控件识别与跟踪效果。

    综上所述,即为通过C#语言调用百度人脸识别离线SDK,通过自建窗体上的pictureBox1呈现识别与跟踪效果,可以说这只是一个人脸识别与跟踪的基本功能,但是由于通过自建窗体的控件实现了识别与跟踪,这样就为广大编程爱好者结合自身需求,在窗体上调用其他控件提供了方法。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/23 14:45:52