jnoxro / joker Goto Github PK
View Code? Open in Web Editor NEWA high speed character recognition engine
A high speed character recognition engine
code is inconsistent between train.cpp and joker.cpp, train.cpp should be updated to meet the same optimizations joker.cpp has received
Most of the code is missing comments or hard to understand.
Usage and installation information incomplete/missing
threads do the assignments contained within a job.
eg:
Job 1 - ocr
assignment 1 - compare target with model 1,2,3
assignment 1 - compare target with model 3,4,5
...
Job 2 - ocr
...
Job 3 - img threshold
...
Build system requires certain libs for GraphicsMagick build which may not be present / GraphicsMagick may already have been built without these. Checks should be made with cmake.
So threads can carry out many different tasks whilst program runs (eh threshold actions, OCR, training), they OCR controller should be a new class, with functions to change private variables threads can access for jobs
negative scoring values for training would currently be trail and error for users.
Training should test a range of negative values automatically to find optimal
Add building the jk executable as a cmake option.
If users only want to use the library there is no need for a local GM install, plus they may want extra GM features.
Let them hand it themselves.
using pointers to pass memory locations, +=, -+, and other direct modifications instead of copy operations will improve efficiency
Only operations carried out by GraphicsMagick are image read and threshold > could try read that directly and remove the dependency
Joker has only been tested (build and binary) on systems set up for development with multiple libraries and GraphicsMagick already installed. In order to make robust installation instructions tests need making on clean distros
Model save / load cuts out 0's, this can be used for any repeating (>2) values
the flags shown are not in order, they should be separated into optional and required, and have the default values shown for optional
Model format and save/load functions were left after a working version found.
I/O not saturated - 3ms to open 35.3kB model = 12MB/s so lots of room for improvement.
Init OCR should have another overload allowing for passing of PixelCache
when training a model pixelaverage simply sums how often a pixel contains data, this should be converted to fixed range (eg 0-100, or 0-1000) to prevent massive number calculations
Adding a new job to the pool will replace the OCR target even for threads still working on the previous job.
a well matching A may receive a massively different score than a well matching W for example. An 'ideal score' or similar should be found for each model character, which can then be used to have the score for each model char be a function of that models ideal score.
Thread job size currently set number (eg 2 comparisons) job size should be total jobs/threadcount
CMakelists.txt is hacked together to something that happens to build. This should be rewritten.
Some cases in which score should be reduced results in score increase eg:
Model = negative score Val, image = present
(-neg Val) * (-1 for present) = increase
Instead could use 0 for model negative scoring positions, then use an if statement to reduce score.
EVERY case of misalignment should decrease score.
currently the highest scoring result is output, no matter the score.
This may remain, but an ocr class function should be added to output the score so developers can set their own minimum scores.
unsure if its a good idea to keep these present - they are .files so are hidden once cloned
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.