【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);
        }
    }

我们识别的测试图片如下:
在这里插入图片描述
识别结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq992817263/article/details/103765003
今日推荐