unity接入百度人体识别

1.去百度下载SDK

  • 复制AipSdk.dll到工程
  • 复制Newtonsoft.Json.dll到工程
  • 自己按照unity版本,选择2.0,3.5,还是4.0的dll

2.去百度云注册账号,申请AppID,AppKey,AppSecret

  • 自行申请

3.进入unity编写脚本

  • 百度人体分析SDK调用
using UnityEngine;
using Baidu.Aip.BodyAnalysis;
using Newtonsoft.Json.Linq;
using System.IO;
using System;public class BaiduFaceAI : SingletonMono<BaiduFaceAI>
{// 设置APPID/AK/SKconst string APP_ID = "你的appid";const string API_KEY = "你的appkey";const string SECRET_KEY = "你的appsecret";private Body client;void Start(){client = new Body(API_KEY, SECRET_KEY);client.Timeout = 60000;  // 修改超时时间}/// <summary>/// 检测图像byte流/// </summary>/// <param name="image">图像或者摄像的byte流</param>/// <param name="callback">回调是否是人体</param>public void BodyAnalysis(byte[] image,Action<bool> callback){try{//加载本地图片//string path = Application.dataPath + "/test.jpg";//var image = File.ReadAllBytes(path);//接受图像的bytesvar result = client.BodyAnalysis(image);callback(IsHuman(result));}catch (System.Exception e){Debug.Log(e);}}/// <summary>/// //过滤方法:当关键点得分大于0.2的个数大于3,且人体框的分数大于0.03时,才认为是有效人体/// </summary>/// <param name="result">检测的JObject结果</param>/// <returns>是否是人体</returns>bool IsHuman(JObject result){var persons = result["person_info"].Children();//多个人foreach (var person in persons){//单个人的身体部位var parts = person["body_parts"].Children();var bodyScore = float.Parse(person["location"]["score"].ToString());if (bodyScore > 0.03f){int count = 0;foreach (var part in parts){var keys = part.Children();foreach (var item in keys){if (float.Parse(item["score"].ToString()) > 0.2f){count++;}}if (count > 3){return true;}}}}return false;}
}
  • 使用WebCamera用摄像头捕获人体识别
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class WebCamTool : SingletonMono<WebCamTool>
{string DeviceName;WebCamTexture webCamera;Texture2D tex2d;public void StartWebCamera(RawImage raw){StartCoroutine(CoWebCamera(raw));}public void StopWebCamera(){if (webCamera != null)webCamera.Stop();}/// <summary>    /// 初始化摄像头  /// </summary>    IEnumerator CoWebCamera(RawImage raw){yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);if (Application.HasUserAuthorization(UserAuthorization.WebCam)){WebCamDevice[] devices = WebCamTexture.devices;if(devices.Length>0){DeviceName = devices[0].name;webCamera = new WebCamTexture(DeviceName, Screen.width, Screen.height, 60);raw.texture = webCamera;webCamera.Play();}}}Texture2D TextureToTexture2D(Texture texture){Texture2D texture2D = new Texture2D(texture.width, texture.height, TextureFormat.RGBA32, false);RenderTexture currentRT = RenderTexture.active;RenderTexture renderTexture = RenderTexture.GetTemporary(texture.width, texture.height, 32);Graphics.Blit(texture, renderTexture);RenderTexture.active = renderTexture;texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);texture2D.Apply();RenderTexture.active = currentRT;RenderTexture.ReleaseTemporary(renderTexture);return texture2D;}public byte[] GetBytes(RawImage image){Texture2D tex2d = TextureToTexture2D(image.texture);return tex2d.EncodeToJPG();}
}
  • 使用方法
    /// <summary>/// 开启WebCamare,拍摄画面在RawIamge显示/// </summary>void StartWebCamera(){rawImage.gameObject.SetActive(true);WebCamTool.Instance.StartWebCamera(rawImage);//StartCoroutine(CheckFace());}//开启协程监听是否扫描到人体,2s一次IEnumerator CheckFace(){while (true){yield return new WaitForSeconds(2);if (rawImage.isActiveAndEnabled && rawImage.texture != null){var bytes = WebCamTool.Instance.GetBytes(rawImage);BaiduFaceAI.Instance.BodyAnalysis(bytes, (isHuman) => {if(isHuman){Debug.Log("检测到人体");}});}}}
  • 希望这篇文章能够对你有所帮助

unity接入百度人体识别相关推荐

  1. uni-app之接入百度OCR识别身份证(微信小程序版本)

    本文为uni-app接入百度OCR识别身份证号,话不多说,直接上代码: 1. 第一步注册百度智能云账号,选择文字识别,创建应用,获取Api Key 与 Secret Key(下面要用到): 2.第二步 ...

  2. Unity接入百度语音识别解决方案

    之前有过需求要是语音识别,而百度也提供了对应的.dll文件,后来用了一下在识别的时候占用了主线程,会卡顿,又看了看大佬的解决方案,自己也总结了一下. 总共分为四大部:1获取Token.2开始录音.3录 ...

  3. Unity 接入百度AI - 通用物体和场景识别

    接口介绍: 可识别超过10万类常见物体和场景,接口返回大类及细分类的名称,并支持获取识别结果对应的百科信息:还可使用EasyDL定制训练平台,定制识别分类标签.广泛适用于图像或视频内容分析.拍照识图等 ...

  4. Unity 接入百度AI - 植物识别

    接口介绍: 可识别超过2万种常见植物和近8千种花卉,接口返回植物的名称,并支持获取识别结果对应的百科信息:还可使用EasyDL定制训练平台,定制识别植物种类.适用于拍照识图.幼教科普.图像内容分析等场 ...

  5. Unity 接入百度AI - 动物识别

    接口介绍: 识别近八千种动物,接口返回动物名称,并可获取识别结果对应的百科信息:还可使用EasyDL定制训练平台,定制识别分类标签.适用于拍照识图.幼教科普.图像内容分析等场景 创建应用:      ...

  6. Unity 接入百度AI - 红酒识别

    接口介绍: 识别图像中的红酒标签,返回红酒名称.国家.产区.酒庄.类型.糖分.葡萄品种.酒品描述等信息,可识别数十万中外红酒:支持自定义红酒图库,在自建库中搜索特定红酒信息. 创建应用:      在 ...

  7. Unity 接入百度AI - 车型识别

    接口介绍: 该请求用于检测一张车辆图片的具体车型.即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的车辆品牌及型号. 创建应用:      在产品服务中搜索图像识别,创建应用,获取AppID ...

  8. Unity 接入百度AI - 货币识别

    接口介绍: 识别图像中的货币类型,以纸币为主,正反面均可准确识别,接口返回货币的名称.代码.面值.年份信息:可识别各类近代常见货币,如美元.欧元.英镑.法郎.澳大利亚元.俄罗斯卢布.日元.韩元.泰铢. ...

  9. Unity 接入百度AI - 菜品识别

    接口介绍: 识别超过9千种菜品,支持客户创建属于自己的菜品图库,可准确识别图片中的菜品名称.位置.卡路里信息,并获取百科信息,适用于多种客户识别菜品的业务场景中. 创建应用:      在产品服务中搜 ...

最新文章

  1. Bleve:来自Couchbase、基于Go语言的全文索引与检索库
  2. Tableau 2020.3 发布!新增 写入外部数据库 与 预测建模 等功能,进一步增强扩展分析
  3. FWK005 parse may not be called while parsing
  4. 渗透测试入门DVWA 教程1:环境搭建
  5. 与Zell关闭星期五
  6. CSS 文本缩进text-indent属性
  7. mongodb更新操作符$rename
  8. weblogic 文件打开数_Weblogic任意文件读取和任意文件上传
  9. 敏捷开发中asp.net MVC的开发次序感受(先开发View?先开发Model?先开发Controller!)...
  10. ppt中插入excel源文件丢失,提取图中数据
  11. 音乐标签编辑器 Meta 2.0.0 for Mac
  12. Discrete Cosine Transform Network for Guided Depth Map Super-Resolution
  13. 什么是CMMI认证?有什么好处?
  14. JNI调用dll库或so库
  15. python中apply函数
  16. 朴素贝叶斯凉鞋问题推导
  17. vue实现农历日期选择器
  18. c#中regex的命名空间_C#_详解C#正则表达式Regex常用匹配,使用Regex类需要引用命名空间 - phpStudy...
  19. 乳腺数据DDSM标注overlay文件python处理
  20. 全国首批城市级5G车联网应用项目落地!

热门文章

  1. 与 ST_Geometry 配合使用的 SQL 函数
  2. 分享个热血三国辅助脚本,教你热血三国手游多开
  3. 一个半成小作品-短信伪造
  4. 怎样做竞品分析?竞品分析的意义?
  5. ServiceHot ITSM助力天原集团IT运维信息化建设
  6. 照度稳定可调 LED 台灯(K 题)【高职高专组】-- 2021 年全国大学生电子设计竞赛
  7. 由于找不到VCRUNTIME140.dll,无法继续执行代码问题解决
  8. 2022.08.03 第三组 高小涵
  9. 163邮箱发送不出去服务器,我是网易163的免费邮箱,最近发现不能发邮件了,不知怎么回事,请热水人帮一下。...
  10. MDX的实例讲解(排名前15的小例子)