Hệ thống giám sát tự động hoạt động của học sinh tham gia tiết tự học tại trường để đánh giá xếp loại hạnh kiểm Hệ thống giám sát tự động hoạt động của học sinh tham gia tiết tự học tại trường để đánh giá xếp loại hạnh kiểm Hệ thống giám sát tự động hoạt động của học sinh tham gia tiết tự học tại trường để đánh giá xếp loại hạnh kiểm
Trang 1TRƯỜNG ĐẠI HỌC LẠC HỒNG
TRƯƠNG PHÁP
HỆ THỐNG GIÁM SÁT TỰ ĐỘNG HOẠT ĐỘNG CỦA HỌC SINH THAM GIA TIẾT TỰ HỌC TẠI TRƯỜNG ĐỂ ĐÁNH GIÁ XẾP LOẠI HẠNH KIỂM
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Đồng Nai, Năm 2023
Trang 2TRƯỜNG ĐẠI HỌC LẠC HỒNG
- -
TRƯƠNG PHÁP
HỆ THỐNG GIÁM SÁT TỰ ĐỘNG HOẠT ĐỘNG CỦA HỌC SINH THAM GIA TIẾT TỰ HỌC TẠI TRƯỜNG ĐỂ ĐÁNH GIÁ XẾP LOẠI HẠNH KIỂM
Chuyên ngành: Công nghệ thông tin
Mã số chuyên ngành: 8480201
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS TRẦN BÌNH LONG
Đồng Nai, Năm 2023
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan nội dung trình bày trong luận văn là công trình nghiên cứu của tôi, dưới sự hướng dẫn của TS Trần Bình Long, tại trường Đại học Lạc Hồng
Trong luận văn này, các kiến thức từ các công trình có liên quan được kế thừa lại, có trích dẫn đầy đủ Mã nguồn cài đặt của hệ thống, các thực nghiệm, kết quả, số liệu và hình ảnh được sử dụng trong luận văn là trung thực
Trương Pháp
Trang 4Xin chân thành cảm ơn
Trương Pháp
Trang 5TRƯỜNG ĐẠI HỌC LẠC HỒNG
KHOA SAU ĐẠI HỌC
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
TÓM TẮT LUẬN VĂN
(Dùng cho luận văn và người hướng dẫn)
Đề tài: Hệ thống giám sát tự động hoạt động của học sinh tham gia tiết tự học tại trường để đánh giá xếp loại hạnh kiểm
Ngành: Công nghệ thông tin Mã số: 921000115
Học viên: Trương Pháp
Người hướng dẫn: TS Trần Bình Long
NỘI DUNG TÓM TẮT
1 Nội dung được giao và kết quả mong đợi của người hướng dẫn
- Nghiên cứu trí tuệ nhân tạo (AI - Artificial Intelligence), máy học (Machine Learning) và các phương pháp sử dụng học máy, học sâu (Deep Learning) mà cụ thể
là thuật toán mạng nơron nhân tạo CNN (Convolutional Neural Network) và mô hình Yolo v8
- Thu thập thông tin, dữ liệu, các nghiên cứu liên quan
- Tiền xử lý ảnh Phân tích dữ liệu
- Lựa chọn mô hình, giải thuật đề xuất và công nghệ sử dụng
- Xây dựng hệ thống
- Thử nghiệm và đánh giá kết quả
- Hoàn thiện hệ thống, viết báo cáo luận văn
2 Cách thức giải quyết vấn đề
Để hỗ trợ giáo viên trong việc nhận xét đánh giá hạnh kiểm của học sinh tham gia các tiết tự học tại trường Cần một phần mềm xử lý nhận dạng khuôn mặt và các hoạt động của học sinh, để từ đó có những đánh giá về mặt hạnh kiểm của học sinh trong các tiết tự học
Giải pháp đưa ra để giải quyết vấn đề xây dựng “Hệ thống giám sát tự động
Trang 6hoạt động của học sinh tham gia tiết tự học tại trường để đánh giá xếp loại hạnh kiểm” được thực hiện theo các bước sau:
- Bước 1: Tạo bộ dữ liệu bao gồm hình ảnh của học sinh và hình ảnh các hoạt động của học sinh trên lớp
- Bước 2: Chuẩn hóa dữ liệu hình ảnh
- Bước 3: Sử dụng Yolo v8 để huấn luyện nhận diện khuôn mặt và hành động
- Bước 4: Viết chương trình
Kết hợp các bước trên triển khai xây dựng thành một phần mềm hệ thống giám sát tự động hoạt động của học sinh tham gia tiết tự học tại trường để đánh giá xếp loại hạnh kiểm Tạo mô hình huấn luyện và huấn luyện bộ dữ liệu bằng mạng CNN được viết bằng ngôn ngữ Python, sử dụng thư viện OpenCV, face recognition, Yolo v8 và các thư viện học máy
Đồng Nai, Ngày … tháng … năm 2023
Trương Pháp
Trang 7MỤC LỤC
LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC V DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT VII DANH MỤC CÁC HÌNH VẼ ĐỒ THỊ VIII DANH MỤC CÁC BẢNG X
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu của luận văn 2
1.3 Phạm vi và đối tượng nghiên cứu 2
1.4 Nội dung thực hiện 2
1.5 Phương pháp thực hiện 3
1.6 Đóng góp của luận văn 3
1.7 Cấu trúc luận văn 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5
2.1 Trí tuệ nhân tạo (Artificial intelligence - AI) 5
2.2 Học máy (Machine Learning - ML) 6
2.3 Thuật toán mạng nơron nhân tạo (Artificial Neural Network Algorithm) 7
2.3.1 Cơ chế hoạt động của mạng nơron nhân tạo: 8
2.4 Học sâu (Deep Learning - DL) 9
2.5 Mạng thần kinh tích chập (Convolutional Neural Network - CNN) 10
2.5.1 Lớp tích chập [4] 11
2.5.2 Lớp gộp chung (Pooling Layer) [4] 14
2.5.3 Lớp kết nối đầy đủ (Fully Connected Layer) 16
2.5.4 Các tham số của bộ lọc 16
2.5.5 Điều chỉnh siêu tham số 17
2.6 Các công cụ dùng trong luận văn 19
2.6.1 Nhận dạng khuôn mặt (Face Recognition) [9] 19
2.6.2 Nhận dạng hành động (Action Recognition) 21
2.6.3 Yolo (You Only Look Once) [10] 22
Trang 82.6.4 Adobe Photoshop 33
2.6.5 Makesence.ai 34
CHƯƠNG 3 XÂY DỰNG DATASET VÀ THIẾT KẾ CHƯƠNG TRÌNH 37
3.1 Mô tả bài toán 37
3.2 Hình ảnh đầu vào 37
3.2.1Xây dựng bộ dữ liệu 37
3.3 Tiền xử lý ảnh 39
3.4 Xây dựng mô hình học sâu (Yolo v8) 42
3.5 So khớp và nhận dạng 43
3.6 Đánh giá mô hình 44
CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ 47
4.1 Cài đăt môi trường 47
4.1.1 Ngôn ngữ lập trình Python 47
4.1.2 Thiết kế giao diện 49
4.1.3 Huấn luyện mô hình trên google colab 49
4.2 Thực nghiệm 51
4.3 Đánh giá mô hình 53
CHƯƠNG 5 KẾT LUẬN 57
5.1 Kết luận 57
5.2 Hướng phát triển của đề tài 57
TÀI LIỆU THAM KHẢO 59
Trang 9DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Trang 10DANH MỤC CÁC HÌNH VẼ ĐỒ THỊ
Hình 2.1 Mối quan hệ giữa AI, ML và DL 5
Hình 2.2 Phân loại học máy 6
Hình 2.3 Cấu trúc mạng nơron nhân tạo 7
Hình 2.4 Minh họa cơ chế hoạt động của mạng nơron nhân tạo 8
Hình 2.5 Deep Learning 9
Hình 2.6 Mạng nơron tích chập CNN 11
Hình 2.7 Mô phỏng phép tích chập 12
Hình 2.8 Kết quả phép nhân tích chập 12
Hình 2.9 Hình ảnh tích chập bằng các bộ lọc khác nhau 13
Hình 2.10 Đồ thị hàm Relu 14
Hình 2.11 Minh họa sau khi dùng phép gộp chung 15
Hình 2.12 Lớp kết nối đầy đủ Fully Connected Layer 16
Hình 2.13 Minh họa các chiều của bộ lọc 17
Hình 2.14 Độ trượt 17
Hình 2.15 Kích thước của future map 17
Hình 2.16 Nhận dạng khuôn mặt Face Recognition 19
Hình 2.17 Hệ thống nhận dạng khuôn mặt 20
Hình 2.18 Hệ thống nhận dạng hành động 21
Hình 2.19 Mô hình nhận dạng hành động 22
Hình 2.20 Mô hình mạng Yolo 23
Hình 2.21 Cách Yolo v1 hoạt động 24
Hình 2.22 Yolo v3 25
Hình 2.23 Kiến trúc mạng Yolo v4 26
Hình 2.24 So sánh Yolo v4 và các phiên bản trước 26
Hình 2.25 Kiến trúc mạng Yolo v5 27
Hình 2.26 Kiến trúc mạng Yolo v6 28
Hình 2.27 So sánh Yolo v6 với các phiên bản 28
Hình 2.28 Yolo v7 29
Hình 2.29 So sánh Yolo v7 với các phiên bản trước 30
Hình 2.30 So sánh hiệu suất Yolo v7 30
Trang 11Hình 2.31 Kiến trúc mạng Yolo v8 31
Hình 2.32 So sánh các phiên bản Yolo 32
Hình 2.33 Phần mềm Adobe Photoshop 33
Hình 2.34 Trang web gán nhãn ảnh Makesence.ai 35
Hình 3.1 Cấu trúc hệ thống nhận dạng 37
Hình 3.2 Tập dữ liệu T_face và T_action 38
Hình 3.3 Chỉnh kích thước ảnh bằng Photoshop 39
Hình 3.4 Gán nhãn ảnh tập ảnh T_face trên trang makesense.ai 40
Hình 3.5 Chuyển đổi tập hình ảnh T_face sang file vector 40
Hình 3.6 Gán nhãn ảnh tập ảnh T_action trên trang makesence.ai 41
Hình 3.7 Chuyển đổi tập hình ảnh T_action sang file vector 41
Hình 3.8 Mô hình tập cơ sở dữ liệu được phân chia 42
Hình 3.9 Mô hình đánh giá 5 – ford cross validation 43
Hình 3.10 Đường Roc Curve 45
Hình 4.1 Qt Designer 49
Hình 4.2 Lưu trữ chương trình colab và file trên Google Drive 50
Hình 4.3 Huấn luyện mô hình trên Google Colab 51
Hình 4.4 Giao diện chương trình 52
Hình 4.5 Chạy chương trình 53
Hình 4.6 Hệ thống trả về file excel điểm danh 53
Hình 4.7 Biểu đồ Confidence Curve 54
Hình 4.8 Kết quả độ chính xác 54
Hình 4.9 Train dữ liệu với số vòng huấn luyện 30 epochs 55
Trang 12DANH MỤC CÁC BẢNG Bảng 2.1 Mô tả lớp gộp chung Pooling Layer 15 Bảng 2.2 Mô tả độ phức tạp ở các lớp trong CNN 18 Bảng 4.1 Tỉ lệ chính xác của phương pháp nhận dạng 56
Trang 13CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1.1 Lý do chọn đề tài
Đánh giá kết quả rèn luyện và học tập của học sinh là hoạt động thu thập, phân tích, xử lý thông tin thông qua quan sát, theo dõi, kiểm tra, nhận xét quá trình rèn luyện và học tập của học sinh trong các môn học Tư vấn, hướng dẫn, động viên học sinh, xác nhận kết quả đạt được của học sinh, cung cấp thông tin phản hồi cho giáo viên và học sinh để điều chỉnh quá trình dạy học và giáo dục
Ở Việt Nam hiện nay, một số trường học đã gắn camera tại các lớp học để giám sát chất lượng các buổi dạy và học, quan sát hoạt động của học sinh trong lớp học
Từ đó có những nhận xét đánh giá về chất lượng giảng dạy của giáo viên và học tập của học sinh
Để hỗ trợ giáo viên trong việc nhận xét đánh giá hạnh kiểm của học sinh tham gia các tiết tự học tại trường Cần một phần mềm xử lý nhận dạng khuôn mặt và các hoạt động của học sinh, để từ đó có những đánh giá về mặt hạnh kiểm của học sinh trong các tiết tự học
Với sự phát triển nhanh chóng của các loại máy móc hiện đại như máy ảnh số, máy quay phim kỹ thuật số, máy vi tính, điện thoại di động, camera v.v… thì lượng thông tin con người thu được dưới dạng hình ảnh video là khá lớn Để lượng thông tin này trở nên có ích hơn con người cần phải tiến hành xử lý nó và từ đó tạo điều kiện cho sự phát triển không ngừng của các kỹ thuật xử lý hình ảnh video
Bên cạnh đó, hệ thống camera quan sát ngày càng được sử dụng một cách rộng rãi với mục đích hỗ trợ giám sát an ninh cho các cửa hàng, cơ quan, trường học, văn phòng, công ty, ngân hàng, v.v… Nhưng các camera này chỉ có khả năng để lưu giữ các dữ liệu video và chúng ta cần tốn thêm chi phí để thuê các nhân viên bảo vệ để quan sát và phát hiện khi có người nào đó xâm nhập
Hiện nay trên thế giới cũng đã có một số ứng dụng cũng như nghiên cứu về việc giám sát hỗ trợ an ninh Nhiều nghiên cứu về bài toán nhận diện hành động của con người trong video như: Karpathy và các cộng sự sử dụng CNN phân loại video theo hành động của con người [1], S Ji và các cộng sự sử dụng 3D CNN nhận diện hành động của con người [2], S Yang và các cộng sự "From facial parts responses to
Trang 14face detection a deep learning approach"[14], Mai Xuân Phú “Nghiên cứu kỹ thuật nhận dạng khuôn mặt người xây dựng hệ thống camera chống trộm” [6], Đặng Thị
Mỹ Nhàn “Ứng dụng deep learning để đếm số lượng xe ôtô trong nội thành Đà Nẵng” [7], Dương Hữu Phước, "Xây dựng hệ thống nhận dạng thuộc tính mặt người dựa vào mạng học sâu tích chập"[12], Nguyễn Thị Thủy, "Phương pháp nhận dạng khuôn mặt người và ứng dụng trong quản lý nhân sự" [13]… và nhiều nghiên cứu ứng dụng khác khác trong đời sống
1.2 Mục tiêu của luận văn
Xây dựng hệ thống giám sát tự động hoạt động của học sinh tham gia các tiết tự học tại trường để đánh giá xếp loại hạnh kiểm
1.3 Phạm vi và đối tượng nghiên cứu
Phạm vi nghiên cứu: xử lý hình ảnh và video từ camera giám sát học sinh tham gia các tiết tự học, từ đó đưa ra đánh giá xếp loại hạnh kiểm học sinh trong quá trình học tập Mỗi học kỳ sẽ có 10 tiết tự học, thông qua camera giám sát, hệ thống sẽ đánh giá xếp loại hạnh kiểm học sinh tự động qua 10 tiết tự học Đánh giá hạnh kiểm bằng hình thức điểm danh học sinh như có mặt hay vắng mặt, và một số hành động không được cho phép trong tiết học như đi lại, đứng, nằm, …
Đối tượng nghiên cứu: các hoạt động của học sinh, dùng camera giám sát lớp học, sau đó hệ thống sẽ tự động nhận dạng và chấm điểm đánh giá hạnh kiểm
1.4 Nội dung thực hiện
Tìm hiểu về nhận dạng khuôn mặt và hành động của cá nhân, tổng quát thực trạng hiện nay ở trong và ngoài nước về các công trình, ứng dụng nhận dạng khuôn mặt và hành động của cá nhân trong video
Tìm hiểu các công nghệ có hiệu quả và thường dùng hiện nay để nhận dạng khuôn mặt và hành động của cá nhân, từ đó tìm ra phương pháp cho bài toán nhận dạng khuôn mặt và hành động của học sinh trong video
Tìm hiểu thuật toán mạng nơron tích chập CNN và Yolo để ứng dụng nhận dạng khuôn mặt và hành động của học sinh trong video
Tạo bộ cơ sỡ dữ liệu ảnh
Trang 15Tìm hiểu máy học để nhận dạng khuôn mặt và hành động của học sinh trong tiết tự học
Tiến hành thử nghiệm với bộ cơ sở dữ liệu khuôn mặt và hành động của học sinh trong video
Xây dựng phần mềm nhận dạng khuôn mặt và hành động của học sinh
1.6 Đóng góp của luận văn
Về mặt lý thuyết, luận văn có những đóng góp sau:
- Tổng quan các khái niệm như: trí tuệ nhân tạo (Artificial Intelligence), học máy (Machine Learning), học sâu (Deep Learning), mạng nơ-ron nhân tạo (Artificial Neural Network), mạng nơ-ron tích chập (Convolutional Neural Network), và mối quan hệ giữa chúng
- Xây dựng được mô hình phân lớp mẫu các học sinh và các hành động của học sinh
Ngoài ra, luận văn còn có những đóng góp về mặt ứng dụng như:
- Xây dựng được hệ thống giám sát tự động hoạt động của học sinh tham gia tiết tự học tại trường để đánh giá xếp loại hạnh kiểm
- Xây dựng được mô hình các hoạt động của học sinh trong lớp
Trang 161.7 Cấu trúc luận văn
Luận văn được trình bày trong 5 chương như sau:
- Chương 1: Tổng quan đề tài
- Chương 2: Cơ sở lý thuyết
- Chương 3: Xây dựng dataset và thiết kế chương chình
- Chương 4: Thử nghiệm và đánh giá kết quả
- Chương 5: Kết luận
Trang 17CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Trí tuệ nhân tạo (Artificial intelligence - AI)
Trí tuệ nhân tạo, trí thông minh nhân tạo (Artificial intelligence - AI) là một ngành thuộc lĩnh vực khoa học máy tính (Computer science), là lĩnh vực nghiên cứu
và phát triển các hệ thống máy tính có khả năng thực hiện các nhiệm vụ yêu cầu sự hiểu biết, logic, học tập, và ra quyết định giống hoặc tương tự con người, là trí tuệ do con người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành
vi thông minh như con người
Mục tiêu của trí tuệ nhân tạo là tạo ra các máy tính có khả năng thực hiện công việc mà trước đây chỉ có con người mới có thể thực hiện được Trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi,… Trí tuệ nhân tạo đã có nhiều ứng dụng trong đời sống hàng ngày, từ các hệ thống trợ giúp thông minh (như trợ lý ảo) đến ứng dụng trong y tế, tài chính, và nhiều lĩnh vực khác… [3]
Hình 2.1 Mối quan hệ giữa AI, ML và DL
Trí Tuệ Nhân Tạo
Học Máy
Học Sâu
Trang 182.2 Học máy (Machine Learning - ML)
Học máy là một nhánh quan trọng của trí tuệ nhân tạo, là phương tiện mà con người vận dụng để máy tính có được trí tuệ như con người Cụ thể hơn học máy tập trung vào việc xây dựng các mô hình máy tính có khả năng học từ dữ liệu và cải thiện hiệu suất theo thời gian mà không cần lập trình cụ thể, các mục tiêu làm cho máy tính
có những khả năng nhận thức cơ bản của con người như nghe, nhìn, hiểu được ngôn ngữ tự nhiên, hình ảnh, giải toán, lập trình… và hỗ trợ con người trong việc xử lý khối lượng thông tin khổng lồ mà chúng ta phải đối mặt hàng ngày trong công việc
và cuộc sống.[15]
Dựa theo phương thức học, các thuật toán học máy thường được chia làm các nhóm: học có giám sát (supervised learning), học không giám sát (unsupervised learning), học bán giám sát (semi-supervised learning) và học tăng cường (reinforcement learning)… Ngoài ra còn một cách khác phân loại theo công dụng và đặc điểm của từng thuật toán như: thuật toán hồi quy, thuật toán phân lớp, thuật toán cây quyết định, thuật toán tăng cường, thuật toán mạng nơron ….[3]
Hình 2.2 Phân loại học máy
Trang 192.3 Thuật toán mạng nơron nhân tạo (Artificial Neural Network Algorithm)
Mạng nơron nhân tạo (Artificial Neural Network - ANN) là một mô hình tính toán lấy cảm hứng từ cách hoạt động của hệ thống nơron trong não người Nó là một phần quan trọng trong lĩnh vực học máy và trí tuệ nhân tạo Mạng nơron nhân tạo được thiết kế để học và thực hiện các nhiệm vụ thông qua việc ánh xạ đầu vào sang đầu ra dựa trên các trọng số kết nối được điều chỉnh trong quá trình huấn luyện Mạng nơron nhân tạo là một tập hợp con của học máy, trung tâm của thuật toán học sâu được đưa ra để hỗ trợ tìm kiếm những mối quan hệ cơ bản của một tập hợp
dữ liệu dựa vào việc bắt chước cách thức hoạt động từ não bộ con người Nơron nhân tạo có các mô đun phần mềm, được gọi là nút Mạng nơron nhân tạo là chương trình phần mềm hoặc thuật toán mà về cơ bản, sử dụng hệ thống máy tính để giải quyết phép toán
Mạng thần kinh nhân tạo có cấu tạo nhiều lớp nút, bao gồm lớp đầu vào, một hoặc nhiều lớp ẩn và lớp đầu ra Mỗi nút, hoặc nơron nhân tạo, kết nối với tất cả các nút khác có trọng số cùng ngưỡng liên quan Chúng phối hợp, gửi tín hiệu đến nhau
để cùng giải quyết vấn đề [3]
Hình 2.3 Cấu trúc mạng nơron nhân tạo
Trang 20Một mạng nơron nhân tạo bao gồm các thành phần chính sau:
Lớp đầu vào: chứa các đơn vị (nơron nhân tạo) nhận đầu vào từ thế giới bên ngoài mà mạng sẽ học, nhận biết hoặc xử lý theo các cách khác nhau
Lớp đầu ra: chứa các đơn vị phản hồi thông tin về cách nó học bất kỳ nhiệm
vụ nào
Lớp ẩn: các đơn vị này nằm giữa các lớp đầu vào và đầu ra, công việc của lớp
ẩn là biến đổi đầu vào thành thứ mà đơn vị đầu ra có thể sử dụng bằng cách nào đó Nút (hoặc nơron): Là các đơn vị cơ bản trong mạng, tương tự như nơron trong não người Mỗi nút thường có một giá trị đầu vào, thực hiện một phép toán trên giá trị này, và sau đó chuyển giá trị đầu ra đến nút tiếp theo
Kết nối: Là các liên kết giữa các nút, mỗi liên kết có một trọng số Trọng số này thể hiện mức độ quan trọng của kết nối, và nó được điều chỉnh trong quá trình huấn luyện để mạng có thể học từ dữ liệu
Kiến trúc mạng: Là cách các nút và kết nối được tổ chức trong mạng Có nhiều kiểu kiến trúc mạng khác nhau, bao gồm mạng nơron đơn và mạng nơron đa lớp Mạng nơron đa lớp, đặc biệt là mạng nơron sâu (Deep Neural Networks - DNN) đóng vai trò quan trọng trong nhiều ứng dụng học máy ngày nay
2.3.1 Cơ chế hoạt động của mạng nơron nhân tạo:
Hình 2.4 Minh họa cơ chế hoạt động của mạng nơron nhân tạo
Trang 21Mạng nơron nhân tạo được xem như đồ thị có hướng, có trọng số, trong đó các nơron nhân tạo là các nút và các cạnh có hướng có trọng số là các kết nối giữa đầu vào và đầu ra Mạng nơron nhân tạo nhận thông tin từ thế giới bên ngoài dưới dạng mẫu và hình ảnh ở dạng vectơ Các đầu vào này được ký hiệu x(n) cho n số đầu vào Mỗi đầu vào được nhân với trọng số tương ứng của nó
Trọng số (ký hiệu wn cho n đầu vào) là thông tin được sử dụng bởi mạng nơron
để giải quyết một vấn đề nào đó Thông thường, trọng số thể hiện độ bền của liên kết giữa các nơron bên trong mạng đó, các đầu vào có trọng số đều được tổng hợp bên trong đơn vị tính toán Trong trường hợp tổng trọng số bằng không, thiên vị (ký hiệu
là b - Bias) được thêm vào để làm cho đầu ra không bằng không hoặc để mở rộng phản ứng của hệ thống, thiên vị có trọng số và đầu vào luôn bằng một
Tổng tương ứng với bất kỳ giá trị số nào khác nhau, từ không đến vô cùng Để giới hạn phản hồi đạt đến giá trị mong muốn, giá trị ngưỡng được thiết lập Đối với điều này, tổng được chuyển tiếp thông qua một hàm kích hoạt Chức năng kích hoạt được đặt thành chức năng truyền tải để có được đầu ra mong muốn [3]
2.4 Học sâu (Deep Learning - DL)
Học sâu (Deep Learning - DL) là một nhánh của trí tuệ nhân tạo (AI) tập trung vào việc sử dụng mạng nơron nhân tạo có nhiều lớp để học từ dữ liệu Mạng nơron sâu (DNN) thường chứa nhiều lớp (tầng) nơron, điều này cho phép chúng học các đặc trưng phức tạp và biểu diễn thông tin ở mức độ cao [5]
Hình 2.5 Deep Learning
Trang 22Deep Learning (Deep Learning - DL) được bắt nguồn từ thuật toán mạng nơron nhân tạo, là một nhánh của trí tuệ nhân tạo (AI), và là một phần trong các phương pháp học máy dựa trên mạng thần kinh nhân tạo Phương pháp mạng nơron nhân tạo dần phát triển, tập trung vào việc sử dụng mạng nơron nhân tạo có nhiều lớp để học
từ dữ liệu, tăng số lớp, số nơron, xử lý khối lượng lớn dữ liệu, việc tăng số lớp trong mạng nơron được gọi là sâu Mạng nơron nhân tạo sâu được học (hoặc được huấn luyện) gọi là học sâu sẽ dùng nhiều lớp để rút trích dần các đặc trưng từ mẫu đầu vào giúp cho việc xử lý trở nên chính xác hơn
Deep Learning cùng với Dữ liệu lớn và Trí tuệ nhân tạo đã có nhiều ứng dụng trong thực tế và phát triển mạnh theo sự phát triển của tốc độ máy tính và sự tăng nhanh của dữ liệu cùng với các framework, làm việc xây dựng mô hình trở nên dễ dàng hơn
Deep Learning chỉ là một ngành nhỏ của học máy, tuy nhiên học sâu Deep learning quan tâm đến việc xây dựng các mạng thần kinh lớn hơn, phức tạp hơn nhiều,
và làm sao để khai thác hiệu quả các bộ dữ liệu lớn chứa rất ít dữ liệu đã được gán nhãn Mang lại rất nhiều thành tựu cực kỳ nổi bật như: sự chính xác của xử lý đồ họa qua thị giác máy tính, xử lý ngôn ngữ tự nhiên, nắm bắt được chuyển động và cử chỉ
Chính những thành tựu nổi bật như vậy mà rất nhiều thuật toán học sâu ra đời như: mạng nơron tích chập (Convolutional Neural Network - CNN), mạng nơron hồi quy (Recurrent Neural Networks - RNN), mạng nhớ ngắn hạn định hướng dài hạn (Long Sort Term Memory - LSTM), mạng đối nghịch (Generative Adversarial Network - GAN) [3]
2.5 Mạng thần kinh tích chập (Convolutional Neural Network - CNN)
Mạng nơron tích chập (Convolutional Neural Network - CNN) là một dạng của mạng nơron nhân tạo được thiết kế đặc biệt cho việc xử lý và phân tích hình ảnh Mạng nơron tích chập CNN đã đạt được rất nhiều thành công trong nhiều ứng dụng, bao gồm nhận dạng đối tượng, nhận dạng khuôn mặt, phân loại hình ảnh và nhiều nhiệm vụ khác liên quan đến thị giác máy tính.[3]
Trang 23Image Convolution layer Pooling layer Fully conneted layer
Lớp gộp chung (Pooling Layer): Thường theo sau lớp tích chập, lớp gộp giúp giảm kích thước của bản đồ đặc trưng bằng cách giữ lại thông tin quan trọng Phổ biến nhất là lớp gộp tối đa (max pooling) hoặc lớp gộp trung bình (average pooling) Lớp kết nối đầy đủ (Fully Connected Layer): Sau các lớp tích chập và gộp, thông thường có một hoặc một số lớp kết nối đầy đủ để kết hợp thông tin đặc trưng và đưa
ra dự đoán cuối cùng
Một số kiến trúc mạng rơron CNN nổi tiếng bao gồm LeNet, AlexNet, VGGNet, GoogLeNet, và ResNet… mỗi kiến trúc có những đặc điểm riêng và được thiết kế để giải quyết các vấn đề cụ thể
2.5.1 Lớp tích chập [4]
Lớp tích chập (Convolutional Layer) là một phần quan trọng của mạng nơron tích chập CNN Lớp này đóng vai trò chính trong việc rút trích các đặc trưng từ ảnh đầu vào bằng cách sử dụng các bộ lọc (kernels) để thực hiện phép tích chập
Công thức phép tính tích chập
Trang 25lọc khác nhau
Hình 2.9 Hình ảnh tích chập bằng các bộ lọc khác nhau
Đầu ra của phép toán tích chập sau đó được chuyển qua một hàm kích hoạt phi tuyến tính Mặc dù một số hàm phi tuyến hoạt động khá tốt, chẳng hạn như hàm Sigmoid hoặc hàm Tanh đã được sử dụng trước đây, tuy nhiên nhiều thực nghiệm
Trang 26cho thấy hàm ReLU cho hiệu quả cao đối với các mạng nơron và đang được sử dụng khá nhiều trong những năm gần đây Hàm Relu lọc các giá trị nhỏ hơn không (<0) Công thức tính giá trị hàm ReLU
Trong đó:
x là đầu vào của hàm
f(x) là giá trị đầu ra của hàm
Hình 2.10 Đồ thị hàm Relu
2.5.2 Lớp gộp chung (Pooling Layer) [4]
Lớp gộp chung được dùng giữa các tầng tích chập để giảm kích thước dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng Lớp gộp giúp giảm kích thước của bản đồ đặc trưng và tăng tính chia sẻ đặc trưng, làm giảm lượng tham số cần được huấn luyện và giảm nguy cơ quá mức fitting dữ liệu (overfitting)
Max pooling và average pooling là những dạng lớp gộp chung đặc biệt lấy ra giá trị lớn nhất và giá trị trung bình
Trang 27Bảng 2.1 Mô tả lớp gộp chung Pooling Layer
Minh
họa
Nhận
- Giảm ảnh hưởng của nhiễu và giữ lại đặc trưng trung bình
Ở lớp gộp chung (Pooling Layer), kích thước dữ liệu giảm giúp việc tính toán trong mẫu giảm
Hình 2.11 Minh họa sau khi dùng phép gộp chung
Trang 282.5.3 Lớp kết nối đầy đủ (Fully Connected Layer)
Trong mô hình mạng nơron CNN, lớp kết nối đầy đủ nằm ở cuối mạng nơron, sau các lớp tích chập và gộp, được dùng để tối ưu hóa mục tiêu của mạng, như độ chính xác của lớp Lớp kết nối đầy đủ nhận đầu vào là các dữ liệu đã được làm phẳng,
mà mỗi đầu vào đó được kết nối đến tất cả nơron, mỗi nơron (hoặc node) ở lớp đầu
ra được kết nối với tất cả các nơron ở lớp trước đó, tạo ra một mô hình kết nối đầy đủ giữa các lớp, mỗi kết nối có một trọng số cần được học trong quá trình huấn luyện
Hình 2.12 Lớp kết nối đầy đủ Fully Connected Layer
Các kết quả được tính toán ở lớp kết nối đẩy đủ được cho qua hàm Softmax để biến chúng thành các giá trị giữa 0 và 1
Hàm Softmax là một hàm kích thích thường được sử dụng trong lớp đầu ra của mạng nơron để chuyển đổi đầu ra của mạng thành một phân phối xác suất Hàm Softmax chuyển đổi một vector số thực thành một vector xác suất, sao cho tổng của các phần tử trong vector kết quả là 1 Công thức của hàm Softmax được định nghĩa như sau cho mỗi phần tử zi trong vector đầu vào z:
Công thức: 𝑆𝑜𝑓𝑡𝑚𝑎𝑥(𝑧𝑖) = 𝑒𝑧𝑖
∑ 𝑁 𝑒 𝑧𝑗 𝑗=1
(2.3) Trong đó:
Trang 29Hình 2.13 Minh họa các chiều của bộ lọc
2.5.5 Điều chỉnh siêu tham số
Tính tương thích của tham số trong tầng tích chập
Hình 2.15 Kích thước của future map
Trang 30Ký hiệu I là độ dài kích thước đầu vào, F là độ dài của bộ lọc, P là số lượng đệm không, S là độ trượt, ta có thể tính được độ dài O của feature map theo một chiều
bằng công thức:
𝑂 =𝐼−𝑃𝑠𝑡𝑎𝑟𝑡+ 𝑃𝑒𝑛𝑑
Độ phức tạp của mô hình
Độ phức tạp của một mô hình được đánh giá bằng cách xác định số tham số mà
mô hình đó sẽ có Trong một lớp của mạng CNN, độ phức tạp của các lớp sẽ được tính toán như sau.[8]
Trang 312.6 Các công cụ dùng trong luận văn
2.6.1 Nhận dạng khuôn mặt (Face Recognition) [9]
Nhận dạng khuôn mặt (Face Recognition) là quá trình xác minh danh tính của một người bằng cách dựa trên các đặc trưng khuôn mặt của họ Face recognition được
sử dụng trong nhiều ứng dụng, bao gồm hệ thống mở khóa điện thoại di động, giữ vé máy bay, giám sát an ninh, và nhiều ứng dụng Các hệ thống nhận dạng khuôn mặt được triển khai cho các mục đích kiểm soát an ninh tại tòa nhà, sân bay, máy ATM, tra cứu thông tin của tội phạm, phát hiện tội phạm ở nơi công cộng, và ngày càng được ứng dụng rộng rãi trong cuộc sống
Phương pháp nhận dạng khuôn mặt thường sử dụng kỹ thuật học sâu, đặc biệt
là mạng nơron sâu như FaceNet, VGGFace, hoặc các mô hình sử dụng kiến trúc mạng nơron tích chập (CNN) Trong quá trình huấn luyện, mô hình học từ một lượng lớn
dữ liệu khuôn mặt và tìm ra các đặc trưng đặc biệt của mỗi khuôn mặt để có thể nhận dạng chúng một cách hiệu quả
Hình 2.16 Nhận dạng khuôn mặt Face Recognition
Để xây dựng hệ thống nhận dạng khuôn mặt có đầu vào là một hình ảnh kỹ thuật số hay một khung hình video Đầu ra là xác minh được người ở trong bức ảnh
Trang 32hoặc trong video đó là ai Quá trình này gồm ba bước chính phát hiện khuôn mặt,
trích rút đặc trưng, nhận dạng khuôn mặt
Hình 2.17 Hệ thống nhận dạng khuôn mặt Thu thập Dữ liệu:
Dữ liệu hình ảnh của người dùng hoặc người cần được nhận dạng được thu
thập Các ảnh này có thể được chụp từ nhiều góc độ và điều kiện ánh sáng khác nhau
để đảm bảo tính đa dạng
Phát hiện khuôn mặt (Face Detection):
Áp dụng thuật toán phát hiện khuôn mặt để xác định vị trí của khuôn mặt trong
ảnh Các kỹ thuật hiện đại thường sử dụng deep learning và mạng nơron tích chập
(CNN) để đạt được độ chính xác cao trong việc phát hiện khuôn mặt
Chuẩn hóa Khuôn Mặt (Face Alignment):
Chuẩn hóa vị trí và góc độ của khuôn mặt để đảm bảo rằng các khuôn mặt
được so sánh ở cùng một góc độ và vị trí
Rút trích Đặc Trưng (Feature Extraction):
Sau khi phát hiện ra khuôn mặt, tiến hành rút trích các đặc trưng quan trọng từ
khuôn mặt, chẳng hạn như vị trí của các điểm mốc (landmarks), các đường nét khuôn
mặt, hay các điểm chính khác Bước này sẽ trích xuất ra một vector đặc trưng đại diện
cho một khuôn mặt đảm bảo được tính duy nhất của một khuôn mặt.v
Biểu diễn khuôn mặt (Face Representation):
Biểu diễn khuôn mặt dưới dạng một vector số học Các phương pháp như
Principal Component Analysis (PCA) hoặc deep learning (FaceNet, VGGFace)
thường được sử dụng để tạo ra biểu diễn này
Detection
Feature Extraction
Face Recognition
Verification
Trang 33Cơ sở dữ liệu khuôn mặt (Database of Faces):
Lưu trữ các biểu diễn khuôn mặt của người dùng hoặc người cần được nhận
dạng trong một cơ sở dữ liệu
So sánh và xác định (Matching and Identification):
Khi cần nhận dạng, hệ thống so sánh biểu diễn khuôn mặt của người được quét
với các biểu diễn trong cơ sở dữ liệu Các kỹ thuật so sánh như Euclidean distance
hoặc cosine similarity thường được sử dụng
Quyết định (Decision):
Dựa trên mức độ tương đồng, hệ thống đưa ra quyết định về việc xác định hay
từ chối xác định
Bảo mật và tính riêng tư (Security và Privacy):
Đảm bảo rằng hệ thống nhận dạng khuôn mặt được triển khai với các biện pháp
bảo mật và quyền riêng tư phù hợp
2.6.2 Nhận dạng hành động (Action Recognition)
Nhận diện hành động là một lĩnh vực trong máy học và thị giác máy tính có mục
tiêu là tự động phân tích, nhận diện và phân loại hành động của con người từ dữ liệu
đầu vào như video, hình ảnh, hoặc dữ liệu cảm biến
Phương pháp nhận diện hành động thường sử dụng các kỹ thuật học sâu (deep
learning), đặc biệt là các mô hình mạng nơron sâu (deep neural networks) như
Recurrent Neural Networks (RNN) hoặc Convolutional Neural Networks (CNN) để
trích xuất đặc trưng từ dữ liệu và thực hiện phân loại hành động
Hình 2.18 Hệ thống nhận dạng hành động
Ứng dụng của nhận diện hành động rất đa dạng và bao gồm nhiều lĩnh vực khác
nhau Các hệ thống giám sát an ninh và quản lý giao thông có thể sử dụng nhận diện
Detection
Feature Extraction
Action Recognition
Verification
Trang 34hành động để phát hiện các hành động đáng chú ý như việc vượt đèn đỏ, chạy nhanh, hoặc các hành động đe dọa Trong lĩnh vực chăm sóc sức khỏe, nhận diện hành động
có thể giúp theo dõi và đánh giá các bài tập tập luyện hoặc các hoạt động hàng ngày của bệnh nhân Trong lĩnh vực thể thao, nhận diện hành động có thể được sử dụng để theo dõi và đánh giá hiệu suất vận động của vận động viên, cung cấp thông tin hữu ích cho huấn luyện và phân tích trận đấu….[20]
Hình 2.19 Mô hình nhận dạng hành động
2.6.3 Yolo (You Only Look Once) [10]
Yolo là một mô hình nhận dạng đối tượng (object detection) nổi tiếng trong lĩnh vực thị giác máy tính Phương pháp này được thiết kế để có khả năng dự đoán
và định vị đối tượng trong ảnh hoặc video một cách hiệu quả, với một số ưu điểm như tốc độ xử lý nhanh và khả năng nhận dạng đối tượng đa lớp
Yolo là một thuật toán phát hiện đối tượng phổ biến trong lĩnh vực thị giác máy tính, Yolo nhanh và hiệu quả, là lựa chọn hàng đầu cho các nhiệm vụ phát hiện đối tượng thời gian thực nơi mà hình ảnh cần xử lý nhanh chóng và hiệu quả Yolo đạt được hiệu suất cao và đã được áp dụng rộng rãi trong nhiều ứng dụng công nghệ thực
tế trong công việc và cuộc sống
Yolo là một mô hình mạng nơron CNN dùng cho việc phát hiện, nhận dạng, và phân loại đối tượng Một trong những ưu điểm chính của Yolo là tốc độ suy luận nhanh, cho phép nó xử lý hình ảnh theo thời gian thực Nó rất phù hợp cho các ứng
Trang 35dụng như nhận dạng, giám sát bằng hình ảnh video, ô tô tự lái và thực tế tăng cường… Ngoài ra, Yolo có kiến trúc đơn giản và yêu cầu dữ liệu đào tạo tối thiểu, giúp dễ dàng triển khai và thích ứng với các nhiệm vụ mới
Yolo chia ảnh thành một lưới (grid) và dự đoán đối tượng trong từng ô của lưới
đó Mỗi ô có nhiệm vụ dự đoán các thông tin về đối tượng, bao gồm vị trí và xác suất của đối tượng đó Đối với mỗi ô, Yolo dự đoán một bounding box (hộp bao quanh đối tượng) và xác suất của đối tượng trong bounding box đó Mỗi bounding box được
mô tả bằng tọa độ x, y, chiều rộng (width), chiều cao (height), và xác suất Yolo thường sử dụng Darknet, một framework mã nguồn mở, để triển khai và huấn luyện
mô hình Darknet được viết bằng ngôn ngữ lập trình C và hỗ trợ GPU để tăng tốc quá trình huấn luyện và dự đoán
Bất chấp những hạn chế như không có khả năng phân loại đối tượng chi tiết, Yolo vẫn đã chứng tỏ là một công cụ có giá trị để phát hiện đối tượng và mở ra nhiều khả năng mới cho các nhà nghiên cứu và người thực hiện Yolo ra đời vào năm 2016
và đã trải qua nhiều phiên bản cải tiến, hiện nay cộng đồng nghiên cứu Yolo đã cho
ra đời phiên bản thứ 8 vào năm 2023
Các phiên bản Yolo
Yolo v1
Thuật toán Yolo v1 lấy hình ảnh đầu vào, sau đó sử dụng mạng nơron tích chập sâu để phát hiện các đối tượng trong ảnh Yolo có kiến trúc là một mô hình mạng nơron CNN
Hình 2.20 Mô hình mạng Yolo
Trang 36Cách yolo hoạt động [17]
Hình 2.21 Cách Yolo v1 hoạt động Điểm cải tiến của các phiên bản Yolo
Yolo v2
Yolo v2 được giới thiệu vào năm 2016 như một cải tiến so với thuật toán Yolo ban đầu Nó được thiết kế để chính xác hơn và nhanh hơn Yolo v1 và có thể phát hiện nhiều loại đối tượng hơn Phiên bản cập nhật này cũng sử dụng một xương sống CNN khác có tên là Darknet-19, một biến thể của kiến trúc VGGNet với các lớp progressive convolution và pooling layers đơn giản
Một trong những cải tiến chính trong Yolo v2 là việc sử dụng các anchor boxes Các anchor boxes là một tập hợp các hộp giới hạn được xác định trước với các tỷ lệ khung hình khác nhau Khi dự đoán các hộp giới hạn, Yolo v2 sử dụng kết hợp các anchor boxes và độ lệch được dự đoán để xác định hộp giới hạn cuối cùng Điều này cho phép thuật toán xử lý phạm vi kích thước và tỷ lệ khung hình rộng hơn của đối tượng
Một cải tiến khác trong Yolo v2 là sử dụng chuẩn hóa hàng loạt, giúp cải thiện
độ chính xác và ổn định của mô hình Yolo v2 cũng sử dụng chiến lược đào tạo bao gồm đào tạo mô hình trên hình ảnh ở nhiều tỷ lệ và sau đó lấy trung bình các dự đoán