VNDetectTextRectanglesRequest not detecting text rectangles (includes image)

Hi everyone,

I'm trying to use VNDetectTextRectanglesRequest to detect text rectangles in an image. Here's my current code:

guard let cgImage = image.cgImage(forProposedRect: nil, context: nil, hints: nil) else {
    return
}

let textDetectionRequest = VNDetectTextRectanglesRequest { request, error in
    if let error = error {
        print("Text detection error: \(error)")
        return
    }

    guard let observations = request.results as? [VNTextObservation] else {
        print("No text rectangles detected.")
        return
    }

    print("Detected \(observations.count) text rectangles.")
    for observation in observations {
        print(observation.boundingBox)
    }
}
textDetectionRequest.revision = VNDetectTextRectanglesRequestRevision1
textDetectionRequest.reportCharacterBoxes = true

let handler = VNImageRequestHandler(cgImage: cgImage, orientation: .up, options: [:])
do {
    try handler.perform([textDetectionRequest])
} catch {
    print("Vision request error: \(error)")
}

The request completes without error, but no text rectangles are detected — the observations array is empty (count = 0). Here's a sample image I'm testing with: I expected VNTextObservation results, but I'm not getting any. Is there something I'm missing in how this API works? Or could it be a limitation of this request or revision? Thanks for any help!

A different image also has the same issue.

For non-latin languages you have to use VNRecognizeTextRequest with accurate as the recognitionLevel.

VNDetectTextRectanglesRequest not detecting text rectangles (includes image)
 
 
Q