Closed nikolindima closed 3 years ago
Добрый день!
Все верно, т.к. в таком случае ожидается обработка потока кадров.
Если поставить cameraMode - true. То результат очень долго не приходит и в итоге приходит всегда пустой
Отличие этих методов заключается в наличии атрибута cameraMode
, установив который в true
, этот метод начнет принимать серию кадров, а не один, т.е. если Вы вызовете recognizeImage
с cameraMode = false
, этот метод будет работать таким же образом, как и метод recognizeImage
, в котором не фигурирует cameraMode
.
Это я понял. но почему результат с cameraMode true пустой приходит?
Логика работы в режиме распознавания серии кадров отличается от режима по обработке только одного кадра. Как правило, одного кадра для работы в режиме распознавания серии кадров недостаточно, чтобы получить результаты распознавания документа.
Я делаю так - получаю кадры с камеры и кладу в вашу библиотеку с включенным cameraMode
public func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {return}
guard let cgImage = pixelBuffer.cgImage else {
return
}
let bigImage = UIImage(cgImage: cgImage)
DocReader.shared.recognizeImage(bigImage, cameraMode: true) { (action, results, error) in
if action == .complete {
guard let results = results else {
print("Completed without result")
return
}
Через какое-то время всегда приходит пустой результат [GroupedAttributes(type: ".rawImage", items: [Cleverbase.Attribute(name: "Documentbeeld [0]", value: Optional(""), lcid: nil, valid: nil, source: Optional(__C.RGLResultType), image: Optional(<UIImage:0x283850000 anonymous {1080, 1920}>), equality: true, rfidStatus: nil, checkResult: nil)], comparisonLHS: nil, comparisonRHS: nil)]
У нас есть демо пример, где показано, как это можно реализовать, который можно найти здесь. Попробуйте повторить эту проблему там.
Я попробовал этот проект - результат такой же самое. 1 в 1. Пусто.
Не могли бы Вы отправить нам изображение документа, который пытаетесь обработать? Email: support@regulaforensics.com
Отправил. Но похоже что проблема именно в паспорте. Попробовал сейчас сосканировать паспорт из гугла и всё получилось без проблем.
Спасибо!
Проблема заключается в том детекции MRZ - не может найтись на кадре, отправляемом на обработку. Соответственно, по достижению тайм-аутов, установленных по умолчанию в нашем SDK, сканирование завершается и нету никаких результатов. Решить данную проблему можно следующим образом: нужно, чтобы MRZ занимало больше площади относительно кадра, отправляемого на обработку. Если вы попробуете обработать этот документ в сценарии Mrz поместив MRZ максимально близко в камеру, MRZ успешно распознается. Мы изучим данное поведение более подробно и попытаемся улучшить детекцию MRZ данного кейса.
Понял. спасибо
Добрый день. Пытаюсь использовать вот этот метод. Захватываю изображение с камеры и передаю в ваш ридер
Если поставить cameraMode - true. То результат очень долго не приходит и в итоге приходит всегда пустой
[GroupedAttributes(type: ".rawImage", items: [Cleverbase.Attribute(name: "Documentbeeld [0]", value: Optional(""), lcid: nil, valid: nil, source: Optional(__C.RGLResultType), image: Optional(<UIImage:0x283850000 anonymous {1080, 1920}>), equality: true, rfidStatus: nil, checkResult: nil)], comparisonLHS: nil, comparisonRHS: nil)]
Если использовать вот этот метод
результат возвращается без проблем на каждый фрейм с камеры. Но не понятно на сколько он лучше или хуже может быть чем с cameraMode: true.