Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong

Có lẽ bạn đã chụp ảnh văn bản chỉ vì bạn không muốn ghi chú hoặc vì gõ văn bản chậm hơn so với chụp ảnh văn bản đó. May mắn thay, OCR hiện đã có trên điện thoại thông minh, cho phép chúng tôi sao chép văn bản đã chụp trước đó mà không cần phải nhập lại.  

Nhận dạng ký tự quang học Python (OCR). Nó là gì?

Tesseract, một công cụ OCR nguồn mở, có thể được sử dụng để nhận dạng và trích xuất văn bản từ các hình ảnh như tài liệu và ảnh được quét bằng công nghệ Python OCR

Tesseract là một trong những công cụ OCR được sử dụng rộng rãi nhất và chúng tôi có thể triển khai công cụ này trong Python chỉ bằng một vài dòng mã. Một công cụ nhận dạng ký tự quang học cho các hệ điều hành khác nhau được gọi là Tesseract. Python sử dụng một vài dòng mã. Một trong những công cụ OCR phổ biến nhất được sử dụng là Tesseract. Tesseract là một công cụ nhận dạng ký tự quang học cho các hệ điều hành khác nhau.

 

Cài đặt Python OCR

Tesseract chạy trên các nền tảng Windows, macOS và Linux, đồng thời hỗ trợ hơn 100 ngôn ngữ và Unicode (UTF-8) Bài viết này sẽ bắt đầu với việc cài đặt Tesseract OCR và kiểm tra việc trích xuất văn bản từ hình ảnh

Cài đặt thư viện Tesseract trên máy tính của bạn là điều đầu tiên bạn cần làm để sử dụng nó. Có thể dễ dàng cài đặt Tesseract OCR bằng cách sử dụng

brew install Tesseract
4 nếu bạn đang sử dụng Ubuntu.
brew install Tesseract
4 để cài đặt Tesseract OCR.

________Đầu tiên

Homebrew sẽ được người dùng macOS sử dụng để cài đặt Tesseract

_10

Vui lòng tham khảo Tesseract dành cho Windows. .

Hãy bắt đầu bằng cách cài đặt pyTesseract

$ pip install pyTesseract

5 cách để viết thêm mã Pythonic. Thông tin bổ sung 5 cách để viết thêm mã Pythonic

 

Triển khai Python OCR

Hãy tiếp tục sử dụng Tesseract với Python sau khi cài đặt xong. Đầu tiên, chúng tôi nhập các phụ thuộc

from PIL import Image
import pyTesseract
import numpy as np

Để minh họa cách thức hoạt động của Tesseract, tôi sẽ sử dụng một hình ảnh đơn giản

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Một hình ảnh ví dụ mà Tesseract có thể sử dụng để tạo văn bản. Hình ảnh. Fahmi Nufikri

Bây giờ hãy tải bức ảnh này và biến nó thành văn bản

_15

Bây giờ, chúng ta hãy xem kết quả

_16

Và đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
kết quả của OCR trong Python. Ảnh chụp màn hình. Fahmi Nufikri

Rất khó để tìm thấy những hình ảnh thực sự đơn giản trong thế giới thực, vì vậy tôi sẽ thêm nhiễu để kiểm tra hiệu suất của Tesseract. Kết quả thu được từ Tesseract đủ tốt cho những hình ảnh đơn giản.  

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
một ví dụ về một hình ảnh ồn ào. Hình ảnh. Fahmi Nufikri

Chúng tôi sẽ tiến hành theo cách tương tự như trước đây

_17

Đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Sau khi cố gắng trích xuất văn bản từ một hình ảnh ồn ào, không có gì xảy ra. Ảnh chụp màn hình. Fahmi Nufikri

Không có gì xảy ra, điều đó có nghĩa là Tesseract không thể đọc các từ trong hình ảnh ồn ào

Tiếp theo, tôi sẽ sử dụng thư viện OpenCV để thực hiện một số xử lý hình ảnh nhằm loại bỏ nhiễu khỏi hình ảnh. Tôi đang sử dụng ngưỡng, chuẩn hóa và làm mờ hình ảnh trong thử nghiệm này. xử lý ảnh để loại bỏ nhiễu trong ảnh. Ở đây tôi sẽ sử dụng thư viện OpenCV. Trong thử nghiệm này, tôi đang sử dụng chuẩn hóa, tạo ngưỡng và làm mờ hình ảnh.

import numpy as np
import cv2norm_img = np.zeros((img.shape[0], img.shape[1]))
img = cv2.normalize(img, norm_img, 0, 255, cv2.NORM_MINMAX)
img = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY)[1]
img = cv2.GaussianBlur(img, (1, 1), 0)

Kết quả sẽ như sau

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Hình ảnh ví dụ đã được khử nhiễu để hiển thị văn bản. Hình ảnh. Fahmi Nufikri

Bây giờ hình ảnh đã đủ rõ ràng, chúng tôi sẽ thử lại bằng quy trình tương tự và đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Kết quả cho thấy văn bản đã được OCR nhận dạng. Ảnh chụp màn hình. Fahmi Nufikri

Như bạn có thể thấy, kết quả phù hợp với mong đợi của chúng tôi

Một video hướng dẫn giải thích các nguyên tắc cơ bản của việc sử dụng PyTesseract để trích xuất văn bản từ hình ảnh. Video. Kiến Thức Lập Trình

11 IDE Python và Trình chỉnh sửa mã tốt nhất hiện có 11 IDE Python và Trình chỉnh sửa mã tốt nhất hiện có

 

Bản địa hóa và phát hiện văn bản OCR của Python

Ngoài ra, có thể bản địa hóa văn bản và phát hiện hình ảnh với Tesseract. Chúng tôi sẽ bắt đầu bằng cách nhập các phụ thuộc mà chúng tôi yêu cầu

_19

Để minh họa cách thức hoạt động của Tesseract, tôi sẽ sử dụng một hình ảnh đơn giản tương tự như hình minh họa ở trên

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Hình ảnh ví dụ để xử lý OCR. Hình ảnh. Fahmi Nufikri

Bây giờ hãy tải bức ảnh này và trích xuất thông tin

________mười

Ngược lại với những gì chúng tôi đã làm trong ví dụ trước, nơi chúng tôi ngay lập tức chuyển đổi hình ảnh thành một chuỗi,Chúng tôi sẽ chuyển hình ảnh thành một từ điển trong ví dụ này. từ điển.

brew install Tesseract
0

Nội dung của từ điển được hiển thị trong các kết quả bên dưới

brew install Tesseract
1

Thay vào đó, chúng ta sẽ sử dụng bên trái, trên cùng, chiều rộng và chiều cao để vẽ một hộp giới hạn xung quanh văn bản cùng với chính văn bản đó mà không giải thích ý nghĩa của từng giá trị trong từ điển. Ngoài ra, cần có khóa

brew install Tesseract
5 để thiết lập ranh giới của văn bản được phát hiện. Phím
brew install Tesseract
5 để xác định ranh giới của văn bản được phát hiện.

Bây giờ, chúng tôi sẽ trích xuất tọa độ hộp giới hạn của vùng văn bản từ kết quả hiện tại và chúng tôi sẽ chỉ định mức độ tin cậy mong muốn. Tôi sẽ sử dụng giá trị

brew install Tesseract
5 = 70 tại đây. Đây là cách mã sẽ xuất hiện.
brew install Tesseract
5 = 70. Mã sẽ trông như thế này.

brew install Tesseract
2

Bây giờ mọi thứ đã sẵn sàng, chúng ta có thể sử dụng mã này để hiển thị kết quả

brew install Tesseract
3

Và đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
kết quả với tọa độ hộp tập trung vào văn bản. Hình ảnh. Fahmi Nufikri

Cuối cùng nhưng không kém phần quan trọng, Tesseract phù hợp nhất để thiết kế quy trình xử lý tài liệu nơi hình ảnh được quét và xử lý, nơi văn bản nền trước được phân đoạn gọn gàng từ nền

Có một số tham số bạn có thể thay đổi để bản địa hóa và phát hiện văn bản, chẳng hạn như giới hạn giá trị tự tin hoặc nếu không thích, bạn có thể thay đổi độ dày hoặc màu của hộp giới hạn hoặc văn bản

, chẳng hạn như tài liệu và ảnh được quét. Có lẽ bạn đã chụp ảnh văn bản chỉ vì bạn không muốn ghi chú hoặc vì chụp ảnh nhanh hơn gõ văn bản. May mắn thay, nhờ có điện thoại thông minh ngày nay, chúng ta có thể áp dụng OCR để có thể sao chép ảnh văn bản đã chụp trước đó mà không cần phải gõ lại.  

Nhận dạng ký tự quang học Python (OCR) là gì?

Python OCR là công nghệ nhận dạng và trích xuất văn bản trong hình ảnh như tài liệu và ảnh được quét bằng Python. Nó có thể được hoàn thành bằng cách sử dụng công cụ OCR mã nguồn mở Tesseract

Chúng tôi có thể thực hiện việc này trong Python bằng cách sử dụng một vài dòng mã. Một trong những công cụ OCR phổ biến nhất được sử dụng là Tesseract. Tesseract là một công cụ nhận dạng ký tự quang học cho các hệ điều hành khác nhau.

 

Cài đặt Python OCR

Tesseract chạy trên nền tảng Windows, macOS và Linux. Nó hỗ trợ Unicode (UTF-8) và hơn 100 ngôn ngữ. Trong bài viết này, chúng ta sẽ bắt đầu với quá trình cài đặt Tesseract OCR, và thử nghiệm trích xuất văn bản trong hình ảnh

Bước đầu tiên là cài đặt Tesseract. Để sử dụng thư viện Tesseract, chúng ta cần cài đặt nó trên hệ thống của mình. Nếu đang sử dụng Ubuntu, bạn chỉ cần sử dụng

brew install Tesseract
4 để cài đặt Tesseract OCR.

brew install Tesseract
4

Đối với người dùng macOS, chúng tôi sẽ sử dụng Homebrew để cài đặt Tesseract

brew install Tesseract

Đối với Windows, vui lòng xem Tesseract .

Hãy bắt đầu bằng cách cài đặt pyTesseract

$ pip install pyTesseract

Thông tin thêm về Python. 5 cách để viết thêm mã Pythonic

 

Triển khai Python OCR

Sau khi cài đặt hoàn tất, hãy tiếp tục bằng cách áp dụng Tesseract với Python. Đầu tiên, chúng tôi nhập các phụ thuộc

from PIL import Image
import pyTesseract
import numpy as np

Tôi sẽ sử dụng một hình ảnh đơn giản để kiểm tra việc sử dụng khối Tesseract

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Một hình ảnh mẫu để Tesseract chuyển đổi thành văn bản. . Hình ảnh. Fahmi Nufikri

Hãy tải hình ảnh này và chuyển đổi nó thành văn bản

brew install Tesseract
8

Bây giờ, hãy xem kết quả

brew install Tesseract
9

Và đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Kết quả sau khi chạy OCR trong Python. . Ảnh chụp màn hình. Fahmi Nufikri

Kết quả thu được từ Tesseract đủ tốt cho những hình ảnh đơn giản. Tuy nhiên, trong thế giới thực, rất khó để tìm thấy những hình ảnh thực sự đơn giản, vì vậy tôi sẽ thêm nhiễu để kiểm tra hiệu suất của Tesseract.  

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Ảnh mẫu có nhiễu. . Hình ảnh. Fahmi Nufikri

Chúng tôi sẽ thực hiện quy trình tương tự như trước đây

$ pip install pyTesseract
0

Đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Không có kết quả sau khi cố kéo văn bản từ hình ảnh bị nhiễu. . Ảnh chụp màn hình. Fahmi Nufikri

Kết quả là, không có gì. Điều này có nghĩa là tesseract không thể đọc các từ trong hình ảnh bị nhiễu

Tiếp theo, chúng ta sẽ cố gắng sử dụng một chút xử lý hình ảnh để loại bỏ nhiễu trong hình ảnh. Ở đây tôi sẽ sử dụng thư viện OpenCV. Trong thử nghiệm này, tôi đang sử dụng chuẩn hóa, tạo ngưỡng và làm mờ hình ảnh.

import numpy as np
import cv2norm_img = np.zeros((img.shape[0], img.shape[1]))
img = cv2.normalize(img, norm_img, 0, 255, cv2.NORM_MINMAX)
img = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY)[1]
img = cv2.GaussianBlur(img, (1, 1), 0)

Kết quả sẽ như thế này

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Hình ảnh mẫu được làm sạch nhiễu để hiển thị văn bản. . Hình ảnh. Fahmi Nufikri

Bây giờ hình ảnh đã đủ sạch, chúng tôi sẽ thử lại với quy trình tương tự như trước. Và đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Kết quả tiết lộ rằng OCR đã chọn văn bản. . Ảnh chụp màn hình. Fahmi Nufikri

Như bạn có thể thấy, kết quả phù hợp với những gì chúng tôi mong đợi

Video giới thiệu cơ bản về cách sử dụng PyTesseract để trích xuất văn bản từ hình ảnh. . Video. Kiến Thức Lập Trình

Thông tin thêm về Python. 11 Trình chỉnh sửa mã và IDE Python tốt nhất hiện có

 

Bản địa hóa và phát hiện văn bản trong Python OCR

Với Tesseract, chúng tôi cũng có thể thực hiện bản địa hóa và phát hiện văn bản từ hình ảnh. Trước tiên chúng tôi sẽ nhập các phụ thuộc mà chúng tôi cần

$ pip install pyTesseract
2

Tôi sẽ sử dụng một hình ảnh đơn giản như ví dụ trên để kiểm tra việc sử dụng khối Tesseract

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Hình ảnh mẫu để chạy trong OCR. . Hình ảnh. Fahmi Nufikri

Bây giờ, hãy tải hình ảnh này và trích xuất dữ liệu

$ pip install pyTesseract
3

Điều này khác với những gì chúng ta đã làm trong ví dụ trước. Trong ví dụ trước, chúng tôi đã ngay lập tức thay đổi hình ảnh thành một chuỗi. Trong ví dụ này, chúng tôi sẽ chuyển đổi hình ảnh thành một từ điển.

brew install Tesseract
0

Các kết quả sau đây là nội dung của từ điển

brew install Tesseract
1

Tôi sẽ không giải thích mục đích của từng giá trị trong từ điển. Thay vào đó, chúng tôi sẽ sử dụng bên trái, trên cùng, chiều rộng và chiều cao để vẽ một hộp giới hạn xung quanh văn bản cùng với chính văn bản đó. Ngoài ra, chúng tôi sẽ cần một khóa

brew install Tesseract
5 để xác định ranh giới của văn bản được phát hiện.

Bây giờ, chúng tôi sẽ trích xuất tọa độ hộp giới hạn của vùng văn bản từ kết quả hiện tại và chúng tôi sẽ chỉ định giá trị độ tin cậy mà chúng tôi muốn. Ở đây, tôi sẽ sử dụng giá trị

brew install Tesseract
5 = 70. Mã sẽ trông như thế này.

brew install Tesseract
2

Bây giờ mọi thứ đã được thiết lập, chúng ta có thể hiển thị kết quả bằng mã này

brew install Tesseract
3

Và đây là kết quả

Cách xây dựng nhận dạng ký tự quang học (OCR) trong Python. Được xây dựng trong
Kết quả với tọa độ hộp xung quanh văn bản. . Hình ảnh. Fahmi Nufikri

Cuối cùng, Tesseract phù hợp nhất khi xây dựng quy trình xử lý tài liệu nơi hình ảnh được quét và xử lý. Điều này hoạt động tốt nhất cho các tình huống có đầu vào có độ phân giải cao, trong đó văn bản nền trước được phân đoạn gọn gàng từ nền

Đối với bản địa hóa và phát hiện văn bản, bạn có thể thay đổi một số tham số, chẳng hạn như giới hạn giá trị tin cậy. Hoặc nếu thấy chưa ưng ý, bạn có thể thay đổi độ đậm nhạt, màu sắc của khung viền hoặc chữ

Nhận dạng ký tự quang học Python (OCR) là gì?

Nhận dạng ký tự quang học Python (OCR) là gì? . Nó có thể được hoàn thành bằng cách sử dụng công cụ OCR mã nguồn mở Tesseract. Chúng ta có thể làm điều này trong Python bằng một vài dòng mã

Học máy có hữu ích cho OCR trong Python không?

Do đó, khi xử lý trước hình ảnh, các mô hình được đào tạo trước trong tesseract, đã được đào tạo trên hàng triệu ký tự, hoạt động khá tốt. Do đó học máy rất hữu ích cho mục đích OCR. Hướng dẫn này là bước đầu tiên trong nhận dạng ký tự quang học (OCR) trong Python

OCR là gì và nó hoạt động như thế nào?

OCR là công nghệ nhận dạng văn bản trong hình ảnh, chẳng hạn như tài liệu và ảnh được quét. Một trong những công cụ OCR thường được sử dụng là Tesseract. Tesseract là một công cụ nhận dạng ký tự quang học cho các hệ điều hành khác nhau. Ban đầu nó được phát triển bởi Hewlett-Packard dưới dạng phần mềm độc quyền. Sau đó, Google tiếp quản sự phát triển

Làm cách nào để sử dụng Tesseract OCR với Python?

Thư viện Tesseract chứa một công cụ OCR và một chương trình dòng lệnh, vì vậy nó không liên quan gì đến Python, vui lòng làm theo hướng dẫn chính thức của họ để cài đặt, vì đây là công cụ cần thiết cho hướng dẫn này. Chúng tôi sẽ sử dụng mô-đun pytesseract cho Python, một trình bao bọc cho công cụ Tesseract-OCR, vì vậy chúng tôi có thể truy cập nó qua Python

Làm cách nào để tạo OCR bằng Python?

Bạn có thể cài đặt trình bao bọc python cho tesseract sau này bằng cách sử dụng pip . Thư viện Tesseract được cung cấp cùng với một công cụ dòng lệnh tiện dụng có tên là tesseract. Chúng tôi có thể sử dụng công cụ này để thực hiện OCR trên hình ảnh và đầu ra được lưu trữ trong tệp văn bản.

Làm cách nào để tạo OCR của riêng tôi?

Cách tạo ứng dụng nhận dạng ký tự quang học (OCR)? .
Kiến trúc OCR
Tổ chức dự án
Giao diện người dùng OCR (giao diện người dùng)
Các lệnh được tìm thấy trong phần phụ trợ. Chấp nhận một hình ảnh. Kiểm tra thông tin đăng nhập của bạn. hình ảnh thành văn bản. Tiến triển. chuyển văn bản thành giọng nói
Mã lên đám mây trong 30 giây

Python có OCR không?

Python OCR là công nghệ nhận dạng và trích xuất văn bản trong hình ảnh như tài liệu được quét và ảnh bằng Python . Nó có thể được hoàn thành bằng cách sử dụng công cụ OCR mã nguồn mở Tesseract. Chúng ta có thể làm điều này trong Python bằng một vài dòng mã. Một trong những công cụ OCR phổ biến nhất được sử dụng là Tesseract.

Làm cách nào để đào tạo OCR bằng Python?

Làm cách nào để cài đặt Tesseract OCR bằng Python trên Windows? . exe theo phần cứng hệ thống của bạn. Cài đặt cái này trong đường dẫn hệ thống như “C. \Program Files\Tesseract-OCR. ” Chuyển đến cài đặt của bạn và thêm đường dẫn này vào biến môi trường của bạn