Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
5,93 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU VÀ PHÁT TRIỂN CHƯƠNG TRÌNH NHẬN DIỆN XE Ơ TƠ VÀ NGƯỜI ĐI BỘ MÃ SỐ: SV2021-122 CHỦ NHIỆM ĐỀ TÀI: NGUYỄN QUANG TRỌNG SKC 0 Tp Hồ Chí Minh, tháng 6/2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU VÀ PHÁT TRIỂN CHƯƠNG TRÌNH NHẬN DIỆN XE Ô TÔ VÀ NGƯỜI ĐI BỘ SV2021-122 Thuộc nhóm ngành khoa học: Kỹ thuật SV thực hiện: Nguyễn Quang Trọng Nam, Nữ: Nam Dân tộc: Kinh Năm thứ: Lớp, khoa: 17151CL2A Ngành học: Công nghệ kỹ thuật điều khiển tự động hóa Người hướng dẫn : TS.Trần Vũ Hồng TP Hồ Chí Minh, 06/2021 MỤC LỤC BẢNG KÍ HIỆU SỬ DỤNG TRONG ĐỀ TÀI NGHIÊN CỨU CHƯƠNG : TỔNG QUAN ĐỀ TÀI NHẬN DIỆN XE Ô TÔ VÀ NGƯỜI ĐI BỘ 1.1 Đặt vấn đề 1.2 Tình hình nghiên cứu ngồi nước 1.3 Lý lựa chọn mơ hình thuật tốn 1.4 Tóm tắt q trình thực đề tài CHƯƠNG 2: CƠ SỞ LÝ THUYẾT MẠNG CNN VÀ THUẬT TOÁN YOLO 2.1 Deep Learning 2.2 Neural Network 2.3 Convolutional Neural Network 2.3.1 Tổng quát 2.3.2 Lớp tích chập (Convolutional Layer) 2.3.3 Lớp tổng hợp (Pooling layer) 2.3.4 Lớp kết nối đầy đủ (Fully Connected Layer) 2.3.5 Softmax 2.3.6 Batch Normalization 10 10 11 13 14 15 16 2.4 Thuật toán YOLO 2.4.1 Sơ lược thuật toán YOLO 2.4.2 Thuật toán YOLOv4-tiny 16 17 24 CHƯƠNG XÂY DỰNG MƠ HÌNH PHÁT HIỆN XE Ô TÔ VÀ NGƯỜI ĐI BỘ 29 3.1 Sơ đồ khối tổng quát 29 3.2 Dataset 30 3.3 Huấn luyện thuật tốn 3.3.1 Cài đặt thơng số huấn luyện 3.3.2 Google Colab 33 33 34 3.3.3 Huấn luyện liệu 34 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI NGHIÊN CỨU 39 4.1 Kết luận 4.1.1 Các thông số model sau kiểm tra tập liệu 4.1.2 Kiểm thử mơ hình video tập liệu 39 39 43 4.2 Hướng phát triển 44 BẢNG KÍ HIỆU SỬ DỤNG TRONG ĐỀ TÀI NGHIÊN CỨU Ý nghĩa Kí hiệu s Stride: số pixel dịch chuyển y lần trượt p Padding: số hàng số cột tăng Số filter sử dụng lớp Scaling factor hay scaling parameter layer β thêm lớp tích chập nc Ý nghĩa Kí hiệu Shifitng factor hay offset layer ε Smoothing factor để tránh việc chia làm vơ nghía, thường có tích chập giá trị nhỏ f*f Kích thước filter yi Đầu batch normalization H Chiều dài lớp tích chập bw Chiều rộng box W Chiều rộng lớp tích chập ci Xác suất xuất vật thể thứ i grid S2 Tổng số grid ảnh D Số chiều lớp tích chập pc Xác suất grid xét chứa vật thể i Mẫu thứ i bx Tọa độ x góc phía bên trái B Số box box by Tọa độ y góc phía bên box bh Chiều cao box µB Giá trị kì vọng thực nghiệm tính toán mini-batch B B Độ lệch chuẩn thực nghiệm tính tốn mini-batch B m Số lượng instance mini-batch B 𝑥̂𝑖 Giá trị đầu vào thứ i minibatch sau chuẩn hóa tâm khơng BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI Thông tin chung: - Tên đề tài: Nghiên cứu phát triển chương trình nhận diện xe ô tô người - Chủ nhiệm đề tài: Nguyễn Quang Trọng Mã số SV: 17151149 - Lớp: 17151CL2A Khoa: ĐÀO TẠO CLC - Thành viên đề tài: Stt Họ tên MSSV Lớp Khoa Nguyễn Quang Trọng 17151149 17151CL2A CLC Võ Thành Nhân 17145184 17151CL2A CLC - Người hướng dẫn: TS.Trần Vũ Hoàng Mục tiêu đề tài: Nghiên cứu, phát triển chương trình nhận dạng xe tơ người Tính sáng tạo: Hiện có nơi nghiên cứu phát triển Kết nghiên cứu: Mô hình nhận diện với độ xác cao tốc độ nhanh Đóng góp mặt giáo dục đào tạo, kinh tế - xã hội, an ninh, quốc phòng khả áp dụng đề tài: Đề tài đem lại hội học hỏi nghiên cứu với kiến thức ngồi ngành,đề tài góp phần hỗ trợ người lái xe an toàn hơn.Về phần áp dụng đề tài nhận diện đối tượng xe ô tô người nên khả áp dụng vào thực tế chưa cao Công bố khoa học SV từ kết nghiên cứu đề tài (ghi rõ tên tạp chí có) nhận xét, đánh giá sở áp dụng kết nghiên cứu (nếu có): Ngày 15 tháng 06 năm 2021 SV chịu trách nhiệm thực đề tài (kí, họ tên) CHƯƠNG : TỔNG QUAN ĐỀ TÀI NHẬN DIỆN XE Ơ TƠ VÀ NGƯỜI ĐI BỘ Chương trình bày tình hình nghiên cứu ngồi nước đề tài nhận diện xe ô tô người tổng quan tác vụ lĩnh vực thị giác máy tính Từ đưa lí chọn đề tài tóm tắt q trình thực 1.1 Đặt vấn đề Trong vài năm trở lại đây, Artificial Intelligence (trí tuệ nhân tạo) hay cụ thể Machine Learning ( Máy học) phát triển Ứng dụng AI đa dạng ảnh hưởng tích cực đến đời sống như: Ơ tơ tự lái, hệ thống dịch tự động, chatbot tự động trả lời,… Hiện nay, có nhiều nghiên cứu tốn nhận diện đối tượng, hệ thống từ đơn giản đến phức tạp, sử dụng nhiều thuật toán khác Do đó, dễ dàng việc thực đánh giá thuật tốn 1.2 Tình hình nghiên cứu ngồi nước Trong lĩnh vực thị giác máy tính có nhiều nhiệm vụ,ví dụ : • Image classification (phân loại hình ảnh) : Dự đốn nhãn đối tượng hình ảnh.Trong input ảnh với đối tượng output nhãn lớp • Object localization (định vị đối tượng) : Xác định vị trí diện đối tượng ảnh cho biết vị trí chúng bounding box Trong input hình ảnh có nhiều đối tượng output hay nhiều bounding box xác định tọa độ tâm, chiều rộng chiều cao • Object detection (phát đối tượng) : Xác định vị trí diện đối tượng bounding box nhãn đối tượng nằm hình ảnh Trong input hình ảnh có nhiều đối tượng output nhiều bounding box nhãn cho bounding box Ngồi cịn nhiều nhiệm vụ khác quan trọng thị giác máy tính phân đoạn đối tượng (object segmentation), đối tượng nhận dạng cách làm bật pixel cụ thể đối tượng thay bounding box Hình 1.1.Sơ đồ tổng hợp tác vụ thị giác máy tính Đối với tốn phát đối tượng, tức nhận diện đối tượng nằm đâu ảnh phân loại đối tượng vào nhãn 1.3 Lý lựa chọn mô hình thuật tốn Ứng dụng cơng nghệ mạng noron trí tuệ nhân tạo để nhận dạng phân loại đối tương Có phương pháp dị đối tượng mà ta thường gặp hỗ trợ thị giác máy tính : • R-CNN biến thể chúng, bao gồm R-CNN, Fast R-CNN FasterRCNN • Phát bắn lần (SSD) • YOLO R-CNN detectors tìm đối tượng dựa học tập sâu ví dụ detectors hai giai đoạn R-CNN đầu tiên, phân cấp tính phong phú để phát đối tượng xác phân đoạn ngữ nghĩa, (2013) Girshick et al đề xuất trình phát đối tượng yêu cầu thuật tốn Tìm kiếm chọn lọc (hoặc tương đương) để đề xuất hộp giới hạn ứng viên chứa đối tượng Các vùng sau chuyển vào CNN để phân loại, cuối dẫn đến detectors tìm đối tượng dựa học tập sâu Vấn đề với phương pháp R-CNN tiêu chuẩn chậm khơng phải máy phát đối tượng đầu cuối hoàn chỉnh Girshick et al xuất báo thứ hai vào năm 2015, có tựa đề Fast R- CNN Thuật toán R-CNN nhanh tạo cải tiến đáng kể cho R-CNN ban đầu, cụ thể tăng độ xác giảm thời gian cần thiết để thực chuyển tiếp; nhiên, mơ hình dựa vào thuật tốn đề xuất khu vực bên ngồi.Mãi báo năm 2015 Girshick cộng sự, Faster R-CNN: Hướng tới phát đối tượng theo thời gian thực với Mạng đề xuất khu vực, R-CNN trở thành trình phát đối tượng học sâu thực từ đầu đến cuối loại bỏ u cầu Tìm kiếm có chọn lọc thay vào dựa vào Mạng đề xuất khu vực (RPN) (1) tích chập hồn tồn (2) dự đoán hộp giới hạn đối tượng điểm số đối tượng xác định (nghĩa điểm số định lượng khả khu vực hình ảnh chứa hình ảnh) Đầu RPN sau chuyển vào thành phần R-CNN để phân loại ghi nhãn cuối Mặc dù R-CNN có xu hướng xác, vấn đề lớn với gia đình mạng R-CNN tốc độ chúng - chúng chậm, đạt FPS GPU Để giúp tăng tốc độ máy dò tìm đối tượng dựa học tập sâu, detectors lần bắn (SSD) YOLO sử dụng chiến lược phát giai đoạn YOLO vừa đảm bảo tốc độ xử lý vừa đảm bảo độ xác vừa đủ để xử dụng với ứng dụng thực tế Hình 1.2 So sánh tốc độ độ xác số mơ hình phát đối tượng Trong đề tài này, sử dụng phiên rút gọn thuật toán YOLOv4 YOLOv4tiny để nhận diện phương tiện xe ô tô người lý YOLOv4-tiny rút gọn thừa hưởng độ xác cao thuật tốn YOLOv4 tiếng đáp ứng triển khai phần cứng nhúng đề tài hướng đến ứng dụng hỗ trợ người lại xe tơ 1.4 Tóm tắt q trình thực đề tài Việc đề tài chia thành nhiều giai đoạn, giai đoạn thực cơng việc trình bày phần mục lục Chi tiết cho giai đoạn sau: • Tìm hiểu Deep Learning ứng dụng • Nghiên cứu xây dựng mơ hình CNN, YOLO • Tham khảo cách sử dụng thư viện môi trường ảo Lựa chọn thư viện phù hợp • Thu thập tiền xử lý liệu Phân chia dataset thành tập training, tập validation tập test • Xây dựng mơ hình phân loại mơ hình nhận diện xe 3.3 Huấn luyện thuật toán 3.3.1 Cài đặt thơng số huấn luyện Có nhiều tham số sử dụng thuật toán YOLOv4-tiny nhiên đề cập đến số tham số quan trọng ảnh hưởng lớn đến trình huấn luyện, tham số cịn lại giữ mặc định theo cấu hình tác giả Batch size (kích thước lơ) subdivision (phân khu): Chọn batch size với kích thước 64 Các trọng số cập nhật với gradient trung bình batch.batch size cho biết kích thước lơ sử dụng trình huấn luyện, việc dung tất mẫu liệu để cập nhật trọng số khơng thực tế Vì vậy, tập nhỏ tập liệu sử dụng lần lặp kích thước tập hợp batch size Khi batch size đặt 64 có nghĩa 64 ảnh sử dụng lần cập nhật trọng số.Đối với subdivision thông số tùy chỉnh để tránh trường hợp RAM khơng có đủ nhớ để sử dụng với batch size 64, darknet cho phép bạn định biến mà ta chia nhỏ batch size thành mini-batch, kích thước mini-batch = batch size / subdivision [net] # Testing #batch=1 #subdivisions=4 # Training batch=64 subdivisions=16 width=416 height=416 channels=3 momentum=0.9 decay=0.0005 Iterations: Số lần lặp nhóm chọn 8000 lần lặp tương ứng với 8000 lần cập nhập tham số Tuy nhiên hàm Loss trở nên bão hịa, q trình lặp dừng lại learning_rate=0.00261 burn_in=1000 max_batches = 8000 policy=steps steps=6400,7200 scales=.1,.1 Learning rate, decay: Tốc độ học khởi tạo 0.00261 với decay 0.0005 Tốc độ học thông số kiểm sốt mức độ tích cực mà nên học dựa lô liệu Thông thường, số khoảng từ 0,01 đến 0,0001 Khi bắt đầu trình đào tạo, ta bắt đầu với thơng tin khơng tỷ lệ học tập cần phải cao Nhưng mạng 33 noron nhìn thấy nhiều liệu, trọng số cần thay đổi mạnh mẽ Nói cách khác, tốc độ học tập cần phải giảm theo thời gian Trong tệp cấu hình, việc giảm tốc độ học tập thực cách xác định sách giảm tốc độ học tập YOLO bước Trong ví dụ trên, tốc độ học tập 0.00261và không đổi 6400 lần lặp, sau nhân với tỷ lệ để có tỷ lệ học tập YOLO định nhiều bước quy mô.Theo kinh nghiệm thấy tốc độ đào tạo có xu hướng tăng có tỷ lệ học tập thấp khoảng thời gian ngắn từ đầu Điều kiểm soát tham số burn_in Đôi giai đoạn burn-in gọi giai đoạn khởi động Momentum: Momentum đặt với giá trị 0.9 Input size: Kích thước ảnh ngõ vào resize lại thành 416 x 416 x 3.3.2 Google Colab Google Colab hay Colaboratory sản phẩm Google Research cho phép chạy dòng code python qua trình duyệt nhằm phục vụ nhu cầu giáo dục nghiên cứu Google Colab không yêu cầu cài đặt cấu hình cho máy tính mà tài nguyên CPUs, GPUs, TPUs cung cấp hoàn toàn miễn phí Tuy nhiên tính miễn phí, Google Colab giới hạn thời gian sử dụng vòng 12 tiếng Trên mơi trường Google Colab có cài đặt sẵn số thư viện dành cho Deep Learning phổ biến PyTorch, TensorFlow, Keras,OpenCV Ngoài ra, ưu điểm Google Colab kết nối với Google Drive để đọc lưu liệu nên tiện dụng Chính nhiều ưu điểm vậy, đề tài đồ án mình, nhóm chúng tơi sử dụng Google Colab để huấn luyện cho tập liệu 3.3.3 Huấn luyện liệu Như nói trên, sử dụng Google Colab để huấn luyện cho mơ hình Đầu tiên, cần truy cập vào Google Colab theo đường dẫn url sau: "https://colab.research.google.com" tạo new notebook để chuẩn bị huấn luyện liệu 34 Hình 3.5 : Giao diện Google Colab Để sử dụng tối đa nguồn tài nguyên Google Colab, thực thay đổi runtime type từ CPU sang GPU Hình 3.6: Thay đổi runtime type Google Colab để sử dụng GPU Tiếp theo để sử dụng tập tin tải lên từ Google Drive ta thực liên kết Google Colab với Google Drive dịng lệnh sau: 35 Hình 3.7: Liên kết Google Drive với Google Colab Lý liên kết Google Drive với Google Colab sau huấn luyện xong ngắt chừng liệu Google Colab biến việc liên kết giúp liệu không bị trường hợp Tải mã nguồn darknet YOLO drive để tạo thư mục backup giúp lưu trọng số sau lần lặp giúp tránh bị kill sau 12 Nếu sau 12 bị Google Colab kill toàn trình huấn luyện, cần lấy lại file trọng số lưu sẵn folder backup để tiếp tục huấn luyện Hình 3.8: Tải mã nguồn darknet cho YOLO từ github tác giả Sau tải mã nguồn darknet, Google Drive xuất thư mục darknet Trong thư mục data darknet, ta thực xóa tồn data cũ tác giả tải data xe ô tô người với file txt gán nhãn cho hình vào thư mục Trong thư mục darknet, ta quan tâm thêm file Với "Make" ta thay đổi GPU = CUDNN=1 để sử dụng GPU từ Google Colab Với file "yolov4-tiny-custom.cfg" thư mục cfg ta thay đổi tham số số lớp đề cập phần Tạo file data chứa liệu tập tin để huấn luyện gồm: • file train (train.txt) validation (valid.txt) chia ngẫu nhiên tập liệu vào file • file yolo.names chứa tên nhãn • số classes cần huấn luyện 36 • file backup Hình 3.9 File yolo.data (bên trên) yolo.names (bên dưới) Tập liệu chia làm phần để thực hiên huấn luyện đánh giá model, tập liệu chia thành 85% cho tập training, 10% cho tập validation 5% cho tập test Hình 3.10 Chia liệu theo tỉ lệ 85/10/5 Biên dịch mã nguồn darknet, tải pretrain weight tác giả tiến hành huấn luyện Hình 3.11 Biên dịch mã nguồn Hình 3.12 Tải pretrain weight 37 Hình 3.13 Bắt đầu huấn luyện model Hình 3.14 Đánh giá hiệu model tập test Hình 3.15 Kiểm thử model mẫu tập liệu test 38 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI NGHIÊN CỨU Chương đưa nhận xét mơ hình huấn luyện độ xác đưa kết dự đoán mơ hình YOLOv4-tiny 4.1 Kết luận 4.1.1 Các thơng số model sau kiểm tra tập liệu Sau huấn luyện 8000 vòng lặp kiểm tra tập liệu với 7481 ảnh có chứa ô tô người với thuật toán YOLOv4-tiny cho kết sau: Đối với tập kiểm đinh: • Độ xác trung bình nhãn xe ô tô 87,66% nhãn người 57,32% • Các thơng số True Positive (TP), False Positive (FP), Precision, Recall, F1-score, mAP thể hình 5.1 Hình 5.1 Kiểm thử hiệu model tập kiểm định Đối với tập kiểm tra: 39 40 Hình 5.2 Một số ví dụ kiểm thử mơ hình tập kiểm tra Các thông số Loss Accuracy ( hàm mát độ xác) train model: 41 Hình 5.3 Hàm mát độ xác model huấn luyện 42 4.1.2 Kiểm thử mơ hình video ngồi tập liệu 43 Hình 5.4 Kiểm tra mơ hình với video thực tế 4.2 Hướng phát triển Mặc dù thuật toán phân loại phát xe ô tô người chúng tơi đạt độ xác tương đối cao, việc áp dụng vào hệ thống thực tế chưa thực tốt Trong giới hạn mặt kiến thức thời gian thực hiện, tồn nhiều khuyết điểm cho đề tài Để phát triển đề tài luận văn này, chúng tơi có đề xuất sau: - Sử dụng camera chuyên dụng để thu thập thêm liệu, hỗ trợ việc huấn luyện mơ hình tốt - Sử dụng máy có cấu hình GPU tốt cho phép tăng tốc độ huấn luyện tăng số lớp nhận diện - Xây dung mơ hình nhận diện thêm đường, đèn bao hiệu giao thông biển báo giao thơng,… - Bên cạnh phần mềm, xây dựng phần cứng để gắn vào phương tiện ô tô, xe gắn máy 44 - Xây dựng liệu lớn với thời điểm liệu lấy vào ban đêm ánh sang yếu Trên định hướng phát triển cho để tài nhận diện xe ô tô người đề tài 45 TÀI LIỆU THAM KHẢO [1] Vũ Hữu Tiệp,(2016), “Machine Learning bản”, Nhà xuất khoa học kỹ thuật [2] ZICONG JIANG, LIQUAN ZHAO, SHUAIYANG LI, YANFEI JIA, Real-time object detection method for embedded devices [3] Thor Pham Blog, (2018), "Tìm hiểu thư viện Keras Deep Learning", thorphamblog.github.io ... TÀI NHẬN DIỆN XE Ô TÔ VÀ NGƯỜI ĐI BỘ Chương trình bày tình hình nghiên cứu ngồi nước đề tài nhận diện xe tô người tổng quan tác vụ lĩnh vực thị giác máy tính Từ đưa lí chọn đề tài tóm tắt trình. ..BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU VÀ PHÁT TRIỂN CHƯƠNG TRÌNH NHẬN DIỆN XE Ơ TƠ VÀ NGƯỜI ĐI BỘ SV2021-122... 0.8 cho lớp 28 CHƯƠNG XÂY DỰNG MƠ HÌNH PHÁT HIỆN XE Ơ TƠ VÀ NGƯỜI ĐI BỘ Trong chương này, sử dụng thuật toán YOLOv4-tiny để thực việc phát xe người video Tập liệu ảnh xe ô tô người đường phố