Làm cách nào để sử dụng Python cho OCR?

Tiết lộ. Bài đăng này có thể chứa các liên kết liên kết, nghĩa là khi bạn nhấp vào liên kết và mua hàng, chúng tôi sẽ nhận được hoa hồng

Con người có thể dễ dàng hiểu nội dung văn bản của một hình ảnh chỉ bằng cách nhìn vào nó. Tuy nhiên, nó không phải là trường hợp cho máy tính. Họ cần một số loại phương pháp hoặc thuật toán có cấu trúc để có thể hiểu nó. Đây là nơi nhận dạng ký tự quang học [OCR] phát huy tác dụng

Nhận dạng ký tự quang học là quá trình phát hiện nội dung văn bản trên hình ảnh và chuyển đổi nó thành văn bản được mã hóa bằng máy mà chúng ta có thể truy cập và thao tác trong Python [hoặc bất kỳ ngôn ngữ lập trình nào] dưới dạng biến chuỗi. Trong hướng dẫn này, chúng ta sẽ sử dụng thư viện Tesseract để làm điều đó

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

Phiên bản ổn định gần đây nhất của tesseract là 4 sử dụng công cụ OCR dựa trên mạng thần kinh tái phát [LSTM] mới, tập trung vào nhận dạng dòng

CÓ LIÊN QUAN. Cách chuyển lời nói thành văn bản trong Python

Hãy bắt đầu, bạn cần cài đặt

  • Công cụ Tesseract-OCR [làm theo hướng dẫn của họ cho hệ điều hành của bạn]
  • mô-đun bao bọc pytesseract bằng cách sử dụng.
    pip3 install pytesseract
  • Các mô-đun tiện ích khác cho hướng dẫn này.
    pip3 install numpy matplotlib opencv-python pillow

Sau khi bạn đã cài đặt mọi thứ trong máy của mình, hãy mở một tệp Python mới và làm theo

import pytesseract
import cv2
import matplotlib.pyplot as plt
from PIL import Image

Đối với mục đích trình diễn, tôi sẽ sử dụng hình ảnh này để nhận dạng

Tôi đã đặt tên cho nó là "bài kiểm tra. png" và đặt nó vào thư mục hiện tại, hãy tải hình ảnh này

# read the image using OpenCV
image = cv2.imread["test.png"]
# or you can use Pillow
# image = Image.open["test.png"]

Như bạn có thể nhận thấy, bạn có thể tải hình ảnh bằng OpenCV hoặc Gối, tôi thích sử dụng OpenCV hơn vì nó cho phép chúng tôi sử dụng máy ảnh trực tiếp

Hãy nhận biết văn bản đó

# get the string
string = pytesseract.image_to_string[image]
# print it
print[string]

Ghi chú. Nếu đoạn mã trên phát sinh lỗi, vui lòng xem xét thêm các nhị phân Tesseract-OCR vào các biến PATH. Đọc hướng dẫn cài đặt chính thức của họ cẩn thận hơn

Hàm image_to_string[] thực hiện chính xác những gì bạn mong đợi, nó chuyển đổi văn bản chứa hình ảnh thành ký tự, hãy xem kết quả

This is a lot of 12 point text to test the
ocr code and see if it works on all types
of file format.

The quick brown dog jumped over the
lazy fox. The quick brown dog jumped
over the lazy fox. The quick brown dog
jumped over the lazy fox. The quick
brown dog jumped over the lazy fox.

Tuyệt vời, có một hàm khác image_to_data[] xuất ra nhiều thông tin hơn thế, bao gồm các từ có tọa độ chiều rộng, chiều cao và x, y tương ứng, điều này sẽ cho phép chúng tôi tạo ra nhiều nội dung hữu ích. Chẳng hạn, hãy tìm kiếm các từ trong tài liệu và vẽ một hộp giới hạn xung quanh một từ cụ thể mà chúng ta chọn, mã bên dưới, xử lý từ đó

# make a copy of this image to draw in
image_copy = image.copy[]
# the target word to search for
target_word = "dog"
# get all data from the image
data = pytesseract.image_to_data[image, output_type=pytesseract.Output.DICT]

Vì vậy, chúng tôi sẽ tìm kiếm từ "dog" trong tài liệu văn bản, chúng tôi muốn dữ liệu đầu ra được cấu trúc và không phải là chuỗi thô, đó là lý do tại sao tôi chuyển output_type thành từ điển, để chúng tôi có thể dễ dàng lấy dữ liệu của từng từ

Hãy lấy tất cả các lần xuất hiện của từ đó

# get all occurences of the that word
word_occurences = [ i for i, word in enumerate[data["text"]] if word.lower[] == target_word ]

Bây giờ hãy vẽ một hộp xung quanh trên mỗi từ

________số 8_______

Lưu và hiển thị hình ảnh kết quả

plt.imsave["all_dog_words.png", image_copy]
plt.imshow[image_copy]
plt.show[]

Hãy nhìn vào kết quả

Tuyệt vời phải không? . bạn có thể chuyển tham số lang cho các hàm image_to_string[] hoặc image_to_data[] để dễ dàng nhận dạng văn bản ở các ngôn ngữ khác nhau. Bạn cũng có thể sử dụng hàm image_to_boxes[] để nhận dạng các ký tự và ranh giới hộp của chúng, vui lòng tham khảo tài liệu chính thức và các ngôn ngữ có sẵn của họ để biết thêm thông tin

Tuy nhiên, một lưu ý là phương pháp này rất lý tưởng để nhận dạng văn bản trong các tài liệu và giấy tờ được quét. Các ứng dụng khác của OCR bao gồm tự động hóa nhận dạng hộ chiếu và trích xuất thông tin từ chúng, quy trình nhập dữ liệu, phát hiện và nhận dạng biển số ô tô, v.v.

Ngoài ra, điều này sẽ không hoạt động tốt trên văn bản viết tay, hình ảnh trong thế giới thực phức tạp và hình ảnh không rõ ràng hoặc hình ảnh chứa một lượng văn bản đặc biệt

Được rồi, đó là phần hướng dẫn này, hãy để chúng tôi xem bạn có thể xây dựng những gì với tiện ích này

Chúng tôi đã tạo một hướng dẫn trong đó bạn có thể sử dụng OCR để trích xuất văn bản từ hình ảnh bên trong tệp PDF, hãy xem thử

Cuối cùng, tôi đã thu thập được một số tài nguyên và khóa học hữu ích để bạn tìm hiểu thêm, tôi thực sự khuyên bạn nên tham gia các khóa học sau

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

Nhận dạng ký tự quang học [OCR] với tài liệu AI [Python] .
Tổng quan
Thiết lập và Yêu cầu
Bật API tài liệu AI
Tạo và kiểm tra bộ xử lý
Xác thực các yêu cầu API
Cài đặt thư viện máy khách
Tải xuống bản PDF mẫu
Thực hiện một yêu cầu xử lý trực tuyến

Làm cách nào để Python chuyển đổi hình ảnh thành văn bản bằng OCR với Tesseract?

Pytesseract hay Python-tesseract là công cụ Nhận dạng ký tự quang học [OCR] dành cho python. .
Đang tải Hình ảnh được lưu từ máy tính hoặc tải xuống bằng trình duyệt và sau đó tải tương tự. [Mọi hình ảnh có văn bản]
Nhị phân hóa hình ảnh [Chuyển đổi hình ảnh thành nhị phân]
Sau đó chúng tôi sẽ chuyển hình ảnh qua hệ thống OCR

Python có thể đọc văn bản từ hình ảnh không?

Python-tesseract là một thư viện OCR được sử dụng để quét và sao chép bất kỳ dữ liệu văn bản nào trong hình ảnh . Thư viện này được sử dụng để nhận dạng thông tin văn bản nhưng không lưu nó vào bất kỳ tài liệu văn bản nào.

OpenCV có OCR không?

Chức năng OpenCV OCR hoặc nhận dạng ký tự quang học được thiết kế để đọc tệp hình ảnh do người dùng cung cấp và sau đó nhận dạng văn bản được cung cấp trong hình ảnh để hiển thị cho người dùng .

Chủ Đề