【iOS】——基于Vision Kit框架实现图片文字识别

这篇具有很好参考价值的文章主要介绍了【iOS】——基于Vision Kit框架实现图片文字识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

根据苹果的官方文档,Vision可以执行面部检测、文本检测、条形码识别、图像注册和一般功能跟踪。Vision还允许将自定义Core ML模型用于分类或对象检测等任务。下面只是对文本识别的一个学习。


一、文本识别的分类

Vision的文本识别分为两种方式。

第一种是快速路径(fast),它使用框架的字符检测功能来查找单个字符,然后使用小型机器学习模型来识别单个字符和单词,这种方法类似于传统的光学字符识别(OCR)。

第二种是准确路径(accurate),它使用神经网络查找字符串和行的文本,然后执行进一步分析以查找单个单词和句子。这种方法更符合人类阅读文本的方式。

这两种识别方式都在VNRecognizeTextRequest 类的 recognitionLevel 属性中,并且该属性为枚举类型:

VNRequestTextRecognitionLevelAccurate: 表示精确级别的文本识别。在这个级别下,识别结果的准确性较高,但可能会增加处理时间和资源消耗。
VNRequestTextRecognitionLevelFast: 表示快速级别的文本识别。在这个级别下,识别速度较快,但可能会牺牲一些准确性。

使用其中任意一个路径都可以选择应用基于自然语言处理(NLP)的语言校正阶段,以尽量减少误读的可能性。

流程图如下:

【iOS】——基于Vision Kit框架实现图片文字识别,ios,objective-c,学习,apple vision pro

识别图像中的文本官方文档

二、实现步骤

实现文字识别总共分为六个步骤:

  • 第一步:导入Vision Kit框架
  • 第二步:创建请求处理器
  • 第三步:在请求处理器中设置文字识别功能
  • 第四步:将图片添加到请求处理器中
  • 第五步:发起文字识别请求
  • 第六步:处理识别结果

1.导入Vision Kit框架

1.打开需要导入的Xcode项目

2.在导航器面板中,选择您的项目文件

3.在项目设置中点击"General"选项卡,然后在"Frameworks, Libraries, and Embedded Content"(框架、库和嵌入内容)部分,点击"+"按钮。

【iOS】——基于Vision Kit框架实现图片文字识别,ios,objective-c,学习,apple vision pro

4.在弹出窗口中,搜索并选择"Vision.framework"。

【iOS】——基于Vision Kit框架实现图片文字识别,ios,objective-c,学习,apple vision pro

5.在项目文件中引入头文件

#import <Vision/Vision.h>
#import <VisionKit/VisionKit.h>

2.创建请求处理器

 // 创建一个请求处理器
    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) {
        NSArray<VNRecognizedText *> *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.准确路径下的运行结果
【iOS】——基于Vision Kit框架实现图片文字识别,ios,objective-c,学习,apple vision pro

2.快速路径下的运行结果
【iOS】——基于Vision Kit框架实现图片文字识别,ios,objective-c,学习,apple vision pro
可以看到在纯英文环境下,两种路径的识别准确率都是非常高的

2.中英文混合环境

1.准确路径下的运行结果
【iOS】——基于Vision Kit框架实现图片文字识别,ios,objective-c,学习,apple vision pro
2.快速路径下的运行结果
【iOS】——基于Vision Kit框架实现图片文字识别,ios,objective-c,学习,apple vision pro
在中英文混合环境下,虽然设置了识别范围是英文和简体中文但是准确路径只识别到了一个单词,快速路径虽然识别了一个字段但是准确率不是特别高文章来源地址https://www.toymoban.com/news/detail-804340.html

到了这里,关于【iOS】——基于Vision Kit框架实现图片文字识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 调用阿里API实现图片中的文字识别

    王雪玉,女,西安工程大学电子信息学院,2022级研究生 研究方向:机器视觉与人工智能 电子邮件:2239580540@qq.com 王泽宇,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组 研究方向:机器视觉与人工智能 电子邮件:2717124491@qq.com 文字识别(OCR)可以将

    2024年02月08日
    浏览(70)
  • 【实操】Java+百度ocr,实现图片识别文字小工具

    图片识别文字,咱用java也可以 通过 java+百度ocr ,实现一个截图或上传图片, 图片识别文字的小工具 。并通过 exe4j工具 将jar包封装成exe可执行桌面文件,方便使用及学习。 一位特别的老友即将 在2023年10月26日 年满 30周岁 ,愿 平安喜乐 公众号:【JavaDog程序狗】 关注公众号

    2024年02月08日
    浏览(45)
  • 利用Java实现的图片中文字识别,你学会了吗?

    一. 背景 今天有粉丝向波哥提出了这样一个疑问:给出一张图片,如何利用Java中的技术获取图片中的文字信息?针对这个问题,你有么有解决办法呢?如果你没有想到好的解决思路,也不用怕,看波哥来给你解决这个问题! 二. 解决思路 首先说到读取文件,我们耳熟能详的

    2024年02月11日
    浏览(45)
  • 毕设开源 在iOS上使用OpenCV实现图片中的文字框选

    在iOS上使用OpenCV实现图片中的文字框选 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 首先,需要去OpenCV官网下载iOS的framework,下载好后拖入新建的工程中即可,由于OpenCV库是使用C++编写,所以swift无法直接使用,需要使用OC做桥接,需要使用swift的同学可以看

    2024年03月25日
    浏览(38)
  • Python实现OCR大批量识别图片文字,并将文字保存到txt文档中,文末源码直接拿!

    在当今数字化时代,图像文字识别(Optical Character Recognition, OCR)技术的应用越来越广泛。 OCR技术可以将印刷体文字转化为可编辑的文本格式,从而方便进行文本分析、数据挖掘等操作。Python作为一种简洁、易用的编程语言,提供了丰富的图像处理和机器学习库,使得实现图

    2024年02月15日
    浏览(48)
  • 计算机毕设分享 在iOS上使用OpenCV实现图片中的文字框选

    在iOS上使用OpenCV实现图片中的文字框选 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 首先,需要去OpenCV官网下载iOS的framework,下载好后拖入新建的工程中即可,由于OpenCV库是使用C++编写,所以swift无法直接使用,需要使用OC做桥接,需要使用swift的同学可以看

    2024年02月21日
    浏览(50)
  • Java也能做OCR!SpringBoot 整合 Tess4J 实现图片文字识别

    先简单给没听过的xdm解释下,这里要分清楚Tesseract和Tess4j的区别。 Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系统

    2024年02月04日
    浏览(35)
  • 【Android -- 开源库】ML Kit 实现数字墨水识别功能

    机器学习套件是一个移动 SDK,将 Google 的设备端机器学习专业知识运用于 Android 和 iOS 应用。使用我们强大而易用的 Vision API 和 Natural Language API 解决应用中的常见挑战,或打造全新的用户体验。所有功能均由 Google 一流的机器学习模型提供支持,可免费使用。 学习指南:htt

    2024年02月09日
    浏览(54)
  • 【Python • 图片识别】pytesseract快速识别提取图片中的文字

    提示:本文多图,请手机端注意流量。 利用python做图片识别,识别提取图片中的文字会有很多方法,但是想要简单一点怎么办,那就可以使用tesseract识别引擎来实现,一行代码就可以做到提取图片文本。 本程序用到了两个python库,pytesseract和PIL,所以先来安装。 运行以下命

    2024年02月02日
    浏览(40)
  • python-图片文字识别

    两种方法 1. 第一种方法 2. 第二种方法

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包