您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Unity怎么實現OCR文字識別功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
首先登陸百度開發者中心,搜索文字識別服務:
創建一個應用,獲取AppID、APIKey、SecretKey秘鑰信息:
下載C# SDK,將AipSdk.dll動態庫導入Unity:
本文以通用文字識別為例,查閱官方文檔,以下是通用文字識別的返回數據結構:
在Unity中定義相應的數據結構:
using System; /// <summary> /// 通用文字識別 /// </summary> [Serializable] public class GeneralOcr { /// <summary> /// 圖像方向 -1未定義 0正弦 1逆時針90度 2逆時針180度 3逆時針270度 /// </summary> public int direction; /// <summary> /// 唯一的log id,用于問題定位 /// </summary> public int log_id; /// <summary> /// 識別結果數,表示words_result的元素個數 /// </summary> public int words_result_num; /// <summary> /// 定位和識別結果數組 /// </summary> public string[] words_result; /// <summary> /// 行置信度信息 /// </summary> public Probability probability; } /// <summary> /// 行置信度信息 /// </summary> [Serializable] public class Probability { /// <summary> /// 行置信度平均值 /// </summary> public int average; /// <summary> /// 行置信度方差 /// </summary> public int variance; /// <summary> /// 行置信度最小值 /// </summary> public int min; }
下面是調用時傳入的相關參數:
封裝調用函數:
using System; using System.Collections.Generic; using UnityEngine; public class OCR { //以下信息于百度開發者中心創建應用獲取 private const string appID = ""; private const string apiKey = ""; private const string secretKey = ""; /// <summary> /// 通用文字識別 /// </summary> /// <param name="bytes">圖片字節數據</param> /// <param name="language">識別語言類型 默認CHN_ENG中英文混合</param> /// <param name="detectDirection">是否檢測圖像朝向</param> /// <param name="detectLanguage">是否檢測語言,當前支持中、英、日、韓</param> /// <param name="probability">是否返回識別結果中每一行的置信度</param> /// <returns></returns> public static GeneralOcr General(byte[] bytes, string language = "CHN_ENG", bool detectDirection = false, bool detectLanguage = false, bool probability = false) { var client = new Baidu.Aip.Ocr.Ocr(apiKey, secretKey); try { var options = new Dictionary<string, object> { { "language_type", language }, { "detect_direction", detectDirection }, { "detect_language", detectLanguage }, { "probability", probability } }; var response = client.GeneralBasic(bytes, options); GeneralOcr generalOcr = JsonUtility.FromJson<GeneralOcr>(response.ToString()); return generalOcr; } catch (Exception error) { Debug.LogError(error); } return null; } }
以上是傳入圖片字節數據調用接口的方式,也可以通過URL調用,只需將GeneralBasic換為重載函數GeneralBasicUrl:
測試圖片:
OCR.General(File.ReadAllBytes(Application.dataPath + "/Picture.jpg"));
看完上述內容,你們對Unity怎么實現OCR文字識別功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。