C# ultimateMICR-SDK in Linux Container

341 views
Skip to first unread message

Loluafo

unread,
Nov 30, 2021, 1:22:23 PM11/30/21
to doubango-ai
Good day,

I am currently running a .NET application built using your ultimateMICR-SDK. I am presently trying to convert this application to run in a Linux Docker container. Please note I am using 2.5.0 because that is what my licence (old format) supports. The two main issues I have encountered are:

1. Issue of the licence working inside a container. I have read the documentation below, so I should hopefully have no problem there. When the time comes I will have to purchase/generate a fresh licence using the provided tool:


2. Issue of PInvoke (DLLImport) inside Linux: The present c# sample application uses PInvoke (see ultimateMicrSdkPINVOKE.cs) to interact with the native ultimateMICR-SDK.dll, unfortunately this assembly is windows only. Essentially, I need a linux version of the native ultimateMICR-SDK.dll (.so instead of .dll) as well as hopefully a working sample application if you have one. The error stack is as follows:

-------
System.TypeInitializationException: The type initializer for 'org.doubango.ultimateMicr.Sdk.ultimateMicrSdkPINVOKE' threw an exception.
 ---> System.TypeInitializationException: The type initializer for 'SWIGExceptionHelper' threw an exception.
 ---> System.DllNotFoundException: Unable to load shared library 'ultimateMICR-SDK' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libultimateMICR-SDK: cannot open shared object file: No such file or directory
   at org.doubango.ultimateMicr.Sdk.ultimateMicrSdkPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_ultimateMicrSdk(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate)
   at org.doubango.ultimateMicr.Sdk.ultimateMicrSdkPINVOKE.SWIGExceptionHelper..cctor()
   --- End of inner exception stack trace ---
   at org.doubango.ultimateMicr.Sdk.ultimateMicrSdkPINVOKE.SWIGExceptionHelper..ctor()
   at org.doubango.ultimateMicr.Sdk.ultimateMicrSdkPINVOKE..cctor()
   --- End of inner exception stack trace ---
   at org.doubango.ultimateMicr.Sdk.ultimateMicrSdkPINVOKE.UltMicrSdkEngine_init__SWIG_0(String jarg1)
   at org.doubango.ultimateMicr.Sdk.UltMicrSdkEngine.init(String jsonConfig)
   at org.cognic.mobilechequedeposit.micrreader.MicrProcessor.DoProcessing(String format, String assetsFolder, String tokenDataBase64, Bitmap image)
-------

I see there is a libultimate_micr-sdk.so, but I really do not know if this would serve that purpose and if it does, I need a little sample to know how to call it from within c#. Is it a direct drop in for the native windows one? i.e. can I simply change:

[DllImport("ultimateMICR-SDK", EntryPoint="CSharp_UltMicrSdkEngine_init__SWIG_0")]
  public static extern IntPtr UltMicrSdkEngine_init__SWIG_0(string jarg1);

to

[DllImport("libultimate_micr-sdk", EntryPoint="CSharp_UltMicrSdkEngine_init__SWIG_0")]
  public static extern IntPtr UltMicrSdkEngine_init__SWIG_0(string jarg1);

I have done the following:

- I used 'readelf -Ws libultimate_micr-sdk.so' (also on version 2.12.0 version) but I see that the endpoints are different from the ones used in ultimateMicrSdkPINVOKE.
- I have read through the Github issues on UltimateMICR, ultimateMRZ-SDK, ultimateALPR-SDK but the issue above has not been addressed, as far as I can see.
- I have read through the conversations in this group. I see Gonzalo Oviedo posted this exact problem on Oct 27, 2021 (problem with dll loading on dotnet 5 under linux environment). The suggestion on that conversation was for him to use the native c++ version. This is not possible for me as I need to host a web api.
- I am presently trying to get the Java JNI version version working on linux as a fallback option in case c# is not possible but I would really like to stick to c#.

3. On a side note, I read from https://github.com/DoubangoTelecom/ultimateMRZ-SDK/issues/37 that you are able to convert an old licence to the new format so I can move to the latest version of the software. Please kindly assist me with this. My licence key from running runtimeKey.bat from the binaries folder is:


{"runtimeKey":"An+kOWEDAwgGBQ8ACQD6DAhIYXRh7HY8NiEqbhwEQ2JnZihIYmkzM11xY1scISs0D05QODg9HAICCQiMCQwIA0ZmPSMKGggCIiIKCgAMD
goIRmFve39sbEBvBTIsGVRdOUVaXVI9MDEwOj8yKz06c1oFLSgzPTATYEBNQ05LPjZoajtsfTxnLX8zJTN9YFVvMCg3OjU/LGI0PT00ZWd7RnYiMw0AAEk="
}


Your help would be most appreciated. Thanks for all your previous assistance.

Best regards,

Omololu Ayodeji

Mamadou DIOP

unread,
Nov 30, 2021, 3:33:01 PM11/30/21
to Loluafo, doubango-ai

Hi,

1/ There is no known issue in running the SDK inside docker container on linux x64.

2/ All platforms include Java wrapper but only Windows includes C# wrapper. We use SWIG to generate the wrappers. For example the SWIG C++ wrapper for Python is at https://github.com/DoubangoTelecom/ultimateMICR-SDK/blob/master/python/ultimateMICR-SDK-API-PUBLIC-SWIG_python.cxx. The shared library (DLL or SO) for the Python interface is built using that single single and linked to libultimate_micr-sdk.so.

For C# you have to the same as python. I have attached the SWIG C++ wrapper for C# (ultimateMICR-SDK-API-PUBLIC-SWIG_cscharp.cxx). This is a single file and you could easily build it as shared library using gcc command (no need for CMake). The command should look like this (NOT TRIED AT ALL): g++ -shared ultimateMICR-SDK-API-PUBLIC-SWIG_cscharp.cxx -O3 -I../../../c++ -L../../../binaries/<yourOS>/<yourArch> -lultimate_micr-sdk -o libcsharp_micr.so.

Once you have "libcsharp_micr.so" you'll need to patch https://github.com/DoubangoTelecom/ultimateMICR-SDK/blob/master/csharp/ultimateMicrSdkPINVOKE.cs to change the Windows DLL name with yours. Using sed, the command could look like this: sed -i 's/"ultimateMICR-SDK/"libcsharp_micr/g' csharp/ultimateMicrSdkPINVOKE.cs. TBH I don't know what [DLLImport ] tag accepts on Linux (libcsharp_micr, or libcsharp_micr.so or csharp_micr or csharp_micr.so). On Windows is the name of the DLL without the extension. So, try them all until it works.

The Java sample works on all platforms, same apply to C#. The sample at https://github.com/DoubangoTelecom/ultimateMICR-SDK/tree/master/samples/csharp/recognizer will work on all platforms.

--
You received this message because you are subscribed to the Google Groups "doubango-ai" group.
To unsubscribe from this group and stop receiving emails from it, send an email to doubango-ai...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/doubango-ai/b937701e-d1f0-4e8c-8020-f5b03004294bn%40googlegroups.com.
ultimateMICR-SDK-API-PUBLIC-SWIG_cscharp.cxx

Lolu Ayodeji

unread,
Dec 1, 2021, 1:11:58 AM12/1/21
to Mamadou DIOP, doubango-ai
Hi Mamadou,

Thanks for your prompt reply.

I was able to build the shared library (.so) using the command you provided on a linux machine. From there I was eventually able to get the system to load the library and dependencies (after debugging by setting LD_DEBUG) by following your instructions. I downloaded tensorflow as instructed in the readme and tried with both GPU and non-GPU versions:


The relevant part of my Dockerfile is as follows:
...
FROM base AS final
#ENV LD_DEBUG=all
WORKDIR /app

COPY --from=publish /app/publish/libcsharp_micr.so /usr/lib/libcsharp_micr.so
COPY --from=publish /app/publish/libultimate_micr-sdk.so /usr/lib/libultimate_micr-sdk.so
COPY --from=publish /app/publish/libtensorflow_r1.14_cpu+gpu_linux_x86-64.tar.gz /libtensorflow_r1.14_cpu+gpu_linux_x86-64.tar.gz
RUN tar -C /usr/local/lib -xf /libtensorflow_r1.14_cpu+gpu_linux_x86-64.tar.gz
RUN apt-get update && apt-get install -y ocl-icd-opencl-dev
...


The docker image builds fine and runs. When I try to run the application, I get the following stack trace:

---------------
*[COMPV INFO]: [UltMicrSdkEngine] Call: init
*[COMPV INFO]: [UltMicrSdkEngine] jsonConfig: {"debug_level":"verbose","debug_write_input_image_enabled":false,"debug_internal_data_path":".","num_threads":-1,"gpgpu_enabled":true,"gpgpu_workload_balancing_enabled":false,"segmenter_accuracy":"veryhigh","backpropagation_enabled":true,"interpolation":"bicubic","roi":[0,0,0,0],"score_type":"min","min_score":0.4,"format":"e13b","assets_folder":"assets","license_token_data":"ArlRmWuHA0loLmRPXkVBTX8vJDUxFEhUWGUcKkVsTl5TWGA2RFMlRmRGd1oSAwcdFg0rTmtkTkZDZmxPSDxMUSwOTHZhUGpbdRdkTlF7QEJJNUdVYydrb05XHA0nZR0sPFhkQ1pockRoTDlNbzg9ES9hNVZCYXt0DkR0XGJUREhPbE1LX1ZyYRwbfA=="}
*[COMPV INFO]: [UltMicrSdkEngine] **** Copyright (C) 2011-2021 Doubango Telecom <https://www.doubango.org> ****
ultimateMICR-SDK <https://github.com/DoubangoTelecom/ultimateMICR-SDK> version 2.12.0

*[COMPV INFO]: [CompVBase] Initializing [base] modules (v 1.0.0, nt -1)...
*[COMPV INFO]: [CompVBase] sizeof(compv_scalar_t)= #8
*[COMPV INFO]: [CompVBase] sizeof(float)= #4
*[COMPV INFO]: Initializing window registery
*[COMPV INFO]: [ImageDecoder] Initializing image decoder...
*[COMPV INFO]: [CompVCpu] H: 'GenuineIntel', S: '', M: '158', MN: 'Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz'
*[COMPV INFO]: [CompVBase] CPU features: (intel);[x86];[x64];mmx;sse;sse2;sse3;ssse3;sse41;sse42;avx;avx2;fma3;erms;bmi1;bmi2;popcnt;cmov;aes;rdrand;
*[COMPV INFO]: [CompVBase] CPU cores: #16
*[COMPV INFO]: [CompVBase] CPU cache1: line size: #64B, size :#32KB
*[COMPV INFO]: [CompVBase] CPU Phys RAM size: #25460GB
*[COMPV INFO]: [CompVBase] CPU endianness: LITTLE
*[COMPV INFO]: [CompVBase] Binary type: X86_64
*[COMPV INFO]: [CompVBase] Intrinsic enabled
*[COMPV INFO]: [CompVBase] Assembler enabled
*[COMPV INFO]: [CompVBase] Code built with option /arch:SSE
*[COMPV INFO]: [CompVBase] Code built with option /arch:SSE2
*[COMPV INFO]: [CompVBase] OS name: Generic Linux
*[COMPV INFO]: [CompVBase] Math Fast Trig.: true
*[COMPV INFO]: [CompVBase] Math Fixed Point: true
*[COMPV INFO]: [CompVMathExp] Init
*[COMPV INFO]: [CompVBase] Default alignment: #64
*[COMPV INFO]: [CompVBase] Best alignment: #64
*[COMPV INFO]: [CompVBase] Heap limit: #1303592KB (#1273MB)
*[COMPV INFO]: [CompVParallel] Initializing [parallel] module...
*[COMPV INFO]: /!\ Code in file '/home/ultimate/compv/base/compv_mem.cxx' in function 'CompVMemZero_C' starting at line #508: Not optimized -> No SIMD implementation found
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=0,set=useless, threadId:0x7ff4a992e700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=1,set=useless, threadId:0x7ff4a912d700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=2,set=useless, threadId:0x7ff4a892c700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=3,set=useless, threadId:0x7ff4a2377700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=4,set=useless, threadId:0x7ff4a1b76700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=5,set=useless, threadId:0x7ff4a1375700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=6,set=useless, threadId:0x7ff4a0b74700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=7,set=useless, threadId:0x7ff489c21700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=10,set=useless, threadId:0x7ff48841e700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=11,set=useless, threadId:0x7ff487c1d700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=8,set=useless, threadId:0x7ff489420700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=13,set=useless, threadId:0x7ff486c1b700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=9,set=useless, threadId:0x7ff488c1f700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=12,set=useless, threadId:0x7ff48741c700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVThreadDispatcher] Thread dispatcher created with #16 threads/#16 cores
*[COMPV INFO]: [CompVParallel] [Parallel] module initialized
*[COMPV INFO]: [CompVBase] [Base] modules initialized
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=15,set=useless, threadId:0x7ff485c19700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [CompVCore] Initializing [core] module (v 1.0.0)...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 1 and name = 'FAST (Features from Accelerated Segment Test)'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 8 and name = 'ORB (Oriented FAST and Rotated BRIEF)'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 27 and name = 'Sobel edge detector'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 28 and name = 'Scharr edge detector'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 29 and name = 'Prewitt edge detector'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 20 and name = 'Canny edge detector'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 30 and name = 'Hough standard (STD)'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 31 and name = 'Kernel-based Hough transform (KHT)'...
*[COMPV INFO]: [CompVFeature] Registering feature factory with id = 41 and name = 'Standard Histogram of oriented gradients (S-HOG)'...
*[COMPV INFO]: [CompVMatcher] Registering matcher factory with id = 0 and name = 'Brute force matcher'...
*[COMPV INFO]: [CompVConnectedComponentLabeling] Registering connected component labeling factory with id = 1 and name = 'PLSL (Parallel Light Speed Labeling)'...
*[COMPV INFO]: [CompVConnectedComponentLabeling] Registering connected component labeling factory with id = 19 and name = 'LMSER (Linear Time Maximally Stable Extremal Regions)'...
*[COMPV INFO]: [CompVGL] Initializing [gl] module (v 1.0.0)...
*[COMPV INFO]: [CompVGL] GL module initialized
*[COMPV INFO]: [CompVGpu] Initializing [gpu] module (v 1.0.0)...
*[COMPV INFO]: [CompVCamera] Initializing [camera] module (v 1.0.0)...
*[COMPV INFO]: [CompVDrawing] Initializing [drawing] module (v 1.0.0)...
*[COMPV INFO]: [CompVDrawing] /!\ No jpeg decoder found
*[COMPV INFO]: [CompVDrawing] Drawing module initialized
*[COMPV INFO]: [CompVGpu] GPU enabled: true
*[COMPV INFO]: /!\ Code in file '/home/ultimate/ultimateBase/lib/source/ultimate_base_engine.cxx' in function 'init' starting at line #75: Not optimized for GPU -> GPGPU computing not enabled or deactivated
*[COMPV INFO]: [UltBaseOpenCL] Trying to load [libOpenCL.so]
*[COMPV INFO]: [CompVAsyncTask11] run(coreId:requested=14,set=useless, threadId:0x7ff48641a700, kThreadSetAffinity:false) - ENTER
*[COMPV INFO]: [UltBaseOpenCL] Loaded [libOpenCL.so], looksLikeValid: yes...
***[COMPV ERROR]: function: "init()"
file: "/home/ultimate/ultimateBase/lib/source/opencl/ultimate_base_opencl_utils.cxx"
line: "48"
message: [UltBaseOpenCLUtils] OpenCL operation failed (-1001 -> unknown error code) -> clGetPlatformIDs failed
***[COMPV ERROR]: function: "init()"
file: "/home/ultimate/ultimateBase/lib/source/opencl/ultimate_base_opencl_utils.cxx"
line: "106"
message: Operation Failed (COMPV_ERROR_CODE_E_UNKNOWN) ->
*[COMPV INFO]: [UltBaseOpenCL] Failed to hook functions using [libOpenCL.so] library
*[COMPV INFO]: [UltOcrEngine] Tensorflow version: 1.14.0
*[COMPV INFO]: /!\ Code in file '/home/ultimate/compv/base/compv_mem.cxx' in function 'CompVMemCopy_C' starting at line #985: Not optimized -> No SIMD implementation found. On ARM consider http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka13544.html
***[COMPV ERROR]: function: "updateLicenseInfo()"
file: "/home/ultimate/ultimateMICR/SDK_dev/lib/source/ultimate_micr_sdk_private_engine.cxx"
line: "516"
message: Operation Failed (COMPV_ERROR_CODE_E_INVALID_CALL) -> Field [3]
***[COMPV ERROR]: function: "init()"
file: "/home/ultimate/ultimateMICR/SDK_dev/lib/source/ultimate_micr_sdk_private_engine.cxx"
line: "73"
message: Operation Failed (COMPV_ERROR_CODE_E_INVALID_CALL) ->
***[COMPV ERROR]: function: "init()"
file: "/home/ultimate/ultimateMICR/SDK_dev/lib/source/ultimate_micr_sdk_public_engine.cxx"
line: "133"
message: [UltMicrSdkEngine] Failed to initialize the engine
Init: Execution failed: 

------------- 
I was struggling trying to fix the opencl errors initially but I read in another post where you said opencl errors can be ignored. In case it's the updateLicenseInfo() line that is the cause, I have tried with my existing licence token data and no licence (string.Empty) but I still get the same error.

Kindly assist,

Cheers,

Omololu Ayodeji

Mamadou DIOP

unread,
Dec 1, 2021, 1:51:28 AM12/1/21
to Lolu Ayodeji, doubango-ai
"I have tried with my existing licence token data and no licence (string.Empty) but I still get the same error." -> I doubt that statement is correct. If the token data is empty we'll not try to check the license and you would not have the init abort. Please share logs with token data empty.

Yes, you can ignore opencl errors.

For the error causing the abort, you already said yourself that you have an old license that doesn't match the newest version (2.12). We offer lifetime licenses but you're not entitled to lifetime support/updates. You cannot buy a license today and expect us to allow you to use a version released in year 2030. We do not block users from using the latest updates but unfortunately we updated the license format once for security reasons and some users get stuck.



Sent from my Galaxy

***[COMPV ERROR]: function: "updateLicenseInfo()"
"gmail_quote">

Mamadou DIOP

unread,
Dec 1, 2021, 1:57:06 AM12/1/21
to Lolu Ayodeji, doubango-ai
Just to make it clear, using older versions you'll be able to use your license lifetime. The license format changed a year+ ago and we do not expect it to change for the coming years unless it's cracked.

Lolu Ayodeji

unread,
Dec 1, 2021, 2:24:24 AM12/1/21
to Mamadou DIOP, doubango-ai
Hi Mamadou,

You were right, I made a mistake. I changed the licence to string.empty at one point but was reading it from the config at a different point. It's fine now. As for the licence, I perfectly understand your point. My current setup (using version 2.4.0 assemblies with 2.5.0 assets folder) and current licence is working just fine for my purposes. The licence is tied to my laptop which is what I use to do demos to potential customers for now, so I'm good, I don't really need to upgrade on this machine. When I move to production is when I will need to run in linux containers with the latest version, which is why I needed to get it up and running now to be sure it will work. When the time comes I will purchase licences for the latest version per machine I install on. Thanks for all your help, you've been a life saver as always.

For the record, a portion of the logs are below:

*[COMPV VERBOSE]: [UltTextFilter] collect_ExtentSegments collected 396 indexes
*[COMPV VERBOSE]: [UltTextFilter] collect_GreyLevelBorderContrastSegments collected 1611 indexes
*[COMPV VERBOSE]: [UltTextFilter] collect_GreyLevelHomogeneitySegments collected 0 indexes
*[COMPV VERBOSE]: [UltTextFilter] collect_EccentricitySegments collected 0 indexes
*[COMPV VERBOSE]: [UltTextSegmenterTmms] Num CCs: 1085
*[COMPV VERBOSE]: [UltTextGroupUtils] operator() collected 51 group(s) using 4 partition(s) and 4 thread(s)
*[COMPV INFO]: /!\ Code in file '/home/ultimate/ultimateText/lib/source/ultimate_text_classifier.cxx' in function 'process' starting at line #122: Is for testing and must not be called -> Text/Nontext classification must not be disabled
*[COMPV VERBOSE]: [UltMicrDetector] Number of weak groups: 51
*[COMPV VERBOSE]: [UltMicrDetectorImpl] Num groups after removing shorts and smalls: 51 -> 24
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (0.000000), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (0.530501), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.931557), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.792057), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (0.000000), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (0.572939), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.806929), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.971022), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (0.379437), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.784825), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.702980), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.734521), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (0.508153), do not rotate
*[COMPV INFO]: /!\ Code in file '/home/ultimate/compv/base/include/compv/base/math/compv_math_cast.h' in function 'process_static_C' starting at line #66: Not optimized -> No SIMD or GPU implementation could be found
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.855097), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (-0.666200), do not rotate
*[COMPV VERBOSE]: [UltTextClassifier] Angle too small (0.568674), do not rotate
*[COMPV VERBOSE]: [UltTextGroupUtils] operator() collected 1 group(s) using 1 partition(s) and 1 thread(s)
*[COMPV INFO]: /!\ Code in file '/home/ultimate/ultimateText/lib/source/ultimate_text_context.cxx' in function 'queryCharsFromPool' starting at line #33: Not optimized -> NO MT function could be found
*[COMPV VERBOSE]: [UltTextGroupUtils] operator() collected 9 group(s) using 4 partition(s) and 4 thread(s)
*[COMPV VERBOSE]: [UltTextGroupUtils] operator() collected 1 group(s) using 1 partition(s) and 1 thread(s)
*[COMPV INFO]: /!\ Code in file '/home/ultimate/ultimateMICR/lib/source/ultimate_micr_detector_impl.cxx' in function '__UltMicrDetectorExtractMosaic' starting at line #657: Not optimized -> Do not not perform rotation if the angle is < DBL_EPSILON
*[COMPV INFO]: /!\ Code in file '/home/ultimate/compv/base/image/compv_image_conv_to_rgbx.cxx' in function 'rgbx' starting at line #560: Not optimized -> No in-place conversion found for BGRA32/BGR24 -> RGB24. You should consider using RGBA32/RGB24 instead of BGRA32/BGR24
*[COMPV INFO]: /!\ Code in file '/home/ultimate/compv/base/compv_mem.cxx' in function 'set' starting at line #496: Not optimized -> No SIMD implementation found
2021-12-01 07:11:02.413585: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1412] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set.  If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU.  To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.
Result: {"duration":1184,"frame_id":0,"zones":[{"confidences":[90.12231,100.0,90.72021,90.61832,90.66341,90.68091,90.64309,90.59457,90.6631,90.71989,90.78323,90.59425,90.58247,90.65373,90.65686,90.67709,90.75714,90.64981,90.66337,90.73782,90.93773,90.81146,90.73201,90.5791,90.65766,90.86067,90.66987,90.12231,90.66483,90.5518,90.73226,90.58588,90.64859,90.63641,90.67987,90.65252,90.37037,90.67084,90.49882,90.65442,90.69244,90.70488,90.6587,90.68225,90.41403,90.54185,90.74395],"description":"E-13B","klass":1,"skew":-0.01492426,"text":"C000000*7C05*15*094A045907*9*3C0*C301**0*414C","warpedBox":[20.0,698.0,1316.0,698.0,1316.0,789.0,20.0,789.0]}]}
*[COMPV INFO]: [UltMicrSdkEngine] Call: deInit
*[COMPV INFO]: [CompVBase] DeInitializing base modules (v 1.0.0)...
*[COMPV INFO]: [Thread] Thread with id=0x7f1fc19ab700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fc19ab700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fc19ab700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fc19ab700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fc19ab700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fc11aa700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fc11aa700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fc11aa700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fc11aa700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fc11aa700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fc09a9700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fc09a9700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fc09a9700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fc09a9700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fc09a9700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa9c21700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa9c21700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa9c21700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa9c21700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa9c21700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa9420700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa9420700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa9420700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa9420700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa9420700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa8c1f700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa8c1f700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa8c1f700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa8c1f700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa8c1f700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa841e700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa841e700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa841e700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa841e700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa841e700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa7c1d700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa7c1d700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa7c1d700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa7c1d700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa7c1d700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa741c700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa741c700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa741c700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa741c700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa741c700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa6c1b700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa6c1b700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa6c1b700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa6c1b700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa6c1b700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa641a700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa641a700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa641a700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa641a700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa641a700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa5c19700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa5c19700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa5c19700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa5c19700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa5c19700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa5418700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa5418700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa5418700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa5418700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa5418700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa4c17700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa4c17700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa4c17700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa4c17700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa4c17700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa4416700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa4416700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa4416700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa4416700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa4416700 destroyed***
*[COMPV INFO]: [Thread] Thread with id=0x7f1fa3c15700 will join
*[COMPV INFO]: [CompVMem] poolCleanBuffersForCurrentThread(threadId:0x7f1fa3c15700)
*[COMPV INFO]: [CompVAsyncTask11] run(threadId:0x7f1fa3c15700) - EXIT
*[COMPV INFO]: Thread with id=0x7f1fa3c15700 will join
*[COMPV INFO]: [Thread] ***Thread with id=0x7f1fa3c15700 destroyed***
*[COMPV INFO]: [CompVBase] Base modules deinitialized
*[COMPV INFO]: [CompVBase] DeInitializing base modules (v 1.0.0)...
*[COMPV INFO]: [CompVBase] Base modules deinitialized
*[COMPV INFO]: Drawing module deinitialized
*[COMPV INFO]: [CompVBase] DeInitializing base modules (v 1.0.0)...
*[COMPV INFO]: [CompVBase] Base modules deinitialized
*[COMPV INFO]: [CompVBase] DeInitializing base modules (v 1.0.0)...
*[COMPV INFO]: [CompVBase] Base modules deinitialized
*[COMPV INFO]: [CompVBase] DeInitializing base modules (v 1.0.0)...
*[COMPV INFO]: [CompVBase] Base modules deinitialized
*[COMPV INFO]: [CompVBase] DeInitializing base modules (v 1.0.0)...
*[COMPV INFO]: [CompVBase] Base modules deinitialized
*[COMPV INFO]: [CompVBase] DeInitializing base modules (v 1.0.0)...
*[COMPV INFO]: [CompVBase] Base modules deinitialized
Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.12/System.Runtime.Serialization.Json.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.12/System.Private.DataContractSerialization.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.12/System.Runtime.Serialization.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.12/System.Xml.ReaderWriter.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.12/System.Private.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.12/System.Runtime.Serialization.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
micr result:000000*7,05*15*094,045907*9*3,0*,301**0*414

----
Best regards,

Omololu Ayodeji
Reply all
Reply to author
Forward
0 new messages