🎬 博客主页:https://xiaoy.blog.csdn.net
🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉
🎄 学习专栏推荐:Unity系统学习专栏
🌲 游戏制作专栏推荐:游戏制作
🌲Unity实战100例专栏推荐:Unity 实战100例 教程
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------
- 前言
- AI 实战篇 |十分钟学会【动物识别】,快去寻找身边的小动物试试看吧
- 一、准备工作
- 二、正文操作流程
- 2.1 新建一个Unity工程
- 2.2 导入 动物识别 .dll文件
- 2.3 新建交互类
- 2.4 使用图片进行 动物识别
- 2.5 后台查看报表
- 2.6 领取试用资源
- 总结
- 👑 评论区抽奖送书
前言
- 以前一直觉得一些AI技术非常的高级又复杂,但是到了现在这些技术其实已经早就被日常规范化了。
- 我们只需要借助一些平台封装好的SDK就可以拿来直接使用相应的功能。
- 比如上期写了一篇借助
百度AI开放平台
写了一篇关于人脸识别的文章: - AI 实战篇 |基于 AI开放平台实现 人脸识别对比 功能,超详细教程【附带源码】
- 内容介绍的很详细,关于怎样获取SDK以及在控制台创建应用都已经进行了说明。
- 那本篇文章就来再学习一下
AI图像识别技术 之 动物识别
,十分钟学会制作加使用,一起来看看吧!
AI 实战篇 |十分钟学会【动物识别】,快去寻找身边的小动物试试看吧
一、准备工作
在开始之前要有一些准备工作需要进行,如前往百度AI平台获取SDK以及创建应用等。
这里可以去上一篇人脸识别中查看具体的操作,就不多做说明了,步骤都是一样的。
只需要在创建应用接口选择时选择我们需要的功能接口即可。
同时选择多个接口,只需要在使用的时候通过入参灵活指定需要调用的模型服务,传入图像,返回指定模型的识别结果。
这一步最终的目的是从下载的SDK中拿到两个库,在后面会用到。
解压后,打开 net35 文件夹将 AipSdk.dll
和 Newtonsoft.Json.dll
中添加为引用。
二、正文操作流程
2.1 新建一个Unity工程
新建一个Unity打开后 打开 File>BuildSettings -> PlayerSettings -> OtherSettings
改变Api Compatibility Level
为 .NET2.0
,若本来就是则不需要修改。
2.2 导入 动物识别 .dll文件
在Assets
下新建一个Plugins
文件夹,注意不要拼错单词哦~
将上面讲到的两个文件AipSdk.dll
和 Newtonsoft.Json.dll
放入该文件夹。
然后新建一个测试场景和脚本,命名随意。
打开动物识别的C#官方文档:https://ai.baidu.com/ai-doc/IMAGERECOGNITION/1k3bcxhb1
文档中的步骤挺详细,可以结合文章与文档共同参考 ~
2.3 新建交互类
定义一个客户端,此时要用到之前创建的应用的 APPID
、 APIKey
和 SecretKey
代码如下:
using Baidu.Aip.ImageClassify;
using UnityEngine;
public class AnimalRecognitionDemo : MonoBehaviour
{
[Header("设置APPID/AK/SK")]
public string APP_ID = "输入你的 App ID";
public string API_KEY = "输入你的 Api Key";
public string SECRET_KEY = "输入你的 Secret Key";
ImageClassify client;
private void Awake()
{
client = new ImageClassify(API_KEY, SECRET_KEY);
client.Timeout = 60000; // 修改超时时间
}
}
2.4 使用图片进行 动物识别
这里先准备一张小猫的照片,只要是动物就行,看自己喜好。
然后放到Unity的 StreamingAssets/AnimalDetect
文件夹下
我这里的图片名字为 Cat1.png
,在测试的时候改为自己的即可。
实例代码如下:
public void AnimalDetectDemo()
{
var image = File.ReadAllBytes(Application.streamingAssetsPath + "/AnimalDetect/Cat1.png");
// 调用动物识别,可能会抛出网络等异常,请使用try/catch捕获
var result = client.AnimalDetect(image);
Debug.Log(result);
// 如果有可选参数
var options = new Dictionary<string, object>{
{"top_num", 3},
{"baike_num", 5}
};
// 带参数调用动物识别
result = client.AnimalDetect(image, options);
Debug.Log(result);
}
这是一个功能展示效果:
不带百科信息的返回值如下:
{
"result": [
{
"score": "0.30621",
"name": "波斯猫"
},
{
"score": "0.222449",
"name": "异国短毛猫"
},
{
"score": "0.0785699",
"name": "美国刚毛猫"
},
{
"score": "0.0775081",
"name": "英国短毛猫"
},
{
"score": "0.0304954",
"name": "欧洲短毛猫"
},
{
"score": "0.0237903",
"name": "乳黄色猫"
}
],
"log_id": 1588736538952080052
}
带百科信息的返回值如下:
{
"result": [
{
"score": "0.30621",
"name": "波斯猫",
"baike_info": {
"baike_url": "http://baike.baidu.com/item/%E6%B3%A2%E6%96%AF%E7%8C%AB/585",
"image_url": "https://bkimg.cdn.bcebos.com/pic/cc11728b4710b9123e0206d7cefdfc03934522dc",
"description": "波斯猫(Persian cat)是以阿富汗的土种长毛猫和土耳其的安哥拉长毛猫为基础,在英国经过100多年的选种繁殖,于1860年诞生的一个品种。波斯猫是最常见的长毛猫,波斯猫有一张讨人喜爱的面庞,长而华丽的背毛,优雅的举止,故有“猫中王子”、“王妃”之称,是世界上爱猫者最喜欢的纯种猫之一,占有极其重要的地位。"
}
},
{
"score": "0.222449",
"name": "异国短毛猫",
"baike_info": {
"baike_url": "http://baike.baidu.com/item/%E5%BC%82%E5%9B%BD%E7%9F%AD%E6%AF%9B%E7%8C%AB/4630871",
"image_url": "https://bkimg.cdn.bcebos.com/pic/e61190ef76c6a7efac2ebfa1f5faaf51f3de6628",
"description": "1960年左右,美国的育种专家将美国短毛猫,波斯猫进行交配繁育,期待改进美国猫的皮毛颜色并增加其体重,这样就诞生了异国短毛猫。在1966年被 CFA 承认为新品种。在育种期间,它还和俄罗斯蓝猫及缅甸猫杂交。1987 年以来,该品种的允许杂交品种被限定为波斯猫一种。FIFE 在 1986 年承认了异国短毛猫。该品种在美国已经非常普遍,在欧洲也在逐渐风行起来。异国短毛猫除拥有浓密皮毛外,还保留了波斯猫独特的可爱表情与圆滚滚的体型。性格也如波斯猫般文静、亲切,能慰藉主人的心,体形为中型到大型的短脚型,头部宽而圆,鼻子有明显的凹陷,皮毛有柔和的光泽,性情独立,不爱吵闹。"
}
},
{
"score": "0.0785699",
"name": "美国刚毛猫",
"baike_info": {}
}
],
"log_id": 1588736543378695878
}
我们拿到这个返回值之后就可以对结果进行一个编辑加展示,以达成我们想要的一个效果。
2.5 后台查看报表
可以在监控报表中查看我们的应用使用情况。
2.6 领取试用资源
如果使用上述代码一直调用失败,可以检查一下是否领取了免费的试用资源。
{
"error_code": 18,
"error_msg": "Open api qps request limit reached"
}
在控制台选择 产品服务
-> 人工智能
-> 图像识别
进入 图像识别
之后选择 领取免费资源
选择全部,然后领取即可。这里的免费试用资源调用量都是有限的,也有一个有效期,我们用来测试是足够的,但是如果这个调用量不够,那就需要去购买资源啦!
总结
- 本文对
动物识别
做了一个简单的学习使用教程。 - 在使用了AI平台的SDK之后,我们在最上层使用其实没有用到什么技术。只是负责调用对应的API接口就可以实现我们想要的效果。
- 不得不说现在想要开发一个新功能是越来越方便了,前提是会学习和借助工具。
- 如果真的是从零开始实现这个功能,那么就要进行一系列的AI算法训练等等操作。
- 不过我们作为开发人员,懂得如何正确的使用现有的工具就已经可以满足基本需求了!
- 学会了动物识别,不能允许身边的小动物能逃过我们的魔爪!把他们统统拍一遍,然后看看分别都是什么品种吧哈哈~
👑 评论区抽奖送书
最后在评论区进行抽取三名 优质评论 的小伙伴
送下面这本书籍
-
博主这有一些Unity相关的书籍,是由 清华大学出版社 赞助的,在此感谢~大家喜欢的也可以去官方购买!
-
在这里搞个小活动抽奖送给大家,对看书感兴趣的小伙伴可以参加一波呀,刚开始可能参与的不多,抽中概率很大哦!
-
《Unity和C#游戏编程入门(第5版)》
-
一本非常经典的Unity编程宝典,可以迅速提高编程水平!
-
尤其是想从事Unity开发的小伙伴,这本书就可以让你了解相关知识,对症下药可以极大地提高学习效率!
🎁抽奖规则
规则如下:
🚀 规则如下🚀 |
-
给本篇博客文章
点赞 收藏 评论
三连,然后在评论区评论里 送一本书籍,总共抽三本! -
总共
抽三本
,中的几率还是很大的哦~ 想看书的小伙伴参与起来! -
中奖信息
周四下午本篇文章评论区公布!记得留意呀! -
没抽到的,但是喜欢这本书的小伙伴也可以在网上自行购买哈,官方正品商店购买即可!
🚀 规则如上🚀 |
🎄《Unity和C#游戏编程入门(第5版)》推荐理由(⭐⭐⭐⭐⭐)
-
1 适用对象
本书既适合非计算机软件专业出身的编程小白,也适合即将走上工作岗位的广大毕业生,以及已经有编程经验但想转行做Unity方向的专业人士。同时,还可以作为广大职业院校、培训班的教学参考用书。 -
2 图书简介
-
通过简单易懂的步骤和示例学习C#基础编程
-
掌握如何在Unity中创建和应用脚本
-
用C#实现诸如角色控制和射击等基本游戏机制
-
理解接口与抽象类的概念
-
利用新版C#的强大功能解决复杂的编程问题
-
熟悉堆栈、队列、异常、错误处理等其他C#核心概念
-
探索游戏中人工智能(AI)的基础知识并将其应用于控制敌人行为
书本图片如下,喜欢的小伙伴参与起来!也可以购书链接自行购买哦~
喜欢的小伙伴可以尝试抽奖一下呀!
抽不到的小伙伴喜欢的也可以自行购买哦,这本书还是很不错的!