Một khối residual

Một phần của tài liệu Xây dựng mô hình nhận dạng khung và vùng văn bản trong tài liệu có bố cục cố định (Trang 44)

8 Tổng kết

2.26 Một khối residual

Xuất hiện một mũi tên cong xuất phát từ đầu và kết thúc tại cuối khối residual. Hay nói cách khác là sẽ bổ sung input x vào đầu ra của layer, hay chính là phép cộng mà ta thấy trong hình 2.26, việc này sẽ chống lại việc đạo hàm bằng 0, do vẫn còn cộng thêmx. Với H(x) là giá trị dự đoán, F(x)là giá trị thật (nhãn), chúng ta muốn H(x) bằng hoặc xấp xỉF(x). Việc F(x) có được từ x như sau:

x→weight1 →ReLU →weight2 (2.22) Giá trịH(x) có được bằng cách:

F(x) +x→ReLU (2.23)

12

2.6 Ngôn ngữ, thư viện và nền tảng

2.6.1 Python

Python hiện tại là ngôn ngữ có nhiều thư viện cũng như nhiều nền tảng hỗ trợ cho việc nghiên cứu mô hình học máy cũng như học sâu. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình và là ngôn ngữ lập trình dễ học, được dùng rộng rãi trong phát triển trí tuệ nhân tạo hoặc AI. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.

2.6.2 Nền tảng Tensorflow

Tensorflow là một nền tảng học máy mã nguồn mở với khả năng tính toán có hiệu suất cao. Thư viện được phát triển bởi một nhóm các nhà nghiên cứu và kỹ sư từ nhóm Google Brain trong tổ chức AI của Google. Mục địch tạo ra Tensorflow là cung cấp sự hỗ trợ mạnh mẽ cho học máy và học sâu, khả năng tính toán số học vượt trội ở nhiều lĩnh vực khoa học khác nhau.

Các hàm được dựng sẵn trong thư viện cho từng bài toán cho phép TensorFlow xây dựng được nhiều neural network. Nó còn cho phép tính toán song song trên nhiều máy tính khác nhau, thậm chí trên nhiều CPU, GPU trong cùng 1 máy hay tạo ra các dataflow graph – đồ thị luồng dữ liệu để dựng nên các model. Được viết bằng C++ và thao tác interface bằng Python nên phần hiệu năng của TensorFlow cực kỳ tốt.

2.6.3 Thư viện keras

Keras cũng là một thư viện mã nguồn mở hỗ trợ cho các mô hình học máy, học sâu. Tuy nhiên Keras có những ưu điểm13:

• Keras được thiết kế là một API (Application Programming Interface) được thiết kế cho con người sử dụng chứ không phải cho máy móc. Keras đưa ra trải nghiệm tốt nhất: nó cung cấp các API nhất quán và đơn giản.

• Keras dễ học và dễ dùng.

• Tính dễ sử dụng này không làm giảm tính linh hoạt: bởi vì Keras tích hợp sâu với chức năng TensorFlow cấp thấp, nó cho phép phát triển quy trình làm việc có khả năng tùy chỉnh cao, nơi bất kỳ phần chức năng nào cũng có thể được tùy chỉnh. Do những lợi điểm trên: Dễ sử dụng, tính năng phong phú, linh hoạt, cộng đồng hỗ trợ lớn và hiệu năng cao, tôi đã quyết định sử dụng Keras để làm nền tảng chính xây dựng và phát triển hệ thống trong luận văn này.

Chương 3

Các công trình nghiên cứu liên quan 3.1 Phát hiện vùng văn bản trong ảnh bằng Connec-

tionist Text Proposal Network (CTPN)

Nhóm tác giả đã đề xuất một phương pháp hiệu quả để phát hiện vùng văn bản trong ảnh bằng cách sử dụng bộ trích xuất đặc trưng để lấy đặc các trưng (feature map) từ ảnh, sau đó kết hợp đồng thời việc trượt các cửa sổ nhỏ trên feature map và sử dụng mạng nơ-ron hồi quy hai chiều để đưa ra những thông số dự đoán về vị trí của vùng văn bản.

Hình 3.1: (a) Kiến trúc của mô hình CTPN (b) Mô hình CTPN cho ra kết quả là một tập các vùng văn bản (text proposals) liên tục nhau, màu sắc của mỗi vùng văn bản ứng với xác suất là text hay non-text [20]

3.1.1 Tổng quan mô hình

Phát hiện văn bản trong những vùng có chiều rộng cố định

Feature map (tập vector đặc trưng) được tạo ra bằng cách cho một ảnh đầu vào qua một bộ trích xuất vector đặc trưng. Kích thước của feature map phụ thuộc vào kích thước của ảnh đầu vào.

CTPN phát hiện văn bản bằng cách trượt thêm một cửa sổ nhỏ trên feature map và cho ra tập các vùng văn bản nhỏ có chiều rộng cố định là 16 pixel (fine-scale text proposal).

Tác giả cho rằng một vùng văn bản hoàn thiện là tập hợp của nhiều fine-scale text proposal, trong đó mỗi fine-scale text proposal đại diện cho một nét nào đó, có chiều rộng (bề ngang) cố định là 16 pixel và chiều cao biến thiên, việc chỉ dự đoán chiều cao của các fine-scale text proposal sẽ giảm bớt chi phí tính toán và tăng độ chính xác cho bài toán. Để phát hiện các fine-scale text proposal nhóm tác giả đã đề xuất sử dụng k anchor- box (hình chữ nhật có kích thước cố định và được người lập trình định nghĩa trước), trong nghiên cứu này, tác giả đề xuất k = 10, và k anchor box này có cùng chiều rộng là 16 pixel và chiều cao biến thiên cách đều từ 11-273 pixel.

Khi cửa sổ nhỏ trượt qua feature map, tại mỗi vùng văn bản có kích thước cố định 16 pixel (ứng với feature map), tọa độ thực tế của mỗi fine-scale text proposal sẽ được đo bằng hai thông số: tâm theo trục y và chiều cao hai thông số này cũng chính là hai thông số mô hình cần dự báo cho mỗi fine-scale text proposal ứng với k anchor box. cụ thể mô hình sẽ cho ra các kết quả dự đoán tương đối v = {vc, vh} là tâm tương đối theo trục y, và chiều cao tương đối.

vc = cy−c a y ha , vh = log( h ha), vc∗ = c ∗ y−cay ha , v∗h = log(h ∗ ha) (3.1)

Tại mỗi vùng văn bản có kích thước cố định 16 pixel , mô hình sẽ dự đoán k giá trị v và k giá trị text/non-text score(xác suất một vùng là văn bản) ứng với k anchor box.

Cuối cùng, những fine-scale text proposal sẽ được chắt lọc bằng thuật toán non- maximum suppression với những anchor có text/non-text score > 0.7.

Mạng nơ-ron hồi quy liên kết các vùng văn bản nhỏ (fine-scale text proposal)

Việc dự đoán kết quả ngay tại feature map có thể dẫn đến nhiều kết quả dự đoán sai vì việc dự đoán mỗi fine-scale text proposal diễn ra độc lập, nên nhóm tác giả đã đề xuất kết hợp thêm một mạng nơ-ron hồi quy theo sau feature map để liên hệ những thông tin ngữ cảnh trong quá trình dự đoán từ đó làm tăng độ chính xác của kết quả dự đoán.

Hình 3.2: (Hàng trên) Kết quả dự đoán của mô hình khi không có mạng nơ-ron hồi quy. (Hàng dưới) Kết quả dự đoán của mô hình khi được tích hợp thêm mạng nơ-ron hồi quy [16]

Lọc vùng văn bản

Vùng văn bản (text-line) được tạo thành bằng cách kết nối các fine-scale text proposal lại với nhau, việc kết nối này được thực hiện như sau:

Với hai fine-scale text proposal X và Y: kí hiệuBj →Bi biểu diễnBj là cặp láng giềng hợp lệ củaBi Bj →Bi xảy ra khi và chỉ khi:

• Bj là láng giềng gần nhất của Bi (tức là có khoảng cách gần nhất đến Bi)

• Khoảng cách giữa Bj đến Bi nhỏ hơn 50 pixel

• Bj, Bi có hệ số overlap lớn hơn 0.7

Bj và Bi được nối với nhau khi và chỉ khi Bj →Bi và Bi →Bj

Với cách nối theo chiều ngang như thế thì khi mô hình nhận diện nhầm một số vùng

fine-scale text proposal sẽ dẫn đến kết quả phát hiện văn bản cuối cùng không chính xác. Để giải quyết vấn đề này, nhóm tác giả đề xuất thêm một bước sàng lọc cuối cùng để ước lượng lại các text-line sau khi đã nối. Do đó ngoài việc dự đoán các fine-scale text proposal, mô hình CTPN sẽ dự đoán thêm khoảng sai lệch offset có dạng:

o= xside−c a x wa , o∗ = x ∗ side−cax wa (3.2) Trong đó:

• xside là tọa độ thực tế theo trục x của láng giềng gần của fine-scale text proposal

• x∗side là tọa độ thực tế theo trục x của nhãn(được tính toán từ các nhãn anchor box).

• wa : chiều rộng của anchor wa được mặc định bằng 16 pixel.

• cax: tâm theo trục x của anchor đang xét.

• o, o∗: offset dự đoán tương đối, offset nhãn tương đối.

Hình 3.3: Hình chữ nhật đỏ: CTPN kết hợp với bước sàng lọc (side-refinement). hình chữ nhật màu vàng nét đứt: CTPN không có bước sàng lọc. [16]

Tổng kết

Tổng kết từ ba bước trên: Tại mỗi vùng có chiều rộng cố định 16 pixel (đối với ảnh input), CTPN sẽ tiến hành dự đoán:

• 2∗k tọa độ theo chiều dọc (ứng với mỗi anchor dự đoán tâm theo trục y, và chiều cao ).

• 2∗k text/non-text score (ứng với mỗi anchor dự đoán 1 giá trị text score và 1 giá trị non-text score).

• k side-refinement (ứng với mỗi anchor dự đoán một giá trị offset ) Hàm lỗi:

L=Lclassifytext/non−text+Lycoordinate+LRegsiderefinement (3.3) Trong đó:

• Lclassifytext/non−text: sử dụng hàm softmax.

3.1.2 Ưu điểm và nhược điểm

Ưu điểm

• So với việc phát hiện trực tiếp vùng văn bản như RPN(reference) thông qua 4 điểm của vùng văn bản thì CTPN phát hiện vùng văn bản dựa trên việc phát hiện các fine-scale text proposal giúp giảm chi phí tính toán, cải thiện độ chính xác và có thể ứng dụng cho văn bản có nhiều kích thước, kiểu dáng khác nhau.

• Quá trình huấn luyện mô hình diễn ra liền mạch, không bị chia thành nhiều bước.

• Thời gian xử lý nhanh(FPS cao), phù hợp với nhiều dự án thực tế.

Nhược điểm

Mô hình chỉ phát hiện tốt với dạng văn bản dạng nằm ngang (vì đầu ra của mô hình là một hình chữ nhật), nên việc phát hiện sẽ chưa tốt với loại văn bản nghiêng, cong, ...

3.2 EAST (Efficient Accurate Scene Text Detector)

EAST [19] là một mô hình nhanh và chính xác gồm 2 bước:

• Sử dụng một mạng tích chập đầy đủ (FCN) để trực tiếp tạo các dự đoán từ hoặc dòng văn bản dựa trên pixel.

• Sau khi tạo dự đoán văn bản (Xoay hình chữ nhật hoặc hình tứ giác) và kết quả đầu ra được gửi đến bộ triệt tiêu non-maximum để tạo ra kết quả cuối cùng. Mô hình gồm các bước như sau:

Hình 3.4: Các bước xử lý của EAST1

1

https://towardsdatascience.com/scene-text-detection-and-recognition-using-east-and -tesseract-6f07c249f5de

3.2.1 Kiến trúc mạng

Dựa trên PVANet - là một kiến trúc mạng "lightweight" trích xuất đặc trưng cho nhận diện vật thể, giúp đạt được hiệu suất phát hiện đối tượng trên thời gian thực mà không làm mất đi độ chính xác.

Mô hình được chia thành ba phần:

• Trích xuất đặc trưng Stem.

• Hợp nhất đặc trưng.

• Lớp đầu ra.

Hình 3.5: Kiến trúc mạng EAST [19]

Trích xuất đặc trưng - Feature Extractor

Phần này có thể là bất kỳ mạng nơ-ron tích chập nào với lớp tích chập và lớp pooled xen kẽ được huấn luyện sẵn như PVANet, VGG16, ResNet50,...

Hợp nhất đặc trưng - Feature-merging branch Hợp nhất các đặc trưng dần dần với: gi =    unpool(hi) nếu i≤3, conv3×3(hi) nếu i= 4. (3.4) hi =    fi nếu i= 1,

conv3×3(conv1×1([gi−1;fi])) ngược lại. (3.5) Với:

• gi là cơ sở hợp - merge base.

• hi là bản đồ đặc trưng hợp - merged feature map.

Ở mỗi bước hợp nhất, bản đồ đặc trưng từ bước cuối được đưa vào lớp unpooling để gấp đôi kích thước và sau đó nối với bản đồ đặc trưng hiện tại. Sau đó, conv1×1 được sử dụng khi bottleneck làm giảm số lượng kênh và giảm số lượng tính toán, theo sau là

conv3×3 để kết hợp thông tin để tạo ra đầu ra cuối cùng của mọi giai đoạn hợp nhất như được hiển thị trong hình 3.5.

Lớp đầu ra - Output layer

Đầu ra được đi qua conv1×1 với 1 kênh từ một bản đồ giá trị trong khoảng [0−1]. Hình dạng đầu ra có thể là hình chữ nhật xoay (RBOX) hoặc hình tứ giác (QUAD).

Với RBOX, hình được được biểu diễn bởi 4 kênh hộp giới hạn theo trục (axis-aligned bounding box - AABB)Rvà 1 kênh với góc θ.Rgồm 4 kênh thể hiện 4 khoảng cách của điểm ảnh gồm biên trên, phải, dưới, trái của hình chữ nhật tương ứng.

Với SQUAD Q, mô hình sử dụng 8 số thể hiện tọa độ của bốn góc hình {pi|i ∈ {1,2,3,4}}của tứ giác trên tọa độ điểm ảnh. Mỗi giá trị khoảng cách gồm hai số(δxi, δyi).

Hình Số kênh mô tả

AABB 4 G=R={di|i∈1,2,3,4}

RBOX 5 G={R, θ}

QUAD 8 G=Q={di|i∈ {1,2,3,4}} Bảng 3.1: Thiết kế hình đầu ra [19]

Hình 3.6: Quy trình xây dựng nhãn: (a) Vùng văn bản tứ giác (nét đứt vàng) và vùng tứgiác được thu gọn (nét liền xanh lá cây); (b) Bản đồ điểm văn bản; (c) Tạo bản đồ RBOX; giác được thu gọn (nét liền xanh lá cây); (b) Bản đồ điểm văn bản; (c) Tạo bản đồ RBOX; (d) 4 kênh khoảng cách của từng điểm ảnh đến đường biên hình chữ nhật; (e) Góc xoay.

3.2.2 Hàm lỗi

Hàm lỗi có thể được viết như sau:

L=Ls+λgLg (3.6)

Trong đó:

• Ls là hàm lỗi của bản đồ điểm - score map.

• Lg là hàm lỗi của hình - geometry.

Chương 4 Tập dữ liệu

Với đặc thù của dự án là về nhận diện khung và các vùng văn bản chữ viết tay. Các tờ đơn cần nhận diện này thường mang thông tin cá nhân, do đó tập dữ liệu có sẵn là không có. Nhờ sự hỗ trợ của thầy Tuấn Anh cũng như Viettel Post đã cung cấp cho tôi tập dữ liệu thô để thực hiện dự án này.

Tập dữ liệu gồm có 251 ảnh tờ đơn Viettel Post, các ảnh này được đảm bảo điều kiện chứa toàn bộ, hoặc gần toàn bộ chỉ mất đi những phần góc không ảnh hưởng đến nội dung cần quan tâm. Các ảnh có hướng chính diện, không bị quá nghiêng, không bị biến dạng,...

Do vấn đề dữ liệu quá ít, nên tập dữ liệu đã gán nhãn được chia thành ba tập với phân phối như sau:

• Tập huấn luyện - 190 ảnh

• Tập kiểm thử - 51 ảnh

• Tập kiểm tra - 10 ảnh để đánh giá với thông số và những ảnh thô đánh giá theo cảm quan.

Trong quá trình huấn luyện và kiểm thử nhiều cách tiếp cận, thì bảng dưới đây thể hiện cách gán nhãn cho cách tiếp cận tốt nhất:

Thứ tự Tên lớp Ý nghĩa

0 V Giá trị - chứa chữ viết tay

1 B Box

2→n K-<name> Khóa - Từng vùng có chứa chữ viết tay n+1 →m B-<name> Khóa - Nội dung của box

Cách gán nhãn

Để gán nhãn dữ liệu này, tôi sử dụng một phần mềm mã nguồn mở viết trên ngôn ngữ Python là Labelme1để gán dữ liệu.

Hình 4.1: Giao diện của ứng dụng gán nhãn Labelme

Định dạng lưu của ứng dụng sau khi đánh nhãn là một tệp JSON, với nhu cầu huấn luyện thử nghiệm trên nhiều mô hình cụ thể như với Mask R-CNN thì cần chuyển đổi về định dạng COCO, hay với UNet thì là một ma trận màu và các lớp được đánh số. Tôi phải xây dựng một bước xử lý để chuyển đổi định dạng dữ liệu.

Ngoài ra, với thử nghiệm trên nhiều cách đánh nhãn. Với kiểu đánh nhãn đầy đủ, số lượng nhãn trong một ảnh lên đến gần 200 nhãn, như hình 4.2, thì tôi mất khoảng 40 phút để gán nhãn cho một ảnh dữ liệu.

Tuy tập dữ liệu còn rất nhỏ, nhưng tôi hi vọng đã đóng góp được một tập dữ liệu tốt để phục vụ cho những nghiên cứu phát triển của cộng đồng.

1

Chương 5

Phương pháp đề xuất

Trong chương này, tôi sẽ trình bày chi tiết phương pháp mà tôi đã đề xuất để Xây dựng mô hình nhận dạng khung và vùng văn bản trong tài liệu có bộ cục cố định.

Qua quá trình nghiên cứu và thử nghiệm một số mô hình nhận diện khung và vùng có văn bản, tôi đã đề xuất ra một hệ thống nhận diện với mô-đun chính là: Phát hiện vùng có nội dung chữ viết tay (Text/Object Detection) kèm theo một số phương pháp tiền, hậu xử lý để đưa ra kết quả tốt nhất.

5.1 Phân tích bài toán

Quá trình xác định vị trí các vùng có chữ viết tay từ ảnh đầu vào được gọi là phát

Một phần của tài liệu Xây dựng mô hình nhận dạng khung và vùng văn bản trong tài liệu có bố cục cố định (Trang 44)