Tìm hiểu về học sâu và ứng dụng trong hệ thống mở cổng tự động dựa trên nhận dạng biển số xe

33 4 0
Tìm hiểu về học sâu và ứng dụng trong hệ thống mở cổng tự động dựa trên nhận dạng biển số xe

Đ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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG LẠI VĂN QUYẾT TÌM HIỂU VỀ HỌC SÂU VÀ ỨNG DỤNG TRONG HỆ THỐNG MỞ CỔNG TỰ ĐỘNG DỰA TRÊN NHẬN DẠNG BIỂN SỐ XE ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN THÁI NGUYÊN, NĂM 2023 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CƠNG NGHỆ THƠNG TIN Đề tài: TÌM HIỂU VỀ HỌC SÂU VÀ ỨNG DỤNG TRONG HỆ THỐNG MỞ CỔNG TỰ ĐỘNG DỰA TRÊN NHẬN DẠNG BIỂN SỐ XE Sinh viên thực hiện: Lại Văn Quyết Lớp: CNTT – K17L Giáo viên hướng dẫn: TS Ngô Hữu Huy THÁI NGUYÊN, NĂM 2023 CHƯƠNG 1: LỜI CAM ĐOAN Tôi xin cam đoan: Đồ án tốt nghiệp đại học chuyên ngành Công nghệ thơng tin, tên đề tài “Tìm hiểu học sâu ứng dụng hệ thống mở cổng tự động dựa nhận dạng biển số xe” công trình nghiên cứu, tìm hiểu trình bày tơi thực hướng dẫn TS Ngô Hữu Huy, Trường Đại học Công nghệ Thông tin Truyền thơng - Đại học Thái Ngun Kết tìm hiểu, nghiên cứu luận văn hoàn toàn trung thực, khơng vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tơi hồn tồn chịu trách nhiệm trước pháp luật Tất tài liệu, báo, khóa luận, cơng cụ phần mềm tác giả khác sử dụng lại luận văn dẫn tường minh tác giả có danh mục tài liệu tham khảo Thái Nguyên, ngày …… tháng … năm 2023 Sinh viên thực LẠI VĂN QUYẾT LỜI CẢM ƠN Trước tiên em xin dành lời cảm ơn đến Thầy Cô khoa công nghệ thông tin dạy dỗ, truyền đạt cho em kiến thức cần thiết để vận dụng thực tiễn đồ án Đặc biệt em gửi lời cảm ơn thầy TS Ngô Hữu Huy tận tình giúp đỡ em trình thực đồ án Do kiến thức bị giới hạn trình thực đồ án em khơng thể tránh khỏi sai sót Kính mong thầy dẫn thêm để em rút kinh nghiệm đồ án Em xin chân thành cảm ơn Thái Nguyên, ngày tháng năm 2023 Sinh viên thực LẠI VĂN QUYẾT MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC M ỞĐẦẦU 1.Giới thiệu Mục tiêu đề tài Giới hạn đồ án Phạm vi kiến thức CH ƯƠNG I.C ƠS ỞLÝ THUYẾẾT 1.1 Tổng quan học sâu (deep learning) Machine learning 1.1.1 Deep Learning gì? .8 1.1.2 Chức vượt trội c Deep Learning 1.1.3 Cách thức hoạt động 10 1.1.4 Ứng dụng Deep Learning .11 1.1.5 Đánh giá ưu nhược điểm Deep Learning 11 1.2 Tổng quan học máy ( Machine learning) 13 1.2.1 Machine learning gì?? 13 1.2.2 Các phương pháp Machine learning 13 1.2.3 So sánh học sâu (deep learning) học máy (Machine learning) .14 1.3 Computer Vision 14 1.4 Xử lý tín hiệu 15 1.5 Hệ thống điều khiển thiết bị điện tử .15 CHƯƠNG MẠNG NƠ-RON TÍCH CHẬP (CNN) VÀ YOLOV7 17 2.1 Tổng quát .17 2.2 Phép nhân tích chập (Convolution) .21 2.3 Cấu trúc mạng nơ-ron tích chập (CNN) .22 1) Convolution Layer .22 2) Pooling layer 23 3) Fully connected layer 25 2.4.Tổng quan YOLOV7 26 2.4.1 Gi i thi u ệ vềề YOLOV .26 2.4.2 Kiềến trúc mơ hình YOLO .26 2.4.3 Mơ hình YOLO tốn nhận diện .27 Chương XÂY DỰNG CHƯƠNG TRÌNH .28 3.1 Cơ sở liệu 28 3.2 Cài đặt công cụ thiết lập trường .28 3.2.1 Đào tạo mơ hình 28 3.3 Quá trình huấn luyện 29 3.3.1 Tải lền tập hình ảnh .29 3.3.2 Xử lý tăng liệ u - Data augmentaton 29 3.3.3 Xây dựng mơ hình 29 3.3.4 Biền dịch chương trình đào tạo mơ hình 29 3.4 Đánh giá mơ hình dự đốn .29 3.5 Xây dụng giao diện cho chương trình 29 3.6 Kết đào tạo 29 KẾẾT LUẬN 30 TÀI LIỆU THAM KHẢO 31 MỞ ĐẦU 1.Giới thiệu Đề tài "Tìm hiểu học sâu ứng dụng hệ thống mở cổng tự động dựa nhận dạng biển số xe" đề tài lĩnh vực trí tuệ nhân tạo, cụ thể lĩnh vực học sâu xử lý ảnh Đề tài tập trung nghiên cứu việc sử dụng kỹ thuật học sâu để nhận dạng biển số xe hệ thống mở cổng tự động Trong thực tế, việc sử dụng hệ thống mở cổng tự động ứng dụng rộng rãi bãi đỗ xe, trung tâm thương mại, khu dân cư, sân bay, bến xe để giảm thiểu thời gian xếp hàng tăng tính an tồn Tuy nhiên, vấn đề hệ thống việc xác định biển số xe phương tiện đến Việc thực tay tốn nhiều thời gian khơng xác, sử dụng kỹ thuật học sâu để nhận dạng biển số xe giúp giải vấn đề Đề tài tập trung vào nghiên cứu phương pháp học sâu mạng nơ-ron tích chập (Convolutional Neural Network - CNN), mạng nơ-ron tích chập đa tầng (Multi-Layer CNN) mạng nơ-ron hồi quy (Recurrent Neural Network - RNN) để phát triển hệ thống nhận dạng biển số xe xác nhanh chóng Sau đó, đề tài tập trung xây dựng hệ thống mở cổng tự động sử dụng kỹ thuật kiểm tra hiệu hệ thống thực nghiệm thực tế Đề tài đóng góp cho việc cải thiện tính hiệu an toàn hệ thống mở cổng tự động bãi đỗ xe, trung tâm thương mại, khu dân cư, sân bay, bến xe Các ứng dụng đề tài áp dụng cho lĩnh vực khác giám sát giao thông, an ninh Mục tiêu đề tài Nghiên cứu, thiết kế xây dựng hệ thống mở cổng tự động sử dụng kỹ thuật học sâu để nhận dạng biển số xe Cụ thể, đề tài đặt mục tiêu sau: Tìm hiểu phương pháp học sâu mạng nơ-ron tích chập (CNN), mạng nơ-ron tích chập đa tầng (Multi-Layer CNN) mạng nơ-ron hồi quy (RNN) để nhận dạng biển số xe Thu thập xử lý liệu ảnh chứa biển số xe từ nguồn khác để tạo tập liệu đào tạo tập liệu kiểm thử Xây dựng huấn luyện mơ hình học sâu tập liệu đào tạo để nhận dạng biển số xe Thiết kế xây dựng hệ thống mở cổng tự động sử dụng kỹ thuật học sâu để nhận dạng biển số xe Đánh giá hiệu hệ thống cách đo lường độ xác việc nhận dạng biển số xe tập liệu kiểm thử thực nghiệm hệ thống mở cổng tự động thực tế Với mục tiêu trên, đề tài hy vọng đạt kết mong đợi đóng góp vào phát triển công nghệ lĩnh vực học sâu, xử lý ảnh ứng dụng đời sống Giới hạn đồ án Đề tài "Tìm hiểu học sâu ứng dụng hệ thống mở cổng tự động dựa nhận dạng biển số xe" có số giới hạn sau: Phạm vi đề tài tập trung vào ứng dụng kỹ thuật học sâu nhận dạng biển số xe thiết kế hệ thống mở cổng tự động Các lĩnh vực khác học sâu không đề cập Dữ liệu đầu vào cho hệ thống nhận dạng biển số xe tập trung vào ảnh chứa biển số, yếu tố khác ánh sáng, mờ, nhiễu hay khó khăn góc độ đặt camera khơng xem xét Hiệu hệ thống đánh giá số tập liệu số trường hợp, kết đánh giá khơng phản ánh đầy đủ tính ứng dụng hiệu hệ thống tất tình Đề tài tập trung vào việc tìm hiểu áp dụng kỹ thuật học sâu hệ thống nhận dạng biển số xe, nên không nghiên cứu phương pháp xử lý ảnh khác kỹ thuật học sâu Do thời gian tài ngun có hạn, đề tài khơng sâu vào mơ hình học sâu phức tạp khó huấn luyện, tập trung vào mơ hình học sâu CNN, Multi-Layer CNN RNN Tuy nhiên, giới hạn chung đề tài khơng ảnh hưởng đến tính khả thi giá trị thực tiễn đề tài Phạm vi kiến thức Để thực đề tài "Tìm hiểu học sâu ứng dụng hệ thống mở cổng tự động dựa nhận dạng biển số xe", kiến thức cần thiết bao gồm: Kiến thức Machine Learning Deep Learning: Bao gồm khái niệm Supervised Learning, Unsupervised Learning, Reinforcement Learning, Neural Network, Convolutional Neural Network, Recurrent Neural Network thuật toán liên quan Kiến thức Computer Vision: Bao gồm khái niệm xử lý ảnh, lọc, giải thuật phân vùng, giải thuật trích xuất đặc trưng Kiến thức xử lý tín hiệu: Bao gồm khái niệm xử lý tín hiệu số, xử lý tín hiệu ảnh, xử lý tín hiệu âm Kiến thức lập trình cơng cụ lập trình: Bao gồm kiến thức lập trình Python, thư viện OpenCV, TensorFlow, Keras, PyTorch Kiến thức mạng máy tính giao thức truyền thơng: Bao gồm kiến thức mạng máy tính, giao thức truyền thơng TCP/IP, mơ hình OSI Kiến thức hệ thống điều khiển thiết bị điện tử: Bao gồm kiến thức hệ thống điều khiển, linh kiện điện tử phương pháp thiết kế hệ thống điện tử CHƯƠNG I.CƠ SỞ LÝ THUYẾT 1.1 Tổng quan học sâu (deep learning) Machine learning 1.1.1 Deep Learning gì? Deep learning bắt nguồn từ thuật toán Neural network (mạng nowrron) vốn xuất phát ngành nhỏ Machine Learning Deep Learning chi ngành máy học dựa tập hợp thuật tốn để cố gắng mơ hình liệu trừu tượng hóa mức cao cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, cách khác bao gồm nhiều biến đổi phi tuyến Tương tự cách học hỏi từ kinh nghiệm thuật toán, deep learning thực nhiệm vụ nhiều lần lần tinh chỉnh nhiệm vụ chút để cải thiện kết Deep Learning đơn giản kết nối liệu tất tế bào thần kinh nhân tạo điều chỉnh chúng theo liệu mẫu Hình 1.1: Mạng lười thần kinh tích chập Deep Learning giúp máy tính thực thi việc tưởng chừng khơng thể vào 15 năm trước: phân loại ngàn vật thể khác ảnh, tự tạo thích cho ảnh, bắt chước giọng nói chữ viết người, giao tiếp với người, hay chí sáng tác văn, phim, ảnh, âm nhạc CHƯƠNG MẠNG NƠ-RON TÍCH CHẬP (CNN) VÀ YOLOV7 2.1 Tổng qt Trong mạng neural, mơ hình mạng neural tích chập (CNN) mơ hình để nhận dạng phân loại hình ảnh Trong đó, xác định đối tượng nhận dạng khuôn mặt số lĩnh vực mà CNN sử dụng rộng rãi CNN phân loại hình ảnh cách lấy hình ảnh đầu vào, xử lý phân loại theo hạng mục định (Ví dụ: Chó, Mèo, Hổ, ) Máy tính coi hình ảnh đầu vào mảng pixel phụ thuộc vào độ phân giải hình ảnh Dựa độ phân giải hình ảnh, máy tính thấy H x W x D (H: Chiều cao, W: Chiều rộng, D: Độ dày) Ví dụ: Hình ảnh mảng ma trận RGB 6x6x3 (3 giá trị RGB) Hình 2.1 Mảng ma trận RGB 6x6x3 Về kỹ thuật, mơ hình CNN để training kiểm tra, hình ảnh đầu vào chuyển qua loạt lớp tích chập với lọc (Kernals), tổng hợp lại lớp kết nối đầy đủ (Full Connected) áp dụng hàm Softmax để phân loại đối tượng có giá trị xác suất Hình tồn luồng CNN để xử lý hình ảnh đầu vào phân loại đối tượng dựa giá trị Một số loại mạng nơ-ron tích chập đem lại kết cao như: VGG16, GoogleNet, ResNet-50, DenseNet, EfficientNet, Lớp tích chập - Convolution Layer  Tích chập lớp để trích xuất tính từ hình ảnh đầu vào Tích chập trì mối quan hệ pixel cách tìm hiểu tính hình ảnh cách sử dụng vương nhỏ liệu đầu vào Nó phép tốn có đầu vào ma trận hình ảnh lọc hạt nhân Hình 2.2: Lớp tích chập  Xem xét ma trận x có giá trị pixel Ma trận lọc x hình bên Hình 2.3 Ma trận lọc x 3, ma trận x  Sau đó, lớp tích chập ma trận hình ảnh x nhân với ma trận lọc x gọi 'Feature Map' hình bên  Sự kết hợp hình ảnh với lọc khác thực hoạt động phát cạnh, làm mờ làm sắc nét cách áp dụng lọc Ví dụ cho thấy hình ảnh tích chập khác sau áp dụng Kernel khác Hình 2.4: Hình ảnh tích chập khác sau áp dụng Kernel khác Bước nhảy - Stride  Stride số pixel thay đổi ma trận đầu vào Khi stride ta di chuyển kernel pixel Khi stride ta di chuyển kernel pixel tiếp tục Hình lớp tích chập hoạt động với stride Hình 2.5: Lớp tích chập hoạt động với stride Hàm phi tuyến – ReLU  ReLU viết tắt Rectified Linear Unit, hàm phi tuyến Với đầu là: ƒ (x) = max (0, x)  Tại ReLU lại quan trọng: ReLU giới thiệu tính phi tuyến ConvNet Vì liệu giới mà tìm hiểu giá trị tuyến tính khơng âm  Có số hà phi tuyến khác tanh, sigmoid sử dụng thay cho ReLU Hầu hết người ta thường dùng ReLU có hiệu suất tốt 2.2 Phép nhân tích chập (Convolution) Kí hiệu phép tính convolution (⊗), kí hiệu Y = X ⊗W Với phần tử ma trận X lấy ma trận có kích thước kích thước kernel W có phần tử làm trung tâm (đây kích thước kernel thường lẻ) gọi ma trận A Sau tính tổng phần tử phép tính elementwise ma trận A ma trận W, viết vào ma trận kết Y Hình 2.6: Phép nhân tích chập 2.3 Cấu trúc mạng nơ-ron tích chập (CNN) 1) Convolution Layer Chứa phép tính nhân tích chập (Convolution) với stride: S, padding: P tensor  Với padding=p có nghĩa thêm p vector vào phía (Trên, dưới, Trái, Phải) ma trận  stride=S có nghĩ thực phép tính convolution phần tử: Giả sử input convolutional layer tổng quát tensor kích thước: H * W * D Kernel có kích thước F * F * D (kernel ln có depth depth input F số lẻ), stride: S, padding: P Convolutional layer áp dụng K kernel  Output Convolutional layer tensor chiều có kích thước: Output convolutional layer qua hàm non-linear activation function trước trở thành input convolutional layer Tổng số parameter layer:  Mỗi kernel có kích thước F*F*D có hệ số bias, nên tổng parameter kernel F*F*D +  Mà convolutional layer áp dụng K kernel => Tổng số parameter layer K * (F*F*D + 1) Hình 2.7: Convolutional layer 2) Pooling layer Pooling layer thường dùng convolutional layer, để giảm kích thước liệu giữ thuộc tính quan trọng Việc giảm kích thước liệu giúp giảm phép tính tốn model Bên cạnh đó, với phép pooling kích thước ảnh giảm, lớp convolution học vùng có kích thước lớn Gọi pooling size kích thước K*K Input pooling layer có kích thước H*W*D, ta tách làm D ma trận kích thước H*W Với ma trận, vùng kích thước K*K ma trận ta tìm maximum average liệu viết vào ma trận kết Quy tắc stride padding áp dụng phép tính convolution ảnh Hình 2.8: Pooling layer Nhưng hầu hết dùng pooling layer dùng size=(2,2), stride=2, padding=0 Khi output width height liệu giảm nửa, depth giữ nguyên Có loại pooling layer phổ biến là: max pooling average pooling Hình 2.9: Max pooling average pooling 3) Fully connected layer Sau ảnh truyền qua nhiều convolutional layer pooling layer model học tương đối đặc điểm ảnh (ví dụ mắt, mũi, khn mặt, ) tensor output layer cuối cùng, kích thước H*W*D, chuyển vector kích thước (H*W*D, 1) Sau ta dùng fully connected layer để kết hợp đặc điểm ảnh để output model 2.4.Tổng quan YOLOV7 2.4.1 Giới thiệu YOLOV YOLO (You Only Look Once) mơ hình nhận dạng đối tượng (object detection) phát triển Joseph Redmon, Santosh Divvala, Ross Girshick Ali Farhadi vào năm 2016 Mô hình có khả phát phân loại đối tượng hình ảnh cách nhanh chóng xác Mơ hình YOLO sử dụng mạng nơ-ron sâu (deep neural network) để học đặc trưng đối tượng dự đoán hộp giới hạn (bounding box) xác định vị trí đối tượng YOLO phát đối tượng cách chia nhỏ hình ảnh đầu vào thành lưới (grid) dự đoán đối tượng (cell) lưới Một ưu điểm YOLO tốc độ xử lý nhanh, cho phép mơ hình xử lý hàng trăm hình ảnh giây Điều hữu ích cho ứng dụng thời gian thực xe tự lái giám sát an ninh Tuy nhiên, YOLO có số hạn chế, bao gồm khả phát đối tượng nhỏ lớn so với kích thước lưới Mặc dù có nhiều phiên cải tiến YOLO phát triển, nhiều thách thức phải vượt qua để mơ hình đạt độ xác tốt áp dụng cho nhiều tốn thực tế 2.4.2 Kiến trúc mơ hình YOLO Mơ hình YOLO bao gồm hai phần chính: mạng nơ-ron sâu để rút trích đặc trưng phân loại để dự đoán lớp đối tượng giá trị bounding box Kiến trúc mạng nơ-ron sâu YOLO thiết kế dựa mạng nơ-ron tích chập (Convolutional Neural Network - CNN) Mạng nơ-ron có nhiều lớp tích chập (convolutional layers) liên tiếp để trích xuất đặc trưng từ hình ảnh Sau đó, đặc trưng đưa vào lớp kết nối đầy đủ (fully connected layers) để giảm số chiều rút trích thơng tin quan trọng để phân loại đối tượng Bộ phân loại YOLO bao gồm lớp kết nối đầy đủ để phân loại đối tượng đưa xác suất cho lớp, lớp bounding box để dự đoán tọa độ kích thước hộp giới hạn (bounding box) bao quanh đối tượng Trong trình huấn luyện, YOLO sử dụng hàm mát (loss function) để đo lường khác biệt giá trị dự đoán giá trị thực tế Mục tiêu việc huấn luyện tối thiểu hóa hàm mát để cải thiện độ xác mơ hình Tổng thể, kiến trúc YOLO thiết kế để tối ưu hóa hiệu tính tốn độ xác, đặc biệt việc phát đối tượng hình ảnh có kích thước khác 2.4.3 Mơ hình YOLO toán nhận diện CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH 3.1 Cơ sở liệu Sử dụng liệu VN license plates_yolov7 website Kaggle - Bao gồm 500 ảnh để luyện phần phát vị trí tách biển số xe Sử dụng liệu License plates digits classification dataset website Kaggle sử dụng mơ hình CNN gồm 31 kí tự hợp thức hóa biển số xe Việt Nam 3.2.1 Đào tạo mô hình Mơ hình huấn luyện Google Colaboratory Google Colaboratory (gọi tắt Google Colab hay Colab) sản phẩm Google Research Colab dựa Jupyter Notebook, người dùng viết thực thi đoạn mã python thơng qua trình duyệt đặc biệt phù hợp với data analysis, machine learning giáo dục Google phát hành Google Colab cho công chúng với mục đích cải thiện giáo dục nghiên cứu Machine Learning Colab khơng cần u cầu cài đặt hay cấu hình máy tính, thứ chạy thơng qua trình duyệt, sử dụng tài ngun máy tính từ CPU tốc độ cao GPU TPU 3.3.2 Xử lý tăng liệu - Data augmentation 3.3.3 Xây dựng mơ hình Mơ hình nhận diện biển số xe YOLO V7 Phân đoạn kí tự dùng mơ hình CNN gồm 10 lớp ẩn sau: Hình 3.1 Cấấu trúc mơ hình CNN phấn tách ký tự 3.3.4 Biên dịch chương trình đào tạo mơ hình 3.4 Đánh giá mơ hình dự đốn 3.5 Xây dưng giao diện cho chương trình 3.6 Kết đào tạo KẾT LUẬN Dưới bảo tận tình giáo viên hướng dẫn đề tài đạt số nhiệm vụ như: (1) Tìm hiểu mơ hình học sâu học máy (2) Tìm hiểu cấu trúc mơ hình nơron tích chập (CNNvà ứng dụng mơ hình vào tốn hệ thống tự động mở thông qua nhận diện biển số xe (3) Ưu điểm chương trình: Huấn luyện chuyển giao mang lại độ xác cao Thiết kế giao diện dễ sử dụng (4) Nhược điểm: Do lượng liệu ít, Mơ hình chưa đc tối ưu Giao diện cịn sơ sài Trong thời gian tới em tiếp tục tìm hiểu sâu tảng kiến thức trên, thu thập liệu tiếp tục đào tạo để đem lại độ xác cao để ứng dụng chương trình vào thực tiễn Em xin chân thành cảm ơn ạ! [1] TÀI LIỆU THAM KHẢO

Ngày đăng: 20/09/2023, 15:43

Tài liệu cùng người dùng

Tài liệu liên quan