Sự kết hợp giữa bộ dữ liệu mới này và các mô hình đã nêu bên trên hứahẹn là một hướng nghiên cứu tốt cho ra kết quả khả quan.Đề tài dành sự quan tâm chủ yếu vào xem xét ứng dụng một số m
Trang 1TRƯỜNG ĐẠI HỌC QUY NHƠN
LÊ PHƯƠNG THẢO
ỨNG DỤNG HỌC MÁY TRONG NGHIÊN CỨU BÀI TOÁN PHÂN LOẠI DỮ LIỆU HÌNH ẢNH
X-QUANG LỒNG NGỰC
ĐỀ ÁN THẠC SĨ KHOA HỌC DỮ LIỆU ỨNG DỤNG
Bình Định - Năm 2023
Trang 2TRƯỜNG ĐẠI HỌC QUY NHƠN
LÊ PHƯƠNG THẢO
ỨNG DỤNG HỌC MÁY TRONG NGHIÊN CỨU BÀI TOÁN PHÂN LOẠI DỮ LIỆU HÌNH ẢNH
Trang 3Lời cam đoan
Tôi xin cam đoan nội dung trong đề tài "Ứng dụng học máy trong nghiên cứu bài toán phân loại dữ liệu hình ảnh X-quang lồng ngực" là kết quả thực hiện của tác giả
cùng với cộng sự và có định hướng của thầy hướng dẫn Các nội dung và kết quả sử dụng ởđây đều có trích dẫn và chú thích nguồn gốc rõ ràng
Bình Định, ngày tháng 11 năm 2023
Tác giả
Lê Phương Thảo
Trang 4Lời cảm ơn
Đề án được hoàn thành dưới sự hướng dẫn của Thầy Nguyễn Văn Vũ Tác giả xin bày
tỏ lòng biết ơn chân thành đến Thầy, người đã tận tình giúp đỡ để tác giả có thể hoàn thànhcông việc một cách tốt nhất Tác giả cũng xin chân thành cảm ơn quý Thầy, Cô khoa Toán
và Thống kê, khoa Công nghệ thông tin, Phòng đào tạo sau đại học trường Đại học QuyNhơn, cùng quý thầy cô tham gia giảng dạy cho lớp Cao học Khoa học dữ liệu ứng dụngK24B đã tạo điều kiện giúp đỡ cho tác giả trong quá trình học tập và nghiên cứu Xin gửilời cảm ơn đến bạn Nguyễn Quốc Dương - Lớp Cao học Khoa học dữ liệu ứng dụng K24B,trường Đại học Quy Nhơn đã đồng hành, hỗ trợ tác giả nhiệt tình trong quá trình hoàn thành
đề án Cuối cùng, tác giả cũng xin cảm ơn gia đình, bạn bè đã quan tâm, động viên và giúp
đỡ tác giả trong quá trình học tập và hoàn thành đề án này Lê Phương Thảo được tài trợ bởiTập đoàn Vingroup – Công ty CP và hỗ trợ bởi Chương trình học bổng thạc sĩ, tiến sĩ trongnước của Quỹ Đổi mới sáng tạo Vingroup (VINIF), Viện Nghiên cứu Dữ liệu lớn, mã sốVINIF.2021.ThS.QN.05
Trang 5Mục lục
1.1 Mạng neuron 3
1.1.1 Perceptron đa tầng 4
1.1.2 Hàm kích hoạt 5
1.1.3 Đào tạo có giám sát 6
1.1.4 Chính quy hóa (Regularization) 10
1.2 Mạng neuron tích chập - Convolutional neural networks 11
1.3 Faster R-CNN 13
1.4 Các thước đo đánh giá mô hình phát hiện vật thể 15
1.4.1 Độ chính xác 16
1.4.2 Precision 16
1.4.3 Recall 17
1.4.4 F1 Score 17
1.4.5 Precision và recall trong phát hiện đối tượng 18
1.4.6 AP - average precision và mAP - mean average precision 19
1.4.7 Non-Maximum Suppression (NMS) 19
2 Mô hình YOLO và một số vấn đề liên quan 21 2.1 Lịch sử hình thành 21
2.2 YOLO: You Only Look Once 23
2.2.1 YOLOv1 hoạt động như thế nào? 23
2.2.2 Kiến trúc mô hình YOLOv1 23
2.2.3 Đào tạo mô hình YOLOv1 24
Trang 62.2.4 Những điểm mạnh và hạn chế của YOLOv1 26
2.3 YOLOv2 26
2.4 YOLOv3 28
2.5 YOLOv4 31
2.6 YOLOv5 34
2.7 Scaled-YOLOv4 36
2.8 YOLOR 36
2.9 YOLOX 37
2.10 YOLOv6 38
2.11 YOLOv7 39
2.12 DAMO-YOLO 41
2.13 YOLOv8 42
2.14 PP-YOLO, PP-YOLOv2, and PP-YOLOE 44
2.14.1 PP-YOLO tăng cường và tiền xử lý 45
2.14.2 PP-YOLOv2 45
2.14.3 PP-YOLOE 46
2.15 YOLO-NAS 47
2.16 YOLO với Transformers 49
3 Ứng dụng trong bài toán chẩn đoán bất thường trên ảnh X-quang lồng ngực 51 3.1 Tập dữ liệu 51
3.1.1 Khái quát tập dữ liệu 51
3.1.2 Phân tích tập dữ liệu 52
3.1.3 Xử lý dữ liệu 55
3.2 Tiến trình thực nghiệm 56
3.3 Xây dựng hệ thống giao diện người dùng 58
Trang 7Danh sách bảng
3.1 Các loại bất thường được phát hiện và gắn nhãn trên hình ảnh X-quang 52
3.2 Các tham số đào tạo mô hình Faster R-CNN 57
3.3 Số lượng của mỗi lớp sau khi phân chia tập dữ liệu 58
3.4 Kết quả đào tạo của các mô hình YOLO 58
3.5 Kết quả đào tạo của mô hình YOLOv7 59
Trang 8Danh sách hình vẽ
1.1 Biểu đồ mạng cho một đơn vị xử lý 4
1.2 Biểu đồ mạng cho perceptron (L + 1) tầng 5
1.3 Các hàm kích hoạt Sigmoidal 6
1.4 Minh họa thuật toán Gradient descent 8
1.5 Tổng quan về kiến trúc mạng neuron tích chập (CNN) và quy trình đào tạo 12 1.6 Minh họa lớp tích chập 12
1.7 Tổng quan về kiến trúc Faster R-CNN 14
1.8 IoU - Intersection over union 18
1.9 Precision-recall curve 19
1.10 Ức chế không tối đa (NMS) 20
2.1 Dòng thời gian của các phiên bản YOLO 22
2.2 Dự đoán đầu ra YOLO 24
2.3 Hàm YOLO cost 25
2.4 Anchor boxes 27
2.5 Dự đoán bounding boxes 27
2.6 YOLOv3 Darknet-53 backbone 30
2.7 YOLOv3 Kiến trúc phát hiện đa quy mô 30
2.8 Kiến trúc của mô hình phát hiện vật thể hiện đại 31
2.9 Kiến trúc YOLOv4 33
2.10 Kiến trúc YOLOv5 35
2.11 Sự khác biệt giữa YOLOv3 head và YOLOX decoupled head 38
2.12 Kiến trúc YOLOv6 39
2.13 Kiến trúc YOLOv7 40
2.14 Kiến trúc YOLOv8 43
2.15 Kiến trúc PP-YOLOE 46
2.16 Kiến trúc YOLO-NAS 48
2.17 Kiến trúc ViT-YOLO 50
Trang 93.1 Một số ví dụ minh họa về tập dữ liệu 53
3.2 Minh họa về bảng dữ liệu chứa trong file csv 54
3.3 Phân phối về ghi chú của mỗi bệnh nhân 54
3.4 Phân phối về ghi chú của mỗi bệnh nhân 55
3.5 Phân phối về số lượng chú thích của các bác sĩ 55
3.6 Intersection over Union 56
3.7 Xử lý dữ liệu trên những ảnh có bounding box chồng lên nhau 56
3.8 Cấu hình cho hình ảnh và nhãn tương ứng để đào tạo mô hình YOLO 57
3.9 Sử dụng mô hình YOLOv7 để dự báo bất thường trên ảnh X-quang lồng ngực 60 3.10 Mô tả quy trình của hệ thống thử nghiệm dành cho người dùng 60
3.11 Giao diện hệ thống thử nghiệm dành cho người dùng 61
Trang 10do thúc đẩy tác giả chọn đề tài này.
Có thể nói hai thành phần chủ yếu quyết định hiệu quả của việc ứng dụng AI trongviệc hỗ trợ chẩn đoán bệnh lý về phổi là một mô hình học máy đủ tốt và một bộ dữ liệu
đủ tốt Các bệnh lý về phổi thường xuất hiện dưới dạng một vùng trên phim chụp X-quangngực Có nhiều mô hình máy học giúp phát hiện tổn thương phổi trên ảnh X-quang dựa trênnhững kỹ thuật phát hiện đối tượng khác nhau, chẳng hạn như: CNN, Mask RCNN, FasterR-CNN, YOLO, và đều cho kết quả khá tốt trong một số nghiên cứu trên một số dữ liệu
phim chụp X-quang phổi [5? , 6] Các phiên bản cải tiến gần đây của mô hình cuối cùng
dường như tỏ ra vượt trội hơn về mặt hiệu năng và vẫn còn là chủ đề cho nhiều hướng pháttriển tiếp nối Để xây dựng một mô hình phù hợp cho mục đích nghiên cứu, một bộ dữ liệukiểm thử đủ tốt là yếu tố không thể thiếu, chẳng hạn, ChestX-ray14 [6] phát hành bởi Viện
Y tế Quốc gia Hoa Kỳ (NIH) Gần đây, Viện Nghiên cứu Dữ liệu lớn VinBigdata, Tập đoàn
Trang 11Vingroup đã chia sẻ bộ dữ liệu “Phát hiện bất thường trên ảnh X-quang lồng ngực”1gồm18.000 file mẫu Sự kết hợp giữa bộ dữ liệu mới này và các mô hình đã nêu bên trên hứahẹn là một hướng nghiên cứu tốt cho ra kết quả khả quan.
Đề tài dành sự quan tâm chủ yếu vào xem xét ứng dụng một số mô hình thuộc họ YOLOvào bài toán phát hiện và phân loại bất thường trên hình ảnh X-quang dựa trên bộ dữ liệu
“Phát hiện bất thường trên ảnh X-quang lồng ngực” đề cập bên trên Về mặt nội dung, đề
án được chia thành các chương như sau
Chương 1: Kiến thức chuẩn bị
Trong chương này, chúng tôi hệ thống hóa lại một số kiến thức cơ sở về mạng neuron,các khái niệm và định nghĩa cơ bản trong học sâu
Chương 2: Mô hình YOLO và một số vấn đề liên quan
Mục đích của chương này là thực hiện một khảo sát tương đối toàn diện về các phiênbản YOLO khác nhau Nội dung ở đây được biên tập theo tinh thần cố gắng chuyển tảinhiều nhất có thể những đặc điểm cơ bản của các đối tượng liên quan theo hiểu biết củanhóm thực hiện cùng với tác giả
Chương 3: Ứng dụng trong bài toán chẩn đoán bất thường trên ảnh X-quang lồng ngực
Toàn bộ chương này được dành cho việc trình bày kết quả chính của đề án, vận dụngmột số phiên bản YOLO phù hợp phát hiện bất thường có mặt trên ảnh X-quang lồng ngực.Nhằm minh hoạ cho triển vọng ứng dụng cũng như cải tiến xa hơn, chúng tôi sử dụng kếtquả đạt được của bước nghiên cứu và xây dựng bước đầu một giao diện người dùng đơngiản bằng FastAPI như là một kênh trải nghiệm và tham khảo
1
Trang 12Chương 1
Kiến thức chuẩn bị
Chương này nhằm mục đích hệ thống hoá lại khái niệm và thuật ngữ chính có liên quanlàm cơ sở cho việc triển khai các nội dung về sau Chúng được chọn lọc ra từ một số lượngtương đối các tài liệu tham khảo thuộc lĩnh vực có liên quan đến đề tài, và rất nhiều trong
số đó là tài liệu ngoại văn Để đảm bảo tính thống nhất, chúng tôi đã cố gắng thực hiện việcchuyển ngữ khi có phương án phù hợp, tuy nhiên, vẫn còn nhiều tình huống chưa thể khắcphục được tối ưu tác giả vẫn dùng lại thuật ngữ gốc tiếng Anh trong nguyên bản
1.1 Mạng neuron
Mạng neuron (nhân tạo) bao gồm một tập hợp các đơn vị xử lý (processing units) đượckết nối với nhau Cho các giá trị đầu vào w0, x1, , xD, với w0là đại diện cho các giá trịnhập vào từ bên ngoài và x1, , xDlà đầu vào có nguồn gốc từ các đơn vị xử lý khác trongmạng neuron, đơn vị xử lý tính toán đầu ra của nó là y = f (z) f được gọi là hàm kích hoạt
và z thu được bằng cách áp dụng quy tắc lan truyền (propagation rule), ở đó các input đượcánh xạ tới đầu vào thực tế z Mô hình của một đơn vị xử lý này bao gồm định nghĩa vềneuron trong [7], thay vì quy tắc lan truyền, một bộ cộng (adder) được sử dụng để tính z làtổng trọng số của tất cả các input
Mạng neuron có thể được hình dung dưới dạng đồ thị có hướng gọi là biểu đồ mạng(network graph) [8] Mỗi đơn vị được biểu diễn bằng một nút được gắn nhãn theo đầu racủa nó và các đơn vị được kết nối với nhau bằng các cạnh có hướng Đối với một đơn vị xử
lý, điều này được minh họa trong Hình 1.1, trong đó đầu vào bên ngoài w0chỉ được thêmvào nhằm mục đích minh họa và thường bị bỏ qua
Để thuận tiện, chúng tôi phân biệt đơn vị đầu vào và đơn vị đầu ra Đơn vị đầu vào tínhtoán đầu ra y := x trong đó x là giá trị đầu vào duy nhất của đơn vị Các đơn vị đầu ra có thể
Trang 13Do đó, để bao gồm cả độ lệch w0, một đơn vị giả cógiá trị 1 được đưa vào
chấp nhận một số lượng giá trị đầu vào tùy ý Nhìn chung, mạng đại diện cho một hàm y(x)
có kích thước được cố định bởi số lượng đơn vị đầu vào và đơn vị đầu ra, điều này có nghĩa
là đầu vào của mạng được các đơn vị đầu vào chấp nhận và các đơn vị đầu ra tạo thành đầu
ra của mạng
Thuật toán Perceptron (L + 1) tầng, được minh họa trong Hình 1.2, bao gồm các đơn vịđầu vào D, đơn vị đầu ra C và một số đơn vị được gọi là đơn vị ẩn Các đơn vị được sắp xếpthành các tầng, đó là một perceptron nhiều tầng bao gồm một tầng đầu vào, một tầng đầu
ra và L các tầng ẩn1 Đơn vị thứ i trong tầng l tính toán đầu ra
Theo ngôn ngữ toán học, một perceptron đa tầng nói chung đại diện cho một hàm
y(·, w) : RD→ RC, x 7→ y(x, w) (1.3)với vectơ đầu ra y(x, w) bao gồm các giá trị đầu ra yi(x, w) := y(L+1)i và w là vectơ của tất
cả các trọng số trong mạng
1 Trên thực tế, một perceptron (L + 1) tầng có (L + 2) tầng bao gồm cả tầng đầu vào Tuy nhiên, như đã nêu trong [9], tầng đầu vào không được tính vì không có quá trình xử lý thực sự nào diễn ra.
Trang 14y(1)
m (1)
0
y(L)1
Trong [7], ba loại hàm kích hoạt được thảo luận: hàm ngưỡng (threshold functions),hàm tuyến tính từng đoạn (piecewise-linear functions) và hàm sigmoid Hàm ngưỡng phổbiến được đưa ra bởi hàm bước Heaviside
Loại hàm kích hoạt được sử dụng phổ biến nhất là hàm sigmoid Ví dụ, hàm sigmoidlogistic được cho bởi
Đồ thị của nó có hình chữ S, khả vi, đơn điệu Một ứng viên khác là hàm tanh(z), có thểđược coi là phép biến đổi tuyến tính của hàm sigmoid logistic trên khoảng [−1, 1]
Trang 15−4 −2 0 2 40
Đào tạo có giám sát là vấn đề xác định trọng số mạng để xấp xỉ ánh xạ mục tiêu cụ thể
g Trong thực tế, g có thể chưa biết nên ánh xạ được đưa ra bởi một tập dữ liệu đào tạo Bộ
2 Nhiệm vụ phân loại có thể được phát biểu như sau: Cho một vectơ đầu vào x có kích thước D, mục tiêu là gán
x cho một trong các lớp rời rạc C [9].
3 Các đầu ra y(L+1), 1 ≤ i ≤ C, có thể được hiểu là xác suất khi chúng nằm trong [0, 1] và có tổng bằng 1.
Trang 16đào tạo
TS:= {(xn,tn) : 1 ≤ n ≤ N}, (1.9)bao gồm cả giá trị đầu vào xn và giá trị đầu ra mong muốn tương ứng, có thể có nhiễu
tn≈ g(xn) [7]
Các thước đo sai số
Quá trình đào tạo được thực hiện bằng cách điều chỉnh các trọng số w của mạng neuron
để giảm thiểu hàm mục tiêu đã chọn, hàm này có thể được hiểu là thước đo sai số giữa đầu
ra mạng y(xn) và đầu ra mục tiêu mong muốn tn Các lựa chọn phổ biến để phân loại baogồm thước đo tổng bình phương sai số được đưa ra bởi
Tiếp theo, chúng tôi giới thiệu một số khái niệm thường dùng trong học sâu
Stochastic training Giá trị đầu vào được chọn ngẫu nhiên và trọng số mạng được cập nhật
dựa trên sai số En(w)
Batch training Tất cả các giá trị đầu vào đều được xử lý và trọng số được cập nhật dựa
trên sai số tổng thể E(w) = ∑Nn=1En(w)
Online training Mỗi giá trị đầu vào chỉ được xử lý một lần và các trọng số được cập nhật
bằng sai số En(w)
Mini-batch training Một tập hợp con ngẫu nhiên M ⊆ {1, , N} (các mini batch) của
tập huấn luyện được xử lý và các trọng số được cập nhật dựa trên sai số tích lũy
Trang 17ở vị trí hiện tại vì nó mô tảhướng đi xuống dốc nhất Tốc
độ học γ mô tả kích thước bướcđược thực hiện trong mỗi bướclặp Do đó, gradient descent
mô tả một kỹ thuật tối ưu hóabậc nhất
trong đó ∇Enlà đạo hàm của sai số En
Do sự phức tạp của sai số Ennên cần sử dụng phương pháp lặp để giải nghiệm Đặt w[t]biểu thị vectơ trọng số trong lần lặp thứ t Trong mỗi lần lặp, chúng tôi tính toán và cậpnhật trọng số ∆w[t] và trọng số tương ứng
Từ tối ưu hóa không ràng buộc, chúng tôi có sẵn một số kỹ thuật tối ưu hóa Gradientdescent là một phương pháp "bậc nhất", có nghĩa là nó chỉ sử dụng thông tin của đạo hàmcấp một của Envà do đó có thể được sử dụng kết hợp với lan truyền ngược sai số như được
mô tả trong phần 1.1.3, trong khi đó Phương pháp Newton là phương pháp bậc hai và cầnđánh giá ma trận Hessian Hncủa En (hoặc một phép tính gần đúng thích hợp của ma trậnHessian) trong mỗi bước lặp
Gradient descent: Gradient descent được thúc đẩy bởi ý tưởng thực hiện một bước theo
hướng giảm dần dốc nhất, đó là hướng của độ dốc âm, để đạt đến mức tối thiểu.Nguyên tắc này được minh họa bằng Hình 1.4 Do đó, việc cập nhật trọng số đượcđưa ra bởi
∆w[t] = −γ∂En
∂w[t]= −γ∇En(w[t]), (1.14)trong đó γ là tốc độ học Như đã thảo luận trong [9, p.263-272], cách tiếp cận này cómột số khó khăn, ví dụ như làm thế nào chọn tốc độ học học nhanh nhưng đồng thờitránh dao động5
Phương pháp Newton Mặc dù có sẵn một số phần mở rộng của phương pháp gradient
descent, nhưng các phương pháp bậc hai hứa hẹn sự hội tụ nhanh hơn do sử dụng
4 Ma trận Hessian H n của một sai số E n là ma trận đạo hàm từng phần bậc hai: (H n )r,s= ∂
2 En
∂w r ∂w s
5 Dao động xảy ra nếu tốc độ học được chọn quá lớn khiến thuật toán liên tục vượt qua mức tối thiểu.
Trang 18thông tin bậc hai [14] Khi sử dụng phương pháp Newton, trọng số ∆w[t] được cậpnhập
về mặt tính toán [14]
Khởi tạo trọng số
Khi chúng tôi sử dụng kỹ thuật tối ưu hóa vòng lặp (iterative optimization), việc khởitạo các trọng số w là rất quan trọng [11, p 311-312] đề xuất chọn ngẫu nhiên các trọng sốtrong phạm vi
−√ 1
m(l−1) < w(l)i, j<√ 1
m(l−1) (1.16)Kết quả này dựa trên giả định rằng đầu vào của mỗi đơn vị được phân phối theo phânphối Gaussian và đảm bảo rằng đầu vào thực tế xấp xỉ bậc đơn vị (approximately of unityorder) Với các hàm kích hoạt sigmoid logistic, điều này nhằm mang lại kết quả học tập tối
m(l−1)+ m(l) < w(l)i, j<
√6p
m(l−1)+ m(l) (1.17)Các kết quả thử nghiệm trong [12] cho thấy khả năng học tập được cải thiện khi sử dụngkhởi tạo chuẩn hóa
Sai số lan truyền ngược
Thuật toán 1.1, được đề xuất trong [15], được sử dụng để đánh giá độ dốc ∇En(w[t])của hàm loss Entrong mỗi bước lặp Thông tin chi tiết hơn cũng như nguồn gốc kỹ lưỡngcủa thuật toán có thể được tìm thấy trong [8] hoặc [15]
Thuật toán 1.1 (Sai số lan truyền ngược)
1 Truyền giá trị đầu vào xnqua mạng để lấy đầu vào và đầu ra thực tế của từng đơn vị.
6 Thuật toán đánh giá ma trận Hessian dựa trên lan truyền ngược sai số như đã giới thiệu trong phần 1.1.3 Phép nghịch đảo của ma trận n × n có độ phức tạpO(n 3 ) khi sử dụng phân tách LU hoặc các kỹ thuật tương tự.
Trang 192 Tính toán sai số δ(L+1)i [9, p 241-245] cho các đơn vị đầu ra
Người ta đã chứng minh rằng các perceptron nhiều lớp có ít nhất một lớp ẩn có thể gầnđúng với bất kỳ ánh xạ mục tiêu nào với độ chính xác tùy ý Do đó, dữ liệu huấn luyện
có thể gặp phải tình huống quá khớp (overfitting), tức là sai số huấn luyện có thể rất thấp
trên tập huấn luyện nhưng lại cao trên dữ liệu không nhìn thấy [10] Chính quy hoá mô tảnhiệm vụ khắc phục overfitting nhằm mang lại hiệu suất khái quát hóa tốt hơn, nghĩa làmạng được đào tạo cũng sẽ hoạt động tốt trên dữ liệu không nhìn thấy [7] Do đó, tập huấnluyện thường được chia thành tập huấn luyện thực tế và tập xác thực (validation set) Sau
đó, mạng neuron được huấn luyện bằng cách sử dụng tập huấn luyện mới và hiệu suất tổngquát hóa của nó được đánh giá trên tập xác thực [11]
Có nhiều phương pháp khác nhau để thực hiện chính quy hóa Thông thường, tập huấnluyện được tăng cường để giới thiệu một số bất biến nhất định mà mạng dự kiến sẽ học[13] Các phương pháp khác thêm thuật ngữ chính quy hóa vào thước đo sai số nhằm kiểmsoát mức độ phức tạp và nghiệm có dạng
Ý tưởng này là để giải quyết các trọng số lớn vì chúng có xu hướng dẫn đến overfitting [8]
7 L -regularization thường được gọi là giảm trọng số, xem [8] để biết chi tiết.
Trang 20Early Stopping
Mặc dù sai số trên tập huấn luyện có xu hướng giảm theo số lần lặp, nhưng sai số trêntập xác thực thường bắt đầu tăng trở lại khi mạng bắt đầu xuất hiện overfitting với tập huấnluyện Để khắc phục điều này, quá trình huấn luyện có thể dừng ngay khi sai số trên bộ xácthực đạt đến mức tối thiểu, tức là trước khi sai số trên bộ xác thực tăng trở lại [8] Phươngpháp này được gọi là Early Stopping
Dropout
Một kỹ thuật chính quy hóa khác, bất cứ khi nào mạng neuron được cung cấp một mẫuhuấn luyện, mỗi đơn vị ẩn sẽ bị bỏ qua với xác suất 0.5 Phương pháp này có thể được hiểutheo nhiều cách khác nhau Thứ nhất, các đơn vị không thể dựa vào sự hiện diện của cácđơn vị khác Thứ hai, phương pháp này dẫn đến việc đào tạo nhiều mạng khác nhau cùngmột lúc Do đó, dropout có thể được hiểu là tính trung bình của mô hình
Weight Sharing
Ý tưởng Weight Sharing đã được giới thiệu ở [15], trong bối cảnh của bài toán T-C8.Weight Sharing mô tả ý tưởng về các đơn vị khác nhau trong cùng một lớp để sử dụng cáctrọng số giống hệt nhau Điều này có thể được hiểu như một phương pháp chuẩn hóa vì độphức tạp của mạng giảm đi và kiến thức trước đó có thể được tích hợp vào kiến trúc mạng
1.2 Mạng neuron tích chập - Convolutional neural networks
Mặc dù mạng neuron thần kinh có thể được áp dụng cho các bài toán thị giác máy tính,nhưng để có được hiệu suất khái quát hóa tốt, việc kết hợp kiến thức có sẵn vào kiến trúcmạng [16] là rất hữu ích Mạng neuron tích chập nhằm mục đích sử dụng thông tin khônggian giữa các pixel của hình ảnh Vì vậy, chúng dựa trên sự tích chập rời rạc
CNN là một cấu trúc toán học thường bao gồm lớp tích chập (convolution layers), lớpgộp (pooling layers) và lớp được kết nối đầy đủ (fully connected layers) Trong đó, lớp tíchchập và lớp gộp thực hiện trích xuất feature, lớp được kết nối đầy đủ maps các feature đượctrích xuất vào đầu ra cuối cùng, chẳng hạn như phân loại (hình 1.5)
Trang 21Hình 1.5: Tổng quan về kiến trúc mạng neuron tích chập (CNN) và quy trình đào tạo.
Hình ảnh đầu vào hoặc
input feature maps Output feature maps
Hình 1.6: Minh họa của mộtlớp chập đơn Nếu lớp l là lớptích chập, thì hình ảnh đầu vào(nếu l = 1) hoặc feature mapscủa lớp trước đó sẽ được tíchhợp bởi các bộ lọc khác nhau
để tạo ra output feature mapscủa lớp l
Lớp tích chập
Cho lớp l là một lớp tích chập Đầu vào của l bao gồm m(l−1)1 feature maps từ lớp trước,mỗi feature có kích thước m(l−1)2 × m(l−1)3 Trong trường hợp l = 1, đầu vào là một hìnhảnh I bao gồm một hoặc nhiều kênh, được minh họa trong Hình 1.6 Bằng cách này, mạngneuron tích chập trực tiếp chấp nhận hình ảnh thô làm đầu vào Đầu ra của lớp l bao gồm
m(l)1 feature maps có kích thước m(l)2 × m(l)3 Đối tượng thứ i trong lớp l, ký hiệu là Yi(l), đượctính như sau
Trang 22trong đó B(l)i là ma trận bias và Ki, j(l)là bộ lọc có kích thước 2h(l)1 + 1 × 2h(l)2 + 1 kết nối vớifeature maps thứ j trong lớp (l − 1) với feature maps thứ i trong lớp l9.B(l)i
Lớp gộp
Pooling layer thường được dùng giữa các convolutional layer, để giảm kích thước dữliệu nhưng vẫn giữ được các thuộc tính quan trọng Kích thước dữ liệu giảm giúp giảm việctính toán trong model Trong quá trình, quy tắc về stride và padding áp dụng như phép tínhconvolution trên ảnh Việc gộp cục bộ kết hợp các cụm nhỏ, kích thước 2 × 2 thường được
sử dụng Tổng hợp trên tất cả các nơ-ron của feature maps Có hai loại gộp được sử dụngphổ biến: tối đa và trung bình Tổng hợp tối đa sử dụng giá trị lớn nhất của mỗi cụm tế bàothần kinh cục bộ trong feature maps, trong khi tổng hợp trung bình lấy giá trị trung bình
Lớp được kết nối đầy đủ
Sau khi ảnh được truyền qua nhiều convolutional layer và pooling layer, model đã họcđược tương đối các đặc điểm của ảnh Tensor output của layer cuối cùng sẽ vector và đưavào một lớp được kết nối như một mạng nơ-ron Với Fully connected layer được kết hợp vớicác tính năng lại với nhau để tạo ra một mô hình Cuối cùng sử dụng softmax hoặc sigmoid
để phân loại đầu ra
1.3 Faster 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ựatrên các mạng CNN được phát triển bởi Ross Girshick và các cộng sự [17] Lớp các môhình này gồm 3 mô hình chính là R-CNN, Fast R-CNN và Faster-RCNN được thiết kế chocác nhiệm vụ định vị vật thể và nhận diện vật thể Trong nghiên cứu, chúng tôi xem xét môhình Faster-RCNN [18]
Hệ thống phát hiện đối tượng - Faster R-CNN, bao gồm hai mô-đun Mô-đun đầu tiên
là một mạng tích chập sâu hoàn toàn (deep fully convolutional network) đề xuất các vùng
và mô-đun thứ hai là bộ phát hiện Fast R-CNN dựa trên các vùng đã được đề xuất Toàn bộ
hệ thống là một mạng thống nhất, duy nhất để phát hiện đối tượng như Hình 1.7
Mạng đề xuất khu vực - Region Proposal Networks (RPN)
Region Proposal Networks (RPN) lấy hình ảnh (có kích thước bất kỳ) làm đầu vào vàđầu ra là một tập hợp các đề xuất đối tượng hình chữ nhật, mỗi đề xuất có điểm đối tượng
9 Lưu ý sự khác biệt giữa feature maps Yi(l)bao gồm các đơn vị m(l)2 · m(l)3 được sắp xếp theo một mảng hai chiều và một đơn vị y(l)như được sử dụng trong perceptron nhiều lớp.
Trang 23Hình 1.7: Faster R-CNN là một mạng thống nhất, duy nhất để phát hiện đối tượng Mô-đunRPN đóng vai trò quan trọng của mạng hợp nhất này.
khác nhau Để tạo các đề xuất khu vực, chúng tôi trượt một mạng nhỏ qua convolutionalfeature map output theo lớp tích chập được chia sẻ cuối cùng Mạng nhỏ này lấy đầu vào làcửa sổ không gian n × n của input convolutional feature map Mỗi cửa sổ trượt được ánh xạtới một feature có chiều thấp hơn Tính năng này được đưa vào hai lớp kết nối đầy đủ - mộtlớp hồi quy hộp (box-regression) và một lớp phân loại hộp (box-classification)
Sharing Features for RPN and Fast R-CNN
Cả RPN và Fast R-CNN đều được đào tạo độc lập, sẽ sửa đổi các lớp chập của chúngtheo những cách khác nhau Do đó, chúng tôi cần phát triển một kỹ thuật cho phép chia sẻcác lớp chập giữa hai mạng, thay vì học hai mạng riêng biệt Chúng tôi thảo luận ba cách
để đào tạo mạng với các feature được chia sẻ:
• Đào tạo xen kẽ (Alternating training) Trong giải pháp này, trước tiên chúng tôi
huấn luyện RPN và sử dụng các đề xuất để huấn luyện Fast R-CNN Mạng do FastR-CNN điều chỉnh sau đó được sử dụng để khởi tạo RPN và quá trình này được lặplại
• Đào tạo chung tương đối (Approximate joint training) Trong giải pháp này, mạng
RPN và Fast R-CNN được hợp nhất thành một mạng trong quá trình đào tạo nhưtrong Hình 1.7 Trong mỗi lần lặp, chuyển tiếp tạo ra các đề xuất khu vực được xử lýgiống như các đề xuất cố định, được tính toán trước khi đào tạo Fast R-CNN detector.Quá trình truyền ngược diễn ra như bình thường, trong đó đối với các lớp chia sẻ, tín
Trang 24hiệu truyền ngược từ cả RPN loss và Fast R-CNN loss được kết hợp.
• Đào tạo chung không tương đối (Non-approximate joint training) Như đã thảo
luận ở trên, các hộp giới hạn được RPN dự đoán cũng là các chức năng của đầu vào.Lớp tổng hợp RoI trong Fast R-CNN chấp nhận các tính năng tích chập và cả các hộpgiới hạn được dự đoán làm đầu vào
1.4 Các thước đo đánh giá mô hình phát hiện vật thể
Độ chính xác trung bình (Mean Average Precision - mAP) là số liệu thường được sửdụng để đánh giá hiệu suất của các mô hình phát hiện đối tượng Nó đo lường độ chính xáctrung bình trên tất cả các danh mục, cung cấp một giá trị duy nhất để so sánh các mô hìnhkhác nhau Chỉ số AP dựa trên các số liệu precision-recall, xử lý nhiều danh mục đối tượng
và xác định dự đoán positives bằng cách sử dụng Intersection over Union (IoU) Precision
đo lường độ chính xác của các dự đoán positives của mô hình, trong khi Recall đo lường tỷ
lệ các trường hợp positives thực tế mà mô hình xác định chính xác Thường có sự cân bằnggiữa Precision và Recall; ví dụ: việc tăng số lượng đối tượng được phát hiện (khả năng recallcao hơn) có thể dẫn đến nhiều kết quả positives giả hơn (precision thấp hơn) Để giải quyết
sự cân bằng này, chỉ số AP kết hợp đường cong precision-recall để vẽ biểu đồ precision sovới recall đối với các ngưỡng tin cậy khác nhau Số liệu này cung cấp đánh giá cân bằng
về precision và recall bằng cách xem xét khu vực dưới đường cong precision-recall Đánhgiá hiệu suất của mô hình phát hiện đối tượng sau khi huấn luyện là một phần quan trọng
và không thể thiếu trong quá trình phát triển mô hình Điều này đảm bảo rằng mô hình cókhả năng đáp ứng yêu cầu và chất lượng cần thiết cho ứng dụng cụ thể, giúp đảm bảo tínhđáng tin cậy và hiệu quả của mô hình trong ứng dụng thực tế Dưới đây là một số lý do vàphương pháp quan trọng để đánh giá hiệu suất của mô hình phát hiện đối tượng:
- Kiểm tra trên tập dữ liệu kiểm tra độc lập: Sau khi huấn luyện mô hình trên tập dữliệu huấn luyện, mô hình cần được kiểm tra trên một tập dữ liệu kiểm tra độc lập.Tập kiểm tra này không được sử dụng trong quá trình huấn luyện và được sử dụng đểđánh giá hiệu suất thực tế của mô hình
- Thước đo đánh giá: Sử dụng các thước đo như IoU, Precision, Recall, F1-Score, AP,mAP, và các thước đo khác tùy thuộc vào yêu cầu cụ thể của ứng dụng để đo lườngchất lượng của mô hình Các thước đo này cung cấp thông tin về độ chính xác, độhoàn thiện và khả năng tổng quan của mô hình
- Confusion Matrix: Xây dựng ma trận nhầm lẫn (confusion matrix) để hiểu rõ hơn về
Trang 25sự phân phối của các dự đoán đúng và sai Ma trận này gồm các phần tử như TruePositives, False Positives, True Negatives, và False Negatives.
- Visualizations: Hiển thị các hình ảnh từ tập kiểm tra với các hộp giới hạn được vẽ bởi
mô hình để kiểm tra xem liệu các dự đoán có hợp lý và chính xác không Điều nàygiúp tìm hiểu sâu hơn về sai số cụ thể mà mô hình có thể gặp phải
Trong phần này, chúng tôi trình bày một số thước đo quan trọng được sử dụng để đánh giá
mô hình phát hiện đối tượng Trước khi tìm hiểu các thước đo này, chúng tôi giới thiệu các
kí hiệu sau:
• TP (True Positive): Tổng số trường hợp dự báo khớp Positive
• TN (True Negative): Tổng số trường hợp dự báo khớp Negative
• FP (False Positive): Tổng số trường hợp dự báo các quan sát thuộc nhãn Negativethành Positive
• FN (False Negative): Tổng số trường hợp dự báo các quan sát thuộc nhãn Positivethành Negative
Accuracy = T P+ T N
total sample.Trong các thước đo đánh giá mô hình phân loại thì độ chính xác là một thước đo phổ biến
vì nó có công thức rõ ràng và ý nghĩa đơn giản Tuy nhiên hạn chế của nó là đo lường trêntất cả các nhãn mà không quan tâm đến độ chính xác trên từng nhãn
Precision trả lời cho câu hỏi trong các trường hợp được dự báo là positive thì có baonhiêu trường hợp là đúng Điều đó có nghĩa là khi precision càng cao thì mô hình càng tốttrong việc phân loại hồ sơ nợ xấu (nợ xấu chính là nhóm positive) Công thức của precisionnhư sau:
Precision = T P
total predicted positive=
T P
T P+ FP.
Trang 26Precision sẽ cho chúng ta biết mức độ chuẩn xác của mô hình đối với các hồ sơ được dựbáo là nợ xấu Ví dụ khi precision = 52.4%, chúng ta tin rằng trong các hồ sơ được dự báo
là BAD thì có 52.4% tỷ lệ các hồ sơ được phân loại đúng Cũng có ý nghĩa gần tương tựnhư precision, có cùng tử số nhưng có một chút khác biệt về mẫu số trong công thức tínhtoán, và cũng là một chỉ số giúp đo lường hiệu suất dự báo trên nhóm positive, đó là recall
Sự đánh đổi giữa precision và recall khiến cho kết quả của mô hình thường xảy ra haitrường hợp precision cao, recall thấp hoặc precision thấp, recall cao Khi đó rất khó để lựachọn đâu là một mô hình tốt vì không biết rằng đánh giá trên precision hay recall sẽ phùhợp hơn Chính vì vậy chúng ta sẽ tìm cách kết hợp cả precision và recall trong một chỉ sốmới, đó chính là f1 score
100 trường hợp positive thì mô hình chỉ nhận diện được đúng 55 trường hợp nên xét theorecall=55% thì đây không phải là một mô hình tốt Trong trường hợp này F1sẽ được sửdụng như một chỉ số đại diện cho cả precision và recall Điểm F1bằng 69% cho thấy đây
là một mô hình có sức mạnh ở mức trung bình và đánh giá của chúng ta sẽ xác thực hơn sovới việc quá lạc quan vào mô hình khi chỉ nhìn vào precision và quá bi quan nếu chỉ dựatrên recall
Trang 271.4.5 Precision và recall trong phát hiện đối tượng
Trong phát hiện đối tượng thì cách tính precision vs recall cũng tương tự như vậy trênnhưng cách định nghĩa TP, TN, FP, FN có sự khác biệt, nó sẽ xử dụng một thông số khác làIOU (intersection over union) Đối với bài toán object detection chúng ta hay dùng IoU để
đo độ khớp của predicted box và ground-truth box, như trong Hình 1.8 Dựa vào thông sốIOU này người ta sẽ xác định TP, FP, TN, FN như sau:
Hình 1.8: IoU - Intersection over union
• TP (True Positive): là các predicted box với IoU ≥ threshold TP hiểu là dự đoánđúng, thành positive, trong TH này dự đoán đúng là các predicted box với IoU >threshold, positive nghĩa là có object
• FP (False Positive): là các predicted box với IoU < threshold FP hiểu là dự đoán saithành positve, trong TH này dự đoán sai là predicted box với IoU < threshold Ở đây
ám chỉ có dự đoán ra được bounding box
• FN (False Negative): mô hình không dự đoán được đối tượng trong ảnh đối vớiground truth box hay groudth-truth box không được gắn với predicted bounding boxnào
• TN (True Negative): không được dùng Đây là những phần của ảnh không chứa đốitượng (không được gán ground-truth box) và được dự đoán không chứa đối tượng(thực chất mô hình chỉ đưa ra các vùng có khả năng chứa đối tượng) Điều này cónghĩa rằng các vùng khác trong ảnh được dự đoán là không chứa đối tượng Số lượng
TN như vậy là vô số
Precision là tỉ lệ các dự đoán đúng (khớp với ground truth boxes) so với tổng số các dự đoán(predicted bounding boxes) do đó:
Precision =true object detection
all predicted boxes =
T P
T P+ FP.
Trang 28Recall (độ nhạy) thể hiện tỉ lệ dự đoán đúng trên tổng số ground truth, được viết dưới dạng
Recall = true object detection
all ground truth boxes=
T P
# ground truth boxes.
Average Precision (AP) là diện tích nằm dưới đường recall Trong đó, recall curve là đường thể hiện mối quan hệ của precision so với recall khi thay đổi ngưỡngconfidence score, được mô tả như trong Hình 1.9 Giá trị của precision và recall luôn nằm
precision-Hình 1.9: Precision-recall curvetrong [0, 1] do đó AP cũng nằm trong [0, 1] Từ AP, ta định nghĩa mAP là trung bình của
AP Trong một số trường hợp chúng ta tính AP cho mỗi class và lấy trung bình Nhưngtrong một số trường hợp khác AP và mAP lại giống nhau mAP được tính bằng cách lấytrung bình AP trên tất cả các class và/hoặc trên tất cả IoU threshold (phụ thuộc vào từnghoàn cảnh)
mAP=1n
n
∑
k=1
APk,trong đó APklà average precision cho class k và n là tổng số classes
Ngăn chặn không tối đa (NMS) là một kỹ thuật xử lý hậu kỳ được sử dụng trong cácthuật toán phát hiện đối tượng để giảm số lượng các bounding boxes chồng chéo và cảithiện chất lượng phát hiện tổng thể Các thuật toán phát hiện đối tượng thường tạo ra nhiềubounding boxes xung quanh cùng một đối tượng với các điểm tin cậy khác nhau NMS lọc
Trang 29ra các bounding boxes dư thừa và không liên quan, chỉ giữ lại những bounding boxes chínhxác nhất Hình 1.10 cho thấy đầu ra điển hình của mô hình phát hiện đối tượng chứa nhiềubounding boxes chồng chéo và đầu ra sau NMS.
Hình 1.10: Non-Maximum Suppression (NMS) a) Hiển thị đầu ra điển hình của mô hìnhphát hiện đối tượng chứa nhiều hộp chồng chéo b) Hiển thị đầu ra sau NMS
Trang 30Chương 2
Mô hình YOLO và một số vấn đề liên quan
Giống như trong tiêu đề, nội dung của chương được dành để bàn về một mô hình pháthiện đối tượng rất nổi tiếng có tên là YOLO (You Only Look Once) Mặc dù nó đã đượcbiết đến rộng rãi trong cộng đồng nghiên cứu, hiện nay, theo sự hiểu biết của tác giả, hầunhư chưa có một tài liệu tiếng Việt được chính thức phát hành dưới dạng chuyên khảo độclập Ở đây, chúng tôi trình bày một cách hệ thống các vấn đề chính về YOLO cũng như cácbiến thể tương ứng, cập nhật đến phiên bản ổn định gần nhất mà chúng tôi tiếp cận được.YOLO (You Only Look Once) của Joseph Redmon và cộng sự, đã được xuất bản trongCVPR 2016 [24] Lần đầu tiên nó trình bày một cách tiếp cận toàn diện theo thời gian thực
để phát hiện đối tượng Tên YOLO là viết tắt của "You Only Look Once", vì thực tế là nó
có thể hoàn thành nhiệm vụ phát hiện chỉ bằng một lần truyền mạng, trái ngược với cácphương pháp trước đây sử dụng cửa sổ trượt theo sau là bộ phân loại cần thiết để chạy hàngtrăm hoặc hàng nghìn lần cho mỗi hình ảnh hoặc các phương pháp nâng cao hơn chia tác
vụ thành hai bước, trong đó bước đầu tiên phát hiện các vùng có thể có đối tượng hoặc đềxuất vùng và bước thứ hai chạy trình phân loại theo đề xuất Ngoài ra, YOLO đã sử dụngđầu ra đơn giản hơn chỉ dựa trên hồi quy để dự đoán detection outputs, trái ngược với FastR-CNN [25] sử dụng hai đầu ra riêng biệt, phân loại xác suất và hồi quy cho tọa độ hộp
2.1 Lịch sử hình thành
Phát hiện đối tượng theo thời gian thực đã nổi lên như một thành phần quan trọng trongnhiều ứng dụng, trải rộng trên nhiều lĩnh vực khác nhau như xe tự hành, robot, giám sátvideo và thực tế tăng cường Trong số các thuật toán phát hiện đối tượng khác nhau, YOLO
Trang 31nổi bật nhờ sự cân bằng vượt trội giữa tốc độ và độ chính xác, cho phép nhận dạng đốitượng trong hình ảnh nhanh chóng và đáng tin cậy Kể từ khi xuất hiện, YOLO đã phát triểnqua nhiều lần cải tiến, mỗi phiên bản đều được xây dựng dựa trên các phiên bản trước đó
để giải quyết các hạn chế và nâng cao hiệu suất (xem Hình 2.1)
Hình 2.1: Dòng thời gian của các phiên bản YOLOKhả năng phát hiện vật thể theo thời gian thực của YOLO đóng vai trò quan trọng trongcác hệ thống xe tự hành, cho phép nhận dạng và theo dõi nhanh chóng các vật thể khác nhaunhư phương tiện, người đi bộ, xe đạp và các chướng ngại vật khác Những khả năng này đãđược áp dụng trong nhiều lĩnh vực, bao gồm nhận dạng hành động, trong chuỗi video đểgiám sát và tương tác giữa người và máy tính
Mô hình YOLO đã được sử dụng trong nông nghiệp để phát hiện và phân loại cây trồng,sâu bệnh, hỗ trợ các kỹ thuật nông nghiệp chính xác và tự động hóa các quy trình canh tác.Chúng cũng đã được điều chỉnh cho các nhiệm vụ nhận diện khuôn mặt trong hệ thống sinhtrắc học, bảo mật và nhận dạng khuôn mặt
Trong lĩnh vực y tế, YOLO đã được sử dụng để phát hiện ung thư, phân vùng da vànhận dạng viên thuốc, giúp cải thiện độ chính xác của chẩn đoán và quy trình điều trị hiệuquả hơn Trong viễn thám, nó đã được sử dụng để phát hiện và phân loại vật thể trong ảnh
vệ tinh và ảnh trên không, hỗ trợ lập bản đồ sử dụng đất, quy hoạch đô thị và giám sát môitrường [19, 20]
Hệ thống bảo mật đã tích hợp các mô hình YOLO để giám sát và phân tích nguồn cấp
dữ liệu video theo thời gian thực, cho phép phát hiện nhanh các hoạt động đáng ngờ, giãncách xã hội và phát hiện khẩu trang Các mô hình này cũng đã được áp dụng trong kiểm tra
bề mặt để phát hiện các khuyết tật và dị thường, tăng cường kiểm soát chất lượng trong quátrình sản xuất và chế tạo [21]
Trong các ứng dụng giao thông, mô hình YOLO đã được sử dụng cho các nhiệm vụ nhưphát hiện biển số xe và nhận dạng biển báo giao thông, góp phần phát triển hệ thống giaothông thông minh và các giải pháp quản lý giao thông Chúng đã được sử dụng trong việcphát hiện và giám sát động vật hoang dã để xác định các loài có nguy cơ tuyệt chủng nhằm
Trang 32bảo tồn đa dạng sinh học và quản lý hệ sinh thái Cuối cùng, YOLO đã được sử dụng rộngrãi trong các ứng dụng trong robot và phát hiện vật thể từ máy bay không người lái [22, 23].
2.2 YOLO: You Only Look Once
YOLO của Joseph Redmon và cộng sự, đã được xuất bản trong CVPR 2016 [24] Lầnđầu tiên nó trình bày một cách tiếp cận toàn diện theo thời gian thực để phát hiện đối tượng.Tên YOLO là viết tắt của "You Only Look Once", vì thực tế là nó có thể hoàn thành nhiệm
vụ phát hiện chỉ bằng một lần truyền mạng, trái ngược với các phương pháp trước đây sửdụng cửa sổ trượt theo sau là bộ phân loại cần thiết để chạy hàng trăm hoặc hàng nghìn lầncho mỗi hình ảnh hoặc các phương pháp nâng cao hơn chia tác vụ thành hai bước, trong đóbước đầu tiên phát hiện các vùng có thể có đối tượng hoặc đề xuất vùng và bước thứ haichạy trình phân loại theo đề xuất Ngoài ra, YOLO đã sử dụng đầu ra đơn giản hơn chỉ dựatrên hồi quy để dự đoán detection outputs, trái ngược với Fast R-CNN [25] sử dụng hai đầu
ra riêng biệt, phân loại xác suất và hồi quy cho tọa độ hộp
YOLOv1 thống nhất các bước phát hiện đối tượng bằng cách phát hiện tất cả cácbounding boxes cùng một lúc Để thực hiện điều này, YOLO chia hình ảnh đầu vào thànhmột lưới S × S và dự đoán B bounding boxes thuộc cùng một lớp, cùng với độ tin cậy của nóđối với C lớp khác nhau trên mỗi phần tử lưới Mỗi dự đoán bounding boxes bao gồm nămgiá trị: Pc, bx, by, bh, bw Trong đó Pc là điểm tin cậy cho box phản ánh mức độ chắc chắncủa mô hình đối với box chứa đối tượng và độ chính xác của của nó box là Tọa độ bx và by
là tâm của box so với ô lưới và bh, bw là chiều cao và chiều rộng của box so với hình ảnhđầy đủ Đầu ra của YOLO là một tenxơ S × S × (B × 5 +C) tùy ý, theo sau là non-maximumsuppression (NMS) để loại bỏ các phát hiện trùng lặp Hình 2.2 cho thấy một vectơ đầu rađược đơn giản hóa với lưới 3 × 3, ba lớp và một lớp duy nhất trên mỗi lưới cho tám giá trị.Trong trường hợp đơn giản này, kết quả của YOLO sẽ là 3 × 3 × 8
Kiến trúc YOLOv1 bao gồm 24 lớp tích chập, theo sau là hai lớp được kết nối đầy đủ
để dự đoán tọa độ và xác suất của các bounding boxes Lấy cảm hứng từ GoogLeNet [26]
và Network in Network [27], YOLO sử dụng các lớp chập 1 × 1 để giảm số lượng featuremaps và giữ số lượng tham số tương đối thấp
Trang 33Hình 2.2: Dự đoán đầu ra YOLO Hình này mô tả một mô hình YOLO đơn giản hóa vớilưới ba nhân ba, ba lớp và một dự đoán lớp duy nhất cho mỗi phần tử lưới để tạo ra mộtvectơ gồm tám giá trị.
Các tác giả đã đào tạo trước 20 lớp YOLO đầu tiên với độ phân giải 224 × 224 bằngcách sử dụng bộ dữ liệu ImageNet [28] Sau đó, họ thêm bốn lớp cuối cùng với các trọng
số được khởi tạo ngẫu nhiên và tinh chỉnh mô hình với bộ dữ liệu PASCAL VOC 2007 vàVOC 2012 [29] ở độ phân giải 448 × 448 để tăng chi tiết nhằm phát hiện đối tượng chínhxác hơn
Để làm giàu dữ liệu, các tác giả đã sử dụng tỷ lệ ngẫu nhiên và phép chuyển đổi tối đa20% so với kích thước hình ảnh đầu vào, cũng như độ phơi sáng và độ bão hòa ngẫu nhiênvới hệ số là 1, 5 trong không gian màu HSV
YOLOv1 đã sử dụng hàm loss gồm nhiều tổng bình phương sai số, như trong Hình 2.3.Trong hàm loss, λcoord = 5 là hệ số tỷ lệ mang lại tầm quan trọng cao hơn cho các dự đoán
về bounding boxes và λnoobj = 0.5 là hệ số tỷ lệ làm giảm tầm quan trọng của các boxeskhông chứa đối tượng
Hai số hạng đầu tiên của loss thể hiện localization loss; nó tính toán sai số của các vịtrí bounding boxes được dự đoán (x, y) và kích thước (w, h) Lưu ý rằng những sai số nàychỉ được tính trong các boxes chứa đối tượng (được biểu thị bằng 1ob ji j ), chỉ penalizing nếu
có đối tượng trong ô lưới đó Loss thứ ba và thứ tư thể hiện lỗi tin cậy; số hạng thứ ba
đo confidence error khi đối tượng được phát hiện trong boxs1ob ji j và số hạng thứ tư đoconfidence error khi đối tượng không được phát hiện trong box1noob ji j Vì hầu hết các boxđều trống nên loss được giảm xuống theo λobj Thành phần loss cuối cùng là classificationloss đo sai số bình phương của xác suất có điều kiện cho mỗi lớp chỉ khi đối tượng xuất
Trang 34Hình 2.3: Hàm cost của YOLO: bao gồm localization loss cho tọa độ bounding box,confidence loss cho đối tượng tồn tại hay không xuất hiện và classification loss để đảmbảo độ chính xác của nhãn dự đoán.
Trang 35hiện trong ô1ob ji .
Kiến trúc đơn giản của YOLO, cùng với khả năng nhìn một lần duy nhất vào bức ảnh
để có thể dự đoán vật thể trong ảnh và vị trí của chúng, đã khiến YOLO nhanh hơn nhiều
so với các mô hình phát hiện đối tượng theo thời gian thực hiện có
Mặc dù YOLO hoạt động nhanh hơn bất kỳ trình phát hiện đối tượng nào nhưng sai
số localization lại lớn hơn so với các phương pháp tiên tiến như Fast R-CNN [25] Có banguyên nhân chính dẫn tới hạn chế này:
1 Nó chỉ có thể phát hiện tối đa hai đối tượng cùng loại trong ô lưới, hạn chế khả năng dựđoán các đối tượng ở gần
2 Nó gặp khó khăn trong việc dự đoán các đối tượng có tỷ lệ khung hình không thấy trong
dữ liệu huấn luyện
3 Nó học từ các đặc điểm thô của đối tượng nhờ các lớp down-sampling
1 Chuẩn hóa hàng loạt trên tất cả các lớp tích chập đã cải thiện khả năng hội tụ và hoạt
động như một bộ điều chỉnh để giảm tình trạng overfitting
2 Bộ phân loại có độ phân giải cao Giống như YOLOv1, YOLOv2 đã đào tạo trước mô
hình bằng ImageNet ở mức 224 × 224 Tuy nhiên, lần này, nó đã tinh chỉnh mô hình chomười epochs trên ImageNet với độ phân giải 448 × 448, cải thiện hiệu suất mạng trênđầu vào có độ phân giải cao hơn
3 Tích chập hoàn toàn Loại bỏ các lớp dense và sử dụng kiến trúc tích chập hoàn toàn.
4 Sử dụng các anchor boxes để dự đoán các bounding boxes Họ sử dụng một tập hợp
các prior boxes hoặc anchor boxes, là các hộp có hình dạng được xác định trước, dùng
để khớp với hình dạng nguyên mẫu của các đối tượng như trong Hình 2.4 Nhiều anchorboxes được xác định cho mỗi ô lưới và hệ thống dự đoán tọa độ cũng như lớp cho mỗi
Trang 36anchor boxes Kích thước của đầu ra mạng tỷ lệ thuận với số lượng anchor boxes trênmỗi ô lưới.
Hình 2.4: Anchor boxes YOLOv2 xác định nhiều anchor boxes cho mỗi ô lưới
5 Dimension Clusters Việc chọn các prior boxes tốt sẽ giúp mạng học cách dự đoán các
bounding boxes chính xác hơn Các tác giả đã chạy phân cụm k-mean trên các boundingboxes đào tạo để tìm ra các ưu tiên tốt Họ đã chọn năm prior boxes mang lại sự cânbằng tốt giữa khả năng recall và độ phức tạp của mô hình
6 Dự đoán vị trí trực tiếp Không giống như các phương pháp khác dự đoán độ lệch [18],
YOLOv2 tuân theo cùng một triết lý và dự đoán tọa độ vị trí tương ứng với ô lưới Mạng
dự đoán năm bounding boxes cho mỗi ô, mỗi hộp có năm giá trị tx,ty,tw,thvà to, trong
đó totương đương với Pc từ YOLOv1 và thu được tọa độ bounding boxes cuối cùng nhưthể hiện trong Hình 2.5
Hình 2.5: Tọa độ trung tâm của hộp thu được bằng cách truyền các giá trị tx, ty dự đoánthông qua hàm sigmoid và offset theo vị trí của ô lưới cx, cy Chiều rộng và chiều cao củafinal box sử dụng chiều rộng pw và chiều cao phtrước đó được chia tỷ lệ theo etw và eth
tương ứng, trong đó twvà thđược YOLOv2 dự đoán
7 Các tính năng chi tiết hơn So với YOLOv1, YOLOv2 đã loại bỏ một lớp gộp để có
Trang 37được output feature map hoặc lưới 13 × 13 cho hình ảnh đầu vào 416 × 416 YOLOv2cũng sử dụng lớp chuyển tiếp lấy feature map 26 × 26 và sắp xếp lại nó bằng cách xếpchồng các tính năng liền kề vào các kênh khác nhau thay vì mất chúng thông qua lấymẫu con không gian Điều này tạo ra các feature maps 13 × 13 × 2048 được nối theochiều kênh với độ phân giải thấp hơn 13 × 13 × 1024 maps để có được feature maps
13 × 13 × 3072
8 Đào tạo đa quy mô Vì YOLOv2 không sử dụng các lớp được kết nối đầy đủ nên đầu
vào có thể có kích thước khác nhau Để làm cho YOLOv2 hoạt động tốt với các kíchthước đầu vào khác nhau, các tác giả đã đào tạo mô hình một cách ngẫu nhiên, thay đổikích thước đầu vào từ 320 × 320 lên đến 608 × 608
Với tất cả những cải tiến này, YOLOv2 đã đạt được độ chính xác trung bình (AP) là 78,6 %trên bộ dữ liệu PASCAL VOC2007 so với 63,4% mà YOLOv1 thu được
Kiến trúc backbone được YOLOv2 sử dụng được gọi là Darknet-19, chứa 19 lớp tích
chập và năm lớp gộp đa hóa Tương tự như kiến trúc của YOLOv1, nó được lấy cảm hứng
từ Network in Network [27] bằng cách sử dụng các phép biến đổi 1 × 1 giữa 3 × 3 để giảm
số lượng tham số Ngoài ra, như đã đề cập ở trên, họ sử dụng chuẩn hóa hàng loạt để chuẩnhóa và giúp hội tụ Đầu phân loại đối tượng thay thế bốn lớp chập cuối cùng bằng một lớpchập duy nhất với 1000 bộ lọc, theo sau là lớp gộp trung bình toàn cực và Softmax
2.4 YOLOv3
YOLOv3 [31] được xuất bản trên ArXiv vào năm 2018 bởi Joseph Redmon và AliFarhadi Nó bao gồm những thay đổi đáng kể và kiến trúc lớn hơn để ngang bằng với kiếntrúc hiện đại nhất trong khi vẫn duy trì hiệu suất theo thời gian thực Trong phần sau đây,chúng tôi mô tả những thay đổi liên quan đến YOLOv2
1 Dự đoán bounding boxes Giống như YOLOv2, mạng dự đoán bốn tọa độ cho mỗi
bounding boxes tx,ty, twvà th; tuy nhiên YOLOv3 sẽ dự đoán objectness score cho từngbounding boxes bằng cách sử dụng hồi quy logistic Điểm này là 1 cho anchor boxes có
độ trùng lặp cao nhất với ground truth và 0 cho các anchor boxes còn lại Trái ngược vớiFaster R-CNN [18], YOLOv3 chỉ gán một anchor boxes cho từng đối tượng thực tế cơbản Ngoài ra, nếu không có anchor boxes nào được gán cho một đối tượng, nó chỉ gây
ra classification loss chứ không bị localization loss hay confidence loss
2 Dự đoán lớp Thay vì sử dụng softmax để phân loại, họ đã sử dụng entropy chéo nhị
phân (binary cross-entropy) để đào tạo các bộ phân loại logistic độc lập và đặt ra vấn đề
là phân loại nhiều nhãn Thay đổi này cho phép gán nhiều nhãn cho cùng một box, điều
Trang 38này có thể xảy ra trên một số bộ dữ liệu phức tạp có nhãn chồng chéo Ví dụ: cùng mộtđối tượng có thể là Người và Đàn ông.
3 Backbone mới YOLOv3 có trình trích xuất tính năng lớn hơn bao gồm 53 lớp chập với
các kết nối còn lại
4 Spatial pyramid pooling (SPP) Các tác giả đã thêm vào backbone một khối SPP đã
sửa đổi để nối nhiều max pooling outputs mà không cần lấy mẫu con (stride = 1), mỗiđầu ra có kích thước hạt nhân khác nhau k × k trong đó k = 1, 5, 9, 13 cho phép trườngtiếp nhận lớn hơn Phiên bản này được gọi là YOLOv3-SPP và là phiên bản có hiệu suấttốt nhất khi cải thiện AP50thêm 2, 7%
5 Dự đoán đa quy mô YOLOv3 dự đoán ba boxes ở ba tỷ lệ khác nhau.
6 Bounding box priors Giống như YOLOv2, các tác giả cũng sử dụng k-mean để xác
định các bounding boxes của các anchor boxes Sự khác biệt là trong YOLOv2, họ đã sửdụng tổng cộng năm prior boxes cho mỗi ô và trong YOLOv3, họ đã sử dụng ba priorboxes cho ba thang đo khác nhau
Nền tảng kiến trúc được trình bày trong YOLOv3 được gọi là Darknet-53 Nó thay thếtất cả các lớp gộp tối đa bằng các lớp tích chập có bước và thêm các kết nối còn lại Tổngcộng, nó chứa 53 lớp chập Hình 2.6 cho thấy các chi tiết kiến trúc Darknet-53 Backconeđạt được độ chính xác Top-1 và Top-5 tương đương với ResNet-152 nhưng nhanh hơn gần
2 lần
Bên cạnh kiến trúc lớn hơn, một tính năng thiết yếu của YOLOv3 là dự đoán đa quy
mô, tức là dự đoán ở nhiều kích thước lưới Điều này giúp thu được các hộp chi tiết tốt hơn
và cải thiện đáng kể khả năng dự đoán các vật thể nhỏ, đây là một trong những điểm yếucủa các phiên bản YOLO trước đó
Kiến trúc phát hiện đa quy mô được hiển thị trong Hình 2.7 hoạt động như sau: đầu rađầu tiên được đánh dấu là y1 tương đương với đầu ra YOLOv2, trong đó lưới 13 × 13 xácđịnh đầu ra Đầu ra thứ hai y2 được tạo bằng cách nối đầu ra sau ( Res ×4) của Darknet-53với đầu ra sau (Res ×8 ) Các feature maps có các kích thước khác nhau, tức là 13 × 13 và
26 × 26, do đó cần có thao tác lấy mẫu trước khi ghép nối Cuối cùng, bằng cách sử dụngthao tác lấy mẫu, kết quả đầu ra thứ ba y3 sẽ ghép các feature maps 26 × 26 với các featuremaps 52 × 52