ios - library - Los datos entrenados de Tesseract no funcionan en el proyecto Swift 3.0 utilizando la versiĆ³n 4.0
tesseract ocr swift 4 (2)
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 falla y obtengo el siguiente resultado en la consola:
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53
Encontré esta publicación , que suena que estoy usando la versión incorrecta de traineddata
. Descargué tessdata
del tessdata
tesseract-ocr / tessdata , así que estoy desconcertado de por qué tendría una discrepancia en los números de versión.
Cualquier sugerencia sobre cómo hacer funcionar Tesseract es muy apreciada. A continuación hay información adicional sobre mi configuración.
Podfile
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 de tessdata
contiene eng.traineddata
al directorio raíz de mi proyecto fuera de Xcode y arrastré una referencia desde Finder al Project Navigator de Xcode.
Todo funciona bien hasta este punto. No hay errores de compilación, UIViewController
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
}
}
Actualizar Encontré un enlace a un repositorio de archivos entrenados de datos para la versión 4.0 . Descubrí mi antiguo archivo eng.traineddata y lo reemplacé con el del repositorio 4.0. Me sale el mismo error que hace referencia a la misma línea.
Ayer tuve el mismo problema, creo que el problema está en el diccionario, acabo de cambiar el diccionario de github para el "Tutorial brillante de Tesseract de Lyndsey Scott en el diccionario de Ray Wenderlich" (líneas publicadas anteriormente) y funciona muy bien. Tengo xcode 9.4.1 y reconozco el archivo lyndsey de una manera diferente a la del archivo github
La versión actual de eng.traineddata
vinculada anteriormente en GitHub no funcionará con la versión actual de Tesseract-OCR-iOS .
Las instrucciones de instalación publicadas en GitHub funcionan a la perfección si tienes el archivo <language>.traineddata
.
Descubrí esto después de arrastrar el eng.traineddata
del 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 de si eso se aplica a todos los idiomas.