về nghiên cứu lý thuyết: Chủ yếu là tìmhiểu các mô hình Object Detect, là kết quả nhằm khắc phục các hạn chế, đề xuất các mô hình hiệu quả trong việc phát hiện đối về cài đặt mô phỏng: C
Trang 1CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
Đơn vị chủ trì: Trường Đại học Nguyễn Tất Thành
SINH VIÊN BẰNG SMARTPHONE
Số hợp đồng: /HĐ-KHCN
Đơn vị công tác: Khoa Công nghệ thông tin - Trường Đại học Nguyền Tất ThànhThời gianthực hiện: 9tháng
Trang 2TÓM TẤT KÉT QUẢ NGHIÊN cứu
Sản phẩm thực đạt được
(1) Bộ dừ liệu hình ảnh sinh viên khoa
CNTT (KI9)
đốitượng trên môi trường ảnh chụp
(4) Hệ thống phần mềm mô phỏng
phone” trên lớp học
Sản phẩn đăng ký tại thuyết minh
Trang 3MỤC LỤC
CHƯƠNG 1 PHÁT HIỆN ĐỐI TƯỢNG TRONG MÒI TRƯỜNG ẢNH 4
1.1 Deep Neural Network 4
1.2 Convolutional NeuralNetwork (CNN) 5
1.3 Computer vision vàobject detection 6
1.3.1 Object detection phát hiện đối tượngtrong môi trường ảnh 7
1.3.2 Pháthiện đốitượng theo thời gian thực 8
1.3.3 Kiến trúc YOLO v3 12
1.3.4 Computer visionvà các nghiên cứu trongnước 17
1.4 Mô hình CNN và Object detection một giai đoạn 18
1.4.1 Một số điềmchính của kiến trúc CNN 18
1.4.2 Kiến trúc Object detection một giai đoạn 27
CHƯƠNG 2 MÒ HÌNH VÀ THUẬT TOÁN 37
2.1 Mô hình huấn luyện 37
2.1.1 Mô hình dùng cho face detection 37
2.1.2 Kiến trúc mạng huấn luyệncho mục tiêu nhận dạng 42
2.1.3 Các biến dùng cho quá trình huấn luyệnvà train function 46
2.2 Mô hìnhhoạt động của toàn hệ thống 48
2.3 ứngdụng webtrên back-layer 50
2.3.1 Điềukhiến giao tiếp giữa mobile app và web server 52
2.3.2 Chương trình nhậndạng khuôn mặt 54
2.4 ứng dụng điểmdanh trênsmart phone 55
CHƯƠNG 3 NỘI DUNG TRIÊN KHAI 57
3.1 Thu thập dừ liệu 57
Trang 43.1.1 Chụp ảnh sinh viên 57
3.1.2 Đánh dấukhuôn mặtcho mục tiêuobject detection 58
3.1.3 Cắt ảnh khuôn mặt cho mục tiêuface recognition 60
3.2 Chương trình nhận dạng sinhviên dựa trênảnh chụp 61
3.2.1 Phát hiện khuôn mặt trên môi trường ảnh 61
3.2.2 Giao diện ứng dụng chạy trên android 65
Trang 5DANH MỤC KÝ HIỆU VÀ VIÉT TẤTChữ viết tắt Ỷ nghĩa
Bi-FPN Bi-directional Feature Pyramid Network
CIoU Complete Intersectionover Union
CNN Convolutional Neural Network
DPM Deformable Part-based Model
FAIR Fundamental And Applied IT Research
IOƯ Intersection Over Union
PANet PathAggregation Network
R-CNN Region-based Convolutional NeuralNetwork
SSD Single Shot Multi Box Detector
Trang 6DANH MỤC HÌNH ẢNH VÀ ĐÒ THỊ
Hinh 1 1 Minh họa Non-deep và Deepneural network 4
Hĩnh 1 2 Minh họa quá trình convolution 6
Hinh 1 3:ứngdụng chiến lược tìm kiếmchọn lọc dựatrêndữ liệu1'1 8
Hình 1 4: Kếtquả Mask R-CNNtrênbộ dữ liệu coco,ResNet-101-FPNt14] 8
Hinh 1.5: Mô hình phát hiện đối tượngYOLO dựa trên3bước 9
Hình 1 6: Chia lưới và đánh giá hệsố tín nhiệmde cho raket quả trong YOLO 9
Hình 1.7: Môtảcơ chế hoạt động cùa YOLOv3 13
Hình 1 8: Mô hình kiến trúc cùa YOLO v3 14
Hinh 1 9: Hình mô tả cách tính Predictbox trong YOLO 15
Hình 1 10: Cách tínhX|, yi dựavào thuộc tính cùaPredict box 16
Hinh 1.11: Minh họa quá trình trượt filter de convolution 19
Hinh 1 12: Minh họakếtquả convolution cùa 1 layer 20
Hinh 1.13: Convolution với nhiều filter 21
Hình 1.14: Minh họakíchthước cùa ảnhgốc và bộ lọc 21
Hinh 1.15: Mô tả tíchchập trên 1 vùng để tạo ra 1 dot product 22
Hinh 1.16: Convolved feature 22
Hinh 1.17: Activation mapđược tạo sau quátrình convolution 23
Hinh 1.18: Minh họamax-pool đe tạo thành pooling layer 24
Hình 1.19: down sampling 24
Hinh 1 20: fully connected layer 25
Hinh 1.21: Mô hìnhhoạt động cùa Object detection một giai đoạn 27
Hinh 1 22: FPN dùngcho Object Detection 28
Hình 1 23: Áp dụng mô hình FPN để xác định kích thước khácnhau cùađối tượng 29
Hình 1 24: Ket họp Backbone, Neck và Head trong pháthiệnđoi tượng 30
Hình 1 25Ápdụng BoF làm biểndạngảnh gốc cùađối tượngí'^ 31
Hình 1 26: Áp dụng BoF theocách xóa ngẫu nhiêncác vùngtrên ânhgốc [I91 31
Hình 1 27: Áp dụng BoFdựatrên kỳ thuậtDropBlock đe loạibỏ nhiễu trên ânhgốc[|9l 32 Hình 1 28: Hình minh họacho thấysừdụngCIoU cho chất lượng tốt hơnGIoU 33
Hình 1 29: Hìnhminh học việc áp dụng SPP block trong YOLO 34
Hinh 1 30: spatial Attention Module sữ dụng trong YOLO 34
Hinh 1.31: Module SAM được sữa đổi để sửdụng trong YOLO v4 [19] 35
Hĩnh 1 32: Đồ thị tínhMish trong YOLOv3 35
Trang 7Hình 2 1: Minh họanộidung các tập tin dùngcho trainvà valid 39
Hình 2 2: Quyđịnh che độ Traininghay Detect cho DarkNet 39
Hình 2 3: Môhình mạng huấn luyện dùng trong đề tài 43
Hình 2 4: Minh họamô hình hệ thống với 2 mứcFront-layervà Back-layer 49
Hình 2 5: Luồng xữ lýdữ liệu giữa Mobile app và Web server 50
Hình 2 6: Lưu đồ xữ lýyêu cầu điềm danh tại back-server 51
Hình 2 7: Lưu đo yêu cầu cungcấp kếtquảxử lý cho front-layerdựa trên token 52
Hình 2 8: cấutrúc SortedList kiểm soát giao tiếp giữa [back-layer:: front-layer] 53
Hình 2 9: Lưu đồ xừ lý cùa chươngtrình điểm danh sinhviên dựavào khuôn mặt 54
Hình 2 10: Lưu đo gữi hình cho back-layeryêu cầu điểm danh 55
Hình2.11: Lưu đồ mô tả hoạt động của Mobile app 56
Hinh 3 1: Ảnh sinh viên đượclấy mầu dựavào Androidapp 57
Hình 3 2: Hình minh họa đánh dấu khuôn mặt Sinh viên: Trần Lâm Như 58
Hinh 3 3: Hình minh họađánh dấu khuôn mặt Sinh viên: Trần ThànhĐạt 58
Hinh 3 4: Hình minhhọa đánh dấu khuôn mặt Sinh viên: Trương Huệ Mần 59
Hình 3 5: Hình minh họa đánh dấu khuôn mặt Sinh viên: MaiAnhQuyết 59
Hình 3 6: Thưmục chứahình đã đánh dấu củasinhviên ĐinVăn Pháp 59
Hình 3 7: Nội dung của tậptindữ liệu chứathông số đánh dấu khuônmặt 60
Hình 3 8: Khuôn mặt đã được cắt từ ảnh gốc cùa sinh viên: Nguyền Anh Tuấn 60
Hình 3 9: Khuôn mặt đã đượccắt từ ành gốc cùa sinh viên: Nguyền ThịThu Hiền 61
Hinh 3 10: Hình chụp lớp 19DTH1B khitập trung tại bục giảng 62
Hinh 3 11: Phát hiện khuônmặt trên ành chụp lớp 19DTH1B 62
Hình 3 12: Khuôn mặt được xác định dựatrênảnh gốc19DTH1B 62
Hĩnh 3 13: Hình chụp sinhviên lóp 19DTH2D 63
Hình 3 14: Phát hiện khuônmặt trênành chụp cùa sinh viên 19DTH2D 63
Hình 3 15: Khuônmặtđược xác định dựatrênảnh gốc19DTH2D 64
Hinh 3 16: Kết quả điểm danh sinh viên 9DTH1B 64
Hinh 3 17: Kếtquả điểmdanhsinhviên 19DTH2D 64
Hình 3 18: Giao diện chức năng đãng nhập trên android app 65
Hình 3 19: Chức năngliệt kê danh sách các lóp trong học kỳ 66
Hình 3 20: Giao diện chức năng chụp hình điểmdanh của lớp đãchọn 67
Hình 3 21: Chức năng hiển thị danh sách đi học-vangmặt sau điểm danh 68
Hinh 3 22: Chức năngchophépđiểm danh bổ sungđối với sinh viên 69
Hinh 3 23: Chức nângchophépxem thông tin velịch sứđiểm danh củalóp 70
Hình 3 24: Wire frame mô tà chotrình tự thựchiện giữa các giao diện 71
Trang 8DANH MỤC BẢNG BIÉU
Trang 9MỞ ĐÀU
1 Tính khoa học và cấp thiết của đề tài
thuật toán dựa trên ýtưởng từ bộnão của con người qua việc thunhận tri thức thông
qua nhiều tầngbiểu đạt Hướng nghiên cứu này, hiện đang đóng góp không nhỏ vào
tự nhiên, nhận diện giọng nói, chẩn đoán ykhoa,
tựu đáng kể, những thànhtựu này phần lớn đến từ việc áp dụng những cảitiến, điều
có ý nghĩarất quan trọngđối với xã hội, và được sử dụng trong nhiều ứng dụng thục
tablet), vận chuyến (xe tự hành, giao hàng tự động), tương tác người- máy,
Với nhừng thành tựu của lình vực Deep learning hiện nay, việc ứng dụng các mô
hình tiên tiến cho việc triển khai một sản phẩmcụ thể, phục vụ cho môi trường thực
kém chi phí về thời gian, công sức rất lớn trong các buổi học tại giảng đường Điều này không có lợi cho quá trình học tập của sinh viên, cho công tác giảng dạy cùagiảng viên ở trênlớp học, cũng như đối với các đội ngũ hồ trợ có liênquan trong môi
2 Mục tiêu đề tài
Mục tiêu của đe tài là nghiên cứu ứng dụng, thông qua việc đề xuất “Ớhg dụng kỹ
thuật Deep learning cho việc điểm danh sinh viên trong lớp học ” bằng một phương
- Thứ nhất, xây dựng tập dừ liệu hình ảnh của sinh viên KI 9, khoa côngnghệ
Trang 10thông tin, phục vụ cho huấn luyện.
- Th ứ hai, tìm hiếu và lựa chọn mô hình sẽ sử dụng cho mục tiêu Object
Detection trong môi trường ảnh để nhận dạng sinh viên trên ảnh chụp điểm danh
- Thứ ba, chạy mô hình huấn luyện dựa trên tập dữ liệu đã thu thập để xây
dựng mô hình tiên đoán, sửdụng cho chuôngtrình mô phỏng
- Thứ tư, cài đặt vàxây dựng chương trình mô phỏng chạy trên hệ điều hành
Android
3 Phương pháp và đối tượng nghiên cứu
một xu hướng mới, cho phép mộtbài toán cụ thể sẽ được khai thácvới mục tiêu saocho hệ thống dễ thiết kế, chi phí thấp nhưng vần đảm bảo tính đúng đắn và thông
với cài đặt mô phỏng kiểm chứng
về nghiên cứu lý thuyết: Chủ yếu là tìmhiểu các mô hình Object Detect, là kết quả
nhằm khắc phục các hạn chế, đề xuất các mô hình hiệu quả trong việc phát hiện đối
về cài đặt mô phỏng: Các giải pháp ứng dụng cùa đề tài được cài đặt, thực nghiệm
Trang 11các tiêu chí, như: hệ số tiên đoán, hiệu suất, độ trề thực thi, nhằm chứng minh tính hiệu quả của đề xuất nàytrong việctriến khai thực tế.
4 Nội dung nghiên cứu và bố cục đề tài
Nội dung của đề tài được bố cục thành các chương nhưsau:
Nội dung chính cùa chương nàytrình bày về các đặc điểm chính của các
toán và mô hìnhhoạt động của hệ thống chương trình
Mô tả các bước củaquá trình thực hiệnbao gom: thuthậpvà xửlý dừ
liệu mầu, giao diện chương trình ứng dụng, kết quả chạymô phỏng Cuối cùng làphần đánh giá kết quả, đề xuất cho hướng phát triển tiếp theo của đề
tài
Trang 12CHƯƠNG 1.
hình ảnh thunhận được Mục tiêu chính là xác định tấtcả các the hiện của đối tượngtrongmột hoặc nhiềunhóm đối tượng nhất định, bấtke tỷ lệ, vị trí, tư thế, góc nhìn
(của camera), toàn bộ hay mộtphần của vậtthe trong các điều kiện chiếu sáng khác
nhau
1.1 Deep Neural Network
Deep neural networks được phân biệt với các mạngneuron phổ biến, thông thường
chỉ có một lóp trung gian thông qua "chiều sâu ” của chúng; nghĩa là số lượng các
truyền thống dựa vào các mạng "nông" (shallow network), thường chỉ bao gồm một
gồm cả input và output layer) thì được xem là "Deep" learning Do đó, "Deep ” là
một thuật ngữ kỳ thuật mang tính tường minh dành cho những mô hình huấn luyện
Trang 13mạng neuron, thì mục tiêu của các nút càng trở nên phức tạp hon, vì chúng vừa tổng
đó Do đó, DNN được xem là hệ thống phân cấp tính năng với độ phức tạp và trừu
tự học với khả năng xử lý các tập dừ liệu lớn, thậm chí rất lớn, có độ phức tạp cao
DNN có khả năngphát hiện các cấu trúc tiềm ấn trong dữ liệu chưa được gắn nhàn,
những vấn đề mà deep learning giải quyết tốt nhất là xử lý và phân loại các dừ liệu thô "raw media" (bao gồm: hình ảnh, văn bản, video, âm thanh, ) băng cách phát
lý hàng triệuhình ảnh và phân nhóm theo sự tương đồng của chúng đế từ đó cho ra
cái gọi là "album ảnh thông minh" mà hiện nay các hãng công nghệ đang nhắm tớitrong các ứngdụng của mình, nhất là cácứng dụng trên các thiết bị thôngminh vốnrấtphô biến trongđời sống hiện nay
1.2 Convolutional Neural Network (CNN)
Trong mô hìnhmạng neuron truyền thống, các layer kết nối trực tiếp với nhau thông
tích chập hay mạng neuron cuộn) thì ngược lại, các layer liên kết được với nhau
thông qua cơ chế cuộn - tích chập (convolution) chứ không chỉ dựa vào vector trọng
thấy, đầu vào cho layer hiện tại chính là kết quả convolutiontừ layer trước đó, do đó
tacóđược các kết nối cục bộ Nghĩa là mồi neuron ởlayer tiếp theo được sinh ra từ
việc filter đã áp đặt lên một vùng cụcbộ của neuron ở layer trước đó Mồi layernhư
vậy được thiết lập với các filter khác nhau, thông thường có vài trăm đến vài nghìn filter như vậy
ảnh xung quanh cho vị trí diem ảnh trungtâm, hay đe pháthiện cạnh biên thông qua
Trang 14độdị biệt giữa các điếm ảnh lân cận Người ta sử dụng một matrận có kích thước N
X N (sliding window, filter), nhân từng thành phần tương ứng của nó với các điếm
ảnh tương ứng có trong ma trận thuộc hình cần xét (tống các tích vỏ hướng), quá
là một ma trận được sinh ra từ việc ‘7rwợf’ ma trận Nx N để tính tổng các tích lên
gọi là convolution (Hình 1.2)
input image feature maps feature maps feature maps feature maps
(256x256) (256x256) (128x128) (128x128) (64x64) outpu ‘
convolution subsampling convolution subsampling fully
layer I layer I layer I layer I connected I
Hinh 1 2 Minh họa quá trình convolution(https://ai2-s2-public.s3.amazonaws.com/figures/2016-11-Ql/f5flbeada9e269b2a7faed8dfe936919ac0c2397/l -Figure 1 -1.png
Do CNN có tính bất biến và tính kết hợp cục bộ đối với các phép: dịch chuyển
(translation), phép quay(rotation) và phép co giãn(scaling). Điều này giúp thu được
các cấp độ biếu diễn thông tin, từ mức độthấp, cao và trừu tượng hơn thông qua việc
convolution dựa trên các filter (Giống như cách nhận biết thông tin cùa con người trong thế giới tự nhiên). Do vậy, CNN cho ra mô hình với độ chính xác rất cao so
1.3 Computer Vision và object detection
về nhận dạng hình ảnh so với các phương pháp truyền thống khác Hơn nữa, theo
Trang 15đến nay có nhiều nghiên cứu dựa trên kiến trúc CNN với việc tăngcường số lượng
tính
đoi vớixãhội, và được sử dụng trong nhiều ứng dụng thục tế như: robotics, an ninh
(nhận dạng, theo dõi), thiết bị thông minh (smart phone, tablet), vận chuyển (xe tự
hành, giao hàng tự động), tương tác người -máy,
1.3.1 Object detection phát hiện đối tượng trong môi trường ảnh
mầuvà các mô hình dựa trên một phần đơn giản của ảnh Sau đó, các phương pháp
lấy mẫu dựa trên cùng mộtdạng khung hình lại không hồ trợ đoi tượng (người ở tư
the đứng có tỷ lệ khung hình khác với các tư the khác như ngồi hoặc nằm, hoặc đổi tượng là người có tỷ lệ khung hình khác với vật như xe hơi, cá sấu, .).
Đe xuất của nhóm tác giả J R R Uijlings, K E A van de Sande, T Gevers, A w
M Smeulderst|] đưa ra với mục tiêu là tạo ra một chiếnlược tìm kiếm chọn lọc dựatrên dừ liệuvà độc lập với lóp để tạo ra một tập họp nhỏ các vị trí đối tượng có chất
lượng cao Cụ thế, nhóm tác giả sử dụng chiến lược phân nhóm dựa trên dừ liệu,
trong đó gia tăng tính đa dạng bằng cách sử dụng nhiều tiêu chí nhóm bổ sung với
Trang 16nhiều không gian màu cùng các thuộc tính bất biến khác nhau để giới hạn số lượng
Hình 1.3: ứng dụng chiến lược tìm kiếm chọn lọc dựa trên dừliệu11]
ra mặt nạ phânđoạnchất lượng cao chotừngtrườnghọp Phương pháp này được gọi
là Mask R-CNN, mởrộng Faster R-CNN[8] bằng cách thêm một nhánh đế dự đoán
CNN[8], chạy ở tốc độ 5 khung hình/giây Hơn nữa, Mask R-CNN[8] dễ dàng kháiquát hóa cho các nhiệm vụ khác, ví dụ: cho phép hệ thống ước tính được tư thế củacon người trong cùng một khung
1.3.2 Phát hiện đối tượng theo thòi gian thực
Một cách tiếp cận mới để phát hiện đối tượng được nhóm tác giả Joseph Redmon,
Trang 17Santosh Divvala, Ross Girshick và Ali Farhadi[l0] đề xuất, thay vì thực hiện công việc phân loại lại đối tượng trước khi quá trình phát hiện đối tượng diễn ra như đềxuất của các hướng nghiên cứu trước đây, nhóm tác giả sử dụng một mạng neural
lớp được tínhtoán trực tiếp dựa trêncác hình ảnh đầy đủ của đốitượng khi thựchiện đánh giá kết quảtiên đoán Cách làm này đem lại nhiều ưu điếm vượt trội so với các
tiêu phát hiện đối tượng trên môi trường ảnh Các đặc trưng trích xuất được từ ảnhgốc được sử dụng đe tiên đoán mồi bounding box với tất cả các phân lớp Ảnh gốc
một grid cell, gridcell đó sẽ chịu trách nhiệm phát hiện ra đối tượng này
Class probability map
Hĩnh 1.6: Chia lưới và đánh giá hệ số tín nhiệm đếcho ra kết quả trong YOLO
(confidence score) tương ứng với mồi khung Hệ số tín nhiệm phản ánh độ tin cậy
Trang 18của việc đối tượng có (hay không) nằm trong khung giới hạn, đồng thời giá trị này
còn được xem làđộ chính xác, độ so khớp của khung giới hạn với đối tượng ở trên
cùa khung tiên đoán so với khung giới hạn được đánh dấu trước khi huấn luyện
(ground truth box). Neu không ton tại đối tượng nào trong grid cell, hệ số tín nhiệmcủa nó sẽ có giá trịbằng không
cùng, confidence - như đã nói ở trên - the hiện IOU giữa predicted box và ground
Mồi grid cell đồng thời cũng dự đoán c xác suất có điều kiện cùa cclass cho
predict một setc xác suất tương ứng mồi grid cell, không cần quan tâm
den B boundingbox
của lớp có điều kiện và dự đoán độ tin cậy của từngkhunggiới hạnđối vớimồi phân
Pr(ClasSí |Object) * Pr(Object) lOUp™^ = Pr(ClasSị) lOUpred
giới hạn phạmvi đốitượng, kết hợp với xác suấtphân lớp cho đối tượng tương ứng
hình của videođược pháttrực tiếp trong thời gian thực với độ trền dưới 25 mill giây
và đạt được độ chính xác trung bình cao hơn gấp đôi so với các hệ thống thời gian
đoán đối tượng, do việc đánh giá dựa trên toàn bộ hình ảnh đã thực hiện trong quá
Trang 19trình huấn luyện và kiểm chứng nên hệ thống đã ngầm mã hóa thông tin theo ngữ
kỳthuật trước đây chỉ dựatrên khung trượt vàvùng cục bộ, điều nàydẫn đến có thểnhầm lầncác vùng nền với đối tượng, vì khôngthấy được ngữ cảnh chung của toàn
Khả năng tống quát hóa của YOLO cũng là một ưu điếm được nhóm tác giả nhắc
trội hơn rấtnhiều so với các phương pháp DPM[3]và R-CNN[5] trước đây
Bảng 1: Hệ thống thời gian thực trên PASCAL voc 2007[I °l.
lớp Các ràng buộc nàyhạn chế khả năng nhận biết số lượng đối tượng khi chúng có
vị trí rất gần nhau, cũng như đối với các đối tượngcó kích thướcđủnhỏ so với tương
được sử dụng trong việc tiên đoán các bounding box còn khá“ thô” , dần đến YOLO
không thực sự tốt trong việc nhậndạng các đối tượng với tỉ lệ hình khối khác biệtso
Trang 20nhược điểm nàyđã được cải tiến trong YOLO v2[ll], tuy nhiên vẫn thua kém nhiều
Mộthạnchế khác của YOLO đến từquá trình huấn luyện, hàm mấtmát không có sự
chung, lồi nhỏ trên các khunggiới hạn lớn ít có tác hại, nhưng các lồi nhở với khung
giới hạn có kích thướcrấtnhỏ sẽ ảnh hưởng nhiều đến độ đo IOU
1.3.3 Kiến trúc YOLO v3
tâmROI (Regions of Interest) của đối tượng cần phát hiện trên ảnh
với điểm tin cậy c cho khung giới hạn có giá trị nằm trong khoảng 0 - 1 Điểm tin
cậyphản ánh mức độ tincậy của một hộp chứa tươngứngvới lóp của đối tượng mà
nó phát hiện được
Với lưới các ô có kích thước s X s, nên sau khihình ảnh đi qua CNN, YOLO tạo ra
một tensor 3-D có dạng [S, s, B*(5+C)] Hình 1.7 cho thấy, đối với hình ảnh được
Do đó, đối với lần quét đầu tiên sauđi qua CNN, YOLO v3 cho kết quả làmột tensor
Trang 21Hinh 1.7: Mô tảcơ chế hoạt động của YOLO v3
1.3.3.1 Anchor Box
vùng giớihạn nầm ở bên trong Nhưng trên thựctế, mộtkhung tiên đoán có thể chứa
nhiềuhơnmộtđiểmlàtâmcủađối tượng, trong những trường họp có nhiềuđốitượngchồng lên nhau trong khung hình Do đó, để khắc phục vấn đề này, YOLO sử dụng
đồng thời 3 hộp neo khác nhau cho mồi lần quétđểpháthiện đối tượng trên ảnh.Nhưvậy, hộp neo là mộttập các khung giới hạn được xác định trước, có kích thước
Trang 22Với 3 kích thước cho mồi lần quét, ta có tống số các hộp neo đối tượng là 9, trong
đó với lần quét đầutiên, xác địnhđược các kích thước (10x13), (16x30), 33x23); lầnquét thứ 2 có các kích thước (30x61), (62x45), (59x119) và (116x90), (156x198),
I.3.3.2 Prediction Across Scale
Hĩnh 1.8: Môhình kiến trúc cùa YOLO v3
thứ 82 là một tensor 3-D có kích thước 13x13x255
Ó lần quét kế tiếp, YOLOv3 sửdụng ánh xạ đặc trưng xác định được bởi layerthứ
79, tiến hành tăng kích thước gấp đôi để đạt được kích thước mới là 26x26,rồi cho
đi qua một convolution layer Sau đó sử dụng kết quả này đe ghép với feature map
Trang 23Cách làm này cũng được ápdụng tương tự cho lầnquétđế phát hiện đối tượng ở kích
layer rồighép chungvới feature map lấyđược từ layer thứ 36 Cuối cùng tạo ramột
I.3.3.3 Bounding box Prediction
tọa độ tâm của hộp giới hạn liên quan đến lưới các ô có tâm trực thuộc, tw và th là kích thước của khung giớihạn tương ứng
Ket quả của các giá trị trênđược xác định dựa vào công thức sau
Hĩnh 1 9: Hình mô tả cách tính Predict box trongYOLO
Dựa vào cách tínhtrên, kết quả trả về chính là các khunggiới hạnđối tượng có dạng
(bx, by, bw, bh) Với bxvàby là tọa độ tâm của khung giới hạn, bw và bh là kích thước
củakhung Đẻ vè vẽcác khung tiênđoán ở trên ảnh, YOLO xác định tọađộ góc trên
Trang 24Hinh 1 10: Cách tính Xi, yi dựa vào thuộc tínhcủa Predict box
I.3.3.4 Tổng số khung tiên đoán
Như đã giới thiệu trong phần trước, YOLO chạy huấn luyện dựa trên tập dừ liệu
này, thì tông số khung tiên đoán sẽ là 13x13x3 = 507 kết quả Tuy nhiên, trênthực
Do đó, tổng số kết quả : ([(13xl3)+(26x26)+(52x52)]x3)= 10647
I.3.3.5 Non-Maximum Suppression
nhau Cầnphải có một bước để loại bỏ những khung dư thừa và giừ lại khung tiên
đoán được cho là đúng nhất
suppression (NMS) Bản chất cùa phương pháp này làtiến hành loại bỏ các hộp có
hệ số tin cậy dưới ngưỡng quy ước Giả sử, ban đầu ngưỡngtin cậy được xác định
với giá trị là 0.5, như vậy mọi khung tiên đoán có hệ số tin cậynhỏ hơn hoặc bằng
thừa trong tập kết quả Do đó, bước thứ 2 của NMS được ápdụng theo cách:
giảm dần theo giá trị
Trang 25- Chọn khung tiên đoán có điểm tin cậy cao nhất làm tiêu chuẩn, để từ đó tính
tính hệ số loư {Intersection of Union) dựa vào khung tiêu chuẩn với từng
- Loại bỏ những khung có hệ số loưcao của cùng một lớp đối tượng
- Lặp lại các bước trên đối với các khung giới hạn còn lại, cho đen khi chỉ còn
Computer Vision và các nghiên cứu trong nước
nhóm tác giả: Nguyễn Thị Duyên, Trương Xuân Nam, Nguyễn Thanh TùngO8! đềcậptrongbài báo có liên quan tại hội nghị FAIR 2018 Nội dung chủ yếu củabàibáonày, nhóm tác giả đề xuất ứng dụng Deep learning trong việc giải quyết bài toánvề
mạng tích chập và khối cuối là đầu ra softmax Kiến trúc này hướngđến việc nhận
niệm cảm xúc tương đối mờ, nên việc đánh giá chất lượng các phương pháp phát
quả của bài báo còn khá hạn chế, chưa đề cập đến các đánh giá cụ thể hoặc so sánh
vềcác ưu, khuyết điểm của các phươngpháp tiêntiến hiện nay với mô hình đãtriển
cũng là một ứng dụng thực tiền của lình vực thị giác máy tính, được nhómtác giả:Nguyễn Nhật Duy, ĐồVănTiến,NgôĐức Thành,Huỳnh Ngọc Tín, Lê Đình Duy[17ltrình bày trong bài báo “Đảnh giả các phương pháp dựa trên deep learning cho bài
toán phát hiện logo" Nội dung chính của bài báo này đề cập đến các công việc bao
gồm:
Trang 26hiệu từ các diễn đàn, mạng xà hội, cũng như các công cụ tìm kiếm hình ảnh;
• Thực hiện đánh giácác phươngpháp Deep learning tốt nhất hiện nay bao gom
về các yếu tố độ chính xác, tốc độxử lývà tài nguyên tính toán
Kết quả cùa bài báo[l7] sè là một tài liệu tham khảo hữu ích cho mục tiêu phát triển
1.4 Mô hình CNN và Object detection một giai đoạn
1.4.1 Một số điểm chính của kiến trúc CNN
1.4.1.1 - Sigmoid neuron
các vấn đề vềtối ưu hoá Một neuron sẽnhận giá trị input (tạm gọi là x), rồi tiến
giá trị mới z
một neuron Có nhiều loại hàm kích hoạt được ứngdụng cho mạng neuron, một
y 1 + e~z
như mô tả sau:
Chúngta thấy, trọng số w(weight) được xem là trọng số của mồi kếtnối giữa các
cho từng sigmoid neuron đe tạo ra output y:
Trang 271 + e~z
1.4.1.2 - Các layers trong mô hình
huấn luyện được tổ chức thànhmột layer Tập hợp các layer trong mô hình huấn
luyện đượcchia làm 3 loại như sau:
- Convolution layer
- Fully connected layer
1.4.1.2.1 - Convolutional Layer
mục tiêu lọc và tìm kiếm các mầu tín hiệu trên dừ liệu mầu Trong mộtconvolutional layer, tất cả các neuron đều thực hiện phép convolution đối với toàn bộ dừ liệu đầu vào Đối với phép convolution, kích thước của bộ lọc (filter
size)cóý nghĩa rất quan trọng đến việc tạo ra ánhxạđặctrưng (feature mapping)
tong các tích giữa các điểm trên ảnh gốc với cácphần tử trong bộ lọc Giả sử, ta
có 1 một bộ lọc kích thước2x2 với trọng so (weight) của cácphần tử 0.5
Hĩnh 1.11: Minh họa quátrình trượt filter để convolutionTronghình 3.1, có 2output đượcxác địnhkhi bộlọc trượt qua 2 vùng liềnkề với
hệ số trượt là 1
Trang 28Sơđồcủa quá trình convolution đuợc mô tả trong hình 3.2 nhu sau
Đoi với quá trình huấn luyện trên hình ảnh, phép convolution rất hữu dụng cho
mapping và đe tốt hơn, thông thường ở mồi giai đoạn convolution, người ta
Trang 292.0
in.
3.0 ÌĨ12
0.0 ÌH3
5.0 2.5
2.0 1.5
inợ
0.5 in8
5x5x3
Hĩnh 1.14: Minh họa kích thước của ảnh gốc và bộ lọc
Mồi vùng có kíchthước 5x5x3 trên ảnh gốc (dữ liệu mẫu) sẽ được tích chập với
bộ lọc (w)đe cho ra 1 giá trị (dot product), giá trị nàysẽ được kết hợp với hệ số
"thưởng-phạt" bias (b) để tạo thành output Hình 3.5
Trang 3032x32x3 image 5x5x3 filter w
1 number:
the result of taking a dot product between the filter and a small 5x5x3 chunk of the image (i.e 5x5x3 = 75-dimensional dot product + bias)
w' X + b
Hinh 1.15: Mô tả tích chậptrên 1 vùng đểtạo ra 1 dot product
Bộ lọc dùng cho quá trình convoluton sẽ được trượt trên toàn bộ ảnh gốc để tiến hànhnhân haimatrận bao gồm: các vùng có kíchthước 5x5x3 với bộ lọc 5x5x3,
xác định với kích thước 28x28x6 Hình 3.7
Trang 31Hinh 1.17: Activation mapđược tạo sau quá trình convolution
Như vậy, sau mồi lần convolution, kích thướccủa output sè giảm so với ảnh gốc,
và có the được tính bởi côngthức sau:
- p : Padding node -là số hàng, cột sè bù vào cho ảnh gốc (thêm các node
giá') đểkích thước của ảnhgốc bằng n lần kích thước củabộ lọc
- s : Hệ số trượtkhi convolution
1.4.1.2.2 - Pooling Layer:
hiện sẽ giảmđi đáng kế Ngoài ra, số lượng tham số ít đi sẽ ngăn chặn tình trạng
“ quá khớp ” - over-tìtingđoi với môhình cần huấn luyện Trên thựctế, có nhiều
phương pháp đểtínhgộp nhóm như bình quân, L2-norm, nhưng phổ biến nhất
là chọn giá trị lớn nhất trong nhóm, gọi là: Max pooling Nhóm được gộp sẽ có
3.8
Trang 32Single depth slice
Hinh 1.18: Minhhọa max-pool đểtạo thành pooling layer
Với đầu vào có kích thước W1 Hl DI và bộ lọc có kích thước F X F, hệ số
^^+1
Ỡ2 = Dỵ
Với bộ lọc có kích thước 2x2, hệ số trượt là 2 thì kíchthước sau khi tổng họp sè
Trang 331.4.1.2.3 - Fully Connected Layer
Mục đíchcủacác fullyconnected layers là thựchiệnphân loại các đối tượng này.Tại đầura của các convolutional pooling layer trong mô hình, các dừ liệu ở mức
tượng có trong hình ảnh Đe làm điều này, cần phải tạo mộtbộ phân loại cho mô
Có thể thấy, đầu ra của convolutional-pooling layercuối cùng là nhiều kênh có
chuyển thành 1 ma trận [Nxl] (Single tensor).
Giả sử có 64 kênh có kích thước [7x7] (7x7x64), thì số dòng cần chuyển đổi sèđược thực hiện cho ma trận: N = 7x7x64 =3164, tức là sè tạo ra 1 sinhgle tensor
một convolutional network
Fully Fully connected connected Output layer layer 1 layer 2 (10 nodes) (7 X 7 X 64 (1000
= 3164 nodes) nodes)
Hĩnh 1 20: fully connected layer
1.4.1.2.4 - Thani sổ
Trọng so w (weight) trong mạng ANN là yeu to quan trọng, ảnh hưởng rất lớn
Trang 34trọng số và input tại mồi neuron có trongmạng Việc xác định các giá trịtốt nhất
luyện, vì các tham số này ảnh hưởng rất lớn đến chất lượng của mô hình được
Việc xácđịnh weight & bias trong mô hình sẽ được thực hiệntheo cách:
- Ban đầu, gán cácgiá trị ngẫunhiên cho tất cả các trọng số khi tạo các layer
tăng lên khi các ảnh mẫu tiếp tục được nạp vào trong quá trình huấn luyện,
(các mẫu mô tả cho hình ảnh của moi sinh viên cần nhận dạng)
huấn luyện cũng như hiêu quả cua mô hình Neu giá trị của learning rate lớn, tốc
độhọc sẽ nhanh hơn,tuy nhiên điều này có thểđem lại khó khăn đối với việc hội
đến khi chiphí ngừng giảm, hệ số leming rateđược xác định là: 1E-4 (0.0001)
Một vấn để nữa là đánh giá giữa output của mô hình huấn luyện so với thực tế,
tương đương 0, tức là độ tin cậy của mô hình càng cao về cơ bản, chi phí đượctính thông qua công thức
n
cost — 0.5 ' (Ỵ actual ~ ^prediction)2
1=0
- Yprediction là vector chứa output của mạng đối với tất cả ảnh cung cấp cho
- Yactuai là vector chứa các giá trị thực tế của các hình ảnh được gắn nhãn này
Trang 35Neu khoảng cách giữa hai biến này được giảm thiểu, chất lượng huấn luyện củamạng sè tốt hon Do đó, chi phí được xác định là tồng bình phương của khoảng
trình huấn luyện
Trong mô hình được xây dựng cho mục tiêu nhận dạng sinh viên dựa vào khuônmặt, chi phí được tính dựa trên cross entropy thông qua hàm
softmax_cross entropywithlogits cung cấp bởi thư viện TensorFlow
1.4.2 Kiến trúc Object detection một giai đoạn
R-CNN, fastR-CNN và faster R.-CNN là nhừng kiếntrúc pháthiệnđối tượng trong
môi trường ảnhhoạtđộng theo hình thức 2 giai đoạn (two-stage} có độc chính xác
cao, nhưng tốc độ chậm Trong khi đó YOLO có tốc độ tốt hơn đáng kể, nhưng độ
Việc sử dụng các mô hình như: ResNet, DenseNet, VGG, đe chạy huấn luyệntrước
loại như ImageNet, giúp trích xuất được cácđặc trưng ở các mức khác nhauvới ngừnghĩa cao hơn khi mạng có nhiều layerhơn, điều này sè đem lại nhiều thuận lợi khichạy huấn luyện trên tập dừ liệu chính cho mục tiêu object dectection Do đó,Backboneđược xem là giai đoạntiền huấn luyện (pre-trained) của YOLO V4
Trang 361.4.2.2 Neck
trưng theo các giai đoạn khác nhau trong backbone Các layers này có thể được sử
dụng: FPN, PANet, Bi-FPN, (YOLO v3 sứ dụng FPN làm neck trong kiến trúc cùa
mình')
Nè cơbản,FPN làmộtCNNtiêuchuẩncó hướng từ trên xuống theo đườngthẳng với
Hĩnh 1.22: FPN dùng cho Object DetectionMồi kếtnối giữa các mức kềcậntheo các hướng từ trên xuống, haytừ dưới lêntạo ra
các cấp kim tự tháp có kích thước khác nhau Trước khi hợp nhất các ánh xạ đặc
chúng đong nhất về mặt kích thướckhông gian,sauđó áp dụng phân loại hay hồi quy
nhau VD: SFAM, ASFF, Bi-FPN
Trang 37(c) STDN-style feature pyramid (d) Our multi-level feature pyramid
Hinh 1.23: Áp dụng mô hình FPN đểxác định kích thướckhác nhau của đối
tượng
Hình (a) cho thấy các đặc trưng được trích xuấttừ backbone trong kiến trúc cùa SSD,
giống nhau, nhằm làm giảm nhẹ các phát sinh do sự thay đổi về tỷ lệ cùa đối tượng
1.4.23 Head
thước đối với giới hạn được tiên đoán (x, y, w, /?) cùng với xác suất của k lớp + 1
(Thêm 1 vì các hình thường cỏ nền đi kèm),các chươngtrình objectdetectionthường
dựavào việcđịnhvị giữa phân lớp với hộpgiớihạntươngứng, gọi là detector anchor
based Thành phần Headtrong YOLO áp dụng neo cho các predictbounding box, khi
RetinaNet
Trang 38Hinh 1 24: Ket hợp Backbone, NeckvàHead trongphát hiện đối tượng
I.4.2.4 Bag of freebies & Bag of specials
độchính xác vàtốc độ đếphùhọpvới mục tiêu phát hiện đốitượng theothời gianthực, bao gồm:
- Bag offreebies
1.4.2.4.1 Bag of freebies (BoF):
xẻn, ), thayđoi độ sáng, độ tương phản, nhiễu trên ảnh gốc, điều này làm tăng
độ chính xác của quá trình phát hiện đối tượng, tuy nhiênchi phí cho quá trình huấn
ý: Khi thực hiện phép biến dạng hình học cùa đối tượng, Bounding Box cũng cần phải
bị biến đổi đồng dạng cho phù hợp
Trang 39Hinh 1 25Áp dụng BoF làm biến dạng ảnhgốc của đối tượng[|9].
Mộtcách áp dụng khác của BoFlà CutOut, nhómtácgiả[19] đãtiến hành cáckỳ thuật
các vùng có giới hạn hình chĩrnhật trong ảnh gốc, xóa ngẫu nhiên các pixel có trong
Hình 1 26: Áp dụng BoF theocách xóa ngầunhiên các vùng trên ảnh gốc [19]
over-fitting (quả khớp) như: DropOut, DropConnect hay như DropBlock Trong đó,DropBlock là kỳ thuậtđược sử dụng rất hiệu quả trongCNN đế giảm thiếu tìnhtrạng
Trang 40Hình 1 27: Áp dụng BoF dựa trên kỳ thuật DropBlock để loại bỏ nhiễutrên ảnh
Việc loại bở các activation mộtcách ngầu nhiên nhu trong hình (b) không tốt, vì điều này có thể vôtình loại bỏ cảnhũng thông tin có nghĩa Thayvào đó, loại bỏ cácđiểm
thông tin có ngừnghía nhất định (VD: Một phần của đầu hay chân), sau đó thực thi
ảnh đầuvào
MSE = ^V(ỹ-yi)2
i=iViệc tính sai số dựa trên trung bình bình phương dựa trên quan điếm, xem những
Đe cảithiện, tổn thấtloUđược đề xuất, trong đó xétđếntỷlệ giữa phần giao diện tích
của hộp tiên đoán (BBox) và phạm vi giới hạn thực sự của đối tượng ở trên ảnh vàphần hội của cả haihộp này
ỉoU = |A n B\
|AUB|
Mộtýtưởng khác được đề xuấtđể cải thiện tốt hơn, bằng cách xét tổn thất GIoU dựa
ngoài phạm vi của khung giới hạn, ý tưởng này đề xuất xác định hộp tiên đoán có
diện tích nhỏ nhất, có the bao phủ đồng thời khung dự đoán và khung giới hạn thậtcủađối tượng, sau đó dùng BBox này làm cơ sở đểtính toán tổn thấtloU Tuy nhiên,
thước của hộp tiên đoán cho tới khi chồng lên khung giới hạnthậtcùa đoi tượng, sau