美文网首页
iOS Vision Kit框架实现图片文字识别

iOS Vision Kit框架实现图片文字识别

作者: 透支未来 | 来源:发表于2024-01-29 17:42 被阅读0次

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

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

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

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

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


image.png

#import <Vision/Vision.h>
#import <VisionKit/VisionKit.h>
// 创建一个请求处理器
       VNRecognizeTextRequest *request = [[VNRecognizeTextRequest alloc] initWithCompletionHandler:^(VNRequest * _Nonnull request, NSError * _Nullable error) {
           if (error) {
               NSLog(@"文字识别出错: %@", error);
               return;
           }
       }];
//设置参数
    //搜索路径为准确路径
    request.recognitionLevel = VNRequestTextRecognitionLevelAccurate;
    //语言范围是英文或者简体中文
    request.recognitionLanguages = @[/*@"en-US", */@"zh-Hans"];
UIImage *image = [UIImage imageNamed:@"chinese"];
    
    VNImageRequestHandler *handler = [[VNImageRequestHandler alloc] initWithCGImage:image.CGImage options:@{}];

    // 发起文字识别请求
    NSError *error = nil;
    [handler performRequests:@[request] error:&error];
    if (error) {
        NSLog(@"文字识别请求出错: %@", error);
    }

    // 处理识别结果
    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);
        } else {
            NSLog(@"没有找到候选文本");
        }
    }

相关文章

网友评论

      本文标题:iOS Vision Kit框架实现图片文字识别

      本文链接:https://www.haomeiwen.com/subject/cfzgodtx.html