Unity?百度AI實現(xiàn)Logo商標(biāo)識別
接口介紹:
該請求用于檢測和識別圖片中的品牌LOGO信息。即對于輸入的一張圖片(可正常解碼,且長寬比適宜),輸出圖片中LOGO的名稱、位置和置信度。當(dāng)效果欠佳時,可以建立子庫(在百度開發(fā)者中心控制臺創(chuàng)建應(yīng)用并申請建庫)并通過調(diào)用logo入口接口完成自定義logo入庫,提高識別效果。
創(chuàng)建應(yīng)用:
在產(chǎn)品服務(wù)中搜索圖像識別,創(chuàng)建應(yīng)用,獲取AppID、APIKey、SecretKey信息:


查閱官方文檔,以下是Logo商標(biāo)識別接口返回數(shù)據(jù)參數(shù)詳情:

定義數(shù)據(jù)結(jié)構(gòu):
using System;
/// <summary>
/// Logo識別響應(yīng)數(shù)據(jù)結(jié)構(gòu)
/// </summary>
[Serializable]
public class LogoRecognition
{
/// <summary>
/// 請求標(biāo)識碼,隨機數(shù),唯一
/// </summary>
public float log_id;
/// <summary>
/// 返回結(jié)果數(shù)目,即:result數(shù)組中元素個數(shù)
/// </summary>
public int result_num;
/// <summary>
/// 返回結(jié)果數(shù)組,每一項為一個識別出的logo
/// </summary>
public LogoRecognitionResult[] result;
}
[Serializable]
public class LogoRecognitionResult
{
/// <summary>
/// 位置信息
/// </summary>
public LogoRecognitionResultLocation location;
/// <summary>
/// 識別的品牌名稱
/// </summary>
public string name;
/// <summary>
/// 分類結(jié)果置信度(0--1.0)
/// </summary>
public float probability;
/// <summary>
/// type=0為1千種高優(yōu)商標(biāo)識別結(jié)果;type=1為2萬類logo庫的結(jié)果;其它type為自定義logo庫結(jié)果
/// </summary>
public int type;
}
/// <summary>
/// 位置信息
/// </summary>
[Serializable]
public class LogoRecognitionResultLocation
{
/// <summary>
/// 左起像素位置
/// </summary>
public float left;
/// <summary>
/// 上起像素位置
/// </summary>
public float top;
/// <summary>
/// 像素寬
/// </summary>
public float width;
/// <summary>
/// 像素高
/// </summary>
public float height;
}
下載C# SDK:

下載完成后將AipSdk.dll動態(tài)庫導(dǎo)入到Unity中:

以下是調(diào)用接口時傳入的參數(shù)詳情:

封裝調(diào)用函數(shù):
using System;
using UnityEngine;
using Newtonsoft.Json;
using System.Collections.Generic;
/// <summary>
/// 圖像識別
/// </summary>
public class ImageRecognition
{
//以下信息于百度開發(fā)者中心控制臺創(chuàng)建應(yīng)用獲取
private const string appID = "";
private const string apiKey = "";
private const string secretKey = "";
/// <summary>
/// Logo商標(biāo)識別
/// </summary>
/// <param name="bytes">Logo圖片字節(jié)數(shù)據(jù)</param>
/// <param name="customLib">是否只使用自定義logo庫的結(jié)果,默認(rèn)false:返回自定義庫+默認(rèn)庫的識別結(jié)果</param>
/// <returns></returns>
public static LogoRecognition Logo(byte[] bytes, bool customLib = false)
{
var client = new Baidu.Aip.ImageClassify.ImageClassify(apiKey, secretKey);
try
{
var options = new Dictionary<string, object>
{
{ "custom_lib", customLib}
};
var response = client.LogoSearch(bytes, options);
LogoRecognition logoRecognition = JsonConvert.DeserializeObject<LogoRecognition>(response.ToString());
return logoRecognition;
}
catch (Exception error)
{
Debug.LogError(error);
}
return null;
}
}
測試圖片:

using System.IO;
using UnityEngine;
public class Example : MonoBehaviour
{
private void Start()
{
ImageRecognition.Logo(File.ReadAllBytes(Application.dataPath + "/Picture.jpg"));
}
}
到此這篇關(guān)于Unity 百度AI實現(xiàn)Logo商標(biāo)識別的文章就介紹到這了,更多相關(guān)Unity商標(biāo)識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#接口INotifyPropertyChanged使用方法
這篇文章介紹了C#接口INotifyPropertyChanged的使用方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01
Unity 從Resources中動態(tài)加載Sprite圖片的操作
這篇文章主要介紹了Unity 從Resources中動態(tài)加載Sprite圖片的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
C#使用GZipStream實現(xiàn)文件的壓縮與解壓
這篇文章主要為大家詳細(xì)介紹了C#使用GZipStream實現(xiàn)文件的壓縮與解壓,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10

