Swift iOS – Vision не возвращает никаких наблюдений из cgImageIOS

Программируем под IOS
Ответить
Гость
 Swift iOS – Vision не возвращает никаких наблюдений из cgImage

Сообщение Гость »

Я пытаюсь написать приложение, позволяющее пользователю отслеживать японские символы, которое затем будет использовать Vision, чтобы определить, правильно ли они были нарисованы. Чтобы проверить это, я пытаюсь использовать в своих тестах английские и японские символы, но ни один из них не возвращает никаких наблюдений и, следовательно, не распознаваемых строк.

Код: Выделить всё

import UIKit
import Vision

func convertCanvasToImage(view: UIView) -> UIImage {
let renderer = UIGraphicsImageRenderer(size: view.bounds.size)
return renderer.image { ctx in
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
}
}

func runVisionRecognition(canvas: Canvas) {

NSLog("Start runVisionRecognition")
let uiImage = convertCanvasToImage(view: canvas)
guard let cgImage = uiImage.cgImage else { return }

let requestHandler = VNImageRequestHandler(cgImage: cgImage, options: [:])
let request = VNRecognizeTextRequest(completionHandler: recognizeTextHandler)
request.recognitionLevel = .accurate
request.recognitionLanguages = ["en-US"]
//request.minimumTextHeight = 0.1
request.usesLanguageCorrection = true
// request.maximumRecognitionCandidates = 10

do {
try requestHandler.perform([request])
} catch {
NSLog("Uh oh! \(error).")
}
}

func recognizeTextHandler(request: VNRequest, error: Error?) {
guard let observations =
request.results as? [VNRecognizedTextObservation] else {
NSLog("Whoops, observations like \(request.results)")
return
}
let recognizedStrings = observations.compactMap { observation in
return observation.topCandidates(1).first?.string
}

NSLog("Observation: \(observations)")
NSLog("Recognised Strings: \(recognizedStrings)")
}
Мои персонажи создаются на холсте, который я затем преобразую в изображение для передачи в Vision (см. верхнюю функцию).
Ниже приведены некоторые из них. примеры моего почерка на Холсте. NSLog возвращает «Наблюдение: [], Распознанные строки: []», но, как вы можете видеть, приложение «Фотографии», похоже, нормально распознает входные данные!
Вид моего приложения с буквами нарисовано на холсте.
Скриншот из приложения «Фото», показывающий четко читаемые буквы (как на английском, так и на японском языках).
Моя теория: что-то происходит ошибка между преобразованием Canvas в cgImage, но если вы посмотрите на первое изображение, верхнее «APPLE» — это преобразованное изображение из моего нижнего рисунка «APPLE».

Источник: https://stackoverflow.com/questions/779 ... om-cgimage
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»