Comments (1)
This is a good question given that (1) there are now ways for browser-based applications to use graphics hardware and (2) the Tesseract documentation claims to have support graphics acceleration, including the page you linked to. However, I do not believe that Tesseract significantly benefits from graphics acceleration (even on desktop), so do not see the cost/benefit here as being worth it.
Even using a desktop build with OpenCL enabled (it is disabled by default), only specific operations are performed using OpenCL, and these are not the operations that cause performance bottlenecks. A slide from 2014 shows a ~25% reduction in runtime using OpenCL. Despite already not being massive, this number probably overstates the benefit. Some of the steps it includes have either been removed in the years since or are skipped when using default settings.
Additionally, for documents that take a long time to recognize, a disproportionate amount of time is attributable to the core LSTM functions, rather than the image processing operations. There is no GPU version of these functions in Tesseract. Therefore, my extremely rough, back-of-the-napkin guess is that we could achieve a 15% performance improvement by using graphics acceleration for certain operations, with the number being lower for images that are actually problematic. As this would require significant effort (not just enabling a build flag) for a modest performance gain, I am open to merging it in if somebody figures out how to do it, however do not plan on working on this personally.
Finally, it's also worth noting that the OpenCL build is disabled by default, and the developers who created it years ago appear to be inactive on the project. That version of the build has had bugs that do not appear for the other version, and based on various discussion in the git issues (e.g. see here) there does not seem to be significant interest in working on it.
from tesseract.js.
Related Issues (20)
- Switch from CommonJS to ESM modules HOT 1
- setImage is re-run unnecessarily when rotateAuto is enabled
- `debug` output missing from types HOT 1
- Custom traindata do not work HOT 2
- possibility to capture stderr HOT 3
- JSDelivr CDN not accessible in China HOT 8
- Large images cause excessive memory usage
- Worker stuck on "loading language traineddata" HOT 3
- Updated types to infer output formats
- Inference of Chinese handwritten characters is bad HOT 3
- Add line size metrics (ascender, descender, size) to `line` objects in `blocks` output HOT 1
- Font attributes incorrect even when font is properly identified (`is_italic`, `is_serif`, etc.) HOT 1
- Focusing area HOT 1
- Multiple issues: Discussion
- Disable non-text output formats by default
- Tesseract - Running in Browser Console HOT 1
- Execution `worker.recognize` repeatedly causes "Out of Memory" error in JSFiddle HOT 5
- Error: Network error while fetching HOT 1
- how to use installed tessercat lib on windows for tesseract.js? HOT 1
- createWorker throws exception with option.langPath set in electron HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tesseract.js.