您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Unity 百度AI如何實現Logo商標識別,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
接口介紹:
該請求用于檢測和識別圖片中的品牌LOGO信息。即對于輸入的一張圖片(可正常解碼,且長寬比適宜),輸出圖片中LOGO的名稱、位置和置信度。當效果欠佳時,可以建立子庫(在百度開發者中心控制臺創建應用并申請建庫)并通過調用logo入口接口完成自定義logo入庫,提高識別效果。
創建應用:
在產品服務中搜索圖像識別,創建應用,獲取AppID、APIKey、SecretKey信息:
查閱官方文檔,以下是Logo商標識別接口返回數據參數詳情:
定義數據結構:
using System; /// <summary> /// Logo識別響應數據結構 /// </summary> [Serializable] public class LogoRecognition { /// <summary> /// 請求標識碼,隨機數,唯一 /// </summary> public float log_id; /// <summary> /// 返回結果數目,即:result數組中元素個數 /// </summary> public int result_num; /// <summary> /// 返回結果數組,每一項為一個識別出的logo /// </summary> public LogoRecognitionResult[] result; } [Serializable] public class LogoRecognitionResult { /// <summary> /// 位置信息 /// </summary> public LogoRecognitionResultLocation location; /// <summary> /// 識別的品牌名稱 /// </summary> public string name; /// <summary> /// 分類結果置信度(0--1.0) /// </summary> public float probability; /// <summary> /// type=0為1千種高優商標識別結果;type=1為2萬類logo庫的結果;其它type為自定義logo庫結果 /// </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動態庫導入到Unity中:
以下是調用接口時傳入的參數詳情:
封裝調用函數:
using System; using UnityEngine; using Newtonsoft.Json; using System.Collections.Generic; /// <summary> /// 圖像識別 /// </summary> public class ImageRecognition { //以下信息于百度開發者中心控制臺創建應用獲取 private const string appID = ""; private const string apiKey = ""; private const string secretKey = ""; /// <summary> /// Logo商標識別 /// </summary> /// <param name="bytes">Logo圖片字節數據</param> /// <param name="customLib">是否只使用自定義logo庫的結果,默認false:返回自定義庫+默認庫的識別結果</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")); } }
以上就是Unity 百度AI如何實現Logo商標識別,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。