Tesseract OCR là một công cụ nhận dạng ký tự quang học (OCR) mã nguồn mở được Google duy trì, hỗ trợ nhiều ngôn ngữ và các tình huống phức tạp để chuyển đổi văn bản in và viết tay. Nó có thể tích hợp vào Java thông qua API Tesseract.
Địa chỉ GitHub của dự án: https://github.com/tesseract-ocr/tesseract
I. Môi trường biên dịch
Hệ thống: CentOS 8.5.2111 (có giao diện người dùng)
Phiên bản Tesseract: 5.5.1
Phiên bản Leptonica: 1.86.0
II. Quy trình cài đặt
2.1 Cấu hình kho lưu trữ YUM
# Sao lưu
cd /etc/yum.repos.d/
mkdir bak && mv *.repo bak/
# Sử dụng kho lưu trữ YUM từ Alibaba Cloud
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
# Kho EPEL
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
2.2 Cài đặt các gói phụ thuộc
yum install -y gcc gcc-c++ make autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel icu pango-devel cairo-devel
2.3 Cài đặt gcc-toolset-11
CentOS 8.5.2111 mặc định sử dụng phiên bản gcc là 8.5.0, gây ra lỗi trong quá trình biên dịch, do đó cần cài đặt gcc-toolset-11 với phiên bản gcc 11.2.1 để xây dựng.
# Cài đặt
yum install -y gcc-toolset-11
# Thiết lập môi trường gcc11
# Bật tạm thời (chỉ hiệu lực trong phiên hiện tại)
scl enable gcc-toolset-11 bash
# Bật vĩnh viễn (với người dùng hiện tại)
echo 'source /opt/rh/devtoolset-11/enable' >> ~/.bashrc
source ~/.bashrc
2.4 Biên dịch và cài đặt Leptonica
Leptonica là một thư viện xử lý ảnh và phân tích ảnh mã nguồn mở, hỗ trợ nhiều định dạng ảnh (như BMP, PNG, JPEG, GIF, TIFF), cung cấp các chức năng như thao tác bitmap, biến đổi affine, hoạt động dạng học, lấp đầy vùng liên kết, v.v. Tesseract yêu cầu Leptonica để xử lý ảnh, vì vậy cần cài đặt Leptonica trước khi cài đặt Tesseract.
Địa chỉ GitHub của dự án: https://github.com/DanBloomberg/leptonica
(1) Tải về và giải nén mã nguồn
wget https://github.com/DanBloomberg/leptonica/releases/download/1.86.0/leptonica-1.86.0.tar.gz
tar -xf leptonica-1.86.0.tar.gz
(2) Biên dịch và cài đặt
cd leptonica-1.86.0/
./autogen.sh
./configure --prefix=/usr/local/leptonica-1.86.0
make
make install
Trong khi chạy script configure, sử dụng tùy chọn
--prefixđể chỉ định đường dẫn cài đặt, giúp dễ dàng mang phần mềm sang máy khác sau này.
(3) Thiết lập biến môi trường
vim /etc/profile.d/leptonica.sh
export LD_LIBRARY_PATH=/usr/local/leptonica-1.86.0/lib:$LD_LIBRARY_PATH
export LIBLEPT_HEADERSDIR=/usr/local/leptonica-1.86.0/include
export PKG_CONFIG_PATH=/usr/local/leptonica-1.86.0/lib/pkgconfig
# Áp dụng biến môi trường
source /etc/profile.d/leptonica.sh
2.5 Biên dịch và cài đặt Tesseract
(1) Tải về và giải nén mã nguồn
wget https://github.com/tesseract-ocr/tesseract/archive/refs/tags/5.5.1.tar.gz
tar -xf tesseract-5.5.1.tar.gz
(2) Biên dịch và cài đặt
cd tesseract-5.5.1/
./autogen.sh
./configure --prefix=/usr/local/tesseract-5.5.1 -with-extra-libraries=/usr/local/leptonica-1.86.0/lib
make
make install
(3) Thiết lập biến môi trường
vim /etc/profile.d/tesseract.sh
export TESSDATA_PREFIX=/usr/local/tesseract-5.5.1/share/tessdata
export PATH=$PATH:/usr/local/tesseract-5.5.1/bin:$TESSDATA_PREFIX
export LD_LIBRARY_PATH=/usr/local/tesseract-5.5.1/lib:$LD_LIBRARY_PATH
# Áp dụng biến môi trường
source /etc/profile.d/tesseract.sh
(4) Kiểm tra cài đặt
# Kiểm tra phiên bản
[root@localhost ~]# tesseract --version
tesseract 5.5.1
leptonica-1.86.0
libjpeg 6b (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11
Found AVX512BW
Found AVX512F
Found AVX512VNNI
Found AVX2
Found AVX
Found FMA
Found SSE4.1
Found OpenMP 201511
# Kiểm tra ngôn ngữ hỗ trợ
[root@localhost ~]# tesseract --list-langs
List of available languages in "/usr/local/tesseract-5.5.1/share/tessdata/" (0):
2.6 Thêm gói ngôn ngữ
Địa chỉ tải gói ngôn ngữ: https://github.com/tesseract-ocr/tessdata
Chuyển đến thư mục chứa gói ngôn ngữ /usr/local/tesseract-5.5.1/share/tessdata/
cd /usr/local/tesseract-5.5.1/share/tessdata/
Tại đây, tải ba gói ngôn ngữ:
# Tiếng Trung giản thể (ngang)
wget https://github.com/tesseract-ocr/tessdata/blob/main/chi_sim.traineddata
# Tiếng Trung giản thể (dọc)
wget https://github.com/tesseract-ocr/tessdata/blob/main/chi_sim_vert.traineddata
# Tiếng Anh
wget https://github.com/tesseract-ocr/tessdata/blob/main/eng.traineddata
Sau khi tải xong, kiểm tra lại danh sách ngôn ngữ hỗ trợ:
[root@localhost ~]# tesseract --list-langs
List of available languages in "/usr/local/tesseract-5.5.1/share/tessdata/" (3):
chi_sim
chi_sim_vert
eng
Tiếp theo, bạn có thể thử chuyển đổi một bức ảnh có chữ:
# Chạy lệnh
tesseract -l chi_sim test.png output
# Sau đó sẽ tạo ra file output.txt chứa nội dung đã chuyển đổi
cat output.txt
Nguồn tham khảo: https://blog.csdn.net/u014799292/article/details/145605250