Đồ án tốt nghiệp - Tài liệu dung tham khảo môn Công nghệ phần mềm | Đại học Bách Khoa, Đại học Đà Nẵng
Đồ án tốt nghiệp - Tài liệu dung tham khảo môn Công nghệ phần mềm | Đại học Bách Khoa, Đại học Đà Nẵng giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học
Môn: Công nghệ phần mềm (CNPM1)
Trường: Trường Đại học Bách khoa, Đại học Đà Nẵng
Thông tin:
Tác giả:
Preview text:
ĐẠI HỌC ĐÀ NẴNG
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Độc lập - Tự do - Hạnh phúc
KHOA …………………………………………
NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP 1. Thông tin chung:
1. Họ và tên sinh viên: ………………………………………………………………….
2. Lớp: …………………………… Số thẻ SV: ..………………………………………
3. Tên đề tài: …………………………………………………………………………....
4. Người hướng dẫn: ………………………….………… Học hàm/ học vị: ………….
II. Nhận xét, đánh giá đồ án tốt nghiệp:
1. Về tính cấp thiết, tính mới, khả năng ứng dụng của đề tài: (điểm tối đa là 2đ)
………………………………………………………………………………………..
………………………………………………………………………………………..
2. Về kết quả giải quyết các nội dung nhiệm vụ yêu cầu của đồ án: (điểm tối đa là 4đ)
………………………………………………………………………………………..
………………………………………………………………………………………..
3. Về hình thức, cấu trúc, bố cục của đồ án tốt nghiệp: (điểm tối đa là 2đ)
………………………………………………………………………………………..
………………………………………………………………………………………..
4. Đề tài có giá trị khoa học/ có bài báo/ giải quyết vấn đề đặt ra của doanh nghiệp hoặc
nhà trường: (điểm tối đa là 1đ)
………………………………………………………………………………………..
………………………………………………………………………………………..
5. Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa:
………………………………………………………………………………………..
………………………………………………………………………………………..
III. Tinh thần, thái độ làm việc của sinh viên: (điểm tối đa 1đ)
……………………………………………………………………………………….. IV. Đánh giá: 1. Điểm đánh giá:
……../10 (lấy đến 1 số lẻ thập phân)
2. Đề nghị: ☐ Được bảo vệ đồ án ☐ Bổ sung để bảo vệ ☐ Không được bảo vệ
Đà Nẵng, ngày tháng năm 201
Người hướng dẫn ĐẠI HỌC ĐÀ NẴNG
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Độc lập - Tự do - Hạnh phúc
KHOA …………………………………………
NHẬN XÉT PHẢN BIỆN ĐỒ ÁN TỐT NGHIỆP Thông tin chung:
Họ và tên sinh viên: ……….………………………………………………………….
Lớp: …………………….……… Số thẻ SV: ..………………………………………
Tên đề tài: …………………………………………….……………………………....
Người phản biện: ..………………………….………… Học hàm/ học vị: ………….
Nhận xét, đánh giá đồ án tốt nghiệp: Điểm Điểm
TT Các tiêu chí đánh giá tối đánh đa giá
Sinh viên có phương pháp nghiên cứu phù hợp, giải 1 80
quyết đủ nhiệm vụ đồ án được giao
Tính mới (nội dung chính của ĐATN có những phần mới
so với các ĐATN trước đây). 1a 15
Đề tài có giá trị khoa học, công nghệ; có thể ứng dụng thực tiễn.
Kỹ năng giải quyết vấn đề; hiểu, vận dụng được kiến
thức cơ bản, cơ sở, chuyên ngành trong vấn đề nghiên 1b cứu. 50
Chất lượng nội dung ĐATN (thuyết minh, bản vẽ,
chương trình, mô hình,…).
Có kỹ năng vận dụng thành thạo các phần mềm ứng
dụng trong vấn đề nghiên cứu; 1c
Có kỹ năng đọc, hiểu tài liệu bằng tiếng nước ngoài ứng 15
dụng trong vấn đề nghiên cứu;
Có kỹ năng làm việc nhóm; 2 Kỹ năng viết: 20
2a Bố cục hợp lý, lập luận rõ ràng, chặt chẽ, lời văn súc tích 15
Thuyết minh đồ án không có lỗi chính tả, in ấn, định 2b 5 dạng 3
Tổng điểm đánh giá theo thang 100:
Quy về thang 10 (lấy đến 1 số lẻ)
Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa: ………………………………………..
………………………………………………………………………………………...
Câu hỏi đề nghị sinh viên trả lời trong buổi bảo vệ: …………………………………
………………………………………………………………………………………...
………………………………………………………………………………………...
Đề nghị: ☐ Được bảo vệ đồ án ☐ Bổ sung để bảo vệ ☐ Không được bảo vệ
Đà Nẵng, ngày tháng năm 201…
Người phản biện TÓM TẮT
Tên đề tài: Hệ thống cảnh báo tài xế lái xe thiếu an toàn Sinh viên thực hiện: Đỗ Thành Đạt
Số thẻ SV: 106180071 Lớp: 18DT2 Sinh viên thực hiện: Trần Hửu Quân
Số thẻ SV: 106180168 Lớp: 18DT3
Tai nạn giao thông đường bộ là một trong những vấn đề nhức nhối đáng quan tâm hiện
nay. Tình trạng mất tập trung, thiếu an toàn khi tham gia giao thông là một trong những
nguyên nhân chính gây ra những vụ tai nạn nghiêm trọng, ảnh hưởng nghiêm trọng đến
sức khỏe của người khác và đến chính bản thân mình. Và một sản phẩm để cảnh báo khi
tài xế lái xe thiếu an toàn là thực sự cần thiết. Vì vậy, chúng tôi quyết định nghiên cứu và
cho ra đời một sản phẩm nhằm giúp giải quyết vấn đề trên – Hệ thống cảnh báo tài xế lái
xe thiếu an toàn. Đề tài này tập trung vào phát triển mô hình trí tuệ nhân tạo để phát hiện
những hành động thiếu an toàn của tài xế khi tham gia giao thông như uống nước, dùng
điện thoại, không đeo dây an toàn và ngủ gật. Chúng tôi sử dụng bài toán Phát hiện đối
tượng để phát hiện ra các vật dụng như điện thoại, chai nước, dây an toàn và phát hiện
khuôn mặt, từ khuôn mặt nhận diện được mắt để phát hiện khi tài xế ngủ gật. Mô hình
được triển khai trên Máy tính Raspberry Pi4 nhỏ gọn, giá thành rẻ mà mang lại hiệu suất
khá tốt. Chúng tôi hi vọng đề tài này sẽ giúp ích cho các tài xế ô tô, góp phần giảm số các
vụ tai nạn thương tâm đáng tiếc xảy ra.
Báo cáo này gồm 4 chương: -
Chương 1: Tổng quan đề tài: Hệ thống cảnh báo tài xế lái xe thiếu an toàn. -
Chương 2: Cơ sở lý thuyết. -
Chương 3: Xây dựng mô hình cho Hệ thống cảnh báo tài xế lái xe thiếu an toàn. -
Chương 4: Thực nghiệm và kết quả. ĐẠI HỌC ĐÀ NẴNG
CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Độc lập - Tự do - Hạnh phúc
KHOA …………………………………………
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP TT Họ tên sinh viên Số thẻ SV Lớp Ngành 1 Đỗ Thành Đạt 106180071 18DT2 Kỹ thuật máy tính 2 Trần Hửu Quân 106180168 18DT3 Kỹ thuật máy tính Tên đề tài đồ án:
Hệ thống cảnh báo tài xế lái xe thiếu an toàn
Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện
Các số liệu và dữ liệu ban đầu:
Sử dụng dữ liệu tài xế lái xe ô tô ngoài thự tiễn bằng cách tự thu thập.
Nội dung các phần thuyết minh và tính toán: Phần chung: TT Họ tên sinh viên Nội dung 1 Đỗ Thành Đạt
-Tìm hiểu cơ sở lý thuyết, các phương pháp hiện 2 Trần Hửu Quân có
- Tìm hiểu về hệ thống nhận dạng với SSD- MobileNet - Tìm hiểu phần cứng
- Đề ra phương pháp thực hiện
- Thực nghiệm và đánh giá kết quả huấn luyện Phần riêng: TT Họ tên sinh viên Nội dung 1 Đỗ Thành Đạt
-Tìm hiểu và xây dựng mô hình
- Tìm hiểu và xây dựng module huấn luyện mô hình
- Chuyển đổi sang mô hình Onnx 2 Trần Hửu Quân
-Tìm hiểu và xây dựng cơ sở dữ liệu
- Tìm hiểu và xây dựng module đánh giá mô hình
- Triển khai thực hiện trên phần cứng
Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ): Phần chung: TT Họ tên sinh viên Nội dung TT Họ tên sinh viên Nội dung Phần riêng: TT Họ tên sinh viên Nội dung
Họ tên người hướng dẫn: Phần/ Nội dung: TS. Trần Thị Minh Hạnh - Hướng đề tài - Bản thuyết minh
- Giám sát quá trình thực hiện đề tài
- Triển khai đề tài, thực nghiệm đánh giá
Ngày giao nhiệm vụ đồ án:
……../……./201…..
Ngày hoàn thành đồ án:
……../……./201…..
Đà Nẵng, ngày tháng năm 201
Trưởng Bộ môn………………………. Người hướng dẫn
DANH SÁCH CÁC BẢNG, HÌNH VẼ
Hình 1.1 Lịch sử phát triển Machine Learning 18
Hình 1.2 Quá trình thực hiện 19
Hình 1.3. Quy trình xây dựng mô hình 20
Hình 1.4 Hướng triển khai đề tài với phần cứng 21
Hình 2.1 Cấu trúc mạng CNN 23
Hình 2.2 Sơ đồ khối phân lớp mô hình CNN 23
Hình 2.3 Mô tả tính chập 1 chiều 24
Hình 2.3 Mô tả tính chập 1 chiều 24
Hình 2.5 Mô tả tích chập 3 chiều 24
Hình 2.6 Kết quả khi sử dụng bộ lọc 3x3 25
Hình 2.7 Hàm kích hoạt ReLU 26
Hình 2.8 Các phương pháp lấy mẫu ảnh 27
Hình 2.9 Mạng Nơ ron thông thường (trái) và mạng Mạng Nơ ron khi áp dụng Dropout (phải) 28
Hình 2.10 Thuật toán Gradient Descent 29
Hình 2.11 Overfitting, Optimum và Underfitting 30
Hình 2.12 Thuật toán gradient descent nhằm tối ưu hóa loss function cho đến khi đạt được điểm minimum 32
Hình 3.1 Dữ liệu từ máy ảnh điện thoại 34
Hình 3.2 Dữ liệu các khuôn mặt người nổi tiếng 35
Hình 3.2 Dữ liệu các khuôn mặt người nổi tiếng 36
Hình 3.4 Sơ đồ các mối liên hệ giữa các tác vụ trong computer vision 38
Hình 3.5 Sơ đồ pipeline xử lý trong mô hình mạng R-CNN 39
Hình 3.6 Kiến trúc single model Fast R-CNN 40
Hình 3.7 Kiến trúc mô hình Faster R-CNN 41 Hình 3.8 Minh họa về SSD 42 Hình 3.9 Kiến trúc SSD 43
Hình 3.10 Kiến trúc của multi-scale convolution prediction 43 Hình 3.11 Tính IoU 46 Hình 3.13 Fixed Priors 47
Hình 3.14 Các lớp trong mạng MobileNet 48
Hình 3.15 Convolution truyền thống (Trái), Depthwise separable convolution với BN và ReLU (Phải) 49
Hình 3.16 Kiến trúc MobileNet 49
Hình 3.17 Minh hoạ về dilation convolution với rate = 2 50
Hình 3.18 Sự khác nhau MobileNetV2 và V1 51
Hình 3.18 Sự khác nhau MobileNetV2 và V1 52
Hình 3.20 Biến đổi tích chập tách biệt chiều sâu để giảm thiểu số lượng tham số của mô hình 53 Hình 3.21 Linear Bottlenecks 53 Hình 3.21 Linear Bottlenecks 54 Hình 3.21 Linear Bottlenecks 55
Hình 3.24 So sánh MobileNetv1 và MobileNetv2 khi kết hợp với SSDLite 55
Hình 3.25 So sánh MobileNetv1 và MobileNetv2 khi kết hợp với SSDLite 55
Hình 3.26 So sánh độ chính xác và số đơn vị tính toán của các mô hình phân loại thông dụng 56
Hình 3.26 So sánh độ chính xác và số đơn vị tính toán của các mô hình phân loại thông dụng 57
Hình 3.29 Công thức tính IoU 58
Hình 3.30 Đồ thị của hàm smooth L1 với trường hợp 𝛽 = 1 59
Hình 3.31 Đồ thị của hàm cross-entropy 60 Hình 3.32 68 điểm landmark 62
Hình 3.33 Tỷ lệ mắt nhắm/ mở 63
Hình 3.34 Bounding box thu được sau khi áp dụng thuật toán Non-Maximum Suppression 64
Hình 3.35 Tổng quan Raspberry 67 Hình 3.36 Camera Pi 68
Hình 3.37 Sơ đồ khối Camera Raspberry Pi 69
DANH SÁCH CÁC THUẬT NGỮ, CHỮ VIẾT TẮT THUẬT NGỮ: Thuật ngữ Diễn giải Inference Dự đoán Convolution layer Lớp tích chập Activation layer Lớp kích hoạt Fully connected layer Lớp kết nối đầy đủ Feature map Ánh xạ đặc trưng Receptive field Vùng tiếp nhận Loss function Hàm mất mát Learning rate Tốc độ học Confidence score Độ tin cậy Bounding box Khung chứa Landmark Điểm mốc Ground truth Nhãn gốc Default box Khung chứa mặc định Transfer learning Học truyền tải Feature extractor
Bộ trích xuất đặc trưng Fine-tuning Tinh chỉnh Regular convolution Tích chập thông thường
Depthwise separable convolution Tích chập tách biệt chiều sâu Depthwise convolution Tích chập chiều sâu Pointwise convolution Tích chập điểm Computational cost Chi phí tính toán Multi-task learning Học đa nhiệm Back propagation Lan truyền ngược Post-processing Xử lý hậu kỳ CHỮ VIẾT TẮT: Chữ viết tắt Tên đầy đủ Diễn giải Convolutional Neural CNN Network Mạng nơron tích chập ReLU Rectified Linear Unit
Đơn vị tuyến tính chỉnh lưu SSD
Single Shot Multibox Detector Bộ phát hiện nhiều box một lượt SGD Stochastic Gradient Descent Giảm gradient ngẫu nhiên
Tỉ số giữa phần giao nhau và hợp Intersection of Union IoU nhau của 2 box MRI Magnetic Resonance Imaging Chụp cộng hưởng từ FPN Feature Pyramid Network
Mạng kim tự tháp tính năng AUC Area Under the Curve
Diện tích dưới đường cong PR-curve Precision-Recall curve
Đường cong Precision-Recall AccTP Accumulate True Positive
Dương tính thật tích lũy AccFP Accumulate False Positive Dương tính giả tích lũy mAP Mean Average Precision
Trung bình các Average Precision NME Normalized Mean Error
Sai số trung bình chuẩn hóa NMS Non-Maximum Suppression Triệt phi cực đại RFB Receptive Field Block Khối trường tiếp nhận 9 LỜI CẢM ƠN
Đầu tiên chúng tôi xin chân thành cảm ơn các thầy cô Khoa Điện tử - Viễn thông
trường Đại Học Bách Khoa – Đại Học Đà Nẵng đã tận tình chỉ dạy qua bao năm để
chúng tôi có thể học tập và tích lũy kiến thức cho đến tận ngày hôm nay.
Để hoàn thành được dự án này, chúng tôi xin chân thành cảm ơn Cô Trần Thị Minh
Hạnh đã không ngại khó khăn vất vả hướng dẫn thêm nhiều kiến thức chuyên sâu
cũng như kiến thức thực tế trong suốt quá trình thực hiện đồ án này.
Do còn nhiều hạn chế về kiến thức chuyên môn cũng như kiến thức thực tế nên đề tài
của chúng tôi không tránh khỏi sự thiếu sót. Mong các quý thầy cô và bạn đọc đóng
góp ý để đề tài này được hoàn thiện hơn, tốt hơn.
Chúng tôi xin chân thành cảm ơn!
Đà Nẵng, ngày . . . . tháng . . . . năm 2022
Đại diện sinh viên thực hiện 10 CAM ĐOAN
Chúng tôi xin cam đoan đồ án “Phát hiện các nốt cảnh báo ung thư phổi” là công trình
nghiên cứu của chúng tôi. Những phần sử dụng tài liệu tham khảo trong đồ án đã
được nêu rõ trong phần tài liệu tham khảo. Các số liệu, kết quả trình bày trong đồ án
là hoàn toàn trung thực, nếu sai chúng tôi xin chịu hoàn toàn trách nhiệm và chịu mọi
kỷ luật của khoa và nhà trường.
Đại diện sinh viên thực hiện 11 MỤC LỤC LỜI CẢM ƠN 11 CAM ĐOAN 12 MỞ ĐẦU 14
Chương 1: TỔNG QUAN HỆ THỐNG: PHÁT HIỆN VÀ CẢNH BÁO TÀI XẾ MẤT TẬP TRUNG 15
1.1.Giới thiệu chương: 15 1.2.Đặt vấn đề: 15
1.3.Giới thiệu tổng quát 15 1.4.Mục tiêu 16
1.5.Phương pháp nghiên cứu: 17
1.6. Hướng tiếp cận đề tài: 17
1.7. Hướng triển khai với phần cứng: 18 1.8. Kết luận chương: 18
Chương 2: CƠ SỞ LÝ THUYẾT 18 2.1. Giới thiệu chương 18
2.2. Giới thiệu mạng nơ-ron tích chập (CNN) 18
2.3. Cấu trúc mạng nơ-ron tích chập 19 2.3.1 Lớp tích chập 20
2.3.2 Lớp kích hoạt phi tuyến 21 2.3.3 Lớp lấy mẫu 22
2.3.4. Lớp kết nối đầy đủ 22 2.3.5. Dropout 23 2.3.6. Softmax 23 2.3.7. Cross Entropy 24
2.3.8. Thuật toán tối ưu 24
2.3.9. Epoch - Batch size và Iterations 25
2.3.10. Kỹ thuật tăng cường dữ liệu 26
2.4 Giới thiệu mô hình SSD-Mobilenet 27
2.4.1 Phát hiện đối tượng: 27
2.5 Kết luận chương 2 31 12
Chương 3: XÂY DỰNG MÔ HÌNH CHO HỆ THỐNG CẢNH BÁO TÀI XẾ LÁI XE THIẾU AN TOÀN 32 3.1 Giới thiệu chương 3: 32
3.2 Xây dựng cơ sở dữ liệu: 32 3.2.1. Thu thập dữ liệu: 32 3.2.2 Gán nhãn dữ liệu: 32
3.2.3 Tăng cường dữ liệu: 33
3.3 Xây dựng mô hình: 33 3.3.1 Mô hình SSD 33 3.3.2 MobileNet(V1). 39 3.3.3. MobileNetV2: 42
3.3.4 So sánh với MobileNetV1 46 3.4. Huấn luyện mô hình. 48
3.4.1. Khởi tạo các default box. 48
3.4.2. So khớp default box với ground truth box và ground truth landmark: 48
3.5 Áp dụng transfer learning: 49
3.6 Áp dụng Dlib vào phát hiện mắt người để cảnh báo buồn ngủ. 49 3.6.1. Thư viện Dlib 49
3.6.2. Tìm hiểu về bộ phát hiện dấu mốc trên khuôn mặt của dlib. 49
3.7 Post-processing kết quả dự đoán 51 3.7.1 Xử lý dự đoán 51
3.7.2 Thuật toán Non-Maximum Suppression 51 3.8 Tiêu chí đánh giá 52 3.8.1 Mean Average Precision 52
3.9. Tìm hiểu Raspberry Pi4: 54 3.10. Tìm hiểu Camera Pi. 55
3.11 Kết luận chương. 56
Chương 4: THỰC NGHIỆM VÀ KẾT QUẢ 57
4.1 Chuẩn bị tập cơ sở dữ liệu 57
4.1.1 Thu thập dữ liệu thực tế 57 4.1.2 Gắn nhãn dữ liệu 58 13
4.1.3 Chia dữ liệu để train và test 59
4.2 Thiết lập các thông số mô hình huấn luyện và đánh giá với bộ dữ liệu ban đầu 59
4.3 Kết quả thực nghiệm với cơ sở dữ liệu ban đầu. 60
4.4 Tăng cường dữ liệu 62
4.5 Thực hiện với bộ dữ liệu sau khi tăng cường. 62
4.6 Kết quả thực nghiệm với cơ sở dữ liệu sau khi tăng cường. 63
4.7 So sánh chi tiết kết quả đánh giá mô hình trước và sau khi tăng cường dữ liệu 64
4.8 Chuyển sang mô hình ONNX 65 4.9
Triển khai mô hình trên Raspberry Pi4 65 4.10 Kết luận chương 4: 65 KẾT LUẬN 67 Kết quả đạt được: 67 Đánh giá chung: 67 Hướng phát triển: 67 Tài liệu tham khảo 68 14