ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HCM TRẦN QUANG HOÀNG GIANG HỆ THỐNG PHÁT HIỆN VÀ NHẬN DIỆN BIỂN BÁO GIAO THÔNG TRÊN KIT FRIENDLY ARM Chuyên ngành: Kỹ Thuật Điện Tử Mã số: 60 52 02 03 LUẬN VĂN THẠC SĨ TP. Hồ Chí Minh, tháng 01 năm 2016 Công trình được hoàn thành tại: Trường Đại học Bách Khoa –ĐHQG-HCM Cán bộ hướng dẫn khoa học : TS Trương Quang Vinh. (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1 : PGS.TS Lê Tiến Thường.
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2 : TS. (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp. tháng 01 năm 2016 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1. Lê Chí Thông 2.TS Lê Tiến Thường 3.
UV: TS Nguyễn Minh Sơn 5. Trương Quang Vinh Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có). CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN- ĐIỆN TỬ ĐẠI HỌC QUỐC GIA TP.HCM 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 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: TRẦN QUANG HOÀNG GIANG MSSV: 13141117 Ngày, tháng, năm sinh: 25/09/2988 Nơi sinh: Quảng Ngãi Chuyên ngành: Kỹ Thuật Điện Tử Mã số: 60 52 02 03 I. TÊN ĐỀ TÀI: HỆ THỐNG PHÁT HIỆN VÀ NHẬN DIỆN BIỂN BÁO GIAO THÔNG TRÊN KIT FRIENDLY ARM NHIỆM VỤ VÀ NỘI DUNG: Tìm hiểu, xây dựng giải thuật và thiết kế hệ thống phát hiện và nhận diện biển báo giao thông tại Việt Nam, thực hiện trên kít nhúng FriendlyARM.
NGÀY GIAO NHIỆM VỤ: 17/08/2015 III. NGÀY HOÀN THÀNH NHIỆM VỤ: 04/12/2015 IV. CÁN BỘ HƯỚNG DẪN: TS. TRƯƠNG QUANG VINH Tp.
HCM, ngày …… tháng …… năm 2016 CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) (Họ tên và chữ ký) TRƯỞNG KHOA ĐIỆN ĐIỆN TỬ (Họ tên và chữ ký LỜI CÁM ƠN Em xin gởi đến TS. Trương Quang Vinh lời cảm ơn chân thành với sự trân trọng và lòng biết ơn sâu sắc về sự hướng dẫn đầy chu đáo và nhiệt tình. Thầy đã dẫn dắt, tạo cho em cách tư duy và làm việc một cách khoa học, hướng em đến đề tài khoa học mới mẻ, tiếp cận với các công nghệ hiện đại. Em xin chân thành cám ơn các thầy cô ngành Kỹ Thuật Điện Tử đã hết lòng dạy dỗ và truyền đạt cho em những kiến thức quý báu.
Con xin gởi đến cha mẹ lòng kính trọng và biết ơn sâu sắc nhất. Cha mẹ đã nuôi nấng dạy dỗ con nên người và là chỗ dựa tinh thần vững chắc cho con trong cuộc đời. Tôi xin cảm ơn các bạn đã cùng học tập, giúp đỡ, động viên và cùng tôi bước trên con đường nghiên cứu này. Hồ Chí Minh, tháng 01 năm 2016 Học viên TRẦN QUANG HOÀNG GIANG -i- TÓM TẮT LUẬN VĂN Luận văn trình bày hệ thống nhúng phát hiện và nhận dạng biển báo giao thông hỗ trợ lái xe an toàn thuận tiện hơn.
Hệ thống sử dụng bộ thư viện mã nguồn mở OpenCV do Intel phát triển và được thực hiện trên kit Friendly Arm Tiny 4412 với vi xử lý Samsung Exynos4412 ARM Cortex-A9 (Quad-Core) 1. Hệ thống thu thập hình ảnh biển báo thông qua camera được gắn trên xe từ đó phát hiện, theo dõi và nhận dạng biển báo hiển thị lên màn hình cho tài xế biết được loại biển báo. Quá trình phát hiện và nhận dạng trải qua ba giai đoạn chính: tiền xử lý, phát hiện và nhận dạng. Thuật toán dựa trên đặc trưng về màu sắc, hình dạng của từng loại biển báo để phân đoạn màu sử dụng thuật toán HSV Achrom, phân đoạn hình học với phương pháp Affine Moment Invariant sau đó phân loại biển báo trước khi đưa vào giai đoạn nhận dạng.
Phương pháp nhận dạng sử dụng thuật toán phân lớp Support Vector Machines (SVMs) có tốc độ phân lớp nhanh và độ chính xác cao. Kết quả thực nghiệm cho thấy thuật toán đáp ứng được cho thời gian thực, mang lại hiệu suất cao và có thể áp dụng vào thực tế. - ii - ABSTRACT This thesis presents an embedded system to detect and recognize traffic signs supporting driving more safety and convenient. The system uses the open source OpenCV library developed by Intel and implemented on Friendly Arm development kit named “Tiny 4412” with Samsung Exynos ARM Cortex-A9 (Quad-Core) 1.5Ghz micro-processor.
The system capture traffic signs through a camera mounted on moving vehicle, then detect, tracking and recognize signs, display the result on the screen. The system is based on three major stages: pre-processing, detection and recognition. The algorithm is based on the characteristics of color, shape. The color segmentation using HSV Achrom algorithms, shape segmentation using Affine Invariant Moment method before feed to classification stage.
Recognition method using Support Vector Machines (SVMs) classifier with fast speed and high accuracy. Experimental results show that the algorithm can be used for real-time applications, providing high performance and can be applied in reality. - iii - LỜI CAM ĐOAN Tôi xin cam đoan các kết quả đề tài thực hiện chưa từng công bố trong bất kỳ công trình khoa học trước đây. Người cam đoan TRẦN QUANG HOÀNG GIANG - iv - MỤC LỤC 1.
CHƢƠNG 1: GIỚI THIỆU .1 Giới thiệu tổng quan .2 Mục tiêu đề tài .3 Một số thách thức và giới hạn đề tài.1 Một số thách thức .2 Giới hạn đề tài. CHƢƠNG 2: TÌNH HÌNH NGHIÊN CỨU .1 Cơ bản về giải thuật nhận dạng biển báo giao thông .2 Các công trình nghiên cứu liên quan .1 Các công trình nghiên cứu dựa trên thông tin màu sắc, hình dạng .2 Các công trình nghiên cứu sử dụng thuật toán máy học.3 Phân tích tổng quan lý thuyết .2 Phát hiện biển báo .3 Giới thiệu thư viện mã nguồn mở OpenCV. CHƢƠNG 3: NỘI DUNG .1 Giải thuật đề nghị .1 Ảnh đầu vào .3 Phát hiện biển.5 Kết quả mô phỏng .6 Một số phương pháp tối ưu .2 Thiết kế hệ thống nhúng phát hiện và nhận dạng biển báo.1 Kit nhúng Tiny4412 .2 Cài đặt thư viện, hệ điều hành trên kit Tiny4412 .3 Các bước biên dịch cài đặt OpenCV.4 Porting ứng dụng lên kit nhúng. CHƢƠNG 4: THỬ NGHIỆM ĐÁNH GIÁ .1 Phương pháp thử nghiệm: .109 TÀI LIỆU THAM KHẢO.
112 - vi - DANH SÁCH CÁC CHỮ VIẾT TẮT VIẾT TẮT VIẾT ĐẦY ĐỦ GIẢI THÍCH SVM Support Vector Machine Máy véc-tơ hỗ trợ RGB Red Green Blue Hệ màu RGB HSV Hue Saturation Value Hệ màu HSV Luminance, Chroma: Blue, YCbCr Green (Y), Blue (Cb), Red (Cr) Chroma: Red - vii - DANH SÁCH BẢNG Bảng 1.1 Danh sách biển cấm được thử nghiệm.2 Danh sách biển báo nguy hiểm được thử nghiệm .3 Danh sách các biển báo hiệu lệnh được thử nghiệm .1 Bảng giá trị thông thường của Hue và Saturation .1 Giá trị các ngưỡng trong phân đoạn màu .2 Số lượng thread xử lý các contour .3 Bảng so sánh các kit phát triển nhúng .1 Kết quả thử nghiệm .100 - viii - DANH SÁCH HÌNH Hình 1.1 Biển báo bị phai mờ .2 Biển báo bị sương mù bao phủ.3 Biển báo bị che khuất .4 Biển báo thiếu sáng .5 Biển báo trùng màu nền (quảng cáo ) .6 Quá nhiều biển báo cùng lúc .1 Hệ thống nhận diện biển báo của Hoferlin, K.2 Giải thuật nhận diện biển báo của Yin, et.3 Hệ thống nhận diện biển báo của Bùi Minh Thành, et.4 Các giai đoạn nhận diện biển báo .5 Đặc trưng Haar-like.6 Lưu đồ giải thuật nhận diện của Lê Thanh Tâm, et.7 Bài toán phát hiện và nhận diện biển báo .8 Không gian màu HSV .9 Biểu diễn màu sắc Hue .10 Khoảng cách Euclid của hai véc tơ .11 H_out theo RED .12 H_out theo Green .13 H_out theo Blue .14 Lưu đồ giải thuật Shadow High Light Invariant .15 HSV Achrom - HSV color space .16 Chromatic Zone của màu đỏ .17 Phân đoạn bên trong của biến báo .18 Lưu đồ thuật toán Watershed [7] .19 Phát hiện vùng ứng cử dính liền bởi thuật toán watershed .20 Kiến trúc tổng quát của Artificial Neural Network .21 Quá trình xử lí của một ANN .22 Ví dụ về hàm chuyển đổi đầu vào tìm kết quả .23 Minh họa mẫu vector hỗ trợ (support vector) .24 Tổng quan OpenCV .1 Sơ đồ tổng quan hệ thống nhận dạng .2 Ví dụ tạo vùng mặt nạ .3 Minh họa vùng ảnh cần xử lý .4 Ảnh trước khi áp dụng bộ lọc Gaussian .5 Ảnh sau khi áp dụng bộ lọc Gaussian .6 Sơ đồ khối phát hiện biển báo .7 Ngưỡng giá trị S và V đối với màu đỏ trong Chromatic Zone .8 Lưu đồ giải thuật phân đoạn màu .9 Phát hiện biển báo ngược chiều .10 Ảnh gốc chuẩn bị phân đoạn màu .11 Ảnh sau khi phân đoạn màu .12 Minh họa lấy toàn bộ đối tượng sau khi phân đoạn màu .13 Minh họa lấy phần bên trong để tách đối tượng .14 Minh họa loại bỏ đối tượng dựa trên diện tích .15 Minh họa biển báo hiệu lệnh .16 Biển báo hiệu lệnh sau khi phân đoạn màu .17 Lấy phần bên trong sau khi phân đoạn màu.18 Lấy toàn bộ phần bên trong và bên ngoài của đối tượng .19 Hình minh họa kết quả trích xuất đặc trưng.20 Mô phỏng giải thật với biển báo cấm ô tô rẽ phải.21 Ảnh gốc và ảnh phân đoạn màu bị đứt cạnh .22 Ảnh gốc và ảnh phân đoạn màu sau giãn nở .23 Minh họa thread và process .24 Kít nhúng FriendlyARM Tiny 4412 .25 Bo mạch Tiny4412 .26 Chạy SD-Flasher.27 SD-Flasher chọn Mini4412/Tiny4412 .28 SD-Flasher relayout .29 SD-Flasher Fuse .30 Chép các file boot image lên SD card .31 Cài đặt Qt Creator từ Ubuntu Software Center .32 Giao diện của Qt Creator.33 Thêm Tool chains vào QT Creator .34 Thêm qmake của Qt Everywhere vào Qt Creator .35 Build configuration cho kit ARM .36 Cmake Opencv Desktop Use default compiler .37 Cmake Opencv Desktop Configure .38 Cmake Opencv Desktop Generate .39 Cmake Opencv ARM tùy chọn cross compiler .40 Cmake Opencv ARM đường dẫn tới cross compiler .41 Cmake Opencv kit configure .42 Cmake Opencv kit generating .43 Copy thư viện opencv lên kit .44 Copy thư viện qte lên kit .45 Chỉnh sửa đường dẫn thư viện build cho kit .46 Copy ứng dụng xuống kit .47 Chỉnh sửa file rcS .48 Chỉnh sửa file appscript .1 Nhận diện biển báo bị chói nắng .2 Nhận diện biển báo có màu sơn mờ, bong tróc .3 Nhận diện biển báo lúc trời tối, sơn phai màu .4 Nhận diện biển báo có viền trùng màu nền .5 Nhận diện biển báo ánh sáng không đồng đều, bóng râm .6 Nhận diện biển báo mờ, blur do di chuyển .7 Nhận diện biển báo bị blur 1 .