Optical Character Recognition has evolved into a mature computer science field, with applications in financial transfers, book digitisation and passport scanning. Now if you would want to add OCR to your Java application, you have lots of options; one of which is Tesseract.
Tesseract has become quite popular amongst software developers because of its accuracy, its open-source status and its active development by Google. By using the Tess4J JNA wrapper it is easily integrated into your Java project.
During this session, I will introduce Tesseract, its pros and cons and how & when to use it. I will compare it to its competitors and I will explain why and how we used it in a case study. To top it off I will live-code a Java application that uses Tesseract and Tess4J to process some example images, so you’ll be able to assess its accuracy for yourself.
Now in geometry, a ‘tesseract’ is the four-dimensional analog of a cube. So will Tesseract live up to its name and help your project to ‘enter the fourth dimension’? Attend this session and find out!
This document introduces the Sulley fuzzing framework. It begins with background information on past fuzzing tools and their limitations. It then discusses Sulley's architecture, including its component breakdown and advanced features. Next, it covers usage and demos of Sulley through audits of Hewlett-Packard and Trend Micro software. Finally, it briefly mentions future development plans for Sulley.
Entering the Fourth Dimension of OCR with Tesseract - Talk from Voxxed Days B...🎤 Hanno Embregts 🎸
This document provides an overview of optical character recognition (OCR) and the Tesseract OCR engine. It discusses the basics of OCR, the history and development of Tesseract, its features such as character recognition and language support, and advanced topics like reporting confidence, image optimization, and custom training. The document also compares Tesseract to competitors like ABBYY FineReader and Google Cloud Vision in terms of cost, capabilities, and accuracy.
https://getnobullshit.com/
Nous savons tous développer une API mais avons-nous bien intégré toutes les problématiques?
Son aspect organisationnel et humain, sa gouvernance, ses contraintes business et d'opérabilité (SLA, SLO, SLI), son release management, ses méthodes de requêtage, sa sécurité (ses performances, sa mise à l'échelle), ses différents types de test, sa documentation, son versioning (compatibilité, changelog), son monitoring — et bien plus encore — de cette API une fois en production ?
Durant ce talk, c'est plus de 30 points d'attentions rarement évoqué que je vous propose d'aborder, à la lumière de retours d'expériences provenant de tech-leader comme Uber, Stripe, Facebook et Google mais aussi d'entreprise française de la petite startup à la PME.
This document provides an overview of Python and the Django web framework. It defines what Python and Django are, where they came from, how Django makes building database-driven websites easier, some of Django's main features, and examples of websites that use Django. The document aims to give the reader a high-level understanding of these tools for web development.
IRJET- Optical Character Recognition for Blind using Raspberry PiIRJET Journal
This document describes an optical character recognition system using a Raspberry Pi to assist blind people by reading printed text aloud. The system uses a Raspberry Pi 3 with a camera, speaker, and text-to-speech software. It captures an image of text, performs OCR to extract the text, and converts it to audio which is played through a speaker. The system was tested using Python programming on a Raspberry Pi and could accurately read text from images taken by the camera.
CREDITS / REFERENCE:
===================
http://www.themechrome.net/Images/Original/aaa.jpg http://activatedrinks.com/#/press http://www.webmedia-solutions.com/web-development-blog/wp-content/uploads/2009/01/web-2-0-logos.gif http://yiku.co/wp-content/uploads/2011/01/67bf1bb2g94361366956f690.jpg http://sixrevisions.com/web_design/the-evolution-of-web-design/ http://www.148apps.com/wp-content/uploads/2011/02/rdio.jpg http://www.desktopexchange.com/gallery/Widescreen-Wallpaper/evolution_1280x768 http://www.blogcdn.com/www.engadget.com/media/2010/12/bmw-connected-ios-app.jpg http://cdn.synthtopia.com/wp-content/uploads/2010/10/moog-filtatron.jpg http://venturebeat.files.wordpress.com/2011/09/gazelle-iphone-app.jpg http://phonerpt.com/wp-content/uploads/iOS-game-Cut-the-Rope-iPhone-iPad.jpg http://www.techtickle.com/wp-content/uploads/2010/11/facebook-app-iphone.jpg http://www.artofflightmovie.com/ http://makenetbg.com/wp-content/uploads/2011/06/servicios-makenet1.jpg http://charliecowan.files.wordpress.com/2011/08/noticeboard.jpg http://www.elipseagency.com/agency.html http://www.nikebetterworld.com/ http://2.bp.blogspot.com/_dCJEsq5nTZA/TJfyIHC87QI/AAAAAAAAAR4/S1hz8ltJY6U/s1600/Bel+Air+Split.jpg http://www.moodsofnorway.com/#/home http://www.ozoneeleven.com/wp-content/uploads/2010/05/Iron-Man-I-II_06.jpg http://www.netmagazine.com/opinions/mobile-apps-must-die http://www.mobileawesomeness.com http://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Web_2.0_Map.svg/800px-Web_2.0_Map.svg.png http://www.devirtuoso.com/2009/05/html-vs-flash-websites-which-is-better/ http://www.webdesignshock.com/wp-content/uploads/2011/08/responsive00.jpg http://www.ri.gov/img/responsive/banner.jpg
slide related marks or contents are owned by individuals, or their related entities. This slide is neither endorsed by nor affiliated with any of these entities :)
Hardware hacking hit the news quite often in 2017, and a lot of pentesters tried to jump into the band wagon and discover the joy of hacking things rather than servers or applications. But most of them are only looking for rootz shellz and p0wning embedded Linux operating systems rather than doing what we really call "hardware hacking". In this talk, we are going to hack a Bluetooth Low Energy smartlock, from its printed circuit board to a fully working exploit, as well as its (wait for it) associated mobile application you need to install to operate this thing.
This talk is not only an introduction into the field of hardware hacking, but also a good way to dive into electronics and its specific protocols, and of course into microcontrollers and System-on-chip reverse engineering. We will cover some electronics basic knowledge as well as tools and classic methodologies when it comes at analyzing an IoT device and will provide tips and tricks based on our experience but our failures too.
This document introduces the Sulley fuzzing framework. It begins with background information on past fuzzing tools and their limitations. It then discusses Sulley's architecture, including its component breakdown and advanced features. Next, it covers usage and demos of Sulley through audits of Hewlett-Packard and Trend Micro software. Finally, it briefly mentions future development plans for Sulley.
Entering the Fourth Dimension of OCR with Tesseract - Talk from Voxxed Days B...🎤 Hanno Embregts 🎸
This document provides an overview of optical character recognition (OCR) and the Tesseract OCR engine. It discusses the basics of OCR, the history and development of Tesseract, its features such as character recognition and language support, and advanced topics like reporting confidence, image optimization, and custom training. The document also compares Tesseract to competitors like ABBYY FineReader and Google Cloud Vision in terms of cost, capabilities, and accuracy.
https://getnobullshit.com/
Nous savons tous développer une API mais avons-nous bien intégré toutes les problématiques?
Son aspect organisationnel et humain, sa gouvernance, ses contraintes business et d'opérabilité (SLA, SLO, SLI), son release management, ses méthodes de requêtage, sa sécurité (ses performances, sa mise à l'échelle), ses différents types de test, sa documentation, son versioning (compatibilité, changelog), son monitoring — et bien plus encore — de cette API une fois en production ?
Durant ce talk, c'est plus de 30 points d'attentions rarement évoqué que je vous propose d'aborder, à la lumière de retours d'expériences provenant de tech-leader comme Uber, Stripe, Facebook et Google mais aussi d'entreprise française de la petite startup à la PME.
This document provides an overview of Python and the Django web framework. It defines what Python and Django are, where they came from, how Django makes building database-driven websites easier, some of Django's main features, and examples of websites that use Django. The document aims to give the reader a high-level understanding of these tools for web development.
IRJET- Optical Character Recognition for Blind using Raspberry PiIRJET Journal
This document describes an optical character recognition system using a Raspberry Pi to assist blind people by reading printed text aloud. The system uses a Raspberry Pi 3 with a camera, speaker, and text-to-speech software. It captures an image of text, performs OCR to extract the text, and converts it to audio which is played through a speaker. The system was tested using Python programming on a Raspberry Pi and could accurately read text from images taken by the camera.
CREDITS / REFERENCE:
===================
http://www.themechrome.net/Images/Original/aaa.jpg http://activatedrinks.com/#/press http://www.webmedia-solutions.com/web-development-blog/wp-content/uploads/2009/01/web-2-0-logos.gif http://yiku.co/wp-content/uploads/2011/01/67bf1bb2g94361366956f690.jpg http://sixrevisions.com/web_design/the-evolution-of-web-design/ http://www.148apps.com/wp-content/uploads/2011/02/rdio.jpg http://www.desktopexchange.com/gallery/Widescreen-Wallpaper/evolution_1280x768 http://www.blogcdn.com/www.engadget.com/media/2010/12/bmw-connected-ios-app.jpg http://cdn.synthtopia.com/wp-content/uploads/2010/10/moog-filtatron.jpg http://venturebeat.files.wordpress.com/2011/09/gazelle-iphone-app.jpg http://phonerpt.com/wp-content/uploads/iOS-game-Cut-the-Rope-iPhone-iPad.jpg http://www.techtickle.com/wp-content/uploads/2010/11/facebook-app-iphone.jpg http://www.artofflightmovie.com/ http://makenetbg.com/wp-content/uploads/2011/06/servicios-makenet1.jpg http://charliecowan.files.wordpress.com/2011/08/noticeboard.jpg http://www.elipseagency.com/agency.html http://www.nikebetterworld.com/ http://2.bp.blogspot.com/_dCJEsq5nTZA/TJfyIHC87QI/AAAAAAAAAR4/S1hz8ltJY6U/s1600/Bel+Air+Split.jpg http://www.moodsofnorway.com/#/home http://www.ozoneeleven.com/wp-content/uploads/2010/05/Iron-Man-I-II_06.jpg http://www.netmagazine.com/opinions/mobile-apps-must-die http://www.mobileawesomeness.com http://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Web_2.0_Map.svg/800px-Web_2.0_Map.svg.png http://www.devirtuoso.com/2009/05/html-vs-flash-websites-which-is-better/ http://www.webdesignshock.com/wp-content/uploads/2011/08/responsive00.jpg http://www.ri.gov/img/responsive/banner.jpg
slide related marks or contents are owned by individuals, or their related entities. This slide is neither endorsed by nor affiliated with any of these entities :)
Hardware hacking hit the news quite often in 2017, and a lot of pentesters tried to jump into the band wagon and discover the joy of hacking things rather than servers or applications. But most of them are only looking for rootz shellz and p0wning embedded Linux operating systems rather than doing what we really call "hardware hacking". In this talk, we are going to hack a Bluetooth Low Energy smartlock, from its printed circuit board to a fully working exploit, as well as its (wait for it) associated mobile application you need to install to operate this thing.
This talk is not only an introduction into the field of hardware hacking, but also a good way to dive into electronics and its specific protocols, and of course into microcontrollers and System-on-chip reverse engineering. We will cover some electronics basic knowledge as well as tools and classic methodologies when it comes at analyzing an IoT device and will provide tips and tricks based on our experience but our failures too.
This document discusses tools and techniques for testing the security of Voice over IP (VoIP) infrastructures. It describes using NMAP and SMAP tools to scan for active VoIP services like SIP and IAX and identify device models. It also explains how to use tcpdump to capture network traffic and sipdump to analyze captures for authentication credentials. The document warns that many VoIP devices have public-facing web interfaces that expose management functions and that footprinting searches can often find these interfaces indexed online with weak or default credentials.
Automatic multi-modal metadata annotation based on trained cognitive solution...FIAT/IFTA
Jakob Rosinski presented on automatic multi-modal metadata annotation based on trained cognitive solutions. He discussed using various cognitive services like IBM Watson, Microsoft Cognitive Services, Google Vision, and OpenCV to analyze video and audio content. This includes scene detection, people and object detection, emotion detection, speech to text, and more. The extracted metadata can then be used to enrich content and power advanced search and discovery tools.
Slides of my inaugural lecture as professor of Software Engineering at IT University of Copenhagen. An attempt to explain what software engineering research is (for me) by example. Presented on December 1st, 2016 at IT University.
Exploring the Internet of Things Using RubyMike Hagedorn
The document discusses exploring the Internet of Things using Ruby. It covers using Ruby and USB to control a lamp, creating an IoT printer that prints tasks from a Mac, and building an IoT display to show tweets. It demonstrates connecting various devices like Arduino boards to the cloud and controlling them remotely through Ruby scripts and APIs.
Marcel Caraciolo is a scientist and CTO who has worked with Python for 7 years. He is interested in machine learning, mobile education, and data. He is the current president of the Python Brazil Association. Caraciolo has created several scientific Python packages and taught Python online. He is now working on applying Python to bioinformatics and clinical sequencing through tools like biopandas.
This document discusses hiding malicious payloads in images and other file formats. It describes how JavaScript code can be embedded and executed from within JPEG, GIF and BMP image files using techniques like modified file headers. It also explains how the HTML5 canvas element can be used for heap sprays to facilitate exploitation in modern browsers with stricter encoding rules. The document concludes that these image-based attack techniques pose challenges for forensic analysis and defense.
IRJET-Raspberry Pi Based Reader for Blind PeopleIRJET Journal
This document presents a Raspberry Pi-based document reader for blind people. It uses optical character recognition and text-to-speech synthesis to convert printed text images into audio output. Specifically, the system captures images using a camera connected to the Raspberry Pi. It then uses the Tesseract library and OpenCV to perform OCR on the images and convert the recognized text into text files. Finally, it uses a text-to-speech library to convert the text files into audio output that can be listened to through headphones or speakers. The system achieves a 90% success rate on test documents. It provides an accessible solution to allow blind people to access printed information through audio.
This document provides an overview of popular JavaScript libraries including Dojo Toolkit, YUI, Prototype, and jQuery. It discusses problems they aim to solve like cross-browser inconsistencies. Key features of each library are mentioned like Dojo's widgets, YUI's controls, Prototype's Ruby-like syntax, and jQuery's chaining and node selection. The document also covers ideas from the libraries like progressive enhancement, animation APIs, and leveraging hosting on CDNs.
IRJET- Voice Assisted Text Reading and Google Home Smart Socket Control Syste...IRJET Journal
This document describes a system that aims to help visually impaired persons by allowing them to read text using voice assistance and control smart home devices with voice commands using a Raspberry Pi. The system uses optical character recognition (Tesseract OCR) to extract text from images, which is then converted to speech using e-Speak. It also enables control of smart sockets using Google Home voice recognition on the Raspberry Pi. The goal is to help blind people read text independently and control electrical devices safely using only their voice.
OCCiware A Formal and Tooled Toolchain For Managing Everything as a Service OCCIware
The OCCIware project aims at building a comprehensive engineering toolchain for managing Everything as a Service (XaaS). The objective is to dramatically decrease the cost of using or providing XaaS by breaking silos between layers and domains of Cloud Computing. Leveraging the Open Cloud Computing Interface (OCCI) standard-to-be, we are developing a model-driven engineering studio as well as generic runtimes adapted to various domains: Linked Open Data, cloud computing, platform as a service, Big Data, connected objects, etc. The project, funded by French Ministry of Industry, involves 10 academic and industrial partners and is supervised by a committee of 11 top scientists and industry experts.
This document discusses building AI-powered apps on AWS using services like Polly, Rekognition, and Cognito. It provides demos of text-to-speech with Polly and image analysis with Rekognition. It also discusses using Cognito for user identity management and CodeStar for developing mobile apps.
This document discusses the author's experience developing open source code for content management systems (CMS) that has been used in over 63,000 projects. It notes that thousands of web developers have used the author's code without knowing who they are. It then lists various web development and automation services offered by the author, including the technologies used, typical project timelines, potential cost savings, competitive pricing ranges, and the author's own prices to hire them directly for fixed-cost projects.
The document outlines the steps to create an optical character recognition (OCR) computer vision resource in Azure and use it to extract text from images. The 11 steps include: 1) searching for computer vision in the Azure portal, 2) creating a computer vision resource, 3) providing configuration details, 4) obtaining the keys and endpoint, 5) creating Azure storage, 6) cloning a GitHub repo with sample code, 7) modifying the code to include the keys and endpoint, 8) running the code on sample images, 9) extracting text from the first image, and 10) extracting text from the second image. Completing these steps successfully creates an OCR computer vision resource and performs OCR on images as specified in the provided
Building Atlassian Connect add-ons with client-server frameworks like Express.JS and Play produces powerful add-ons, but requires hosting and database consideration. In contrast, "static" Connect add-ons are easier to write and far simpler to deploy. A static Connect add-on is simply a set of files (including an atlassian-connect.json descriptor) that are web accessible, either through a web server or via deployment to a CDN. Static add-ons have several advantages. First, infinite scalability. Why pay for CPU when you can let the user agent do the work? Second, simple persistence. Why pay for disk when you have local storage and JIRA & Confluence's persistence REST APIs? Third, extreme performance. Let a worldwide CDN serve your files from the nearest edge - it's literally impossible to compete with a static add-on when it comes to performance! Finally, easy caching. Why bother serving requests when your unchanged static files can be cached indefinitely with simple HTTP caching? In this talk I'll highlight the benefits and restrictions of static add-on architecture, and discuss the nuts and bolts of implementing a static add-on. I'll also show off the static add-on skeleton that will get your static add-on development off to a flying start.
Integrating Applications: the Reactive WayNicola Ferraro
This document discusses integrating applications in a reactive way. It begins by defining reactive programming and reactive systems, emphasizing asynchronous, non-blocking architectures. It then discusses application integration patterns like those in Apache Camel, which supports over 200 components and many integration patterns. The document ends by discussing how to build larger reactive systems through microservice integration and communication across reactive and non-reactive applications.
Erik Bernhardsson presented Luigi, a Python framework for defining and running data pipelines and workflows. Luigi provides tools for batch data processing, scheduling dependencies between tasks, monitoring progress, and running tasks across multiple workers. It integrates with Hadoop, HDFS, Hive, Pig, and databases to run jobs and move data. Luigi aims to simplify workflow management compared to tools like Oozie by using Python and avoiding XML definitions.
Slides of my presentation at TransferSummit 2010, "Open innovation in software means Open Source", http://transfersummit.com/programme/60 . See accompanying article on the H online, http://x42.ch/03.10.01
IRJET- Portable Camera based Assistive Text and Label Reading for Blind PersonsIRJET Journal
This document describes a portable camera-based system to help blind persons read text labels and signs using a Raspberry Pi, camera, and text-to-speech software. The system works by capturing an image with the camera, using optical character recognition software to convert the text to machine-readable format, and then converting it to audio using Google Text-to-Speech for the blind person to hear over speakers. The goal is to enhance independent living for the blind by allowing them to read text from nearby objects, labels, and signs.
The document discusses pattern matching in Java. It provides examples of using type patterns to bind variables in if/else statements and instanceof checks. Switch expressions are demonstrated as another way to perform pattern matching by matching on an object's type and extracting variables. The benefits of pattern matching such as conciseness, safety and reducing errors are outlined. It also shows how to handle null values in a switch expression.
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202🎤 Hanno Embregts 🎸
At first it seemed to be just a small enhancement: the addition of “Pattern Matching for instanceof” (JEP 305) in Java 14. No more unnecessary casting after an instanceof, that ought to save us a few seconds a day! However, upon further investigation you’ll quickly discover that pattern matching is not just an enhancement, but rather a vital puzzle piece in the grander scheme of things.
Why were switch expressions added to Java, for example? To make them support pattern matching in a later release! And why did Java 14 bring us records and will Java 15 contain sealed types? Because they could work really well with pattern matching in a later release! These new concepts are the foundation upon which advanced pattern matching features will be built.
So attend this session to get all caught up! You’ll hear about type patterns, deconstruction patterns, nested patterns and even how pattern matching could improve serialization in the future. Live coding included, of course!
More Related Content
Similar to Entering the Fourth Dimension of OCR with Tesseract
This document discusses tools and techniques for testing the security of Voice over IP (VoIP) infrastructures. It describes using NMAP and SMAP tools to scan for active VoIP services like SIP and IAX and identify device models. It also explains how to use tcpdump to capture network traffic and sipdump to analyze captures for authentication credentials. The document warns that many VoIP devices have public-facing web interfaces that expose management functions and that footprinting searches can often find these interfaces indexed online with weak or default credentials.
Automatic multi-modal metadata annotation based on trained cognitive solution...FIAT/IFTA
Jakob Rosinski presented on automatic multi-modal metadata annotation based on trained cognitive solutions. He discussed using various cognitive services like IBM Watson, Microsoft Cognitive Services, Google Vision, and OpenCV to analyze video and audio content. This includes scene detection, people and object detection, emotion detection, speech to text, and more. The extracted metadata can then be used to enrich content and power advanced search and discovery tools.
Slides of my inaugural lecture as professor of Software Engineering at IT University of Copenhagen. An attempt to explain what software engineering research is (for me) by example. Presented on December 1st, 2016 at IT University.
Exploring the Internet of Things Using RubyMike Hagedorn
The document discusses exploring the Internet of Things using Ruby. It covers using Ruby and USB to control a lamp, creating an IoT printer that prints tasks from a Mac, and building an IoT display to show tweets. It demonstrates connecting various devices like Arduino boards to the cloud and controlling them remotely through Ruby scripts and APIs.
Marcel Caraciolo is a scientist and CTO who has worked with Python for 7 years. He is interested in machine learning, mobile education, and data. He is the current president of the Python Brazil Association. Caraciolo has created several scientific Python packages and taught Python online. He is now working on applying Python to bioinformatics and clinical sequencing through tools like biopandas.
This document discusses hiding malicious payloads in images and other file formats. It describes how JavaScript code can be embedded and executed from within JPEG, GIF and BMP image files using techniques like modified file headers. It also explains how the HTML5 canvas element can be used for heap sprays to facilitate exploitation in modern browsers with stricter encoding rules. The document concludes that these image-based attack techniques pose challenges for forensic analysis and defense.
IRJET-Raspberry Pi Based Reader for Blind PeopleIRJET Journal
This document presents a Raspberry Pi-based document reader for blind people. It uses optical character recognition and text-to-speech synthesis to convert printed text images into audio output. Specifically, the system captures images using a camera connected to the Raspberry Pi. It then uses the Tesseract library and OpenCV to perform OCR on the images and convert the recognized text into text files. Finally, it uses a text-to-speech library to convert the text files into audio output that can be listened to through headphones or speakers. The system achieves a 90% success rate on test documents. It provides an accessible solution to allow blind people to access printed information through audio.
This document provides an overview of popular JavaScript libraries including Dojo Toolkit, YUI, Prototype, and jQuery. It discusses problems they aim to solve like cross-browser inconsistencies. Key features of each library are mentioned like Dojo's widgets, YUI's controls, Prototype's Ruby-like syntax, and jQuery's chaining and node selection. The document also covers ideas from the libraries like progressive enhancement, animation APIs, and leveraging hosting on CDNs.
IRJET- Voice Assisted Text Reading and Google Home Smart Socket Control Syste...IRJET Journal
This document describes a system that aims to help visually impaired persons by allowing them to read text using voice assistance and control smart home devices with voice commands using a Raspberry Pi. The system uses optical character recognition (Tesseract OCR) to extract text from images, which is then converted to speech using e-Speak. It also enables control of smart sockets using Google Home voice recognition on the Raspberry Pi. The goal is to help blind people read text independently and control electrical devices safely using only their voice.
OCCiware A Formal and Tooled Toolchain For Managing Everything as a Service OCCIware
The OCCIware project aims at building a comprehensive engineering toolchain for managing Everything as a Service (XaaS). The objective is to dramatically decrease the cost of using or providing XaaS by breaking silos between layers and domains of Cloud Computing. Leveraging the Open Cloud Computing Interface (OCCI) standard-to-be, we are developing a model-driven engineering studio as well as generic runtimes adapted to various domains: Linked Open Data, cloud computing, platform as a service, Big Data, connected objects, etc. The project, funded by French Ministry of Industry, involves 10 academic and industrial partners and is supervised by a committee of 11 top scientists and industry experts.
This document discusses building AI-powered apps on AWS using services like Polly, Rekognition, and Cognito. It provides demos of text-to-speech with Polly and image analysis with Rekognition. It also discusses using Cognito for user identity management and CodeStar for developing mobile apps.
This document discusses the author's experience developing open source code for content management systems (CMS) that has been used in over 63,000 projects. It notes that thousands of web developers have used the author's code without knowing who they are. It then lists various web development and automation services offered by the author, including the technologies used, typical project timelines, potential cost savings, competitive pricing ranges, and the author's own prices to hire them directly for fixed-cost projects.
The document outlines the steps to create an optical character recognition (OCR) computer vision resource in Azure and use it to extract text from images. The 11 steps include: 1) searching for computer vision in the Azure portal, 2) creating a computer vision resource, 3) providing configuration details, 4) obtaining the keys and endpoint, 5) creating Azure storage, 6) cloning a GitHub repo with sample code, 7) modifying the code to include the keys and endpoint, 8) running the code on sample images, 9) extracting text from the first image, and 10) extracting text from the second image. Completing these steps successfully creates an OCR computer vision resource and performs OCR on images as specified in the provided
Building Atlassian Connect add-ons with client-server frameworks like Express.JS and Play produces powerful add-ons, but requires hosting and database consideration. In contrast, "static" Connect add-ons are easier to write and far simpler to deploy. A static Connect add-on is simply a set of files (including an atlassian-connect.json descriptor) that are web accessible, either through a web server or via deployment to a CDN. Static add-ons have several advantages. First, infinite scalability. Why pay for CPU when you can let the user agent do the work? Second, simple persistence. Why pay for disk when you have local storage and JIRA & Confluence's persistence REST APIs? Third, extreme performance. Let a worldwide CDN serve your files from the nearest edge - it's literally impossible to compete with a static add-on when it comes to performance! Finally, easy caching. Why bother serving requests when your unchanged static files can be cached indefinitely with simple HTTP caching? In this talk I'll highlight the benefits and restrictions of static add-on architecture, and discuss the nuts and bolts of implementing a static add-on. I'll also show off the static add-on skeleton that will get your static add-on development off to a flying start.
Integrating Applications: the Reactive WayNicola Ferraro
This document discusses integrating applications in a reactive way. It begins by defining reactive programming and reactive systems, emphasizing asynchronous, non-blocking architectures. It then discusses application integration patterns like those in Apache Camel, which supports over 200 components and many integration patterns. The document ends by discussing how to build larger reactive systems through microservice integration and communication across reactive and non-reactive applications.
Erik Bernhardsson presented Luigi, a Python framework for defining and running data pipelines and workflows. Luigi provides tools for batch data processing, scheduling dependencies between tasks, monitoring progress, and running tasks across multiple workers. It integrates with Hadoop, HDFS, Hive, Pig, and databases to run jobs and move data. Luigi aims to simplify workflow management compared to tools like Oozie by using Python and avoiding XML definitions.
Slides of my presentation at TransferSummit 2010, "Open innovation in software means Open Source", http://transfersummit.com/programme/60 . See accompanying article on the H online, http://x42.ch/03.10.01
IRJET- Portable Camera based Assistive Text and Label Reading for Blind PersonsIRJET Journal
This document describes a portable camera-based system to help blind persons read text labels and signs using a Raspberry Pi, camera, and text-to-speech software. The system works by capturing an image with the camera, using optical character recognition software to convert the text to machine-readable format, and then converting it to audio using Google Text-to-Speech for the blind person to hear over speakers. The goal is to enhance independent living for the blind by allowing them to read text from nearby objects, labels, and signs.
Similar to Entering the Fourth Dimension of OCR with Tesseract (20)
The document discusses pattern matching in Java. It provides examples of using type patterns to bind variables in if/else statements and instanceof checks. Switch expressions are demonstrated as another way to perform pattern matching by matching on an object's type and extracting variables. The benefits of pattern matching such as conciseness, safety and reducing errors are outlined. It also shows how to handle null values in a switch expression.
Pattern Matching - Small Enhancement or Major Feature? from Developer Week 202🎤 Hanno Embregts 🎸
At first it seemed to be just a small enhancement: the addition of “Pattern Matching for instanceof” (JEP 305) in Java 14. No more unnecessary casting after an instanceof, that ought to save us a few seconds a day! However, upon further investigation you’ll quickly discover that pattern matching is not just an enhancement, but rather a vital puzzle piece in the grander scheme of things.
Why were switch expressions added to Java, for example? To make them support pattern matching in a later release! And why did Java 14 bring us records and will Java 15 contain sealed types? Because they could work really well with pattern matching in a later release! These new concepts are the foundation upon which advanced pattern matching features will be built.
So attend this session to get all caught up! You’ll hear about type patterns, deconstruction patterns, nested patterns and even how pattern matching could improve serialization in the future. Live coding included, of course!
"Will Git Be Around Forever? A List of Possible Successors" from Devoxx 2022🎤 Hanno Embregts 🎸
Ten years ago, only Linux kernel committers and other early adopters used Git. Almost everyone else used Subversion. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now? And what features would YOU want from your version control software in 2032? No history rewrites? Faster? No merge conflicts ever?
In this talk I'll discuss a few post-Git products, including Fossil, Plastic and Pijul, and their support for the features we so dearly desire. I'll also try to predict which one will be 'the top dog' in 2032.
So attend this session if you're excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first. 😀
"Will Git Be Around Forever? A List of Possible Successors" from FrontMania 2022🎤 Hanno Embregts 🎸
Ten years ago, only Linux kernel committers and other early adopters used Git. Almost everyone else used Subversion. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now? And what features would YOU want from your version control software in 2032? No history rewrites? Faster? No merge conflicts ever?
In this talk I'll discuss a few post-Git products, including Fossil, Plastic and Pijul, and their support for the features we so dearly desire. I'll also try to predict which one will be 'the top dog' in 2032.
So attend this session if you're excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first. 😀
At first it seemed to be just a small enhancement: the addition of “Pattern Matching for instanceof” (JEP 305) in Java 14. No more unnecessary casting after an instanceof, that ought to save us a few seconds a day! However, upon further investigation you’ll quickly discover that pattern matching is not just an enhancement, but rather a vital puzzle piece in the grander scheme of things.
Why were switch expressions added to Java, for example? To make them support pattern matching in a later release! And why did Java 14 bring us records and will Java 15 contain sealed types? Because they could work really well with pattern matching in a later release! These new concepts are the foundation upon which advanced pattern matching features will be built.
So attend this session to get all caught up! You’ll hear about type patterns, deconstruction patterns, nested patterns and even how pattern matching could improve serialization in the future. Live coding included, of course!
JCON 2021 talk - "Wil Git Be Around Forever? A List of Possible Successors"🎤 Hanno Embregts 🎸
What source control software did you use in 2010? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?
In this talk we will think about what features we want from our source control software in 2030. More speed? Better collaboration support? No merge conflicts ever?
I’ll also discuss a few products that have been published after Git emerged, including Plastic, Fossil and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2030 (all information is provided “as is”, no guarantees etc. etc.).
So attend this session if you’re excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first.
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG🎤 Hanno Embregts 🎸
What source control software did you use in 2010? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?
In this talk we will think about what features we want from our source control software in 2030. More speed? Better collaboration support? No merge conflicts ever?
I’ll also discuss a few products that have been published after Git emerged, including Plastic, Fossil and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2030 (all information is provided “as is”, no guarantees etc. etc.).
So attend this session if you’re excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first.
Pattern Matching: Small Enhancement or Major Feature? (talk from jLove 2021)🎤 Hanno Embregts 🎸
At first it seemed to be just a small enhancement: the addition of “Pattern Matching for instanceof” (JEP 305) in Java 14. No more unnecessary casting after an instanceof, that ought to save us a few seconds a day! However, upon further investigation you’ll quickly discover that pattern matching is not just an enhancement, but rather a vital puzzle piece in the grander scheme of things.
Why were switch expressions added to Java, for example? To make them support pattern matching in a later release! And why did Java 14 bring us records and will Java 15 contain sealed types? Because they could work really well with pattern matching in a later release! These new concepts are the foundation upon which advanced pattern matching features will be built.
So attend this session to get all caught up! You’ll hear about type patterns, deconstruction patterns, nested patterns and even how pattern matching could improve serialization in the future. Live coding included, of course!
Pattern Matching: From Small Enhancement to Major Feature (talk from JavaLand...🎤 Hanno Embregts 🎸
At first it seemed to be just a small enhancement: the addition of “Pattern Matching for instanceof” (JEP 305) in Java 14. No more unnecessary casting after an instanceof, that ought to save us a few seconds a day! However, upon further investigation you’ll quickly discover that pattern matching is not just an enhancement, but rather a vital puzzle piece in the grander scheme of things.
Why were switch expressions added to Java, for example? To make them support pattern matching in a later release! And why did Java 14 bring us records and will Java 15 contain sealed types? Because they could work really well with pattern matching in a later release! These new concepts are the foundation upon which advanced pattern matching features will be built.
So attend this session to get all caught up! You’ll hear about type patterns, deconstruction patterns, nested patterns and even how pattern matching could improve serialization in the future. Live coding included, of course!
When I return from a conference I am dying to try out the new ideas I brought home and convince my colleagues that we should start using them. Turns out my hard skills only get me *so* far. Soft skills play a vital part in the development of a great product.
We need to be able to motivate people, listen to them and treat them with respect. So how do we get there?
The few things I have learned about soft skills came through improving upon my mistakes and asking other developers about it.
So bring your questions to this meetup and let's see if we can put the 'soft' in software development together.
Beware of Survivorship Bias! (conference talk at J-Fall 2019)🎤 Hanno Embregts 🎸
Most talks on a typical conference schedule contain success stories of technology. This could lead to survivorship bias. Survivorship bias causes you to draw false conclusions because you mostly heard about successes, but hardly ever about failures. Yet failures provide us with lots of valuable knowledge: when not to apply a certain technique, pattern or process.
So no success stories in this talk! Just some ‘silver bullets’ we tried to use to solve our problems, but turned out to be Very Bad Ideas™. We’ll share how survivorship bias can easily influence your ideas and cloud your judgement.
After attending this talk you’ll be more aware of survivorship bias and what you can do to keep your head cool, no matter how many ‘silver bullets’ are fired at you.
Will Git Be Around Forever? A List of Possible Successors🎤 Hanno Embregts 🎸
What source control software did you use in 2008? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?
In this talk we will think about what features we want from our source control software in 2028. More speed? Better collaboration support? No merge conflicts ever?
I’ll also discuss a few products that have been published after Git emerged, including Fossil, Veracity and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2028 (all information is provided “as is”, no guarantees etc. etc.).
So attend this session if you’re excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first.
QWERTY or DVORAK? Debunking the Keyboard Layout Myths -- from GeeCON 2018🎤 Hanno Embregts 🎸
If you’re reading this summary on a computer, chances are there is a QWERTY keyboard on your desk. This keyboard layout has been around since 1873, and it has been widely adopted ever since. However, its popularity has always remained a mystery to me. Why is everyone using a keyboard layout that doesn’t look that efficient on first sight? I’m not the only one asking this question. A lot of myths exist on the QWERTY keyboard layout, including the one that it was specifically designed to slow down typists. In preparation for a switch to the DVORAK layout, I did some research and found out that a lot of these myths are riddled with factual errors. Also, I started learning DVORAK and kept track of my progress and what I thought were the pros and cons. So was QWERTY designed to slow us down? Is it feasible to adopt an alternative layout like DVORAK? If so, how long will it take you to learn it, and should everyone consider it? Join this session to have your questions answered, and feel free to bring your keyboard layout of choice. :-)
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...🎤 Hanno Embregts 🎸
Spring Boot makes it easy to create stand-alone Spring-based applications that you can ‘just run’. It uses a ‘convention over configuration’ approach to get you up and running in no-time. And with the release of Spring Boot 2 in February 2018 all Spring 5.0 features will be available for Spring Boot users, as well as Kotlin support. In this session I will demonstrate this by live-coding a Spring Boot 2 application that will ‘just work’.
But audience beware, this is not your standard ‘live-coding session’. Attendees will have a vital say in the session’s content by defining the application’s requirements. Do you want a simple task planner? Or track your favourite movies? It’s up to you! Should it use MongoDB or JPA? You decide! Built with Java or Kotlin? I don’t care! Do you want an Angular front-end with a RESTful back-end or do you prefer a classic web app with Thymeleaf templates? It’s your call! Seriously.
During the session you get to make these decisions by participating in an online vote. And you will discover that Spring Boot is up to the task no matter what choices you make.
So what are you waiting for? Bring your own device, help shape the application that we’re building and learn lots about Spring Boot in the process.
This session is intended for Java software engineers with an interest in Spring Boot. Some Spring experience could come in handy, but is not strictly necessary. After this session, you will know enough to start your own Spring Boot project.
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)🎤 Hanno Embregts 🎸
Spring Boot is a framework for creating stand-alone, production-grade Spring based applications that can be "run" using java -jar without the need for an external web server. It favors convention over configuration and aims to get developers up and running quickly with minimal configuration. Key features include an embedded web server, automatic configuration, and starters that provide prepackaged dependencies. Pros include faster development and deployment, while potential cons include more complex custom configuration and incompatibility with some legacy Spring projects. The documentation provides guidance on creating starter projects with an initial Java file, build script, and dependencies.
Building a Spring Boot Application - Ask the Audience!🎤 Hanno Embregts 🎸
This document provides an overview of building applications with Spring Boot. It discusses key features such as creating stand-alone Spring applications without separate web servers, automatic Spring configuration, and getting started quickly with one Java file and a build script. Pros include faster deployments and no need for web.xml files. Cons can include custom configuration challenges and incompatibility with some legacy Spring projects. The document also demonstrates sample code and references Spring Initializr for project setups.
If you're reading this summary on a computer, chances are there is a QWERTY keyboard on your desk. This keyboard layout has been around since 1873, and it has been widely adopted ever since. However, its popularity has always remained a mystery to me. Why is everyone using a keyboard layout that doesn't look that efficient on first sight?
I'm not the only one asking this question. A lot of myths exist on the QWERTY keyboard layout, including the one that it was specifically designed to slow down typists. In preparation for a switch to the DVORAK layout, I did some research and found out that a lot of these myths are riddled with factual errors. Also, I started learning DVORAK and kept track of my progress and what I thought were the pros and cons.
So was QWERTY designed to slow us down? Is it feasible to adopt an alternative layout like DVORAK? If so, how long will it take you to learn it, and should everyone consider it? Join this session to have your questions answered, and feel free to bring your keyboard layout of choice. :-)
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)🎤 Hanno Embregts 🎸
Spring Boot makes it easy to create stand-alone Spring-based application that you can 'just run'. It uses a 'convention over configuration' approach to get you up and running in no-time, while offering all Spring features that you have grown fond of in the past years. In this session this is demonstrated by live-coding a Spring Boot application that will just work.
But audience beware, this is not your standard live-coding session'. Attendees will have a vital say in the session's content by defining the applications requ irements. Should it be an app to track your kitchen cupboard contents or do you want a simple task planner? It's up to you! Should it use MongoDB or Couchbase? You decide! Do you want an AngularJS front-end with a RESTful backend or do you prefer a classic web app with Thymeleaf templates? It's your call! Seriously.
During the session you get to make these decisions by participating in an online vote. And you will discover that Spring Boot is up to the task no matter what choices you make.
So what are you waiting for? Bring your own device, help shape the application that we're building and learn lots about Spring Boot in the process.
This session is intended for Java software engineers with an interest in Spring Boot. Some Spring experience could come in handy, but is not strictly necessary. After this session, you will know enough to start your own Spring Boot project.
Most developers prefer to spend their time writing code instead of performing build script maintenance. Build scripting may be an essential part of the software development process, but it often lacks maintainability which makes applying and deploying changes a tedious job. So it’s important to make sure your build system encourages simplicity and that changes can be made in a fast and straightforward way. Industry standards Ant and Maven are not quite up to the task; Gradle is a better alternative.
This presentation introduces Gradle – a modern build system that supports all JVM Languages – and shares the result of the Ant-to-Gradle migration that was performed at NS (Dutch Railways). The session will focus on the challenges we faced while trying to replace Ant scripting with the Gradle equivalent and how we handled them.
After attending this session, you will have a good understanding of Gradle and its pros and cons compared to Ant and Maven. On top of that, you will be able to migrate your own project to Gradle, even if your project has a huge code base or relies on ancient technologies. The lessons we learnt at NS could be very helpful to your own situation.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Malibou Pitch Deck For Its €3M Seed Roundsjcobrien
French start-up Malibou raised a €3 million Seed Round to develop its payroll and human resources
management platform for VSEs and SMEs. The financing round was led by investors Breega, Y Combinator, and FCVC.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
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
https://gifer.com/en/7U5F
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
@hannotify
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.
@hannotify
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.
https://en.wikipedia.org/wiki/Optical_character_recognition
14. 19931993199319931993
The Apple Newton becomes the rst
handheld computer to feature
handwriting recognition.
https://commons.wikimedia.org/wiki/File:Newton_MessagePad_120_stylus.JPG
17. Book digitizationBook digitizationBook digitizationBook digitizationBook digitization
Also supports Ctrl+F.
https://upload.wikimedia.org/wikipedia/commons/6/65/Internet_Archive_book_scanner_1.jpg
18. Passport scanningPassport scanningPassport scanningPassport scanningPassport scanning
Gets you to your gate in time.
https://supertravelme.com/wp-content/uploads/2017/08/Changi-Airport-Terminal-4-Automated-Departures-Scan-Passport-and-Take-Photo-1G7A1491.jpg
19. Number plateNumber plateNumber plateNumber plateNumber plate
recognitionrecognitionrecognitionrecognitionrecognition
Get your speeding ticket even faster!
https://commons.wikimedia.org/wiki/File:Nopeuskamera_20170619.jpg
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
()
@hannotify
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."
https://www.linuxjournal.com/article/9676
26. Used by GoogleUsed by Google
For text detection on mobile devices
In video
In Gmail image spam detection
https://opensource.google.com/projects/tesseract
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
@hannotify
29. Tess4J featuresTess4J features
PDF input
Multi-page TIFF input
Image optimization
(( ))https://github.com/nguyenq/tess4jhttps://github.com/nguyenq/tess4j
@hannotify
30. DemoDemo
Install Tesseract (for multilanguage support)
Add Tess4J dependency
Convert image to plain text (English)
Convert image to plain text (Greek)
@hannotify
31. Choosing theChoosing theChoosing theChoosing theChoosing the
Right LibraryRight LibraryRight LibraryRight LibraryRight Library
/ third dimension/ third dimension/ third dimension/ third dimension/ third dimension
https://gifer.com/en/7U5F
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
@hannotify
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/visionhttps://cloud.google.com/vision
@hannotify
36. ABBYY GCV Tesseract
costs
$200
per computer
$1.50
per 1000 images, per
month
$0
https://www.digitisation.eu/download/website- les/IMPACT_D-EXT2_Pilot_report_PSNC.pdf
37. ABBYY GCV Tesseract
costs
$200
per computer
$1.50
per 1000 images, per
month
$0
languages 192 56 102
https://www.digitisation.eu/download/website- les/IMPACT_D-EXT2_Pilot_report_PSNC.pdf
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
https://www.digitisation.eu/download/website- les/IMPACT_D-EXT2_Pilot_report_PSNC.pdf
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
https://www.digitisation.eu/download/website- les/IMPACT_D-EXT2_Pilot_report_PSNC.pdf
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
https://www.digitisation.eu/download/website- les/IMPACT_D-EXT2_Pilot_report_PSNC.pdf
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.5/10
https://www.digitisation.eu/download/website- les/IMPACT_D-EXT2_Pilot_report_PSNC.pdf
42. Case studyCase studyCase studyCase studyCase study
Paper archives going digital.
https://pxhere.com/en/photo/906364
53. What is con dence?What is con dence?
@hannotify
54. What is con dence?What is con dence?
@hannotify
55. Reporting con denceReporting con dence
Tess4J supports two return types:Tess4J supports two return types:
String (containing the OCR'ed text)
List<OCRResult> (text is written to a le)
int confidence
List<Word> words
@hannotify
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");
@hannotify
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.
@hannotify
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)
@hannotify
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)
@hannotify
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)
@hannotify
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)
@hannotify
63. Still having problems?Still having problems?
https://tesseract-https://tesseract-
ocr.github.io/tessdoc/ImproveQualityocr.github.io/tessdoc/ImproveQuality
@hannotify
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
https://github.com/tesseract-ocr/tesseract/wiki/Data-Files#updated-data- les-for-version-400-september-15-2017
69. Custom trainingCustom training
Fine tune (e.g. for an unusual font)
Cut o the top layer (e.g. for a new language)
https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00
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!)
https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00
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
@hannotify