SlideShare a Scribd company logo
1 of 77
Download to read offline
Entering the Fourth DimensionEntering the Fourth Dimension
of OCR withof OCR with
TesseractTesseract
Hanno Embregts @hannotify
What is OCR?What is OCR?What is OCR?What is OCR?What is OCR?
/ rst dimension/ rst dimension/ rst dimension/ rst dimension/ rst dimension
Atechnology that can take writtenAtechnology that can take written
words and convert then aes mowords and convert then aes mo
aulerseadans Yom, proved meyren neaulerseadans Yom, proved meyren ne
fgntrom sng tne cortec cars ometimes,fgntrom sng tne cortec cars ometimes,
ate fant gait sae and ptch, dar engugnate fant gait sae and ptch, dar engugn
onthe pase, ana Your Bropared toonthe pase, ana Your Bropared to
spend Several cantinas covtecing al mespend Several cantinas covtecing al me
one PrP areee e SP es ts anine Oe tatone PrP areee e SP es ts anine Oe tat
came autas zerseecame autas zersee
A technology that can take writtenA technology that can take written
words and convert them back intowords and convert them back into
computer-readable form, providedcomputer-readable form, provided
they're in the right font, using thethey're in the right font, using the
correct colors sometimes, at the rightcorrect colors sometimes, at the right
point size and pitch, dark enough onpoint size and pitch, dark enough on
the paper, and you're prepared to spendthe paper, and you're prepared to spend
several centuries correcting all the onesseveral centuries correcting all the ones
that came out as l's, all the O's thatthat came out as l's, all the O's that
came out as zeroes, and all the colonscame out as zeroes, and all the colons
that come out like semicolons.that come out like semicolons.
A Proper De nitionA Proper De nition
Optical character recognitionOptical character recognition (...) is(...) is
the mechanical or electronic conversionthe mechanical or electronic conversion
of images of typed, handwritten orof images of typed, handwritten or
printed text into machine-encoded text,printed text into machine-encoded text,
whether from a scanned document, awhether from a scanned document, a
photo of a document, a scene-photophoto of a document, a scene-photo
(...) or from subtitle text superimposed(...) or from subtitle text superimposed
on an image.on an image.
Pattern recognitionPattern recognition
OCR-A fontOCR-A font
Feature detectionFeature detection
19291929192919291929
Gustav Tauschek patents a basic OCR
'reading machine'.
1960s1960s1960s1960s1960s
Postal services start using OCR for
mail sorting.
19931993199319931993
The Apple Newton becomes the rst
handheld computer to feature
handwriting recognition.
ApplicationsApplications
Financial transfersFinancial transfersFinancial transfersFinancial transfersFinancial transfers
Catch me if you can!
Book digitizationBook digitizationBook digitizationBook digitizationBook digitization
Also supports Ctrl+F.
Passport scanningPassport scanningPassport scanningPassport scanningPassport scanning
Gets you to your gate in time.
Number plateNumber plateNumber plateNumber plateNumber plate
recognitionrecognitionrecognitionrecognitionrecognition
Get your speeding ticket even faster!
GettingGettingGettingGettingGetting
StartedStartedStartedStartedStarted
/ second dimension/ second dimension/ second dimension/ second dimension/ second dimension
TesseractTesseract
Development started at Hewlett-Packard in 1985
Ported to Windows in 1996
Released as open-source in 2005
Google sponsors development of Tesseract since
2006
(( ))https://github.com/tesseract-ocr/tesseracthttps://github.com/tesseract-ocr/tesseract
—— Anthony KayAnthony Kay
in "Linux Journal", July 2007in "Linux Journal", July 2007
"The core feature, text recognition, is"The core feature, text recognition, is
drastically better than anything elsedrastically better than anything else
I've tried from the Open SourceI've tried from the Open Source
community."community."
FeaturesFeatures
character recognition
support for Unicode
input: JPEG, GIF, PNG, TIFF or BMP
output: searchable PDF, TSV, plain text or HOCR
HOCR exampleHOCR example
<p class="ocr_par" lang="deu" title="bbox930">
<span class="ocr_line" title="bbox 348 797 1482 838; baseline -
<span class="ocrx_word" title="bbox 348 805 402 832; x_wconf
<span class="ocrx_word" title="bbox 421 804 697 832; x_wconf
<span class="ocrx_word" title="bbox 717 803 755 831; x_wconf
<span class="ocrx_word" title="bbox 773 803 802 831; x_wconf
<span class="ocrx_word" title="bbox 821 803 917 830; x_wconf
<span class="ocrx_word" title="bbox 935 799 1180 838; x_wconf
<span class="ocrx_word" title="bbox 1199 797 1343 832; x_wcon
<span class="ocrx_word" title="bbox 1362 805 1399 823; x_wcon
<span class="ocrx_word" title="bbox 1417 x_wconf 96">ver-</sp
</span>
</p>
Used by GoogleUsed by Google
For text detection on mobile devices
In video
In Gmail image spam detection
New featuresNew features
in v3.0in v3.0
support for over 100 languages
page layout analysis
in v4.0in v4.0
LSTM recognition engine
Tess4JTess4JTess4JTess4JTess4J
A Java JNA wrapper for Tesseract
Tess4J featuresTess4J features
PDF input
Multi-page TIFF input
Image optimization
(( ))https://github.com/nguyenq/tess4jhttps://github.com/nguyenq/tess4j
DemoDemo
Install Tesseract (for multilanguage support)
Add Tess4J dependency
Convert image to plain text (English)
Convert image to plain text (Greek)
Choosing theChoosing theChoosing theChoosing theChoosing the
Right LibraryRight LibraryRight LibraryRight LibraryRight Library
/ third dimension/ third dimension/ third dimension/ third dimension/ third dimension
CompetitorsCompetitors
ABBYY FineReaderABBYY FineReader
Development started at ABBYY in 1993
Supports 192 languages
20 million users worldwide
Outputs to MS O ce, RTF, HTML, (searchable) PDF
and plain text
(( ))https://www.abbyy.com/en-eu/ nereaderhttps://www.abbyy.com/en-eu/ nereader
Google Cloud VisionGoogle Cloud Vision
APIAPI
Launched in 2016 by Google
Supports 56 languages
Outputs to JSON
Integrates nicely with Google Images and Google
SafeSearch
(( ))https://cloud.google.com/vision/https://cloud.google.com/vision/
ABBYY GCV Tesseract
ABBYY GCV Tesseract
costs $200
per computer
$1.50
per 1000 images, per
month
$0
ABBYY GCV Tesseract
costs $200
per computer
$1.50
per 1000 images, per
month
$0
languages 192 56 102
ABBYY GCV Tesseract
costs $200
per computer
$1.50
per 1000 images, per
month
$0
languages 192 56 102
Java integration through SDK through REST
API
through JNA
wrapper
ABBYY GCV Tesseract
costs $200
per computer
$1.50
per 1000 images, per
month
$0
languages 192 56 102
Java integration through SDK through REST
API
through JNA
wrapper
handwriting
recognition
'handprinted'
text
supported not supported
ABBYY GCV Tesseract
costs $200
per computer
$1.50
per 1000 images, per
month
$0
languages 192 56 102
Java integration through SDK through REST
API
through JNA
wrapper
handwriting
recognition
'handprinted'
text
supported not supported
custom training supported not supported supported
ABBYY GCV Tesseract
costs $200
per computer
$1.50
per 1000 images, per
month
$0
languages 192 56 102
Java integration through SDK through REST
API
through JNA
wrapper
handwriting
recognition
'handprinted'
text
supported not supported
custom training supported not supported supported
accuracy 9/10 8/10 7/10
Case studyCase studyCase studyCase studyCase study
Paper archives going digital.
AdvancedAdvancedAdvancedAdvancedAdvanced
FeaturesFeaturesFeaturesFeaturesFeatures
/ fourth dimension/ fourth dimension/ fourth dimension/ fourth dimension/ fourth dimension
What AdvancedWhat Advanced
Features?Features?
Reporting con dence
Multiple languages in a single document
Image optimization
Speed/accuracy tradeo s
Training
Improving accuracyImproving accuracyImproving accuracyImproving accuracyImproving accuracy
To better recognize the expected
input documents.
What is con dence?What is con dence?
What is con dence?What is con dence?
Reporting con denceReporting con dence
Tess4J supports two return types:Tess4J supports two return types:
String (containing the OCR'ed text)
List<OCRResult> (OCR result is written to a le)
int confidence
List<Word> words
Multiple languages in aMultiple languages in a
single documentsingle document
Concatenate the language codes and separate themConcatenate the language codes and separate them
by a plus sign:by a plus sign:
tesseract.setLanguage("eng+nld");
DemoDemo
Reporting con dence
Multiple languages in a single document
Image optimizationImage optimization
Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which
contains a few image optimization tricks.contains a few image optimization tricks.
Image optimizationImage optimization
Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which
contains a few image optimization tricks.contains a few image optimization tricks.
convertImageToBinary(BufferedImage
image)
Image optimizationImage optimization
Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which
contains a few image optimization tricks.contains a few image optimization tricks.
convertImageToBinary(BufferedImage
image)
convertImageToGrayscale(BufferedImage
image)
Image optimizationImage optimization
Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which
contains a few image optimization tricks.contains a few image optimization tricks.
convertImageToBinary(BufferedImage
image)
convertImageToGrayscale(BufferedImage
image)
invertImageColor(BufferedImage image)
Image optimizationImage optimization
Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which
contains a few image optimization tricks.contains a few image optimization tricks.
convertImageToBinary(BufferedImage
image)
convertImageToGrayscale(BufferedImage
image)
invertImageColor(BufferedImage image)
rotateImage(BufferedImage image,
double angle)
Still having problems?Still having problems?
https://github.com/tesseract-https://github.com/tesseract-
ocr/tesseract/wiki/ImproveQualityocr/tesseract/wiki/ImproveQuality
Speed/accuracySpeed/accuracy
tradeo stradeo s
Two types of training data:Two types of training data:
https://github.com/tesseract-ocr/tessdata_fast
https://github.com/tesseract-ocr/tessdata_best
DemoDemo
Image optimization
Speed/accuracy tradeo s
Training dataTraining data
400,000 textlines
4500 fonts
(for Latin-based languages)(for Latin-based languages)
Custom trainingCustom training
Custom trainingCustom training
Fine tune (e.g. for an unusual font)
Custom trainingCustom training
Fine tune (e.g. for an unusual font)
Cut o the top layer (e.g. for a new language)
Custom trainingCustom training
Fine tune (e.g. for an unusual font)
Cut o the top layer (e.g. for a new language)
Retrain from scratch (e.g. don't do this!)
FurtherFurtherFurtherFurtherFurther
readingreadingreadingreadingreading
Further readingFurther reading
"An Overview of the Tesseract OCR Engine" by Ray
Smith
( )
Useful resourcesUseful resources
Tesseract on Github
( )
Try Tesseract online
( )
https://research.google.com/pubs/archive/33418.pdf
https://github.com/tesseract-ocr/tesseract
newocr.com
AnyAnyAnyAnyAny
questions?questions?questions?questions?questions?
Thank you! ☺ Thank you! ☺ 
https://hannotify.github.io
@hannotify
hanno.embregts@infosupport.com

More Related Content

What's hot

Tesseract OCR Engine
Tesseract OCR EngineTesseract OCR Engine
Tesseract OCR EngineRaghu nath
 
Python - An Introduction
Python - An IntroductionPython - An Introduction
Python - An IntroductionSwarit Wadhe
 
Python presentation by Monu Sharma
Python presentation by Monu SharmaPython presentation by Monu Sharma
Python presentation by Monu SharmaMayank Sharma
 
Python for Science and Engineering: a presentation to A*STAR and the Singapor...
Python for Science and Engineering: a presentation to A*STAR and the Singapor...Python for Science and Engineering: a presentation to A*STAR and the Singapor...
Python for Science and Engineering: a presentation to A*STAR and the Singapor...pythoncharmers
 
Introduction to python for Beginners
Introduction to python for Beginners Introduction to python for Beginners
Introduction to python for Beginners Sujith Kumar
 
Python programming introduction
Python programming introductionPython programming introduction
Python programming introductionSiddique Ibrahim
 
Python final presentation kirti ppt1
Python final presentation kirti ppt1Python final presentation kirti ppt1
Python final presentation kirti ppt1Kirti Verma
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonJaya Kumari
 
Python course syllabus
Python course syllabusPython course syllabus
Python course syllabusSugantha T
 
Python-00 | Introduction and installing
Python-00 | Introduction and installingPython-00 | Introduction and installing
Python-00 | Introduction and installingMohd Sajjad
 
Why I Love Python
Why I Love PythonWhy I Love Python
Why I Love Pythondidip
 
Python | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python TutorialPython | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python TutorialQA TrainingHub
 
Python presentation
Python presentationPython presentation
Python presentationgaganapponix
 

What's hot (20)

Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Tesseract OCR Engine
Tesseract OCR EngineTesseract OCR Engine
Tesseract OCR Engine
 
Introduction to Python Basics Programming
Introduction to Python Basics ProgrammingIntroduction to Python Basics Programming
Introduction to Python Basics Programming
 
Python - An Introduction
Python - An IntroductionPython - An Introduction
Python - An Introduction
 
Python presentation by Monu Sharma
Python presentation by Monu SharmaPython presentation by Monu Sharma
Python presentation by Monu Sharma
 
Python basics
Python basicsPython basics
Python basics
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
 
Python for Science and Engineering: a presentation to A*STAR and the Singapor...
Python for Science and Engineering: a presentation to A*STAR and the Singapor...Python for Science and Engineering: a presentation to A*STAR and the Singapor...
Python for Science and Engineering: a presentation to A*STAR and the Singapor...
 
Python Tutorial for Beginner
Python Tutorial for BeginnerPython Tutorial for Beginner
Python Tutorial for Beginner
 
Python Tutorial Part 2
Python Tutorial Part 2Python Tutorial Part 2
Python Tutorial Part 2
 
Introduction to python for Beginners
Introduction to python for Beginners Introduction to python for Beginners
Introduction to python for Beginners
 
Python programming introduction
Python programming introductionPython programming introduction
Python programming introduction
 
Python final presentation kirti ppt1
Python final presentation kirti ppt1Python final presentation kirti ppt1
Python final presentation kirti ppt1
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python course syllabus
Python course syllabusPython course syllabus
Python course syllabus
 
Presentation on python
Presentation on pythonPresentation on python
Presentation on python
 
Python-00 | Introduction and installing
Python-00 | Introduction and installingPython-00 | Introduction and installing
Python-00 | Introduction and installing
 
Why I Love Python
Why I Love PythonWhy I Love Python
Why I Love Python
 
Python | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python TutorialPython | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python Tutorial
 
Python presentation
Python presentationPython presentation
Python presentation
 

Similar to Entering the Fourth Dimension of OCR with Tesseract - Talk from Voxxed Days Bucharest 2019

Entering the Fourth Dimension of OCR with Tesseract
Entering the Fourth Dimension of OCR with TesseractEntering the Fourth Dimension of OCR with Tesseract
Entering the Fourth Dimension of OCR with Tesseract🎤 Hanno Embregts 🎸
 
A SMART LANGUAGE TRANSLATION TECHNIQUE USING OCR
A SMART LANGUAGE TRANSLATION TECHNIQUE USING OCRA SMART LANGUAGE TRANSLATION TECHNIQUE USING OCR
A SMART LANGUAGE TRANSLATION TECHNIQUE USING OCRIRJET Journal
 
OPTICAL CHARACTER RECOGNIZATION NEERAJ.pptx
OPTICAL CHARACTER RECOGNIZATION  NEERAJ.pptxOPTICAL CHARACTER RECOGNIZATION  NEERAJ.pptx
OPTICAL CHARACTER RECOGNIZATION NEERAJ.pptxNeerajBudhlakoti
 
Optical Character Recognition( OCR )
Optical Character Recognition( OCR )Optical Character Recognition( OCR )
Optical Character Recognition( OCR )Karan Panjwani
 
Evgen Terpil "OCR in the Wild World of Social Media"
Evgen Terpil "OCR in the Wild World of Social Media"Evgen Terpil "OCR in the Wild World of Social Media"
Evgen Terpil "OCR in the Wild World of Social Media"Fwdays
 
BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...
BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...
BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...ijiert bestjournal
 
optical character recognition system
optical character recognition systemoptical character recognition system
optical character recognition systemVijay Apurva
 
Optical Character Recognition
Optical Character RecognitionOptical Character Recognition
Optical Character RecognitionRahul Mallik
 
BL Demo Day - July2011 - (7) OCR Profiler and Post-Correction
BL Demo Day - July2011 - (7) OCR Profiler and Post-CorrectionBL Demo Day - July2011 - (7) OCR Profiler and Post-Correction
BL Demo Day - July2011 - (7) OCR Profiler and Post-CorrectionIMPACT Centre of Competence
 
4Developers 2015: Talking and listening to web pages - Aurelio De Rosa
4Developers 2015: Talking and listening to web pages - Aurelio De Rosa4Developers 2015: Talking and listening to web pages - Aurelio De Rosa
4Developers 2015: Talking and listening to web pages - Aurelio De RosaPROIDEA
 
OCR 's Functions
OCR 's FunctionsOCR 's Functions
OCR 's Functionsprithvi764
 
How to create a corpus of machine-readable texts: challenges and solutions
How to create a corpus of machine-readable texts: challenges and solutionsHow to create a corpus of machine-readable texts: challenges and solutions
How to create a corpus of machine-readable texts: challenges and solutionsMonika Renate Barget
 
Python intro01classes in_navi_mumbai
Python intro01classes in_navi_mumbaiPython intro01classes in_navi_mumbai
Python intro01classes in_navi_mumbaivibrantuser
 
Understanding Names with Neural Networks - May 2020
Understanding Names with Neural Networks - May 2020Understanding Names with Neural Networks - May 2020
Understanding Names with Neural Networks - May 2020Basis Technology
 
Google Cloud Platform Munich
Google Cloud Platform MunichGoogle Cloud Platform Munich
Google Cloud Platform MunichVMware Tanzu
 
69. OCR meaning.pdf
69. OCR meaning.pdf69. OCR meaning.pdf
69. OCR meaning.pdfBarcode Live
 

Similar to Entering the Fourth Dimension of OCR with Tesseract - Talk from Voxxed Days Bucharest 2019 (20)

Entering the Fourth Dimension of OCR with Tesseract
Entering the Fourth Dimension of OCR with TesseractEntering the Fourth Dimension of OCR with Tesseract
Entering the Fourth Dimension of OCR with Tesseract
 
Ocr abstract
Ocr abstractOcr abstract
Ocr abstract
 
A SMART LANGUAGE TRANSLATION TECHNIQUE USING OCR
A SMART LANGUAGE TRANSLATION TECHNIQUE USING OCRA SMART LANGUAGE TRANSLATION TECHNIQUE USING OCR
A SMART LANGUAGE TRANSLATION TECHNIQUE USING OCR
 
OPTICAL CHARACTER RECOGNIZATION NEERAJ.pptx
OPTICAL CHARACTER RECOGNIZATION  NEERAJ.pptxOPTICAL CHARACTER RECOGNIZATION  NEERAJ.pptx
OPTICAL CHARACTER RECOGNIZATION NEERAJ.pptx
 
Optical Character Recognition( OCR )
Optical Character Recognition( OCR )Optical Character Recognition( OCR )
Optical Character Recognition( OCR )
 
Evgen Terpil "OCR in the Wild World of Social Media"
Evgen Terpil "OCR in the Wild World of Social Media"Evgen Terpil "OCR in the Wild World of Social Media"
Evgen Terpil "OCR in the Wild World of Social Media"
 
BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...
BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...
BLOB DETECTION TECHNIQUE USING IMAGE PROCESSING FOR IDENTIFICATION OF MACHINE...
 
Bne demoday postcorrection_and_profiler
Bne demoday postcorrection_and_profilerBne demoday postcorrection_and_profiler
Bne demoday postcorrection_and_profiler
 
optical character recognition system
optical character recognition systemoptical character recognition system
optical character recognition system
 
Optical Character Recognition
Optical Character RecognitionOptical Character Recognition
Optical Character Recognition
 
Postcorrection and profiler_bne_demoday
Postcorrection and profiler_bne_demodayPostcorrection and profiler_bne_demoday
Postcorrection and profiler_bne_demoday
 
BL Demo Day - July2011 - (7) OCR Profiler and Post-Correction
BL Demo Day - July2011 - (7) OCR Profiler and Post-CorrectionBL Demo Day - July2011 - (7) OCR Profiler and Post-Correction
BL Demo Day - July2011 - (7) OCR Profiler and Post-Correction
 
4Developers 2015: Talking and listening to web pages - Aurelio De Rosa
4Developers 2015: Talking and listening to web pages - Aurelio De Rosa4Developers 2015: Talking and listening to web pages - Aurelio De Rosa
4Developers 2015: Talking and listening to web pages - Aurelio De Rosa
 
OCR 's Functions
OCR 's FunctionsOCR 's Functions
OCR 's Functions
 
How to create a corpus of machine-readable texts: challenges and solutions
How to create a corpus of machine-readable texts: challenges and solutionsHow to create a corpus of machine-readable texts: challenges and solutions
How to create a corpus of machine-readable texts: challenges and solutions
 
Fujitsu ScanSnap Scanner, an overview of document data capture with barcodes,...
Fujitsu ScanSnap Scanner, an overview of document data capture with barcodes,...Fujitsu ScanSnap Scanner, an overview of document data capture with barcodes,...
Fujitsu ScanSnap Scanner, an overview of document data capture with barcodes,...
 
Python intro01classes in_navi_mumbai
Python intro01classes in_navi_mumbaiPython intro01classes in_navi_mumbai
Python intro01classes in_navi_mumbai
 
Understanding Names with Neural Networks - May 2020
Understanding Names with Neural Networks - May 2020Understanding Names with Neural Networks - May 2020
Understanding Names with Neural Networks - May 2020
 
Google Cloud Platform Munich
Google Cloud Platform MunichGoogle Cloud Platform Munich
Google Cloud Platform Munich
 
69. OCR meaning.pdf
69. OCR meaning.pdf69. OCR meaning.pdf
69. OCR meaning.pdf
 

More from 🎤 Hanno Embregts 🎸

Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?🎤 Hanno Embregts 🎸
 
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202🎤 Hanno Embregts 🎸
 
"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022
"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022
"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022🎤 Hanno Embregts 🎸
 
"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022
"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022
"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022🎤 Hanno Embregts 🎸
 
Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?🎤 Hanno Embregts 🎸
 
JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"
JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"
JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"🎤 Hanno Embregts 🎸
 
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG🎤 Hanno Embregts 🎸
 
Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)
Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)
Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)🎤 Hanno Embregts 🎸
 
Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...
Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...
Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...🎤 Hanno Embregts 🎸
 
The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019🎤 Hanno Embregts 🎸
 
Beware of Survivorship Bias! (conference talk at J-Fall 2019)
Beware of Survivorship Bias! (conference talk at J-Fall 2019)Beware of Survivorship Bias! (conference talk at J-Fall 2019)
Beware of Survivorship Bias! (conference talk at J-Fall 2019)🎤 Hanno Embregts 🎸
 
Will Git Be Around Forever? A List of Possible Successors
Will Git Be Around Forever? A List of Possible SuccessorsWill Git Be Around Forever? A List of Possible Successors
Will Git Be Around Forever? A List of Possible Successors🎤 Hanno Embregts 🎸
 
QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018
QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018
QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018🎤 Hanno Embregts 🎸
 
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...🎤 Hanno Embregts 🎸
 
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)🎤 Hanno Embregts 🎸
 
Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!🎤 Hanno Embregts 🎸
 
QWERTY or DVORAK? Debunking the Keyboard Layout Myths
QWERTY or DVORAK? Debunking the Keyboard Layout MythsQWERTY or DVORAK? Debunking the Keyboard Layout Myths
QWERTY or DVORAK? Debunking the Keyboard Layout Myths🎤 Hanno Embregts 🎸
 
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)🎤 Hanno Embregts 🎸
 
Migrating 25K lines of Ant scripting to Gradle
Migrating 25K lines of Ant scripting to GradleMigrating 25K lines of Ant scripting to Gradle
Migrating 25K lines of Ant scripting to Gradle🎤 Hanno Embregts 🎸
 

More from 🎤 Hanno Embregts 🎸 (19)

Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?
 
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202
 
"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022
"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022
"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022
 
"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022
"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022
"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022
 
Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?Pattern Matching: Small Enhancement or Major Feature?
Pattern Matching: Small Enhancement or Major Feature?
 
JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"
JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"
JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"
 
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
 
Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)
Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)
Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)
 
Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...
Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...
Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...
 
The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019
 
Beware of Survivorship Bias! (conference talk at J-Fall 2019)
Beware of Survivorship Bias! (conference talk at J-Fall 2019)Beware of Survivorship Bias! (conference talk at J-Fall 2019)
Beware of Survivorship Bias! (conference talk at J-Fall 2019)
 
Will Git Be Around Forever? A List of Possible Successors
Will Git Be Around Forever? A List of Possible SuccessorsWill Git Be Around Forever? A List of Possible Successors
Will Git Be Around Forever? A List of Possible Successors
 
QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018
QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018
QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018
 
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
 
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
 
Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!
 
QWERTY or DVORAK? Debunking the Keyboard Layout Myths
QWERTY or DVORAK? Debunking the Keyboard Layout MythsQWERTY or DVORAK? Debunking the Keyboard Layout Myths
QWERTY or DVORAK? Debunking the Keyboard Layout Myths
 
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
 
Migrating 25K lines of Ant scripting to Gradle
Migrating 25K lines of Ant scripting to GradleMigrating 25K lines of Ant scripting to Gradle
Migrating 25K lines of Ant scripting to Gradle
 

Recently uploaded

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 

Recently uploaded (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

Entering the Fourth Dimension of OCR with Tesseract - Talk from Voxxed Days Bucharest 2019

  • 1. Entering the Fourth DimensionEntering the Fourth Dimension of OCR withof OCR with TesseractTesseract Hanno Embregts @hannotify
  • 2.
  • 3. What is OCR?What is OCR?What is OCR?What is OCR?What is OCR? / rst dimension/ rst dimension/ rst dimension/ rst dimension/ rst dimension
  • 4. Atechnology that can take writtenAtechnology that can take written words and convert then aes mowords and convert then aes mo aulerseadans Yom, proved meyren neaulerseadans Yom, proved meyren ne fgntrom sng tne cortec cars ometimes,fgntrom sng tne cortec cars ometimes, ate fant gait sae and ptch, dar engugnate fant gait sae and ptch, dar engugn onthe pase, ana Your Bropared toonthe pase, ana Your Bropared to spend Several cantinas covtecing al mespend Several cantinas covtecing al me one PrP areee e SP es ts anine Oe tatone PrP areee e SP es ts anine Oe tat came autas zerseecame autas zersee
  • 5.
  • 6.
  • 7. A technology that can take writtenA technology that can take written words and convert them back intowords and convert them back into computer-readable form, providedcomputer-readable form, provided they're in the right font, using thethey're in the right font, using the correct colors sometimes, at the rightcorrect colors sometimes, at the right point size and pitch, dark enough onpoint size and pitch, dark enough on the paper, and you're prepared to spendthe paper, and you're prepared to spend several centuries correcting all the onesseveral centuries correcting all the ones that came out as l's, all the O's thatthat came out as l's, all the O's that came out as zeroes, and all the colonscame out as zeroes, and all the colons that come out like semicolons.that come out like semicolons.
  • 8. A Proper De nitionA Proper De nition Optical character recognitionOptical character recognition (...) is(...) is the mechanical or electronic conversionthe mechanical or electronic conversion of images of typed, handwritten orof images of typed, handwritten or printed text into machine-encoded text,printed text into machine-encoded text, whether from a scanned document, awhether from a scanned document, a photo of a document, a scene-photophoto of a document, a scene-photo (...) or from subtitle text superimposed(...) or from subtitle text superimposed on an image.on an image.
  • 12. 19291929192919291929 Gustav Tauschek patents a basic OCR 'reading machine'.
  • 13. 1960s1960s1960s1960s1960s Postal services start using OCR for mail sorting.
  • 14. 19931993199319931993 The Apple Newton becomes the rst handheld computer to feature handwriting recognition.
  • 16. Financial transfersFinancial transfersFinancial transfersFinancial transfersFinancial transfers Catch me if you can!
  • 17. Book digitizationBook digitizationBook digitizationBook digitizationBook digitization Also supports Ctrl+F.
  • 18. Passport scanningPassport scanningPassport scanningPassport scanningPassport scanning Gets you to your gate in time.
  • 19. Number plateNumber plateNumber plateNumber plateNumber plate recognitionrecognitionrecognitionrecognitionrecognition Get your speeding ticket even faster!
  • 20.
  • 21. GettingGettingGettingGettingGetting StartedStartedStartedStartedStarted / second dimension/ second dimension/ second dimension/ second dimension/ second dimension
  • 22. TesseractTesseract Development started at Hewlett-Packard in 1985 Ported to Windows in 1996 Released as open-source in 2005 Google sponsors development of Tesseract since 2006 (( ))https://github.com/tesseract-ocr/tesseracthttps://github.com/tesseract-ocr/tesseract
  • 23. —— Anthony KayAnthony Kay in "Linux Journal", July 2007in "Linux Journal", July 2007 "The core feature, text recognition, is"The core feature, text recognition, is drastically better than anything elsedrastically better than anything else I've tried from the Open SourceI've tried from the Open Source community."community."
  • 24. FeaturesFeatures character recognition support for Unicode input: JPEG, GIF, PNG, TIFF or BMP output: searchable PDF, TSV, plain text or HOCR
  • 25. HOCR exampleHOCR example <p class="ocr_par" lang="deu" title="bbox930"> <span class="ocr_line" title="bbox 348 797 1482 838; baseline - <span class="ocrx_word" title="bbox 348 805 402 832; x_wconf <span class="ocrx_word" title="bbox 421 804 697 832; x_wconf <span class="ocrx_word" title="bbox 717 803 755 831; x_wconf <span class="ocrx_word" title="bbox 773 803 802 831; x_wconf <span class="ocrx_word" title="bbox 821 803 917 830; x_wconf <span class="ocrx_word" title="bbox 935 799 1180 838; x_wconf <span class="ocrx_word" title="bbox 1199 797 1343 832; x_wcon <span class="ocrx_word" title="bbox 1362 805 1399 823; x_wcon <span class="ocrx_word" title="bbox 1417 x_wconf 96">ver-</sp </span> </p>
  • 26. Used by GoogleUsed by Google For text detection on mobile devices In video In Gmail image spam detection
  • 27. New featuresNew features in v3.0in v3.0 support for over 100 languages page layout analysis in v4.0in v4.0 LSTM recognition engine
  • 29. Tess4J featuresTess4J features PDF input Multi-page TIFF input Image optimization (( ))https://github.com/nguyenq/tess4jhttps://github.com/nguyenq/tess4j
  • 30. DemoDemo Install Tesseract (for multilanguage support) Add Tess4J dependency Convert image to plain text (English) Convert image to plain text (Greek)
  • 31. Choosing theChoosing theChoosing theChoosing theChoosing the Right LibraryRight LibraryRight LibraryRight LibraryRight Library / third dimension/ third dimension/ third dimension/ third dimension/ third dimension
  • 33. ABBYY FineReaderABBYY FineReader Development started at ABBYY in 1993 Supports 192 languages 20 million users worldwide Outputs to MS O ce, RTF, HTML, (searchable) PDF and plain text (( ))https://www.abbyy.com/en-eu/ nereaderhttps://www.abbyy.com/en-eu/ nereader
  • 34. Google Cloud VisionGoogle Cloud Vision APIAPI Launched in 2016 by Google Supports 56 languages Outputs to JSON Integrates nicely with Google Images and Google SafeSearch (( ))https://cloud.google.com/vision/https://cloud.google.com/vision/
  • 36. ABBYY GCV Tesseract costs $200 per computer $1.50 per 1000 images, per month $0
  • 37. ABBYY GCV Tesseract costs $200 per computer $1.50 per 1000 images, per month $0 languages 192 56 102
  • 38. ABBYY GCV Tesseract costs $200 per computer $1.50 per 1000 images, per month $0 languages 192 56 102 Java integration through SDK through REST API through JNA wrapper
  • 39. ABBYY GCV Tesseract costs $200 per computer $1.50 per 1000 images, per month $0 languages 192 56 102 Java integration through SDK through REST API through JNA wrapper handwriting recognition 'handprinted' text supported not supported
  • 40. ABBYY GCV Tesseract costs $200 per computer $1.50 per 1000 images, per month $0 languages 192 56 102 Java integration through SDK through REST API through JNA wrapper handwriting recognition 'handprinted' text supported not supported custom training supported not supported supported
  • 41. ABBYY GCV Tesseract costs $200 per computer $1.50 per 1000 images, per month $0 languages 192 56 102 Java integration through SDK through REST API through JNA wrapper handwriting recognition 'handprinted' text supported not supported custom training supported not supported supported accuracy 9/10 8/10 7/10
  • 42. Case studyCase studyCase studyCase studyCase study Paper archives going digital.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50. AdvancedAdvancedAdvancedAdvancedAdvanced FeaturesFeaturesFeaturesFeaturesFeatures / fourth dimension/ fourth dimension/ fourth dimension/ fourth dimension/ fourth dimension
  • 51. What AdvancedWhat Advanced Features?Features? Reporting con dence Multiple languages in a single document Image optimization Speed/accuracy tradeo s Training
  • 52. Improving accuracyImproving accuracyImproving accuracyImproving accuracyImproving accuracy To better recognize the expected input documents.
  • 53. What is con dence?What is con dence?
  • 54. What is con dence?What is con dence?
  • 55. Reporting con denceReporting con dence Tess4J supports two return types:Tess4J supports two return types: String (containing the OCR'ed text) List<OCRResult> (OCR result is written to a le) int confidence List<Word> words
  • 56. Multiple languages in aMultiple languages in a single documentsingle document Concatenate the language codes and separate themConcatenate the language codes and separate them by a plus sign:by a plus sign: tesseract.setLanguage("eng+nld");
  • 57. DemoDemo Reporting con dence Multiple languages in a single document
  • 58. Image optimizationImage optimization Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which contains a few image optimization tricks.contains a few image optimization tricks.
  • 59. Image optimizationImage optimization Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which contains a few image optimization tricks.contains a few image optimization tricks. convertImageToBinary(BufferedImage image)
  • 60. Image optimizationImage optimization Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which contains a few image optimization tricks.contains a few image optimization tricks. convertImageToBinary(BufferedImage image) convertImageToGrayscale(BufferedImage image)
  • 61. Image optimizationImage optimization Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which contains a few image optimization tricks.contains a few image optimization tricks. convertImageToBinary(BufferedImage image) convertImageToGrayscale(BufferedImage image) invertImageColor(BufferedImage image)
  • 62. Image optimizationImage optimization Tess4J is bundled with theTess4J is bundled with the ImageHelperImageHelper class, whichclass, which contains a few image optimization tricks.contains a few image optimization tricks. convertImageToBinary(BufferedImage image) convertImageToGrayscale(BufferedImage image) invertImageColor(BufferedImage image) rotateImage(BufferedImage image, double angle)
  • 63. Still having problems?Still having problems? https://github.com/tesseract-https://github.com/tesseract- ocr/tesseract/wiki/ImproveQualityocr/tesseract/wiki/ImproveQuality
  • 64. Speed/accuracySpeed/accuracy tradeo stradeo s Two types of training data:Two types of training data: https://github.com/tesseract-ocr/tessdata_fast https://github.com/tesseract-ocr/tessdata_best
  • 66. Training dataTraining data 400,000 textlines 4500 fonts (for Latin-based languages)(for Latin-based languages)
  • 68. Custom trainingCustom training Fine tune (e.g. for an unusual font)
  • 69. Custom trainingCustom training Fine tune (e.g. for an unusual font) Cut o the top layer (e.g. for a new language)
  • 70. Custom trainingCustom training Fine tune (e.g. for an unusual font) Cut o the top layer (e.g. for a new language) Retrain from scratch (e.g. don't do this!)
  • 71.
  • 72.
  • 73.
  • 75. Further readingFurther reading "An Overview of the Tesseract OCR Engine" by Ray Smith ( ) Useful resourcesUseful resources Tesseract on Github ( ) Try Tesseract online ( ) https://research.google.com/pubs/archive/33418.pdf https://github.com/tesseract-ocr/tesseract newocr.com
  • 77. Thank you! ☺ Thank you! ☺  https://hannotify.github.io @hannotify hanno.embregts@infosupport.com