.7 Ma trận Gauss

Một phần của tài liệu Số hóa phiếu xét nghiệm sử dụng kỹ thuật trí tuệ nhân tạo (luận văn thạc sĩ) (Trang 28 - 41)

Giả sử ảnh là một chiều. Điểm ảnh ở trung tâm sẽ có trọng số lớn nhất. Các điểm ảnh ở càng xa trung tâm sẽ có trọng số giảm dần khi khoảng cách từ chúng tới điểm trung tâm tăng lên. Như vậy điểm càng gần trung tâm sẽ càng đóng góp nhiều hơn vào giá trị điểm trung tâm.

14

2.2 YOLO

YOLO được viết tắt của từ “You only look once”. Ý nghĩa là “chúng ta chỉ cần nhìn 1 lần là có thể phát hiện ra vật thể”. Về đợ chính xác thì YOLO có thể khơng phải là thuật toán tốt nhất nhưng nó là thuật tốn nhanh nhất trong các mơ hình nhận dạng đối tượng. Tốc độ nhận diện của YOLO tiệm cận thời gian thực và đợ chính xác cao nằm trong các mơ hình tḥc top đầu. YOLO có thể phát hiện được nhiều vật thể có nhãn khác nhau trong mợt bức ảnh thay vì chỉ phân loại duy nhất mợt nhãn cho một bức ảnh [6]. YOLO có các phiên bản phát triển YOLOv1 – YOLOv3 của Joseph Redmon. YOLOv4 của Alexey Bochkovskiy và YOLOv5 đang được phát triển hoàn thiện.

2.2.1 Các phiên bản YOLO

- YOLOv1 được Joseph Redmon và Ali Farhadi cơng bố vào tháng năm, năm

2016. Ý tưởng chính của YOLOv1 là chia ảnh thành một lưới các ô (grid cell) với kích thước SxS (mặc định là 7x7). Với mỗi grid cell, mơ hình sẽ đưa ra dự đoán cho B bounding box. Ứng với mỗi box trong B bounding box này sẽ là 5 tham số x, y, w, h, confidence, lần lượt là tọa độ tâm (x, y), chiều rộng, chiều cao và độ tin cậy của dự đoán [7]. Nhược điểm của YOLOv1: YOLOv1 bị ràng buộc về không gian trên những bounding box, mỗi grid cell chỉ có thể dự đốn rất ít bounding box (B) và duy nhất một lớp. Ràng buộc này hạn chế khả năng nhận biết số đối tượng nằm gần nhau và đối với các đối tượng có kích thước nhỏ. Trong q trình h́n luyện, loss function khơng có sự đánh giá riêng biệt giữa bounding box kích thước nhỏ so với bounding box kích thước lớn làm ảnh hưởng đến đợ chính xác tồn cục của mạng [7].

- YOLOv2 đặt tên là YOLO9000 được Joseph Redmon và Ali Farhadi công

bố vào cuối năm 2016. Phiên bản này được cải tiến tốt hơn, nhanh hơn, tiên tiến hơn, xử lý được những nhược điểm gặp phải của YOLOv1. Các cải tiến của YOLO v2: batch normalization, high resolution classifier, sử dụng kiến trúc anchorbox để đưa ra dự đoán, sử dụng K-mean clustering cho lựa chọn của anchor, add fine-grained features, multi-scale training, light-weight backbone. Điểm cải tiến của YOLOv2 là

15

khung kiến trúc backbone mới là Darknet-19. Mạng này bao gồm 19 lớp convolution và 5 lớp maxpooling cải tiến tốc độ nhanh hơn phiên bản YOLOv1 [8].

- YOLOv3 được Joseph Redmon và Ali Farhadi giới thiệu vào tháng 4, năm

2018. YOLOv3 có kiến trúc giống YOLOv2. Cải tiến của YOLOv3 bao gồm : logistic regression cho confidence score, thay softmax bằng các logistic classifier rời rạc, backbone - Darknet-53, multi-scale prediction, skip-layer concatenation. YOLOv3 bổ sung thêm các liên kết giữa các lớp dự đốn. Sử dụng mơ hình upsample các lớp dự đoán ở các tầng sau và sau đó kết hợp với các lớp dự đoán ở các tầng trước đó, giúp tăng đợ chính xác khi dự đoán các đối tượng nhỏ [9].

- YOLOv4 được Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao giới thiệu vào tháng 4, năm 2020. YOLOv4 là một cải tiến lớn so với YOLOv3. Kiến trúc của YOLOv4 đã đưa bài toán nhận diện đối tượng dễ tiếp cận hơn, khơng cần máy tính cấu hình mạnh. YOLOv4 có thể huấn luyện một mạng phát hiện đối tượng với đợ chính xác rất cao chỉ với GPU 1080ti hoặc 2080ti [4].

2.2.2 Kiến trúc YOLOv4

Kiến trúc của YOLOv4 chia làm ba phần chính: Backbone, Neck, Head (hình 2.8).

16

- Backbone: sử dụng kiến trúc CSPDarknet53. CSPDarknet53 được cấu tạo từ CSP và Darknet53.

o CSP ( Cross-Stage-Partial connections) dựa trên kiến trúc DenseNet, CPS làm nhiệm vụ chia đầu vào của khối thành 2 phần, mợt phần sẽ qua các khối tính tích chập, phần cịn lại khơng qua tính tốn tích chập mà đi thẳng tới cuối. Sau đó hai phần sẽ được cộng lại và đưa vào khối tiếp theo  cải thiện việc huấn luyện bằng cách kết hợp giữa các feature maps đã tính tốn với các feature maps chưa tính tốn [10].

Hình 2.9 Cấu trúc CSP [10]

o DenseNet (Dense connected convolutional network) là một trong những network mới nhất cho visual object recognition. Kiến trúc giống với Resnet nhưng có một vài điểm khác biệt. Densenet có kiến trúc gồm các dense block và các transition layers (hình 2.21). Với CNN truyền thống nếu chúng ta có L layer thì sẽ có L connection, nhưng với Densenet sẽ có L(L+1)/2 connection (tức là các lớp phía trước sẽ được liên kết với tất cả các lớp phía sau nó) [10].

17

o Darknet53: YOLOv4 sử dụng CSPDarknet53 để làm backbone vì CSPDarknet53 có đợ chính xác cao hơn so với ResNet [4].

- Neck: Neck kết hợp các đặc trưng trong q trình trích x́t đặc trưng và q trình nhận dạng. Với mỗi lần thực hiện nhận dạng, ảnh được rescale khác nhau theo bottom-up và top-down trước khi đưa vào head, do đó quá trình nhận dạng sẽ chứa thông tin phong phú hơn [4].

- Head: Head (Dense prediction) được sử dụng để định vị các bounding boxes và phân loại. Quá trình này giống như quy trình được mơ tả cho YOLOv3, tọa đợ bounding boxes :x, y, height và width, score [4].

Mợt số kỹ thuật mới thuật tốn YOLOv4 sử dụng để cải thiện đợ chính xác trong q trình h́n luyện là bag of freebies và bag of specials [4].

- Bag of freebies có 2 kỹ thuật:

o Bag of freebies for backbone: sử dụng các phương pháp CutMix and Mosaic data augmentation, DropBlock regularization, Class label smoothing [4].

o Bag of freebies for detector: sử dụng các phương pháp CIoU-loss, CmBN, DropBlock regularization, Mosaic data augmentation, Self-Adversarial Training, Eliminate grid sensitivity, Using multiple anchors for a single ground truth, Cosine annealing scheduler, Optimal hyperparameters, Random training shapes [4] .

- Bag of specials có 2 kỹ thuật:

o Bag of specials for backbone: sử dụng hàm kích hoạt mish (Mish activation), Cross-stage partial connections (CSP), Multiinput weighted residual connections (MiWRC) [4].

o Bag of specials for detector: sử dụng kỹ thuật Mish activation, SPP-block, SAM-block, PAN path-aggregation block, DIoU-NMS [4].

- Class label smoothing: thay giá trị 1.0  0.9 trong one-hot coding giúp khi đốn đúng nhẵn lớp của mợt bức ảnh thì vẫn có loss. Do đó model sẽ phải điều chỉnh trọng số, giúp tránh việc overconfident vào kết quả dự đốn của mình  tránh bị overfitting [4] .

18

- Mish activation: theo một số nghiên cứu, sử dụng Mish thu được kết quả tốt hơn so với ReLu [12], SoftPlus, Swish cũng như một số activation function khác (Adam, Ranger, RangerLars, Novograd, …). Mish activation giúp truyền tải thông tin xuống các lớp sâu hơn trong mạng thần kinh dễ dàng hơn  tăng đợ chính xác.

𝑓(𝑥) = 𝑥𝑡𝑎𝑛ℎ(ln⁡(1 + 𝑒𝑥)) (2 - 1)

Hình 2.11 Mish Activation Function [12]. Mợt số tḥc tính quan trọng của Mish:

- Không có cận trên. - Có cận dưới.

- Không đơn điệu, giữ lại một phần nhỏ negative gradient cho phép model học tốt hơn (vd: ReLu không cho phép gradient âm).

- Liên tục: Mish có đạo hàm bậc 1 tại mọi điểm thuộc miền giá trị (so sánh với ReLu không có đạo hàm tạo x=0).

2.2.3 So sánh với các mơ hình khác

Ứng dụng YOLOv4: Yolov3 và Yolov4 đều cho kết quả tốt trong việc phát hiện đối tượng. Hình 2.12 biểu đồ kết quả so sánh khi sử dụng yolov3 và yolov4 và mợt số thuật tốn khác trên tập dữ liệu CoCo.

19

Hình 2.12 Kết quả so sánh YOLOv4 với các SOTA (state-of the-art object detection) trên COCO dataset [4] .

Trong đó: trục y là đợ chính xác (AP - absolute precision); trục x là số lượng khung hình trên giây (FPS - frame per second). Phần tô bóng màu xanh lam của biểu đồ là để phát hiện trong thời gian thực (webcam, camera đường phố, v.v.), phần màu trắng là nhận dạng ảnh/video tĩnh. YOLOv4 phát hiện đối tượng trong thời gian thực rất tốt, đạt đợ chính xác trung bình từ 38 đến 44 và số khung hình mỗi giây trong khoảng từ 60 đến 120. YOLOv3 đạt được đợ chính xác trung bình từ 31 đến 33 và khung hình mỗi giây giữa 71 và 120 [4]. YOLOv4 chạy nhanh gấp đơi EfficientDet và tăng 10% chính xác và 12% số khung hình trên giây so với YOLOv3 [4].

2.3 CTPN

CTPN được viết tắt của Connectionist Text Proposal Network hay còn gọi là mạng văn bản đề xuất. Zhi Tian, Weilin Huang, Tong He, Pan He1 and Yu Qiao giới thiệu vào tháng 15, năm 2016. Ý tưởng chính của CTPN chia nhỏ bài tốn nhận dạng ảnh chứa văn bản thành nhận dạng những vùng có chứa văn bản trên bức ảnh.

Ví dụ: khi truy cập vào Google để tra cứu thông tin, thỉnh thoảng Google yêu cầu chúng ta nhập chuỗi ký tự captcha như ví dụ hình 2.13.

20

Hình 2.13 Ví dụ captcha [13]

Nhiệm vụ của chúng ta là lựa chọn những ô vuông chứa thông tin biển báo giao thông. Ở ví dụ trên, ta lựa chọn 5 ơ vng kia bởi ta nghĩ rằng 5 ơ vng đó có chứa thơng tin của biển báo. Giả sử yêu cầu “chọn những vùng có chứa văn bản/chữ”. Vấn đề bắt đầu xuất hiện: ta sẽ chọn 3 ô vuông như hình dưới đây (hình 2.14).

Hình 2.14 Ví dụ chọn text trên ảnh [13].

Ở hình 2.14 ơ vng ở giữa chỉ chứa mợt vài vùng của text ở 2 phía của biển báo. Để có thể lựa chọn các vùng chính xác hơn, ta chia nhỏ những ơ vng trên, chia nhỏ bài tốn Text Detection thành chọn những vùng có chứa text trên bức ảnh  Đây chính là ý tưởng chính của cấu trúc “Connectionist Text Proposal Network” (hình 2.15).

21

Hình 2.15 Ví dụ minh họa ý tưởng CTPN [13].

2.3.1 Kiến trúc CTPN

CTPN sử dụng kiến trúc VGG16 để trích xuất các feature map. Kế đến CTPN sử dụng tầng Conv5d để phân chia feature map thành ô nhỏ. CTPN sử dụng một cửa sổ (mask matrix) 3x3 trượt qua mỗi vị trí trên feature map. Mợt hàng của feature map được kết nối với một mạng Bi-directional LSTM. Sau đó kết nối với một tầng fully- connected. Kết quả cuối cùng sẽ bao gồm thơng tin về dự đốn văn bản/phi văn bản, tọa độ dọc của văn bản và phần bù của k anchor [14].

Hình 2.16 Kiến trúc CTPN [14]

CTPN có 3 kỹ thuật: Detecting Text in Fine-scale Proposals (Nhận diện vă n bản trong

đề xuất tỷ lệ nhỏ). Recurrent Connectionist Text Proposals (vă n bản kết nối đề

22

- Detecting Text in Fine-scale Proposals: phát hiện kí tự trong mơi trường tự nhiên rất phức tạp bởi có thể nhầm lẫn giữa màu nền và chữ ở những vị trí mà sự hiển thị của chữ yếu ví dụ như ở những nét nhỏ, khoảng trống giữa các chữ cái. Với cách tiếp cận nhận diện đối tượng thông thường, dễ xảy ra trường hợp bounding box không bao quát đủ không gian của đối tượng chữ, đặc biệt trong trường hợp chữ có kích thước nhỏ. CTPN định nghĩa mợt dịng text là mợt chuỗi các fine-scale text proposals với mỗi proposal sẽ chứa một phần nhỏ của dịng text. Ý tưởng CTPN: mỗi proposal sẽ chứa mợt hoặc nhiều nét, mợt hoặc nhiều kí tự, mợt phần kí tự của dịng chữ. CTPN sẽ mapping các vị trí trên feature map với mợt proposal trên ảnh đầu vào. Thông thường mỗi proposal sẽ có độ rộng (width) là 16 pixels, chiều cao sẽ được dự đốn bằng chiều cao của mơ hình [14].

Với mỗi proposal, CTPN sẽ khởi tạo k anchors với những chiều cao khác nhau. CTPN sử dụng 10 anchor với chiều cao sẽ nằm trong khoảng từ 11 đến 273 (chia cho 0.7). Với mỗi anchor sẽ chứa thông tin về vị trí và kích thước, dự đốn các thơng số vị trí và kích thước tương đối so với từng anchor ứng với mỗi proposal [14]. Vị trí tương

đối của dự đốn và groundtruth được tính như sau :

Predict: 𝑣𝑐 = (𝑐𝑦− ⁡ 𝑐𝑦𝑎)/ℎ𝑎 (2 - 2) 𝑣ℎ = log⁡(ℎ/ℎ𝑎) (2 - 3) Proposal Groundtruth: 𝑣𝑐∗= (𝑐𝑦∗ − ⁡ 𝑐𝑦𝑎)/ℎ𝑎 (2 - 4) 𝑣ℎ∗ = log(ℎ∗/ℎ𝑎) (2 - 5) Trong đó: 𝑣 = 𝑣𝑐, 𝑣ℎ và 𝑣∗ = 𝑣∗c, 𝑣∗h là tọa độ của kết quả dự đoán (groundtruth);

23

𝑐𝑦𝑎 và ℎ𝑎 là trung tâm và chiều cao của anchor. Mỗi dự đốn sẽ ứng với mợt proposal với kích thước là h*16. cơng thức này chỉ được tính tốn trên những anchor mà có chỉ số văn bản/phi văn bản > 0.7.

- Recurrent Connectionist Text Proposals: Việc chia nhỏ dòng văn bản thành những fine-scale text proposals và dự đoán nó có phải là văn bản hay khơng có thể bị nhầm lẫn ở những trường hợp khoảng cách giữa những kí tự xa hoặc giữa những đối tượng có cấu trúc gần giống với văn bản. Vì mợt câu có tính tuần tự liên quan với nhau giữa các kí tự trong mợt từ, mợt từ trong câu. CTPN sử dụng cấu trúc mạng RNN để nhận mỗi vùng đặc trưng như một đầu vào của từ [14]. Các hidden layer của mạng LSTM sẽ được cập nhật :

𝐻𝑡 = ⁡𝜑(𝐻𝑡−1, 𝑋𝑡),⁡⁡⁡𝑡 = 1,2, … , 𝑊 (2 - 6) Trong đó: Xt ∈ R3×3 là vùng convolutional feature window thứ t của cửa sổ (3×3); t = 1, 2, … W với W là chiều rộng của tầng conv5. Ht là hidden state sẽ được tính tốn từ Xt và hidden state Ht−1 trước đó.

- Side-refinement: Sau khi đã có bợ những text proposal với điểm số text/non- text > 0.7, bounding box của một text sẽ được xây dựng bằng cách kết nối các text proposal cịn lại bằng trình tự: Bj được cho là một cặp với Bi theo những tiêu chí sau: Bj gần Bi nhất xét theo chiều ngang. Khoảng cách này phải nhỏ hơn 50 pixels. Chỉ số chồng khớp (overlap) theo chiều dọc > 0.7 [14].

Dòng văn bản sẽ được chia nhỏ thành một chuỗi proposal 16pixel nên sẽ xảy ra

trường hợp những proposal ở 2 phía của dịng text sẽ bị bỏ qua vì chỉ chứa mợt phần nhỏ của text. Vì vậy, CTPN sẽ khắc phục bằng cách dự đốn thêm mợt phần bù của proposal ở 2 phía.

𝑜⁡ = (𝑥𝑠𝑖𝑑𝑒 − 𝑐𝑥𝑎)/𝑤𝑎 (2 - 7) 𝑜∗⁡ = (𝑥𝑠𝑖𝑑𝑒∗ − 𝑐𝑥𝑎)/𝑤𝑎 (2 - 8)

24

Trong⁡đó:⁡𝑥𝑠𝑖𝑑𝑒 là vị trí của tọa đợ x-theo chiều ngang gần nhất đến anchor hiện tại ở cả 2 phía; 𝑥∗𝑠𝑖𝑑𝑒 là phần bù groundtruth được tính tốn trước từ groundtruth box và vị trí của anchor; 𝑐𝑥𝑎 là tâm điểm của anchor theo tọa độ x, wa là chiều rộng của anchor (wa = 16). Việc sử dụng phần bù có thể khắc phục được việc bounding box khơng bao được hết dịng text đặc biệt trong trường hợp kích thước nhỏ [14].

Output và Lossfunction: CTPN có ba đầu ra được kết nối chung với FC tầng cuối

cùng. Sử dụng phương pháp học đa tác vụ để cùng nhau tối ưu hóa các thơng số mơ hình. Loss function CTPN bao gồm: 𝐿𝑐𝑙s, 𝐿𝑟𝑒v và 𝐿𝑟𝑒o :

𝐿(𝑠𝑖, 𝑣𝑗, 𝑜𝑘) = 1 𝑁𝑠∑ 𝐿𝑐𝑙𝑠(𝑠𝑖, 𝑠𝑖∗) +λ1 𝑁𝑣 ⁡∑ 𝐿𝑣 𝑟𝑒 𝑗 (𝑣𝑗, 𝑣𝑗∗) + 𝑖 λ2 𝑁0 ⁡∑ 𝐿𝑜 𝑟𝑒 𝑘 (𝑜𝑘, 𝑜𝑘∗) (2 - 9) Trong đó: mỗi anchor là mợt mẫu h́n luyện và i là chỉ số của một anchor trong một minibatch; si là xác śt dự đốn của anchor là mợt vă n; 𝑆*i = {0, 1} là ground truth; j là chỉ số của một anchor trong tập hợp các anchor hợp lệ đối với tọa độ y, được định nghĩa như sau: Một anchor hợp lệ/đúng được xác định (𝑆*𝑗 = 1), hoặc có IoU > 0,5 trùng lặp với một vă n bản đề xuất; vj và 𝑣j* là dự đốn và tọa đợ y ground truth

được kết hợp với anchor thứ j; k là chỉ số của một anchor bên, được định nghĩa là

một tập hợp các anchor trong khoảng cách ngang (ví dụ: 32 pixel) về phía bên trái hoặc bên phải của ground truth vă n bản ở trong khung; ok và ok* là dự đoán và ground truth trên trục x được liên kết với anchor thứ k; 𝐿𝑐𝑙s là phân loại sử dụng Softmax phân biệt văn bản và phi văn bản. 𝐿𝑟𝑒v và 𝐿𝑟𝑒o là loss function regression; λ1 và λ2 là trọng số hao hụt để cân bằng, thường được đặt 1.0 và 2.0; Ns, Nv và No là các tham số chuẩn hóa, biểu thị tổng số lượng anchor được sử dụng bởi 𝐿𝑐𝑙s, 𝐿𝑟𝑒v và 𝐿𝑟𝑒o [14].

2.3.2 So sánh với các phương pháp khác

Ứng dụng thuật toán CPTN nhận diện văn bản. Sử dụng CTPN trên bộ dữ liệu huấn luyện ICDAR 2013 có hơn 3.000 hình ảnh tự nhiên. Trong đó có 229 hình ảnh từ tập

25

huấn luyện, tự thu thập các hình ảnh và gắn nhãn thủ cơng văn bản. Bợ dữ liệu SWT chứa 307 hình ảnh bao gồm nhiều văn bản kích thước nhỏ. Bợ dữu liệu

Một phần của tài liệu Số hóa phiếu xét nghiệm sử dụng kỹ thuật trí tuệ nhân tạo (luận văn thạc sĩ) (Trang 28 - 41)

Tải bản đầy đủ (PDF)

(86 trang)