I'm working on project, and integrated card.io and tess-two libraries. I have already owned these libraries, and use for reading national ID and other ID cards. Before upgrading to ndk-14, everything worked well. But after upgrade, i got lots of problems. I downgraded to ndk-13, but yet have these errors. Here are my logs:
04-06 14:22:41.997 3075-3075/com.javadbadirkhanly.newcardscannerproject A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 3075 (dscannerproject)
[ 04-06 14:22:42.000 375: 375 W/ ]
debuggerd: handling request: pid=3075 uid=10125 gid=10125 tid=3075
04-06 14:22:42.099 3236-3236/? A/DEBUG: pid: 3075, tid: 3075, name: dscannerproject >>> com.javadbadirkhanly.newcardscannerproject <<<
04-06 14:22:42.169 3236-3236/? A/DEBUG: #04 pc 0000000000139a60 /data/app/com.javadbadirkhanly.newcardscannerproject-1/lib/arm64/libtess.so (_ZNK7ERRCODE5errorEPKc16TessErrorLogCodeS1_z+360)
04-06 14:22:42.169 3236-3236/? A/DEBUG: #05 pc 0000000000148b90 /data/app/com.javadbadirkhanly.newcardscannerproject-1/lib/arm64/libtess.so (_ZN9tesseract8Classify22InitAdaptiveClassifierEb+252)
04-06 14:22:42.169 3236-3236/? A/DEBUG: #06 pc 0000000000233364 /data/app/com.javadbadirkhanly.newcardscannerproject-1/lib/arm64/libtess.so (_ZN9tesseract7Wordrec14program_editupEPKcbb+56)
04-06 14:22:42.169 3236-3236/? A/DEBUG: #07 pc 00000000000f0bfc /data/app/com.javadbadirkhanly.newcardscannerproject-1/lib/arm64/libtess.so (_ZN9tesseract9Tesseract23init_tesseract_internalEPKcS2_S2_NS_13OcrEngineModeEPPciPK13GenericVectorI6STRINGESA_b+268)
04-06 14:22:42.169 3236-3236/? A/DEBUG: #08 pc 00000000000f06bc /data/app/com.javadbadirkhanly.newcardscannerproject-1/lib/arm64/libtess.so (_ZN9tesseract9Tesseract14init_tesseractEPKcS2_S2_NS_13OcrEngineModeEPPciPK13GenericVectorI6STRINGESA_b+392)
04-06 14:22:42.169 3236-3236/? A/DEBUG: #09 pc 00000000000a1788 /data/app/com.javadbadirkhanly.newcardscannerproject-1/lib/arm64/libtess.so (_ZN9tesseract11TessBaseAPI4InitEPKcS2_NS_13OcrEngineModeEPPciPK13GenericVectorI6STRINGESA_b+288)
04-06 14:22:42.169 3236-3236/? A/DEBUG: #10 pc 000000000001f37c /data/app/com.javadbadirkhanly.newcardscannerproject-1/lib/arm64/libcardioRecognizer_tegra2.so (Java_com_javadbadirkhanly_newcardscannerproject_hardware_CardScanner_nSetup+104)
04-06 14:22:43.255 4939-3258/? W/ActivityManager: Force finishing activity com.javadbadirkhanly.newcardscannerproject/.activities.CardIOActivity
[ 04-06 14:22:43.276 375: 375 W/ ]
debuggerd: resuming target 3075
04-06 14:22:43.284 4939-19110/? I/WindowManager: WIN DEATH: Window{63d7429 u0 com.javadbadirkhanly.newcardscannerproject/com.javadbadirkhanly.newcardscannerproject.activities.CardIOActivity}
04-06 14:22:43.285 4939-4958/? I/ActivityManager: Process com.javadbadirkhanly.newcardscannerproject (pid 3075) has died
04-06 14:22:43.285 4939-4958/? W/ActivityManager: Scheduling restart of crashed service com.javadbadirkhanly.newcardscannerproject/com.android.tools.fd.runtime.InstantRunService in 1000ms
04-06 14:22:43.286 4939-6710/? W/InputDispatcher: channel '7e4664e com.javadbadirkhanly.newcardscannerproject/com.javadbadirkhanly.newcardscannerproject.activities.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
04-06 14:22:43.286 4939-6710/? E/InputDispatcher: channel '7e4664e com.javadbadirkhanly.newcardscannerproject/com.javadbadirkhanly.newcardscannerproject.activities.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
04-06 14:22:43.292 4939-21535/? I/WindowManager: WIN DEATH: Window{7e4664e u0 com.javadbadirkhanly.newcardscannerproject/com.javadbadirkhanly.newcardscannerproject.activities.MainActivity}
04-06 14:22:43.292 4939-21535/? W/InputDispatcher: Attempted to unregister already unregistered input channel '7e4664e com.javadbadirkhanly.newcardscannerproject/com.javadbadirkhanly.newcardscannerproject.activities.MainActivity (server)'
04-06 14:22:43.305 4939-4958/? I/ActivityManager: Start proc 3261:com.javadbadirkhanly.newcardscannerproject/u0a125 for activity com.javadbadirkhanly.newcardscannerproject/.activities.MainActivity
04-06 14:22:43.611 3261-3261/? I/InstantRun: Starting Instant Run Server for com.javadbadirkhanly.newcardscannerproject
04-06 14:22:43.815 4939-4996/? I/ActivityManager: Displayed com.javadbadirkhanly.newcardscannerproject/.activities.MainActivity: +523ms
04-06 14:24:38.638 4939-3258/? W/ActivityManager: Ignoring remove of inactive process: ProcessRecord{fad747e 0:com.javadbadirkhanly.newcardscannerproject/u0a125}
The problem about libtess.so library, but i don't know why? Please help me, and ask for more details.
Here is my some essential codes from jni:
Initialize:
int res = api->Init(env->GetStringUTFChars(dataPath, 0), "aze");
if (res) {
dmz_error_log("Could not initialize tesseract");
} else {
dmz_debug_log("Initialized tesseract");
}
Getting image from card:
char *getCardNumberImage(cv::Mat cardImage) {
cv::Rect cropRect(kCreditCardTargetWidth * 76 / mmCardWidth,
kCreditCardTargetHeight * 14 / mmCardHeight,
kCreditCardTargetWidth * 24 / mmCardWidth,
kCreditCardTargetHeight * 4 / mmCardHeight);
api->SetVariable("tessedit_char_whitelist",
"0123456789");
return getOCRText(cardImage(cropRect));
}
Getting result from tesseract:
char *getOCRText(cv::Mat image) {
api->SetImage((uchar *) image.data, image.size().width, image.size().height,
image.channels(), image.step1());
// Get OCR result
char *outText = api->GetUTF8Text();
dmz_debug_log("TEXT %s", outText);
return outText;
}
I When i use training data which trained with 3.05 it works well, but when i use data which trained with 4.00 it gives me such errors. My tesseract version is 4.00 Alpha.