I was presented with a task to quickly prepare a bare-metal Linux machine to run Tesseract OCR for optical character recognition task. The criterion was to to the recognition as fast as possible. In my tests, the Tesseract 5 was far more precise than Tesseract 4, no matter what options, configurations and pre-processing I tried (and I tried a lot of them!). The other requirement was to use Ubuntu 18.04. LTS. It is not the latest, but still pretty support-ready (Apr 2028). I have gathered some notes from the process, so I thought I share them. Maybe they can help someone.
HP 290 G4 manual
For the task I obtained the HP 290 G4 station in the midi-tower, as the off-the-shelf part, and little bit in a hurry. Tesseract needs mostly CPU and this came with a relatively recent multi-threading Intel i3 processor, which later proved a good investment.
However, I had problems to get Ubuntu there. Relevant excerpts from the HP 290 G4 manual:
- Turn on or restart the computer or tablet, quickly press
Esc, and then press
F9for boot options.
- Turn on or restart the computer, and when the HP logo appears, press
F10to enter Computer Setup (UEFI BIOS).
The keys are not too common based on my previous experience - I was
Ubuntu apparently came without SSH enabled by default source:
sudo apt install openssh-server sudo systemctl enable ssh.service --now
Node 16 LTS
node in the repository was version 8. Version 16 LTS was needed
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - sudo apt -y install nodejs
To install node-red [source](sudo npm install -g --unsafe-perm node-red):
sudo npm install -g --unsafe-perm node-red
PM2 process manager for node-red
To make node-red start on boot on Ubuntu (unlike in Raspbian) a custom solution is needed. PM2 was used source:
sudo npm install -g pm2 pm2 start $(which node-red) -- -v pm2 save pm2 startup # Now run the command displayed on the screen
PM2 autostart on boot
Important note on error
PID file not readable
pm2 kill sudo systemctl start pm2-USERNAME.service
Install Tesseract OCR 5.1 on Ubuntu 18.04 source:
sudo apt update sudo add-apt-repository ppa:alex-p/tesseract-ocr-devel sudo apt install -y tesseract-ocr
The data trained specifically for the font used in the ID and Passports. This is the same font that was used in this product as well. The speedup was very noticeable!
Use like this:
TESSDATA_PREFIX=/home/peterbabic/tessdata_ocrb tesseract /home/peterbabic/PHOTO.jpg - -l ocrb_int
PC speaker clicking sounds
After Ubuntu was started the PC speaker was making a very annoying periodic "click" sound. The problem went away for a moment when the volume was adjusted or when some some music was started. The problem did not go away when PC speaker was disabled in BIOS, which was very surprising. The problem was also not present when in BIOS, GRUB or in pre-installed FreeDOS environment (which I found is probably built on top of Debian). The problem was in the power saving options source:
echo 'options snd-hda-intel power_save=0' | sudo tee /etc/modprobe.d/alsa-info.conf