CƠ SỞ LÝ THUYẾT
Cơ sở lý thuyết cho bài toán phát hiện chữ viết
2.1.1 Bài toán phát hiện đối tượng
Computer Vision – là một lĩnh vực làm cho máy tính có thể nhìn đƣợc nhƣ con người, nhìn ở đây có nghĩa là hiểu được hình ảnh, video từ đó có thể làm cơ sở để trả lời các câu hỏi nhƣ: có gì trong ảnh, con mèo ở đâu trong bức ảnh, trong ảnh có bao nhiêu con chó, con mèo, con mèo có đang bắt chuột không?… Trong xử lý ảnh có bốn bài toán khác nhau bao gồm: phân loại hình ảnh (Image classification), Định vị vật thể (Classification with Localization), Phát hiện đối tƣợng (Object Detection), Phân đoạn đối tƣợng (Instance Segmentation).
Nhận dạng đối tƣợng là một thuật ngữ chung để mô tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc xác định các đối tƣợng trong ảnh kỷ thuật số.
Phân loại hình ảnh liên quan đến việc dự đoán lớp của một đối tƣợng trong một hình ảnh Định vị vật thể đề cập đến việc xác định vị trí của một hoặc nhiều đối tƣợng trong một hình ảnh và vẽ bounding box xung quanh chúng Phát hiện đối tƣợng kết hợp hai nhiệm vụ trên và thực hiện cho một hoặc nhiều đối tƣợng trong hình ảnh. Chúng ta có thể phân biệt giữa ba nhiệm vụ thị giác máy tính cơ bản trên thông qua input và output của chúng nhƣ sau:
● Phân loại hình ảnh: Dự đoán nhãn của một đối tƣợng trong một hình ảnh. o Input: Một hình ảnh với một đối tƣợng, chẳng hạn nhƣ một bức ảnh. o Output: Nhãn lớp (ví dụ: một hoặc nhiều số nguyên đƣợc ánh xạ tới nhãn lớp).
● Định vị đối tƣợng: Xác định vị trí hiện diện của các đối tƣợng trong ảnh và cho biết vị trí của chúng bằng bounding box. o Input: Một hình ảnh có một hoặc nhiều đối tƣợng, chẳng hạn nhƣ một bức ảnh. o Output: Một hoặc nhiều bounding box đƣợc xác định bởi tọa độ tâm, chiều rộng và chiều cao.
● Phát hiện đối tƣợng: Xác định vị trí hiện diện của các đối tƣợng trong bounding box và nhãn của các đối tƣợng nằm trong một hình ảnh. o Input: Một hình ảnh có một hoặc nhiều đối tƣợng, chẳng hạn nhƣ một bức ảnh. o Output: Một hoặc nhiều bounding box và nhãn cho mỗi bounding box.
Một số định nghĩa khác cũng rất quan trọng trong computer vision là phân đoạn đối tƣợng (object segmentation), trong đó các đối tƣợng đƣợc nhận dạng bằng cách làm nổi bật các pixel cụ thể của đối tƣợng thay vì bounding box.
Bên dưới là sơ đồ tổng hợp các tác vụ của computer vision.
Hình 2.1 Sơ đồ các mối liên hệ giữa các tác vụ trong computer vision
Khác với bài toán Classification with Localization xác định vị trí của một đối tƣợng trong hình, bài toán detection hay Object Detection sẽ xác định vị trí tất cả các đối tƣợng có trong bức hình Theo đó Input của bài toán này là ảnh và danh sách các đối tƣợng quan tâm Đầu ra của bài toán là các vị trí của các đối tƣợng kèm theo nhãn của đối tƣợng đó.
Hình 2.2 So sánh đầu ra của bài toán classification với localization và detection [46] Object Detection đã có rất nhiều ứng dụng khác nhau: Image Annotation (Chú thích hình ảnh), Face Detection (Phát hiện khuôn mặt), License Plate Identification (Nhận diện biển số xe), People Counting (Đếm số lượng người),…
Nhƣ vậy xét trên một khía cạnh nào đó ta có thể nhận xét rằng bài toán Classification là tiền đề của bài toán Localization và thông tin của bài toán Localization cũng rất hữu ích cho bài toán Detection Để phân biệt các bài toán khác nhau ta có thể xác định dựa trên việc kết quả của bài toán đang trả lời các câu hỏi gì.
Hình 2.3 Phân biết bài toán classification, object localization, object detection [46]
Với bài toán phát hiện đối tượng, ngày nay có nhiều phương pháp học sâu (deep learning) đƣợc thiết kế để giải quyết bài toán.
Lịch sử hình thành, phát triển và đặc điểm cấu trúc của các thuật toán object detection bao gồm 2 nhóm chính:
● Họ các mô hình R-CNN (Region-Based Convolutional Neural Networks) giải
● Họ các mô hình YoLo (You Only Look Once), là một nhóm kỷ thuật thứ hai để nhận dạng đối tƣợng đƣợc thiết kế để nhận diện vật thể real time.
2.1.2 Thuật toán faster R-CNN trong phát hiện đối tượng
R-CNN đƣợc giới thiệu lần đầu vào 2014 bởi Ross Girshick và các cộng sự ở UC Berkeley một trong những trung tâm nghiên cứu AI hàng đầu thế giới trong bài báo Rich feature hierarchies for accurate object detection and semantic segmentation.
Nó có thể là một trong những ứng dụng nền móng đầu tiên của mạng nơ-ron tích chập đối với vấn đề định vị, phát hiện và phân đoạn đối tƣợng Cách tiếp cận đã đƣợc chứng minh trên các bộ dữ liệu điểm chuẩn, đạt đƣợc kết quả tốt nhất trên bộ dữ liệu
VOC-2012 [15] và bộ dữ liệu phát hiện đối tƣợng ILSVRC-2013 [16] gồm 200 lớp. Kiến trúc của R-CNN gồm 3 thành phần đó là:
● Vùng đề xuất hình ảnh (Region proposal): Có tác dụng tạo và trích xuất các vùng đề xuất chứa vật thể đƣợc bao bởi các bounding box.
● Trích lọc đặc trƣng (Feature Extractor): Trích xuất các đặc trƣng giúp nhận diện hình ảnh từ các region proposal thông qua các mạng deep convolutional neural network.
● Phân loại (classifier): Dựa vào input là các features ở phần trước để phân loại hình ảnh chứa trong region proposal về đúng nhãn.
Kiến trúc của mô hình được mô tả trong biểu đồ bên dưới:
Hình 2.4 Sơ đồ pipeline xử lý trong mô hình mạng R-CNN [17]
Có thể nhận thấy các hình ảnh con được trích xuất tại bước hai với số lượng rất lớn (khoảng 2000 region proposals) Tiếp theo đó áp dụng một mạng deep CNN để tính toán các feature tại bước ba và trả ra kết quả dự báo nhãn ở bước thứ tư như một tác vụ phân loại ảnh thông thường.
Một kỷ thuật đƣợc sử dụng để đề xuất các region proposal hoặc các bounding box chứa các đối tƣợng tiềm năng trong hình ảnh đƣợc gọi là “selective search” Thuật toán Selective search có đầu vào là ảnh màu, đầu ra sẽ là khoảng 2000 region proposal (bounding box) mà có khả năng chứa các đối tƣợng. Đầu tiên ảnh đƣợc segment qua thuật toán Graph Based Image Segmentation, dựa vào màu sắc của từng pixel mà gắn nhãn các pixel đó chung một đối tƣợng, tô màu giống nhau cho các pixel có cùng giá trị.
Hình 2.5 Đầu ra sau khi thực hiện Graph Based Image Segmentation [18]
Nhận xét: Ta không thể dùng mỗi màu trong output để làm một region proposal đƣợc vì:
● Mỗi đối tƣợng trong ảnh có thể chứa nhiều hơn một màu vì một đối tƣợng thường có nhiều bộ phận với màu sắc khác nhau.
● Các đối tƣợng bị che mất một phần.
Cơ sở lý thuyết cho bài toán nhận dạng ký tự tiếng Việt
2.2.1 Nhận dạng ký tự quang học
Nhận dạng ký tự quang học (OCR – Optical Character Recognition) dùng để xử lý và chuyển đổi tài liệu dạng ảnh (các ảnh là đầu ra của máy scanner, máy ảnh, filePDF…) thành tài liệu có thể biên tập, chỉnh sửa đƣợc (file word …) Nhận diện quang học sử dụng công nghệ xử lý ngôn ngữ tự nhiên (NLP), giúp nhận dạng các chữ cái và ký tự và sau đó sao chép chúng theo định dạng và thứ tự đƣợc viết.
Công nghệ nhận diện ký tự quang học đƣợc hình thành từ lĩnh nghiên cứu về nhận dạng mẫu, trí tuệ nhân tạo và machine vision Trước khi OCR và AI (Artificial intelligence) kết hợp với nhau, nhận dạng quang học đã đƣợc sử dụng rộng rãi OCR giúp cho người dùng trong việc tự động hóa các văn bản, tài liệu.
Ngày nay OCR vẫn đƣợc sử dụng để chuyển đổi các văn bản viết tay hoặc in thành văn bản mềm thể chỉnh sửa Chất lƣợng OCR đã đƣợc cải thiện đáng kể từ khi ra đời đến nay bởi nhu cầu sử dụng của khách hàng ngày càng lớn yêu cầu những thay đổi phù hợp với thực tiễn để tăng hiệu quả trích xuất văn bản.
Hình 2.33 Mô hình kiến trúc AttentionOCR
AttentionOCR là sự kết hợp giữa mô hình CNN (convolutional neural network) và mô hình Attention sequence to sequence (seq2seq) AttentionOCR sử dụng những tầngCNN để trích xuất các đặc trƣng của bức ảnh Sau đó sẽ dùng một Attention-mask để biến đổi các đặc trƣng (feature maps) thành một vector đầu vào của mạng LSTM(Long Short Term Memory) sau khi đã tập trung sự chú ý vào một vùng ảnh nào đó.Một ảnh qua mô hình CNN, sẽ cho một feature maps có kích thước channelxheightxwidth, feature maps này sẽ trở thành đầu vào cho mô hình LSTM, tuy nhiên, mô hình LSTM chỉ nhận chỉ nhận đầu vào có kích thước là hiddenxtime_step.
Một cách đơn giản và hợp lý là 2 chiều cuối cùng heightxwidth của feature maps sẽ được duỗi thẳng Feature maps lúc này sẽ có kích thước phù hợp với yêu cầu của mô hình LSTM.
Feature maps của mô hình CNN sau khi đƣợc flatten thì đƣợc truyền vào làm input của mô hình LSTM, tại mỗi thời điểm, mô hình LSTM cần dự đoán từ tiếp theo trong ảnh là gì.
Hình 2.34 Cấu tạo feature maps
2.2.2.1 Trích xuất đặc trưng sử dụng CNN (Convolutional Neural Network)
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng đƣợc những hệ thống thông minh với độ chính xác cao nhất hiện nay.
Mạng Nơ-ron Tích Chập có kiến trúc khác với Mạng Nơ-ron thông thường Mạng Nơ-ron bình thường chuyển đổi đầu vào thông qua hàng loạt các tầng ẩn Mỗi tầng là một tập các nơ-ron và các tầng được liên kết đầy đủ với các nơ-ron ở tầng trước đó.
Và ở tầng cuối cùng sẽ là tầng kết quả đại diện cho dự đoán của mạng Mạng Nơ-ronTích Chập đƣợc chia thành 3 chiều: rộng, cao, và sâu Kế đên, các nơ ron trong mạng không liên kết hoàn toàn với toàn bộ nơ-ron kế đến nhƣng chỉ liên kết tới một vùng nhỏ Cuối cùng, một tầng đầu ra đƣợc tối giản thành véc-tơ của giá trị xác suất.
CNNs gồm hai thành phần:
● Phần tầng ẩn hay phần rút trích đặc trƣng: trong phần này, mạng sẽ tiến hành tính toán hàng loạt phép tích chập và phép hợp nhất (pooling) để phát hiện các đặc trƣng Ví dụ: nếu ta có hình ảnh con ngựa vằn, thì trong phần này mạng sẽ nhận diện các sọc vằn, hai tai, và bốn chân của nó.
● Phần phân lớp: tại phần này, một lớp với các liên kết đầy đủ sẽ đóng vai trò như một bộ phân lớp các đặc trưng đã rút trích được trước đó Tầng này sẽ đƣa ra xác suất của một đối tƣợng trong hình.
Hình 2.36 Mô hình kiến trúc CNN [28]
Trong AttentionOCR chỉ sử dụng CNN để trích xuất đặc trƣng của ảnh đầu vào nên CNN chỉ sử dụng các lớp ở tầng ẩn bao gồm các lớp chính là lớp Convolution và lớp Pooling.
*Các lớp chính của mạng nơ-ron tích chập
Các lớp nơ-ron tích chập trong kiến trúc này có các nơ-ron được tổ chức dưới dạng khối 3 chiều ngang, dọc, sâu (width, height, depth) Điều này cho phép trong lúc tính toán thì các nơ-ron này sẽ tính toán với một phần nhỏ của lớp nơ-ron trước thay vì toàn bộ nhƣ dạng fully-connected Một kiến trúc mạng CNN phổ thông sẽ bao gồm chuỗi các lớp nơ-ron xếp chồng lên nhau, 3 loại lớp nơ-ron chính để tạo nên mạng là: Lớp Convolution, lớp Pooling, và lớp Fully-connected (lớp Fully-connected chính là các lớp nơ-ron nhƣ trong các kiến trúc mạng Nơ-ron truyền thống).
Lớp Convolution (lớp chập): Tính toán đầu ra của nơ-ron dựa vào kết nối của đầu vào thông qua các filter Qua nhiều lớp Convolution ảnh đầu có xu hướng giảm kích thước (height & width) và tăng chiều sâu (depth hay channels).
Bộ lọc (filters): Bộ lọc là nơ-ron của layer Đầu vào của bộ lọc là các trọng số của input và giá trị đầu ra nhƣ một nơ-ron Nếu có 1 lớp chập thì đầu vào sẽ là giá trị các pixels, nếu kiến trúc mạng có chiều sâu lớn (nhiều hơn một lớp chập), thì lớp chập sẽ lấy đầu vào từ bản đồ đặc trưng (feature map) trước đó Số lượng bộ lọc chính là số lƣợng kênh màu output sau khi đi qua lớp chập Các bộ lọc này chính là điểm khác biệt nhất của mạng CNN khi so sánh với kiến trúc ANN truyền thống Khi tính toán các bộ lọc này thực hiện phép tích chập với một phần nhỏ của ảnh đầu vào (bằng với kích thước bộ lọc), thực hiện trượt bộ lọc trên ảnh đầu vào ta thu được đầu ra là bản đồ đặc trƣng.
Cơ sở lý thuyết cho bài toán trích xuất thông tin trong văn bản từ ảnh
2.3.1 Bài toán trích xuất thông tin trong văn bản từ ảnh
Trích xuất thông tin (IE: Information extraction) là quá trình phân tích, xử lý dữ liệu để trích xuất các thông tin hữu ích, có cấu trúc từ nguồn thông tin phi cấu trúc hoặc bán cấu trúc Thông thường quá trình này bao gồm ba bước chính là: xác định thực thể (NER: Named Entity Recognition), xác định mối liên hệ (Relation Extraction) và trích xuất sự kiện (Event Extraction)
Bài toán trích xuất thông tin không phải là một bài toán mới nhƣng đúng là một thử thách bởi vì trong thực tế thì các văn bản trên thực tế có cấu trúc và thành phần khác nhau, các thành phần ngữ nghĩa không đƣợc trực quan và có sự nhập nhằng giữa các trường thông tin trong văn bản Để có thể trích xuất được những thông tin cần thiết trong văn bản chúng ta cần đòi hỏi một mô hình có thể hiểu đƣợc ngữ nghĩa, cấu trúc của chúng trong văn bản và cuối cùng là phân loại chúng.
Hiện này, có rất nhiều mô hình với các hướng tiếp cận khác nhau trong bài toán này Hướng tiếp cận đơn giản nhất đó là sử dụng Text Classification để phân loại ra những thông tin nào thuộc lớp nào, cách giải quyết này có thể đơn giản và tốt trên nhưng dạng văn bản có sự dạng thấp và phân biệt rõ rệt giữa các trường thông tin, và đặc biệt là cấu trúc văn bản đó đơn giản.
Hình 2.49 Các loại cấu trúc và phương thức cho bài toán trích xuất thông tin
Trên Hình 2.51 là ba hướng tiếp cận cho bài toán này.
● Phương thức 2.51a sử dụng đầu vào là text và box chứa text đó và dùng các công thức, mẫu chuẩn để giải quyết bài toán, cuối cùng là đƣa ra dự đoán cho thực thể đó
● Phương thức 2.51b sử dụng đầu vào là text và dùng một mô hình Encoder gồm các layer BiLSTM và Decoder sử dụng layer CRF để dự đoán thực thể đó. (Phương thức này như mình đã nói ở trên thì đơn giản là bài toán Text
● Phương thức 2.51c sử dụng đầu vào là text và box chứa text đó đi qua một mô hình Encoder gồm các layer BiLSTM sau đó đƣa qua một mô hình Graph gọi là GCN cuối cùng đƣa qua mạng Decoder bao gồm cả BiLSTM và CRF để dự đoán ra thực thể đó
Với bài toán thứ ba thực hiện trong nghiên cứu là trích xuất thông tin thì đầu vào là các textbox đã được thu thập từ hai bài toán trước, bao gồm vị trí của các textbox (text detection) và nội dung thông tin trong textbox đó (text OCR) Đầu ra sẽ dự đoán textbox đó thuộc trường thông tin gì.
Các phương pháp a và b đều có những hạn chế khi ứng dụng vào văn bản không có mẫu xác định.
● Template-based (Dựa vào mẫu văn bản nhất định, điển hình là phương pháp theo Hình 2.51a): đơn giản là việc áp dụng các mẫu luật nhất định, đƣợc định nghĩa từ trước lên các văn bản có cấu trúc cố định, không thay đổi nhiều Tiếp đó, sử dụng các phương pháp về từ khóa để xác định các trường thông tin tương ứng Tuy nhiên, nhược điểm lớn nhất của phương pháp này là chúng ta phải định nghĩa từng luật riêng ứng với từng mẫu văn bản, không có khả năng ứng dụng sang dạng mẫu văn bản mới và bị phụ thuộc hoàn toàn vào hiểu biết về từ khóa của từng người.
● NLP-based (Dựa vào phân tích ngôn ngữ tự nhiên, điển hình là phương pháp theo Hình 2.51b): với phương pháp này, các nội dung thu được từ textbox có thể đƣa vào 1 mô hình text classification hoặc NER để tiến hành phân loại hoặc xác định các thực thể thuộc từng trường thông tin tương ứng Ưu điểm của phương pháp này so với Template-based là có khả năng đáp ứng được với dữ liệu mới Tuy nhiên, một số nhƣợc điểm có thể kể tới nhƣ: bị phụ thuộc rất nhiều vào cấu trúc của mẫu văn bản, hạn chế với dữ liệu được biểu diễn dưới dạng bảng, hoàn toàn không sử dụng các thông tin về vị trí của textbox, cho dù các thông tin về cấu trúc nhƣ vậy cũng sẽ giúp ích rất nhiều trong việc xác định các trường tương ứng.
Việc sử dụng phương pháp graph-based (Dựa vào cấu trúc biểu đồ giữa các textbox, điển hình là phương pháp theo Hình 2.51c) có nhiều ưu điểm hơn hai phương pháp trên Phương pháp này sẽ tận dụng tất cả tính chất mà textbox có bao gồm thông tin vị trí và nội dung Mỗi textbox sẽ đƣợc coi là một node (một nút trong đồ thị), các node này sẽ liên kết với nhau tạo nên một biểu đồ gọi là graph Các node có kết nối với nhau cũng sẽ có mối liên hệ cao hơn các node xa hơn trong đồ thị Các thông tin về vị trí/tọa độ của nút trên ảnh cũng sẽ giúp mô hình dễ dàng phân biệt các trường thông tin hơn Ví dụ như thông tin về tên của siêu thị/cửa hàng thực phẩm thường được ghi ngay trên đầu của hóa đơn.
Trong nghiên cứu này sẽ tập chung đề cập đến phương pháp sử dụng mạng Graph Convolutional Network (viết tắt là GCN) để trích xuất thông tin trong hóa đơn tiếng Việt Tiếp theo nghiên cứu sẽ trình bày các lý thuyết liên quan đến mô hình GCN này.
2.3.2Một số lý thuyết đồ thị cơ bản
Một đồ thị được biểu diễn dưới dạng G = (V, E) với:
● G là đồ thị đƣợc cấu thành
● V là tập hợp các nút của đồ thị (đƣợc gọi là: vertices hay node)
● E là tập hợp các cạnh kết nối các nút của đồ thị (đƣợc gọi là edge)
● e ij = (v i , v j ) ∈ E là biểu diễn các cạnh e ∈ E nối từ nút v i tới nút v j của đồ thị
Kí hiệu N(v) = u ∈ V∣(v,u) ∈ E là các nút kề u (nút làng giềng có chung cạnh) với nút v
Các thuật ngữ sau là tương đương nhau khi biểu diễn các bài toán về đồ thị:
● G(V, E) ~ System (Object, Interaction) ~ đồ thị biểu diễn một đối tƣợng
● System ~ Network, Graph ~ hệ thống, mô hình
● Object ~ Node, vertices ~ nút của đồ thị
● Interaction ~ Link, Edges ~ cạnh, đường nối giữa các nút trong đồ thị Một số định nghĩ khác:
● Adjacency matrix (hay được gọi là ma trận kề) A, là một ma trận vuông có kích thước nxn∈ (với n là tổng số nút của đồ thị)
● Adjacency matrix (A) cũng đƣợc gọi là một weighted-matrix, thể hiện trọng số các cạnh của đồ thị Với Adjacency matrix thì các cạnh có trọng số nhƣ nhau nhƣng có thể thay đổi lại tùy bài toán và dữ liệu
● Degree matrix (hay được gọi là ma trận bậc) D, là một ma trận đường chéo vuông nxn, chứa thông tin bậc của mỗi đỉnh
● Dii= tổng các Aij trong đó i = [1,n]
● Chú ý rằng với đồ thị có hướng (direct matrix) thì bậc của từng nút chỉ tính các cạnh nối có chiều tới nút đó
● Identity matrix (hay được gọi là ma trận đơn vị) I, là một ma trận đường chéo nxn, với các giá trên đường chéo chính bằng 1, còn lại bằng
● Laplacian matrix hay ma trận dẫn nạp L, với L = D - AL=D−A
● Directed graph và undirect graph
● Undirect graph hay ma trận vô hướng, khi cạnh nối giữa 2 đỉnh i và j là nhƣ nhau, hay eij=eji
● Direct graph hay ma trận có hướng, có chiều xác định từ đỉnh v i tới v j và tồn tại liên kết cạnh eij
● Self-loop: nút gồm cạnh nối từ nó tới chính nó
● Multi-graph: là các đồ thị với các cặp đỉnh kề nhau có nhiều hơn 1 cạnh nối liên kết giữa chúng
● Homogeneous graph: có thể hiểu là các đồ thị đơn, khi các nút và cạnh của đồ thị chỉ biểu diễn duy nhất một đối tƣợng, ví dụ nút biểu diễn con người và cạnh biểu diễn những người là bạn bè với nhau
● Heterogeneous graph: hay multi-model graph biểu diễn đa đồ thị, là các đồ thị có nút và cạnh thể hiện nhiều mối liên kết giữa các đối tƣợng với nhau
2.3.3 Một số bài toán khi sử dụng Graph Convolutional
Link Prediction là bài toán dự đoán xem hai nút trong mạng có mối liên hệ hoặc có cạnh nối mới giữa hai nút hay không.
Hình 2.51 Ví dụ minh họa bài toán Link Prediction [50] Đầu vào là một đồ thị với một số nút đã đƣợc liên kết, nhiệm vụ của bài toán link prediction là tìm các các nút chƣa liên kết có đƣợc liên kết với nhau hay không Với ví dụ trên hình 2.51, điểm nút xét là Sophia, Sophia đã đƣợc liên kết với Maria và Maya, vì vậy cần xác định xem Sophia có đƣợc liên kết với Adam và Davit không. b, Node classification
Kết luận chương
Chương 2 đã trình bày cơ sở lý thuyết để giải quyết ba bài toán, bao gồm: phát hiện chữ viết, nhận diện ký tự và trích xuất thông tin Với bài toán phát hiện chữ viết tiếng Việt, chương 2 đã trình bày nhiệm vụ của bài toán, các giải quyết bài toán bằng sử dụng mô hình phát hiện đối tƣợng trong học sâu Các mô hình đƣợc trình bày theo lịch sử phát triển từ mô hình R-CNN đến Faster R-CNN, Cascade R-CNN và từ YoLov1 đến YoLov4 Với bài toán nhận diện ký tự, chương 2 trình bày lý thuyết hai mô hình AttentionOCR và TransformerOCR Bài toán cuối cùng là bài toán trích xuất thông tin, với bài toán này chương 2 đã trình bày về lý thuyết đồ thị nói chung và mô hình GCN (graph convolution network) nói riêng, trong phần này tác giả cũng đã trình bày cách xây dựng một đồ thị từ các đặc trƣng để trích xuất thông tin trong ảnh hóa đơn thanh toán.
THỬ NGHIỆM TRÍCH XUẤT THÔNG TIN TRONG HÓA ĐƠN TIẾNG VIỆT 62 3.1 Thử nghiệm phát hiện chữ viết viết với thuật toán Faster R-CNN, Cascade
Thiết lập các thông số cho mô hình Faster R-CNN và Cascade R-CNN
Hai mô hình Faster R-CNN và Cascade R-CNN cùng họ R-CNN nên sẽ có chung những thông số nhất định, vì vậy nghiên cứu sử dụng chung các thông số đó để thuận tiện trong việc huấn huyện và so sánh kết quả
3.1.1.1 Mô hình Convolution Neural Network để trích xuất đặc trưng ảnh Mô hình (Backbone) mà nghiên cứu sự dụng là mô hình ResNet 50
ResNet (Residual Network) đƣợc giới thiệu vào năm 2015 Hiện tại có một số biến thể của ResNet là ResNet 18, 34, 50, 101, 152 Với cái tên ResNet và theo sau là một số lớp nhất định Với thử nghiệm trong báo cáo sử dụng ResNet50 là mô hình ResNet gồm 50 lớp
Mạng ResNet sinh ra là để làm việc với hàng trăm hàng ngàn lớp tích chập Với mạng CNN thì khi có hàng nghìn lớp tích chập thì có thể xảy ra hiện tƣợng vanishing gradient dẫn đến học không tốt.
Giải pháp của ResNet đƣa ra là sử dụng kết nối tắt đồng nhất để xuyên qua một hay nhiều lớp Một khối kết nối tắt nhƣ vậy đƣợc gọi là Residual Block
Hình 3.1 Khối dƣ trong mạng ResNet
ResNet tương tự các mạng khác gồm có: convolution, pooling, activation, fully connected layer.
Hình 3.2 kiến trúc mạng VGG và ResNet [34]
Hình 3.1 biểu thị một khối dƣ trong mạng, xuất hiện một mũi tên nối từ đầu và cuối khối.
H(x) là giá trị dự đoán
F(x) là giá trị nhãn thật
Ta mong muốn rằng H(x) xấp xỉ bằng F(x)
H(x) đƣợc tạo ra từ F(x) + x sau đó qua hàm relu F(x) + X => relu
Hình bên trái của Hình 3.2 thể hiện VGG_19 sử dụng kernel 3×3 trên toàn bộ mạng.
Hình bên phải của Hình 3.2 thể hiện ResNet sử dụng kết nối tắt kết nối trực tiếp đầu vào của lớp (n) với (n+x) đƣợc hiển thị dạng mũi tên cong.
Hình 3.3 Cấu trúc mạng ResNet50 [34]
● Stage 1: Tích chập (Conv1) với 64 filters với shape (7×7), sử dụng stride (2,2), BatchNorm, MaxPooling (3,3)
● Stage 2: Convolutional block, sử dụng 3 filter với size 64x64x256 Có 2 Identity blocks với filter size 64x64x256, f=3
● Stage 3: Convolutional block, sử dụng 3 filter size 128x128x512, f=3, s=2 Có
3 Identity blocks với filter size 128x128x512, f=3.
● Stage 4: Convolutional sử dụng 3 filter size 256x256x1024, f=3, s=2 Có 5 Identity blocks với filter size 256x256x1024, f=3.
● Stage 5: Convolutional sử dụng 3 filter size 512x512x2048, f=3, s=2 Có 2 Identity blocks với filter size 512x512x2048, f=3.
● 2D AVG Pooling sử dụng kích thước (2,2)
● Fully Connected (Dense): sử dụng softmax activation.
3.1.1.2 Một số tham số huấn luyện khác
Bảng 3.1 Các thông số sử dụng trong quá trình huấn luyện Faster R-CNN và cascade R-
Tham số Giái trị number classes 2 image scales 1300x800 pixel interval_evaluation 12 metric_evaluation mAP type_optimizer SGD learning_rate_optimizer 0.0025 momentum _optimizer 0.9 weight_decay_optimizer 0.0001 batchsize 1 epoch 24
Ngoài ra mục tiêu bài toán là phát hiện ra các dòng chữ trong văn bản, do chỉ có 1 đối tƣợng cần phát hiện nên ƣu tiên độ chính xác trong vẽ bounding box, đặt loss_classify/loss_box = ẵ.
Thiết lập các thông số cho mô hình YoLov4
Mô hình YoLov4 sẽ được huấn luyện trên môi trường Darknet, mô trường mở được sử dụng và chỉnh sửa Nghiên cứu sẽ sử dụng môi trường này để huấn luyện mô hình phát hiện chữ viết Để phù hợp với bài toán, một số thông số sẽ đƣợc chỉnh sửa cho phù hợp, các thông số chỉnh sửa như bảng dưới
Bảng 3.2 Các thông số sử dụng trong quá trình huấn luyện YoLov4
Tham số Giái trị classes 1 max_batches 6000 step 4800 filters 18 width 832 heigh 832
Xử lý dữ liệu cho bài toán phát hiện chữ viết
Tiến hành thu thập dữ liệu là các hóa đơn thanh toán trên internet thu đƣợc 240 ảnh, với 48 mẫu hóa đơn khác nhau, bao gồm nhiều thể loại nhƣ hóa đơn chuẩn, hóa đơn có địa chỉ mua hàng dài, số tiền lớn, tên công ty bán hàng dài, tên công ty mua hàng dài, tên ngân hàng công ty bán hàng dài, tên ngân hàng người mua dài, dữ liệu nhiều sản phẩm, tên sản phẩm dài, ngoài ra là các hóa đơn của doanh nghiệp, trường học hay ngân hàng, khách sạn.
Hình 3.4 Một số hóa đơn thu thập đƣợc
Ngoài ra để tăng tính đa dạng cho dữ liệu, tác giả đã tự xây dựng thêm các hóa đơn sử dụng chữ viết tay, số lƣợng bao gồm 144 ảnh, với 48 mẫu khác nhau, thu thập chữ viết của 20 người bao gồm nhiều lứa tuổi và giới tính khác nhau.
Hình 3.5 Một số hóa đơn sử dụng chữ viết tay
Mỗi ảnh chữ in hay chữ viết tay chứa khoảng 40-50 box text, các box text đa dạng về độ dài ký tự, loại ký tự, kiểu chữ, kích thước, màu sắc,
Tổng kết số lượng dữ liệu dùng cho thử nghiệm được thể hiện dưới bảng sau. Trong quá trình thử nghiệm số lƣợng ảnh để huấn luyện và kiểm thử sẽ đƣợc chia ngẫu nhiên theo tỉ lệ 4:1 (4 training: 1 testing)
Bảng 3.3 Số lƣợng dữ liệu huấn luyện, kiểm thử Ảnh Huấn luyện (ảnh) Kiểm thử (ảnh)
Tổng 307 77 b Tiền xử lý dữ liệu
Tiền xử lý dữ liệu chính là công đoạn label cho dữ liệu, đây là công đoạn mất Để label dữ liệu, tác giả sử dụng phần mềm LabelImg LabelImg là tool đƣợc công khai sử dụng, là phần mềm gán nhãn cho hình ảnh, phục vụ cho mục đích đào tạo các mô hình Deep learning.
Do chỉ có 1 đối tƣợng cần phát hiện là chữ viết nên chỉ cần label 1 nhãn.
Hình 3.6 Hình ảnh đƣợc gán nhãn với phần mềm labelImg
Thử nghiệm nhận dạng ký tự quang học với mô hình AttentionOCR và TransformerOCR
3.2.1 Thiết lập thông số cho mô hình AttentionOCR và TransformerOCR
3.2.1.1 Mô hình Convolution Neural Network để trích xuất đặc trưng ảnh
Mô hình CNN nhận đầu vào là một ảnh, thông thường có kích thước với chiều dài lớn hơn nhiều so với chiều rộng, do đó việc điều chỉnh tham số stride size của tầng pooling là cực kì quan trọng. Đối với mô hình phức tạp khác nhƣ resnet việc điều chỉnh tham số pooling size hơi phức tạp do một ảnh bị downsampling không chỉ bởi tầng pooling mà còn tại các tầng convolution khác Mặt khác với mô hình VGG, việc thay đổi pooling size khá dễ do kiến trúc đơn giản nên với mô hình CNN, nghiên cứu chọn lựa mô hình VGG.
VGGNet đƣợc công bố năm 2014 tại cuộc thi ILSVRC và đạt kết quả tốt nhất tại thời điểm đó [10] Mô hình VGG đƣợc thiết kế sâu hơn các mạng nơ-ron tích chập trước đó Thứ tự các phép tích chập có sự đổi mới Trước đó, các mạng nơ-ron tích chập đều sử dụng Conv-Maxpooling trong khi đó, VGG sử dụng một chuỗi tích chập liên tiếp Conv-Conv-Conv ở tầng giữa và cuối của kiến trúc Điều này làm cho việc tính toán trở nên lâu hơn nhƣng những đặc trƣng sẽ đƣợc giữ lại nhiều hơn so với việc sử dụng Maxpooling sau mỗi lớp tích chập.
Kiến trúc của VGG-16 gồm 16 lớp: 13 lớp nơ-ron tích chập (2 tầng conv-conv, 3 tầng conv-conv-conv) có ma trận lọc có kích thước 3x3, sau mỗi lớp tích chập là maxpooling, giảm chiều không gian xuống 2 lần mỗi chiều và 3 lớp kết nối đầy đủ.
3.2.1.2 Một số tham số huấn luyện khác
Trong quá trình huấn luyện đã thiết lập một số tham số nhƣ sau: (cho cả huấn luyện AttentionOCR và TransformerOCR)
Bảng 3.4 Một số tham số huấn luyện cho mô hình OCR
Mô hình Tham số Giá trị
CNN image_height 64 image_max_width 512 image_min_width 64
Attention decoder_embedded 256 decoder_hidden 256 encoder_hidden 256 dropout 0.1
Transformer max_seq_length 1024 num_decoder_layers 6 num_encoder_layers 6 dropout 0.1
3.2.2 Xử lý dữ liệu cho bài toán nhận dạng ký tự quang học
Với phần thu thập dữ liệu, dữ liệu đã thu thập cho bài toán thứ nhất là phát hiện chữ viết sẽ đƣợc dùng chung cho cả ba bài toán cũng nhƣ bài toán lớn Phần tiền xử lý sẽ là phần chuẩn bị dữ liệu để huấn luyện mô hình Đối với gán nhãn dữ liệu OCR, quá trình hoàn toàn thủ công khi phải đánh lại các ký tự, chữ viết trong ảnh Sau quá trình nhận diện chữ ở bước một (đã trình bày trong báo cáo chuyên đề 1), thu đƣợc các box ảnh chứa nội dung text Chỉ cần gán nhãn các box ảnh đó để huấn luyện OCR.
Hình 3.8 Một số hình ảnh gán nhãn cho ảnh chữ in
Hình 3.9 Một số hình ảnh gán nhãn cho ảnh chữ viết tay Để gia tăng dữ liệu, tăng hiệu quả huấn luyện, nghiên cứu đã sử dụng thêm phương pháp tăng cường dữ liệu (OCR Data Augmentation) như Xoay hay dịch chuyển một ít bức ảnh, làm mờ, hay cắt bỏ ngẫu nhiên một vài ký tự trong ảnh.
Tổng số dữ liệu sau quá trình gán nhãn thu được như bảng dưới đây, tác giả cũng tiến hành chia dữ liệu huấn luyện, đánh giá theo tỉ lệ 4:1.
Bảng 3.5 Số lƣợng dữ liệu huấn luyện, kiểm thử Ảnh Huấn luyện (ảnh) Kiểm thử (ảnh)
Thử nghiệm trích xuất thông tin trong hóa đơn tiếng Việt sử dụng mô hình
3.3.1 Thiết lập thông số cho mô hình Graph Convolutional Network *
Thiết lập đặc trưng nút cho mô hình Graph Convolutional Network
Từ các textbox xác định được từ hai bước trước là nhận diện chữ ta được vị trí của các textbox đặc trưng bởi 4 giá trị bao gồm (xmin, ymin, xmax, ymax) và bước tiếp theo là OCR ta đƣợc nội dung của textbox và đƣợc chuyển hóa thành vertor sử dụng mô hình Word2Vec.
Hai dữ liệu trên sẽ đƣợc tổng hợp để tạo nên đặc trƣng nút bao gồm:
Tính chất text (bao gồm chữ cái hay chữ số)
* Thiết lập đặc trưng cạnh cho mô hình Graph Convolutional Network
Với các textbox đƣợc xác định vị trí bởi hai chiều x và y, từ hai chiều này nếu có x hoặc y của hai textbox chồng lên nhau thì ta coi là hai textbox đó có liên kết cạnh
Hình 3.10 Ví dụ minh họa về liên kết cạnh
* Thiết lập thông số huấn luyện cho mô hình Graph Convolutional Network
Bài toán trích xuất thông tin trong hóa đơn sẽ trích xuất 16 trường thông tin bao gồm:
6 mã số thuế công ty gửi
7 địa chỉ công ty gửi
9 tài khoản ngân hàng công ty gửi
12 mã số thuế công ty nhận
13 địa chỉ công ty nhận
14 tài khoản ngân hàng công ty nhận
15 tổng giá trị hóa đơn
16 thuế giá trị gia tăng
Các trường thông tin trên sẽ là 16 nhãn trong mô hình phân loại và thêm một nhãn khác chỉ tất cả các textbox còn lại.
Các thông số huấn luyện khác được thể hiện ở bảng dưới đây
Bảng 3.6 Một số tham số huấn luyện cho mô hình GCN
Tham số Giái trị number classes 17 learning rate 0.0001 drop out 0.4 batchsize 1 weight_decay 0.0001 epoch 80
3.3.2 Xử lý dữ liệu cho bài toán trích xuất thông tin
Hình 3.11 Ví dụ về dạng dữ liệu nút
Với phần thu thập dữ liệu, dữ liệu đã thu thập cho bài toán thứ nhất là phát hiện chữ viết sẽ đƣợc dùng chung cho cả ba bài toán cũng nhƣ bài toán lớn Phần tiền xử lý sẽ là phần chuẩn bị dữ liệu để huấn luyện mô hình Đối với dữ liệu sử dụng để huấn luyện cho mô hình GCN, mỗi dữ liệu cần chuẩn bị hai dạng, bao gồm: nút và cạnh (chính là hai thành phần của đồ thị) Từ kết quả hai bài toán trước, ta được mỗi textbox gắn với một chỉ số nhất định Việc tiền xử lý dữ liệu cho việc huấn luyện mô hình chính là việc gắn cho nhãn cho các textbox và xác định sự liên kết giữa các textbox với nhau
Dạng dữ liệu nút là việc gắn nhãn thủ công xem chỉ số của textbox nào thuộc nhãn nào và dạng dữ liệu cạnh là việc kiểm tra xem các textbox có sự liên kết không và một textbox sẽ đƣợc liên kết với bao nhiêu textbox khác.
Ví dụ minh họa cho việc tiền xử lý dữ liệu huấn luyện đƣợc miêu tả nhƣ Hình 3.11 và Hình 3.12
Mỗi dòng dữ liệu là các giá trị của một nút hay chính là một textbox bao gồm:
xmin: tọa độ theo trục x của điểm trên cùng bên trái của textbox
y min : tọa độ theo trục y của điểm trên cùng bên trái của textbox
xmax: tọa độ theo trục x của điểm dưới cùng bên phải của textbox
ymax: tọa độ theo trục y của điểm dưới cùng bên phải của textbox Các giá trị xmin, ymin, xmax, ymax đƣợc lấy từ đầu ra của bài toán bài toán thứ nhất
text: các từ có trong textbox (lấy đƣợc từ đầu ra của bài toán thứ hai)
nid: chỉ số của textbox đƣợc gán sau bài toàn thứ nhất
label: gán nhãn thủ công cho textbox
Mỗi dòng dữ liệu là các liên kết của một nút hay chính là một textbox bao gồm: Chỉ số của textbox, “[chỉ số của textbox1 có liên kết, chỉ số của textbox2 có liên kết]”
Một textbox chỉ có liên kết tối đa với bốn textbox khác, hay xung quanh một nút chỉ có tối đa bốn cạnh Hai textbox đƣợc coi là liên kết khi chồng lên nhau quá nửa kích thước textbox theo tọa độ x hoặc y, và chỉ lấy textbox gần nhất
Kết luận chương
Chương 3 đã trình bày cách thiết lập các mô hình được trình bày trong chương 2 để thử nghiệm huấn luyện dữ liệu giải quyết cho ba bài toán Bài toán thứ nhất là phát hiện chữ viết đƣợc thử nghiệm huấn luyện bằng ba mô hình Faster R-CNN, cascade R-CNN và YoLov4, bài toán thứ 2 là nhận diện ký tự đƣợc thử nghiệm với mô hình AttentionOCR và TransformerOCR và cuối cùng mô hình GCN đƣợc sử dụng trong bài toán cuối cùng-trích xuất thông tin Chương 3 cũng đã trình bày cách tác giả đã xây dựng một bộ dữ liệu chuẩn bao gồm các ảnh hóa đơn tiếng Việt bao gồm cả chữ in và chữ viết tay Hệ thống, đƣợc thử nghiệm trên bộ dữ liệu trên, bộ dữ liệu đƣợc chia làm hai phần theo tỉ lệ 8:2 để huấn luyện và kiểm thử Ngoài ra tác giác cũng trình bày cách tiền xử lý dữ liệu để các mô hình học sâu có thể huấn luyện.
KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ
Kết quả thử nghiệm và đánh giá cho bài toán phát hiện chữ viết
4.1.1 Các tham số sử dụng để đánh giá mô hình
Intersection over Union là chỉ số đánh giá đƣợc sử dụng để đo độ chính xác của phát hiện đối tượng trên tập dữ liệu cụ thể Chỉ số này thường được gặp trong các Object Detection Challenge IoU thường được đánh giá hiệu năng của các bộ phát hiện đối tƣợng Để áp dụng đƣợc IoU để đánh giá cần:
– Đường bao thực (ground-truth bounding box): là đường bao mà chúng ta gán cho vật thể bằng labelImg tool
– Đường bao dự đoán (predicted bounding box): là đường bao chúng ta sử dụng file Weights sau khi đào tạo để nhận dạng.
Dưới đây là ví dụ về đường bao thực và đường bao được dự đoán Đường bao được dự đoán được vẽ bằng màu vàng, trong khi đó đường bao thực được vẽ bằng màu xanh lá Mục tiêu ta là tính toán IoU (Intersection over Union) giữa hai đường bao
Tỵ lệ này là IoU (Intersection over union) là tỉ lệ giữa đo lường mức độ giao nhau giữa hai đường bao (thường là đường bao dự đoán và đường bao thực) để nhằm xác định hai khung hình có bị đè chồng lên nhau không Tỵ lệ này đƣợc tính dựa trên phần diện tích giao nhau giữa 2 đường bao với phần tổng diện tích giao nhau và không giao nhau giữa chúng.
Hình 4.2 Minh họa cách tính IoU [51]
Dự đoán (Precision) đo lường mức độ chính xác là dự đoán của mô hình tức là tỵ lệ phần trăm dự đoán của mô hình là chính xác.
“Recall” đo lường như thế nào tốt mô hình tìm thấy tất cả các mẫu tích cực Ví dụ: chúng ta có thể tìm thấy 80% các trường hợp tích cực có thể có trong các dự đoán
K hàng đầu của mô hình.
Mô tả toán học của precision và recall
Từ precision và recall đã đƣợc định nghĩa ở trên chúng ta cũng có thể đánh giá mô hình dựa trên việc thay đổi một ngƣỡng và quan sát giá trị của Precision và Recall. Khái niệm Area Under the Curve (AUC) cũng được định nghĩa tương tự Với Precision-Recall Curve, AUC còn có một tên khác là Average precision (AP).
Giả sử có ngƣỡng để tính precision và recall, với mỗi ngƣỡng cho một cặp giá trị precision, recall là = 1,2,…, Precision-Recall curve đƣợc vẽ bằng cách vẽ từng điểm có toạ độ ( ,) trên trục toạ độ và nối chúng với nhau AP đƣợc xác định bằng:
Và mAP là trung bình của AP đƣợc tính cho tất cả các lớp.
Ngoài các thông số đánh giá độ chính xác trên, thử nghiệm còn đánh giá thời gian training và tốc độ predict để đảm bảo vấn đề real time.
4.1.2 Kết quả và đánh giá kết quả
Kết quả các thông số về độ chính xác được thể hiện ở bảng dưới đây, trong đó sẽ đánh giá lần lƣợt về chữ in và chữ viết tay.
Bảng 4.1 Kết quả thử nghiệm các mô hình theo thông số IoU
Faster R-CNN Cascade R-CNN YoLov4
Bảng 4.2 Kết quả thử nghiệm các mô hình theo thông số Recall
Faster R-CNN Cascade R-CNN YoLov4
Bảng 4.3 Kết quả thử nghiệm các mô hình theo thông số mAP mAP (%) Thông số
Faster R-CNN Cascade R-CNN YoLov4
Nhận xét: Kết quả cao với tập kiểm thử, đặc biệt là với hóa đơn chữ in, với hóa đơn chữ viết tay kết quả kiểm thử thấp hơn Lý do chữ in chỉ có 1 kiểu trong khi chữ viết tay đa dạng hơn rất nhiều.
Về IoU lý do chữ viết tay có kết quả thấp do chữ viết tay không thẳng, các dấu câu viết xa chữ, các nét kéo của chữ „g‟ bị dài làm các bounding box không thể bao hết đƣợc.
Về kết quả thử nghiệm ba mô hình Faster R-CNN, Cascade R-CNN và YoLov4, ta có thể thấy với thông số IoU, cascade R-CNN cho kết quả vƣợt trội, lý do bởi kiến trúc phân tầng của cascade R-CNN điều này đã được trình bày chi tiết ở Chương 2. YoLov4 thể hiện sự yếu thế khi nhận dạng các đối tượng có kích thước nhỏ Hai thông số Recall và mAP thể hiện sự phân loại đối tƣợng, mà bài toán nhận diện chữ viết chỉ có một đối tƣợng là các textbox nên các thông số này đều cho kết quả cao, ba mô hình cũng cho kết quả tương đương nhau.
Từ kết quả trên, nghiên cứu sử dụng mô hình cascade R-CNN cho các bước tiếp theo để có thể đƣợc textbox bao quát hết các ký tự.
Hình 4.3 Kết quả nhận diện với hóa đơn chữ in
Hình 4.4 Kết quả nhận diện với hóa đơn chữ viết tay
Các trường hợp chữ in bị nhận sai như hình bên dưới, lý do: các chữ trong câu viết rời nên bị nhận diện thành hai box, các dòng chữ viết liền nhau bị nhận diện thành chung một box, và một số trường hợp đặc biệt khác.
Hình 4.5 Một số trường hợp nhận diện sai với hóa đơn chữ in
Các trường hợp chữ viết tay bị nhận sai và các bounding box không bao đúng là các trường hợp chữ viết không thẳng, các box thiết dấu câu, điều này sẽ ảnh hưởng đến kết quả nhận diện ký tự sau này.
Hình 4.6 Trường hợp nhận diện sai với hóa đơn chữ viết tay
Kết quả thử nghiệm và đánh giá cho bài toán nhận dạng ký tự
4.2.1 Các tham số sử dụng để đánh giá mô hình
● Độ chính xác ký tự
'aAàÀảẢãÃáÁạẠăĂằẰẳẲẵẴắẮặẶâÂầẦẩẨẫẪấẤậẬbBcCdDđĐeEèÈẻẺẽẼéÉẹẸêÊềỀể ỂễỄếẾệỆfFgGhHiIìÌỉỈĩĨíÍịỊjJkKlLmMnNoOòÕỏỎõÕóÓọỌôÔồỒổỔỗỖốỐộỘơƠờỜởỞ ỡỠớỚợỢpPqQrRsStTuUựÙủỦũŨỳệụỤƣƢừỪửỬữỮứỨựỰvVwWxXyYỳỲỵỴỷỶýíỳ ỲzZ0123456789!"#$%&''()*+,-./:;?@[\]^_`{|}~ ' có bao gồm cả khoảng trắng (dấu cách giữa các chữ).
Mỗi một ảnh sẽ coi là 1 câu, 1 câu có thể có nhiều ký tự hay chỉ 1 ký tự, câu coi là câu đúng là câu có kết quả đúng tất cả các ký tự trong câu.
4.2.2 Kết quả và đánh giá kết quả
Kết quả các thông số về độ chính xác được thể hiện ở bảng dưới đây, trong đó sẽ đánh giá lần lƣợt về chữ in và chữ viết tay.
Bảng 4.4 Kết quả kiểm thử của mô hình AttentionOCR
Thông số Accuracy sequence (%) Accuracy char (%)
Bảng 4.5 Kết quả kiểm thử của mô hình TransformerOCR
Thông số Accuracy sequence (%) Accuracy char (%)
Nhận xét: Kết quả cao với tập kiểm thử, đặc biệt là với hóa đơn chữ in, với hóa đơn chữ viết tay kết quả kiểm thử thấp hơn rất nhiều Lý do chữ in chỉ có 1 kiểu trong khi chữ viết tay đa dạng hơn rất nhiều Để cải tiến đƣợc kết quả chữ viết tay cần có bộ dữ liệu đủ lớn để huấn luyện, vì việc gắn nhãn dữ liệu mất rất nhiều thời gian, nên việc cải tiến sẽ đƣợc tiếp tục thực hiện sau.
Các hóa đơn chữ in rõ ràng, ảnh sắc nét, các chữ của các dòng không bị chồng nên nhau Với các ảnh chữ viết tay ảnh bị mờ (do quá trình tạo dữ liệu, tự chụp dữ liệu bằng điện thoại di động)
Accuracy char luôn cao hơn Accuracy sequence vì trong 1 câu thường có rất nhiều ký tự, mà khi sai 1 ký tự sẽ coi là sai cả câu.
Các trường hợp chữ in bị nhận sai thường là bị nhầm giữa chữ in hoa và chữ in thường Khi mà ảnh của chữ in hoa và in thường giống nhau, ví dụ “S” và “s”, “O” và
Về kết quả thử nghiệm hai mô hình AttentionOCR và TransformerOCR thì mô hình TransformerOCR cho kết quả tốt hơn nhƣng không đáng kể nhiều, lý do là ảnh thử nghiệm quá rõ ràng, sắc nét Với mô hình AttentionOCR sẽ hoạt động tốt hơn nếu đầu vào là từng ký tự nhƣng điều này là bất khả thi khi việc cắt ảnh để lấy từng ký tự hay việc nhận dạng các box chứ chỉ một ký tự là vô cùng khó khăn Nếu với các ảnh là các dòng chữ thì mô hình TransformerOCR đang hoạt động tốt hơn Nghiên cứu sẽ sử dụng kết quả của mô hình TransformerOCR cho các bước tiếp theo.
Các trường hợp chữ viết tay bị nhận sai và các ảnh bị mất dấu câu, các chữ viết tay ởcác dòng liền nhau nên khi qua mô hình nhận diện chữ, các box ảnh bị mất chữ, đặc biệt là chữ “g”, khi kéo xuống thấp, với chữ in thường cũng thường viết không được thẳng hàng Dấu câu của chữ viết tay thường không được viết rõ ràng nên rất khó để nhận ra.
Hình 4.7 Trường hợp nhận diện sai với hóa đơn chữ viết tay
Kết quả thử nghiệm và đánh giá cho bài toán nhận trích xuất thông tin và
và cho cả hệ thống
Với kết quả của bài toán thứ ba cũng sẽ đƣợc coi là kết quả của cả nghiên cứu Bài toán thứ ba lấy đầu ra của hai bài toán trước nên mọi kết quả đánh giá được trình bày dưới đây đều phụ thuộc vào kết quả của hai bài toán trước Vậy nên kết quả của nghiên cứu phụ thuộc vào cả ba bài toán (giai đoạn) nên chỉ cần cải tiến một trong ba sẽ cho kết quả tốt cho cả nghiên cứu.
4.3.1 Các tham số sử dụng để đánh giá mô hình
Có nhiều phương pháp để đánh giá một mô hình phân loại hoạt động tốt hay không, ví dụ nhƣ: sử dụng các thông số “độ chính xác” (accuracy), sự mất mát (loss)
… Bản chất của bài toán trích xuất thông tin cũng là bài toán phân loại nút trong đồ thị (node classification) nên trong nghiên cứu này sẽ sử dụng thông số độ chính xác để đánh giá hoạt động của ba mô hình Độ chính xác đƣợc xác định theo công thức sau:
Trong đó: n là số mẫu (sample) dự đoán đúng
N là tổng số mẫu (sample) đƣa vào dự đoán
Từ công thức tính độ chính xác trên, có thể tạm hiểu là mô hình mạng có độ chính xác càng cao thì càng tốt Các mẫu ở bài toán thứ ba trích xuất chính là các textbox. Cần nhận diện đúng nhãn của các textbox Để đánh giá hệ thống, nghiên cứu cũng sử dụng thông số độ chính xác nhƣ trên, nhƣng một mẫu đƣợc gọi là sự đoán đúng là mẫu đúng cả nhãn và toàn bộ ký tự bên trong trường thông tin (phải chính xác trong cả ba bài toán trước đó)
4.3.2 Kết quả và đánh giá kết quả a Kết quả mô hình trích xuất thông tin
Kết quả các thông số về độ chính xác của mô hình trích xuất thông tin sử dụng GCN được thể hiện ở bảng dưới đây, trong đó sẽ đánh giá lần lượt về chữ in và chữ viết tay.
Bảng 4.6 Kết quả kiểm thử của mô hình trích xuất thông tin
Nhận xét: Mô hình trích xuất thông tin cho độ chính xác cao lên đến 99%, tỉ lệ độ chính xác của chữ in và chữ viết tay không quá chênh lệch, vì trong bộ dữ liệu huấn luyện văn bản chữ biết tay có lẫn chữ in Từ kết quả trên ta có thể thấy nội dung của textbox quyết định không nhiều bằng bị trí của textbox khi mà chữ viết tay có độ chính xác nhận diện ký tự (OCR) không cao nhƣng kết quả chung khi phân loại, gắn nhãn cho textbox cho độ chính xác cao.
Các lỗi sai thường gặp là ở trường thông tin tổng số tiền, khi mà tổng số tiền thường được viết ở hai vị trí, một là cuối bảng, hai là sau cột thuế, nên có sự nhầm lẫn ở đây Lỗi sai khác nữa là sự nhầm lẫn giữa các trường mã form và số serial Vì hai trường này có tính chất giống nhau và nằm cạnh nhau trong hóa đơn. b Kết quả hệ thống trích xuất thông tin trong hóa đơn tiếng Việt
Kết quả các thông số về độ chính xác của cả hệ thống trích xuất thông tin đƣợc thể hiện ở bảng dưới đây, trong đó sẽ đánh giá lần lượt về chữ in và chữ viết tay Kết quả này sẽ đánh giá cả hệ thống từ đầu đến cuối, nên nó bị ảnh hưởng bở cả ba bài toán.
Bảng 4.7 Kết quả kiểm thử của hệ thống trích xuất thông tin trong hóa đơn tiếng Việt
Nhận xét: Từ kết quả trên cho thấy độ chính xác của hệ thống với chữ viết tay còn rất thấp, điều này đến từ việc nhận dạng ký tự (OCR) chƣa đƣợc chính xác Để nâng cao độ chính xác của mô hình cần cải thiện vào bước nhận dạng ký tự. Để tăng độ chính xác trong mô hình nhận diện ký tự cần có thêm nhiều dữ liệu để huấn luyện, mà như phần trước đã trình bày, việc gắn nhãn mất rất nhiều thời gian, nên nghiên cứu có phát triển một trang web đơn giản để có thể tải ảnh hóa đơn lên, sau đó trích xuất thông tin, nếu sai sẽ tiến hành chỉnh sửa thủ công và lấy đó là dữ liệu tiếp tục huấn luyện cho mô hình, để mô hình tăng độ chính xác.
Trang web cũng giúp người dùng có cái nhìn trực quan về hệ thống Trang web được minh họa như hình dưới đây.
Hình 4.8 Trang web trích xuất thông tin
Người dùng truy cập vào trang web theo đường link http://172.16.85.115:3000/ , màn hình truy cập thành công đƣợc hiển thị nhƣ Hình 4.8 Để tải ảnh hóa đơn tiếng Việt, người dùng chọn vào button [chọn file], tiến hành chọn một file ảnh có định dạng jpg hay png hoặc một file định dạng pdf Nếu file đƣợc chọn khác định dạng nêu trên, hệ thống sẽ thông báo và yêu cầu chọn lại file
Hệ thống tiến hành trích xuất thông tin và trả về kết quả như hình bên dưới.
Hình 4.9 Kết quả trả về sau khi trích xuất thông tin
Kết quả bao gồm hai phần, phần bên trái là hình ảnh hóa đơn với các trường thông tin đƣợc phát hiện và đƣợc bao quanh bằng màu xanh, với chỉ số id của nhãn màu đỏ nằm ở bên trái textbox Phần bên phải là bảng giá trị của các trường thông tin, trường thông nào không tìm đƣợc sẽ để trống.
Người dùng có thể tải hình ảnh hoặc kết quả trích xuất bằng cách chọn vào button [Tải hình ảnh] và [Tải file kết quả] Với file kết quả có thể tải về dưới dạng json để dễ dàng chỉnh sửa và sử dụng kết quả chỉnh sửa đó làm dữ liệu huấn luyện về sau.
Hình 4.10 Kết quả file json
Kết luận chương
Chương 4 đã trình bày kết quả thu được sau quá trình thử nghiệm các mô hình học sâu để giải quyết các bài toán Các tham số để đánh giá độ hiệu quả của mô hình cũng đƣợc đƣa ra Các kết quả đƣợc nêu ra kèm theo đánh giá để lựa chọn mô hình phù hợp cho hệ thống cũng như hướng cải tiến Tại chương này, tác giả cũng đã đưa ra thiết kế của trang web cho phép người dùng trực quan theo dõi kết quả trích xuất thông tin trong hóa đơn.