CÁC NGHIÊN CỨU LIÊN QUAN
Giới thiệu tổng quan
Machine Learning là một nhánh của Trí tuệ nhân tạo, tập trung vào việc phát triển các thuật toán cho phép hệ thống tự động "học" từ dữ liệu để giải quyết vấn đề Thay vì phải lập trình từng chỉ thị cụ thể, giờ đây máy tính có thể tự đưa ra quyết định và dự đoán dựa trên quá trình học hỏi từ dữ liệu Phương pháp này không chỉ mang lại kết quả nhanh chóng và chính xác mà còn vượt trội hơn con người nhờ khả năng phân tích và thống kê từ hàng triệu dữ liệu.
Machine Learning là quá trình dạy máy tính có khả năng học hỏi để hoàn thành một nhiệm vụ mà không cần kỹ thuật lập trình phức tạp
Machine Learning là ngành rất rộng về toán, gồm rất nhiều thuật toán và mỗi thuật toán có ứng dụng riêng tùy vào bài toán:
• Decision Tree và Random Forest
Deep learning, một nhánh của Machine Learning, được phát triển từ thuật toán Neural network, lấy cảm hứng từ cấu trúc bộ não con người để xử lý dữ liệu Với sự tiến bộ vượt bậc trong khả năng tính toán của máy tính và khối lượng dữ liệu khổng lồ mà con người tạo ra, deep learning đã và đang mang lại những bước đột phá lớn trong nhiều ứng dụng thực tiễn.
Hình 2-1: Mối quan hệ giữa AI, Machine Learning và Deep Learning [13]
Trong đồ án này, nhóm tôi chọn nghiên cứu lĩnh vực Thị giác máy tính, một nhánh của Deep Learning, nhằm phát triển ứng dụng cho bài toán "Phát hiện bảng trong tài liệu dạng ảnh bằng phương pháp học sâu".
Computer Vision
Thị giác máy tính, một ứng dụng nổi bật của Deep Learning, là lĩnh vực khoa học giúp máy tính tái tạo và mô phỏng hệ thống thị giác của con người Nhờ vào công nghệ này, máy tính có khả năng xác định và xử lý các đối tượng trong hình ảnh và video tương tự như cách mà con người thực hiện.
Một số kỹ thuật phổ biến trong Computer Vision gồm:
Nhận diện vật thể (Object Recognition) là kỹ thuật cho phép xác định, nhận dạng và định vị các đối tượng trong bức ảnh với độ tin cậy cao.
• Phân loại hình ảnh (Image Classification) là một kỹ thuật 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ể (Object Localization) là kỹ thuật xác định vị trí của một hoặc nhiều đối tượng trong hình ảnh, đồng thời vẽ bounding box xung quanh chúng để đánh dấu vị trí chính xác.
Phát hiện đối tượng (Object Detection) là một kỹ thuật quan trọng trong lĩnh vực thị giác máy tính, kết hợp giữa phân loại hình ảnh và định vị các vật thể Kỹ thuật này cho phép nhận diện một hoặc nhiều đối tượng trong hình ảnh một cách chính xác, đóng vai trò then chốt trong nhiều ứng dụng như nhận diện khuôn mặt, giám sát an ninh và tự động hóa.
• Phân đoạn đối tượng (Object Segmentation) là một kỹ thuật nhận dạng đối tượng bằng cách nổi bật các pixel cụ thể của đối tượng thay vì bounding box
Chú thích ảnh (Image Captioning) là một kỹ thuật tiên tiến kết hợp giữa mạng nơ-ron tích chập (CNN) và mạng nơ-ron hồi tiếp dài ngắn (LSTM) nhằm tạo ra các mô tả chi tiết về nội dung hoặc hành động trong một bức ảnh.
Hình 2-2: Sơ đồ các mối liên hệ giữa các tác vụ trong computer vision
Nhờ vào sự phát triển của khoa học và ứng dụng các thuật toán tiên tiến, máy tính hiện nay có khả năng thu nhận, xử lý và hiểu hình ảnh, từ đó được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau trong cuộc sống.
• Nhận diện khuôn mặt trong các smartphone (Face ID)
• Kiểm tra các sản phẩm lỗi trong ngành công nghiệp sản xuất
• Hỗ trợ bác sĩ trong chuẩn đoán và điều trị bệnh ung thư dựa vào ảnh
• Nhận diện biển báo, người đi đường cho các xe tự lái
• Nhận diện cảm xúc để đánh giá hành vi mua hàng trong các cửa hàng
• Nhận biết trường hợp té ngã để kịp thời cấp cứu dựa vào phát hiện hành vi dị thường của con người.
Object Detection
Phát hiện đối tượng ( Object Detection) là khía cạnh sâu sắc nhất của thị giác máy tính do số lần ứng dụng trong thực tế
Phát hiện đối tượng (Object Detection) là một thuật ngữ trong lĩnh vực thị giác máy tính, dùng để xác định các đối tượng trong ảnh kỹ thuật số Nó bao gồm hai nhiệm vụ chính: phân loại hình ảnh (Image Classification) và định vị vật thể (Object Localization) Các kỹ thuật phát hiện đối tượng có thể được phân loại theo nhiều cách khác nhau.
Phân loại hình ảnh (Image Classification) là quá trình dự đoán nhãn cho một đối tượng trong hình ảnh Đầu vào là một hình ảnh chứa đối tượng, chẳng hạn như một bức ảnh, và đầu ra là nhãn lớp, có thể là một hoặc nhiều số nguyên được ánh xạ tới nhãn lớp tương ứng.
Định vị đối tượng (Object Localization) là quá trình xác định vị trí của các đối tượng trong hình ảnh, sử dụng bounding box để chỉ ra vị trí của chúng Đầu vào của quá trình này là một hình ảnh có chứa một hoặc nhiều đối tượng, trong khi đầu ra là 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 (Object Detection) là quá trình xác định vị trí và nhãn của các đối tượng trong một hình ảnh thông qua việc sử dụng bounding box Đầu vào của quá trình này là một hình ảnh chứa một hoặc nhiều đối tượng, ví dụ như một bức ảnh.
23 o Output: Một hoặc nhiều bounding box và nhãn cho mỗi bounding box
Hình 2-3: Ví dụ phân biệt các kỹ thuật trong Computer Vision.[14]
Thuật toán Object Detection bao gồm 2 nhóm chính:
• Two-stage: bao gồm họ các mô hình R-CNN (Region-Based Convolutional Neural Networks), Mask R-CNN… Gọi là two-stage vì model sẽ thực hiện
Mô hình phân tích hình ảnh bao gồm hai phần chính: trích chọn các vùng có khả năng chứa đối tượng thông qua anchor box và tiếp theo là phân loại đối tượng cùng với xác định vị trí Quá trình này được thực hiện thông qua hai nhánh ở cuối mô hình, bao gồm Object Classification và Bounding Box Regression Các mô hình này đặc biệt hiệu quả trong việc giải quyết các bài toán định vị và nhận diện vật thể tĩnh, nơi yêu cầu độ chính xác cao nhưng không cần tốc độ xử lý quá nhanh.
Mô hình one-stage, hay còn gọi là single-stage, bao gồm các loại như YOLO (You Only Look Once), SSD (Single Shot MultiBox Detector) và Restina Điểm đặc trưng của one-stage là không có bước trích chọn vùng đặc trưng như ở mô hình two-stage Thay vào đó, các mô hình này coi việc phát hiện đối tượng là một bài toán hồi quy và sử dụng các box đã được định nghĩa trước, hay còn gọi là anchor, để xác định đối tượng Nhờ vào cấu trúc này, các mô hình one-stage thường có tốc độ xử lý nhanh hơn.
24 nhiên độ chính xác thường kém hơn so với two-stage và thường được dùng để nhận dạng đối tượng, đặc biệt là các đối tượng real time
Hình 2-4: Hình so sánh sự khác nhau của mô hình one-stage và two-stage.[18]
• Phát hiện xe để giúp phân luồng giao thông
• Đếm số người đi bộ trên đường
• Phát hiện vật cản ứng dụng trong sản xuất xe không người lái.
Mô hình mạng học sâu
2.4.1 Mạng nơ-ron nhân tạo
Mạng nơ-ron nhân tạo (ANN) hay mạng nơ-ron (NN) là hệ thống mạng lưới thần kinh được kết nối hoàn toàn giữa các lớp ANN được phát triển từ ý tưởng mô phỏng cách hoạt động của não bộ con người.
Hình 2-5: Hình 1 nơ ron thần kinh [12]
Kiến trúc của mạng nơ-ron nhân tạo bao gồm ba thành phần chính: lớp đầu vào, các lớp ẩn và lớp đầu ra Mỗi lớp chứa các node tương tự như nơ-ron thần kinh, với các node trong một lớp kết nối với tất cả các node trong lớp kế tiếp Số lượng lớp ẩn và số nơ-ron trong mỗi lớp đều không giới hạn, cho phép mạng nơ-ron linh hoạt trong việc xử lý thông tin.
Hình 2-6: Kiến trúc mạng nơ ron nhân tạo.[8]
Hình 2-7: Cấu trúc trong từng nốt của mạng nơ-ron nhân tạo.[8]
Trong mạng nơ ron nhân tạo, mỗi node được xem xét theo từng lớp, với trọng số của node hiện tại là tổng trọng số của các node trong lớp đầu vào trước đó Trọng số này sau đó được chuyển qua hàm kích hoạt phi tuyến tính để tính toán Các node này đồng thời là đầu ra của lớp trước và đầu vào của lớp tiếp theo Trong quá trình huấn luyện, mạng nơ ron sẽ tối ưu hóa trọng số cho từng node trong hệ thống.
Mạng nơ-ron tích chập (CNN) là một trong những phương pháp phổ biến nhất trong lĩnh vực xử lý ảnh, được sử dụng để giải quyết nhiều bài toán như nhận dạng hình ảnh, phân loại hình ảnh, phát hiện đối tượng và nhận diện khuôn mặt.
CNN được xây dựng từ ba ý tưởng chính: vùng nhận thức cục bộ (local receptive fields), chia sẻ trọng số (shared weights) và tổng hợp (pooling)
Hình 2-8: Ý tưởng Local receptive fields trong mô hình CNN.[9]
Các trường receptive địa phương cho phép mạng nơ-ron tích chập (CNN) xử lý hình ảnh hiệu quả hơn bằng cách liên kết các nơ-ron trong lớp ẩn với một vùng nhỏ trong đầu vào, thay vì kết nối tất cả các thành phần trong mảng 28x28 Điều này giúp giảm chi phí tính toán và kích thước của lớp ẩn tiếp theo, nhờ vào việc sử dụng bộ lọc để xác định kích thước của vùng liên kết.
Sau khi tiếp cận bằng cách sử dụng liên kết trong một vùng nhỏ, các mạng tích chập sẽ điều chỉnh và chia sẻ trọng số để phù hợp với tính bất biến của hình ảnh.
Tầng pooling thực hiện việc tổng hợp dữ liệu để giảm số chiều đặc trưng, đồng thời giữ lại các thông tin quan trọng từ dữ liệu đầu vào.
Từ ba ý tưởng chính trên, một mô hình CNN sẽ có kiến trúc gồm các tầng như sau: tầng tích chập (Convolution), tầng tổng hợp (pooling) dùng để trích
28 xuất đặc trưng và tầng liên kết đầy đủ (fully connected) dùng để phân lớp đối tượng
Hình 2-9: Kiến trúc tổng quan của mô hình CNN.[15]
Tầng tích chập (Convolution) có nhiệm vụ trích xuất đặc trưng từ dữ liệu đầu vào thông qua việc sử dụng các bộ lọc, giúp tìm kiếm và lấy ra thông tin quan trọng Bằng cách áp dụng ý tưởng về các vùng tiếp nhận cục bộ (Local receptive fields), tầng này không chỉ giảm số chiều cho các lớp ẩn tiếp theo mà còn tính toán giá trị đầu ra thông qua các hàm kích hoạt như ReLU, Tanh và Sigmoid Trong số đó, hàm ReLU hiện đang được ưa chuộng hơn cả.
Hình 2-10: Ví dụ tính toán tại tầng tích chập với đầu vào là 5x5, sử dụng hàm
ReLU để tính toán và bước trượt cho bộ lọc là 1
Tầng tổng hợp (pooling) là bước quan trọng sau tầng tích chập, giúp trích chọn đặc trưng và giảm số chiều cho dữ liệu đầu vào Việc giảm số chiều không chỉ giúp giảm số lượng tham số mà còn rút ngắn thời gian huấn luyện và hạn chế hiện tượng overfitting Tầng tổng hợp sử dụng bộ lọc trượt qua dữ liệu để trích xuất đặc trưng, nhưng khác với tầng tích chập, các bộ lọc ở đây không chứa tham số Hai phương pháp phổ biến trong tầng tổng hợp là maxpooling, chỉ lấy giá trị cao nhất trong vùng bộ lọc, và averagepooling, tính toán giá trị trung bình trong vùng bộ lọc.
Hình 2-11: Ví dụ phép tổng hợp lớn nhất (maxpooling) cho đầu vào 5x5 và bộ lọc 3x3 với hai dạng bước trượt là 1 và 2
Hình 2-12: Ví dụ phép tổng hợp trung bình (averagepooling) cho đầu vào 5x5 và bộ lọc 3x3 với hai dạng bước trượt là 1 và 2
Tầng liên kết đầy đủ (Fully-connected) có kiến trúc tương tự như mạng nơ ron nhân tạo đã được mô tả ở mục 3.1.1 Kết quả đầu ra từ tầng tích chập và tầng tổng hợp là các ma trận hai chiều hoặc ba chiều, sau đó được làm phẳng (Flatten) thành một vector trước khi đưa vào tầng liên kết đầy đủ Lớp cuối cùng trong tầng liên kết đầy đủ chính là đầu ra cho bài toán.
Region Proposal Network
Region Proposal Network (RPN) là công cụ rút trích các Region of Interest
RoI, hay còn gọi là các vùng có khả năng chứa đối tượng từ feature map của ảnh, là một phần quan trọng trong quy trình xử lý hình ảnh Ảnh đầu vào được truyền qua một backbone CNN để tạo ra feature map, sau đó sẽ được đưa vào mạng con RPN để tiếp tục xử lý.
• Output: o Binary object classification : Dùng để phân biệt đối tượng (object) với nền (background) o Bounding box regression: Dùng để xác định vùng ảnh có khả năng chứa đối tượng
Hình 2-13: Model Region Proposal Network.[11]
Feature Pyramid Network
Việc phát hiện đối tượng ở các quy mô khác nhau, đặc biệt là đối với các đối tượng nhỏ, là một thách thức trong xử lý ảnh Sử dụng hình ảnh với các tỷ lệ khác nhau có thể hỗ trợ trong việc phát hiện, nhưng việc xử lý nhiều hình ảnh độc lập sẽ tốn thời gian và yêu cầu bộ nhớ cao Do đó, hình chóp ảnh (Featurized image pyramid) chỉ nên áp dụng khi cần độ chính xác cao mà không yêu cầu tốc độ Để cải thiện tốc độ, giải pháp tiêu chuẩn là sử dụng single feature với đầu vào là ảnh đơn lẻ Một lựa chọn khác là Pyramidal Feature hierarchy, cho phép dự đoán đối tượng tại mỗi lớp tương tự như các mô hình SSD, nhưng có thể kém hiệu quả trong việc phát hiện các đối tượng nhỏ hơn do giảm chi phí tính toán.
Hình 2-14: Các mô hình trích xuất đặc trưng.[10]
Mạng Kim Tự Tháp Đặc Trưng (FPN) là một công cụ trích xuất đặc trưng hiệu quả, được thiết kế theo cấu trúc kim tự tháp để đạt được độ chính xác và tốc độ cao FPN kết hợp hai đường đi: bottom-up với độ phân giải thấp, mạnh về ngữ nghĩa, và top-down với độ phân giải cao, mặc dù yếu về ngữ nghĩa Nhờ vào ngữ nghĩa phong phú ở mọi cấp độ và khả năng xây dựng nhanh chóng từ một mô hình ảnh đầu vào duy nhất, FPN cải thiện khả năng trích xuất đặc trưng, đồng thời duy trì tốc độ như các phương pháp khác, giúp phát hiện hiệu quả những đối tượng nhỏ hơn.
Mô hình phát hiện đối tượng R-CNN
R-CNN (Regions with CNN features) là lớp các mô hình xác định vùng đặc trưng dựa trên các mạng CNN được phát triển bởi Ross Girshick và các cộng sự Lớp các mô hình này gồm ba mô hình chính là R-CNN, Fast R-CNN và Faster-RCNN được thiết kế cho các nhiệm vụ định vị vật thể và nhận diện vật thể
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 [10]
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 bài toá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ả
33 tốt nhất trên bộ dữ liệu VOC-2012 và bộ dữ liệu phát hiện đối tượng ILSVRC-
Kiến trúc của R-CNN gồm ba thành phần:
• 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ả ở hình bên dưới:
Hình 2-15: Kiến trúc mô hình R-CNN.[5]
Mô hình phát hiện đối tượng YOLO
YOLO là một mô hình mạng CNN dành cho việc phát hiện, nhận dạng, phân loại đối tượng Đây là một mô hình được tạo ra từ việc kết hợp các
Convolutional layers và Connected Layers và là thuật toán OD nhanh nhất hiện tại trong các lớp mô hình OD Nó có thể đạt được tốc độ gần như real-time mà độ chính xác không quá giảm so với các model thuộc top đầu
YOLO hiện nay đã có 4 phiên bản chính thức, phát triển và cải tiến qua từng phiên bản
YOLO phiên bản đầu tiên được ra đời năm 2015 bởi Joseph Redmon và các cộng sự [1] Ý tưởng chính của YOLOv1 là chia ảnh đầu vào thành các ô (grid of cells) với kích thước 𝑆𝑥𝑆 (default là 7𝑥7) Trong đó, mỗi ô sẽ chịu trách nhiệm dự đoán các bounding boxes, nếu tâm của nó nằm trong ô Với mỗi grid cell, mô hình sẽ đưa ra dự đoán cho B bounding box Tương ứng với mỗi box trong 𝐵 bounding box này sẽ là 5 tham số gồm (𝑥, 𝑦, 𝑤, ℎ, 𝑐𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒) lần lượt là tọa độ tâm bounding box (𝑥, 𝑦), chiều rộng, chiều cao và độ tự tin Toàn bộ dự đoán được thực hiện trên một bức ảnh = 𝑆 𝑥 𝑆 𝑥 ( 𝐵 ∗ 5 + 𝐶 ) Trong đó:
• 𝑆 𝑥 𝑆 = Tổng số lượng ảnh mà YOLO sẽ phân chia trên tập đầu vào
• 𝐵 : là số lượng bounding boxes được dự đoán trên toàn bộ bức ảnh
• 5 : là 5 tham số sẽ được dự đoán gồm: 𝑥, 𝑦, 𝑤, ℎ, confidence score
• 𝐶: Xác suất có điều kiện cho số lớp
Trong ví dụ này, hình ảnh được chia thành lưới 7x7, với 10 bounding boxes dự đoán cho 3 lớp đối tượng: chó, xe đạp và xe hơi Tổng số dự đoán sẽ là 7 * 7 * (10 * 5 + 3) = 2597 Độ tự tin của mỗi dự đoán cho bounding box được xác định bởi công thức Pr(Object) * IOU(pred, truth), trong đó Pr(Object) là xác suất tồn tại đối tượng.
Trong bài viết này, chúng ta tìm hiểu về 35 tượng trong cell và chỉ số 𝐼𝑂𝑈(𝑝𝑟𝑒𝑑, 𝑡𝑟𝑢𝑡ℎ), phản ánh mức độ trùng lắp giữa bounding box thực tế và bounding box dự đoán của mô hình Đặc biệt, khi không có đối tượng trong ô, giá trị của 𝑐𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 sẽ bằng 0.
Hình 2-16: Hình minh họa hoạt động của các mô hình one-stage (YOLO) [1]
YOLOv1 gặp ràng buộc khi mỗi ô lưới chỉ chứa một đối tượng, dẫn đến việc không thể phát hiện các đối tượng nằm chung ô hoặc các đối tượng nhỏ xuất hiện theo nhóm, như đàn chim Thêm vào đó, phiên bản đầu tiên còn tồn tại lỗi định vị đối tượng cao và chỉ dự đoán được khoảng 49 đối tượng.
Mô hình YOLOv2, được cập nhật bởi Joseph Redmon và Ali Farhadi trong bài báo năm 2016 mang tên YOLO9000: Better, Faster, Stronger, đã cải thiện hiệu suất so với phiên bản YOLOv1 Với khả năng phát hiện lên đến 9000 lớp đối tượng, YOLOv2 không chỉ nâng cao độ chính xác mà còn cải thiện khả năng định vị đối tượng, mang lại kết quả tốt hơn Để đạt được điều này, YOLOv2 đã tích hợp thêm nhiều kỹ thuật mới.
• Batch Normalization giúp cải thiện độ đo mAP, loại bỏ dropout để tránh mô hình bị quá khớp (overfitting)
• High resolution classifier để huấn luyện mạng phân loại với ảnh đầu vào kích thước nhỏ 224 𝑥 224 và tăng độ phân giải lên 448 để dự đoán Điều đó giúp mạng điều chỉnh bộ lọc sao cho ảnh đầu vào huấn luyện có độ phân giải cao hơn, giúp cải thiện độ đo mAP gần 4%
• Convolutional with Anchor Box (Multi-object prediction per grid cell):
Sử dụng kiến trúc anchor box để dự đoán các bounding box và loại bỏ các lớp fully connected Với mỗi anchor box hoặc “prior box” đại diện vị trí, hình dạng và kích thước lý tưởng cho đối tượng mà nó dự đoán, mô hình sẽ tính các bounding box của các đối tượng có điểm số IoU cao nhất để quyết định xem bounding box đó có chứa đối tượng hay không
• Dimension Clusters: Sử dụng k-mean clustering để chọn ra anchor box tốt nhất cho mạng
• Direct location prediction: YOLOv2 sử dụng hàm sigmoid để hạn chế giá trị trong khoảng từ 0 tới 1 để mô hình được ổn định và hạn chế các dự đoán bounding box ở xung quanh grid cell
• Fine-Grained Features: Thay vì sử dụng feature map 7𝑥7 như phiên bản đầu tiên, YOLOv2 sử dụng feature map 13𝑥13 để dự đoán Điều này giúp tăng hiệu suất mô hình khoảng 1%
• Darknet-19: Để tăng tốc độ cho YOLOv2, nhóm tác giả sử dụng mạng Darknet-19 – gồm 19 lớp convolution và 5 lớp maxpooling
Tác giả áp dụng hệ thống phân cấp WordTree để tích hợp các tập dữ liệu lớn như COCO và ImageNet, nhằm làm phong phú thêm cho bộ dữ liệu của mình.
YOLOv3 có kiến trúc khá giống với YOLOv2 nhưng được bổ sung những cải tiến gồm:
• Bounding box predictions: YOLOv3 sẽ cho chấm điểm cho các đối tượng được phát hiện trong 1 bounding box bằng cách sử dụng phương pháp Logistic Regression
• Class Predicitons: Thay vì sử dụng softmax như các phiên bản trước, YOLOv3 sử dụng phân loại logistic cho mỗi lớp để có thể phân loại nhiều nhãn hơn
YOLOv3 áp dụng phương pháp dự đoán đa tỷ lệ tương tự như mạng Feature Pyramid Network (FPN), với ba tỷ lệ khác nhau Mỗi tỷ lệ sử dụng ba anchor boxes, cho phép dự đoán ba hộp cho mỗi ô lưới Cách tiếp cận này giúp nâng cao khả năng nhận diện các đối tượng có kích thước nhỏ.
• Darknet-53: Để tăng tốc độ cho YOLOv3, nhóm tác giả thiết kế Darknet-
53 gồm 53 lớp convolution với việc thêm các residual blocks (kiến trúc sử dụng trong ResNet)
Hình 2-17: Kiến trúc mô hình YOLOv3.[17]
Kể từ khi phiên bản YOLOv3 ra mắt, Joseph Redmon, người sáng lập YOLO, đã ngừng nghiên cứu và cải tiến kiến trúc này Tuy nhiên, nhờ vào sự nổi tiếng của YOLO, cộng đồng nghiên cứu vẫn tiếp tục phát triển và nâng cấp mô hình Vào tháng 4 năm 2020, YOLOv4 đã được phát hành bởi Alexey Bochkovski cùng với sự góp mặt của Chien-Yao Wang, Hong-Yuan Mark Liao và các cộng sự khác.
Mục tiêu chính của YOLOv4, được trình bày trong bài báo “YOLOv4: Optimal Speed and Accuracy of Object Detection”, là phát triển hệ thống phát hiện đối tượng với tốc độ xử lý nhanh và tối ưu hóa cho tính toán song song So với các phiên bản trước, YOLOv4 được cài đặt trên Darknet, đạt giá trị AP 43.5% trên tập dữ liệu COCO và tốc độ thực thi 65 FPS trên Tesla V100 Đặc biệt, YOLOv4 cho phép người dùng dễ dàng huấn luyện và phát hiện đối tượng chỉ với GPU 1080 Ti hoặc 2080 Ti, mang lại hiệu suất nhanh hơn và chính xác hơn.
Hình 2-18: Kết quả so sánh đánh giá mô hình phát hiện đối tượng YOLOv4 với các mô hình state-of-the-art khác.[4]
Hình 2-19: Kiến trúc mô hình object detection
So với YOLOv3 trước đó, YOLOv4 cải thiện đáng kể về độ chính xác và tốc độ tính toán nhờ những thay đổi sau:
THỰC NGHIỆM VÀ ĐÁNH GIÁ
Mô tả tập dữ liệu thực nghiệm
3.1.1 Bộ dữ liệu huấn luyện
Bộ dữ liệu huấn luyện TaDeVi gồm 2704 file ảnh định dạng jpg, jpeg và
Tôi đã thu thập 2704 file nhãn XML từ ảnh chụp các file PDF của các tạp chí khoa học từ các hội nghị trong nước, với độ phân giải 1497 x 2127 Các file này được phân loại và tổ chức một cách khoa học để phục vụ cho nghiên cứu và phân tích.
Bài viết này đề cập đến ba tập dữ liệu quan trọng trong quá trình huấn luyện mô hình, bao gồm tập huấn luyện với 1.469 ảnh và nhãn tương ứng, tập dữ liệu đánh giá gồm 735 ảnh kèm nhãn, và 500 ảnh được sử dụng làm tập kiểm tra Các thông tin này được trình bày chi tiết trong hình 4.1 dưới đây.
Hình 3-1: Bảng phân chia bộ dữ liệu
Dựa trên bộ dữ liệu, chúng tôi nhận thấy sự chênh lệch rõ rệt giữa các lớp đối tượng, trong đó đối tượng caption chiếm khoảng 49.6%, table chiếm 24.4% và figure khoảng 26% Thông tin chi tiết được thể hiện trong hình 3.2.
Hình 3-2: Bảng phân phối các lớp của toàn bộ tập dữ liệu
3.1.2 Giới thiệu các lớp đối tượng
Bảng (#table) là một đối tượng quan trọng trong việc lưu trữ dữ liệu có cấu trúc, bao gồm các hàng và cột được phân chia rõ ràng bằng các đường thẳng Mỗi bảng giúp tổ chức và sắp xếp dữ liệu theo các tiêu chí nhất định, đồng thời đi kèm với một chú thích ở phía trên hoặc dưới để giải thích nội dung bảng.
Hình ảnh (#figure) là công cụ hiệu quả để trực quan hóa và cô đọng thông tin, giúp nội dung trở nên sinh động và dễ hiểu hơn Mỗi hình ảnh thường đi kèm với một chú thích ở trên hoặc dưới, cung cấp thêm thông tin cho người xem.
• Chú thích (#caption) là một đối tượng dùng để thể hiện nội dung cụ thể của hình ảnh hoặc bảng
Tài liệu dạng ảnh bao gồm các tệp tin từ PDF, Word, PowerPoint, tài liệu điện tử hoặc các tài liệu giấy được quét hoặc chụp lại và lưu dưới định dạng ảnh như jpg, png, jpeg.
3.1.3 Đặc điểm của lớp đối tượng trên bộ dữ liệu
Bảng (table) có kích thước, bố cục và định dạng đa dạng, mỗi bảng đều đi kèm với một chú thích (caption) Có thể có một hoặc nhiều bảng nằm cùng một dòng với một chú thích chung Nếu không đủ không gian để chứa toàn bộ bảng, bảng có thể bị cắt hoặc phân khúc sang trang mới hoặc một vùng layout khác.
Các hình minh họa (figure) thường có kích thước và bố cục đa dạng, với mỗi hình hoặc nhóm hình đi kèm một chú thích (caption) để giải thích nội dung.
Các chú thích có nhiều định dạng và vị trí khác nhau, thường khiến người đọc khó phân biệt Nhiều hình ảnh và bảng có thể thiếu chú thích hoặc được giải thích bằng đoạn văn phía trên, dẫn đến sự nhầm lẫn Hơn nữa, các chú thích dễ bị nhầm lẫn với tiêu đề đoạn văn hoặc các ghi chú bên dưới bảng và hình ảnh.
Mô tả quy trình thực nghiệm
Để thực nghiệm với bài toán “Phát hiện đối tượng bảng trong tài liệu dạng ảnh”, tôi chia thực nghiệm thành các quá trình xử lý sau:
Hình 3-3: Luồng xử lý quá trình cài đặt, chạy thực nghiệm với mô hình
Trong nghiên cứu YOLOv4, chúng tôi bắt đầu bằng việc thu thập bộ dữ liệu ảnh chụp và ảnh scan từ các bài báo khoa học của các hội nghị trong nước, sau đó tiến hành gán nhãn cho dữ liệu Khi quá trình gán nhãn hoàn tất, bộ dữ liệu sẽ được chuyển đổi sang định dạng tương thích với YOLOv4 để phục vụ cho việc huấn luyện mô hình Trong quá trình huấn luyện, chúng tôi cập nhật tham số trọng số (weight) và đánh giá khả năng học của mô hình sau mỗi 1000 vòng lặp bằng độ đo mAP Khi hoàn tất, chúng tôi sử dụng tập dữ liệu kiểm thử ngẫu nhiên để đo lường độ chính xác của mô hình thông qua các chỉ số như AP và IoU Kết quả đầu ra của mô hình bao gồm ảnh với bounding box, nhãn và độ tự tin (confidence) của các lớp đối tượng.
3.2.1 Thu thập và tiền xử lý dữ liệu
Để thu thập và gán nhãn ảnh, cần thực hiện quy trình thu thập, xử lý và gán nhãn ảnh, sau đó tải ảnh lên Tạo hai file train.txt và test.txt để lưu trữ đường dẫn đến ảnh huấn luyện và ảnh kiểm thử Sau khi hoàn tất việc gán nhãn, chuyển đổi định dạng nhãn từ xml sang txt Nội dung của file annotation định dạng txt sẽ được sử dụng cho YOLO.
Là giá trị index đánh dấu lớp đối tượng của ảnh theo thứ tự trong file yolo.data
Là tọa độ tâm của bounding-box
Là chiều rộng của bounding-box đã được chuẩn hóa bằng cách chia cho chiều rộng của ảnh
Là chiều cao của bounding-box đã được chuẩn hóa bằng cách chia cho chiều cao của ảnh
Bảng 3-1: Mô tả ý nghĩa giá trị các thuộc tính trong file annotations định dạng txt
3.2.2 Cài đặt môi trường huấn luyện
46 o CMake >= 3.12 o CUDA >= 10.0 o OpenCV >= 2.4 o cuDNN >= 7.0 o GPU with CC >= 3.0
• Sử dụng mã nguồn mở YOLOv4: https://github.com/AlexeyAB/darknet
• Đáp ứng các yêu cầu cài đặt ở mục 4.2.1
• Sử dụng lại mạng Darknet có sẵn
3.2.3 Cài đặt các tham số cho quá trình huấn luyện
Tiến hành cài đặt các file cấu hình với thông số như sau: Makefile, là file chứa các thông số cấu hình máy để chạy mô hình Trong bài thực nghiệm này, tôi sử dụng GPU để thực hiện các phép toán.
▪ CUDNN_HALF=1 o yolo.name: file chứa các lớp huấn luyện - ở đây gồm 3 lớp tương đương với các số thứ tự từ 0-2 gồm:
▪ caption o yolo.data: file chứa thông tin lớp và đường dẫn các file cần thiết
▪ backupckup o yolov4-custom.cfg : file cấu hình
• Download pre-trained weights-file để huấn luyện model: https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo _v3_optimal/yolov4.conv.137
3.2.4 Tiến hành huấn luyện model
• Khởi tạo mô hình mạng darknet bằng command sau: make
• Chạy huấn luyện bằng command:
!./darknet detector train yolo.data cfg/yolov4- custom.cfg yolov4.conv.137 -dont_show -map
• Kiểm tra phiên bản CUDA của máy bằng command sau:
/usr/local/cuda/bin/nvcc –version
Để khắc phục lỗi liên quan đến đường dẫn CUDA, bạn cần thêm hai lệnh sau vào cấu hình của mình: `export PATH=/usr/local/cuda-/bin${PATH:+:${PATH}}` và `export LD_LIBRARY_PATH=/usr/local/cuda-/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}` Việc này sẽ đảm bảo rằng đường dẫn CUDA được thiết lập đúng cách.
Phương pháp đánh giá
Intersection over Union (IoU) là tiêu chuẩn quan trọng để đánh giá sự trùng lắp giữa hai bounding boxes trong các mô hình phát hiện đối tượng Để tính toán độ đo IoU, cần xác định các giá trị liên quan.
• Ground-truth bounding boxes: vị trí trên thực tế của đối tượng
• Predicted bounding boxes: vị trí dự đoán đối tượng sau khi model dự đoán
Hình 3-4: Công thức minh họa để tính IoU [16]
• Area of Overlap là vùng overlap (giao) giữa ground-truth bounding boxes và predicted bounding boxes
• Area of Union là vùng được union (hợp) bởi cả 2 ground-truth bounding boxes và predicted bounding boxes
Kết quả IoU được cho là tốt khi >=0.5
Để đánh giá mô hình, chúng ta có thể thay đổi ngưỡng và quan sát giá trị của Precision và Recall Khái niệm Average Precision (AP) được định nghĩa tương tự và là một chỉ số phổ biến trong việc đo lường độ chính xác của các mô hình phát hiện đối tượng Trong quá trình này, chúng ta cũng cần tìm hiểu các định nghĩa về True Positive (TP), False Positive (FP) và False Negative (FN).
• TP (True Positive): số lượng điểm dữ liệu đúng được model dự đoán đúng
• FP (False Positive): số lượng điểm dữ liệu sai được model dự đoán đúng
• FN (False Negative): số lượng điểm dữ liệu đúng được model dự đoán là sai
• TN (True Negative): số lượng điểm dữ liệu sai được model dự đoán đúng
Precision là tỷ lệ giữa số dự đoán tích cực đúng và tổng số dự đoán tích cực, bao gồm cả dự đoán sai Khi Precision cao, điều này cho thấy độ chính xác của các điểm tìm kiếm là tốt.
Recall là tỷ lệ giữa số dự đoán tích cực đúng (True Positive) và tổng số dự đoán tích cực đúng cộng với số dự đoán tiêu cực sai (False Negative) Một giá trị Recall cao cho thấy tỷ lệ True Positive cao, đồng nghĩa với việc khả năng bỏ sót các điểm thực sự tích cực là thấp.
Precision và Recall có giá trị nằm trong khoảng [0,1], nhưng không thể chỉ dựa vào điểm số cao của chúng để đánh giá chất lượng mô hình Mỗi bài toán có ý nghĩa riêng đối với các giá trị này.
Mean Average Precision (mAP) là trung bình điểm số AP (AP score) của n class và được định nghĩa bằng công thức sau:
Đánh giá mô hình
• Tính giá trị mAP của toàn bộ tập test bằng command sau:
./darknet detector map yolo.data cfg/yolov4-custom.cfg backup/yolov4-custom_final.weights
• Chạy kiểm thử toàn bộ tập dữ liệu và lưu lại kết quả vào file txt:
./darknet detector test yolo.data cfg/yolov4-custom.cfg backup/yolov4-custom_final.weights -ext_output - dont_show -out result.json < data/test.txt
Kết quả
Kết thúc phần huấn luyện, kết quả thu được là:
2,000 20.92 17.52 32.85 12.38 Bảng 3-2: Bảng đánh giá kết quả dự đoán dựa trên mô hình YOLOv4
3.5.1 Trực quan hóa kết quả
Biểu đồ trong Hình 3-6 thể hiện giá trị độ lỗi qua từng vòng lặp và độ đo mAP được sử dụng để đánh giá trong quá trình huấn luyện với tập dữ liệu đánh giá (validation).
• Trường hợp model dự đoán tốt (good case)
Hình 3-7: Ảnh kết quả dự đoán tốt trên tập dữ liệu kiểm thử (test) a) ảnh đầu vào; b) ảnh dự đoán với iteration = 1000; c) ảnh dự đoán với iteration = 2000
• Trường hợp model dự đoán xấu (bad case)
Hình 3-8: Ảnh kết quả dự đoán xấu trên tập dữ liệu kiểm thử (test) a) ảnh đầu vào; b) ảnh dự đoán với iteration = 1000; c) ảnh dự đoán với iteration = 2000
Kết quả thực nghiệm cho thấy mô hình YOLOv4 có hiệu suất thấp trong việc nhận diện các lớp Table và Caption Qua việc trực quan hóa kết quả và hình ảnh dự đoán, tôi đã nhận ra những điểm cần cải thiện.
Các lớp đối tượng trong nghiên cứu cho thấy rằng Table thường bị nhầm lẫn với Figure do sự tương quan cao giữa chúng, đặc biệt khi xuất hiện đường thẳng ở đầu hoặc cuối bài báo Mặc dù lớp Caption có tỉ lệ phân phối cao nhất trong bộ dữ liệu, nhưng đây lại là đối tượng khó dự đoán nhất, với độ chính xác chỉ khoảng 10% khi 𝑖𝑡𝑒𝑟𝑎𝑡𝑖𝑜𝑛 = 1000 và 12% khi 𝑖𝑡𝑒𝑟𝑎𝑡𝑖𝑜𝑛 = 2000 Vị trí của Caption, có thể nằm ở trên hoặc dưới bảng/hình, gây khó khăn cho mô hình dự đoán, dẫn đến việc dễ bị nhầm lẫn với tiêu đề hoặc đoạn văn bản khác, làm giảm độ chính xác Đối với Figure, kết quả dự đoán chỉ đạt khoảng 39%, và cũng dễ bị nhầm lẫn do hình ảnh bị in nhòe từ trang sau.
Bộ dữ liệu cho thấy sự phân phối không đồng đều giữa các lớp đối tượng như Table, Figure và Caption, trong đó Figure chiếm tỷ lệ lớn nhất trong các bài báo khoa học.
Chất lượng ảnh chụp có thể bị ảnh hưởng bởi việc in ấn nhòe và nhiều yếu tố khác, làm cho việc dự đoán mô hình trở nên khó khăn hơn khi so sánh với ảnh chụp màn hình từ file PDF.
Mặc dù model YOLOv4 đạt độ chính xác gần 98% trong quá trình huấn luyện trên tập training và validation, nhưng khi áp dụng vào thực tế với các bức ảnh gần gũi hơn, độ chính xác lại giảm đáng kể Có nhiều nguyên nhân dẫn đến tình trạng này.
Các bức ảnh huấn luyện khác biệt so với các bức ảnh thực tế về nhiều khía cạnh như độ phân giải, cường độ màu sắc, chất lượng ảnh, kích thước, chiều và hướng của đối tượng trong ảnh.
• Bộ dữ liệu huấn luyện có thể chưa đại diện được cho toàn bộ các lớp đối tượng được huấn luyện
Phân phối của tập dữ liệu huấn luyện có sự khác biệt lớn so với thực tế, khi số lượng các bảng (table) trong tập huấn luyện vượt trội hơn so với các lớp hình (figure), với hơn 50% số lượng lớp chú thích (caption) Ngược lại, trong tập kiểm thử, các lớp đối tượng bảng chỉ chiếm 30% so với lớp hình và gần 20% so với lớp chú thích Chi tiết về phân phối các lớp đối tượng được thể hiện trong các hình 3-9, 3-10, và 3-11.
Hình 3-9: Biểu đồ phân phối các lớp của tập dữ liệu huấn luyện
Hình 3-10: Biểu đồ phân phối các lớp của tập dữ liệu kiểm thử
Hình 3-11: Biểu đồ phân phối các lớp của tập dữ liệu kiểm thử