【Unity】 HTFramework框架(二十九)OCR文字識別

更新日期:2019年12月30日。
Github源碼:[點我獲取源碼]

OCR文字識別簡介

對接百度AI開放平臺,封裝的文字識別接口。

使用OCR文字識別

設置TOKEN

文字識別需要鑑權認證的通行令牌TOKEN,登錄百度AI開放平臺控制檯,通過新建應用獲取應用的APIKEYSECRETKEY,在任意初始化位置設置這兩個key:

        CharacterRecognitioner.SetAPIKEY("你的應用APIKEY");
        CharacterRecognitioner.SetSECRETKEY("你的應用SECRETKEY");

然後在調用文字識別接口前,必須先生成TOKEN(一個TOKEN的有效期是30天,失效後必須重新生成):

		CharacterRecognitioner.GenerateTOKEN();

由於上文的生成TOKEN的接口無法跨域,所以在WebGL平臺無效,所以我們只能在外部生成TOKEN再賦值給CharacterRecognitioner:

        CharacterRecognitioner.SetTOKEN("外部生成的TOKEN");

調用不同的識別方法

文字識別根據精度和識別數據的不同,分爲多個識別方法,目前支持如下的幾個識別方法:

1.OCRGeneralBasicRecognition 通用文字識別方法: 多場景、多語種、高精度的整圖文字檢測和識別。

2.OCRGeneralRecognition 通用文字識別方法(含位置信息版): 多場景、多語種、高精度的整圖文字檢測和識別,並返回文字在圖中的位置信息。

3.OCRAccurateBasicRecognition 通用文字識別方法(高精度版): 多場景、多語種、高精度的整圖文字檢測和識別(精度更高,但更耗時)。

4.OCRAccurateRecognition 通用文字識別方法(高精度含位置版): 多場景、多語種、高精度的整圖文字檢測和識別,並返回文字在圖中的位置信息(精度更高,但更耗時)。

開始識別

設置了TOKEN之後便可以直接開始識別了,調用如下接口:

	private IEnumerator Start()
	{
        CharacterRecognitioner.SetAPIKEY("你的應用APIKEY");
        CharacterRecognitioner.SetSECRETKEY("你的應用SECRETKEY");

        //等待生成TOKEN完成
        yield return CharacterRecognitioner.GenerateTOKEN();

        //待識別的圖片
        Texture2D texture = Resources.Load<Texture2D>("Test");
        //使用高精度識別方法
        OCRAccurateBasicRecognition recognition = new OCRAccurateBasicRecognition(texture);
        recognition.SuccessHandler = RecognitionSucceed;
        //識別文字
        yield return CharacterRecognitioner.Recognition(recognition);
    }

    //識別成功回調
    private void RecognitionSucceed(OCRResponse response)
	{
        GlobalTools.LogInfo("識別到文字數量:" + response.WordsCount);
        GlobalTools.LogInfo("識別到如下文字:");
        for (int i = 0; i < response.Words.Count; i++)
        {
            GlobalTools.LogInfo(response.Words[i].Content);
        }
    }

我們識別的測試圖片如下:
在這裏插入圖片描述
識別結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章