做医疗器械网站怎么找高清大图,天津做网站选津坤科技,哪几个小说网站做网编拿的钱多,美团网站开发合作商文章目录 前言一、文本识别的分类二、实现步骤1.导入Vision Kit框架2.创建请求处理器3.在请求处理器中设置文字识别功能4.将图片添加到请求处理器中5.发起文字识别请求6.处理识别结果 三、运行结果测试1.纯英文环境2.中英文混合环境 前言
根据苹果的官方文档#xff0c;Visio… 文章目录 前言一、文本识别的分类二、实现步骤1.导入Vision Kit框架2.创建请求处理器3.在请求处理器中设置文字识别功能4.将图片添加到请求处理器中5.发起文字识别请求6.处理识别结果 三、运行结果测试1.纯英文环境2.中英文混合环境 前言
根据苹果的官方文档Vision可以执行面部检测、文本检测、条形码识别、图像注册和一般功能跟踪。Vision还允许将自定义Core ML模型用于分类或对象检测等任务。下面只是对文本识别的一个学习。 一、文本识别的分类
Vision的文本识别分为两种方式。
第一种是快速路径fast它使用框架的字符检测功能来查找单个字符然后使用小型机器学习模型来识别单个字符和单词这种方法类似于传统的光学字符识别(OCR。
第二种是准确路径(accurate)它使用神经网络查找字符串和行的文本然后执行进一步分析以查找单个单词和句子。这种方法更符合人类阅读文本的方式。
这两种识别方式都在VNRecognizeTextRequest 类的 recognitionLevel 属性中并且该属性为枚举类型 VNRequestTextRecognitionLevelAccurate: 表示精确级别的文本识别。在这个级别下识别结果的准确性较高但可能会增加处理时间和资源消耗。 VNRequestTextRecognitionLevelFast: 表示快速级别的文本识别。在这个级别下识别速度较快但可能会牺牲一些准确性。 使用其中任意一个路径都可以选择应用基于自然语言处理NLP的语言校正阶段以尽量减少误读的可能性。
流程图如下 识别图像中的文本官方文档
二、实现步骤
实现文字识别总共分为六个步骤
第一步导入Vision Kit框架第二步创建请求处理器第三步在请求处理器中设置文字识别功能第四步将图片添加到请求处理器中第五步发起文字识别请求第六步处理识别结果
1.导入Vision Kit框架
1.打开需要导入的Xcode项目
2.在导航器面板中选择您的项目文件
3.在项目设置中点击General选项卡然后在Frameworks, Libraries, and Embedded Content框架、库和嵌入内容部分点击按钮。 4.在弹出窗口中搜索并选择Vision.framework。 5.在项目文件中引入头文件
#import Vision/Vision.h
#import VisionKit/VisionKit.h2.创建请求处理器 // 创建一个请求处理器VNRecognizeTextRequest *request [[VNRecognizeTextRequest alloc] initWithCompletionHandler:^(VNRequest * _Nonnull request, NSError * _Nullable error) {if (error) {NSLog(文字识别出错: %, error);return;}}];
3.在请求处理器中设置文字识别功能
通过设置VNRecognizeTextRequest属性来设置文字识别功能
//设置参数
//搜索路径为准确路径request.recognitionLevel VNRequestTextRecognitionLevelAccurate;//语言范围是英文或者简体中文request.recognitionLanguages [en-US, zh-Hans];使用 recognitionLanguages 属性来设置文本识别的语言范围。recognitionLanguages 是一个字符串数组你可以将支持的语言标识符添加到数组中。 4.将图片添加到请求处理器中
创建了一个 VNImageRequestHandler 对象,并将需要识别的图像以 CGImage 的形式传入 VNImageRequestHandler *handler [[VNImageRequestHandler alloc] initWithCGImage:image.CGImage options:{}];5.发起文字识别请求
通过使用 VNImageRequestHandler 的 performRequests方法来实现 // 发起文字识别请求NSError *error nil;[handler performRequests:[request] error:error];if (error) {NSLog(文字识别请求出错: %, error);}6.处理识别结果
VNRecognizedTextObservation 类代表了 Vision 框架识别出的文本观察结果。使用 VNRecognizedTextObservation 对象的 topCandidates 方法返回一个数组其中包含了识别结果的候选文本。
// 处理识别结果NSArray *results request.results;for (VNRecognizedTextObservation *observation in results) {NSArrayVNRecognizedText * *topCandidates [observation topCandidates:1];if (topCandidates.count 0) {VNRecognizedText *recognizedText [topCandidates firstObject];NSString *text recognizedText.string;NSLog(识别结果: %, text);self.medicineLabel.text text;} else {NSLog(没有找到候选文本);}}三、运行结果测试
1.纯英文环境
1.准确路径下的运行结果
2.快速路径下的运行结果 可以看到在纯英文环境下两种路径的识别准确率都是非常高的
2.中英文混合环境
1.准确路径下的运行结果 2.快速路径下的运行结果 在中英文混合环境下虽然设置了识别范围是英文和简体中文但是准确路径只识别到了一个单词快速路径虽然识别了一个字段但是准确率不是特别高