Logo Zephyrnet

Phát hiện bảng, trích xuất thông tin và cấu trúc bằng cách sử dụng Học sâu

Ngày:

Lượng dữ liệu được thu thập đang tăng mạnh từng ngày với rất nhiều ứng dụng, công cụ và nền tảng trực tuyến bùng nổ trong thời đại công nghệ hiện nay. Để xử lý và truy cập dữ liệu khổng lồ này một cách hiệu quả, cần phải phát triển các công cụ khai thác thông tin có giá trị. Một trong những lĩnh vực phụ cần được chú ý trong trường Trích xuất thông tin là tìm nạp và truy cập dữ liệu từ các biểu mẫu dạng bảng.

Table Extraction (TE) là nhiệm vụ phát hiện và phân tách thông tin bảng trong một tài liệu.

Để giải thích điều này một cách tinh tế, hãy tưởng tượng bạn có rất nhiều giấy tờ và tài liệu, nơi bạn sẽ sử dụng các bảng và sử dụng cùng một bảng, bạn muốn thao tác dữ liệu. Thông thường, bạn có thể sao chép chúng theo cách thủ công (ra giấy) hoặc tải chúng vào trang tính excel. Tuy nhiên, với tính năng trích xuất bảng, bạn đã gửi bảng dưới dạng ảnh tới máy tính sớm hơn nó trích xuất tất cả thông tin và xếp chúng thành một tài liệu gọn gàng. Điều này giúp tiết kiệm nhiều thời gian và ít sai sót hơn.


Như đã thảo luận trong phần trước, bảng được sử dụng thường xuyên để biểu diễn dữ liệu ở định dạng rõ ràng. Chúng ta có thể thấy chúng thường xuyên trên một số lĩnh vực, từ tổ chức công việc bằng cách cấu trúc dữ liệu trên các bảng đến lưu trữ tài sản khổng lồ của các công ty. Có rất nhiều tổ chức phải xử lý hàng triệu bảng mỗi ngày. Để tạo điều kiện thuận lợi cho những công việc tốn nhiều công sức như làm mọi thứ thủ công, chúng ta cần sử dụng các kỹ thuật nhanh hơn. Hãy thảo luận về một số trường hợp sử dụng trong đó các bảng có thể rất cần thiết:

nguồn: Patrick Tomasso, Unplash

Các trường hợp sử dụng cá nhân

Quá trình trích xuất bảng cũng có thể hữu ích cho các trường hợp sử dụng cá nhân nhỏ. Đôi khi chúng tôi chụp tài liệu trên điện thoại di động và sau đó sao chép chúng vào máy tính của chúng tôi. Thay vì sử dụng quy trình này, chúng tôi có thể chụp trực tiếp các tài liệu và lưu chúng dưới dạng định dạng có thể chỉnh sửa trong các mẫu tùy chỉnh của chúng tôi. Dưới đây là một số trường hợp sử dụng về cách chúng ta có thể phù hợp với việc trích xuất bảng trong thói quen cá nhân của mình -

Quét tài liệu sang điện thoại: Chúng ta thường chụp ảnh các bảng quan trọng trên điện thoại và lưu lại, nhưng với kỹ thuật trích xuất bảng, chúng ta có thể chụp ảnh các bảng và lưu trữ trực tiếp dưới dạng bảng, có thể vào excel hoặc google sheet. Với điều này, chúng tôi không cần phải tìm kiếm hình ảnh hoặc sao chép nội dung bảng vào bất kỳ tệp mới nào, thay vào đó, chúng tôi có thể sử dụng trực tiếp các bảng đã nhập và bắt đầu làm việc với thông tin được trích xuất.

Tài liệu sang HTML: Trong các trang web, chúng tôi tìm thấy vô số thông tin được trình bày bằng các bảng. Chúng giúp chúng tôi so sánh với dữ liệu và cung cấp cho chúng tôi một ghi chú nhanh về các con số một cách có tổ chức. Bằng cách sử dụng quy trình trích xuất bảng, chúng tôi có thể quét tài liệu PDF hoặc hình ảnh JPG / PNG và tải thông tin trực tiếp vào định dạng bảng tự thiết kế tùy chỉnh. Chúng tôi có thể viết thêm script để thêm các bảng bổ sung dựa trên các bảng hiện có và do đó số hóa thông tin. Điều này giúp chúng tôi chỉnh sửa nội dung và làm nhanh quá trình lưu trữ.


Các trường hợp sử dụng công nghiệp

Có một số ngành công nghiệp trên toàn cầu chạy rất nhiều vào thủ tục giấy tờ và tài liệu, đặc biệt là trong lĩnh vực Ngân hàng và Bảo hiểm. Từ việc lưu trữ thông tin chi tiết của khách hàng đến chăm sóc theo nhu cầu của khách hàng, bảng được sử dụng rộng rãi. Thông tin này một lần nữa được chuyển dưới dạng tài liệu (bản cứng) đến các chi nhánh khác nhau để phê duyệt, trong đó đôi khi, thông tin sai lệch có thể dẫn đến lỗi khi lấy thông tin từ các bảng. Thay vào đó, sử dụng tự động hóa ở đây, làm cho cuộc sống của chúng ta dễ dàng hơn nhiều. Sau khi dữ liệu ban đầu được thu thập và phê duyệt, chúng tôi có thể quét trực tiếp các tài liệu đó thành các bảng và tiếp tục làm việc trên dữ liệu số hóa. Chúng tôi có thể thông báo cho khách hàng về thời gian và địa điểm xử lý thông tin về thời gian và địa điểm. Do đó, điều này đảm bảo độ tin cậy của dữ liệu và đơn giản hóa cách xử lý các hoạt động của chúng tôi. Bây giờ chúng ta hãy xem xét các trường hợp sử dụng có thể có khác:

Quản lý chất lượng: Kiểm soát chất lượng là một trong những dịch vụ cốt lõi mà các ngành công nghiệp hàng đầu cung cấp. Nó thường được thực hiện trong nhà và cho các bên liên quan. Như một phần của điều này, có rất nhiều biểu mẫu phản hồi được thu thập từ người tiêu dùng để trích xuất phản hồi về dịch vụ được cung cấp. Trong các lĩnh vực công nghiệp, họ sử dụng các bảng để ghi lại danh sách kiểm tra hàng ngày và ghi chú để xem các dây chuyền sản xuất đang hoạt động như thế nào. Tất cả những điều này có thể được ghi lại tại một nơi duy nhất bằng cách sử dụng bảng trích xuất một cách dễ dàng.

Theo dõi tài sản: Trong các ngành Sản xuất, người ta sử dụng bảng mã cứng để theo dõi các thực thể được sản xuất như Thép, Sắt, Nhựa, v.v. Mỗi mặt hàng được sản xuất đều được gắn nhãn với một số duy nhất trong đó họ sử dụng bảng để theo dõi các mặt hàng được sản xuất và giao hàng ngày. Tự động hóa có thể giúp tiết kiệm rất nhiều thời gian và tài sản trong điều kiện thất lạc hoặc không nhất quán dữ liệu.


Các trường hợp sử dụng kinh doanh

Có một số ngành kinh doanh chạy trên trang tính excel và biểu mẫu ngoại tuyến. Nhưng tại một thời điểm, thật khó để tìm kiếm qua các trang tính và biểu mẫu này. Nếu chúng ta nhập các bảng này theo cách thủ công thì rất mất thời gian và khả năng dữ liệu nhập sai sẽ cao. Do đó, trích xuất bảng là một giải pháp thay thế tốt hơn để giải quyết các trường hợp sử dụng kinh doanh như bên dưới là rất ít.

Tự động hóa hóa đơn: Có rất nhiều ngành công nghiệp quy mô nhỏ và quy mô lớn mà hóa đơn vẫn được tạo ở dạng bảng. Những điều này không cung cấp báo cáo thuế được bảo đảm thích hợp. Để vượt qua những trở ngại như vậy, chúng tôi có thể sử dụng tính năng trích xuất bảng để chuyển đổi tất cả các hóa đơn sang định dạng có thể chỉnh sửa và do đó, nâng cấp chúng lên phiên bản mới hơn.

Tự động hóa biểu mẫu: Biểu mẫu trực tuyến đang phá vỡ phương pháp đã được thử và đúng này bằng cách giúp các doanh nghiệp thu thập thông tin họ cần và đồng thời kết nối nó với các nền tảng phần mềm khác được tích hợp trong quy trình làm việc của họ. Bên cạnh việc giảm nhu cầu nhập dữ liệu thủ công và email theo dõi, trích xuất bảng có thể loại bỏ chi phí in ấn, gửi thư, lưu trữ, sắp xếp và phá hủy các lựa chọn thay thế giấy truyền thống.


Có một vấn đề OCR trong tâm trí? Bạn muốn số hóa hóa đơn, PDF hoặc biển số? Đi qua Ống nano và xây dựng các mô hình OCR miễn phí!


Học sâu trong hành động

Học sâu là một phần của dòng rộng hơn các phương pháp học máy dựa trên mạng nơ-ron nhân tạo.

Mạng thần kinh là một khung công nhận các mối quan hệ cơ bản trong dữ liệu nhất định thông qua một quá trình bắt chước cách bộ não con người hoạt động. Chúng có các lớp nhân tạo khác nhau mà dữ liệu đi qua, nơi chúng tìm hiểu về các tính năng. Có các kiến ​​trúc khác nhau như NN chuyển đổi, NN lặp lại, mã tự động, NN đối thủ tạo để xử lý các loại dữ liệu khác nhau. Đây là những công cụ phức tạp nhưng mô tả hiệu suất cao để giải quyết các vấn đề trong thời gian thực. Bây giờ chúng ta hãy xem xét nghiên cứu đã được thực hiện trong lĩnh vực trích xuất bảng bằng cách sử dụng Mạng thần kinh và chúng ta cũng hãy xem lại chúng một cách ngắn gọn.


BảngNet

Giấy: TableNet: Mô hình học sâu để phát hiện bảng từ đầu đến cuối và trích xuất dữ liệu dạng bảng từ ảnh tài liệu được quét

Giới thiệu: TableNet là một kiến ​​trúc học sâu hiện đại được đề xuất bởi một nhóm từ TCS Research năm 2019. Động lực chính là trích xuất thông tin từ các bảng được quét thông qua điện thoại di động hoặc máy ảnh.

Họ đề xuất một giải pháp bao gồm phát hiện chính xác khu vực bảng trong một hình ảnh và sau đó phát hiện và trích xuất thông tin từ các hàng và cột của bảng được phát hiện.

Tập dữ liệu: Tập dữ liệu được sử dụng là Marmot. Nó có 2000 trang ở định dạng PDF được thu thập với các sự thật cơ bản tương ứng. Điều này cũng bao gồm các trang của Trung Quốc. Liên kết - http://www.icst.pku.edu.cn/cpdp/sjzy/index.htm

Kiến trúc: Kiến trúc dựa trên Long và cộng sự, một mô hình mã hóa-giải mã để phân đoạn ngữ nghĩa. Cùng một mạng mã hóa / giải mã được sử dụng làm kiến ​​trúc FCN để trích xuất bảng. Hình ảnh được xử lý trước và sửa đổi bằng Tesseract OCR.

Mô hình này được hình thành theo hai giai đoạn bằng cách đưa đầu vào cho các kỹ thuật học sâu. Trong giai đoạn đầu, họ đã sử dụng trọng số của Mạng VGG-19 được đào tạo trước. Họ đã thay thế các lớp được kết nối đầy đủ của mạng VGG đã sử dụng bằng các lớp 1 × 1. Tất cả các lớp phức tạp được theo sau bởi kích hoạt ReLU và một lớp bỏ học có xác suất 0.8. Họ gọi giai đoạn thứ hai là mạng đã giải mã bao gồm hai nhánh. Đây là theo trực giác rằng vùng cột là một tập hợp con của vùng bảng. Do đó, mạng mã hóa đơn có thể lọc ra các vùng hoạt động với độ chính xác tốt hơn bằng cách sử dụng các tính năng của cả vùng bảng và vùng cột. Đầu ra từ mạng đầu tiên được phân phối cho hai nhánh. Trong nhánh đầu tiên, hai phép toán tích chập được áp dụng và bản đồ tính năng cuối cùng được nâng cấp để đáp ứng kích thước hình ảnh ban đầu. Trong nhánh khác để phát hiện cột, có thêm một lớp chập với chức năng kích hoạt ReLU và một lớp bỏ học với cùng xác suất bỏ học như đã đề cập trước đó. Các bản đồ đối tượng địa lý được lấy mẫu lên bằng cách sử dụng các chập trùng được sắp xếp theo phân đoạn sau một lớp tích chập (1 × 1). Dưới đây là hình ảnh của công trình kiến ​​trúc:

Kiến trúc của TableNet

Kết quả đầu ra: Sau khi các tài liệu được xử lý bằng cách sử dụng mô hình, các mặt nạ của bảng và cột được tạo ra. Các mặt nạ này được sử dụng để lọc ra bảng và các vùng cột của bảng khỏi hình ảnh. Bây giờ bằng cách sử dụng Tesseract OCR, thông tin được trích xuất từ ​​các vùng được phân đoạn. Dưới đây là hình ảnh hiển thị các mặt nạ được tạo và sau đó được trích xuất từ ​​các bảng:

Họ cũng đề xuất mô hình tương tự được tinh chỉnh với ICDAR hoạt động tốt hơn so với mô hình ban đầu. Điểm thu hồi, độ chính xác và điểm F1 của mô hình tinh chỉnh lần lượt là 0.9628, 0.9697, 0.9662. Mô hình ban đầu có các chỉ số được ghi lại là 0.9621, 0.9547, 0.9583 theo cùng một thứ tự. Bây giờ chúng ta hãy đi sâu vào một kiến ​​trúc nữa.


DeepDeSRT

Giấy: DeepDeSRT: Học sâu để phát hiện và nhận dạng cấu trúc của bảng trong ảnh tài liệu

Giới thiệu: DeepDeSRT là một khung công tác Mạng thần kinh được sử dụng để phát hiện và hiểu các bảng trong tài liệu hoặc hình ảnh. Nó có hai giải pháp như đã đề cập trong tiêu đề:

  1. Nó trình bày một giải pháp dựa trên học sâu để phát hiện bảng trong hình ảnh tài liệu.
  2. Nó đề xuất một cách tiếp cận dựa trên học sâu mới để nhận dạng cấu trúc bảng, tức là xác định các hàng, cột và vị trí ô trong các bảng được phát hiện.

Mô hình được đề xuất hoàn toàn dựa trên dữ liệu, nó không yêu cầu heuristics hoặc siêu dữ liệu của các tài liệu hoặc hình ảnh. Một lợi thế chính đối với việc đào tạo là họ không sử dụng các bộ dữ liệu đào tạo lớn, thay vào đó họ sử dụng khái niệm học chuyển giao và thích ứng miền cho cả phát hiện bảng và nhận dạng cấu trúc bảng.

Tập dữ liệu: Tập dữ liệu được sử dụng là tập dữ liệu cuộc thi bảng ICDAR 2013 chứa 67 tài liệu với tổng thể 238 trang.

Kiến trúc:

  • Phát hiện bảng Mô hình đề xuất sử dụng Fast RCNN làm khung cơ bản để phát hiện các bảng. Kiến trúc được chia thành hai phần khác nhau. Trong phần đầu tiên, họ đã tạo ra các đề xuất khu vực dựa trên hình ảnh đầu vào của một mạng được gọi là mạng đề xuất khu vực (RPN). Trong phần thứ hai, họ đã phân loại các khu vực bằng Fast-RCNN. Để hỗ trợ kiến ​​trúc này, họ đã sử dụng ZFNet và trọng lượng của VGG-16.
  • Nhận dạng cấu trúc Sau khi một bảng đã được phát hiện thành công và vị trí của nó được hệ thống biết, thách thức tiếp theo trong việc hiểu nội dung của nó là nhận ra và định vị các hàng và cột tạo nên cấu trúc vật lý của bảng. Do đó, họ đã sử dụng một mạng được kết nối đầy đủ với các trọng số của VGG-16 để trích xuất thông tin từ các hàng và cột. Dưới đây là kết quả đầu ra của DeepDeSRT:

Kết quả đầu ra:

Kết quả phát hiện bảng
Kết quả nhận dạng cấu trúc [6]

Kết quả đánh giá cho thấy DeepDeSRT làm tốt hơn các phương pháp hiện đại để phát hiện bảng và nhận dạng cấu trúc, đồng thời đạt được các phép đo F1 lần lượt là 96.77% và 91.44% cho phát hiện bảng và nhận dạng cấu trúc cho đến năm 2015.


Mạng Neural Đồ thị

Giấy: Suy nghĩ lại về nhận dạng bảng bằng cách sử dụng mạng thần kinh biểu đồ

Giới thiệu: Trong nghiên cứu này, các tác giả từ Phòng thí nghiệm Học sâu, Trung tâm Trí tuệ Nhân tạo Quốc gia (NCAI) đã đề xuất Mạng Neural Đồ thị để trích xuất thông tin từ các bảng. Họ lập luận rằng mạng đồ thị là một lựa chọn tự nhiên hơn cho những vấn đề này và khám phá thêm hai mạng nơron đồ thị dựa trên gradient.

Mô hình được đề xuất này kết hợp các lợi ích của cả hai, mạng nơ-ron tích tụ để trích xuất tính năng trực quan và mạng đồ thị để xử lý cấu trúc vấn đề.

Tập dữ liệu: Các tác giả đề xuất một tập dữ liệu tổng hợp lớn mới gồm 0.5 Triệu bảng được chia thành bốn loại.

  1. Hình ảnh là hình ảnh đơn giản, không có hợp nhất và có đường kẻ
  2. Hình ảnh có các loại đường viền khác nhau, bao gồm cả việc thỉnh thoảng không có đường giới hạn
  3. Giới thiệu hợp nhất ô và cột
  4. Máy ảnh đã chụp ảnh với phép chuyển đổi phối cảnh tuyến tính

Kiến trúc: Họ đã sử dụng một mạng tích chập nông để tạo ra các tính năng tích chập tương ứng. Nếu kích thước không gian của các tính năng đầu ra không giống với hình ảnh đầu vào, chúng sẽ thu thập các vị trí li
gần như được thu nhỏ lại tùy thuộc vào tỷ lệ giữa kích thước đầu vào và đầu ra và gửi chúng đến một mạng tương tác có hai mạng biểu đồ được gọi là DGCNN và GravNet. Các tham số của mạng đồ thị giống như CNN gốc. Cuối cùng, họ đã sử dụng lấy mẫu cặp thời gian chạy để phân loại nội dung được trích xuất sử dụng nội bộ thuật toán dựa trên Monte Carlo. Dưới đây là kết quả đầu ra:

Kết quả đầu ra:

Kết quả đầu ra được tạo bởi Graph Neural Networks

Dưới đây là các con số về độ chính xác được lập bảng do các mạng tạo ra cho bốn loại mạng như được trình bày trong Bộ dữ liệu phần:


CGAN và thuật toán di truyền

Giấy: Trích xuất bảng từ tài liệu bằng cách sử dụng mạng đối phương tạo điều kiện và thuật toán di truyền

Giới thiệu: Trong nghiên cứu này, các tác giả đã sử dụng cách tiếp cận từ trên xuống thay vì sử dụng cách tiếp cận từ dưới lên (tích hợp các dòng vào ô, hàng hoặc cột).

Trong phương pháp này, bằng cách sử dụng mạng đối địch chung, họ ánh xạ hình ảnh bảng thành một dạng bảng 'khung xương' được tiêu chuẩn hóa. Bảng khung này biểu thị đường viền hàng và cột gần đúng mà không có nội dung bảng. Tiếp theo, chúng phù hợp với kết xuất của cấu trúc bảng tiềm ẩn ứng viên với cấu trúc khung bằng cách sử dụng thước đo khoảng cách được tối ưu hóa bởi thuật toán di truyền.

Tập dữ liệu: Các tác giả đã sử dụng tập dữ liệu của riêng họ có 4000 bảng.

Kiến trúc: Mô hình được đề xuất bao gồm hai phần. Trong phần đầu tiên, các hình ảnh đầu vào được trừu tượng hóa thành các bảng khung bằng cách sử dụng mạng nơron đối phương có điều kiện. Một GAN lại có hai mạng, bộ tạo sẽ tạo ra các mẫu ngẫu nhiên và bộ phân biệt cho biết các hình ảnh được tạo ra là giả hay gốc. Generator G là mạng bộ mã hóa-giải mã trong đó hình ảnh đầu vào được chuyển qua một loạt các lớp lấy mẫu giảm dần cho đến lớp tắc nghẽn nơi quy trình được đảo ngược. Để chuyển đầy đủ thông tin đến các lớp giải mã, kiến ​​trúc U-Net với các kết nối bỏ qua được sử dụng và kết nối bỏ qua được thêm vào giữa các lớp i và n - i thông qua ghép nối, trong đó n là tổng số lớp và i là số lớp trong bộ mã hóa. Kiến trúc PatchGAN được sử dụng cho bộ phân biệt D. Điều này phạt cấu trúc hình ảnh đầu ra ở quy mô các bản vá lỗi. Chúng tạo ra đầu ra dưới dạng bảng khung.

Trong phần thứ hai, họ tối ưu hóa sự phù hợp của cấu trúc dữ liệu tiềm ẩn ứng viên với hình ảnh khung được tạo bằng cách sử dụng thước đo khoảng cách giữa mỗi ứng viên và khung. Đây là cách văn bản bên trong hình ảnh được trích xuất. Dưới đây là hình ảnh mô tả kiến ​​trúc:

Sơ đồ chung về phương pháp tiếp cận

Đầu ra: Cấu trúc bảng ước tính được đánh giá bằng cách so sánh - Số hàng và cột, Vị trí góc trên bên trái, Chiều cao hàng và chiều rộng cột

Thuật toán di truyền cho độ chính xác 95.5% theo hàng và 96.7% theo cột trong khi trích xuất thông tin từ các bảng.


Cần số hóa tài liệu, biên lai hoặc hóa đơn nhưng quá lười để viết mã? Đi qua Ống nano và xây dựng các mô hình OCR miễn phí!


[Code] Phương pháp tiếp cận truyền thống

Trong phần này, chúng ta sẽ tìm hiểu quy trình cách trích xuất thông tin từ các bảng bằng Deep Learning và OpenCV. Bạn có thể coi lời giải thích này như một lời giới thiệu, tuy nhiên, việc xây dựng các mô hình hiện đại sẽ cần rất nhiều kinh nghiệm và thực hành. Điều này sẽ giúp bạn hiểu các nguyên tắc cơ bản về cách chúng tôi có thể đào tạo máy tính với nhiều cách tiếp cận và thuật toán khả thi khác nhau.

Để hiểu vấn đề một cách chính xác hơn, chúng tôi định nghĩa một số thuật ngữ cơ bản, sẽ được sử dụng trong suốt bài viết:

  • bản văn: chứa một chuỗi và năm thuộc tính (trên cùng, trái, rộng, cao, phông chữ)
  • Dòng: chứa các đối tượng văn bản được giả định nằm trên cùng một dòng trong tệp gốc
  • Dòng đơn: đối tượng dòng chỉ với một đối tượng văn bản.
  • Nhiều dòng: đối tượng dòng có nhiều hơn một đối tượng văn bản.
  • Nhiều dòng Chặn: một tập hợp các đối tượng nhiều dòng liên tục.
  • Row: Các khối nằm ngang trong bảng
  • Cột: Khối dọc trong bảng
  • Pin: giao điểm của một hàng và cột
  • Ô - Lớp đệm: phần đệm bên trong hoặc khoảng trống bên trong ô.

Phát hiện bảng với OpenCV

Chúng tôi sẽ sử dụng các kỹ thuật thị giác máy tính truyền thống để trích xuất thông tin từ các bảng đã quét. Đây là đường dẫn của chúng tôi; ban đầu chúng tôi nắm bắt dữ liệu (các bảng từ nơi chúng tôi cần trích xuất thông tin) bằng máy ảnh thông thường, sau đó sử dụng thị giác máy tính, chúng tôi sẽ thử tìm các đường viền, cạnh và ô. Chúng tôi sẽ sử dụng các bộ lọc và đường viền khác nhau, và chúng tôi sẽ làm nổi bật các đặc điểm cốt lõi của bảng.

Chúng tôi sẽ cần một hình ảnh của một cái bàn. Chúng ta có thể chụp ảnh này trên điện thoại hoặc sử dụng bất kỳ hình ảnh hiện có nào. Dưới đây là đoạn mã,

file = r’table.png’
table_image_contour = cv2.imread(file, 0)
table_image = cv2.imread(file)

Ở đây, chúng tôi đã tải cùng một hình ảnh hình ảnh hai biến vì chúng tôi sẽ sử dụng bảng_image_contour khi vẽ các đường viền đã phát hiện của chúng tôi lên hình ảnh đã tải. Dưới đây là hình ảnh của bảng mà chúng tôi đang sử dụng trong chương trình của mình:

Hình ảnh của bảng

Chúng tôi sẽ sử dụng một kỹ thuật được gọi là Ngưỡng hình ảnh nghịch đảo giúp tăng cường dữ liệu có trong hình ảnh đã cho.

ret, thresh_value = cv2.threshold( table_image_contour, 180, 255, cv2.THRESH_BINARY_INV)

Một bước tiền xử lý quan trọng khác là sự giãn nở hình ảnh. Dilation là một phép toán đơn giản được áp dụng cho các hình ảnh nhị phân (Đen và Trắng), nó dần dần mở rộng ranh giới của các vùng của pixel nền trước (tức là pixel trắng, thường).

kernel = np.ones((5,5),np.uint8)
dilated_value = cv2.dilate(thresh_value,kernel,iterations = 1)

Trong OpenCV, chúng tôi sử dụng phương pháp, tìm đường viền để có được các đường viền trong hình ảnh hiện tại. Phương thức này nhận ba đối số, đầu tiên là hình ảnh giãn nở (hình ảnh được sử dụng để tạo hình ảnh giãn nở là table_image_contour - phương thức findContours chỉ hỗ trợ hình ảnh nhị phân), thứ hai là cv2.RETR_TREE yêu cầu chúng tôi sử dụng chế độ truy xuất đường viền, chế độ thứ ba là  cv2.CHAIN_APPROX_SIMPLE đó là chế độ xấp xỉ đường bao. Các tìm đường viền giải nén hai giá trị, do đó chúng tôi sẽ thêm một biến nữa có tên hệ thống cấp bậc. Khi các hình ảnh được lồng vào nhau, các đường viền thể hiện sự phụ thuộc lẫn nhau. Để biểu diễn các mối quan hệ như vậy, hệ thống phân cấp được sử dụng.

contours, hierarchy = cv2.findContours( dilated_value, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

Các đường bao đánh dấu vị trí chính xác dữ liệu hiện diện trong hình ảnh. Bây giờ, chúng ta lặp lại danh sách các đường bao mà chúng ta đã tính toán ở bước trước và tính toán tọa độ của các hình hộp chữ nhật như được quan sát trong hình ảnh ban đầu bằng phương pháp,  cv2.bidingRect. Trong lần lặp cuối cùng, chúng tôi đặt các hộp đó vào table_image của hình ảnh ban đầu bằng cách sử dụng phương pháp, cv2.rectangle ().

for cnt in contours: x, y, w, h = cv2.boundingRect(cnt) # bounding the images if y < 50: table_image = cv2.rectangle(table_image, (x, y), (x + w, y + h), (0, 0, 255), 1) 

Đây là bước cuối cùng của chúng tôi. Ở đây chúng tôi sử dụng phương pháp tênWindow để hiển thị bảng của chúng tôi với nội dung được trích xuất và các đường viền được nhúng trên đó. Dưới đây là đoạn mã:

plt.imshow(table_image)
plt.show()
cv2.namedWindow('detecttable', cv2.WINDOW_NORMAL)

Kết quả đầu ra

Thay đổi giá trị của y thành 300 trong đoạn mã trên, đây sẽ là đầu ra của bạn:

Khi bạn đã trích xuất các bảng, bạn có thể chạy mọi phần cắt đường viền thông qua công cụ tesseract OCR, hướng dẫn này có thể được tìm thấy Ở đây. Khi chúng ta có các hộp của mỗi văn bản, chúng ta có thể phân cụm chúng dựa trên tọa độ x và y của chúng để tìm ra hàng và cột tương ứng mà chúng thuộc về.

Bên cạnh đó, còn có tùy chọn sử dụng PDFMiner để biến các tài liệu pdf của bạn thành các tệp HTML mà chúng tôi có thể phân tích cú pháp bằng cách sử dụng các biểu thức chính quy để cuối cùng có được các bảng của chúng tôi. Đây là cách bạn có thể làm điều đó.


Phân tích cú pháp PDFMiner và Regex

Để trích xuất thông tin từ các tài liệu nhỏ hơn, đã đến lúc định cấu hình các mô hình học sâu hoặc viết các thuật toán thị giác máy tính. Thay vào đó, chúng ta có thể sử dụng các biểu thức chính quy trong Python để trích xuất văn bản từ các tài liệu PDF. Ngoài ra, hãy nhớ rằng kỹ thuật này không hoạt động đối với hình ảnh. Chúng tôi chỉ có thể sử dụng điều này để trích xuất thông tin từ các tệp HTML hoặc tài liệu PDF. Điều này là do, khi bạn đang sử dụng biểu thức chính quy, bạn sẽ cần phải đối sánh nội dung với nguồn và thông tin trích xuất. Với hình ảnh, bạn sẽ không thể khớp văn bản và các biểu thức chính quy sẽ không thành công. Bây giờ chúng ta hãy làm việc với một tài liệu PDF đơn giản và trích xuất thông tin từ các bảng trong đó. Dưới đây là hình ảnh:

Trong bước đầu tiên, chúng tôi tải tệp PDF vào chương trình của mình. Sau khi hoàn tất, chúng tôi chuyển đổi PDF sang HTML để có thể sử dụng trực tiếp các biểu thức chính quy và do đó, trích xuất nội dung từ các bảng. Đối với điều này, mô-đun chúng tôi sử dụng là pdfminer. Điều này giúp đọc nội dung từ PDF và chuyển đổi nó thành tệp HTML.

Dưới đây là đoạn mã:

from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.converter import HTMLConverter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
import re def convert_pdf_to_html(path): rsrcmgr = PDFResourceManager() retstr = StringIO() codec = 'utf-8' laparams = LAParams() device = HTMLConverter(rsrcmgr, retstr, codec=codec, laparams=laparams) fp = file(path, 'rb') interpreter = PDFPageInterpreter(rsrcmgr, device) password = "" maxpages = 0 #is for all caching = True pagenos=set() for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages,password=password,caching=caching, check_extractable=True): interpreter.process_page(page) fp.close() device.close() str = retstr.getvalue() retstr.close() return str

Tín dụng mã: zevross

Chúng tôi đã nhập rất nhiều mô-đun bao gồm các thư viện liên quan đến Biểu thức chính quy và PDF. Trong phương pháp chuyển đổi_pdf_to_html, chúng tôi gửi đường dẫn của tệp PDF cần được chuyển đổi sang tệp HTML. Đầu ra của phương thức sẽ là một chuỗi HTML như hình dưới đây:

'<span style="font-family: XZVLBD+GaramondPremrPro-LtDisp; font-size:12px">Changing Echoesn<br>7632 Pool Station Roadn<br>Angels Camp, CA 95222n<br>(209) 785-3667n<br>Intake: (800) 633-7066n<br>SA </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> TX DT BU </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> RS RL OP PH </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> CO CJ n<br></span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> SF PI </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> AH SPn<br></span></div>' 

Biểu thức chính quy là một trong những kỹ thuật lập trình phức tạp và thú vị nhất được sử dụng để đối sánh mẫu. Chúng được sử dụng rộng rãi trong một số ứng dụng, chẳng hạn, cho các mục đích định dạng mã, duyệt web và xác nhận. Trước khi bắt đầu trích xuất nội dung từ các bảng HTML, chúng ta hãy nhanh chóng tìm hiểu một vài điều về biểu thức chính quy.

Thư viện này cung cấp các phương thức sẵn có khác nhau để so khớp và tìm kiếm các mẫu. Dưới đây là một số:

import re # Match the pattern in the string
re.match(pattern, string) # Search for a pattern in a string
re.search(pattern, string) # Finds all the pattern in a string
re.findall(pattern, string) # Splits string based on the occurrence of pattern
re.split(pattern, string, [maxsplit=0] # Search for the pattern and replace it with the given string
re.sub(pattern, replace, string)

Các ký tự / Biểu thức bạn thường thấy trong biểu thức chính quy bao gồm:

  • [AZ] - bất kỳ chữ cái viết hoa nào
  • d - chữ số
  • w - ký tự từ (chữ cái, chữ số và dấu gạch dưới)
  • s - khoảng trắng (dấu cách, tab và khoảng trắng)

Bây giờ để tìm ra một mẫu cụ thể trong HTML, chúng ta sử dụng các biểu thức chính quy và sau đó viết các mẫu cho phù hợp. Trước tiên, chúng tôi tách dữ liệu sao cho các khối địa chỉ được tách biệt thành các khối riêng biệt theo tên chương trình (ANGELS CAMP, APPLE VALLEY, v.v.):

pattern = '(?<=<span style="font-family: XZVLBD+GaramondPremrPro-LtDisp; font-size:12px">)(.*?)(?=<br></span></div>)' for programinfo in re.finditer(pattern, biginputstring, re.DOTALL): do looping stuff…

Sau đó, chúng tôi tìm thấy tên chương trình, thành phố, tiểu bang và mã zip luôn tuân theo cùng một mẫu (văn bản, dấu phẩy, chữ in hoa hai chữ số, 5 số (hoặc 5 số sau dấu gạch ngang bốn số) - chúng có trong tệp PDF. chúng tôi coi như đầu vào). Kiểm tra đoạn mã sau:

# To identify the program name
programname = re.search('^(?!<br>).*(?=\n)', programinfo.group(0))
# since some programs have odd characters in the name we need to escape
programname = re.escape(programname) citystatezip =re.search('(?<=>)([a-zA-Zs]+, [a-zA-Zs]{2} d{5,10})(?=\n)', programinfo.group(0))
mainphone =re.search('(?<=<br>)(d{3}) d{3}-d{4}x{0,1}d{0,}(?=\n)', programinfo.group(0))
altphones = re.findall('(?<=<br>)[a-zA-Zs]+: (d{3}) d{3}-d{4}x{0,1}d{0,}(?=\n)(?=\n)', programinfo.group(0)) 

Đây là một ví dụ đơn giản giải thích cách chúng tôi trích xuất thông tin từ tệp PDF bằng biểu thức chính quy. Sau khi trích xuất tất cả thông tin cần thiết, chúng tôi tải dữ liệu này vào tệp CSV.

def createDirectory(instring, outpath, split_program_pattern): i = 1 with open(outpath, 'wb') as csvfile: filewriter = csv.writer(csvfile, delimiter=',' , quotechar='"', quoting=csv.QUOTE_MINIMAL) # write the header row filewriter.writerow(['programname', 'address', 'addressxtra1', 'addressxtra2', 'city', 'state', 'zip', 'phone', 'altphone', 'codes']) # cycle through the programs for programinfo in re.finditer(split_program_pattern, instring, re.DOTALL): print i i=i+1 # pull out the pieces programname = getresult(re.search('^(?!<br>).*(?=\n)', programinfo.group(0))) programname = re.escape(programname) # some facilities have odd characters in the name

Vì vậy, đây là một ví dụ đơn giản giải thích cách bạn có thể đẩy HTML đã trích xuất của mình vào tệp CSV. Đầu tiên, chúng tôi tạo một tệp CSV, tìm tất cả các thuộc tính của chúng tôi và đẩy từng thuộc tính một vào các cột tương ứng của chúng. Dưới đây là ảnh chụp màn hình:

Ảnh chụp màn hình của các Mục được trích xuất từ ​​các bảng bằng Biểu thức Thông thường

Đôi khi, các kỹ thuật được thảo luận ở trên có vẻ phức tạp và đặt ra thách thức cho các lập trình viên nếu tất cả các bảng được lồng vào nhau và phức tạp. Ở đây, việc lựa chọn mô hình CV hoặc Deep learning giúp tiết kiệm rất nhiều thời gian. Hãy xem những hạn chế và thách thức nào cản trở việc sử dụng các phương pháp truyền thống này.


Những thách thức với các phương pháp truyền thống

Trong phần này, chúng ta sẽ tìm hiểu sâu về vị trí mà quy trình trích xuất bảng có thể thất bại và hiểu thêm về các cách để vượt qua những trở ngại này bằng cách sử dụng các phương pháp hiện đại ra đời từ Học sâu. Tuy nhiên, quá trình này không phải là một con đường bánh ngọt. Lý do là các bảng thường không cố định trong suốt. Chúng có các cấu trúc khác nhau để biểu diễn dữ liệu và dữ liệu bên trong bảng có thể đa ngôn ngữ với nhiều kiểu định dạng khác nhau (kiểu phông chữ, màu sắc, cỡ chữ và chiều cao). Do đó, để xây dựng một mô hình mạnh mẽ, người ta phải nhận thức được tất cả những thách thức này. Thông thường, quá trình này bao gồm ba bước: phát hiện bảng, trích xuất và chuyển đổi. Hãy xác định các vấn đề trong tất cả các giai đoạn, từng giai đoạn một:


Phát hiện bảng

Trong giai đoạn này, chúng tôi xác định vị trí chính xác các bảng hiện diện trong đầu vào đã cho. Đầu vào có thể ở bất kỳ định dạng nào, chẳng hạn như Hình ảnh, tài liệu PDF / Word và đôi khi là video. Chúng tôi sử dụng các kỹ thuật và thuật toán khác nhau để phát hiện các bảng, theo dòng hoặc theo tọa độ. Trong một số trường hợp, chúng ta có thể gặp các bảng hoàn toàn không có đường viền, nơi chúng ta cần chọn các phương pháp khác nhau. Bên cạnh những thách thức này, đây là một số thách thức khác:

  • Chuyển đổi hình ảnh: Chuyển đổi hình ảnh là bước chính trong việc phát hiện nhãn. Điều này bao gồm việc tăng cường dữ liệu và đường viền có trong bảng. Chúng ta cần chọn các thuật toán tiền xử lý thích hợp dựa trên dữ liệu được trình bày trong bảng. Ví dụ, khi chúng tôi đang làm việc với hình ảnh, chúng tôi cần áp dụng bộ phát hiện ngưỡng và cạnh. Bước chuyển đổi này giúp chúng tôi tìm thấy nội dung chính xác hơn. Trong một số trường hợp, các đường bao có thể bị sai và các thuật toán không thể nâng cao hình ảnh. Do đó, việc lựa chọn các bước chuyển đổi hình ảnh phù hợp và xử lý trước là rất quan trọng.
  • Chất lượng hình ảnh: Khi chúng tôi quét bảng để trích xuất thông tin, chúng tôi cần đảm bảo rằng các tài liệu này được quét trong môi trường sáng hơn để đảm bảo chất lượng hình ảnh tốt. Khi điều kiện ánh sáng kém, các thuật toán CV và DL có thể không phát hiện được các bảng trong các đầu vào nhất định. Nếu chúng ta đang sử dụng học sâu, chúng ta cần đảm bảo tập dữ liệu nhất quán và có một bộ hình ảnh tiêu chuẩn tốt. Nếu chúng ta sử dụng những mô hình này trên những chiếc bàn có giấy cũ nhàu nát, thì trước tiên chúng ta cần phải xử lý trước và khử nhiễu trong những bức ảnh đó.
  • Nhiều loại bố cục và mẫu cấu trúc: Tất cả các bảng không phải là duy nhất. Một ô có thể kéo dài trên một số ô, theo chiều dọc hoặc chiều ngang và sự kết hợp của các ô mở rộng có thể tạo ra một số lượng lớn các biến thể cấu trúc. Ngoài ra, một số tính năng nhấn mạnh của văn bản và các dòng trong bảng có thể ảnh hưởng đến cách hiểu cấu trúc của bảng. Ví dụ: các dòng ngang hoặc văn bản in đậm có thể nhấn mạnh nhiều tiêu đề của bảng. Cấu trúc của bảng xác định mối quan hệ giữa các ô một cách trực quan. Mối quan hệ trực quan trong bảng gây khó khăn cho việc tính toán tìm các ô liên quan và trích xuất thông tin từ chúng. Do đó, điều quan trọng là phải xây dựng các thuật toán mạnh mẽ trong việc xử lý các cấu trúc khác nhau của bảng.
  • Đệm ô, Lề, Đường viền: Đây là những yếu tố cần thiết của bất kỳ bảng nào - phần đệm, lề và đường viền không phải lúc nào cũng giống nhau. Một số bảng có nhiều phần đệm bên trong ô, và một số bảng thì không. Sử dụng hình ảnh chất lượng tốt và các bước xử lý trước sẽ giúp quá trình trích xuất bảng diễn ra suôn sẻ.

Đây là giai đoạn mà thông tin được trích xuất sau khi các bảng được xác định. Có rất nhiều yếu tố liên quan đến cách cấu trúc nội dung và nội dung nào có trong bảng. Do đó, điều quan trọng là phải hiểu tất cả các thách thức trước khi xây dựng một thuật toán.

  • Nội dung dày đặc: Nội dung của các ô có thể là số hoặc văn bản. Tuy nhiên, nội dung văn bản thường dày đặc, chứa các đoạn văn bản ngắn không rõ ràng với việc sử dụng các từ viết tắt và viết tắt. Để hiểu các bảng, văn bản cần được phân biệt rõ ràng và các từ viết tắt và từ viết tắt cần được mở rộng.
  • Phông chữ và Định dạng khác nhau: Phông chữ thường có nhiều kiểu dáng, màu sắc và độ cao khác nhau. Chúng ta cần đảm bảo rằng đây là những thông tin chung và dễ xác định. Một số họ phông chữ, đặc biệt là những họ phông chữ thuộc dạng chữ thảo hoặc viết tay, hơi khó trích xuất. Do đó, việc sử dụng phông chữ tốt và định dạng phù hợp sẽ giúp thuật toán xác định thông tin chính xác hơn.
  • Nhiều trang PDF và ngắt trang: Dòng văn bản trong bảng nhạy cảm với ngưỡng được xác định trước. Ngoài ra, với việc mở rộng các ô trên nhiều trang, việc xác định các bảng trở nên khó khăn. Trên một trang có nhiều bảng, rất khó để phân biệt các bảng khác nhau với nhau. Khó làm việc với các bàn thưa và không đều. Do đó, các đường kẻ và bố cục nội dung nên được sử dụng cùng nhau như những nguồn quan trọng để xác định vùng bảng.

Chuyển đổi bảng

Giai đoạn cuối cùng bao gồm chuyển đổi thông tin trích xuất từ ​​các bảng để biên dịch chúng dưới dạng tài liệu có thể chỉnh sửa, bằng excel hoặc sử dụng phần mềm khác. Hãy cùng tìm hiểu về một vài thách thức.

  • Đặt bố cục: Khi các định dạng bảng khác nhau được trích xuất từ ​​các tài liệu được quét, chúng ta cần có bố cục bảng phù hợp để đẩy nội dung vào. Đôi khi, thuật toán không trích xuất được thông tin từ các ô. Do đó, việc thiết kế một bố cục hợp lý cũng không kém phần quan trọng.
  • Các mẫu trình bày giá trị đa dạng: Giá trị trong ô có thể được trình bày bằng cách sử dụng các mẫu biểu diễn cú pháp khác nhau. Coi văn bản trong bảng là 6 ± 2. Thuật toán có thể không chuyển đổi được thông tin cụ thể đó. Do đó, việc trích xuất các giá trị số yêu cầu kiến ​​thức về các mẫu trình bày có thể có.
  • Đại diện cho hình dung: Hầu hết các định dạng biểu diễn cho bảng, chẳng hạn như ngôn ngữ đánh dấu trong đó bảng có thể được mô tả, được thiết kế để trực quan hóa. Do đó, việc tự động xử lý các bảng là một thách thức.

Đây là những thách thức mà chúng tôi phải đối mặt trong quá trình trích xuất bảng bằng kỹ thuật truyền thống. Bây giờ chúng ta hãy xem làm thế nào để khắc phục những điều này với sự trợ giúp của Học sâu. Nó đang được nghiên cứu rộng rãi trong các lĩnh vực khác nhau.


Tổng kết

Trong bài viết này, chúng tôi đã xem xét chi tiết về trích xuất thông tin từ bảng. Chúng ta đã thấy cách các công nghệ hiện đại như Deep Learning và Computer Vision có thể tự động hóa các tác vụ thông thường bằng cách xây dựng các thuật toán mạnh mẽ để đưa ra kết quả chính xác. Trong các phần đầu tiên, chúng ta đã tìm hiểu về vai trò của trích xuất bảng trong việc tạo điều kiện thuận lợi cho các nhiệm vụ của các cá nhân, ngành và lĩnh vực kinh doanh, đồng thời xem xét các trường hợp sử dụng giải thích chi tiết về trích xuất bảng từ PDF/HTML, tự động hóa biểu mẫu, Tự động hóa hóa đơn, v.v. Chúng tôi đã đã mã hóa một thuật toán bằng cách sử dụng Thị giác máy tính để tìm vị trí của thông tin trong các bảng bằng cách sử dụng các kỹ thuật phát hiện ngưỡng, giãn nở và phát hiện đường viền. Chúng tôi đã thảo luận về những thách thức mà chúng tôi có thể gặp phải trong quá trình bàn
quá trình phát hiện, trích xuất và chuyển đổi khi sử dụng các kỹ thuật thông thường và cho biết cách học sâu có thể giúp chúng tôi khắc phục những vấn đề này. Cuối cùng, chúng ta đã xem xét một vài kiến ​​trúc mạng nơ-ron và hiểu cách chúng đạt được việc trích xuất bảng dựa trên dữ liệu huấn luyện đã cho.


OCR với Nanonets

Sản phẩm API OCR của Nanonets cho phép bạn xây dựng các mô hình OCR một cách dễ dàng. Bạn không phải lo lắng về việc xử lý trước hình ảnh của mình hoặc lo lắng về các mẫu phù hợp hoặc xây dựng các công cụ dựa trên quy tắc để tăng độ chính xác của mô hình OCR của bạn.

Bạn có thể tải lên dữ liệu của mình, chú thích dữ liệu, đặt mô hình để đào tạo và chờ nhận dự đoán thông qua giao diện người dùng dựa trên trình duyệt mà không cần viết một dòng mã, lo lắng về GPU hoặc tìm kiến ​​trúc phù hợp cho mô hình học sâu của bạn. Bạn cũng có thể có được các phản hồi JSON của từng dự đoán để tích hợp nó với các hệ thống của riêng bạn và xây dựng các ứng dụng hỗ trợ học máy được xây dựng dựa trên các thuật toán hiện đại và cơ sở hạ tầng mạnh.

Sử dụng GUI: https://app.nanonets.com/

Bạn cũng có thể sử dụng API Nanonets-OCR bằng cách thực hiện theo các bước bên dưới:

Bước 1: Sao chép Repo, Cài đặt phụ thuộc

git clone https://github.com/NanoNets/nanonets-ocr-sample-python.git
cd nanonets-ocr-sample-python
sudo pip install requests tqdm

Bước 2: Nhận Khóa API miễn phí của bạn
Nhận Khóa API miễn phí của bạn từ http://app.nanonets.com/#/keys

biển số-phát hiện-gif

Bước 3: Đặt khóa API làm Biến môi trường

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

Bước 4: Tạo mô hình mới

python ./code/create-model.py

Lưu ý: Điều này tạo ra MODEL_ID mà bạn cần cho bước tiếp theo

Bước 5: Thêm Id mẫu làm biến môi trường

export NANONETS_MODEL_ID=YOUR_MODEL_ID

Lưu ý: bạn sẽ nhận được YOU_MODEL_ID từ bước trước

Bước 6: Tải lên dữ liệu đào tạo
Dữ liệu đào tạo được tìm thấy trong images (tệp hình ảnh) và annotations (chú thích cho các tập tin hình ảnh)

python ./code/upload-training.py

Bước 7: Mô hình tàu hỏa
Khi Hình ảnh đã được tải lên, hãy bắt đầu đào tạo Mô hình

python ./code/train-model.py

Bước 8: Lấy trạng thái mẫu
Mô hình mất ~ 2 giờ để đào tạo. Bạn sẽ nhận được email khi mô hình được đào tạo. Trong khi đó, bạn kiểm tra trạng thái của mô hình

python ./code/model-state.py

Bước 9: Đưa ra dự đoán
Một khi mô hình được đào tạo. Bạn có thể đưa ra dự đoán bằng mô hình

python ./code/prediction.py ./images/151.jpg


Nanonets và con người trong vòng lặp

‌‌Màn hình 'Trung bình' hỗ trợ quá trình chỉnh sửa và nhập và giảm gần 90% khối lượng công việc của người đánh giá thủ công và giảm 50% chi phí cho tổ chức.

Các tính năng bao gồm

  1. Theo dõi dự đoán là chính xác
  2. Theo dõi những cái nào sai
  3. Sửa lỗi cho những cái không chính xác
  4. Xóa những cái sai
  5. Điền vào các dự đoán còn thiếu
  6. Lọc ảnh với phạm vi ngày
  7. Nhận số lượng hình ảnh được kiểm duyệt so với những hình ảnh không được kiểm duyệt

Tất cả các trường được cấu trúc thành một GUI dễ sử dụng cho phép người dùng tận dụng công nghệ OCR và hỗ trợ làm cho nó tốt hơn khi họ đi, mà không phải nhập bất kỳ mã nào hoặc hiểu cách thức hoạt động của công nghệ.


Nguồn: https://nanonets.com/blog/table-extraction-deep-learning/

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?