Hướng dẫn extract text from image python machine learning - trích xuất văn bản từ máy học python hình ảnh

Hướng dẫn extract text from image python machine learning - trích xuất văn bản từ máy học python hình ảnh

Alessandro Lamberti

Ngày 18 tháng 9 năm 2021

3 phút đọc

Ảnh của Patrick Tomasso trên unplash

CẬP NHẬT: Kiểm tra Hydra AI: Trích xuất chính xác văn bản từ bất kỳ hình ảnh nào

Trích xuất văn bản từ hình ảnh là một nhiệm vụ gọi là nhận dạng ký tự quang (OCR). Về mặt kỹ thuật: về mặt kỹ thuật:
More technically:

Đó là việc chuyển đổi hình ảnh của văn bản được đánh máy, viết tay hoặc in thành văn bản được mã hóa bằng máy, cho dù từ một

API Google Cloud Vision, để trích xuất văn bản từ phân đoạn chữ viết tay ..

Tesseract và pytesseract, để trích xuất văn bản từ phân đoạn in ..

OpenCV có thể trích xuất văn bản không?

  • OpenCV cùng với OCR sẽ phát hiện và trích xuất văn bản từ hình ảnh. Có, OpenCV đang đưa tầm nhìn máy tính lên một tầm cao mới, bây giờ các máy có thể phát hiện, trích xuất và đọc văn bản từ hình ảnh.
  • Làm thế nào để Python nhận ra văn bản trong một hình ảnh?
  • Kỹ thuật OCR và OpenCV tiện dụng để tìm văn bản trong hình ảnh kỹ thuật số, chúng tôi sẽ sử dụng thư viện Python và PyTesseract để trích xuất văn bản. Hình ảnh nên có văn bản bên trong nó để tìm văn bản đầu ra. Việc trích xuất văn bản với pytesseract cần một thư viện được cài đặt trong môi trường hệ thống.
  • Trích xuất văn bản từ nhiều hình ảnh bằng Python
  • Trong phần này, chúng tôi sẽ khám phá cách trích xuất văn bản từ nhiều hình ảnh bằng Python.

OpenCV cùng với OCR sẽ phát hiện và trích xuất văn bản từ hình ảnh. Có, OpenCV đang đưa tầm nhìn máy tính lên một tầm cao mới, bây giờ các máy có thể phát hiện, trích xuất và đọc văn bản từ hình ảnh.

Làm thế nào để Python nhận ra văn bản trong một hình ảnh?

Tesserwrap

Để tiếp tục làm theo hướng dẫn này, chúng tôi sẽ cần:

  • Tesseract
  • pytesseract
  • cái gối

Tesseract là một công cụ OCR (Nhận dạng ký tự quang học) nguồn mở cho phép trích xuất văn bản từ hình ảnh.

Để sử dụng nó trong Python, chúng tôi cũng sẽ cần thư viện PyTesseract, một trình bao bọc cho động cơ Tesseract.pytesseract library which is a wrapper for Tesseract engine.

Vì chúng tôi đang làm việc với hình ảnh, chúng tôi cũng sẽ cần Thư viện gối bổ sung khả năng xử lý hình ảnh vào Python.pillow library which adds image processing capabilities to Python.

Đầu tiên, tìm kiếm trình cài đặt Tesseract cho hệ điều hành của bạn. Đối với Windows, bạn có thể tìm thấy phiên bản mới nhất của Trình cài đặt Tesseract tại đây. Chỉ cần tải xuống tệp .exe và cài đặt trên máy tính của bạn.

Nếu bạn không có thư viện Python được cài đặt, vui lòng mở lệnh nhắc lệnh (trên Windows) và cài đặt chúng bằng mã sau:

pip install pytesseract
pip install pillow

Hình ảnh mẫu

Để tiếp tục trong hướng dẫn này, chúng tôi sẽ cần một số hình ảnh để làm việc.

Dưới đây là ba hình ảnh chúng tôi sẽ sử dụng trong hướng dẫn này:

Hình ảnh của Authorimage bởi Authorimage của tác giả

Trong hướng dẫn này, chúng tôi sẽ sử dụng các hình ảnh đơn giản với văn bản được căn chỉnh theo chiều ngang mà don don yêu cầu bất kỳ xử lý hình ảnh bổ sung nào.

Trích xuất văn bản từ một hình ảnh duy nhất bằng Python

Hãy bắt đầu với việc trích xuất văn bản từ một hình ảnh bằng Python.

Ví dụ này, chúng tôi sẽ làm việc với hình ảnh đầu tiên được cung cấp trong phần trước: SamppletExt1-onr.pngsampletext1-ocr.png

Đây là cách cấu trúc của các tệp của tôi trông như thế nào:

Hình ảnh của tác giả

Tất cả các hình ảnh được đặt trong hình ảnh thư mục và mã nằm trong Main.pyimages and the code resides in main.py

Đường dẫn đến hình ảnh chúng ta cần là: Hình ảnh/Samppletext1-onr.png

Một con đường khác chúng ta cần là đường dẫn đến tessaract.exe được tạo sau khi cài đặt. Trên Windows, nó sẽ nằm trong: C: \ Program Files \ Tesseract-acr \ Tesseract.exetessaract.exe which was created after the installation. On Windows it should reside in: C:\Program Files\Tesseract-OCR\tesseract.exe

Bây giờ chúng ta có mọi thứ chúng ta cần và có thể dễ dàng trích xuất văn bản từ hình ảnh bằng Python:

Và bạn nên nhận được:

Sample Text 1

Trích xuất văn bản từ nhiều hình ảnh bằng Python

Trong phần này, chúng tôi sẽ khám phá cách trích xuất văn bản từ nhiều hình ảnh bằng Python.

Chúng tôi biết rằng tất cả các hình ảnh được đặt trong hình ảnh thư mục và mã nằm trong Main.pyimages and the code resides in main.py

Một cách trích xuất văn bản từ mỗi hình ảnh sẽ là sử dụng tên tệp của mỗi hình ảnh và trích xuất văn bản từ các hình ảnh đó từng cái một.

Nhưng nếu chúng ta có 100 hình ảnh trong thư mục? Sử dụng thư viện OS, chúng tôi có thể truy cập tất cả các tên tệp trong một thư mục nhất định.os library we can access all of the file names in a given directory.

Khi chúng tôi có quyền truy cập vào tất cả các tên tệp trong thư mục hình ảnh, chúng tôi sẽ lặp lại chúng và trích xuất văn bản từ mỗi hình ảnh bằng Python:images folder, we will iterate over them and extract text from each image using Python:

Và bạn nên nhận được:

Sample Text 1
Sample Text 2
Sample Text 3

Trích xuất văn bản từ nhiều hình ảnh bằng Python

Trong phần này, chúng tôi sẽ khám phá cách trích xuất văn bản từ nhiều hình ảnh bằng Python.

Chúng tôi biết rằng tất cả các hình ảnh được đặt trong hình ảnh thư mục và mã nằm trong Main.py

Một cách trích xuất văn bản từ mỗi hình ảnh sẽ là sử dụng tên tệp của mỗi hình ảnh và trích xuất văn bản từ các hình ảnh đó từng cái một.

Trích xuất văn bản từ hình ảnh

Trích xuất văn bản từ một hình ảnh có thể được thực hiện với xử lý hình ảnh. Theo thuật ngữ khoa học, điều này được gọi là nhận dạng ký tự quang học (OCR).Optical Character Recognition (OCR).

Một động cơ OCR phổ biến được đặt tên 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.

Khóa học liên quan: Khóa học học máy hoàn chỉnh với Python Complete Machine Learning Course with Python

OCR với Tesseract

Bạn có thể thực hiện OCR trong Python bằng cách sử dụng nhị phân Tesseract. Bước đầu tiên là cài đặt Tesseract trên hệ thống của bạn. Sau đó, bạn có thể chạy mã bên dưới.

Nó bắt đầu quá trình Tesseract với hình ảnh đầu vào làm đối số. Đầu ra của chương trình được trả về bởi chức năng. Chương trình chỉ cần xuất nội dung vào màn hình (in).

import os
import tempfile
import subprocess

def ocr(path):
temp = tempfile.NamedTemporaryFile(delete=False)

process = subprocess.Popen(['tesseract', path, temp.name], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
process.communicate()

with open(temp.name + '.txt', 'r') as handle:
contents = handle.read()

os.remove(temp.name + '.txt')
os.remove(temp.name)

return contents

str = ocr('image.png')
print(str)

Bạn có thể sử dụng bất kỳ hình ảnh nào để kiểm tra chương trình, nhưng nó phải là một hình ảnh rất rõ ràng. Nó không nên xoay vòng, mờ hoặc một nền. Đen và trắng trơn là bắt buộc. Nếu hình ảnh của bạn không rõ ràng, bạn cần thực hiện một số tiền xử lý hình ảnh trước khi chạy Tesseract.

Chạy chương trình để xem văn bản. Tất cả được thể hiện trong thiết bị đầu cuối.

Văn bản nổi tiếng của Lor Lor Ipsum có trong hình ảnh.

Bên cạnh việc gọi trực tiếp động cơ OCR, bạn có thể sử dụng một trong các mô -đun sau:

  • pytesseract
  • pyoc
  • Tesserwrap
  • pytesser

Tất cả đều sử dụng cùng một động cơ OCR bên dưới: Tesseract.

Nếu bạn chưa quen với việc học máy, tôi đánh giá cao cuốn sách này

Tải xuống các ví dụ học máy


Làm cách nào để trích xuất văn bản từ một hình ảnh?

OCR (Nhận dạng ký tự quang học) là một cách tiếp cận dựa trên máy tính điện tử để chuyển đổi hình ảnh của văn bản thành văn bản được mã hóa bằng máy, sau đó có thể được trích xuất và sử dụng ở định dạng văn bản., which can then be extracted and used in text format.

Làm cách nào để trích xuất văn bản viết tay từ một hình ảnh trong Python?

Các công cụ chính sau đây được sử dụng:..
OpenCV, để tìm các cấu trúc trong hình ảnh để tự động chia hình ảnh thành các phân đoạn in và các phân đoạn viết tay ..
API Google Cloud Vision, để trích xuất văn bản từ phân đoạn chữ viết tay ..
Tesseract và pytesseract, để trích xuất văn bản từ phân đoạn in ..

OpenCV có thể trích xuất văn bản không?

OpenCV cùng với OCR sẽ phát hiện và trích xuất văn bản từ hình ảnh.Có, OpenCV đang đưa tầm nhìn máy tính lên một tầm cao mới, bây giờ các máy có thể phát hiện, trích xuất và đọc văn bản từ hình ảnh.. Yes, OpenCV is taking computer vision to next level, now machines can detect, extract and read text from images.

Làm thế nào để Python nhận ra văn bản trong một hình ảnh?

Kỹ thuật OCR và OpenCV tiện dụng để tìm văn bản trong hình ảnh kỹ thuật số, chúng tôi sẽ sử dụng thư viện Python và PyTesseract để trích xuất văn bản.Hình ảnh nên có văn bản bên trong nó để tìm văn bản đầu ra.Việc trích xuất văn bản với pytesseract cần một thư viện được cài đặt trong môi trường hệ thống.use python and pytesseract library to extract the text. The image should have text inside it to find the output text. The extraction of text with pytesseract needs a library to be installed in the system environment.