Tesseract traineddata no funciona en el proyecto Swift 3.0 con la versión 4.0
Estoy intentando usar Tesseract-OCR-iOS en un nuevo proyecto Swift 3.0. Estoy usando Xcode Versión 8.1 (8B62). CocoaPods es la versión 1.1.1.
Cuando intento usar tesseract.recognize()
, mi aplicación se bloquea y obtengo la siguiente salida en la consola:
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53
Encontré este post, que suena que estoy usando la versión incorrecta de traineddata
. He descargado tessdata
desde el repositorio tesseract-ocr/tessdata, así que estoy desconcertado en cuanto a por qué tendría un desajuste en la versión numero.
Cualquier sugerencia de cómo hacer que Tesseract funcione es muy apreciada. A continuación se muestra información adicional re: mi configuración.
Así es como se ve mi Podfile
:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'TesseractDemo' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for TesseractDemo
pod 'TesseractOCRiOS', '4.0.0'
end
He arrastrado una carpeta tessdata
que contiene eng.traineddata
en el directorio raíz de mi proyecto fuera de Xcode y arrastrado una referencia desde Finder al Navegador de proyectos de Xcode.
Todo funciona bien hasta este punto. No hay errores de compilador, lloriqueo del enlazador, etc. En un UIViewController
estoy importando TesseratOCR
y llamándolo así:
// MARK: - OCR Methods
func scanImage(image: UIImage) {
if let tesseract = G8Tesseract(language: "eng") {
tesseract.delegate = self
tesseract.image = imageToScan?.g8_blackAndWhite()
tesseract.recognize()
textView.text = tesseract.recognizedText
}
}
Actualización Encontré un enlace a un repositorio de archivos traineddata para la versión 4.0. Bombardeé a mi viejo eng.traineddata y lo reemplazó con el del repositorio 4.0. Obtengo el mismo error haciendo referencia a la misma línea.
2 answers
La versión actual de eng.traineddata
enlazada anteriormente en GitHub no funcionará con la versión actual de Tesseract-OCR-iOS.
Las instrucciones de instalación publicadas en GitHub funcionan perfectamente si tienes el archivo <language>.traineddata
correcto.
Descubrí esto después de arrastrar el eng.traineddata
desde el brillante tutorial Tesseract de Lyndsey Scott sobre Ray Wenderlich.
Este repositorio contiene el archivo eng.traineddata
que necesitaba para que Tesseract funcionara. No estoy seguro si eso aplica a todos los idiomas.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-15 16:20:15
Tuve el mismo problema ayer, creo que el problema es con el diccionario, solo cambio el diccionario de github para el diccionario "Lyndsey Scott brillante Tesseract tutorial on Ray Wenderlich" (publicado líneas antes)y funciona muy bien. Tengo xcode 9.4.1 y reconoce el archivo lyndsey de una manera diferente que el archivo github
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-25 21:05:18