Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng cách sử dụng Machine Learning PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Bạn muốn làm OCR viết tay? Blog này là tổng quan toàn diện về các phương pháp nhận dạng chữ viết tay mới nhất bằng cách sử dụng học sâu. Chúng tôi đã xem xét các nghiên cứu và bài báo mới nhất và cũng đã xây dựng một trình đọc chữ viết tay từ đầu.


Ống nano API OCR có nhiều điều thú vị trường hợp sử dụng. Nói chuyện với chuyên gia AI của Nanonets để tìm hiểu thêm.


Giới thiệu

Quy mô thị trường Nhận dạng ký tự quang học (OCR) dự kiến ​​sẽ là 13.38 tỷ USD vào năm 2025 với mức tăng trưởng so với cùng kỳ năm trước là 13.7%. Sự tăng trưởng này được thúc đẩy bởi số hóa nhanh chóng các quy trình kinh doanh sử dụng OCR để giảm chi phí lao động và tiết kiệm thời gian quý báu của con người. Mặc dù OCR đã được coi là một vấn đề đã được giải quyết, nhưng một thành phần quan trọng của nó là Nhận dạng chữ viết tay (Viết tay OCR) hoặc Nhận dạng văn bản viết tay (HTR) vẫn được coi là một bài toán khó. Sự khác biệt cao về kiểu chữ viết tay giữa mọi người và chất lượng kém của văn bản viết tay so với văn bản in gây ra những trở ngại đáng kể trong việc chuyển đổi nó thành văn bản có thể đọc được bằng máy. Tuy nhiên, đó là một vấn đề quan trọng cần giải quyết đối với nhiều ngành như chăm sóc sức khỏe, bảo hiểm và ngân hàng.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học
Nguồn: - https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Những tiến bộ gần đây trong Học sâu chẳng hạn như sự ra đời của kiến ​​trúc máy biến áp đã theo dõi nhanh tiến độ của chúng tôi trong việc bẻ khóa nhận dạng văn bản viết tay. Nhận dạng văn bản viết tay được gọi là Nhận dạng ký tự thông minh (ICR) do các thuật toán cần thiết để giải ICR cần nhiều trí thông minh hơn so với việc giải OCR thông thường.

Trong bài viết này, chúng ta sẽ tìm hiểu về nhiệm vụ của nhận dạng văn bản viết tay, nó phức tạp và cách chúng ta có thể giải quyết nó bằng cách sử dụng các kỹ thuật học sâu.


Bạn muốn trích xuất dữ liệu từ các biểu mẫu viết tay? Đi qua Ống nano và bắt đầu xây dựng các mô hình OCR Viết tay miễn phí!


Những thách thức trong nhận dạng chữ viết tay

  1. Sự thay đổi lớn và không rõ ràng của các nét từ người này sang người khác
  2. Phong cách viết tay của một cá nhân cũng thay đổi theo thời gian và không nhất quán
  3. Chất lượng kém của tài liệu / hình ảnh nguồn do xuống cấp theo thời gian
  4. Văn bản trong tài liệu in nằm trên một đường thẳng trong khi con người không cần phải viết một dòng văn bản thẳng hàng trên giấy trắng
  5. Chữ viết tay làm cho việc phân tách và nhận dạng các ký tự trở nên khó khăn
  6. Văn bản ở dạng viết tay có thể có khả năng xoay thay đổi sang bên phải, điều này trái ngược với văn bản in trong đó tất cả văn bản đều nằm thẳng
  7. Thu thập một tập dữ liệu có nhãn tốt để học không hề rẻ so với dữ liệu tổng hợp

Trường hợp sử dụng

Chăm sóc sức khỏe và dược phẩm

Số hóa đơn thuốc cho bệnh nhân là một điểm khó khăn lớn trong ngành chăm sóc sức khỏe / dược phẩm. Ví dụ, Roche đang xử lý hàng triệu petabyte tệp PDF y tế hàng ngày. Một lĩnh vực khác mà việc phát hiện văn bản viết tay có tác động chính là đăng ký bệnh nhân và số hóa biểu mẫu. Bằng cách thêm tính năng nhận dạng chữ viết tay vào bộ công cụ dịch vụ của họ, bệnh viện / dược phẩm có thể cải thiện đáng kể trải nghiệm người dùng

Bảo hiểm

Một ngành công nghiệp bảo hiểm lớn nhận được hơn 20 triệu tài liệu mỗi ngày và sự chậm trễ trong việc xử lý yêu cầu bồi thường có thể ảnh hưởng khủng khiếp đến công ty. Tài liệu xác nhận quyền sở hữu có thể chứa nhiều kiểu chữ viết tay khác nhau và quá trình xử lý xác nhận quyền sở hữu tự động hoàn toàn thủ công sẽ làm chậm hoàn toàn

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học
Nguồn: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-dierence-countries-a-Brazilian-1-b-American_fig2_226705617

Ngân hàng

Mọi người viết séc một cách thường xuyên và séc vẫn đóng một vai trò chính trong hầu hết các giao dịch không dùng tiền mặt. Ở nhiều nước đang phát triển, quy trình xử lý séc hiện tại yêu cầu nhân viên ngân hàng đọc và nhập thủ công thông tin có trên séc, đồng thời xác minh các mục nhập như chữ ký và ngày tháng. Vì một số lượng lớn séc phải được xử lý hàng ngày trong ngân hàng, hệ thống nhận dạng văn bản viết tay có thể tiết kiệm chi phí và giờ làm việc của con người

Thư viện trực tuyến

Một lượng lớn kiến ​​thức lịch sử đang được số hóa bằng cách tải lên các bản quét hình ảnh để có thể truy cập vào toàn thế giới. Nhưng nỗ lực này không hữu ích lắm cho đến khi văn bản trong hình ảnh có thể được xác định có thể được lập chỉ mục, truy vấn và duyệt. Nhận dạng chữ viết tay đóng một vai trò quan trọng trong việc làm sống động các tài liệu, bưu thiếp, nghiên cứu thời Trung cổ và thế kỷ 20, v.v.

Phương pháp

Các phương pháp nhận dạng chữ viết tay có thể được phân loại rộng rãi thành hai loại dưới đây

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học
  1. Phương pháp trực tuyến : - Phương pháp trực tuyến liên quan đến bút kỹ thuật số / bút stylus và có quyền truy cập vào thông tin nét vẽ, vị trí đặt bút trong khi văn bản đang được viết như trong hình bên phải ở trên. Vì chúng có xu hướng có nhiều thông tin liên quan đến dòng văn bản được viết nên chúng có thể được phân loại với độ chính xác khá cao và sự phân chia giữa các ký tự khác nhau trong văn bản trở nên rõ ràng hơn nhiều
  2. Phương thức ngoại tuyến : - Các phương pháp ngoại tuyến liên quan đến việc nhận dạng văn bản sau khi nó được viết ra và do đó sẽ không có thông tin về các nét / hướng liên quan trong quá trình viết với việc có thể có thêm một số tiếng ồn xung quanh từ nguồn tức là giấy.

Trong thế giới thực, không phải lúc nào cũng có thể / có thể mở rộng mang theo một chiếc bút kỹ thuật số với các cảm biến để nắm bắt thông tin về nét vẽ và do đó nhiệm vụ nhận dạng văn bản ngoại tuyến là một vấn đề liên quan hơn nhiều. Vì vậy, bây giờ chúng ta sẽ thảo luận về các kỹ thuật khác nhau để giải quyết vấn đề nhận dạng văn bản ngoại tuyến.

kỹ thuật

Các phương pháp tiếp cận ban đầu để giải quyết nhận dạng chữ viết tay liên quan đến các phương pháp Học máy như Mô hình Markov ẩn (HMM), SVM, v.v. Khi văn bản ban đầu được xử lý trước, việc trích xuất tính năng được thực hiện để xác định thông tin chính như vòng lặp, điểm uốn, tỷ lệ khung hình, v.v. của một nhân vật cá nhân. Các tính năng đã tạo này hiện được cung cấp cho một bộ phân loại nói HMM để nhận kết quả. Hiệu suất của các mô hình học máy là khá hạn chế do giai đoạn khai thác tính năng thủ công và khả năng học hỏi hạn chế của chúng. Bước trích xuất tính năng khác nhau đối với mọi ngôn ngữ riêng lẻ và do đó không thể mở rộng. Với sự ra đời của học sâu đã mang đến những cải tiến to lớn về độ chính xác của nhận dạng chữ viết tay. Hãy thảo luận về một số nghiên cứu nổi bật trong lĩnh vực học sâu về nhận dạng chữ viết tay

Mạng nơron tái phát đa chiều

RNN / LSTM như chúng ta đã biết có thể xử lý dữ liệu tuần tự để xác định các mẫu thời gian và tạo ra kết quả. Nhưng chúng bị giới hạn trong việc xử lý dữ liệu 1D và do đó sẽ không thể áp dụng trực tiếp cho dữ liệu hình ảnh. Để giải quyết vấn đề này, các tác giả trong bài báo này đã đề xuất một cấu trúc RNN / LSTM đa chiều như có thể thấy trong hình bên dưới

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Sau đây là sự khác biệt giữa RNN chung và RNN đa chiều. Trong RNN nói chung, lớp ẩn nói rằng tôi nhận được trạng thái từ lớp ẩn trước đó trong thời gian i-1. Trong RNN đa chiều, ví dụ như RNN 2 chiều, lớp ẩn (i, j) nhận trạng thái từ nhiều lớp ẩn trước đó tức là (i-1, j) và (i, j-1) và do đó nắm bắt ngữ cảnh từ cả hai chiều cao và chiều rộng trong hình ảnh là yếu tố then chốt để hiểu rõ ràng về khu vực địa phương theo mạng. Điều này được mở rộng hơn nữa để lấy thông tin không chỉ từ các lớp trước mà còn từ các lớp trong tương lai tương tự như cách BI-LSTM nhận thông tin từ t-1 và t + 1. Tương tự, một lớp ẩn 2D MDRNN giờ đây tôi có thể nhận thông tin (i-1, j), (i, j-1), (i + 1, j), (i, j + 1) do đó nắm bắt ngữ cảnh theo mọi hướng

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Toàn bộ cấu trúc mạng được hiển thị ở trên. MDLSTM được sử dụng không có gì khác ngoài việc thay thế khối RNN bằng khối LSTM từ cuộc thảo luận ở trên về MDRNN. Đầu vào được chia thành các khối có kích thước 3 × 4, hiện được đưa vào các lớp MDSTM. Mạng có cấu trúc phân cấp của các lớp MDLSTM theo sau là các lớp chuyển tiếp (ANN) song song với nhau. Sau đó, đầu ra cuối cùng được chuyển thành vectơ 1D và được đưa cho hàm CTC để tạo ra đầu ra

Phân loại theo thời gian kết nối (CTC) là một thuật toán được sử dụng để giải quyết các tác vụ như nhận dạng giọng nói, nhận dạng chữ viết tay, v.v. trong đó chỉ có dữ liệu đầu vào và bản ghi đầu ra nhưng không có chi tiết căn chỉnh được cung cấp, tức là cách một vùng cụ thể trong âm thanh cho giọng nói hoặc vùng cụ thể trong hình ảnh cho chữ viết tay được căn chỉnh cho một ký tự cụ thể. Các phép phỏng đoán đơn giản chẳng hạn như cho mỗi ký tự cùng một khu vực sẽ không hoạt động vì lượng không gian mà mỗi ký tự chiếm trong chữ viết tay khác nhau giữa người này với người và tùy từng thời điểm.

Đối với trường hợp sử dụng nhận dạng chữ viết tay của chúng tôi, hãy xem xét các vùng hình ảnh đầu vào cho một câu cụ thể làm đầu vào X=[x1,x2,…,x ** T] trong khi đầu ra dự kiến ​​là Y=[y1,y2,…,y ** U]. Với X, chúng ta phải tìm Y. Thuật toán CTC chính xác hoạt động bằng cách lấy đầu vào X và đưa ra phân phối trên tất cả các Y có thể sử dụng mà chúng ta có thể đưa ra dự đoán cho đầu ra cuối cùng.

CTC sử dụng ký tự cơ bản để phân biệt giữa các ký tự trùng lặp và ký tự lặp lại trong vùng đầu vào. Ví dụ: một ký tự cụ thể có thể trải dài trên nhiều vùng đầu vào và do đó CTC sẽ xuất ra cùng một ký tự liên tiếp. Ví dụ:- Đầu vào james và đầu ra của CTC là jjaammmees. Đầu ra cuối cùng có được bằng cách thu gọn các đầu ra lặp lại và do đó chúng ta nhận được james. Nhưng bây giờ để trình bày các ký tự trùng lặp, hãy nói 'l' trong xin chào, chúng ta cần có một khoảng cách tại chỗ và do đó tất cả các kết quả đầu ra được phân tách bằng dấu gạch ngang (-). Bây giờ đầu ra của hello có thể là h-ee-ll-lll-oo mà nếu thu gọn sẽ trở thành hello chứ không phải helo. Thông tin thêm về cách hoạt động của CTC có thể được xem tại đây CTC.

Trong khi giải mã đầu ra của CTC dựa trên phương pháp heuristic đơn giản của xác suất cao nhất cho mỗi vị trí, chúng tôi có thể nhận được kết quả có thể không có ý nghĩa gì trong thế giới thực. Để giải quyết vấn đề này, chúng tôi có thể sử dụng một bộ giải mã khác để cải thiện kết quả. Hãy thảo luận về các loại giải mã khác nhau

  1. Giải mã đường dẫn tốt nhất : - Đây là cách giải mã chung mà chúng ta đã thảo luận cho đến nay. Tại mỗi vị trí, chúng tôi lấy đầu ra của mô hình và tìm ra kết quả có xác suất cao nhất.
  2. Giải mã tìm kiếm chùm : - Thay vì lấy một đầu ra duy nhất từ ​​mạng mỗi khi tìm kiếm chùm, đề xuất giữ nhiều đường ra với mọi xác suất cao nhất và mở rộng chuỗi với các đầu ra mới và bỏ các đường có xác suất thấp hơn để giữ cho kích thước chùm không đổi. Kết quả thu được thông qua cách tiếp cận này chính xác hơn so với việc sử dụng cách tiếp cận tham lam
  3. Tìm kiếm chùm với Mô hình ngôn ngữ : - Tìm kiếm dạng chùm cung cấp kết quả chính xác hơn so với tìm kiếm dạng lưới nhưng nó vẫn không giải quyết được vấn đề có kết quả có ý nghĩa. Để giải quyết vấn đề này, chúng ta có thể sử dụng mô hình ngôn ngữ cùng với tìm kiếm chùm bằng cách sử dụng cả xác suất từ ​​mô hình và mô hình ngôn ngữ để tạo ra kết quả cuối cùng.

Có thể xem thêm chi tiết trong việc tạo ra kết quả giải mã chính xác trong này bài viết

Mạng mã hóa-giải mã và mạng chú ý

Các mô hình Seq2Seq có mạng Bộ mã hóa-giải mã gần đây đã phổ biến để giải quyết các tác vụ nhận dạng giọng nói, dịch máy, v.v. và do đó đã được mở rộng để giải quyết trường hợp sử dụng của nhận dạng chữ viết tay bằng cách triển khai một cơ chế chú ý bổ sung. Hãy thảo luận về một số nghiên cứu chuyên sâu trong lĩnh vực này

Quét, tham dự và đọc

Trong tác phẩm đầu tiên Quét, Tham dự và Đọc (SAR) này, các tác giả đề xuất việc sử dụng mô hình dựa trên sự chú ý để nhận dạng chữ viết tay đầu cuối. Đóng góp chính của nghiên cứu là việc phiên mã tự động văn bản mà không cần phân đoạn thành các dòng như một bước xử lý trước và do đó có thể quét toàn bộ trang và đưa ra kết quả.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

SAR sử dụng kiến ​​trúc dựa trên MDLSTM tương tự như kiến ​​trúc mà chúng ta đã thảo luận ở trên với một thay đổi nhỏ ở lớp cuối cùng. Sau lớp tuyến tính cuối cùng, tức là khối Sum cuối cùng trong hình trên, các bản đồ đặc trưng được thu gọn theo chiều dọc và một hàm softmax cuối cùng được áp dụng để lấy kết quả đầu ra.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Kiến trúc SAR bao gồm một kiến ​​trúc MDLSTM hoạt động như một công cụ trích xuất tính năng. Mô-đun thu gọn cuối cùng với đầu ra softmax và mất CTC được thay thế bằng mô-đun chú ý và bộ giải mã LSTM. Mô hình chú ý được sử dụng là sự kết hợp lai giữa chú ý dựa trên nội dung và chú ý dựa trên vị trí sẽ được giải thích chi tiết hơn trong bài báo tiếp theo. Các mô-đun LSTM của bộ giải mã lấy trạng thái trước đó, bản đồ chú ý trước đó và các tính năng của bộ mã hóa để tạo ra ký tự đầu ra cuối cùng và vectơ trạng thái cho dự đoán tiếp theo.

Chuyển đổi, tham dự và đánh vần

Bài báo này đề xuất một mô hình tuần tự dựa trên sự chú ý để nhận dạng từ viết tay. Kiến trúc được đề xuất có ba phần chính: bộ mã hóa, bao gồm CNN và GRU hai hướng, một cơ chế chú ý dành để tập trung vào các tính năng thích hợp và bộ giải mã được tạo bởi GRU một hướng, có thể đánh vần từ tương ứng, nhân vật của nhân vật.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Bộ mã hóa sử dụng CNN để trích xuất các tính năng trực quan. Kiến trúc VGG-19-BN được đào tạo trước được sử dụng làm trình trích xuất tính năng. Hình ảnh đầu vào được chuyển đổi thành bản đồ đặc trưng X, sau đó được định hình lại thành X 'bằng cách tách tất cả các cột kênh một cách khôn ngoan và kết hợp chúng để nhận thông tin tuần tự. X 'tiếp tục được chuyển đổi thành H bằng cách sử dụng GRU hai hướng. GRU là một mạng nơ-ron tương tự như LSTM về bản chất và có thể nắm bắt thông tin tạm thời.

Hơn nữa, một mô hình chú ý được sử dụng trong khi dự đoán đầu ra từ bộ giải mã. Bài báo thảo luận về hai loại cơ chế chú ý khác nhau đã được khám phá.

  1. Sự chú ý dựa trên nội dung : - Ý tưởng đằng sau điều này là tìm sự tương đồng giữa trạng thái ẩn hiện tại của bộ giải mã và bản đồ tính năng từ bộ mã hóa. Chúng tôi có thể tìm thấy các vectơ đặc trưng tương quan nhất trong bản đồ đặc trưng của bộ mã hóa, có thể được sử dụng để dự đoán ký tự hiện tại ở bước thời gian hiện tại. Có thể xem thêm chi tiết về cách hoạt động của cơ chế chú ý tại đây Chú ý
  2. Sự chú ý dựa trên vị trí : - Nhược điểm chính của cơ chế Vị trí dựa trên nội dung là có một giả định ngầm định rằng thông tin vị trí được nhúng trong đầu ra của bộ mã hóa. Nếu không, không có cách nào để phân biệt giữa các đầu ra ký tự được lặp lại từ bộ giải mã. Ví dụ: hãy xem xét một từ Charmander, ký tự a được lặp lại hai lần trong đó và nếu không có thông tin vị trí, bộ giải mã sẽ không thể dự đoán chúng là các ký tự riêng biệt. Để giảm bớt điều này, ký tự hiện tại và căn chỉnh của nó được dự đoán bằng cách sử dụng cả đầu ra bộ mã hóa và căn chỉnh trước đó. Có thể xem thêm chi tiết về cách hoạt động của người tham dự dựa trên vị trí tại đây.

Bộ giải mã là một GRU nhiều lớp một hướng. Tại mỗi thời điểm bước t, nó nhận đầu vào từ bước thời gian trước đó và vectơ ngữ cảnh từ mô-đun chú ý. Giải mã đa thức và làm mịn nhãn được khám phá tại khóa đào tạo để cải thiện khả năng tổng quát hóa.

Mô hình máy biến áp

Mặc dù các mạng bộ mã hóa-giải mã đã khá tốt trong việc đạt được kết quả về nhận dạng chữ viết tay, chúng vẫn gặp khó khăn trong quá trình đào tạo do các lớp LSTM liên quan và do đó không thể song song với nhau. Gần đây máy biến áp đã khá thành công và thay thế LSTM trong việc giải quyết các nhiệm vụ liên quan đến ngôn ngữ khác nhau. Bây giờ chúng ta hãy thảo luận về cách các mô hình dựa trên máy biến áp có thể được áp dụng để nhận dạng chữ viết tay.

Chú ý đến những gì bạn đọc

Trong công trình này, các tác giả đã đề xuất việc sử dụng kiến ​​trúc dựa trên máy biến áp sử dụng các lớp tự chú ý nhiều đầu ở cả giai đoạn hình ảnh và văn bản và do đó có thể học cả nhận dạng ký tự cũng như các phụ thuộc liên quan đến ngôn ngữ của chuỗi ký tự được giải mã. Vì kiến ​​thức ngôn ngữ được nhúng vào chính mô hình, nên không cần thêm bất kỳ bước xử lý hậu kỳ nào bằng mô hình ngôn ngữ và do đó có khả năng dự đoán kết quả đầu ra không phải là một phần của từ vựng. Để đạt được điều này, mã hóa văn bản xảy ra ở cấp độ ký tự chứ không phải cấp độ từ. Vì kiến ​​trúc máy biến áp cho phép đào tạo mô hình song song cho mọi khu vực hoặc nhân vật, quá trình đào tạo được đơn giản hóa nhiều.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Kiến trúc mạng bao gồm các thành phần sau

  1. Bộ mã hóa trực quan : - Để trích xuất các tính năng có liên quan và áp dụng khả năng tự chú ý trực quan từ nhiều phía trên các vị trí nhân vật khác nhau
  2. Người chuyển văn bản : - Nó thực hiện nhiệm vụ nhận đầu vào văn bản, mã hóa nó, áp dụng sự tự chú ý của ngôn ngữ đa đầu và áp dụng sự chú ý lẫn nhau trên cả các tính năng trực quan và văn bản.
Bộ mã hóa trực quan

Resnet50 backbone được sử dụng để bổ sung các tính năng như có thể thấy trong hình trên. Đầu ra bản đồ tính năng 3 chiều từ Resnet50 Fc được chuyển đến mô-đun Mã hóa tạm thời định dạng lại thành 2d bằng cách giữ nguyên chiều rộng và do đó có hình dạng của (fxh, w). Điều này được đưa vào một lớp được kết nối đầy đủ để giảm hình dạng xuống (f, w) và kết quả đầu ra là Fc '. Ngoài ra, một mã hóa vị trí TE được thêm vào Fc 'để giữ lại thông tin vị trí như đã đề cập trong bài báo Transformer của Vaswani. Có thể xem thêm thông tin về cách kiến ​​trúc máy biến áp được thiết kế tại đây. Đầu ra được chuyển qua một lớp được kết nối đầy đủ để có được bản đồ đặc trưng cuối cùng với hình dạng (f, w). Đầu ra cuối cùng được chuyển qua mô-đun chú ý nhiều đầu với 8 đầu để có được bản đồ tính năng trực quan phong phú

Người chuyển văn bản

Văn bản đầu vào được chuyển qua một bộ mã hóa tạo ra các nhúng cấp độ ký tự. Các nhúng này được kết hợp với vị trí tạm thời tương tự như cách trong Bộ mã hóa trực quan bằng cách sử dụng mô-đun Bộ mã hóa tạm thời. Kết quả này sau đó được chuyển đến mô-đun Tự chú ý nhiều ngôn ngữ tương tự như mô-đun chú ý trong Bộ mã hóa trực quan. Các tính năng văn bản được tạo cùng với các tính năng trực quan từ bộ mã hóa trực quan được chuyển đến một mô-đun chú ý lẫn nhau có nhiệm vụ căn chỉnh và kết hợp các tính năng đã học từ cả hình ảnh và đầu vào văn bản. Đầu ra được chuyển qua một hàm softmax để có kết quả cuối cùng.

Khi đánh giá trên dữ liệu thử nghiệm, các bản ghi không có sẵn. Do đó, chỉ có mã thông báo bắt đầu <S> được chuyển làm đầu vào và ký tự dự đoán đầu tiên được đưa trở lại hệ thống, ký tự này sẽ xuất ra ký tự dự đoán thứ hai. Quá trình suy luận này được lặp lại trong một vòng lặp cho đến khi kết thúc ký hiệu trình tự <E> được tạo ra hoặc khi đạt đến độ dài đầu ra lớn nhất N.

Tạo văn bản viết tay

Tạo văn bản viết tay là nhiệm vụ tạo ra văn bản viết tay trông như thật và do đó có thể được sử dụng để tăng cường các bộ dữ liệu hiện có. Như chúng ta biết, học sâu đòi hỏi rất nhiều dữ liệu để đào tạo trong khi thu thập được một kho dữ liệu khổng lồ về các hình ảnh chữ viết tay được gắn nhãn cho các ngôn ngữ khác nhau là một nhiệm vụ cồng kềnh. Để giải quyết vấn đề này, chúng ta có thể sử dụng Mạng đối thủ chung để tạo dữ liệu đào tạo. Hãy thảo luận về một kiến ​​trúc như vậy ở đây

gảiGAN

ScrabbleGAN tuân theo phương pháp bán giám sát để tổng hợp các hình ảnh văn bản viết tay linh hoạt cả về kiểu dáng và từ vựng. Nó có khả năng tạo ra các hình ảnh có độ dài khác nhau. Trình tạo cũng có thể thao tác kiểu văn bản kết quả, cho phép chúng tôi quyết định xem văn bản có phải là chữ thảo hay không hoặc cho biết độ dày / mỏng của nét bút

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Kiến trúc bao gồm một trình tạo tích hợp hoàn toàn dựa trên BigGAN. Đối với mỗi ký tự trong đầu vào, một bộ lọc tương ứng được chọn và tất cả các giá trị được nối với nhau, sau đó được nhân với một vectơ nhiễu z điều khiển kiểu văn bản được tạo. Như có thể thấy ở trên, các vùng được tạo cho mỗi ký tự riêng lẻ chồng lên nhau, do đó giúp tạo ra văn bản đệ quy được kết nối cũng như cho phép sự linh hoạt của các kích thước ký tự khác nhau. Ví dụ m chiếm nhiều không gian trong khi e và t chiếm diện tích hạn chế. Để giữ cùng một kiểu cho toàn bộ từ hoặc câu, vectơ kiểu z được giữ không đổi cho tất cả các ký tự.

Một bộ phân biệt tích hợp dựa trên kiến ​​trúc BigGAN được sử dụng để phân loại nếu kiểu tạo hình ảnh là giả hay thật. Bộ phân biệt không dựa trên chú thích cấp ký tự và do đó không dựa trên GAN có điều kiện của lớp. Ưu điểm của việc này là không cần dữ liệu được gắn nhãn và do đó dữ liệu từ kho dữ liệu không nhìn thấy không phải là một phần của dữ liệu đào tạo có thể được sử dụng để phân biệt đào tạo. Cùng với bộ phân biệt, một trình nhận dạng văn bản R được huấn luyện để phân loại nếu văn bản được tạo ra có ý nghĩa trong thế giới thực hay nếu nó vô nghĩa. Trình nhận dạng dựa trên kiến ​​trúc CRNN với phần đầu lặp lại bị loại bỏ để làm cho trình nhận dạng yếu hơn một chút và không nhận dạng được văn bản ngay cả khi nó không rõ ràng. Văn bản được tạo trong đầu ra của R được so sánh với văn bản đầu vào được cung cấp cho trình tạo và một hình phạt tương ứng được thêm vào hàm mất mát.

Các kết quả đầu ra được tạo bởi ScrabbleGAN được hiển thị bên dưới

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Bộ dữ liệu: -

  1. IAM : - Bộ dữ liệu IAM chứa khoảng 100k hình ảnh của các từ trong ngôn ngữ tiếng Anh với các từ được viết bởi 657 tác giả khác nhau. Tập hợp đào tạo, kiểm tra và xác nhận chứa các từ được viết bởi các tác giả loại trừ lẫn nhau http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL : - Bộ dữ liệu CVL bao gồm bảy tài liệu viết tay được viết bởi khoảng 310 người tham gia, dẫn đến khoảng 83 nghìn bảng từ, được chia thành các bộ đào tạo và kiểm tra Liên kết: - https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. VÀNG : - Chứa các từ tiếng Pháp với khoảng 60k hình ảnh và được viết bởi 1300 tác giả tương ứng với khoảng 5 bức thư do mỗi người viết. Liên kết: - http://www.a2ialab.com/doku.php?id=rimes_database:start

Số liệu: -

Tỷ lệ lỗi ký tự : - Nó được tính bằng khoảng cách Levenshtein, là tổng của các ký tự thay thế (Sc), chèn (Ic) và xóa (Dc) cần thiết để biến đổi một chuỗi thành chuỗi kia, chia cho tổng số ký tự trong groundtruth (Nc)

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Tỷ lệ lỗi Word : - Nó được tính bằng tổng của các thay thế từ (Sw), chèn (Iw) và xóa (Dw) được yêu cầu để biến đổi một chuỗi thành chuỗi kia, chia cho tổng số từ trong nguyên tắc cơ bản (Nw)

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Đào tạo mô hình nhận dạng chữ viết tay của riêng bạn

Bây giờ chúng ta hãy xem cách chúng ta có thể đào tạo mô hình nhận dạng văn bản viết tay của riêng mình. Chúng tôi sẽ đào tạo về tập dữ liệu IAM nhưng bạn cũng có thể đào tạo mô hình trên tập dữ liệu của riêng mình. Hãy thảo luận về các bước liên quan đến việc thiết lập

Ngày

Để tải xuống bộ dữ liệu IAM, hãy đăng ký từ tại đây. Sau khi đăng ký tải xuống words.tgz từ tại đây. Điều này chứa một tập dữ liệu các hình ảnh từ viết tay. Đồng thời tải xuống tệp chú thích words.txt từ tại đây.

Nếu bạn muốn sử dụng tập dữ liệu của riêng mình, bạn cần tuân theo cấu trúc dữ liệu của tập dữ liệu IAM.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Phần trên cho thấy cấu trúc thư mục tập dữ liệu AIM trông như thế nào. Ở đây a01, a02, v.v. đại diện cho các thư mục mẹ, mỗi thư mục có các thư mục con dữ liệu. Mỗi thư mục con có một tập hợp các hình ảnh có tên của thư mục được thêm vào làm tiền tố cho tên tệp của nó.

Ngoài ra, chúng ta cần một tập tin chú thích đề cập đến các đường dẫn đến các tập tin hình ảnh và các phiên âm tương ứng. Hãy xem xét ví dụ hình ảnh ở trên với đề cử văn bản, bên dưới sẽ là đại diện trong tệp chú thích words.txt

a01-000u-01-00 được 156 395 932 441 100 VBG đề cử

  1. a01-000u-01-00 -> id từ cho một dòng ở dạng a01-000u
  2. ok / err -> Chỉ báo chất lượng của đầu ra phân đoạn
  3. 156 -> mức xám để phân biệt dòng chứa từ này
  4. 395 932 441 100 -> hộp bao quanh từ này ở định dạng x, y, w, h
  5. VBG -> thẻ ngữ pháp cho từ này. Đây là Động từ Gerund
  6. đề cử -> phiên âm của từ này

Ngành kiến ​​trúc :-

Chúng tôi sẽ đào tạo một kiến ​​trúc dựa trên CRNN với mất CTC. CNN được sử dụng để trích xuất các đặc điểm hình ảnh được chuyển đến RNN và mất CTC được áp dụng cho phần cuối với bộ giải mã tham lam để lấy đầu ra.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Hội thảo

Chúng tôi sẽ sử dụng mã CRNN từ tại đây để đào tạo mô hình của chúng tôi. Làm theo các bước từ bên dưới để chuẩn bị dữ liệu

python checkDirs.py

Chạy lệnh trên và bạn sẽ thấy kết quả như bên dưới

[OK] từ /
[OK] từ / a01 / a01-000u /
[OK] word.txt
[OK] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

Bây giờ bạn đã sẵn sàng để bắt đầu đào tạo.

Chuyển đến thư mục gốc và thực thi

python main.py --train

Kết quả

Sau khi đào tạo trong khoảng 50 epoch, Tỷ lệ Lỗi Ký tự (CER) là 10.72% trong khi Tỷ lệ Lỗi Từ (WER) là 26.45% và do đó Độ chính xác của Từ là 73.55%. Một số dự đoán có thể được nhìn thấy trong hình dưới đây.

Cách dễ dàng thực hiện Nhận dạng chữ viết tay bằng Máy học

Mô hình có thể dự đoán chính xác các nhân vật ở một mức độ lớn nhưng nó gặp phải trong một số trường hợp chẳng hạn như được dự đoán một cách kinh khủng, những câu chuyện được dự đoán dưới dạng dấu vết. Những vấn đề này có thể được giải quyết bằng cách sử dụng mô hình ngôn ngữ làm bước xử lý bài đăng cùng với bộ giải mã có thể tạo ra các từ có nghĩa và sửa chữa những lỗi đơn giản.

Tổng kết

Mặc dù đã có những phát triển đáng kể trong công nghệ giúp nhận dạng văn bản viết tay tốt hơn, nhưng HTR vẫn còn xa là một vấn đề chưa được giải quyết so với OCR và do đó vẫn chưa được sử dụng rộng rãi trong ngành công nghiệp. Tuy nhiên, với tốc độ phát triển của công nghệ và với sự ra đời của các mô hình như máy biến áp, chúng ta có thể mong đợi các mô hình HTR sẽ sớm trở thành phổ biến.

Để tìm hiểu thêm về chủ đề này, bạn có thể bắt đầu từ tại đây

Đọc thêm

Dấu thời gian:

Thêm từ AI & Máy học