Quét hình ảnh vào văn bản python

Mặc dù số hóa phổ biến trong mọi ngành, văn bản trên giấy và các phương tiện vật lý khác chỉ tăng lên hàng năm. Thị trường xử lý văn bản toàn cầu được định giá $7. 46 tỷ vào năm 2020 và dự kiến ​​sẽ tăng 16. 7% mỗi năm. Các ngành như công nghệ pháp lý, bảo hiểm, kế toán và thậm chí cả bán lẻ đều có nhu cầu kinh doanh quan trọng đối với các hệ thống xử lý văn bản mạnh mẽ trong quy trình kinh doanh của họ

Trong bài viết này, chúng tôi sẽ giải thích cách chúng tôi triển khai các hệ thống trích xuất văn bản mạnh mẽ, sẵn sàng sản xuất cho nhiều ngành. Hệ thống của chúng tôi có thể trích xuất văn bản từ nhiều định dạng — bao gồm các tệp hình ảnh như PNG, JPEG [JPG], TIF, các định dạng tài liệu như PDF hoặc tệp văn bản và các định dạng lưu trữ như IMG và ISO. Chúng tôi giải thích cách bạn có thể trích xuất văn bản từ hình ảnh bằng Python mà không cần Tesseract [khung phổ biến để nhận dạng văn bản] và lý do tại sao bạn phải thực hiện phương pháp đó để xây dựng một hệ thống trích xuất văn bản xuất sắc

4 trường hợp sử dụng kinh doanh của trích xuất văn bản

Hãy khám phá một số trường hợp sử dụng kinh doanh hoạt động hoàn hảo với các mô hình trích xuất văn bản

1. Khai thác thông tin tài liệu

Trích xuất thông tin tài liệu là trích xuất văn bản từ bất kỳ loại tài liệu nào và diễn giải văn bản — ý nghĩa, ngữ nghĩa và bối cảnh trong thế giới thực của chúng — giống như mọi người vẫn làm.  

Ví dụ: các tài liệu pháp lý không chỉ chứa nội dung pháp lý chính như phán quyết và thỏa thuận mà thường bao gồm thông tin nộp đơn quan trọng, ngày tháng, chi tiết viết tay trên trang bìa hoặc sửa chữa viết tay. Lý tưởng nhất là hệ thống quản lý tài liệu của công ty luật nên nhận ra tất cả những điều đó và làm cho chúng có thể tìm kiếm được vì chúng có thể ghi lại các sự kiện quan trọng trên thực tế, chẳng hạn như ngày điều trần quan trọng hoặc các sửa chữa quan trọng

Hệ thống hiểu tài liệu mạnh mẽ của chúng tôi cho phép công ty luật của bạn trích xuất thông tin từ các tài liệu pháp lý. Chúng tôi tiết kiệm thời gian, tiền bạc cho công ty luật của bạn và khả năng nhập dữ liệu bị lỗi

2. Xử lý hóa đơn và biên lai

Đường dẫn trích xuất dữ liệu được xây dựng tùy chỉnh của chúng tôi cho phép bạn trích xuất các điểm dữ liệu chính từ tài liệu được quét, biên lai, đơn đặt hàng, v.v. một cách tự động. Điều này loại bỏ lao động thủ công cần thiết cho các tác vụ như nhập dữ liệu và xử lý hóa đơn. Chúng tôi tích hợp quy trình hoạt động trên một số lượng lớn định dạng hóa đơn này vào quy trình kinh doanh của bạn chỉ bằng một vài bước đơn giản.  

Nhận dạng ký tự quang học và học sâu cho phép chúng tôi biến hóa đơn của bạn thành dữ liệu được xử lý ngay lập tức từ tệp hình ảnh [hỗ trợ nhiều loại hình ảnh], video trực tiếp hoặc ảnh chụp từ camera.  

3. Tự động hóa kho

Chúng tôi có quy trình làm việc kho hàng tự động và cải thiện hoạt động của cửa hàng bằng cách triển khai hệ thống trích xuất văn bản cho khách hàng bán lẻ và thương mại điện tử của chúng tôi. Họ có thể chụp và trích xuất nhãn sản phẩm, mã vạch và các thông tin khác quan trọng đối với cả quản lý văn phòng và cửa hàng trong ngành bán lẻ và thương mại điện tử

4. Sao chép và tự động hóa tài liệu y tế

Việc sao chép chính xác các tài liệu y tế là cần thiết để mang lại chất lượng chăm sóc sức khỏe cao, tránh các trách nhiệm pháp lý và giải quyết các vấn đề bảo hiểm một cách suôn sẻ. Hệ thống của chúng tôi có thể trích xuất chính xác thông tin dạng văn bản từ hồ sơ y tế, mẫu bệnh án, đơn thuốc, ý kiến ​​viết tay, hình ảnh y tế, v.v.


Đường ống trích xuất văn bản có thể tái sử dụng

Chúng tôi sử dụng cùng một hệ thống trích xuất văn bản cho cả ba trường hợp sử dụng, mặc dù chúng có vẻ rất khác nhau. Đó là bởi vì hệ thống của chúng tôi có thể khái quát hóa tốt nhưng đồng thời cũng linh hoạt và có thể tùy chỉnh. Đối với dữ liệu khách hàng mới, chúng tôi chỉ cần vài chục tài liệu — bất kể định dạng tệp — để tinh chỉnh hệ thống của chúng tôi và để hệ thống tạo ra kết quả chính xác

Hãy bắt đầu khám phá cách chúng tôi đã triển khai quy trình trích xuất văn bản của mình, bắt đầu với một số khái niệm cơ bản mà bạn nên biết để hiểu cơ bản

Khái niệm cơ bản về xử lý văn bản

Phát hiện văn bản đề cập đến việc ước tính pixel nào trong hình ảnh thuộc về nội dung văn bản

Nhận dạng ký tự quang học [OCR] đề cập đến việc xác định các ký tự chỉ sử dụng các pixel trong hình ảnh

Nhận dạng văn bản đề cập đến việc nhận dạng các thực thể cấp cao hơn như ký tự, từ, câu, đoạn văn, ngôn ngữ và các khái niệm khác về tổ chức văn bản bằng cách sử dụng bất kỳ loại kiến ​​thức thực tế nào như mô hình ngôn ngữ và bố cục tài liệu

Trích xuất thông tin đề cập đến việc hiểu ngữ nghĩa và mục đích của một đoạn văn bản

Trích xuất văn bản thường đề cập đến câu hỏi tổng thể về cách trích xuất văn bản bằng cả ba nhiệm vụ phụ — phát hiện, nhận dạng và trích xuất thông tin

Văn bản cảnh đề cập đến văn bản xuất hiện tình cờ trong ảnh, chẳng hạn như văn bản trên nhãn sản phẩm, biển quảng cáo, biển báo giao thông, xe cộ, v.v. Ngược lại, văn bản dày đặc đề cập đến văn bản trong hình ảnh trong đó văn bản là nội dung chính và trọng tâm, chẳng hạn như văn bản trong sách, hóa đơn và tài liệu

Tổng quan nhanh về Tesseract OCR

Nhận dạng Tesseract-ocr của Python trên tài liệu pháp lý — bỏ qua từ, lỗi chính tả và văn bản viết tay [Nguồn]

Tesseract là một phần mềm phổ biến cho OCR. Nó bao gồm công cụ tesseract-ocr và các trình bao bọc dành riêng cho ngôn ngữ như pytesseract cho Python. Các phiên bản cũ hơn của Tesseract sử dụng kết hợp các mô hình thống kê và xử lý hình ảnh, nhưng các phiên bản mới nhất sử dụng thuật toán học sâu

Thật không may, như hình ảnh mô tả ở trên, chúng tôi thấy Tesseract quá không đáng tin cậy và không chính xác cho bất kỳ trường hợp sử dụng sản xuất nào. Nó cho thấy khả năng thu hồi thấp [tôi. e. , tỷ lệ phát hiện bị bỏ sót cao] và tỷ lệ lỗi ký tự cao [CER]. Nó thường không thể nhận ra các ký tự được in rõ ràng mà mọi người dễ dàng nhận ra. Nó thực tế không có khả năng nhận dạng văn bản viết tay. Ngay cả những từ đơn giản cũng bị nhận dạng sai và bị chia thành những mảnh vô nghĩa. Tesseract luôn yêu cầu các quy trình hậu xử lý nặng nề để cải thiện kết quả của nó

Mặc dù dễ sử dụng, nhưng tính đơn giản của nó phải trả giá bằng độ chính xác. Đó là lý do tại sao chúng tôi sử dụng các lựa chọn thay thế chính xác hơn trong sản xuất. Tuy nhiên, chúng tôi vẫn sử dụng Tesseract để tạo nguyên mẫu vì nó cung cấp cơ sở tốt để đánh giá các chỉ số thành công của các kỹ thuật khác

Kỹ thuật xử lý hình ảnh thay thế

Một cách tiếp cận khác đối với Tesseract là sử dụng các kỹ thuật xử lý văn bản truyền thống thường bao gồm các giai đoạn sau

  • Quan sát thủ công các mẫu trong bố cục, cạnh, màu sắc, kết cấu, kích thước phông chữ, đường viền, hình thái học [hình dạng] và bất kỳ tính năng nào khác giúp phân biệt vùng văn bản với vùng không phải văn bản
  • Sử dụng các thao tác tiền xử lý — như chuyển đổi định dạng hình ảnh, tạo ngưỡng, xói mòn, giãn nở, tạo mặt nạ màu, chuyển đổi không gian màu hoặc làm mờ gaussian — để cô lập các vùng văn bản mà chúng ta quan tâm
  • Sử dụng các thuật toán chi tiết hơn — như so khớp mẫu hoặc bộ mô tả hình ảnh — để tách văn bản chính xác hơn hoặc để nhận dạng các ký tự văn bản
  • Đối với bất kỳ thao tác nào sử dụng tham số, hãy điều chỉnh giá trị hoặc phạm vi của chúng theo cách thủ công cho đến khi hiển thị kết quả mong muốn
  • không. thư viện tệp exe chẳng hạn như PDFPlumber

Các bước này được kiểm tra và điều chỉnh trong khi kiểm tra trực quan một tập hợp hình ảnh đầu vào đại diện với hy vọng rằng chúng sẽ hoạt động tốt đối với bất kỳ hình ảnh không nhìn thấy nào. Tuy nhiên, trên thực tế, chúng không khái quát hóa tốt, có khả năng thu hồi thấp hơn Tesseract và thường yêu cầu điều chỉnh thủ công các thông số

Mọi người sử dụng chúng vì chúng đơn giản, dễ triển khai, chạy nhanh trên mọi phần cứng và đặt đường cơ sở tham chiếu cho các chỉ số thành công. Một kỹ thuật phức tạp không thể cải thiện số liệu của các kỹ thuật này thì không đáng để triển khai. Chúng cũng tiện dụng để nhanh chóng tạo tập dữ liệu đào tạo

Trích xuất văn bản bằng OpenCV Machine Learning

Phát hiện văn bản bằng trình phát hiện vùng cực OpenCV [Nguồn. dự án OpenCV]

Không giống như mã xử lý hình ảnh được điều chỉnh thủ công, các mô hình thống kê hoặc xác suất học cách tách biệt và nhận dạng văn bản từ các mẫu dữ liệu và khái quát hóa tốt hơn trên các hình ảnh không nhìn thấy. Tuy nhiên, các mô hình này thiếu sức mạnh biểu đạt của các khu rừng ngẫu nhiên hoặc mạng lưới thần kinh và chỉ tốt hơn một chút trong việc khái quát hóa. OpenCV, khung thị giác máy tính, cung cấp các mô hình đơn giản như các tính năng vùng cực trị [ER] và mô hình Markov ẩn [HMM] để phát hiện văn bản và nhận dạng văn bản

Các vùng cực trị để phát hiện và nhận dạng văn bản

Phát hiện và nhận dạng văn bản ER dựa trên khái niệm về các vùng cực trị — các vùng pixel liền kề có cường độ tối đa hoặc tối thiểu trên tất cả các ranh giới xung quanh của chúng. Ý tưởng là các ký tự văn bản có khả năng là các vùng cực trị vì mọi người có thể đọc chúng. Máy dò ER mạnh mẽ chống lại các biến thể mờ, tương phản, chiếu sáng, định hướng, màu sắc và kết cấu

Thuật toán ER bao gồm hai giai đoạn phân loại. Giai đoạn đầu tiên là trình phát hiện ký tự trong đó xác suất của mỗi ER là một ký tự được ước tính bằng cách sử dụng các tính năng mới được tính toán nhanh chóng và chỉ những ER có xác suất cực đại cục bộ ở tất cả các ngưỡng mới được chọn cho giai đoạn thứ hai. Trong giai đoạn thứ hai là giai đoạn phân loại ký tự, việc phân loại được cải thiện bằng cách sử dụng các tính năng đắt tiền hơn về mặt tính toán. Cuối cùng, ER ký tự được nhóm thành các từ bằng cách sử dụng tìm kiếm toàn diện dựa trên các tính năng phổ biến như dòng văn bản từ

Mô hình Markov ẩn để nhận dạng văn bản

Nhận dạng ký tự bằng mô hình Markov ẩn OpenCV [Nguồn. dự án OpenCV]

Thuật toán HMM mô hình nhận dạng văn bản dưới dạng mô hình xác suất. Chuỗi pixel tạo thành các quan sát trong khi chuỗi ký tự thuộc về chúng tạo thành chuỗi Markov ẩn tuân theo một số quy tắc ngôn ngữ. Ý tưởng là tìm ký tự nào có khả năng xảy ra nhất với trạng thái hiện tại [ký tự hiện tại] và quan sát hiện tại [pixel]

HMM sử dụng các tham số như xác suất truyền và phát xạ có thể học được từ dữ liệu. Xác suất truyền là xác suất có điều kiện của các trạng thái mới dựa trên các trạng thái trước đó và được học từ việc phân phối các ký tự trong ngữ liệu ngôn ngữ hoặc từ điển. Ví dụ: xác suất của ký tự "e" theo sau "t" cao hơn "x" theo sau "t"

Xác suất phát xạ là xác suất có điều kiện của các quan sát [pixel] với trạng thái hiện tại. Chúng được học bằng cách chú thích hình ảnh ký tự với nhãn ký tự. Bởi vì phân phối xác suất thiếu sức mạnh biểu cảm, hình ảnh phải là những hình ảnh đơn giản chỉ chứa một ký tự

Ưu điểm và nhược điểm của việc trích xuất văn bản bằng OpenCV

Những mô hình thô sơ này được coi là học máy vì chúng đang học các tham số của chúng từ dữ liệu. Chúng khái quát hóa tốt hơn và cung cấp đường cơ sở ít dễ vỡ hơn cho các chỉ số thành công so với logic xử lý hình ảnh thủ công. Vì OpenCV được phổ biến rộng rãi cho tất cả các loại phần cứng từ điện thoại thông minh đến máy chủ nên chúng rất dễ triển khai và chạy nhanh

Nhược điểm là do chúng thiếu sức mạnh biểu đạt và không thể khái quát hóa cũng như các mô hình phức tạp hơn. Họ bị cả thu hồi thấp và độ chính xác thấp. Văn bản thường không được phát hiện ngay cả khi có mặt, đặc biệt là trên nhãn sản phẩm nơi nghệ thuật văn bản được sử dụng nhiều. Bạn sẽ nhận thấy rằng bất cứ nơi nào bạn nhìn thấy hộp giới hạn có nghĩa là mô hình tin rằng nó đã tìm thấy văn bản và thường thì mô hình bỏ sót ký tự hoặc tạo ra kết quả dương tính giả.  

Tổng quan về xử lý văn bản bằng Deep Learning

Không giống như các kỹ thuật học tập thô sơ của OpenCV, mạng nơ-ron sâu [DNN] có sức mạnh biểu đạt to lớn, cho phép chúng khái quát hóa cho nhiều ngành, bố cục tài liệu, ngữ nghĩa văn bản và các loại văn bản trong thế giới thực khác. Bản thân OpenCV đi kèm với mô-đun DNN và các mô hình DNN đơn giản được đào tạo trước để phát hiện và nhận dạng văn bản

Chúng ta sẽ khám phá các kỹ thuật hiện đại hơn để giải phóng toàn bộ sức mạnh của công nghệ học sâu tiên tiến nhất cho hệ thống trích xuất văn bản mạnh mẽ của chúng ta

Deep Learning Stack của chúng tôi để trích xuất văn bản

Ngăn xếp công nghệ của chúng tôi bao gồm

  • ngôn ngữ lập trình Python
  • Khung MMOCR dựa trên nền tảng học sâu PyTorch
  • Các thư viện hệ sinh thái Python như NumPy, OpenCV-Python, PIL, Matplotlib và Pytesseract
  • Các công cụ tạo mẫu nhanh như máy tính xách tay Jupyter và Google Colab
  • Tập lệnh Python, tệp thực thi và công cụ dòng lệnh để tiền xử lý, đào tạo và thử nghiệm

Phát hiện văn bản bằng Deep Learning

Để phát hiện văn bản, quy trình của chúng tôi sử dụng mô hình học sâu tùy chỉnh dựa trên thuật toán học sâu TextSnake vì thuật toán này tổng quát hóa hoàn hảo cho tất cả các trường hợp sử dụng của khách hàng — tài liệu pháp lý, nhãn sản phẩm để tự động hóa kho hàng, xử lý hóa đơn, v.v.

Mô hình TextSnake là gì?

Mô hình hình học của TextSnake [Nguồn. Shanbang Long và cộng sự]

Hầu hết các thuật toán phát hiện văn bản giả định rằng tất cả các ký tự trong đoạn văn bản nằm trên một đường thẳng. Các hộp giới hạn được phát hiện của chúng là các hình chữ nhật được căn chỉnh theo trục hoặc có góc

Nhưng giả thiết về một đường thẳng không đúng trong nhiều tình huống thực tế. Văn bản có thể bị cong dọc theo các đường viền dạng tự do với kích thước và hướng phông chữ không đều. Nhiều nhãn sản phẩm, biển hiệu cửa hàng, biển báo tòa nhà, biển báo giao thông và văn bản viết tay có chung những đặc điểm này

Điểm mới của mô hình TextSnake là nó khái quát hóa cho bất kỳ hình học và đường viền văn bản nào. Nó xem một đoạn văn bản là một chuỗi các đĩa bao quanh hình tròn với mỗi đĩa có tâm, hướng và bán kính. Bằng cách ước tính các thuộc tính hình học này, nó tạo ra một vùng giới hạn có đường viền uốn lượn dọc theo và xung quanh một đoạn văn bản

TextKiến trúc mô hình rắn

Kiến trúc TextSnake [Nguồn. Shanbang Long và cộng sự]

Mô hình TextSnake của chúng tôi sử dụng xương sống mạng tích chập hoàn toàn [FCN] với mạng kim tự tháp tính năng lớp phủ và kết nối chéo giữa các lớp. Các lớp tích chập hoàn toàn của nó và các kim tự tháp đặc trưng cho phép nó lấy mẫu chính xác các bản đồ đặc trưng để thông tin bị mất trong các lớp lấy mẫu xuống được xây dựng lại để tạo ra các nhãn cấp độ pixel cho hình ảnh gốc. Vì vậy, kiến ​​trúc này đang thực hiện phân đoạn thể hiện của các đoạn văn bản một cách hiệu quả

Lớp đầu ra bao gồm các nút phân loại cho vùng văn bản và trung tâm văn bản, và các nút hồi quy cho các tham số hình học của các đĩa tròn tạo thành một đoạn văn bản - tâm, bán kính và hướng của chúng

Đào tạo

Mô hình TextSnake được đào tạo trước của MMOCR đã chính xác cho hầu hết các trường hợp sử dụng phát hiện văn bản trong tài liệu và cảnh. Trong một số trường hợp sử dụng hiếm gặp, chẳng hạn như tự động hóa kho hàng hoặc tài liệu viết tay có đặc thù cụ thể, chúng tôi tinh chỉnh trọng số của mô hình được đào tạo trước trên bộ dữ liệu hình ảnh tùy chỉnh của mình

Tập dữ liệu huấn luyện tùy chỉnh được chuẩn bị bằng cách đánh dấu các đoạn văn bản bằng công cụ chú thích tùy chỉnh. Vì chúng tôi chỉ quan tâm đến việc phát hiện, chúng tôi không cần ghi nhãn cấp độ ký tự. Một bộ dữ liệu tinh chỉnh điển hình bao gồm từ 20 đến 100 hình ảnh được chú thích tùy thuộc vào mức độ không chính xác của đường cơ sở được đào tạo trước

Để tinh chỉnh, các lớp của mô hình FCN được đào tạo trước sẽ bị đóng băng ngoại trừ một số lớp lấy mẫu, phân loại và hồi quy cuối cùng. Chúng tôi sử dụng smoothed-L1 làm hàm mất hồi quy và mất entropy chéo cho phân loại vùng văn bản và trung tâm văn bản

Kết quả

Phát hiện TextSnake [được nhìn thấy bằng hộp giới hạn] trên tài liệu pháp lý [Nguồn]. Kết quả có thể được lưu trữ trong tệp văn bản, chuỗi json hoặc được tích hợp trong hệ thống kinh doanh để tự động hóa.  

 

Kết quả phát hiện của TextSnake trên một văn bản pháp luật được hiển thị trong hình trên. Bạn có thể thấy nó dễ dàng phát hiện và đánh dấu văn bản viết tay và định hướng không đều như thế nào

Nhận dạng văn bản in và viết tay bằng cách sử dụng Deep Learning

Thành phần nhận dạng văn bản của chúng tôi sử dụng mô hình máy biến áp TrOCR hiện đại tùy chỉnh để nhận dạng văn bản, cả văn bản in hoặc viết tay

Trực giác đằng sau các mô hình máy biến áp

Khi chúng ta đọc văn bản, chúng ta không chỉ dựa vào mỗi ký tự trông như thế nào. Thay vào đó, chúng ta hoàn toàn sử dụng kiến ​​thức ngôn ngữ của mình — chính tả, ngữ pháp và ngữ nghĩa — và kiến ​​thức thực tế để xác định các từ và ngữ cảnh của chúng. Đó là lý do tại sao chúng ta có thể đọc và hiểu ngay cả những câu có lỗi chính tả. Hành vi kết hợp nhiều loại kiến ​​thức của con người - được gọi là phương thức - cho một nhiệm vụ có thể được mô phỏng bằng cách sử dụng mạng lưới thần kinh sâu

Trong bối cảnh nhận dạng văn bản, OCR cơ bản chỉ dựa vào các tính năng trực quan và bỏ qua các phương thức khác, khiến nó yếu trước các lỗi chính tả và chữ viết xấu. Nhưng tính năng nhận dạng văn bản mạnh mẽ vượt xa OCR cơ bản, kết hợp các tính năng trực quan với mô hình ngôn ngữ và biểu đồ tri thức trong thế giới thực

Hầu hết các mô hình học sâu đã cố gắng nhận dạng văn bản mạnh mẽ bằng cách kết hợp mạng thần kinh tích chập [CNN] cho các tính năng trực quan và mạng thần kinh tái phát [RNN] cho mô hình ngôn ngữ tuần tự. Nhưng RNN có phạm vi hạn chế đối với ngữ cảnh ngôn ngữ và đào tạo chậm. Và trong khi CNN vượt trội về ngữ cảnh trực quan cục bộ, chúng không thể lập mô hình ngữ cảnh tầm xa

Các mô hình máy biến áp là bước tiến hóa tiếp theo sau CNN và RNN vì chúng không có những hạn chế của cả hai. Quy trình nhận dạng văn bản của chúng tôi sử dụng máy biến áp để kết hợp các tính năng trực quan và mô hình hóa ngôn ngữ, cho phép chúng tôi sao chép cách mọi người đọc văn bản. Tiếp theo, chúng tôi giải thích về mô hình OCR dựa trên máy biến áp hay còn gọi là TrOCR

Mô hình TrOCR

Kiến trúc OCR biến áp [TrOCR] [Nguồn. Minghao Li et al]

TrOCR có hai mạng thần kinh được kết nối — khối mã hóa và khối giải mã. Khái niệm tự chú ý rất quan trọng ở đây - nó cho mạng nơ-ron biết mức độ quan trọng của từng tính năng và bối cảnh xung quanh so với các tính năng khác. Cả hai khối bao gồm nhiều lớp tự chú ý sao cho mỗi dự đoán ảnh hưởng đến dự đoán tiếp theo giống như RNN

Khối mã hóa biến đổi hình ảnh đầu vào và nhúng vị trí thành các vectơ chú ý trung gian mã hóa tất cả các tính năng hình ảnh cục bộ và rộng hơn cũng như ngữ cảnh của chúng. Khối giải mã diễn giải các vectơ chú ý trung gian này để tạo ra chuỗi đầu ra — trong trường hợp này là chuỗi văn bản. Bằng cách này, bộ mã hóa và giải mã của TrOCR hoạt động như một trình dịch từ trình tự này sang trình tự khác để chuyển đổi các bản vá hình ảnh đầu vào thành một chuỗi văn bản

Đào tạo TrOCR

Các khối bộ mã hóa và giải mã của TrOCR được khởi tạo bằng cách sử dụng các mẫu máy biến áp được đào tạo trước tương ứng. Bộ mã hóa được khởi tạo với bộ chuyển đổi hình ảnh BeIT được đào tạo trước. Bộ giải mã được khởi tạo với mô hình ngôn ngữ RoBERTa được đào tạo trước. Toàn bộ mô hình TrOCR sau đó được đào tạo trước trên bộ dữ liệu nhận dạng văn bản lớn. Cuối cùng, hai mô hình tinh chỉnh được tạo ra thông qua nhiều lần lặp lại đào tạo - một mô hình được tinh chỉnh trên tập dữ liệu nhỏ của tập dữ liệu văn bản in và mô hình kia trên tập dữ liệu văn bản viết tay

Kết quả nhận dạng văn bản in và viết tay

Nhận dạng văn bản của văn bản in và viết tay bằng TrOCR [Nguồn]. Quét tài liệu sạch hay không, chúng ta có thể sử dụng học sâu.  

Độ chính xác, thu hồi, điểm F1 và CER luôn từ 85% trở lên đối với tất cả các loại tài liệu và bố cục, bao gồm cả văn bản viết tay

Trích xuất thông tin văn bản [Lập luận] bằng cách sử dụng Deep Learning

Thành phần cuối cùng trong quy trình của chúng tôi là một mô hình trích xuất văn bản suy ra ý nghĩa ngữ nghĩa của các đoạn văn bản dựa trên các thuộc tính hình ảnh, vị trí và ngôn ngữ của chúng. Ví dụ: đưa ra một hóa đơn bán hàng, nó suy ra rằng một số văn bản đề cập đến sản phẩm, một số đề cập đến giá cả, một số đề cập đến địa chỉ, v.v.

Mô hình học sâu tổng quát hóa cho tất cả các loại tài liệu và bố cục tài liệu, tránh các sự cố khi sử dụng mẫu tài liệu, cài đặt bố cục hoặc mã hóa cứng. Mô hình của chúng tôi dựa trên các ý tưởng từ bài báo, lý luận đồ thị phương thức kép không gian [SDMGR] để trích xuất thông tin chính

Mô hình SDMGR

Kiến trúc SDMGR [Nguồn. Hongbin Sun và cộng sự]

SDMGR về cơ bản là một mạng phân loại nhiều lớp xuất ra nhãn loại thực thể — như sản phẩm, người, địa chỉ, v.v. — cho mỗi thực thể văn bản. Mô hình của chúng tôi có ba đặc điểm quan trọng

Đặc điểm đầu tiên là việc sử dụng lại các tính năng hình ảnh và ngôn ngữ do thành phần nhận dạng văn bản TrOCR tạo ra. Mô hình SDMGR ban đầu đề xuất một mạng phân đoạn tích chập và một mạng lặp lại bộ nhớ ngắn hạn dài hai chiều để mô hình hóa các tính năng ngôn ngữ và hình ảnh

Nhưng vì mô hình TrOCR của chúng tôi đã trích xuất các tính năng ngôn ngữ và hình ảnh bằng cách sử dụng các mô hình được đào tạo trước có khả năng khái quát hóa cao hơn nhiều như BeIT và RoBERTa, nên chúng tôi không cần thực hiện lại việc trích xuất tính năng. Chúng tôi cũng sử dụng lại các vectơ chú ý do TrOCR tạo ra

Đặc điểm thứ hai của SDMGR của chúng tôi là một mô-đun hợp nhất kết hợp các đặc điểm vị trí, hình ảnh và ngôn ngữ của các đoạn văn bản. Điều này không giống như các mô hình nhận dạng thực thể được đặt tên [NER] chỉ sử dụng các đặc điểm ngôn ngữ. Mô-đun hợp nhất là một mạng perceptron nhỏ, nhiều lớp thứ cấp để tìm hiểu các trọng số tối ưu để kết hợp các tính năng này và các vectơ chú ý

Lý luận đồ thị SDMGR cho ngữ nghĩa thực thể [Nguồn. Hongbin Sun và cộng sự]

Đặc điểm thứ ba và quan trọng nhất của mô hình SDMGR của chúng tôi là mô-đun lý luận đồ thị dựa trên cơ chế chú ý để mô hình hóa các mối quan hệ không gian giữa các thực thể văn bản. Mạng perceptron nhiều lớp này coi các thực thể văn bản là các nút. Các mối quan hệ giữa các thực thể văn bản được mô hình hóa như các cạnh. Đối với mỗi cặp thực thể, khoảng cách ngang và dọc cũng như hình dạng văn bản [chiều rộng và chiều cao] của chúng được nhúng trong không gian có chiều thấp hơn và được mô hình hóa dưới dạng trọng số cạnh để tối ưu hóa

Đào tạo SDMGR

Sử dụng công cụ chú thích thực thể, chúng tôi chú thích các vị trí và nhãn của thực thể văn bản cho 20 đến 100 tài liệu đại diện từ tập dữ liệu khách hàng của chúng tôi

Sau đó, chúng tôi lấy mô hình SDMGR được đào tạo trước từ MMOCR và tinh chỉnh nó trên các tính năng được trích xuất, vectơ chú ý và bố cục tài liệu tùy chỉnh của TrOCR của chúng tôi. Ý tưởng là điều chỉnh các mạng lý luận đồ thị và hợp nhất SDMGR của chúng tôi cho các tính năng ngôn ngữ và định vị không gian duy nhất cho tập dữ liệu khách hàng của chúng tôi. Hàm mất phân loại mà chúng tôi giảm thiểu là mất entropy chéo của các nhãn dự đoán

Kết quả

Khai thác thông tin SDMGR [Nguồn. Hongbin Sun et al]Trích xuất văn bản từ hình ảnh [Python] mà không cần Tesseract

Mô hình của chúng tôi đạt điểm F1 xuất sắc từ 80-90% trở lên cho từng loại thực thể

Trích xuất văn bản với Deep Learning

Các mô-đun xử lý bài đăng sau khi văn bản được lấy từ một hình ảnh thường bao gồm các mô hình NLP để xử lý cái mà chúng tôi gọi là lý luận văn bản ở trên. Thông thường, trích xuất văn bản chỉ là bước đầu tiên trong quy trình làm việc và các quy trình như nhận dạng thực thể được đặt tên, trích xuất từ ​​​​khóa và đối sánh phụ thuộc được yêu cầu để tạo ý nghĩa từ văn bản thô.  


Khớp phụ thuộc thực thể qua spaCy. [Tập lệnh Python]

Trích xuất văn bản mạnh mẽ cho doanh nghiệp của bạn

Trong bài viết này, bạn đã thấy mức độ phức tạp của việc trích xuất văn bản vấn đề và lý do tại sao bạn cần các phương pháp mạnh mẽ để triển khai sản xuất. Với chuyên môn của bạn về học sâu và thị giác máy tính, chúng tôi có thể cung cấp cho doanh nghiệp của bạn các hệ thống mạnh mẽ, sẵn sàng sản xuất cho mọi nhu cầu xử lý văn bản của bạn. Liên lạc

Bạn có thể quét hình ảnh để tìm văn bản không?

Có những chương trình sử dụng Nhận dạng ký tự quang học [OCR] để phân tích các chữ cái và từ trong hình ảnh, sau đó chuyển đổi chúng thành văn bản . Có một số lý do khiến bạn có thể muốn sử dụng công nghệ OCR để sao chép văn bản từ hình ảnh hoặc PDF.

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

Thư viện Python . Tức là nó sẽ nhận dạng và “đọc” chữ nhúng trong hình ảnh. Python-tesseract is an optical character recognition [OCR] tool for python. That is, it will recognize and “read” the text embedded in images.

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

Tạo tập lệnh tesseract Python . py bên trong thư mục đó Create a project folder and add a new main.py file inside that folder . Sau khi ứng dụng cấp quyền truy cập vào tệp PDF, nội dung của nó sẽ được trích xuất dưới dạng hình ảnh. Những hình ảnh này sau đó sẽ được xử lý để trích xuất văn bả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?

Tìm hiểu cách nhập gói pytesseract vào tập lệnh Python của bạn. Sử dụng OpenCV để tải hình ảnh đầu vào từ đĩa . Truyền hình ảnh vào công cụ Tesseract OCR thông qua thư viện pytesseract . Hiển thị kết quả văn bản OCR'd trên thiết bị đầu cuối của chúng tôi.

Chủ Đề