1. Trang chủ
  2. » Giáo Dục - Đào Tạo

nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

59 6 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe
Tác giả Trần Thị Phương Nhi
Người hướng dẫn TS. Hoàng Thị Mỹ Lệ
Trường học Đại học Đà Nẵng
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 59
Dung lượng 1,22 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA CÔNG NGHỆ SỐ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN ĐỀ TÀI: NGHIÊN CỨU ỨNG DỤNG MẠ

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

NGHIÊN CỨU ỨNG DỤNG MẠNG NƠ RON TRONG VIỆC CẢNH BÁO TÀI XẾ BUỒN NGỦ

KHI ĐANG LÁI XE

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

NGHIÊN CỨU ỨNG DỤNG MẠNG NƠ RON TRONG VIỆC CẢNH BÁO TÀI XẾ BUỒN NGỦ

KHI ĐANG LÁI XE

Giảng viên hướng dẫn duyệt

Đà Nẵng, tháng 06/2023

Trang 3

Đà Nẵng, ngày tháng năm 2023 Giảng viên hướng dẫn

Trang 4

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

Đà Nẵng, ngày tháng năm 2023 Người phản biện

Trang 5

Tên đề tài: Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

Sinh viên thực hiện: Trần Thị Phương Nhi MSV: 1911505310140 Lớp: 19T1 Nội dung tóm tắt:

Hệ thống cảnh báo buồn ngủ khi lái xe bao gồm camera và chạy code console hiển thị kết quả real-time ra màn hình sau đó phát cảnh báo âm thanh qua loa Quy trình phát hiện buồn ngủ và cảnh báo buồn ngủ: Khi hai mắt cùng nhắm quá 3 - 5s thì phát cảnh báo tín hiệu ra loa, màn hình xuất hiện cảnh báo ngủ gật, khi mắt bị các vật thể che khuất cũng sẽ phát ra tín hiệu cảnh báo

Tập trung xử lý AI model, thực hiện demo code trên máy tính laptop (không bao gồm tích hợp cứng), sử dụng đầu vào là webcam, đầu ra hiển thị video trực tiếp lên màn hình

Trang 6

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Giảng viên hướng dẫn: TS Hoàng Thị Mỹ Lệ Sinh viên thực hiện: Trần Thị Phương Nhi Mã SV: 1911505310140

1 Tên đề tài: Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ

khi đang lái xe

2 Các số liệu, tài liệu ban đầu:

- Dựa trên bối cảnh, thực trạng của vấn đề tai nạn giao thông ở Việt Nam, một trong những lý do gây ra nhiều vụ tai nạn là tài xế ngủ gật khi lái xe

- Dựa trên tính cấp bách, cần thiết trong ứng dụng thực tế, góp phần giảm thiểu tai nạn giao thông

- Các tài liệu về sự phát triển vượt bậc của trí tuệ nhân tạo trong những năm gần đây,

và việc ứng dụng trí tuệ nhân tạo vào đời sống hàng ngày

- Các tài liệu tham khảo được lấy trên các trang báo, tài liệu báo cáo công khai do các

tổ chức uy tín xuất bản, đặc biệt là các bài báo khoa học

- Các khóa học, sách chuyên ngành liên quan đến trí tuệ nhân tạo do tổ chức, đại học

có danh tiếng xuất bản 3 Nội dung chính của đồ án:

Mở đầu

1 Mục tiêu đề tài 2 Đối tượng và phạm vi nghiên cứu 3 Phương pháp nghiên cứu

4 Giải pháp công nghệ 5 Cấu trúc đồ án

Chương 1: Cơ sở lý thuyết

1 Ngôn ngữ lập trình 2 Tổng quan về học sâu 3 Lý thuyết về mạng nơ ron trí tuệ nhân tạo 4 Lý thuyết về OpenCV

5 Sử dụng OpenCV trong bài toán phát hiện mặt người và mắt 6 Lý thuyết về thư viện MediaPine

7 Platform Anaconda 8 Framework Pytorch

Trang 7

1 Ý tưởng thực hiện đề tài 2 Tổng quan hệ thống 3 Giải pháp

4 Sơ đồ lớp

Chương 3: Xây dựng chương trình

1 Triển khai cài đặt môi trường 2 Thu thập dữ liệu

3 Kỹ thuật tiền xử lý dữ liệu 4 Tăng cường dữ liệu

5 Mô hình phân loại trình trạng mắt nhắm, mở 6 Kết quả đạt được và đánh giá

Kết luận

1 Kết luận 2 Hướng phát triển

4 Các sản phẩm dự kiến

- Nghiên cứu và xây dựng một sản phẩm mô phỏng có thể phát hiện và cảnh báo tình trạng buồn ngủ của người lái xe trực tiếp từ camera hoặc một đoạn video đầu vào

- File báo cáo hoàn chỉnh

5 Ngày giao đồ án: 06/02/2023 6 Ngày nộp đồ án: 07/06/2023

Đà Nẵng, ngày tháng năm 2023

Trang 8

i

LỜI CẢM ƠN

Công nghệ thông tin (CNTT) ngày nay đã đạt được nhiều tiến bộ đáng kể Từ một tiềm năng thông tin, nó đã trở thành một tài nguyên thực sự và sản phẩm hàng hoá trong xã hội CNTT đã tạo ra một sự thay đổi to lớn trong các lĩnh vực sản xuất, cơ sở hạ tầng, kinh tế, lao động và quản lý của xã hội

Với sự phát triển của Internet, nó đã trở thành một thành tựu khoa học kỹ thuật vĩ đại, là nguồn tài nguyên thông tin lớn nhất và đa dạng nhất trên thế giới hiện nay Internet cho phép mọi người trao đổi thông tin trong sinh hoạt hàng ngày, tìm kiếm và thu thập thông tin mới nhất từ khắp nơi trên thế giới, giao dịch thương mại và cộng tác trong nghiên cứu khoa học

Trong những năm gần đây, tại Việt Nam, số vụ tai nạn giao thông tăng cao đáng kể, đặt ra mối nguy hiểm cực kỳ nghiêm trọng cho cuộc sống xã hội và các tài xế Tai nạn giao thông (TNGT) không chỉ đau đớn cho người bị thương hay tử vong, mà còn gây thiệt hại không thể bù đắp được cho gia đình của họ Nguyên nhân chính của những vụ tai nạn này thường là do người lái xe mất tập trung do mệt mỏi hay buồn ngủ Vì vậy, đề tài này tập trung vào việc nghiên cứu và phát triển ứng dụng cho các phương tiện vận chuyển dài đường và ô tô gia đình, có thể áp dụng tại Việt Nam, giúp giảm thiểu TNGT và đóng góp vào việc xây dựng đô thị thông minh - Smart City

Tôi xin bày tỏ lòng biết ơn sâu sắc đến quý thầy cô đã giúp đỡ tôi trong việc thực hiện đề tài này Đặc biệt, tôi cũng muốn gửi một lời cảm ơn sâu sắc đến TS Hoàng Thị Mỹ Lệ, người đã hỗ trợ, giúp đỡ tôi trong suốt quá trình thực hiện đề tài tốt nghiệp này Tôi cũng xin gửi lời cảm ơn chân thành tới tất cả các giáo viên thuộc Khoa Công Nghệ Số tại Trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng, đã truyền đạt những kiến thức thiết thực và kinh nghiệm quý báu trong suốt quãng thời gian học tập

Trong quá trình làm đề tài, do kiến thức và thời gian còn hạn chế nên không thể tránh khỏi các lỗi và thiếu sót Vì vậy, hy vọng có thể nhận được sự đồng cảm và góp ý của quý thầy, cô để có thể hoàn thiện đề tài và tránh sai sót trong tương lai

Xin chân thành cảm ơn!

Trang 9

Tôi cam đoan rằng đồ án "Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo

tài xế buồn ngủ khi đang lái xe" là một công trình nghiên cứu độc lập được hướng dẫn

bởi giảng viên TS Hoàng Thị Mỹ Lệ Tôi khẳng định rằng không có sao chép từ nguồn khác Nội dung đồ án là sản phẩm của quá trình học tập tại trường

Tôi xin chịu trách nhiệm hoàn toàn và chấp nhận kỷ luật từ trưởng bộ môn và nhà trường nếu có bất kỳ vấn đề nào xảy ra

Sinh viên thực hiện

Trần Thị Phương Nhi

Trang 10

2 Đối tượng nghiên cứu và phạm vi nghiên cứu 2

a Đối tượng nghiên cứu 2

1.3 Lý thuyết về mạng nơ ron trí tuệ nhân tạo 7

1.3.1 Mạng nơ ron nhân tạo 7

1.3.2 Mạng nơ ron tích chập 9

1.3.3 Một số mạng nơ ron nổi tiếng 10

1.4 Lý thuyết về OpenCV 16

1.5 Sử dụng OpenCV trong bài toán phát hiện mặt người và mắt 17

1.6 Lý thuyết về thư viện mã nguồn MediaPine 19

1.7 Platform Anaconda 20

1.8 Framework Pytorch 21

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 23

2.1 Ý tưởng thực hiện đề tài 23

Trang 11

2.3 Giải pháp 25

2.4 Sơ đồ lớp 26

2.4.1 Giai đoạn huấn luyện 26

2.4.2 Giai đoạn dự đoán 27

Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 28

3.1 Triển khai cài đặt môi trường 28

3.1.1 Ngôn ngữ lập trình Python 28

3.1.2 Platform Anaconda3 29

3.1.3 Framework Pytorch 30

3.1.4 Thư viện OpenCV 31

3.1.5 Visual Studio Code 32

3.2 Thu thập dữ liệu 34

3.2.1 Thu thập dữ liệu về tình trạng mắt mở 34

3.2.2 Thu thập dữ liệu về tình trạng mắt mở 34

3.3 Kỹ thuật tiền xử lý dữ liệu 35

3.4 Tăng cường dữ liệu 35

3.5 Mô hình phân loại tình trạng mắt nhắm, mở 37

3.6 Kết quả đạt được và đánh giá 38

3.6.1 Kết quả ban đầu 38

3.6.2 Kết quả chi tiết của hệ thống 38

Trang 12

Hình 1.3: Tổng quan về Trí tuệ nhân tạo 6

Hình 1.4: Mô phỏng mạng lưới thần kinh trong học sâu 7

Hình 1.5: Mô phỏng nơron trong mạng 8

Hình 1.6: Mô phỏng mạng nơron nhân tạo nhiều lớp 8

Hình 1.7: Mô phỏng về mạng nơron tích chập 9

Hình 1.8: Hình minh hoạ mạng AlexNet 10

Hình 1.9: Mô tả về mạng nơ ron VGG 12

Hình 1.10: Mô phỏng quá trình lan truyền ngược 13

Hình 1.11: Mô phỏng hiện tượng Vanishing Gradient 14

Hình 1.12: Mô tả khối nối tắt Resnet 14

Hình 1.13: Mô tả mạng CGG và ResNet 15

Hình 1.14: Hình minh hoạ về thư viện mã nguồn mở OpenCV 16

Hình 1.15: Hình minh hoạ về chức năng vẽ trên ảnh của thư viện mã nguồn mở OpenCV 18

Hình 1.16: Hình minh hoạ về chức năng thêm văn bản của thư viện mã nguồn mở OpenCV 18

Hình 1.17: Hình minh hoạ thư viện mã nguồn MediaPine 19

Hình 1.18: Hình minh hoạ nền tảng Anaconda 20

Hình 1.19: Hình minh hoạ framework Pytorch 22

Hình 2.1: Mô hình tổng quan hệ thống đề xuất 24

Hình 2.2: Sơ đồ thuật toán của hệ thống 25

Hình 2.3: Sơ đồ lớp của hệ thống ở giai đoạn huấn luyện 26

Hình 2.4: Sơ đồ lớp của hệ thống ở giai đoạn dự đoán 27

Hình 3.1: Mô tả cài đặt Python (1) 28

Hình 3.2: Mô tả cài đặt Python (2) 28

Hình 3.3: Mô tả chọn nơi chứa anaconda3 29

Hình 3.4: Mô tả cài đặt anaconda3 29

Trang 13

Hình 3.6: Mô tả chọn phiên bản Pytorch 30

Hình 3.7: Mô phỏng chạy câu lệnh cài đặt Pytorch 31

Hình 3.8: Mô phỏng chạy câu lệnh cài đặt OpenCV 32

Hình 3.9: Giải nén và cài đặt Visual Studio Code 33

Hình 3.10: Cài đặt Extention Python 33

Hình 3.11: Dữ liệu thu thập từ internet 34

Hình 3.12: Dữ liệu về đôi mắt thu được 34

Hình 3.13: Dữ liệu về đôi mắt sau khi sử dụng mã nguồn mở để thu thập 34

Hình 3.14: Mô tả tiền xử lý dữ liệu 35

Hình 3.15: Ví dụ về tăng cường dữ liệu 36

Hình 3.16: Mô tả mạng nơ ron tích chập tự xây dựng 37

Hình 3.17: Đồ thị hàm ReLu 37

Hình 3.18: Mô tả CPU sử dụng cho việc huấn luyện mô hình 39

Hình 3.19: Giá trị Loss và Accuracy với 20 epoch trên đồ thị 39

Hình 3.20: Kết quả trong điều kiện ánh sáng thường và đeo kính cận 40

Hình 3.21: Kết quả trong điều kiện ánh sáng thường và không đeo kính cận 40

Hình 3.22: Kết quả trong điều kiện ánh sáng thường và đội mũ lưới trai 41

Hình 3.23: Kết quả trong điều kiện ánh sáng chiếu rọi xung quanh 41

Hình 3.24: Kết quả trong điều kiện ánh sáng tối vừa phải 41

Hình 3.25: Kết quả khi người lái xe trong tư thế cúi đầu 42

Hình 3.26: Kết quả khi người lái xe trong tư thế ngảng đầu lên trên 42

Hình 3.27: Kết quả khi người lái xe nghiêng đầu sang trái 42

Hình 3.28: Kết quả khi người lái xe nghiêng đầu sang phải 43

Trang 14

v

DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH

1 AI Artificial Intelligence Trí tuệ nhân tạo

4 CNN Convolutional Neural Network Mạng nơ ron tích chập 5 ANN Artificial Neural Network Mạng nơ ron nhân tạo

6 OpenCV Open Source Computer Vision

Là một thư viện lập trình các chức năng chủ yếu cho thị giác máy tính

8 GPU Graphics Processing Unit Đơn vị xử lý đồ họa

9 SVM Support Vector Machine

Là mô hình máy học sử dụng các vector hỗ trợ để phân loại dữ liệu

10 IDE Integrated Development

Trang 15

MỞ ĐẦU

Trên thế giới và ngay tại Việt Nam, trí tuệ nhân tạo (AI) đang dần len lõi trong cuộc sống của chúng ta, chúng được xem là một trong những công nghệ cốt lõi của cuộc cách mạng công nghiệp 4.0 Với trình độ phát triển nhanh chóng của khoa học và công nghệ, trí tuệ nhân tạo khiến máy móc có thể làm được những công việc vốn chỉ có con người thực hiện và thậm chí còn có thể làm tốt hơn con người Trí tuệ nhân tạo đang dần đi vào mọi lĩnh vực như: Thông tin và truyền thông, Y tế, Giáo dục, Du lịch, Giao thông, Thương mại điện tử, nhằm phục vụ cho đời sống của con người

Tại Việt Nam những năm gần đây, song song với quá trình phát triển nhanh chóng của các phương tiện giao thông, các số liệu TNGT cũng ngày một tăng lên và mang đến một mối nguy hiểm nghiêm trọng không những cho cuộc sống xã hội mà còn cho những người tham gia giao thông TNGT đã và đang trở thành những nỗi đau, nỗi mất mác lớn của nhiều gia đình Trong đó, những nguyên nhân chính gây ra TNGT đó chính là sự thiếu tập trung của người lái xe do mệt mỏi hay buồn ngủ

Báo Tuyên Giáo đã công bố thống kê trong 3 tháng đầu năm 2023 [1],

trên toàn quốc đã xảy ra 2.343 vụ tai nạn giao thông, khiến 1.434 người tử vong và 1.578 người bị thương So với cùng kỳ năm 2022, số lượng tai nạn giảm đi 430 vụ (15,5%), số người tử vong giảm 249 người (14,8%) và số người bị thương giảm 148 người (8,6%) Theo phân tích của Cục Cảnh Sát Giao Thông được trưng bày trên

báo Kinh tế và Dự báo [2], có khoảng 70% các vụ tai nạn xảy ra trong khoảng thời gian

từ 12h đến 24h, khi người lái xe có tâm lý mệt mỏi, căng thẳng và bị tác động bởi sự khác biệt nhiệt độ và ánh sáng giữa ban ngày và ban đêm, đặc biệt là với các phương tiện vận tải

1 Mục tiêu đề tài

Đề tài đặt ra xây dựng một hệ thống cảnh báo tình trạng buồn ngủ của người lái xe Từ đó, đề tài tập trung nghiên cứu các thuật toán nhận dạng và theo dõi trạng thái của mắt từ đó đưa ra cảnh báo buồn ngủ Hệ thống này nhằm góp phần giảm thiểu TNGT và xây dựng những đô thị thông minh – Smart City Đề tài này có thể triển khai áp dụng cho các phương tiện tham gia giao thông

Trang 16

Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

2 Đối tượng nghiên cứu và phạm vi nghiên cứu

a Đối tượng nghiên cứu

- Tình trạng mắt - Trạng thái khuôn mặt

b Phạm vi nghiên cứu

- Các hình thái, tình trạng mắt, khuôn mặt khi không sử dụng kính râm, hoặc các vật thể che khuất mắt và trong điều kiện được chiếu sáng thuận lợi

3 Phương pháp nghiên cứu

- Tham khảo số liệu có liên quan của Cục cảnh sát giao thông - Khảo sát thực tế

- Tìm kiếm tài liệu tại các bài báo, bài nghiên cứu khoa học của đề tài - Nghiên cứu và xây dựng hệ thống mô phỏng bằng ngôn ngữ Python - Sử dụng thư viện mã nguồn mở OpenCV trong phương pháp nhận dạng khuôn mặt - Xác định và theo dõi mắt của người lái xe

- Xây dựng mạng nơ rơn nhân tạo trong việc theo dõi, cảnh báo khi tài xế ngủ gật, nhắm mắt

- Kết hợp các module để đưa ra một hệ thống hoàn chỉnh giải quyết vấn đề đặt ra - Xử lý vấn đề phát hiện, cảnh báo theo thời gian thực (real-time recognition)

4 Giải pháp công nghệ

- Ngôn ngữ lập trình Python - Thư viện mã nguồn mở OpenCV - Thư viện mã nguồn mở Mediapipe

5 Cấu trúc đồ án

Mở đầu Chương 1: Cơ sở lý thuyết

Chương này trình bày tổng quan về các vấn đề có trong đề tài Nội dung xoay quanh các vấn đề như: Khái niệm, phương pháp tổng quan, sơ lược về các phương pháp, thư viện sẽ sử dụng

Trang 17

Chương 2: Phân tích thiết kế hệ thống

Chương này tập trung vào trình bày và giải thích chi tiết về ý tưởng, tổng quan về hệ thống, các sơ đồ giải thích chi tiết về hệ thống

Chương 3: Xây dựng chương trình

Chương này trình bày chi tiết từ cài đặt các chương trình, thư viện, … cần sử dụng và quá trình thực hiện Từ đó trình bày kết quả đạt được và đưa ra đánh giá sơ bộ

Kết luận và hướng phát triển

Trang 18

Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

MacOS, iOS, Android [3]

Hình 1.1: Bảng xếp hạng sự phổ biến của các ngôn ngữ lập trình hiện nay (Nguồn:

http://pypl.github.io)

Dưới đây là một số đặc điểm và lợi ích của Python: [4]

- Dễ học và đọc: Python có cú pháp đơn giản và dễ hiểu, giúp người mới học lập trình nhanh chóng tiếp cận và hiểu được mã nguồn Cú pháp rõ ràng và sử dụng các từ khóa có ý nghĩa giúp mã Python dễ đọc và dễ bảo trì

Trang 19

- Ngôn ngữ đa mục đích: Python được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm phát triển web, trí tuệ nhân tạo, phân tích dữ liệu, hệ thống nhúng, game và nhiều lĩnh vực khác Điều này cho phép bạn áp dụng Python cho nhiều loại dự án và sử dụng lại mã nguồn

- Thư viện phong phú: Python đi kèm với một số thư viện và framework phổ biến như NumPy, pandas, TensorFlow, Django, Flask và nhiều thư viện khác Nhờ vào các thư viện này, bạn có thể xây dựng các ứng dụng mạnh mẽ và hiệu quả trong thời gian ngắn

- Hỗ trợ đa nền tảng: Python có sẵn cho nhiều hệ điều hành như Windows, macOS và Linux Bạn có thể viết và chạy mã Python trên nhiều nền tảng khác nhau mà không cần phải thay đổi mã nguồn

- Cộng đồng phát triển mạnh mẽ: Python có một cộng đồng phát triển lớn và nhiều nguồn tài nguyên hữu ích như tài liệu, diễn đàn và các dự án mã nguồn mở Bạn có thể tìm thấy hỗ trợ và giải đáp các câu hỏi của mình từ cộng đồng Python - Hỗ trợ cho lập trình hướng đối tượng: Python hỗ trợ lập trình hướng đối tượng,

cho phép bạn xây dựng và tổ chức mã nguồn một cách có cấu trúc và linh hoạt Lập trình hướng đối tượng giúp tăng tính module và tái sử dụng mã nguồn Python là một ngôn ngữ lập trình đa dụng và mạnh mẽ, được sử dụng trong nhiều lĩnh vực và có cộng đồng phát triển đông đảo

Hình 1.2: Ngôn ngữ lập trình Python

Trang 20

Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

1.2 Tổng quan về học sâu

Những năm gần đây trong lĩnh vực nghiên cứu về trí tuệ nhân tạo (AI), học máy (Machine Learning - ML) đã đạt được những thành công đáng kể Nó cho phép máy tính tiến gần hơn đến việc kết hợp hiệu suất của con người trong các lĩnh vực như: nhận dạng

khuôn mặt, nhận dạng giọng nói và nhận dạng ngôn ngữ [5]

Hình 1.3: Tổng quan về Trí tuệ nhân tạo

Machine Learning là một lĩnh vực của AI mà trong đó máy tính được lập trình để tự động học hỏi từ dữ liệu mà không cần được lập trình cụ thể cho từng tác vụ Thay vì việc lập trình, máy tính sẽ dựa trên các thuật toán học máy để tự động tìm ra các kết quả dự đoán chính xác từ dữ liệu đầu vào và điều chỉnh chúng theo thời gian với mục đích tối ưu hóa đầu ra Các ứng dụng của học máy rất phong phú và đa dạng, từ phân loại hình ảnh và giọng nói, dự đoán thị trường chứng khoán, xử lý ngôn ngữ tự nhiên và nhiều ứng dụng khác

Deep Learning (DL) là một lĩnh vực của AI tập trung vào việc xây dựng các mô hình máy học dựa trên các kiến trúc mạng nơ ron nhân tạo được thiết kế theo cấu trúc phân tầng sâu (deep), giúp cho máy tính xử lý và học được các dữ liệu phức tạp như hình ảnh, âm thanh, văn bản và video Các mô hình học sâu ngày nay thường được sử dụng trong các ứng dụng như nhận dạng hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên, trích xuất thông tin và dự đoán cũng như trong nhiều lĩnh vực

khoa học khác [6]

Ví dụ: Một ví dụ về học máy đơn giản là dự đoán doanh số bán kem dựa trên nhiệt độ ngoài trời Tuy nhiên, khi áp dụng vào nhiều vấn đề thực tế, các mô hình

Trang 21

đơn giản như vậy không còn phù hợp Ví dụ như nhận dạng số viết tay, với sự đa dạng lớn về kích thước và hình dạng của mỗi chữ số, đòi hỏi máy tính phải có khả năng xử lý các tính năng phức tạp và tương tác lớn hơn giữa chúng Vì vậy, học sâu với các mạng lưới thần kinh mạnh mẽ và linh hoạt trở nên cần thiết để giải quyết các vấn đề này

Mạng lưới thần kinh trong học sâu là một loạt các mô hình toán học có cấu trúc và được lấy cảm hứng từ bộ não con người Mỗi nơ ron trong mạng lưới được thể hiện bằng một hàm toán học, sẽ xử lý thông tin đầu vào và chuyển đổi nó thành một dạng dễ dàng hơn để điều chỉnh trước khi xuất ra đầu ra Ta có thể hình dung các nơ ron trong mạng lưới thần kinh được sắp xếp theo từng lớp, giống như hình dưới đây

Hình 1.4: Mô phỏng mạng lưới thần kinh trong học sâu

1.3 Lý thuyết về mạng nơ ron trí tuệ nhân tạo

1.3.1 Mạng nơ ron nhân tạo

Một trong những phương pháp phổ biến và chính trong học sâu là sử dụng Mạng nơ-ron nhân tạo (ANN) Mô hình này được lấy cảm hứng từ cấu trúc não người, cơ quan phức tạp nhất trong cơ thể con người, gồm hơn 90 tỷ tế bào thần kinh Các tế bào này được kết nối với nhau bằng các sợi thần kinh gọi là “sợi trục” và

“đuôi gai”, giúp truyền thông tin giữa các tế bào [7]

ANN được phát minh lần đầu tiên vào năm 1958 bởi nhà tâm lý học

Trang 22

Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

và đi qua các lớp ẩn tuần tự trước khi cho ra kết quả cuối cùng ở lớp đầu ra, ví dụ như xác định một hình ảnh có chứa đối tượng gì đó, chẳng hạn như “Mèo”

Một nơ ron đơn lẻ (được gọi là perceptron trong ANN) được biểu diễn như sau:

Hình 1.5: Mô phỏng nơron trong mạng

Perceptron đa tầng là một dạng ANN đơn giản nhất, bao gồm một lớp đầu vào duy nhất, một hoặc nhiều lớp ẩn và một lớp đầu ra Mỗi lớp chứa một tập hợp perceptron Lớp đầu vào là một hoặc nhiều chức năng của dữ liệu đầu vào Mỗi lớp ẩn có một hoặc nhiều nơ-ron và xử lý một số khía cạnh của tính năng trước khi gửi thông tin được xử lý đến lớp ẩn tiếp theo Quá trình lớp đầu ra nhận dữ liệu từ lớp ẩn cuối cùng và đưa ra kết quả

Hình 1.6: Mô phỏng mạng nơron nhân tạo nhiều lớp

Trang 23

1.3.2 Mạng nơ ron tích chập

Mạng Nơ-ron Tích Chập (Convolutional Neural Network - CNN) là một trong những mô hình ANN phổ biến nhất và cũng là một trong những mô hình của DL Nó sử dụng tập hợp các thuật toán ma trận để tạo ra mô hình dữ liệu trừu tượng ở mức cao bằng cách sử dụng nhiều lớp xử lý cấu trúc phức tạp

Cấu trúc của CNN bao gồm: - Một tập hợp các lớp tích chập (convolution) được xếp chồng lên nhau và sử dụng

các hàm phi tuyến tính (nonlinear activation) như ReLU và tanh để kích hoạt các trọng số trong các node Mỗi lớp sau khi qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo

- Lớp tiếp theo của CNN là kết quả của việc tích chập từ lớp trước đó, điều này cho phép tạo ra các kết nối cục bộ Mỗi neuron ở lớp kế tiếp được tạo ra từ kết quả của filter được áp dụng lên một vùng ảnh cục bộ của neuron trước đó

- Mỗi lớp trong CNN sử dụng hàng trăm đến hàng nghìn filter khác nhau và kết hợp kết quả của chúng lại Ngoài ra, một số lớp khác như pooling/subsampling layer được sử dụng để chắt lọc các thông tin hữu ích từ ảnh và loại bỏ càng nhiều nhiễu càng tốt

Hình 1.7: Mô phỏng về mạng nơron tích chập

Trong kiến trúc mạng CNN, có hai khía cạnh quan trọng cần được chú ý là tính bất biến (Location Invariance) và tính kết hợp (Compositionality) Khi chúng ta xử lý cùng một đối tượng nhưng ở các góc độ khác (translation, rotation, scaling),

Trang 24

Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

1.3.3 Một số mạng nơ ron nổi tiếng

AlexNet là một mạng CNN đã giành chiến thắng trong cuộc thi ImageNet LSVRC-2012 vào năm 2012 với tỷ lệ lỗi thấp hơn một khoảng lớn so với

các đối thủ khác (15,3% so với 26,2%) [8]

Hình 1.8: Hình minh hoạ mạng AlexNet

AlexNet gồm 5 lớp convolution và 3 lớp Fully connected.Các lớp convolution (hay còn gọi là các filter) trích xuất thông tin hữu ích từ các hình ảnh Một lớp convolution thường bao gồm nhiều kernel có cùng kích thước Ví dụ, lớp convolution đầu tiên của AlexNet có 96 kernel với kích thước 11x11x3 Thường thì chiều rộng và chiều cao của một kernel bằng nhau và độ sâu (depth) thường bằng số lượng kênh màu

Lớp convolution 1 và convolution 2 kết nối với nhau thông qua một phép Overlapping Max Pooling ở giữa Tương tự, giữa convolution 2 và convolution 3 Convolution 3, convolution 4 và convolution 5 kết nối trực tiếp với nhau mà

Trang 25

không thông qua trung gian Convolution 5 kết nối với fully connected layter 1 thông qua một Overlapping Max pooling và tiếp theo đó là một fully connected layter Cuối cùng là một bộ phân lớp softmax với 1000 lớp nhãn (có thể xem hình kiến trúc mạng AlexNet ở trên để có cái nhìn tổng quát hơn)

ReLU nonlinerity được sử dụng sau tất cả các lớp convolution và fully connected Trước đây, ReLU nonlinerity của lớp convolution 1 và 2 thường được theo sau bởi một bước chuẩn hoá cục bộ (local normalization) rồi mới thực hiện pooling Tuy nhiên, các nghiên cứu sau đó đã cho thấy việc sử dụng normalization không thực sự hữu ích Do đó, chúng ta sẽ không đi chi tiết về vấn đề này

Một số đặc điểm: - Mô hình này sử dụng thuật toán ReLu thay cho Sigmoid (hoặc tanh) để xử lý với

non-linearity, nhờ vậy tăng tốc độ tính toán lên 6 lần - Sử dụng dropout như một phương pháp regularization mới cho CNN

Dropout không những giúp mô hình tránh được overfitting mà còn làm giảm thời gian huấn luyện mô hình Overlap pooling để giảm size của network

- Sử dụng local response normalization để chuẩn hóa ở mỗi layer - Sử dụng kỹ thuật data augmentation để tạo them data training bằng cách translations,

horizontal reflections - Sử dụng SGD với learning rate 0.01, momentum 0.9 và weight decay 0.0005

Với VGG quan điểm về một mạng nơ-ron sâu hơn sẽ giúp ích cho cải thiện độ chính xác của mô hình tốt hơn Về kiến trúc thì VGG-16 vẫn giữ các đặc điểm của

AlexNet nhưng có nhiều cải tiến vượt trội.[9]

Kiến trúc VGG-16 sâu hơn, bao gồm 13 layers tích chập 2 chiều (thay vì 5 so với AlexNet) và 3 layers fully connected Lần đầu tiên trong VGG-16 xuất hiện khái niệm về khối tích chập (block) Đây là những kiến trúc gồm một tập hợp các layers CNN được lặp lại giống nhau Kiến trúc khối đã khởi nguồn cho một dạng kiến trúc hình mẫu rất thường gặp ở các mạng CNN kể từ đó

VGG-16 cũng kế thừa lại hàm activation ReLU ở AlexNet VGG-16 cũng là kiến trúc đầu tiên thay đổi thứ tự của các block khi xếp nhiều layers CNN + max pooling

Trang 26

Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

Mạng VGG-16 sâu hơn so với AlexNet và số lượng tham số của nó lên tới 138 triệu tham số Đây là một trong những mạng mà có số lượng tham số lớn nhất Kết quả của nó hiện đang xếp thứ 2 trên bộ dữ liệu ImageNet validation ở thời điểm public Ngoài ra còn một phiên bản nữa của VGG-16 là VGG-19 tăng cường thêm 3 layers về độ sâu

Hình 1.9: Mô tả về mạng nơ ron VGG

Trang 27

1.3.3.3 Mạng nơ-ron ResNet

ResNet (Residual Network) được giới thiệu đến công chúng vào năm 2015 và thậm chí đã giành được vị trí thứ 1 trong cuộc thi ILSVRC 2015 với tỉ lệ lỗi top 5 chỉ 3.57% Không những thế nó còn đứng vị trí đầu tiên trong cuộc thi ILSVRC and COCO 2015 với ImageNet Detection, ImageNet localization, Coco detection và Coco segmentation Hiện tại thì có rất nhiều biến thể của kiến trúc ResNet với số lớp khác nhau như ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152, .Với tên là ResNet theo sau là một số chỉ kiến trúc ResNet với

số lớp nhất định [10]

Mạng ResNet (R) là một mạng CNN được thiết kế để làm việc với hàng trăm hoặc hàng nghìn lớp chập Một vấn đề xảy ra khi xây dựng mạng CNN với nhiều lớp chập sẽ xảy ra hiện tượng Vanishing Gradient dẫn tới quá trình học tập không tốt

Thuật toán lan truyền ngược (Backpropagation Algorithm) là một kỹ thuật thường được sử dụng trong quá trình tranining Ý tưởng chung của thuật toán lá sẽ đi từ output layer đến input layer và tính toán gradient của cost function tương ứng cho từng parameter (weight) của mạng Gradient Descent sau đó được sử dụng để cập nhật các parameter đó

Hình 1.10: Mô phỏng quá trình lan truyền ngược

Toàn bộ quá trình trên sẽ được lặp đi lặp lại cho tới khi mà các parameter của

Trang 28

Nghiên cứu ứng dụng mạng nơ ron trong việc cảnh báo tài xế buồn ngủ khi đang lái xe

Mô phỏng hiện tường Vanishing Gradient theo hình 1.11:

Hình 1.11: Mô phỏng hiện tượng Vanishing Gradient

Để khắc phục hiện tượng này, giải pháp mà ResNet đưa ra là sử dụng kết nối "tắt" đồng nhất để xuyên qua một hay nhiều lớp Một khối như vậy được gọi là một Residual Block, như trong hình sau:

Hình 1.12: Mô tả khối nối tắt Resnet

Trang 29

ResNet gần như tương tự với các mạng gồm có convolution, pooling, activation và fully-connected layer Ảnh bên trên hiển thị khối dư được sử dụng trong mạng Xuất hiện một mũi tên cong xuất phát từ đầu và kết thúc tại cuối khối dư Hay nói cách khác là sẽ bổ sung Input X vào đầu ra của layer, hay chính là phép cộng mà ta thấy trong hình minh họa, việc này sẽ chống lại việc đạo hàm bằng 0, do vẫn còn cộng thêm X Với H(x) là giá trị dự đoán, F(x) là giá trị thật (nhãn), chúng ta muốn H(x) bằng hoặc xấp xỉ F(x) Việc F(x) có được từ x như sau:

X => weight1 => ReLU => weight2 Giá trị H(x) có được bằng cách: F(x) + x => ReLU

Hình 1.13: Mô tả mạng CGG và ResNet

Trong hình 1.13: - Hình 1 VGG-19 là một mô hình CNN sử dụng kernel 3x3 trên toàn bộ mạng,

VGG-19 cũng đã giành được ILSVRC năm 2014 - Hình 2 ResNet sử dụng các kết nối tắt ( kết nối trực tiếp đầu vào của lớp (n)

với (n+x) được hiển thị dạng mũi tên cong Qua mô hình nó chứng minh được có thể cải thiện hiệu suất trong quá trình training model khi mô hình có hơn 20

Ngày đăng: 20/09/2024, 19:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
2. Nguyên nhân gây TNGT: https://bom.so/HonrMU 3. Tài liệu Python: https://vietnix.vn/python-la-gi/ Link
4. Đặc điểm và lợi ích của Python: https://aws.amazon.com/vi/what-is/python/ Link
5. Tổng quan về AI: https://kse-solutions.com/tri-tue-nhan-tao-ai Link
6. Tổng quan về ML & DL: https://machinelearningcoban.com/2016/12/26/introduce/ Link
7. Mạng nơ ron nhân tạo: https://aws.amazon.com/vi/what-is/neural-network/ Link
8. Mạng AlexNet: https://www.phamduytung.com/blog/2018-06-15-understanding-alexnet/ Link
9. Mạng VGG: https://d2l.aivivn.com/chapter_convolutional-modern/index_vn.html 10. Mạng ResNet: https://viblo.asia/p/gioi-thieu-mang-resnet-vyDZOa7R5wj Link
11. OpenCV: https://topdev.vn/blog/opencv-la-gi-hoc-computer-vision-khong-kho/ Link
12. MediaPipe: https://viblo.asia/p/mediapipe-live-ml-solutions-va-ung-dung-ve-bang-hands-gestures-gAm5ymOV5db Link
13. Anaconda: https://freetuts.net/cai-dat-anaconda-3416.html 14. Pytorch: https://onetech.vn/blog/pytorch-la-gi-13470 Link
15. Visual Studio Code: https://vn.got-it.ai/blog/visual-studio-code-la-gi-loi-the-tu-viec-su-dung-visual-studio-code Link
16. Kỹ thuật tiền xử lý dữ liệu: https://vimentor.com/en/lesson/tien-xu-ly-du-lieu-trong-linh-vuc-hoc-may-phan-1 Link
17. Kỹ thuật tăng cường dữ liệu: https://viblo.asia/p/tang-cuong-du-lieu-trong-deep-learning-oOVlYe4nl8W Link

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w