card-io / card.io-dmz Goto Github PK
View Code? Open in Web Editor NEWThe core image-processing and machine-learning code for card.io, which is shared between iOS and Android.
License: Other
The core image-processing and machine-learning code for card.io, which is shared between iOS and Android.
License: Other
I've spent a few days trying to get this to compile in Windows. I figured I would ask if anyone has had any success compiling this for use in a Windows Desktop application?
The card.io doesn't ready Expiry Date or card name. Both would be very helpful!
Dear
I am looking to understand
vseg_probabilities_for_hstrip(IplImage *y, IplImage *cropped_gradient, IplImage *downsampled_normed, IplImage *as_float)
specially applym_befe75da(vseg_model_input)
Would you mind give me a few words to start with? I am totally lost in model_befe75da.cpp, I didn't understand how did you generate this cpp file.
Many thanks in advance
Best regards.
I'm wondering if I can use this library server side on a Linux machine.
I have tested a lot of card's, but i surprised why card.io doesn't support not embossed (flat) cards?
I would like to do training of CNN myself, but i don't have whole training set. The training one of existed net's with small learning rate is not good idea, i think.
So, can you support my begining?
Hi,
I have some question about this codes.
First in the modelc_5c241121.cpp
, modelc_01266c1b.cpp
, modelc_b00bf70c.cpp
, sometimes sum of softmax results is not one.
That didn’t usual case I think.
And second, I think the internal network model has a 3x3@8 conv layer, 3x3 max-pool and @ 32 FC layer and last FC layer with 10 outputs.
Is this right? but if i’m right i have no clue why sum of softmax is not one in some cases.
Thank you
Hi, I want to have a go at implementing accessibility for the blind. I want to give voice instructions as per my issue suggestion.
card-io/card.io-iOS-SDK#202 (comment)
I am just starting out so maybe this is not possible, but the plan is to:
My questions are:
I am reading the code.
I found some magic number in number_grad_sum_pattern.
I am wondering how to set this number.
Is there any reference or tips for tuning this data?
First of all thanks for the wonderful library.
In one of my app i want to use card.io's mechanism to validate the card , but i do not want scanning feature I only want manual entry feature.
And also i have my custom UI built in for getting card's number and expiry.
Can i apply your your method to validate those info along with displaying card's image on the textfiled alon with the formatter (i.e. 4111 1111 1111 111) ?
Thanks
Presumably the library has been trained to recognise standard credit card fonts...? How could I re-train it to recognise, for instance, car number plates, or printed handwriting?
Hi, please help, trying gradlew clean assembleDebug got error:
FAILURE: Build failed with an exception.
Where:
Build file 'D:\Frank\workspace\card.io\card.io-Android-source\SampleApp\build.gr
adle' line: 14
What went wrong:
A problem occurred evaluating project ':SampleApp'.
java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : U
nsupported major.minor version 52.0
Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':Sa
mpleApp'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptR
unnerImpl.run(DefaultScriptRunnerFactory.java:93)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$
2.run(DefaultScriptPluginFactory.java:177)
at org.gradle.configuration.ProjectScriptTarget.addConfiguration(Project
ScriptTarget.java:77)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.
apply(DefaultScriptPluginFactory.java:182)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildSc
riptProcessor.java:38)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildSc
riptProcessor.java:25)
at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.eva
luate(ConfigureActionsProjectEvaluator.java:34)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(L
ifecycleProjectEvaluator.java:55)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProj
ect.java:540)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProj
ect.java:93)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(Task
PathProjectEvaluator.java:47)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuil
dConfigurer.java:35)
at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLa
uncher.java:124)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(Defaul
tBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(Defaul
tBuildOperationExecutor.java:53)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(Default
GradleLauncher.java:121)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGra
dleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradl
eLauncher.java:98)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradl
eLauncher.java:92)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(Defaul
tBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(Defaul
tBuildOperationExecutor.java:63)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradle
Launcher.java:92)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLaun
cher.java:83)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildCon
troller.run(InProcessBuildActionExecuter.java:99)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(Exe
cuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildA
ctionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProce
ssBuildActionExecuter.java:48)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProce
ssBuildActionExecuter.java:30)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(Contin
uousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(Contin
uousBuildActionExecuter.java:46)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBu
ild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(Build
CommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(
WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute
(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.
execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(Forw
ardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(Forw
ardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(For
wardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(
DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClien
t.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(Build
CommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBu
ild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(Build
CommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(Hin
tGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(
DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.
run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(Daemon
StateCoordinator.java:237)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.
onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableE
xecutorImpl.java:40)
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.Unsupport
edClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.mino
r version 52.0
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.j
ava:4821)
at org.gradle.api.internal.plugins.DefaultPluginRegistry.uncheckedGet(De
faultPluginRegistry.java:149)
at org.gradle.api.internal.plugins.DefaultPluginRegistry.lookup(DefaultP
luginRegistry.java:144)
at org.gradle.api.internal.plugins.DefaultPluginRegistry.lookup(DefaultP
luginRegistry.java:127)
at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPlu
ginManager.java:108)
at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.appl
yType(DefaultObjectConfigurationAction.java:113)
at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.acce
ss$200(DefaultObjectConfigurationAction.java:36)
at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.ru
n(DefaultObjectConfigurationAction.java:80)
at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.exec
ute(DefaultObjectConfigurationAction.java:136)
at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPlu
ginAware.java:46)
at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.jav
a:34)
at org.gradle.api.Script$apply$0.callCurrent(Unknown Source)
at build_267mcp3um5tzjv8lwgd3q85gz.run(D:\Frank\workspace\card.io\card.i
o-Android-source\SampleApp\build.gradle:14)
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptR
unnerImpl.run(DefaultScriptRunnerFactory.java:91)
... 58 more
Caused by: java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppP
lugin : Unsupported major.minor version 52.0
at org.gradle.api.internal.plugins.DefaultPluginRegistry$1.load(DefaultP
luginRegistry.java:71)
at org.gradle.api.internal.plugins.DefaultPluginRegistry$1.load(DefaultP
luginRegistry.java:51)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(L
ocalCache.java:3524)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2
317)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache
.java:2280)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
... 74 more
Hi, I read this problem fixed on other issue#12 & #60 but mine still has this problem with compile 'io.card:android-sdk:5.4.2'
Windows 8 x64
Android version: 2.2 installer: android-studio-bundle-145.3276617-windows.exe
NDK version 12.1.2977051
below is the stack trace:
Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':card.io:buildNative'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor.process(ParallelTaskPlanExecutor.java:47)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:46)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'C:\Users\admin\AppData\Local\Android\sdk\ndk-bundle/ndk-build''
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:197)
at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:327)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
... 2 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'C:\Users\admin\AppData\Local\Android\sdk\ndk-bundle/ndk-build'
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
at net.rubygrapefruit.platform.internal.WindowsProcessLauncher.start(WindowsProcessLauncher.java:22)
at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68)
... 2 more
Caused by: java.io.IOException: Cannot run program "C:\Users\admin\AppData\Local\Android\sdk\ndk-bundle/ndk-build" (in directory "D:\Frank\workspace\card.io-Android-source-master\card.io"): CreateProcess error=2, The system cannot find the file specified
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
... 5 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
... 6 more
I would like to know if there is any way to capitalize on the detection capabilities of card.io's code to detect government IDs ? they are fundamentally the same size of a credit card. the objective would be only to produces a cropped image of the ID so that it could be OCRized on a server-side
any information would be very helpful
thank you !
I want to build those dmz code on arm64 platform with DMZ_HAS_NEON_COMPILETIME = 1, but it failed. Can dmz support arm64 with neon or not, do you have any suggestion if i want to build it on arm64.
Hi all, new to Card.IO. Was hoping to use it for informational cards (e.g. insurance, etc...) where I don't need credit card number capture. But running into multiple build issues. Have followed the build setup instructions and installed fabric et al. I was not able to add the sub-module for DMZ because of a permissions issue so I just downloaded it and added it to the correct folder in the project manually. When I try to build with Fabric, I keep getting:
I also saw a comment in the docs about running "fab concat" after modifying the files -- and tried that -- but the command was not found.
When I try to build via Xcode it fails with:
Have searched issues for Card.IO, DMZ and Eigen and can't seem to find any solution. Wonder if I'm somehow missing some additional build settings on the DMZ/Eigen files. Maybe got borked because I added them manually?
I have confirmed that my xcbuild path is correct.
Would appreciate any suggestions on how to get this building. I'm pretty much out of ideas at this point.
thanks in advance,
tim
I read the source code about card number process, there are Number Pattern Visa like - 16 numbers, Number Pattern Amex like - 15 numbers. But there is none Number Pattern Diners - 14 numbers, So does card.io support diners card with 14 numbers? if does, how?
download dmz add card.io-iOS-source-master project
error error error!!!
you can try it
I think to replace the OpenCV in engineering with complete OpenCV, could you tell me how to go to need to modify it, or how the opencv2.framework into the card.io. How to build your own platform-specific OpenCV static libraries ?
I compile the code in widows 7,but it can't work. please help me the log is below:
E:\code\card.io-Android-source-master\card.io\src\main\jni\card.io-dmz\Eigen\src\Core\util\Memory.h
Error:(224) undefined reference to 'posix_memalign'
Error:(224) undefined reference to 'posix_memalign'
Error:(224) undefined reference to 'posix_memalign'
Error:(224) undefined reference to 'posix_memalign'
Error:error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [E:/code/card.io-Android-source-master/card.io/src/main/obj/local/x86/libcardioRecognizer.so] Error 1
make: *** Waiting for unfinished jobs....
C:\Users\pscj\AppData\Local\Temp\dmz_all-1cc576.s: Assembler messages:
C:\Users\pscj\AppData\Local\Temp\dmz_all-1cc576.s:38967: Error: r13 not allowed here -- sub.w sp,r2,#832' C:\Users\pscj\AppData\Local\Temp\dmz_all-1cc576.s:41460: Error: r13 not allowed here --
sub.w sp,r2,#1296'
C:\Users\pscj\AppData\Local\Temp\dmz_all-1cc576.s:41574: Error: r13 not allowed here -- sub.w sp,r2,#144' Error:error: assembler command failed with exit code 1 (use -v to see invocation) make: *** [E:/code/card.io-Android-source-master/card.io/src/main/obj/local/armeabi-v7a/objs/cardioRecognizer_tegra2/card.io-dmz/dmz_all.o] Error 1 C:\Users\pscj\AppData\Local\Temp\dmz_all-bf1459.s: Assembler messages: C:\Users\pscj\AppData\Local\Temp\dmz_all-bf1459.s:65457: Error: r13 not allowed here --
sub.w sp,r2,#832'
C:\Users\pscj\AppData\Local\Temp\dmz_all-bf1459.s:71237: Error: r13 not allowed here -- sub.w sp,r2,#1296' C:\Users\pscj\AppData\Local\Temp\dmz_all-bf1459.s:71351: Error: r13 not allowed here --
sub.w sp,r2,#144'
C:\Users\pscj\AppData\Local\Temp\dmz_all-bf1459.s:91719: Error: r13 not allowed here -- sub.w sp,r2,#720' C:\Users\pscj\AppData\Local\Temp\dmz_all-bf1459.s:97244: Error: r13 not allowed here --
sub.w sp,r2,#496'
C:\Users\pscj\AppData\Local\Temp\dmz_all-bf1459.s:97358: Error: r13 not allowed here -- sub.w sp,r2,#720' Error:error: assembler command failed with exit code 1 (use -v to see invocation) make: Leaving directory
E:/code/card.io-Android-source-master/card.io/src/main/jni'
make: *** [E:/code/card.io-Android-source-master/card.io/src/main/obj/local/armeabi-v7a/objs/cardioRecognizer/card.io-dmz/dmz_all.o] Error 1
:card.io:buildNative FAILED
Error:Execution failed for task ':card.io:buildNative'.
Process 'command 'C:\android\android-ndk-r11b/ndk-build.cmd'' finished with non-zero exit value 2
Information:BUILD FAILED
Hello, Dave!
We are trying to scan an embossed card produced by a Russian payment system "МИР", and it is not recognized by the plugin. The card is always highlighted with a green rectangle, but no data is returned.
Is there any chance you're going to support the "МИР" payment system in the near future?
FYI: the most used "МИР" cards have 16 digits, they are identified by the first three digits (220) and only by them,
If we were to implement "МИР" recognition by ourselves, where should we start? We have found the 'dmz_olm.cpp' file, which contains the settings for the other cards. Are we on the right track?
Lines 59 to 81 in 02e1c43
In dmz_olm.cpp
file, the max number of card is 16
. Is there a method to recognise more digits in the card, such as 19
.
Hello Team,
With reference to the question #8 need one confirmation.
I want to create my own screen to fill card information manually and for card validation and formatting I need to copy few files in my project from card-io like dmz-olm.h, CardIONumbersTextFieldDelegate.m, and helper folder. After taking licence do we have to copy complete repo in our project or we can take selective files from project as per our need.
dmz folder didn't download
I'm wondering what a basic Python bindings would look like. It looks like there was already thought put into this, but any direction would be very appreciated.
Can Card.io detect immersed digits (not flat printing)?
refer the below link for example
Hey guys, I'm trying to understand how your edge detection code works for detecting the card and whenever I add a break point in dmz_detect_edges in dmz.cpp and start the sample app it never breaks on it. I put a breakpoint on line 123 of CardIOViewFrame.mm, which is the line which calls dmz_detect_edges and it breaks there. It just doesn't seem to break in any of the dmz c++ code. I checked that the optimization level was none for the configuration and not sure what else would cause this. Do you have any ideas what's going on? Would help me out a lot if I could step through your code. Any help would be appreciated and thanks for providing the source code, it's been extremely helpful for me!
Our iOS application already uses OpenCV 3.0 and including card.io causes symbol conflicts since the latter uses OpenCV 2. It would be great if card.io can start using OpenCV 3.0. Are there plans to upgrade the usage to latest OpenCV 3.0 version?
Hello,
I'm trying to understand how the dmz_focus_score_for_image function works. I read through the source and it seems that it uses the llcv_sobel3_dx_dy_c_neon function to convolve the kernel:
1, 0, -1
0, 0, 0
-1, 0, 1
with the image, then it returns the standard deviation of the output from the convolution. On iOS it seems that if the returned value is greater than 6 the focus is ok and processing continues, but if it's less than 3 it sucks and triggers an autofocus. Is this accurate? And if possible could you please explain why this works or point me in the direction of some books/articles that can explain?
Please check line 573 of file card.io-dmz/cv/sobel.cpp. I think it should be:
uint16_t row2_index = (row_index == (uint16_t)(src_size.height - 1)) ? src_size.height - 1 : row_index + 1;
instead of:
uint16_t row2_index = row_index == (uint16_t)(src_size.height - 1 ? src_size.height - 1 : row_index + 1);
The conv models, how are they generated?
OS: Debian 3.2.82-1 x86_64 GNU/Linux
I am wondering what is the correct setup to compile this project.
I found this one but still no success
https://github.com/devinus/cardio
c++ -DCYTHON_DMZ -DSCAN_EXPIRY -Idmz -I/usr/include/python2.7/ pkg-config --libs --cflags opencv
-shared dmz/dmz_all.cpp -o libdmz.so
dmz/./scan/n_hseg.cpp: In function ‘NHorizontalSegmentation best_n_hseg_constrained(float*, NVerticalSegmentation, NHorizontalSegmentation, SliceF32, SliceU16)’:
dmz/./scan/n_hseg.cpp:50:30: error: ‘UINT16_MAX’ was not declared in this scope
dmz/./scan/n_hseg.cpp: In function ‘NHorizontalSegmentation best_n_hseg(IplImage*, NVerticalSegmentation)’:
dmz/./scan/n_hseg.cpp:114:22: error: ‘UINT16_MAX’ was not declared in this scope
raceback (most recent call last):
File "user_pyximpot.py", line 4, in
from dmz import *
File "/usr/local/lib/python3.6/site-packages/pyximport/pyximport.py", line 458, in load_module
language_level=self.language_level)
File "/usr/local/lib/python3.6/site-packages/pyximport/pyximport.py", line 231, in load_module
raise exc.with_traceback(tb)
File "/usr/local/lib/python3.6/site-packages/pyximport/pyximport.py", line 216, in load_module
mod = imp.load_dynamic(name, so_path)
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/imp.py", line 343, in load_dynamic
return _load(spec)
File "dmz.pyx", line 9, in init dmz
import util.opencv_helpers
ImportError: Building module dmz failed: ["ModuleNotFoundError: No module named 'util'\n"]
ld: warning: ld: warning: ignoring file /Test/dmzTest/opencv_device/lib/libopencv_core.a, missing required architecture x86_64 in file /Test/dmzTest/opencv_device/lib/libopencv_core.a (3 slices)ignoring file /Test/dmzTest/opencv_device/lib/libopencv_imgproc.a, missing required architecture x86_64 in file /Test/dmzTest/opencv_device/lib/libopencv_imgproc.a (3 slices)
Undefined symbols for architecture x86_64:
"_dmz_deinterleave_uint8_c2", referenced from:
-[ViewController viewDidLoad] in ViewController.o
ld: symbol(s) not found for architecture x86_64
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.