Mô hình học sâu bài toán phân lớp ảnh Kiến trúc mô hình đề xuất đơn giản được nêu ra bao gồm: – Đầu vào: ảnh tham khảo học thuật từ các trang web, thư viện lưu trữ các môn học tương ứng
Trang 1gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của bản thân tôi, dưới sự hướng dẫn khoa học của Thầy TS Ngô Quốc Việt (Khoa Công Nghệ Thông Tin, trường ĐH
Sư Phạm Tp Hồ Chí Minh) Các thông tin và số liệu của luận văn có nguồn gốc rõ ràng, cụ thể, các trích dẫn theo đúng quy định hiện hành
Kết quả nghiên cứu của luận văn hoàn toàn trung thực, khách quan Tính tới thời điểm công bố kết quả chưa từng được sử dụng hay công bố ở bất kỳ công trình nghiên cứu nào khác
Trang 3LỜI CÁM ƠN
Lời đầu tiên, tôi xin gửi lời cám ơn sâu sắc nhất đến thầy TS Ngô Quốc Việt (Chủ nhiệm đề tài - GV Khoa CNTT Trường ĐH Sư Phạm TpHCM) – đã hướng dẫn Luận văn cũng như phát triển định hướng Tôi cũng xin cám ơn thầy ThS Trần Sơn Hải (GV Khoa CNTT trường ĐH Sư Phạm TpHCM) đã góp công sức hướng dẫn, hỗ trợ và thầy ThS Nguyễn Võ Thuận Thành (Phòng Khảo Khí và Đảm bảo chất lượng, trường ĐH Sư Phạm TpHCM) đã bỏ nhiều thời gian hướng dẫn hỗ trợ trong việc thu thập, kiểm tra dữ liệu để thực hiện Luận văn này
Tôi cũng gửi lời cám ơn chân thành đến quý Thầy/ Cô giảng dạy các môn ngành Khoa Học Máy Tính khóa K27 tại trường ĐH Sư Phạm TpHCM đã cung cấp kiến thức quý báu làm nền tảng cơ bản trong quá trình học tập nghiên cứu Đồng thời, xin gửi lời cám ơn đến quý Thầy/Cô Ban chủ nhiệm khoa Công Nghệ Thông Tin và phòng Sau Đại học đã hỗ trợ, tạo điều kiện cho tôi trong suốt thời gian qua
Trong quá trình thực hiện và tìm hiểu nghiên cứu đề tài, tôi đã gặp rất nhiều khó khăn và được quý Thầy/ Cô hỗ trợ, động viên để tôi hoàn thành tốt Luận văn này
Cuối cùng, tôi xin bày tỏ lòng biết ơn đến gia đình, bạn bè đã động viên, hỗ trợ vật chất lẫn tinh thần trong suốt quá trình học tập cũng như nghiên cứu thực hiện Luận văn này
Chân thành cám ơn quý vị
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
LỜI CÁM ƠN ii
MỤC LỤC iii
DANH MỤC THUẬT NGỮ VÀ VIẾT TẮT vi
DANH MỤC CÁC BẢNG vii
DANH MỤC HÌNH VẼ viii
CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN 1
1.1 Tổng quan phân lớp ảnh 1
1.1.1 Quy trình phân lớp ảnh 2
1.1.2 Khảo sát các hướng tiếp cận cho bài toán phân lớp ảnh 4
1.1.3 Mô hình học sâu bài toán phân lớp ảnh 5
1.2 Động cơ nghiên cứu 7
1.3 Mục tiêu và phương pháp nghiên cứu 7
1.3.1 Mục tiêu chính 7
1.3.2 Đối tượng: 7
1.3.3 Phạm vi nghiên cứu: 7
1.3.4 Phương pháp nghiên cứu: 8
1.4 Đóng góp của Luận Văn 8
1.5 Cấu trúc luận văn 8
CHƯƠNG 2 CÁC MÔ HÌNH HỌC SÂU CHO PHÂN LỚP 10
2.1 Lược sử mô hình học sâu 10
2.2 Một số mô hình học sâu 11
2.2.1 LeNet [34] 11
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 52.2.2 AlexNet [36] 13
2.2.3 VGGNet [37] 16
2.2.4 GoogLeNet [38] 18
2.2.5 BKNet [39] 19
2.3 Mô hình CNN [36] [41] 21
2.3.1 Tầng Convolutions 21
2.3.2 Tầng Pooling 25
2.3.3 Tầng Fully Connected (FC) 26
CHƯƠNG 3 PHÁT TRIỂN MÔ HÌNH CNN 29
3.1 Bài toán phân lớp tài liệu trong giảng dạy 29
3.2 Mô hình phân lớp ảnh 32
3.2.1 Chuẩn hóa kích thước 32
3.2.2 Sử dụng Feauture local binary patterns (LBP) 33
3.2.3 Cấu trúc mạng CNN 36
3.2.4 Đánh giá kết quả 39
3.3 Phân tích đánh giá 39
CHƯƠNG 4 KẾT QUẢ THỰC NGHIỆM 40
4.1 Cở sở dữ liệu 40
4.1.1 Thu thập ảnh ban đầu và tổ chức dữ liệu 40
4.1.2 Dữ liệu đầu vào cho hệ thống máy học chuyên sâu 42
4.2 Môi trường thực nghiệm: 45
4.3 Phương pháp và độ đo đánh giá mô hình phân lớp 46
4.4 Kết quả thực nghiệm 48
4.4.1 Huấn luyện mạng 48
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 64.4.2 Kiểm tra sau huấn luyện 56
4.4.3 Đánh giá dữ liệu 61
CHƯƠNG 5 KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC 1
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 7DANH MỤC THUẬT NGỮ VÀ VIẾT TẮT
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 8DANH MỤC CÁC BẢNG
Bảng 3-1 Minh họa thực hiện tính LBP cho ma trận 34
Bảng 4-1 Bảng thống kê dữ liệu về số lượng và dung lượng 45
Bảng 4-2 Định nghĩa các giá trị cho việc đánh giá thực thi mô hình 47
Bảng 4-3 Thống kê dữ liệu huấn luyện 49
Bảng 4-4 Thống kê dữ liệu huấn luyện với số lần lặp 1 50
Bảng 4-5 Thống kê dữ liệu huấn luyện với số lần lặp là 5 52
Bảng 4-6 Thống kê dữ liệu huấn luyện với mô hình 32-64-fc 54
Bảng 4-7 Thống kê dữ liệu huấn luyện với mô hình 16-32-fc 55
Bảng 4-8 Thống kê dữ liệu kiểm tra 58
Bảng 4-9 Thống kê độ chính xác trung bình của mô hình trong TOP2 59
Bảng 4-10 Thống kê dữ liệu chi tiết độ chính xác mô hình TOP2 (p1) 59
Bảng 4-11 Thống kê dữ liệu chi tiết độ chính xác mô hình TOP2 (p2) 59
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 9DANH MỤC HÌNH VẼ
Hình 1-1 Các dạng ảnh: ảnh màu, ảnh xám, ảnh trắng đen 2
Hình 1-2 Minh họa các dạng học máy tự động từ AI đến DeepLearning [6] 3
Hình 1-3 Ảnh chụp màn hình kết quả tìm kiếm các công trình nghiên cứu khoa học từ năm 2017 với từ khóa “Image classification” của SVM và DeepLearining (ngày thực hiện 20/10/2017) 4
Hình 1-4 Mô hình đề xuất giải quyết bài toán 6
Hình 2-1 Lịch sử phát triển mô hình mạng CNN [26] [27] 10
Hình 2-2 Cấu trúc mạng LeNet 5 của LeCun 1998 [34] 12
Hình 2-3 Minh họa cách tạo đặc trưng tạo tầng 3 Convolution [34] 13
Hình 2-4 Kiến trúc mạng AlexNet – [36] 14
Hình 2-5 Biến đổi ảnh đầu vào qua các lớp của mạng AlexNet [36] 15
Hình 2-6 Kiến trúc mạng VGGNet [37] 17
Hình 2-7 Thông số chi tiết mạng VGG [37] 17
Hình 2-8 Module Inception [38] 18
Hình 2-9 Kiến trúc mạng GoogLeNet [38] 19
Hình 2-10 Thông số các tầng của mạng GoogLeNet[38] 19
Hình 2-11 Thông số các tầng của mạng BKNet [39] 20
Hình 2-12 Minh họa nhân chập 3 chiều 32x32x3 [42] 22
Hình 2-13 Minh họa tăng số lượng nhân chập ảnh đầu vào 32x32x3 [42] 23
Hình 2-14 Minh họa zero-padding cho ảnh đầu vào 32x32x3 [42] 23
Hình 2-15 Minh họa phép tích chập của ảnh stride = 1 [42] 24
Hình 2-16 Minh họa phép tích chập của ảnh stride = 2 [42] 24
Hình 2-17 Minh họa sử dụng ReLU [42] 25
Hình 2-18 Minh họa phép tổ hợp max-pooling và average-pooling [43] 26
Hình 2-19 Vị trí lớp Pooling và minh họa trong mô hình mạng [43] 26
Hình 2-20 Lớp kết nối đầy đủ trong phân loại hình ảnh đầu vào [43] 27
Hình 2-21 Minh họa kết nối đầy đủ dạng ma trận [43] 28
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 10Hình 3-2 Minh họa bài toán phân loại tài liệu ảnh trong giảng dạy các môn trong giáo
dục thể chất 30
Hình 3-3 Thư viện mở OpenCV 31
Hình 3-4 Thư viện mở TensorFlow 31
Hình 3-5 Thư viện mở Keras 32
Hình 3-6 Bước 1 - Chuẩn hóa kích thước hình ảnh 32
Hình 3-7 Minh họa giai đoạn chuẩn hóa kích thước ảnh đầu vào 33
Hình 3-8 Bước 2 - Trích chọn đặc trưng bằng phương pháp LBP 34
Hình 3-9 Minh họa giai đoạn trích chọn đặc trưng bằng LBP 35
Hình 3-10 Bước 3 – Hệ thống phân lớp ảnh bằng CNN 36
Hình 3-11 Kiến trúc mạng đề xuất 37
Hình 3-12 Bước 4 - Đánh giá kết quả 39
Hình 4-1 Cây thư mục lưu trữ dữ liệu ảnh thu thập 41
Hình 4-2 Thông số thư mục inputphoto 41
Hình 4-3 Tăng cường ảnh đầu vào 42
Hình 4-4 Trích chọn đặc trưng trên ảnh 43
Hình 4-5 Dữ liệu CNNData cho hệ thống phân loại 43
Hình 4-6 Minh họa quá trình huấn luyện và kiểm tra của hệ thống đề xuất 44
Hình 4-7 Ảnh chụp từ một tập tin log lưu trữ dữ liệu trong quá trình huấn luyện mạng có cấu trúc khác nhau 48
Hình 4-8 Biểu đồ huấn luyện với số lần lặp là 1 51
Hình 4-9 Biểu đồ huấn luyện với epoche =5 53
Hình 4-10 Biểu đồ huấn luyện với mô hình 32-64-fc 54
Hình 4-11 Biểu đồ huấn luyện với mô hình 16-32-fc 55
Hình 4-12 Ảnh chụp từ một file log lưu trữ dữ liệu trong quá trình kiểm tra mạng có cấu trúc khác nhau 57
Hình 4-13 Biểu đồ độ chính xác trong kiểm tra của mô hình thuộc TOP2 60
Hình 4-14 Mô hình học sâu cho bài toán phân loại tài liệu ảnh giáo dục thể chất 61
Hình 4-15 Minh họa sơ đồ xử lý trong mô hình học sâu cho bài toán phân loại tài liệu ảnh giáo dục thể chất 62
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 11gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 12CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN
Bài toán phân lớp ảnh đã và đang được nhiều nhà nghiên cứu quan tâm và hướng đến Đã có nhiều phương pháp được đề xuất nhằm giải quyết các bài toán thực tiễn và nâng cao tính hiệu quả phân lớp Một trong những cách tiếp cận phổ biến hiện nay cho bài toán phân lớp ảnh có thể nhắc tới là sử dụng phâp lớp ảnh dựa trên trích chọn đặc trưng ảnh Ở giai đoạn đầu, các mẫu cần phân lớp về các chiều không gian
để biểu diễn dựa vào việc lựa chọn phép biến đổi ảnh thích hợp để trích chọn đặc trưng ảnh Giai đoạn tiếp theo sử dụng các kỹ thuật tính toán thông minh, các hàm số học đánh giá phân loại ảnh theo các không gian này về các lớp tương ứng Giai đoạn cuối cùng là hợp nhất các kết quả để đánh giá, đưa ra kết luận cuối cùng Dựa vào cách tiếp cận trích chọn đặc trưng này phản ánh đầy đủ tính đa dạng của mẫu cần phân lớp và đảm bảo độ chính xác của hệ thống
bị đồ họa cũng như thiết bị lưu trữ cũng chính là một nhân tố tích cực thúc đẩy nghiên cứu các ứng dụng thực tế
Tự động phát hiện các đối tượng trong hình ảnh số là nhu cầu cấp thiết trong nhiều lĩnh vực khác nhau như: An ninh, nhận dạng đối tượng, kiểm soát giao thông,… Tính chất này cũng được áp dụng để nhận biết, phân loại mục đích cho các hình ảnh
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 13làm phương tiện giảng dạy các môn học Phân loại tài liệu là công việc quan trọng trong chu trình tài liệu Nó không những giúp cho việc kiểm soát thư mục, xây dựng
hệ thống tra cứu thông tin; tổ chức kho tài liệu,… để phục vụ độc giả mà còn thúc đẩy việc khai thác, trao đổi thông tin giữa các nguồn lưu trữ Phân loại tài liệu cũng giữ một vai trò rất quan trọng đối với hoạt động kiểm soát các nguồn tin trong hệ thống mạng nội bộ và mạng Internet
Để có thể áp dụng bài toán phân lớp ảnh vào các ứng dụng thực tế, không những đòi hỏi phải phân lớp chính xác mà còn các vấn đề khác liên quan đến chi phí tính toán, dịch vụ đi kèm lẫn thời gian thực hiện Chính vì vậy mà đã có rất nhiều công trình nghiên cứu có kết quả đã được công bố trên các tạp chí và hội nghị chuyên ngành có uy tín
1.1.1 Quy trình phân lớp ảnh
Mô hình bài toán ban đầu với các khái niệm [1] input – output, trong đó đầu
ra gồm nhiều lớp Tiêu biểu với ảnh đầu vào là ảnh màu được lấy từ nguồn dữ liệu thu thập Sau đó được mang vào hệ thống xử lý bằng phương pháp máy học chuyên sâu Ở bộ xử lý này tiến hành phân lớp đối tượng dựa trên các đặc trưng của hình ảnh
từ việc rút trích đặc trưng Đến cuối bộ xử lý cho ra kết quả đầu ra với bộ vector mang
đề phân lớp của hình ảnh với giá trị cho biết mức độ thuộc lớp ảnh này theo giá trị đặc trưng
Ở quy trình này, với nguồn dữ liệu thu thập sẽ được chuẩn hóa (đồng bộ về một số tiêu chí) Ảnh gốc có thể là ảnh màu (thuộc một trong tập không gian màu: RGBA, CMY, HSI), ảnh xám, ảnh trắng đen
Hình 1-1 Các dạng ảnh: ảnh màu, ảnh xám, ảnh trắng đen
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 14Trong những năm qua, thuật ngữ "Deep learning" (học sâu) đã dần được sử dụng nhiều khi nhắc đến các chủ đề hội thoại bàn về trí tuệ nhân tạo (AI), dữ liệu lớn (Big Data) và phân tích (Analytics) [2] [3] [4] [5] Và với lý do chính đáng – đây
là một cách tiếp cận đầy hứa hẹn tới AI khi phát triển các hệ thống tự vận hành, những thứ đang cách mạng hóa nhiều ngành công nghiệp
Máy học là công nghệ tiên tiến, thì học sâu là nâng cấp "tiên tiến" theo như [6] [7] Học máy lấy ý tưởng cốt lõi của trí tuệ nhân tạo và tập trung vào việc giải quyết các vấn đề trong thế giới thực với các mạng thần kinh được thiết kế để bắt chước khả năng đưa ra quyết định của con người Học sâu, đúng như tên gọi của nó,
đi sâu hơn nữa vào một tập hợp các công cụ và kỹ thuật học máy, từ đó áp dụng chúng
để giải quyết bất kỳ vấn đề nào đòi hỏi “khả năng tư duy” Về cơ bản, học sâu là cho một hệ thống máy tính sử dụng rất nhiều dữ liệu, để chúng có thể đưa ra các quyết định về những dữ liệu khác Dữ liệu này được nạp thông qua các mạng thần kinh, tương tự như học máy Những mạng lưới này có cấu trúc logic yêu cầu một loạt các câu hỏi đúng/sai, hoặc trích xuất một giá trị số, của mỗi bit dữ liệu đi qua chúng và phân loại theo các câu trả lời nhận được
Hình 1-2 Minh họa các dạng học máy tự động từ AI đến DeepLearning [6]
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 151.1.2 Khảo sát các hướng tiếp cận cho bài toán phân lớp ảnh
Các nghiên cứu ngoài nước, việc áp dụng hệ thống xử lý nhận dạng bằng máy học sử dụng mạng Neural nhiều lớp rất phổ biến như [8] [9] [10] [11] Áp dụng trên hình các lĩnh vực giải trí (phân loại phim, hỗ trợ thẻ tag, ), kỹ thuật (phân loại nhận diện đối tượng vật tiêu biểu như các bộ dữ liệu cipher, bộ nhận dạng chữ số mnist, )
Các công trình nghiên cứu trong nước về mô hình học máy chuyên sâu cùng ứng dụng trong nhiều lĩnh vực tại Việt Nam có thể kể đến như [12] [13] [14] [15] [16] Từ những vấn đề nhận dạng ký tự đến phân loại văn bản hình thức kết hợp trong
Trong thời gian gần đây có hai hướng tiếp cận phổ biến trong bài toán phân lớp là cách sử dụng phương pháp SVM (Support Vector Machine) và phương pháp Deep Learning [17] Tính riêng trong năm 2017, số lượng các công trình có liên quan đến từ khóa “Image classification by SVM” có khoảng 15.000 kết quả và từ khóa “Image classification by Deep Learning” có khoảng 28.000 kết quả (chỉ tính riêng từ năm 2017 tại thời điểm ngày 20/10/2017) Khoa học công nghệ luôn thay đổi
và phát triển, với những số liệu tìm kiếm trên google scholar trên cho thấy một điều
là ngày này được xu thế nghiên cứu từ các nhà khoa học hiện nay theo hướng Deep learning Và tiếp tục xu thế này tôi lựa chọn phương pháp Convolution Neural Network (CNN) một phương pháp được sử dụng trong Deep Learning
Hình 1-3 Ảnh chụp màn hình kết quả tìm kiếm các công trình nghiên cứu khoa
học từ năm 2017 với từ khóa “Image classification” của SVM và
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 161.1.3 Mô hình học sâu bài toán phân lớp ảnh
Kiến trúc mô hình đề xuất đơn giản được nêu ra bao gồm:
– Đầu vào: ảnh tham khảo học thuật từ các trang web, thư viện lưu trữ các môn học tương ứng trong giảng dạy để phân lớp Ảnh thu thập ở nhiều dạng khác nhau, vùng đối tượng chính trong hình khác biệt nên cần bước tiền xử lý ảnh để đưa về một bộ tiêu chuẩn chung cho kích thước hình ảnh lẫn thông tin đối tượng.Ảnh sau khi được xử lý sẽ làm nguyên liệu đầu vào cho bộ xử lý phân lớp bằng phương pháp máy học chuyên sâu CNN sử dụng
– Đầu ra: Kết quả sau khi xử lý phân lớp là tập vector với mỗi nút mang giá trị trong
môn học phân lớp đầu ra
Hệ thống phân loại tài liệu giảng dạy sử dụng mô hình CNN là bài toán phân lớp ảnh với nhiều lớp đầu ra Mô hình CNN sẽ vừa tự động xây dựng đặc trưng của ảnh dựa trên tập dữ liệu huấn luyện thông qua các tầng được thiết kế như: tầng convolution, tầng pooling, kèm các thông số bộ lọc của mỗi tầng, đồng thời tầng full connect kết hợp softmax thực hiện việc phân lớp mặc định các khoa sử dụng đầu ra dựa trên việc huấn luyện từ tập ảnh huấn luyện đã được gắn nhãn trước đó
Như vậy CNN vừa đóng vai trò trích xuất đặc trưng và phân lớp Điều này rất thuận tiện cho các nhà phát triển sản phẩm phần mềm chỉ cần phát triển CNN mà không cần phải nghiên cứu và cài đặt thêm một bộ máy học riêng biệt (SVM, AdaBoot, …) Vấn đề nghiên cứu đặt ra là phải thiết kế một kiến trúc CNN nhằm xác định số tầng, số neural mỗi tầng, cách liên kết giữa các tầng với nhau, số lần lặp lại
và bố trí thứ tự các tầng convolution – pooling sao phù hợp bài toán phân lớp ảnh
Đề tài đề xuất mô học sâu hình nhằm giải quyết bài toán phân lớp tài liệu ảnh
sử dụng trong giáo dục thể chất được minh họa như hình bên:
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 17Hình 1-4 Mô hình đề xuất giải quyết bài toán
Với mô hình này, được minh họa qua 4 bước
Bước 1: Thu thập dữ liệu từ thư viện, trang web được kiểm chứng
Bước 2: Thực hiện chuẩn hóa hình ảnh theo tiêu chuẩn đề xuất kích thước Bước 3: Thiết lập mô hình mạng lưới các tầng trong CNN
Bước 4: Phân tích kết quả đầu ra dựa trên thông số các nút mạng đầu ra lần lượt theo trình tự giá trị nhóm môn học trong giáo dục thể chất
Mô hình phân lớp CNN Chuẩn
hóa hình ảnh
Kết luận
Kết quả phân lớp
bơi lội bóng bàn bóng chuyền bóng đá bóng rổ cầu lông điền kinh nhảy cao tennis thể hình
võ yoga
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 181.2 Động cơ nghiên cứu
Với công việc soạn bài giảng, soạn mẫu thuyết trình sinh động là một trong những công việc hằng ngày của các giảng viên Việc sử dụng hình ảnh trong các bài thuyết minh làm tăng thêm sự sinh động, lôi cuốn và hấp dẫn nếu được sử dụng cách hợp lý, phù hợp nội dung của bài học
Nhằm giảm tải bớt thời gian chọn lọc hình ảnh, đặc biệt với các giảng viên ít kinh nghiệm hoặc mới ra trường để giảng dạy thì công việc này cần nhiều thời gian
bù đắp vào kinh nghiệm thực tế
1.3 Mục tiêu và phương pháp nghiên cứu
1.3.1 Mục tiêu chính
Mục tiêu của đề tài có thể hiểu ở đây giải quyết 2 vấn đề chính:
– Dựa trên nhu cầu thực tế để trừu tượng hóa thành bài toán Cụ thể là bài toán phân loại tài liệu ảnh theo môn học trong giảng dạy thành bài toán xử lý ảnh
– Phát triển mô hình CNN cho bài toán đặt ra dựa trên thực nghiệm, kiểm tra, tinh chỉnh mô hình đề xuất
– Yếu tố được chú trọng: mô hình đơn giản dễ sử dụng, thời gian huấn luyện mạng nhanh, độ chính xác chấp nhận được (~ 90%) phù hợp nhu cầu đặt ra ban đầu
1.3.2 Đối tượng:
Đối tượng nghiên cứu là xử lý đối với các loại ảnh được chụp lại, đối tượng chính là ảnh chụp màn hình các website, các video,… muốn xác định nội dung phù hợp theo từng môn học trong giảng dạy
– Một số vấn đề liên quan đến xử lý ảnh: rút trích đặc trưng, phân lớp
– Đánh giá được việc áp dụng mô hình CNN cho bài toán này
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 191.3.4 Phương pháp nghiên cứu:
Nhằm thực hiện được đề tài này, tôi vận dụng tổng hợp nhiều phương pháp nghiên cứu khác nhau như: mô hình hóa, khảo sát, thực nghiệm
Mô hình hóa từ yêu cầu thực tế về nhận dạng hình ảnh tương ứng với môn học thành dạng một bài toán lý thuyết
Khảo sát các phương pháp có liên quan từng được áp dụng để xử lý bài toán đặt ra đã có trước đó Nhận xét, đánh giá, so sánh các phương pháp nhằm lựa chọn cách tiếp cận thích hợp, tiếp đến là lựa chọn phương pháp và đề xuất mô hình có khả năng tính toán giải quyết yêu cầu đặt ra
Cài đặt thực nghiệm, tinh chỉnh các thông số, kỹ thuật để nâng cao kết quả của
mô hình đề xuất Nhận xét, đánh giá mô hình dựa vào các tiêu chí cụ thể như độ chính xác của việc phân lớp ở đầu ra, hiệu xuất huấn luyện, hệ số loss của việc huấn luyện
dữ liệu, tốc độ thực thi, thời gian xử lý việc huấn luyện
1.4 Đóng góp của Luận Văn
Thử nghiệm mô hình CNN có cấu trúc phù hợp với bài toán phân loại tài liệu ảnh trong giáo dục thể chất
Kết quả thực tiễn của luận văn hướng đến là chương trình máy tính có khả năng kiểm tra và phân loại hình ảnh theo tài liệu giảng dạy các môn học
Để có thể thực hiện được mục tiêu trên thì việc ứng dụng máy học để giải quyết bài toán này, cần có những phương pháp và mô hình có độ chính xác cao Do
đó, trong đề tài nghiên cứu này, tôi tập trung nghiên cứu vào "Mô hình học sâu cho bài toán phân loại tài liệu ảnh” trong giảng dạy
1.5 Cấu trúc luận văn
Tóm lược nội dung của luận văn được trình bày trong 5 chương chính (không
kể đến các phần mục lục, phụ lục, danh mục tham khảo, ) có bố cục như sau:
CHƯƠNG 1- TỔNG QUAN: Ở chương này, nội dung trình bày về các công trình nghiên cứu hiện nay có liên quan tới đề tài Đồng thời phát biểu bài toán phân loại tài liệu học tập – giảng dạy, đưa ra hướng tiếp cận và giải pháp thực hiện
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 20– Lược sử mô hình học sâu:
– Các Case Study kiến trúc các mạng CNN
– Phương pháp kiểm tra và độ đo đánh giá mô hình phân lớp
CHƯƠNG 4- THỰC NGHIỆM:
– Cài đặt mô hình giải quyết bài toán trên môi trường Window với các bộ dữ liệu được thu thập
– Thông kê dữ liệu thực nghiệm
– Đánh giá, nhận xét đưa ra kết luận về mô hình đề xuất
Trang 21CHƯƠNG 2 CÁC MÔ HÌNH HỌC SÂU CHO
PHÂN LỚP
Những năm gần đây, ta đã chứng kiến được nhiều thành tựu vượt bậc trong ngành Thị giác máy tính (Computer Vision) Các hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng [26] [27] [18] phát triển xe hơi
tự lái [21] [22] [23] Convolutional Neural Network (CNNs – Mạng nơron tích chập) là một trong những mô hình học sâu tiên tiến giúp cho các nhà nghiên cứu xây dựng được những hệ thống thông minh với độ chính xác cao như [24] [25] Trong phần này, chúng tôi sẽ trình bày về Convolution (conv - tích chập) cũng như ý tưởng của mô hình CNNs trong bài toán phân lớp chung
2.1 Lược sử mô hình học sâu
Mạng nơron tích chập được ứng dụng rất nhiều trong thị giác máy tính cho việc phân loại và cục bộ hóa (localizer) Từ CNNs cơ bản người ta có thể tạo ra rất nhiều kiến trúc khác nhau, từ những mạng cơ bản 1 đến 2 tầng đến 100 tầng phụ thuộc vào việc nên sử dụng bao nhiêu layer, nên kết hợp các tầng như thế nào? Trong bài viết [26] [27] có nêu ra một số các kiến trúc nổi tiếng được áp dụng nhiều
Hình 2-1 Lịch sử phát triển mô hình mạng CNN [26] [27]
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 22Một trong những nền móng đầu tiên là perceptron Perceptron là một thuật toán học có giám sát giúp giải quyết bài toán phân lớp nhị phân, được khởi nguồn bởi Frank Rosenblatt năm 1957 [28] Đến năm 1986, Geoffrey Hinton tốt nghiệp PhD với hai tác giả khác xuất bản một bài báo khoa học với tựa đề “Cải thiện độ lỗi trong việc học tập bằng thuật lan truyền ngược” (Learning representations by back-propagating errors) [29] Trong bài báo này, nhóm của ông chứng minh rằng cấu trúc mạng với nhiều lớp ẩn có thể được huấn luyện một cách hiệu quả dựa trên một quy trình đơn giản được gọi là lan truyền ngược
Với cấu trúc tầng ẩn, mạng nơron được chứng minh rằng có khả năng xấp xỉ hầu hết bất kỳ hàm số nào qua một định lý “Universal approximation theorem” [30] [31] Nổi trội là mạng nơron tích chập (còn được gọi là LeNet) cho bài toán nhận dạng chữ số viết tay được khởi nguồn bởi Yann LeCun tại AT&T Bell Labs (Yann LeCun là sinh viên sau cao học của Hinton tại đại học Toronto năm 1987-1988) Từ đây đánh dấu sự ra đời các mô hình học sâu sẽ được trình bày phần kế tiếp
Trong những năm gần đây, nhiều nhân tố dẫn đến sự phát triền các mô hình học sâu [32] : sự ra đời của các bộ dữ liệu lớn được gán nhãn được lưu trữ chia sẻ giữa các công trình, khả năng tính toán tốc độ cao của GPU và các thiết bị phần cứng; các hàm kích hoạt, sự cải tiến của các kiến trúc: GoogLeNet, VGG, ResNet, … và nhiều thư viện mới hỗ trợ việc huấn luyện [33] : Theano, Caffe, MXnet, Tensorflow, Pytorch, Keras
tiên mà tác giả đề xuất nhận diện ký tự viết tay như thể hiện trong hình 2-2
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 23Hình 2-2 Cấu trúc mạng LeNet 5 của LeCun 1998 [34]
Cấu trúc mạng đầu tiên áp dụng thao tác chập và hoạt động chèn subsampling thay cho dữ liệu đầu vào, với các đơn vị tính toán được gọi là các lớp xoắn và các lớp subsampling tương ứng Sau hai nhóm tính toán như vậy, việc trình bày dữ liệu ở các lớp cao hơn được đưa vào mạng neural truyền thống kết nối hoàn chỉnh, nơi nó hoàn thành nhiệm vụ của một vấn đề phân loại Với kiến trúc này, nó giới thiệu một số lợi thế so với mạng neural truyền thống
Thông số:
▪ Sử dụng bộ nhân chập kích thước 5 x 5 pixel, tỉ lệ trượt điểm ảnh là 1 pixel
▪ Subsampling (hay Pooling) có kích thước 2 x 2 pixel, sử dụng tỉ lệ trướt trên điểm ảnh là 2 pixel
▪ Kiến trúc tổng quát: CONV – POOL – CONV – POOL – CONV - FC
Tiền xử lý ảnh đầu vào: Ảnh kích thước 32 x 32 pixel
▪ Trọng tâm chính là hình ký tự chữ cái có kích thước lớn 20 x 20 pixel
▪ Chuẩn hóa giá trị đầu vào màu trắng và màu đen
Trang 24Tầng 2 – Subsampling: Đầu vào là 28 x 28 x 6, pooling 2 x 2, Đầu ra 6 lớp đặc trưng được chuyển đổi kích thước 14 x 14 Số lượng tham số trao đổi: 6 * 2 = 12, số lượng kết nối: (14 x 14) x (2 x 2 + 1) x 6 = 5880
Tầng 3 – Convolution: Đầu vào là 14 x 14 x 6,nhân chập 5 x5 x 16 Đầu ra là
10 x 10 x 16 Lần lượt lấy từng nhân chập trượt trên 3 lớp đặc trưng theo hình bên dưới
Hình 2-3 Minh họa cách tạo đặc trưng tạo tầng 3 Convolution [34]
Tầng 4: Subsampling: Đầu vào 10 x 10 x 16, pooling 2 x 2 Đầu ra 5 x 5 x 16
Số lượng tham số: 16 x 2 = 32, số lượng kết nối: (5 x 5) x (2 x 2 + 1) x 16 = 2000
Tầng 5: Convolution: Đầu vào 5 x 5 x 16, nhân chập kích thước 1 x 1 x 120 Đầu ra 1 x 1 x 120 Số lượng tham số: 120 x (16 x 5 x 5 + 1) = 48120
Tầng 6: Fullconnet: Đầu vào 1 x 1 x 120 Với đặc trưng kích thước 1 x 1 x 84
Số lượng kết nối từ 84 x (120 + 1) = 10164, tầng xuất ra: 10RBF (Radial basis function) với điểm 7 x 12 = 84 Cập nhật trọng số bằng thuật lan truyền ngược
2.2.2 AlexNet [36]
Giới thiệu
Mạng AlexNet được phát triển bởi Alex Krizhevsky, Ilya Sutskever và Geoff Hinton – giành chiến thăng cuộc thi “ImageNet ILSVRC Challenge” năm 2012 Mạng lưới mà họ thiết kế đã được sử dụng để phân loại với 1000 loại với kiến trúc tương tự như LeNet, nhưng sâu hơn, lớn hơn, và có các lớp nhân chập đặc trưng được xếp chồng lên nhau (trước chỉ có một lớp nhân chập duy nhất)
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 25Hình 2-4 Kiến trúc mạng AlexNet – [36]
Mô hình mạng lớn hơn mạng LeCun, gồm 7 lớp ẩn , 650 nghìn đơn vị kết nối
và 60 triệu thông số Thực hiện đơn vị xử lý số học GPU (tăng tốc việc xử lý hơn 50 lần so với CPU) Sử dụng 2 GPU để huấn luyện trong một tuần
Kiến trúc mạng:
Tầng 0: ảnh đầu vào 227 x 227 x 3
Tầng 1-2: Convolution: nhân chập 11x11x96, bước nhảy = 4 Kích thước đầu ra: 55 x 55 x 96, trong đó 55 = (227 - 11) / 4 + 1 là kích thước cạnh của kết quả, 96
độ sâu bởi vì 1 bộ biểu thị 1 bộ lọc và có 96 bộ lọc nhân chập Max-Pooling: bộ lọc
3 × 3, bước nhảy = 2 Kích thước đầu ra: 27x27x96, trong đó 27 = (55 - 3)/2 + 1 là kích thước cạnh của kết quả
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 26Hình 2-5 Biến đổi ảnh đầu vào qua các lớp của mạng AlexNet [36]
Tầng 3 – 4: Convolution: 5×5x255, bước nhảy =1,bước đệm 2 Kích thước:
27 x 27 x 256, Bởi vì padding của (5-1) / 2 = 2, kích thước ban đầu được khôi phục Max-Pooling Với bộ lọc 3 × 3, bước nhảy =2 Kích thước đầu ra: 13 x 13 x 256, với 13=(27 - 3) / 2 + 1 = 13 là kích thước cạnh của kết quả, độ sâu giống như trước là 256
Tầng 5- 6: Convolution:3 x 3 x 384, bước nhảy =1, bước đệm 1 Kích thước:
13 x 13 x 384, độ sâu 384 Bởi vì padding của (3-1) / 2 = 1, kích thước ban đầu được khôi phục Convolution tiếp theo 3× 3 x 384, bước nhảy =1, đệm 1 Kích thước đầu ra: 13 x 13 x 384, padding của (3-1) / 2 = 1, kích thước ban đầu được khôi phục
Tầng 7 – 8: Convolution:kích thước 3 × 3 x 256, bước nhảy =1, đệm 1 Kích thước đầu ra: 13 x 13 x 256, padding của (3-1) / 2 = 1, kích thước ban đầu được khôi
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 27phục Max-Pooling bộ lọc 3 × 3, bước nhảy = 2 Đầu ra 6 x 6 x 256, với 6 = (13 - 3) / 2 + 1 là cạnh của kết quả
Tầng 9 – Full Connect: Kết nối toàn bộ với 4096 neuron Mỗi một đơn vị 6 x
6 x 256 = 9216 pixel được đưa vào mỗi trong 4096 tế bào thần kinh và trọng số được xác định bởi sự truyền ngược Tầng 10 – Full Connect: Kết nối toàn bộ với 4096 neuron Tầng 11 – Full Connect: Kết nối toàn bộ với 1000 neural Đây là lớp cuối cùng và có 1000 neural bởi vì dữ liệu IMAGENET có 1000 lớp được dự đoán
2.2.3 VGGNet [37]
Giới thiệu
Giải nhì trong ILSVRC 2014 là mạng lưới từ Karen Simonyan và Andrew Zisserman trở thành VGGNet Đóng góp chính của nó là cho thấy rằng độ sâu của mạng là một thành phần quan trọng cho hiệu suất tốt Mạng cuối cùng tốt nhất của họ bao gồm 16 lớp CONV / FC, có cấu trúc cực kỳ đồng nhất mà chỉ thực hiện các phép tính chập convolution 3x3 và pooling 2x2 tổng hợp từ đầu đến cuối Mô hình sơ bộ của họ sẵn có để sử dụng trong Caffe Một điểm yếu của VGGNet là nó sẽ đắt hơn
để đánh giá và sử dụng nhiều bộ nhớ và các thông số (140M) Hầu hết các thông số này đều nằm trong lớp kết nối đầu tiên, và từ khi phát hiện ra các lớp FC này có thể được gỡ bỏ mà không hạ thấp hiệu suất, làm giảm đáng kể các thông số cần thiết
Kiến trúc mạng
Hình ảnh đầu vào có kích thước 224x224x3 (với tương ứng 3 kênh màu RGB)
Có tổng cộng 16 lớp chủ yếu dựa dựa trên các tầng Convolution (kích thước 3x3), Max pooling (kích thước 2x2), tầng Fully connected ở cuối Kích thước 528MB
Mô tả chi chi tiết các tầng:
Tầng 01 và 02- 64 nhân chập kết hợp Max pooling
Tầng 03 và 04- 126 nhân chập kết hợp Max pooling
Tầng 05 và 06- 256 nhân chập kết hợp Max pooling
Tương tự các cặp tầng 08 –tới tầng 13: 512 nhân chập kết hợp Max pooling
Tầng 14 và 15- Fully connected: gồm 4096 nút
Tầng 16 - Output layer với hàm kich hoạt Softmax 1000 nút
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 28Hình 2-6 Kiến trúc mạng VGGNet [37]
Hình 2-7 Thông số chi tiết mạng VGG [37]
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 292.2.4 GoogLeNet [38]
Giới thiệu
Chiến thắng trong cuộc thi ILSVRC 2014 là Szegedy et al từ Google Đóng góp chính của nó là sự phát triển của một mô đun Inception làm giảm đáng kể số lượng các thông số trong mạng (4M, so với AlexNet với 60M) Ngoài ra, bài báo này
sử dụng giá trị trung bình tầng Pooling (Average Pooling) thay vì lớp Fully Connect
ở đầu ConvNet, loại bỏ một số lượng lớn các tham số mà dường như không có vấn
đề gì ảnh hưởng.]
Kiến trúc mạng
Điểm nổi bật kiến trúc mạng là module Inception
Các module này bố trí liên tục song với sự khác nhau về kích thước và số lượng bộ phận con nhỏ bên trong nhằm trích lọc các đặc trưng tương quan
Sử dụng nhân chập 1x1 (convolutions) để giảm kích thước trước khi chuyển qua các lớp chập sau có kích thước lớn hơn
Hình 2-8 Module Inception [38]
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 30Hình 2-9 Kiến trúc mạng GoogLeNet [38]
Hình 2-10 Thông số các tầng của mạng GoogLeNet[38]
2.2.5 BKNet [39]
Giới thiệu
Nhận diện khuôn mặt nụ cười bằng cách sử dụng Neural Convolutional do nhóm tác giả Đinh Viết Sang – Lê Trần Bảo Cung – Đỗ Phan Thuận, Trường Đại Học Bách Khoa Hà Nội năm 2017 Mục tiêu phân tích biểu hiện trên khuôn mặt nhằm phân tích cảm xúc và hành vi của con người Lấy cảm hứng từ khái niệm thiết kế của
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 31mạng VGG, nhóm tác giả đề xuất một kiến trúc mạng neural mới gọi là BKNet để giải quyết vấn đề phát hiện nụ cười trên hình ảnh
Hình 2-11 Thông số các tầng của mạng BKNet [39]
Kiến trúc mạng : gồm bốn tầng chập Convolution:
▪ Tầng chập (conv) đầu tiên bao gồm hai lớp conv con với 32 neural, lớp chập có kích thước 3×3 và stride là 1, tiếp theo là một lớp max-pooling với kích thước hạt nhân là 2×2, stride là 2
▪ Tầng chập (conv) thứ hai bao gồm hai lớp conv với 64 tế bào thần kinh, lớp chập
có kích thước 3×3 và stride là 1, theo sau là một lớp max-pooling với kích thước hạt nhân là 2×2, stride là 2
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 32▪ Tầng chập (conv) thứ ba bao gồm ba lớp conv với 128 neural, lớp chập có kích thước 3×3 và stride là 1, tiếp theo là một lớp max-pooling với kích thước hạt nhân
là 2×2, stride là 2
▪ Tầng conv cuối cùng bao gồm ba lớp conv với 256 neural, lớp chập có kích thước 3×3 và stride 1, tiếp theo là một lớp max-pooling với kích thước hạt nhân là 2×2
và stride 2
Mỗi tầng conv đều kích hoạt ReLU sau khi qua một lớp mới Kết thúc với đầu
ra sau bốn khối chập sẽ được kết nối với hai lớp FC (Full Connect) nối hoàn toàn với
256 neural tương ứng với 256 vector từ hình ảnh ban đầu
Cuối cùng, vector này được truyền qua lớp được kết nối đầy đủ cuối cùng bao gồm 2 nơron, chúng ta sẽ thu được một vector 2 chiều đại diện cho các điểm số cho mỗi nụ cười nhãn hoặc không phải là nụ cười Sau đó, chúng tôi áp dụng hàm kích hoạt softmax cho vectơ này Cuối cùng, chúng ta có được một vectơ gồm hai phần
tử Vectơ này đại diện cho phân bố xác suất trong hai lớp: cười hoặc không cười Nhãn có xác suất cao hơn được chọn làm câu trả lời cuối cùng tương ứng với hình ảnh đầu vào
và hoạt động cực kỳ hiệu quả trong bài toán phân tích ảnh
2.3.1 Tầng Convolutions
Lớp tích chập được dùng để phát hiện và trích xuất đặc trưng - chi tiết của ảnh Giống như các lớp ẩn khác, lớp tích chập lấy dữ liệu đầu vào, thực hiện các phép chuyển đổi để tạo ra dữ liệu đầu vào cho lớp kế tiếp (đầu ra của lớp này là đầu vào của lớp sau) Phép biến đổi được sử dụng là phép tính tích chập Mỗi lớp tích chập
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 33chứa một hoặc nhiều bộ lọc - bộ phát hiện đặc trưng (filter - feature detector) cho phép phát hiện và trích xuất những đặc trưng khác nhau của ảnh
Đặc trưng ảnh là những chi tiết xuất hiện trong ảnh, từ đơn giản như cạnh, hình khối, chữ viết tới phức tạp như mắt, mặt, chó, mèo, bàn, ghế, xe, đèn giao thông, v.v Bộ lọc phát hiện đặc trưng là bộ lọc giúp phát hiện và trích xuất các đặc trừng của ảnh, có thể là bộ lọc góc, cạnh, đường chéo, hình tròn, hình vuông
Các dạng tích chập: Convolution 1D - Tích chập 1 chiều sẽ chỉ cho phép bộ lọc di chuyển theo 1 chiều, (nghĩa là hình ảnh của ta phải chuyển đổi về dạng vector) chính là độ dài của vector Convolution 2D - Tích chập 2 chiều sẽ cho phép bộ lọc di chuyển theo 2 chiều (theo cả width và height) Convolution 3D: Tương tự ta cũng có tích chập 3 chiều là khi bộ lọc có thể di chuyển thêm cả chiều sâu của ảnh nữa
Hình 2-12 Minh họa nhân chập 3 chiều 32x32x3 [42]
Giá trị ảnh ban đầu có dạng: 32 x 32 (chiều cao và chiều rộng) Độ sâu 3 (số lượng lớp đặt chồng lên nhau) tương ứng với 3 kênh màu Red – Green – Blue đặc trưng trong không gian màu ảnh số Một lớp nhân chập (Convolution layer) được hình thành bằng cách trượt một bộ lọc lên trên ảnh ban đầu Một bộ lọc là khối có kích thước nhỏ hơn nhiều lần so với kích thước ảnh ban đầu nhưng độ sâu tương tự
để có thể quét hết khối ảnh cơ sở ban đầu này Như vậy với mỗi bộ lọc thực hiện ở bước này tương ứng với số lượng chiều sâu của ảnh kết quả tương ứng Trưởng hợp
sử dụng 10 bộ lọc cho cùng mẫu ảnh ban đầu ta có kết quả như hình bên dưới
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 34Hình 2-13 Minh họa tăng số lượng nhân chập ảnh đầu vào 32x32x3 [42]
Kích thước của ảnh sẽ bị thu hẹp dần, đặc biệt trong mạng lưới máy học chuyên sâu thì với việc kích thước nhỏ qá sớm sẽ làm hạn chế việc sự dụng các bộ lọc lớn tăng cường Vì thế ở bước này có thể sử dụng thuộc tính zero-padiing nhằm đảm bảo kích thước đầu ra của hình
Thuộc tính zero padding là một lớp đệm có giá trị bằng 0 bao xung quanh bên ngoà ảnh đầu vào Lớp này nhằm tạo một biên mới xung quanh hình để cạnh biên gốc của hình nằm trùng với tâm của nhân chập
Hình 2-14 Minh họa zero-padding cho ảnh đầu vào 32x32x3 [42]
Ngoài việc lựa chọn kích thước bộ lọc, việc lựa chọn stride được theo những chiều nào, ta còn có thể kiểm soát được tốc độ của bộ lọc Ta có thể điều chỉnh tốc
độ này trên từng chiều của nhân chập Nếu như tốc độ trượt cao, có thể một số nội dung của bức ảnh sẽ không được bộ lọc duyệt qua, nhưng bù lại giúp tốc độ tính toán nhanh hơn (vì số lượng phần ảnh thực hiện tích chập ít đi) Với những bức ảnh lớn,
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 35chiều dài và rộng lớn, việc tăng slide sẽ giúp giảm thiểu chi phí tính toán mà dữ liệu không bị mất mát nhiều
Thuộc tính Stride là một số nguyên biểu thị bước nhảy (độ dịch chuyển) một
khoảng giữa các đơn vị khi thực hiện phép tích chập (hay số lượng đơn vị trong khoảng cách tính từ 2 lần thực hiện phép tích chập) được gọi là bước nhảy (bước nhảy
bộ lọc)
Hình 2-15 Minh họa phép tích chập của ảnh stride = 1 [42]
Hình 2-16 Minh họa phép tích chập của ảnh stride = 2 [42]
Sau khi tính tích chập với bộ lọc, sẽ có một số giá trị âm và việc xử lý này cần cho kết quả đi qua hàm ReLU để loại bỏ hết những số âm Mục đích của ReLU là giới thiệu tính không tuyến tính trong ConvNet vì hầu hết các dữ liệu mong muốn ConvNet là không tuyến tính (Convolution là một phép tính tuyến tính - phép nhân
ma trận nhân và phép cộng, vì vậy chúng ta tính cho phi tuyến tính bằng cách giới thiệu một chức năng phi tuyến tính như ReLU)
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 36ReLU là chữ viết tắt của Rectified Linear Units Lớp này là thành phần của
hàm kích hoạt không bão hòa theo dạng f(x) = max (0, x) Mục đích hàm này là làm tăng tính phi tuyến tính của chức năng quyết định (dựa trên việc giới hạn nhận giá trị)
và của mạng tổng thể mà không ảnh hưởng đến các trường giá trị khác khi tiếp nhận lớp chập ngay sau nó bằng cách đơn giản hóa giá trị không cần thiết
Hình 2-17 Minh họa sử dụng ReLU [42]
2.3.2 Tầng Pooling
Lớp này được sử dụng để giảm kích thước của hình ảnh Chúng hoạt động bằng cách lấy mẫu trong mỗi lớp bằng cách sử dụng bộ khung được áp lên và thực hiện phép so sánh giữa các đơn vị trong bộ khung đó Do đó tầng này còn được gọi
với cái tên khác là “subsampling”(lấy mẫy nhỏ hơn) hay “downsampling”(giảm kích
thước mẫu)
Nhiệm vụ tầng này là giảm kích thước của dữ liệu dựa vào đặc trưng cục bộ tồn tại của bộ khung trong khu vực đang xét duyệt để quyết định đưa ra giá trị đại diện và loại bỏ các giá trí khác trong phạm vi bộ khung (phép tích chập cũng giảm kích thước dữ liệu nhưng vẫn giữ mỗi liên kết)
Tùy vào từng nhiệm vụ bài toán mà giá trị ở bước tổng hợp pooling sẽ sử dụng các hàm Max-pooling (lấy giá trị lớn nhất), Min-pooling (lấy giá trị nhỏ nhất), Average-pooling (lấy giá trí trung bình), Sum pooling (lấy giá trị tổng), … cho các giá trị nằm trong bộ khung
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 37Hình 2-18 Minh họa phép tổ hợp max-pooling và average-pooling [43]
Thông thường vị trí lớp tổng hợp Pooling được kết hợp trực tiếp ngay sau phép tích chập Việc này giúp hạn chế các trọng số cho hạt nhân từ bộ lọc tiếp theo, làm cho việc học trở nên dễ dàng hơn do tính bất biến của hình ảnh hoặc âm thanh, giảm
sự sai lệch khi trích xuất các tính năng từ thấp đến cao
Hình 2-19 Vị trí lớp Pooling và minh họa trong mô hình mạng [43] 2.3.3 Tầng Fully Connected (FC)
Lớp kết nối đầy đủ là một perceptron đa lớp sử dụng chức năng kích hoạt
softmax trong lớp đầu ra (các bộ phân loại khác như SVM cũng có thể được sử dụng
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 38Đầu ra từ các lớp nhân chập và tập hợp đại diện Pooling cho các tính năng cấp cao của hình ảnh đầu vào Mục đích của lớp Fully Connected là sử dụng các tính năng này để phân loại hình ảnh đầu vào thành các lớp khác nhau dựa trên bộ dữ liệu huấn luyện Ví dụ, nhiệm vụ phân loại hình ảnh đặt ra để thực hiện có bốn đầu ra thể hiện trong hình dưới:
Hình 2-20 Lớp kết nối đầy đủ trong phân loại hình ảnh đầu vào [43]
Đầu vào cho lớp này là một vector của các con số Mỗi đầu vào được kết nối với mọi đầu ra - do đó thuật ngữ "kết nối hoàn toàn" Các kết nối này có trọng lượng xác định mức độ quan trọng của chúng như thế nào (minh hoạ bởi các đường kẻ dày
và mỏng trong hình) Đầu ra cũng là một vector của các con số
Đối với mỗi phần tử đầu ra, chúng ta lấy một tổng trọng số của tất cả các phần
tử đầu vào và thêm một bias (thuật ngữ thiên vị) có dạng sau:
𝑛
𝑖=1
Điều quan trọng về lớp kết nối hoàn toàn chính là các trọng số cho các kết nối Đây là những gì mà mạng đã học Khi đào tạo mạng liên tục điều chỉnh trọng lượng lên và xuống cho đến khi mạng thực hiện những gì mong muốn ở đầu ra Khi đó các thông số đã học được/huấn luyện của mạng nơron, về phần trọng số kết nối các điểm nút giữa hai tầng Thông thường lớp kết nối đầy đủ thường kết hợp với Softmax
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 39Hình 2-21 Minh họa kết nối đầy đủ dạng ma trận [43]
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf
Trang 40CHƯƠNG 3 PHÁT TRIỂN MÔ HÌNH CNN
Các nguồn tài liệu rất phong phú (từ thư viện trường, website, internet ), số lượng nguồn tài liệu bằng hình ảnh chiếm số lượng tương đối lớn và thường được sử dụng kết hợp trong quá trình thiết kế nội dung và truyền tải nội dung môn học Tuy nhiên để xác định cụ thể một hình ảnh thuộc nhóm ngành, môn học nào thì cần có thời gian chọn lọc nghiên cứu tùy theo năng lực người thực hiện trong công việc Ở bài toán phân lớp tài liệu ảnh hỗ trợ việc xác định được hình ảnh phù hợp môn học nào bằng phương pháp học máy học chuyên sâu để phân tích
3.1 Bài toán phân lớp tài liệu trong giảng dạy
Đặc điểm chung mô hình bài toán phân lớp thông thường sẽ bao gồm 3 thành phần, mỗi thành phần tùy theo từng bài toán mà cấu trúc bên trong có thể thay đổi sao cho phù hợp với để giải quyết bài toán cách tốt nhất:
– Phần đầu vào: một hình ảnh (có thể là ảnh màu hoặc ảnh xám hoặc ảnh nhị phân) hay một số liệu cần phân tích
– Phần xử lý: xây dựng hệ thống máy nhận dạng phân tích Có thể sử dụng các thuật toán máy học để nâng cao hiệu suất và kết quả chính xác trên điều kiện đo lường đánh giá như độ chính xác, thời gian thực hiện, độ lỗi, chi phí huấn luyện
– Phần đầu ra: sau khi đi qua hệ thống học sâu cho ra kết quả phân nhóm đã được định danh sẵn Thông thường giá trị ở phần này là có dạng một vector với n chiều (trong đó n là số nhóm được định danh trước đó)
Bài toán được xác định ở đây là việc tìm kiếm xác định một danh mục cụ thể của hình ảnh nằm trong bộ phân lớp môn học trong giáo dục thể chất
Đầu vào: Sử dụng hình ảnh với nhiều dạng kích thước – màu sắc và đặc điểm khác nhau được sử dụng cho việc thiết kế môn học
Đầu ra: Kết luận ảnh này tương thích với môn học nào trong danh mục các môn học được xác định ban đầu, bao gồm các môn như: bơi lội, bóng bàn, bóng chuyền, bóng đá, bóng rổ, cầu lông, điền kinh, nhảy cao, tennis, thể hình, võ, yoga
gfsdsd sd sdsd dsd sd454 4545 4545xfdf def dtrrtrrtrt 454 454 545gd luan van do an khoa luan tot nghiep fdfd 454 dhfg fgfgf