sử dụng mạng nơron nhân tạo để nhận dạng biển số xe, mạng nơron được sử dụng ở đây là mạng cnn, có cả quá trình tiền xử lý từ 1 ảnh biển số xe đến tách ra từng ký tự để nhận diện. Vui lòng liên hệ tôi để lấy dữ liệu dùng để huấn luyện.Chương 1: Tổng quan về đề tàiTrang1.1. Lý do chọn đề tài21.1.1. Nhu cầu thực tế21.1.2. Mong muốn mở mang kiến thức đối với lĩnh vực mới 31.2. Phân tích ưu nhược điểm và so sánh giữa công nghệ trí tuệ nhân tạo với công nghệ object motion 31.2.1. Công nghệ object motion31.2.2. Công nghệ trí tuệ nhân tạo41.3. Một số khái niệm51.3.1. Xử lý ảnh5 1.3.1.1. Khái niệm5 1.3.1.2. Các phân ngành chính5 1.3.1.3. Ứng dụng51.3.2. Định dạng file ảnh6 1.3.2.1. Khái niệm6 1.3.2.2. Một số kiểu định dạng thường gặp61.3.3. Ảnh số8 1.3.3.1. Một số khái niệm8 1.3.3.2. Mô tả ảnh số8 1.3.3.3. Một số loại ảnh số91.4. Giới thiệu về công nghệ trí tuệ nhân tạo111.4.1. Khái niệm111.4.2. Các trường phái trí tuệ nhân tạo111.4.3. Ứng dụng của trí tuệ nhân tạo121.5. Giới thiệu về phần mềm matlab121.5.1. Khái quát121.5.2. Các phép tính toán phổ biến của matlab131.5.3. Các tính năng của matlab131.5.4. Các ứng dụng của matlab13Chương 2: Sơ lược về mạng neural và mạng neural tích chậpTrang2.1. Sơ lược về mạng neural142.1.1. Lịch sử phát triển của mạng neural142.1.2. Mô hình mạng neural16 2.1.2.1. Mô hình neural sinh học16 2.1.2.2. Mô hình neural nhân tạo172.1.3. Cấu trúc mạng neural192.1.4. Các tính chất của mạng neural nhân tạo212.1.5. Các luật học của mạng neural nhân tạo212.2. Mạng neural tích chập (CNNs)222.2.1. Định nghĩa mạng neural tích chập (CNNs)22 2.2.2. Các thành phần của mạng neural tích chập (CNNs)22Chương 3: Giải thuật và quy trình thực hiệnTrang3.1. Giải thuật tổng quát333.2. Quy trình thực hiện34 3.2.1. Định vị và tách vùng chứa của biển số ra khỏi ảnh34 3.2.1.1. Mô tả34 3.2.1.2. Các bước thự hiện34 3.2.1.3. Giải thuật của đoạn chương trình định vị và tách biển số35 3.2.2 Định vị và tách từng ký tự trên biển số37 3.2.2.1. Mô tả37 3.2.2.2. Các bước thự hiện37 3.2.2.3. Giải thuật của đoạn chương trình định vị và tách từng ký tự trên biển số38 3.2.3. Xây dựng và huấn luyện mạng neural (CNNs)39 3.2.3.1. Xây dựng mạng neural (CNNs)39 3.2.3.2. Huấn luyện mạng neural (CNNs)40Chương 4: Kết quả và hướng phát triểnTrang4.1. Kết quả414.2. Giới hạn của đề tài43 4.2.1. Những giới hạn về các dụng cụ thiết bị43 4.2.2. Những giới hạn về con người và thời gian444.3. Hướng phát triển của đề tài44DANH SÁCH CÁC BẢNG, HÌNH VẼHình 1.1. Apple đang phát triển công nghệ nhận diện khuôn mặt 2Hình 1.2. Hệ thống chấm điểm công dân ở Trung Quốc2Hình 1.3. Giao thông thông minh3Hình 1.4. Công nghệ object motion.3Hình 1.5. Công nghệ trí tuệ nhân tạo 4Hình 1.6. Các định dạng file thông dụng6Hình 1.7. Một bức ảnh định dạng JPG6Hình 1.8. Một bức ảnh định dạng PNG7Hình 1.9. Một bức ảnh định dạng GIF7Hình 1.10. Ảnh số là một ma trận các pixel8Hình 1.11. Một bức ảnh nhị phân9Hình 1.12. Một bức ảnh xám10Hình 1.13. Một bức ảnh RGB 10Hình 1.14. Công cụ toán học matlab 12Hình 2.1. Mô hình neural sinh học 16Hình 2.2. Mô hình neural nhân tạo17Hình 2.3. Mạng neural 3 lớp19Hình 2.4. Sơ đồ cấu trúc một số mạng neural20Hình 2.5. Ví dụ minh họa về CNNs 22Hình 2.6. Có phải là X không?23Hình 2.7. Đặc điểm chung23Hình 2.8. Các feature khớp với phần trung tâm và phần cánh của X24Hình 2.9. Tích chập24Hình 2.10. Tính toán sự khớp 25Hình 2.11. Gộp chung (pooling)26Hình 2.12. Tinh chỉnh các đơn vị tuyến tính (Rectified Linear Units)27Hình 2.13. Học sâu (Deep learning) 27Hình 2.14. CNN đào tạo nhận diện mặt người28Hình 2.15. Cuộc bầu chọn28Hình 2.16. Các layer được kết nối đầy đủ 29Hình 2.17. Lan truyền ngược29Hình 2.18. Phân loại dữ liệu khác31Hình 2.19. Phân loại dữ liệu khách hàng31Hình 3.1. Giải thuật tổng quát của đề tài33Hình 3.2. Tách biển số34Hình 3.3. Các biến đổi ảnh của quá trính tách biển số34Hình 3.4. Giải thuật của đoạn chương trình định vị và tách biển số 36Hình 3.5. Định vị và tách từng ký tự37Hình 3.6. Giải thuật của đoạn chương trình định vị và tách từng ký tự của biển số38Hình 3.7. Các thành phần của mạng neural CNNs39Hình 3.8. Huấn luyện mạng neural CNNs40Hình 4.1. Kết quả mô phỏng biển số xe ‘51A – 212.18’41Hình 4.2. Kết quả mô phỏng biển số xe ‘51A – 175.56’42Hình 4.3. Kết quả mô phỏng biển số xe ‘43A – 339.94’42Hình 4.4. Kết quả mô phỏng biển số xe ‘99K – 9999’43DANH SÁCH CÁC CỤM TỪ VIẾT TẮT1. JPEG Joint Photographic Experts Group2. PNG Portable Network Graphics3. GIF Graphics Interchange Format4. AI Artificial Intelligence5. CNN Convolutional Neural Network TÀI LIỆU THAM KHẢO1 https:www.mathworks.com2 Computer Vision System Toolbox™ Users Guide: Onlinehttps:www.uow.edu.au~phungresourcesimagevision_ug.pdf3 Introducing Deep Learning with MATLAB – MathWorks: Online https:www.mathworks.comcontentdammathworkstagteamObjectsd80879v00_Deep_Learning_ebook.pdf 4Convolutional Neural Network:https:www.mathworks.comsolutionsdeeplearningconvolutionalneuralnetwork.html 5 Computer Vision Toolbox: https:www.mathworks.comproductscomputervision.html
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP I Thông tin chung: Họ tên sinh viên: ………………………………………………………………… Lớp: …………………………… Số thẻ SV: ……………………………………… Tên đề tài: ………………………………………………………………………… Người hướng dẫn: ………………………….………… Học hàm/ học vị: ………… II Nhận xét đồ án tốt nghiệp: Về tính cấp thiết, sáng tạo ứng dụng đồ án: (điểm đánh giá tối đa 2đ) ……………………………………………………………………………………… ……………………………………………………………………………………… Về kết giải nội dung nhiệm vụ yêu cầu đồ án: (điểm tối đa 4đ) ……………………………………………………………………………………… ……………………………………………………………………………………… Về hình thức, cấu trúc, bố cục đồ án tốt nghiệp: (điểm đánh giá tối đa 2đ) ……………………………………………………………………………………… ……………………………………………………………………………………… NCKH: (nếu có báo khoa học ĐATN đề tài NCKH: (cộng thêm 1đ) ……………………………………………………………………………………… ……………………………………………………………………………………… 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 sinh viên: (điểm đánh giá tối đa 1đ) ……………………………………………………………………………………… ……………………………………………………………………………………… IV.Đánh giá: Điểm đánh giá: Đề nghị: /10 Được bảo vệ đồ án/ Bổ sung thêm để bảo vệ/ Không bảo vệ Đà Nẵng, ngày tháng năm 2019 Người hướng dẫn Ghi chú: Điểm đánh giá cho lẻ đến mức 0,5 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHẬN XÉT PHẢN BIỆN ĐỒ ÁN TỐT NGHIỆP I Thông tin chung: Họ 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ị: ………… II Nhận xét, đánh giá đồ án tốt nghiệp: Điểm Điểm tối đa trừ TT Các tiêu chí đánh giá 1a 1b 1c 1d 1e 1f 2a 2b Sinh viên có phương pháp nghiên cứu phù hợp, giải đủ nhiệm vụ đồ án giao - Hiểu vận dụng kiến thức Toán khoa học tự nhiên vấn đề nghiên cứu - Hiểu vận dụng kiến thức sở chuyên ngành vấn đề nghiên cứu - Có kỹ vận dụng thành thạo phần mềm mơ phỏng, tính tốn vấn đề nghiên cứu - Có kỹ đọc, hiểu tài liệu tiếng nước ứng dụng vấn đề nghiên cứu - Có kỹ làm việc nhóm, kỹ giải vấn đề - Đề tài có giá trị khoa học, cơng nghệ; ứng dụng thực tiễn: Kỹ viết: Điểm lại 80 15 25 10 10 10 10 - Bố cục hợp lý, lập luận rõ ràng, chặt chẽ, lời văn súc tích 20 15 - Thuyết minh đồ án khơng có lỗi tả, in ấn, định dạng Tổng điểm đánh giá: theo thang 100 Quy thang 10 (lấy đến số lẻ) Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa: ……………………………………………………………………………………… ……………………………………………………………………………………… Ý kiến khác: ……………………………………………………………………………………… Đề nghị: Được bảo vệ đồ án/ Bổ sung thêm để bảo vệ/ Không bảo vệ Đà Nẵng, ngày tháng năm 2019 Người phản biện TÓM TẮT Tên đề tài: Tự động nhận dạng biển số xe công nghệ trí tuệ nhân tạo Sinh viên thực hiện: Hồng Đức Nhật Số thẻ SV: 105140302 Lớp: 14TDH1 Dương Đức Khải Số thẻ SV: 105140344 Lớp: 14TDH2 Bản báo cáo gồm phần theo thứ tự sau: Tóm tắt Nhiệm vụ đồ án tốt nghiệp Lời nói đầu Cam đoan Mục lục Danh sách bảng, hình vẽ Danh sách cụm từ viết tắt Mở đầu Nội dung đề tài ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN CỘNG HỊA XÃ HƠI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Dương Đức Khải Lớp: 14TDH2 Khoa: Điện 4.1 Tên đề tài đồ án: Số thẻ sinh viên: 105140344 Ngành: Kỹ thuật điều khiển & tự động hóa Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo 4.2 Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ kết thực 4.3 Các số liệu liệu ban đầu: …………………………………… …………………………………………… …… ………………………………………………………………………………………… … ………………………………….… ……………………… ……………………… 4.4 Nội dung phần thuyết minh tính tốn: … ……………………………………………………………………………………… … ……………………………………………………………………………………… … ……………………………………………………………………………………… … ……………………………………………………………………………………… … ……………………………………………………………………………………… 4.5 Các vẽ, đồ thị ( ghi rõ loại kích thước vẽ ): … ……………………………………………………………………………………… … ……………………………………………………………………………………… … ……………………………………………………………………………………… … ……………………………………………………………………………………… 4.6 Họ tên người hướng dẫn: TS Nguyễn Quốc Định 4.7 Ngày giao nhiệm vụ đồ án: …… /……./201… 4.8 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 LỜI NÓI ĐẦU Ngày nay, việc nghiên cứu trí tuệ nhân tạo đưa vào ứng dụng thực tế ngày nhiều, ngày chứng tỏ mạnh cơng việc đòi hỏi khả suy nghĩ tính tốn giống người Trong giao thơng, trí tuệ nhân tạo (AI) sử dụng việc đếm xe, phân tích mật độ giao thơng, dự báo đơng xe, tắc đường, phục vụ tối ưu hoá điều khiển đèn tín hiệu giao thơng ngày phát triển Và q trình hồn thành đề tài tốt nghiệp, thân em học hỏi nhiều kiến thức, kinh nghiệm quý báu thực đề tài với giúp đỡ nhiệt tình thầy mơn Tự Động Hóa - khoa Điện Tuy có nhiều cố gắng q trình thực đề tài khơng tránh khỏi sai sót, mong quý thầy cô bỏ qua giúp đỡ để em hồn thành tốt nhiệm vụ củng cố kiến thức ngày vững vàng nhằm trang bị kiến thức cần thiết để tạo bước đệm trường làm Em xin gửi lời cám ơn đến thầy Nguyễn Quốc Định, thầy người hướng dẫn tận tình tạo điều kiện thuận lợi cho em hoàn thành đồ án Em xin chân thành bày tỏ lòng biết ơn sâu sắc đến Thầy Cô trường Đại Học Bách Khoa- Đại Học Đà Nẵng đặc biệt Thầy Cô mơn Tự Động Hóa truyền thụ kiến thức quý báu cho em năm học qua Em xin chân thành cảm ơn CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng nhóm em hướng dẫn thầy Nguyễn Quốc Định Các nội dung nghiên cứu, kết đề tài trung thực chưa công bố hình thức trước Các tài liệu tham khảo đồ án nêu rõ mục tài liệu tham khảo đảm bảo liêm học thuật Sinh viên thực MỤC LỤC Chương 1: Tổng quan đề tài Trang 1.1 Lý chọn đề tài 1.1.1 Nhu cầu thực tế 1.1.2 Mong muốn mở mang kiến thức lĩnh vực 1.2 Phân tích ưu nhược điểm so sánh cơng nghệ trí tuệ nhân tạo với công nghệ object motion 1.2.1 Công nghệ object motion 1.2.2 Cơng nghệ trí tuệ nhân tạo 1.3 Một số khái niệm 1.3.1 Xử lý ảnh 1.3.1.1 Khái niệm 1.3.1.2 Các phân ngành 1.3.1.3 Ứng dụng 1.3.2 Định dạng file ảnh 1.3.2.1 Khái niệm 1.3.2.2 Một số kiểu định dạng thường gặp 1.3.3 Ảnh số 1.3.3.1 Một số khái niệm 1.3.3.2 Mô tả ảnh số 1.3.3.3 Một số loại ảnh số 1.4 Giới thiệu cơng nghệ trí tuệ nhân tạo 11 1.4.1 Khái niệm 11 1.4.2 Các trường phái trí tuệ nhân tạo 11 1.4.3 Ứng dụng trí tuệ nhân tạo 12 1.5 Giới thiệu phần mềm matlab 12 1.5.1 Khái quát 12 1.5.2 Các phép tính tốn phổ biến matlab 13 1.5.3 Các tính matlab 13 1.5.4 Các ứng dụng matlab 13 Chương 2: Sơ lược mạng neural mạng neural tích chập Trang 2.1 Sơ lược mạng neural 14 2.1.1 Lịch sử phát triển mạng neural 14 2.1.2 Mơ hình mạng neural 16 2.1.2.1 Mơ hình neural sinh học 16 2.1.2.2 Mơ hình neural nhân tạo 17 2.1.3 Cấu trúc mạng neural 19 2.1.4 Các tính chất mạng neural nhân tạo 21 2.1.5 Các luật học mạng neural nhân tạo 21 2.2 Mạng neural tích chập (CNNs) 22 2.2.1 Định nghĩa mạng neural tích chập (CNNs) 22 2.2.2 Các thành phần mạng neural tích chập (CNNs) 22 Chương 3: Giải thuật quy trình thực Trang 3.1 Giải thuật tổng quát 33 3.2 Quy trình thực 34 3.2.1 Định vị tách vùng chứa biển số khỏi ảnh 34 3.2.1.1 Mô tả 34 3.2.1.2 Các bước thự 34 3.2.1.3 Giải thuật đoạn chương trình định vị tách biển số 35 3.2.2 Định vị tách ký tự biển số 37 3.2.2.1 Mô tả 37 3.2.2.2 Các bước thự 37 3.2.2.3 Giải thuật đoạn chương trình định vị tách ký tự biển số 38 3.2.3 Xây dựng huấn luyện mạng neural (CNNs) 39 3.2.3.1 Xây dựng mạng neural (CNNs) 39 3.2.3.2 Huấn luyện mạng neural (CNNs) 40 Chương 4: Kết hướng phát triển Trang 4.1 Kết 41 4.2 Giới hạn đề tài 43 4.2.1 Những giới hạn dụng cụ thiết bị 43 4.2.2 Những giới hạn người thời gian 44 4.3 Hướng phát triển đề tài 44 DANH SÁCH CÁC BẢNG, HÌNH VẼ Hình 1.1 Apple phát triển công nghệ nhận diện khuôn mặt Hình 1.2 Hệ thống chấm điểm cơng dân Trung Quốc Hình 1.3 Giao thơng thơng minh Hình 1.4 Công nghệ object motion Hình 1.5 Cơng nghệ trí tuệ nhân tạo Hình 1.6 Các định dạng file thông dụng Hình 1.7 Một ảnh định dạng JPG Hình 1.8 Một ảnh định dạng PNG Hình 1.9 Một ảnh định dạng GIF Hình 1.10 Ảnh số ma trận pixel Hình 1.11 Một ảnh nhị phân Hình 1.12 Một ảnh xám 10 Hình 1.13 Một ảnh RGB 10 Hình 1.14 Cơng cụ tốn học matlab 12 Hình 2.1 Mơ hình neural sinh học 16 Hình 2.2 Mơ hình neural nhân tạo 17 Hình 2.3 Mạng neural lớp 19 Hình 2.4 Sơ đồ cấu trúc số mạng neural 20 Hình 2.5 Ví dụ minh họa CNNs 22 Hình 2.6 Có phải X khơng? 23 Hình 2.7 Đặc điểm chung 23 Hình 2.8 Các feature khớp với phần trung tâm phần cánh X 24 Hình 2.9 Tích chập 24 Hình 2.10 Tính tốn khớp 25 Hình 2.11 Gộp chung (pooling) 26 Hình 2.12 Tinh chỉnh đơn vị tuyến tính (Rectified Linear Units) 27 Hình 2.13 Học sâu (Deep learning) 27 Hình 2.14 CNN đào tạo nhận diện mặt người 28 Hình 2.15 Cuộc bầu chọn 28 Hình 2.16 Các layer kết nối đầy đủ 29 Hình 2.17 Lan truyền ngược 29 Hình 2.18 Phân loại liệu khác 31 Hình 2.19 Phân loại liệu khách hàng 31 Hình 3.1 Giải thuật tổng quát đề tài 33 Hình 3.2 Tách biển số 34 Hình 3.3 Các biến đổi ảnh trính tách biển số 34 Hình 3.4 Giải thuật đoạn chương trình định vị tách biển số 36 Hình 3.5 Định vị tách ký tự 37 Hình 3.6 Giải thuật đoạn chương trình định vị tách ký tự biển số 38 Hình 3.7 Các thành phần mạng neural CNNs 39 Hình 3.8 Huấn luyện mạng neural CNNs 40 Hình 4.1 Kết mô biển số xe ‘51A – 212.18’ 41 Hình 4.2 Kết mô biển số xe ‘51A – 175.56’ 42 Hình 4.3 Kết mô biển số xe ‘43A – 339.94’ 42 Hình 4.4 Kết mơ biển số xe ‘99K – 9999’ 43 DANH SÁCH CÁC CỤM TỪ VIẾT TẮT JPEG - Joint Photographic Experts Group PNG - Portable Network Graphics GIF - Graphics Interchange Format AI - Artificial Intelligence CNN - Convolutional Neural Network Tự động nhận dạng biển số xe công nghệ trí tuệ nhân tạo Chương 3: Giải thuật quy trình thực 3.1 Giải thuật tổng quát Ảnh thu từ camera Định vị tách vùng chứa biển số khỏi ảnh Định vị tách ký tự biển số Xây dựng huấn luyện mạng neural tích chập Nhận dạng ký tự sử dụng mạng neural tích chập Hiển thị kết Kết thúc Hình 3.1 Giải thuật tổng quát đề tài Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 33 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo 3.2 Quy trình thực 3.2.1 Định vị tách vùng chứa biển số khỏi ảnh 3.2.1.1 Mô tả Định vị tách vùng chứa biển số khỏi ảnh trình tiền xử lý, tách vùng biển số khỏi ảnh đầu vào Cái vùng biển số tách dạng ảnh nhị phân tiếp tục sử dụng để phân tích bước Tách biển số Hình 3.2 Tách biển số 3.2.1.2 Các bước thực Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 34 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo Hình 3.3 Các biến đổi ảnh trính tách biển số - - 3.2.1.3 - Để tách vùng chứa biển số khỏi ảnh ta thực bước theo thứ tự từ xuống sau: Đọc ảnh đầu vào (thường ảnh màu RGB) Chuyển từ ảnh RGB sang ảnh xám Chuyển từ ảnh xám sang ảnh nhị phân phương pháp lấy ngưỡng level Tìm góc nghiêng ảnh Xoay ảnh góc góc nghiêng vừa tìm Đo đạc tính chất, đặc điểm vùng ảnh => tìm vùng trắng lớn ảnh => sau cắt vùng trắng khỏi ảnh (vùng trắng vùng chứa biển số) Lấy ảnh âm xóa đối tượng nhỏ 50 pixel khỏi ảnh Giải thuật đoạn chương trình định vị tách biển số Để tách vùng chứa biển số khỏi ảnh ta sử dụng hàm regionprops để đo đạc tính chất vùng ảnh Trong hàm ta lấy thông số sau: Boundingbox: Là hình chữ nhật có diện tích nhỏ chứa vùng trắng Area: Số pixel có giá trị ( nghĩa màu trắng) vùng trắng, trả dạng vô hướng Image: Là hình ảnh có kích thước với boundingbox, trả dạng nhị phân Các biến sử dụng giải thuât: count, boundingbox, maxa - Maxa gán thông số area lấy - Count gán số vùng trắng tìm thấy ảnh - boundingBox gán thông số BoundingBox lấy Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 35 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo Giải thuật đoạn chương trình định vị tách biển số sau: maxa = area; (area số pixel trắng vùng trắng đầu tiên) count = numel(Iprops); (numel(Iprops) số vùng trắng tìm thấy) boundingBox = Iprops.BoundingBox; Iprops.BoundingBox thông số BoundingBox vùng trắng đầu tiên) S i = : count Đ Thốt khỏi vòng lặp for S maxa < Iprop(i).Area Đ maxa = Iprop(i).Area boundingBox = Iprops(i).BoundingBox; Thốt khỏi lệnh điều kiện Hình 3.4 Giải thuật đoạn chương trình định vị tách biển số Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 36 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo 3.2.2 Định vị tách ký tự biển số 3.2.2.1 Mô tả Định vị tách ký tự biển số trình tiền xử lý, tách biệt ký tự có biển số Những ký tự sau tách đưa vào mạng neural huấn luyện trước để tiến hành nhận dạng ký tự Định vị Tách ký tự Hình 3.5 Định vị tách ký tự 3.2.2.2 Các bước thực - Từ ảnh vùng chứa biển số vừa cắt phần trước ta tiếp tục đo kích thước (đơn vị pixel) ảnh Với số dòng h, số cột w (ma trận) - Đo thông số vùng trắng hàm regionprops với ba thông số BoundingBox, Area Image - Cứ vùng trắng ta lại lấy kích thước vùng trắng Với số dòng oh số cột ow Nếu vùng trắng thỏa mãn điều kiện ow < (h/2) & oh > (h/3) thực cắt vùng trắng khỏi ảnh Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 37 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo 3.2.2.3 Giải thuật đoạn chương trình định vị tách ký tự biển số Iprops = regionprops(im, ‘BoundingBox’, ‘Area’, ‘Image’); Đo đạc tính chất vùng ảnh gồm: ‘BoundingBox’, ‘Area’, ‘Image’ count = numel(Iprops); (numel(Iprops) số vùng trắng tìm thấy) S i = : count Đ Thốt khỏi vòng lặp for ow = length(Iprops(i).Image(1,:)); oh = length(Iprops(i).Image(:,1)); ow số cột vùng trắng oh số dòng vùng trắng S ow < (h/2) & oh > (h/3) Đ Figure; imshow(Iprops(i).Image); Hiển thị vùng ảnh với số i tương ứng Thốt khỏi lệnh điều kiện Hình 3.6 Giải thuật đoạn chương trình định vị tách ký tự biển số Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 38 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo 3.2.3 Xây dựng huấn luyện mạng neural (CNNs) 3.2.3.1 Xây dựng mạng neural (CNNs) Hidden layer Input Classification Hình 3.7 Các thành phần mạng neural CNNs - - - - Sau tách ký tự dạng ảnh từ biển số xe, bước cần nhận dạng ký tự từ ảnh chuyển text Để nhận dạng ký tự có nhiều phương pháp nhận dạng, KNN, SVM, mạng neural lan truyền ngược, Ở sử dụng mạng neural tích chập nhận dạng ký tự số nguyên mạng neural tích chập có độ xác cao, hiệu tốc độ xử lý tính tốn nhanh mạng trước Các thành phần mạng neural CNNs xây dựng sau: Ảnh đầu vào ảnh thô kích thước 28x28 pixel Chúng ta sử dụng lớp Convolution với ma trận chập kích thước 3x3 cho ma trận ảnh đặc trưng sau chập lần ma trận ánh xạ đặc trưng tầng chập C1, ma trận ánh xạ đặc trưng có kích thước 28x28 Tức ảnh gốc ban đầu phân tích theo chiều đặc trưng khác với ma trận chập 3x3, sải bước [1 1] Sau bước ta sử dụng lớp batchnorm_1, lớp có tác dụng tăng tốc độ học mạng nơ ron, sau bước ta có ma trận kích thước 28x28 Tiếp theo ta sử dụng lớp reLu, dùng lớp để đưa phần tử ma trận nhỏ thành giá trị 0, giá trị lớn giữ nguyên, sau lớp ta có ma trận kích thước 28x28 Tiếp theo ta sử dụng lớp maxPooling(1), với kích thước [2 2], sải bước [2 2], phần đệm [0 0 0] Lớp có tác dụng chọn giá trị lớn [2 2] phần tử nhỏ ma trận Sau lớp ta có ma trận kích thước 14x14 Tiếp theo ta sử dụng lớp Convolution với 16 ma trận chập kích thước 3x3 Sải bước [1 1] Sau lớp ma trận ta có từ lớp maxPooling(1) cho ta 16 ma trận kích thước 14x14 Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 39 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo - - - - - - - - 3.2.3.2 Ta tiếp tục sử dụng lớp batchnorm_2, lớp có tác dụng tăng tốc độ học mạng nơ ron Sau lớp ta có 16 ma trận kích thước 14x14 với ma trận ta có từ lớp maxPooling(1) Tiếp theo ta sử dụng lớp reLu(2), dùng lớp để đưa phần tử ma trận nhỏ thành giá trị 0, giá trị lớn giữ nguyên, sau lớp ta có 16 ma trận kích thước 14x14 với ma trận ta có từ lớp maxPooling(1) Tiếp theo ta sử dụng lớp maxPooling(2), với kích thước [2 2], sải bước [2 2], phần đệm [0 0 0] Lớp có tác dụng chọn giá trị lớn [2 2] phần tử nhỏ ma trận Sau lớp cho ta 16 ma trận kích thước 7x7 với ma trận ta có từ lớp maxPooling(1) Tiếp theo ta sử dụng lớp Convolution(3) với 32 ma trận chập kích thước 3x3 Sải bước [1 1] Sau lớp ma trận cho ta 32 ma trận kích thước 7x7 với ma trận ta có từ lớp maxPooling(2) Ta tiếp tục sử dụng lớp batchnorm(3), lớp có tác dụng tăng tốc độ học mạng nơ ron Sau lớp ta có 32 ma trận kích thước 7x7 với ma trận ta có từ lớp maxPooling(2) Tiếp theo ta sử dụng lớp reLu(3), dùng lớp để đưa phần tử ma trận nhỏ thành giá trị 0, giá trị lớn giữ nguyên, sau lớp ta có 32 ma trận kích thước 7x7 với ma trận ta có từ lớp maxPooling(3) Với ma trận ta có sau lớp reLu(3), ta dùng lớp fullyconnected, lớp có 13 outputs, thơng số cài đặt inputSize “auto”, có nghĩa mạng tự động định kích thước đầu vào trình dạy Lớp lớp Softmax, lớp cho 13 outputs Cuối lớp phân loại Classification outputs phân biệt 13 loại gồm 10 số từ đến 9, chữ A K R Huấn luyện mạng Neural (CNNs): Hình 3.8 Huấn luyện mạng neural CNNs Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 40 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo Chương 4: Kết hướng phát triển 4.1 Kết Kết sau thực xong đề tài: - Kết trình tiền xử lý đạt mục tiêu ban đầu - Mạng neural nhận dạng xác ký tự - Xuất thành công kết nhận dạng sang file ‘txt’ - Nâng cao kỹ làm việc nhóm, nhìn nhận, giải vấn đề - Qua đề tài này, chúng em học hỏi thêm nhiều kiến thức xử lý ảnh công nghệ trí tuệ nhân tạo làm tăng vốn hiểu biết thân Một số kết nhận từ mơ phỏng: Hình 4.1 Kết mơ biển số xe ‘51A – 212.18’ Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 41 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo Hình 4.2 Kết mơ biển số xe ‘51A – 175.56’ Hình 4.3 Kết mơ biển số xe ‘43A – 339.94’ Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 42 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo Hình 4.4 Kết mô biển số xe ‘99K – 9999’ 4.2 Giới hạn đề tài 4.2.1 Những giới hạn dụng cụ thiết bị - Với điều kiện tài khơng cho phép nên việc thực đề tài nhóm khơng mơ hình hóa mà mơ mần mềm matlab - Vì giới hạn tốc độ xử lý máy tính nên khơng có nhiều lựa chọn cho thành phần cấu trúc mạng neural tạo Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 43 Tự động nhận dạng biển số xe cơng nghệ trí tuệ nhân tạo 4.2.2 Những giới hạn người thời gian Đây lĩnh vực mẻ, nên chúng em bắt đầu đề tài với khái niệm Cùng với hạn hẹp thời gian dẫn đến việc tiền xử lý hình ảnh, việc sử dụng đặc điểm đối tượng thuật toán chưa tối ưu, chưa thể áp dụng vào thực tế Một số giới hạn cụ thể: - Biển số phải chữ đen, trắng, có hàng - Biển số phải ngun vẹn, khơng bị tróc sơn hay rỉ sét, dơ bẩn, khơng bị che khuất - Góc nghiêng khơng 45 độ so với phương ngang - Hình chụp biển số khơng bị mờ, ký tự biển số phân biệt, nhận dạng trực quan - Ảnh chụp khơng bị nhiễu ánh sáng - Vì giới hạn vốn hiểu biết nên khơng có nhiều lựa chọn cho thành phần cấu trúc mạng neural tạo - Muốn huấn luyện mạng neural để hoạt động tốt phải có lượng liệu huấn luyện lớn phù hợp với đối tượng nhận dạng Để đạt điều phải nhiều thời gian cơng sức - Sai số nhiều, độ xác chưa cao 4.3 Hướng phát triển đề tài - Nâng cao hiệu chương trình, tách ly kí tự biển số trường hợp biển số bị nhiều nhiễu, mát thông tin nhiễu từ điều kiện mơi truờng, tìm vùng biển số ảnh có độ tương phản biển số thấp Đặc biệt biển xe có màu đỏ chữ trắng,… - Phát triển chương trình thành module phần cứng Có khả tương thích với thiết bị quan sát camera - Nghiên cứu theo hướng ứng dụng cụ thể : giám sát phương tiện giao thông, xử lý vi phạm giao thông, quản lý xe bãi giữ xe, kho vật tư… Sinh viên thực : Hoàng Đức Nhật Dương Đức Khải Giáo viên hướng dẫn : TS Nguyễn Quốc Định 44 PHỤ LỤC 1 Code tạo mạng CNN huấn luyện mạng CNN: digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', 'nndatasets','DigitDataset'); imds = imageDatastore(digitDatasetPath, 'IncludeSubfolders',true,'LabelSource','foldernames'); figure; perm = randperm(13000,20); for i = 1:20 subplot(4,5,i); imshow(imds.Files{perm(i)}); end labelCount = countEachLabel(imds); img = readimage(imds,1); numTrainFiles = 750; [imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize'); layers = [ imageInputLayer([28 28 1]) convolution2dLayer(3,8,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,16,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,32,'Padding','same') batchNormalizationLayer reluLayer fullyConnectedLayer(13) softmaxLayer classificationLayer]; options = trainingOptions('sgdm', 'InitialLearnRate',0.01, 'MaxEpochs',4, 'Shuffle','every-epoch', 'ValidationData',imdsValidation, 'ValidationFrequency',30, 'Verbose',false, 'Plots','training-progress'); net = trainNetwork(imdsTrain,layers,options); Code chương trình tách biển số, ký tự khỏi ảnh nhận dạng: img=imread('x2-ok-1.jpg'); figure; xgray=rgb2gray(img); xbinari=imbinarize(xgray,0.7); theta=(0:179); [R, xp] = radon(edge(xbinari,'sobel'), theta); % tach bien bang ham gray tu 0-179 [r,c] = find(R == max(R(:))); thetap = theta(c(1)); angle = 90 - thetap; img=imrotate(img,angle,'bilinear'); %%%%%%%%%%%%%%%%%%%% imgray=rgb2gray(img); imbin=imbinarize(imgray, 0.5); im = edge(imbin, 'sobel'); %cat bien anh im = imdilate(im, strel('diamond',5)); % dan bien anh im = imfill(im, 'holes'); % fill im = imerode(im, strel('diamond', 15)); %xoi mon Iprops=regionprops(im,'BoundingBox','Area', 'Image'); % lay thong so cac vung trang area = Iprops.Area; count = numel(Iprops); maxa= area; boundingBox = Iprops.BoundingBox; for i=1:count if maxa