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

Nghiên cứu về mạng nơ ron tích chập và xây dựng ứng dụng nhận diện biển báo giao thông

103 287 4

Đ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

Định dạng
Số trang 103
Dung lượng 17,51 MB

Nội dung

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THIÊN SƠN NGHIÊN CỨU VỀ MẠNG NƠ-RON TÍCH CHẬP VÀ XÂY DỰNG ỨNG DỤNG NHẬN DIỆN BIỂN BÁO GIAO THƠNG Ngành/Chun nghành: Cơng nghệ Thơng tin/Cơng nghệ phần mềm ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THIÊN SƠN NGHIÊN CỨU VỀ MẠNG NƠ-RON TÍCH CHẬP VÀ XÂY DỰNG ỨNG DỤNG NHẬN DIỆN BIỂN BÁO GIAO THÔNG Ngành/Chuyên nghành: Công nghệ Thông tin/Công nghệ phần mềm Giảng viên hướng dẫn: TS Nguyễn Đức Tuấn ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc Hà Nội, ngày tháng năm 2020 NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP Họ tên: Nguyễn Thiên Sơn Giới tính: Nam Ngày sinh: 09/12/1998 Nơi sinh: Hà Nội Chuyên ngành: Cơng nghệ phần mềm Mã SV: 16A10010152 Lớp hành chính: 1610A06 TÊN ĐỀ TÀI Nghiên cứu mạng nơ-ron tích chập xây dựng ứng dụng nhận diện biển báo giao thông NHIỆM VỤ VÀ NỘI DUNG  Thu thập liệu biển báo giao thông đường Việt Nam  Nghiên cứu, tìm hiểu mạng nơ-ron tích chập để xây dựng model nhận diện biển báo giao thông  Xây dựng model nhận diện biển báo chạy thiết bị di động  Xây dựng ứng dụng phục vụ việc nhận diện biển báo giao thông NGÀY GIAO NHỆM VỤ: 24/08/2020 NGÀY HOÀN THÀNH NHIỆM VỤ: 21/11/2020 GIẢNG VIÊN HƯỚNG DẪN: TS Nguyễn Đức Tuấn Nội dung đề cương Đồ án Hội đồng chuyên ngành thông qua Ngày tháng năm 20 GIẢNG VIÊN HƯỚNG DẪN KHOA CÔNG NGHỆ THÔNG TIN MỤC LỤC CHƯƠNG GIỚI THIỆU VỀ ĐỀ TÀI 1.1 Lý chọn đề tài 1.2 Phân loại tốn 1.3 Mục đích đề tài CHƯƠNG 2.1 MẠNG NƠ-RON NHÂN TẠO VÀ MẠNG NƠ-RON TÍCH CHẬP Mạng nơ-ron nhân tạo 2.1.1 Giới thiệu mạng nơ-ron 2.1.2 Các thành phần mạng nơ-ron nhân tạo .5 2.1.3 Quá trình huấn luyện mạng 2.2 Mạng nơ-ron tích chập 2.2.1 Phép tính tích chập 10 2.2.2 Chi tiết mạng nơ-ron tích chập 15 2.2.3 Các loại toán phổ biến lĩnh vực thị giác máy tính 21 CHƯƠNG DETECTOR NHẬN DIỆN VẬT THỂ VỚI SINGLE SHOT MULTIBOX 24 3.1 Giới thiệu SSD - Single Shot Detector 3.2 Hướng tiếp cận 3.3 Kiến trúc SSD 26 24 25 3.3.1 Convolutional predictors for detection 26 3.3.2 Multi-scale feature maps for detection 27 3.3.3 Default boxes 27 3.4 Huấn luyện SSD 27 3.4.1 Tìm box phù hợp .27 3.4.2 Hàm mát 28 3.4.3 Chọn kích thước tỉ lệ cho default box 30 CHƯƠNG V2 4.1 SINGLE SHOT MULTIBOX DETECTOR VỚI MẠNG MOBILENET 32 Tích chập chiều thơng thường tích chập tách biệt chiều sâu 32 4.1.1 Tích chập chiều thơng thường .32 4.1.2 Tích chập tách biệt chiều sâu (Depthwise Separable Convolution) 33 4.1.3 Sự khác loại tích chập 35 4.2 Khối phần dư (Residual Block) 36 4.2.1 Vanishing Gradient 36 4.2.2 Khối dư mạng Resnet 38 4.3 MobileNetV2 39 4.3.1 Tổng quan mạng MobileNetV2 39 4.3.2 Kiến trúc mạng 41 4.3.3 Nhận diện vật thể với Single Shot Multibox Detector mạng MobileNetV2 .42 CHƯƠNG BIỂN BÁO GIAO THÔNG TẠI VIỆT NAM 43 5.1 Biển báo giao thơng Việt Nam 43 5.2 Các nhóm biển báo giao thông đường Việt Nam 43 5.2.1 Nhóm biển báo cấm 43 5.2.2 Nhóm biển báo nguy hiểm cảnh báo 44 5.2.3 Nhóm biển hiệu lệnh 44 5.2.4 Nhóm biển báo dẫn 44 5.2.5 Nhóm biển phụ .45 CHƯƠNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 46 6.1 Phân tích hệ thống chức 46 6.1.1 Phân tích hệ thống chức 46 6.1.2 Phân tích liệu .58 6.2 Thiết kế hệ thống 59 CHƯƠNG 7.1 TRIỂN KHAI VÀ KẾT LUẬN 63 Công nghệ sử dụng 63 7.1.1 Model nhận diện báo giao thông 63 7.1.2 Server Backend 64 7.1.3 Ứng dụng Mobile 64 7.1.4 Các công cụ sử dụng .64 7.2 Xây dựng model nhận diện biển báo 65 7.2.1 Thu thập liệu 65 7.2.2 Xây dựng huấn luyện model nhận diện biển báo giao thông .70 7.2.3 Kiểm thử model 76 7.3 Xây dựng Server xử lý 80 7.4 Xây dựng ứng dụng 81 7.4.1 Giải pháp thực 81 7.4.2 Kết 83 7.5 KẾT LUẬN 87 TÀI LIỆU THAM KHẢO .88 DANH MỤC BẢNG BIỂU Bảng 4.1 Kiến trúc mạng MobileNetV2 41 Bảng 6.1 Gom nhóm chức 47 Bảng 6.2 Đặc tả bảng liệu BienBao 58 Bảng 7.1 Số lượng biển báo gán nhãn tập liệu 66 Bảng 7.2 Số lượng biển báo sau chuyển đổi để đưa vào huấn luyện 67 Bảng 7.3 So sánh độ xác mạng theo độ đo Average Precision IOU = 0.5 tập liệu huấn luyện 73 Bảng 7.4 So sánh độ xác mạng theo độ đo Average Precision IOU = 0.5 tập liệu kiểm thử 74 DANH MỤC HÌNH VẼ Hình 2.1 Kiến trúc mạng nơ-ron nhân tạo Hình 2.2 Một nơ-ron mạng Hình 2.3 Sự khác biệt cấu trúc mạng nơ-ron thơng thường 10 Hình 2.4 Biểu diễn phép tính tích chập ma trận kernel 11 Hình 2.5 Kết phép tính tích chập ma trận 12 Hình 2.6 Padding phép tính tích chập 12 Hình 2.7 stride=1, padding=1 13 Hình 2.8 padding=1, stride=2 13 Hình 2.9 Các kernel khác áp dụng lên ảnh [5] 14 Hình 2.10 Minh họa phép tích chập ảnh màu RGB 15 Hình 2.11 Phép tính tích chập channel R,G,B 16 Hình 2.12 Kết ảnh số sau qua convolutional layer 17 Hình 2.13 Kích thước ảnh số sau qua Convolutional layer 18 Hình 2.14 Max pooling layer với size=(3,3), stride=1, padding=0 19 Hình 2.15 Ví dụ pooling layer 19 Hình 2.16 Fully Connected Layer 20 Hình 2.17 Biểu diễn trực quan mơ hình mạng nơ-ron tích chập 20 Hình 2.18 Phân loại ảnh định vị vật thể 21 Hình 2.19 Các tốn phổ biến thị giác máy tính 22 Hình 3.1 Hướng tiếp cận SSD 25 Hình 3.2 Kết nhận diện vật thể với SSD 25 Hình 3.3 Kiến trúc mạng SSD dựa VGG16 [8] 26 Hình 3.4 Intersect over Union 28 Hình 3.5 Hình ảnh chạy thử nghiệm SSD 31 Hình 4.1 Minh họa phép tích chập chiều thơng thường 32 Hình 4.2 Minh họa phép tích chập chiều sâu34 Hình 4.3 Minh họa phép tích chập điểm 35 Hình 4.4 Training error test error trình huấn luyện mạng 37 Hình 4.5 Hiện tượng Vanishing Gradient 37 Hình 4.6 Khối phần dư 38 Hình 4.7 Sự khác biệt khối thơng thường khối phần dư mạng 38 Hình 4.8 Khối dư mạng [7] 39 Hình 4.9 Kiến trúc khối dư ngược mạng MobileNetV2 Hình 4.10 Khối phần dư khối dư ngược 40 Hình 4.11 Các “lớp ẩn” khối dư ngược/bottleneck 42 Hình 4.12 Kiến trúc mạng SSD với MobileNetV2 42 Hình 5.1 Nhóm biển báo cấm 43 40 Hình 5.2 Nhóm biển cảnh báo nguy hiểm 44 Hình 5.3 Nhóm biển hiệu lệnh 44 Hình 5.4 Nhóm biển báo dẫn 45 Hình 5.5 Nhóm biển báo phụ 45 Hình 6.1 Sơ đồ phân rã chức 49 Hình 6.2 DFD mức khung cảnh 52 Hình 6.3 DFD mức đỉnh 53 Hình 6.4 DFD mức đỉnh tiến trình “Tra cứu thơng tin biển báo” 54 Hình 6.5 DFD mức đỉnh tiến trình “Nhận diện biển báo theo thời gian thực” 54 Hình 6.6 DFD mức đỉnh tiến trình “Quản trị model nhận diện biển báo” 55 Hình 6.7 DFD tiến trình “Tiền huấn luyện” 56 Hình 6.8 DFD tiến trình “Huấn luyện model” 56 Hình 6.9 DFD tiến trình “Hậu huấn luyện” 57 Hình 6.10 Giao diện Menu 59 Hình 6.11 Giao diện hình cài đặt 60 Hình 6.12 Giao diện chức Tra cứu thơng tin biển báo 61 Hình 6.13 Giao diện camera hình chức nhận diện biển báo theo thời gian thực 62 Hình 7.1 Kiến trúc ứng dụng 63 Hình 7.2 Cơng cụ LabelImg dùng để gán nhãn liệu 65 Hình 7.3 Hình ảnh biển báo chụp vào buổi đêm 68 Hình 7.4 Hình ảnh chụp vào ban ngày, trời nắng 69 Hình 7.5 Hình ảnh chụp vào ban ngày, trời mưa 69 Hình 7.6 Kết hàm loss tổng sau huấn luyện 71 Hình 7.7 Kết hàm Regression Loss – Hồi quy vị trí khung chứa biển báo 71 Hình 7.8 Kết hàm Confidence Loss – Hàm mát phân loại biển báo 72 Hình 7.9 Tùy chọn chức 76 Hình 7.10 Kết nhận diện biển báo hình ảnh 77 Hình 7.11 Kết nhận diện biển báo theo thời gian thực Hình 7.12 VGG16-SSD Google Colab 79 Hình 7.13 VGG16-SSD máy tính cá nhân 79 Hình 7.14 MobileNetV2 SSD Lite Google Colab 79 Hình 7.15 MobileNetV2 SSD Lite máy tính cá nhân 79 Hình 7.16 So sánh giao thức HTTP WebSocket 80 78 Hình 7.17 Giao diện Menu ứng dụng 83 Hình 7.18 Giao diện cài đặt ứng dụng 84 Hình 7.19 Giao diện chức “tra cứu thơng tin biển báo hình ảnh” 85 Hình 7.20 Giao diện chức “Nhận diện biển báo theo thời gian thực” 86 7.2.3 Kiểm thử model Em có xây dựng ứng dụng để kiểm thử model Ứng dụng gồm chức giống ứng dụng đầu đề tài Ngoài ra, ứng dụng có hiển thị thêm chi tiết chạy model: xác suất, vị trí box,…, để tiện cho q trình đánh giá độ xác model Hình 7.63 Tùy chọn chức Hình 7.64 Kết nhận diện biển báo hình ảnh Các dịng text từ trái qua phải là: tên biển báo, xác suất, vị trí biển báo: xmin, ymin, xmax, ymax Giống với kết phần 7.2 Có thể thấy việc nhận diện biển báo sử dụng mạng VGG16-SSD có độ xác cao so với MobileNetV2 Xác suất xác biển báo mạng VGG16-SSD 100%, mạng MobileNetV2 biển đạt xác suất 100%, biển lại 47% Hình 7.65 Kết nhận diện biển báo theo thời gian thực Hình bên trái giao diện nhận diện model điện thoại, bên phải nhận diện qua server Bằng việc sử dụng mạng MobileNetV2 thiết bị di động, ứng dụng nhận diện ổn định khoảng khung hình/ giây Cịn sử dụng server để nhận diện, ứng dụng đạt độ xác cao hơn, tốc độ khung hình tùy thuộc vào sức mạnh server tốc độ mạng Kiểm tra tốc độ model Hình 7.66 VGG16-SSD Google Colab Hình 7.67 VGG16-SSD máy tính cá nhân Hình 7.68 MobileNetV2 SSD Lite Google Colab Hình 7.69 MobileNetV2 SSD Lite máy tính cá nhân Về phần cầu hình server máy cá nhân Server Google Colab sử dụng GPU Nvidia Tesla T4 để tính tốn, máy tính cá nhân sử dụng CPU Intel Core i5 5200u để tính tốn Nhìn vào hình ảnh so sánh, thấy tốc độ xử lý server với GPU Nvida Tesla T4 hoàn tồn vượt trội so với máy tính cá nhân Do đó, việc ứng dụng client đẩy hình ảnh lên server, server xử lý trả kết kiến trúc ứng dụng trình bày mục 7.1 có tính khả thi cao 7.3 Xây dựng Server xử lý Server API phục vụ chức “Tra cứu thông tin biển báo qua hình ảnh” Server API nhận liệu hình ảnh từ client, sau chuyển hình ảnh thành dạng tensor đưa vào model, sau nhận kết gốm thông tin: tên biển báo, xác suất, vị trí biển báo trả cho client Server Websocket phục vụ chức “Nhận diện biển báo theo thời gian thực” Sở dĩ chức dùng giao thức websocket liệu hình ảnh client liên tiếp gửi lên server, websocket giao thức giúp truyền liệu hai chiều server-client qua kết nối TCP nhất, từ giúp giảm lưu lượng mạng truyền client server liệu gửi không cần phải tạo HTTP Request Do đó, giao thức websocket phù hợp với chức Hình 7.70 So sánh giao thức HTTP WebSocket 7.4 Xây dựng ứng dụng 7.4.1 Giải pháp thực Ứng dụng hoạt động theo mơ hình client-server, liệu hình ảnh kết trả từ server truyền môi trường Internet Dưới giải pháp chức ứng dụng mobile  Chức “Tra cứu thơng tin biển báo qua hình ảnh” o Bắt đầu o Bước 1: Dữ liệu hình ảnh trước gửi resize lại xuống kích thước 300×300 (kích thước đầu vào model) Sau gửi hình ảnh đến server o Bước 2: Server nhận hình ảnh, chuyển hình ảnh sang dạng tensor, đưa tensor vào model trả kết cho ứng dụng mobile o Bước 3: Ứng dụng mobile sau nhận kết thực việc vẽ box bao quanh vùng chứa biển báo hiển thị List View chứa danh sách biển báo có hình o Kết thúc  Chức “Nhận diện biển báo theo thời gian thực” o Bắt đầu o Bước 1: Tạo kết nối websocket đến server o Bước 2: Tạo luồng cho việc đọc hình ảnh từ camera o Bước 3: Đọc hình ảnh từ camera, resize kích thước 300×300 gửi hình ảnh đến server o Bước 4: Server nhận hình ảnh, chuyển hình ảnh sang dạng tensor, đưa tensor vào model trả kết cho ứng dụng mobile o Bước 5: Ứng dụng mobile sau nhận kết thực việc vẽ box bao quanh vùng chứa biển báo, hiển thị List View chứa danh sách biển báo có hình đọc tên biển báo lên o Bước 6: Quay lại bước khơng có u cầu kết thúc từ người dùng o Kết thúc  Đối với chế độ nhận diện trực tiếp thiết bị di động, hoạt động tương tự Hình ảnh sau resize kích thước 300×300 thay gửi lên server chuyển sang dạng tensor đưa vào model nhận diện biển báo thiết bị di động Khi việc tính tốn, nhận diện biển báo thực trực tiếp thiết bị di động 7.4.2 Kết Hình 7.71 Giao diện Menu ứng dụng Giao diện Menu ứng dụng Tại đây, truy cập chức là: “Tra cứu thơng tin biển báo hình ảnh” “Nhận diện biển báo theo thời gian thực” Ngoài ra, truy cập vào hình cài đặt ứng dụng Hình 7.72 Giao diện cài đặt ứng dụng Màn hình cài đặt ứng dụng Tại đây, cài đặt lại giá trị sau: Server xử lý, phương thức nhận diện “chế độ nhà phát triển” Hình 7.73 Giao diện chức “tra cứu thơng tin biển báo hình ảnh” Tại hình chức này, chọn ảnh từ thư viện chụp ảnh từ camera, sau ứng dụng tự động nhận diện biển báo xuất hình ảnh hiển thị Hình 7.74 Giao diện chức “Nhận diện biển báo theo thời gian thực” Chỉ cần mở ứng dụng lên, hình ảnh từ camera tự động đưa vào model nhận diện, sau ứng dụng đọc tên biển báo xuất hình hiển thị kết lên hình 7.5 KẾT LUẬN Sau thời gian thực đề tài “Nghiên cứu mạng nơ-ron tích chập xây dựng ứng dụng nhận diện biển báo giao thông” hướng dẫn gợi ý thầy Nguyễn Đức Tuấn Em hoàn thành đồ án kết đề tài đáp ứng số mục tiêu đề ra: Kết đạt  Đã tìm hiểu mạng nơ-ron tích chập xây dựng model SSD dựa mạng sở VGG16 MobileNetV2 để nhận diện biển báo giao thơng  Model SSD MobileNetV2 chạy trực tiếp thiết bị di động  Đã xây dựng ứng dụng nhận diện biển báo giao thông mobile với đầy đủ chức đề Những điểm hạn chế  Dữ liệu thu thập cịn ít, chưa đầy đủ loại biển báo có Việt Nam  Khả nhận diện model cịn phụ thuộc vào góc chụp biển báo, kích thước biển báo khung hình  Độ xác model chưa cao Hướng phát triển  Tiếp tục thu thập thêm liệu, huấn luyện tiếp model  Thực việc tinh chỉnh kiến trúc mạng để model nhận diện tốt sử dụng mơ hình mạng khác  Phát triển sản phẩm thành module phần cứng, có khả tương thích với thiết bị camera hành trình  Nghiên cứu theo hướng tích hợp vào hệ thống tự hành như: xe tự lái TÀI LIỆU THAM KHẢO CHƯƠNG [1] Lý thuyết mạng Nơron, "kdientu.duytan.edu.vn," [Online] Available: http://kdientu.duytan.edu.vn/media/50176/ly-thuyet-mang-neural.pdf [2] S.Jadon, "Medium.com," 16 2018 [Online] Available: https://medium.com/@shrutijadon10104776/survey-on-activationfunctions-for-deep-learning-9689331ba092 [3] V H Tiep, "Machine Learning bản," 27 12 2016 [Online] Available: https://machinelearningcoban.com/2016/12/27/categories/ [4] nttuan8, "nttuan8.com," 30 2019 [Online] Available: https://nttuan8.com/bai-6-convolutional-neural-network/ [5] "Wikipedia," [Online] Available: https://en.wikipedia.org/wiki/Kernel_(image_processing) [6] P X Trí, N V Khoa, "AI Club Tutorials," 28 04 2020 [Online] Available: http://tutorials.mmlab.uit.edu.vn/index.php/2020/04/28/phanbiet-bai-toan-trong-cv/ [7] K He, X Zhang, S Ren, J Sun, "Arxiv," 10 12 2015 [Online] Available: https://arxiv.org/pdf/1512.03385.pdf [8] W Liu, D.Anguelov, D.Ehan, C.Y.Fu, "reasearchGate," 10 2016 [Online] Available: https://www.researchgate.net/publication/308278279_SSD_Single_Shot _MultiBox_Detector [9] P Trong, "nerophung.github.io," 15 06 2019 [Online] Available: https://nerophung.github.io/2019/06/15/ssd-single-shot-detector [10] M Sandler, A Howard, M Zhu, A Zhmoginov, L.C Chen, "Arxiv.org," 13 2018 [Online] Available: https://arxiv.org/abs/1801.04381 [11] P Đ Khánh, "Khoa học liệu - Khanh's blog," 19 2020 [Online] Available: https://phamdinhkhanh.github.io/2020/09/19/MobileNet.html [12] V H Tiep, "Machine Learning bản," 12 01 2017 [Online] Available: https://machinelearningcoban.com/2017/01/12/gradientdescent/ [13] BGTVT, "thuvienphapluat," 2019 [Online] Available: https://thuvienphapluat.vn/tintuc/vn/thoi-su-phap-luat/chinh-sachmoi/27757/da-co-qcvn-41-2019-bgtvt-ve-bien-bao-giao-thong-duongbo [14] V H Tiep, "Machine Learning bản," 16 01 2017 [Online] Available: https://machinelearningcoban.com/2017/01/16/gradientdescent2/ [15] J Hui, "Medium.com," 07 03 2018 [Online] Available: https://medium.com/@jonathan_hui/map-mean-average-precision-forobject-detection-45c121a31173 [16] V H Tiep, "Machine Learning Cơ bản," 03 04 2017 [Online] Available: https://machinelearningcoban.com/2017/03/04/overfitting/ [17] S Ren, K He, R Girshick, J Sun, "Arxiv.orgx," 2015 [Online] Available: https://arxiv.org/pdf/1506.01497.pdf ... VỤ VÀ NỘI DUNG  Thu thập liệu biển báo giao thơng đường Việt Nam  Nghiên cứu, tìm hiểu mạng nơ- ron tích chập để xây dựng model nhận diện biển báo giao thông  Xây dựng model nhận diện biển báo. .. mạng Nơ ron tích chập xây dựng ứng dụng nhận diện biển báo giao thông? ?? Chỉ cần cung cấp hình ảnh, ứng dụng phát vùng chứa, phân loại biển báo trả tên biển báo cơng dụng biển báo Từ giúp tất có nhận. .. NƠ -RON NHÂN TẠO VÀ MẠNG NƠ -RON TÍCH CHẬP Mạng nơ- ron nhân tạo 2.1.1 Giới thiệu mạng nơ- ron 2.1.2 Các thành phần mạng nơ- ron nhân tạo .5 2.1.3 Quá trình huấn luyện mạng 2.2 Mạng nơ- ron

Ngày đăng: 21/11/2020, 10:17

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w