Tải bản đầy đủ (.pdf) (131 trang)

Hệ thống phát hiện và nhận diện biển báo giao thông trên Kit Friendly ARM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.53 MB, 131 trang )

ĐẠ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ê Tỉế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. Bùi Trọng Tú

........................................

(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.HCM ngày 15.
tháng 01 năm 2016

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghỉ 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. CTHĐTS. Lê Chí Thông
2. PB1: PGS.TS Lễ Tiến Thường
3. PB2: TS. Bùi Trọng Tú
4. UV: TS Nguyễn Minh Son
5. CBHD: TS. Trương Quang Vinh

Xác nhận của Chủ tịch Hộỉ đồ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.
II. 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
(Họ tên và chữ ký)

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
(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.

Tp. 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.5Ghz.

Hệ thống thu thập hình ảnh biển báo thông qua camera được gắn ửê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.

-3
-


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

-4-



MỤC LỤC
1.

2.

CHƯƠNG 1: GIỚI THIỆU .......................................................................................... 1

1.1

Giới thiệu tổng quan........................................................................................ 1

1.2

Mục tiêu đề tài................................................................................................. 1


1.3

Một số thách thức và giới hạn đề tài ............................................................... 1

1.3.1

Một số thách thức ..................................................................................... 2

1.3.2

Giới hạn đề tài .......................................................................................... 5

CHƯƠNG 2: TÌNH HÌNH NGHIÊN CỨU................................................................. 9

2.1

Cơ bản về giải thuật nhận dạng biển báo giao thông ...................................... 9

2.2

Các công trình nghiên cứu liên quan............................................................... 9

2.2.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 .......... 9

2.2.2

Các công trình nghiên cứu sử dụng thuật toán máy học ........................ 14


2.3

3.

Phân tích tổng quan lý thuyết ........................................................................ 16

2.3.1

Tiền xử lý ............................................................................................... 17

2.3.2

Phát hiện biển báo .................................................................................. 20

2.3.3

Giới thiệu thu viện mã nguồn mở OpenCV ........................................... 38

CHƯƠNG 3: NỘI DUNG ........................................................................................... 40

3.1

Giải thuật đề nghị .......................................................................................... 40

3.1.1

Ảnh đầu vào ........................................................................................... 40

3.1.2


Tiền xử lý ............................................................................................... 40

3.1.3

Phát hiện biển ......................................................................................... 43

3.1.4

Nhận dạng .............................................................................................. 57

3.1.5

Kết quả mô phỏng .................................................................................. 59

3.1.6

Một số phương pháp tối ưu .................................................................... 59

-V-



3.2

4.

Thiết kế hệ thống nhúng phát hiện và nhận dạng biển báo ........................... 66

3.2.1


Kit nhúng Tiny4412 ............................................................................... 66

3.2.2

Cài đặt thư viện, hệ điều hành trên kit Tiny4412 ...................................68

3.2.3

Các bước biên dịch cài đặt OpenCV ......................................................81

3.2.4

Porting ứng dụng lên kit nhúng .............................................................. 89

CHƯƠNG 4: THỬ NGHIỆM ĐÁNH GIÁ .............................................................. 94

4.1 Phương pháp thử nghiệm: ............................................................................... 94
4.2 Đánh giá: ....................................................................................................... 109
4.3 Kết luận:........................................................................................................ 109
TÀI LIỆU THAM KHẢO.................................................................................................. 110
PHỤ LỤC ............................................................................................................................ 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

- V11 -




DANH SÁCH BẢNG
Bảng 1.1 Danh sách biển cấm được thử nghiệm .......................................................... 5
Bảng 1.2 Danh sách biển báo nguy hiểm được thử nghiệm ......................................... 6
Bảng 1.3 Danh sách các biển báo hiệu lệnh được thử nghiệm ..................................... 8
Bảng 2.1 Bảng giá trị thông thường của Hue và Saturation ....................................... 22
Bảng 3.1 Giá trị các ngưỡng trong phân đoạn màu .................................................... 46
Bảng 3.2 Số lượng thread xử lý các contour .............................................................. 65
Bảng 3.3 Bảng so sánh các kit phát triển nhúng......................................................... 66
Bảng 4.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
Hình 1.2 Biển báo bị sương mù bao phủ ...................................................................... 2
Hình 1.3 Biển báo bị che khuất .................................................................................... 3
Hình 1.4 Biển báo thiếu sáng........................................................................................ 3
Hình 1.5 Biển báo trùng màu nền (quảng cáo ) ............................................................ 4
Hình 1.6 Quá nhiều biển báo cùng lúc ......................................................................... 4
Hình 2.1 Hệ thống nhận diện biển báo của Hoferlin, K. Zimmer .............................. 10
Hình 2.2 Giải thuật nhận diện biển báo của Yin, et.................................................... 11
Hình 2.3 Hệ thống nhận diện biển báo của Bùi Minh Thành, et ............................... 13
Hình 2.4 Các giai đoạn nhận diện biển báo ............................................................... 13
Hình 2.5 Đặc trưng Haar-like ..................................................................................... 15
Hình 2.6 Lưu đồ giải thuật nhận diện của Lê Thanh Tâm, et ..................................... 16
Hình 2.7 Bài toán phát hiện và nhận diện biển báo .................................................... 17

Hình 2.8 Không gian màu HSV.................................................................................. 18
Hình 2.9 Biểu diễn màu sắc Hue ................................................................................ 18
Hình 2.10 Khoảng cách Euclid của hai véc tơ............................................................ 21
Hình 2.11 H_out theo RED ........................................................................................ 22
Hình 2.12 H_out theo Green....................................................................................... 23
Hình 2.13 H_out theo Blue ......................................................................................... 23
Hình 2.14 Lưu đồ giải thuật Shadow High Light Invariant ........................................ 25
Hình 2.15 HSV Achrom - HSV color space ............................................................... 26
Hình 2.16 Chromatic Zone của màu đỏ ..................................................................... 27
Hình 2.17 Phân đoạn bên ừong của biến báo ............................................................ 29
Hình 2.18 Lưu đồ thuật toán Watershed [7] ............................................................... 30
Hình 2.19 Phát hiện vùng ứng cử dính liền bởi thuật toán watershed ........................ 31
Hình 2.20 Kiến trúc tổng quát của Artificial Neural Network .................................. 32
Hình 2.21 Quá trình xử lí của một ANN ................................................................... 33
Hình 2.22 Ví dụ về hàm chuyển đổi đầu vào tìm kết quả .......................................... 34
Hình 2.23 Minh họa mẫu vector hỗ ttợ (support vector) ........................................... 37

-9-



Hình 2.24 Tổng quan OpenCV ................................................................................... 39
Hình 3.1 Sơ đồ tổng quan hệ thống nhận dạng........................................................... 40
Hình 3.2 Ví dụ tạo vùng mặt nạ................................................................................. 41
Hình 3.3 Minh họa vùng ảnh cần xử lý ..................................................................... 41
Hình 3.4 Ảnh trước khi áp dụng bộ lọc Gaussian ...................................................... 42
Hình 3.5 Ảnh sau khi áp dụng bộ lọc Gaussian.......................................................... 43
Hình 3.6 Sơ đồ khối phát hiện biển báo ..................................................................... 43
Hình 3.7 Ngưỡng giá trị s và V đối với màu đỏ trong Chromatic Zone.................... 44
Hình 3.8 Lưu đồ giải thuật phân đoạn màu ............................................................... 46

Hình 3.9 Phát hiện biển báo ngược chiều ................................................................... 47
Hình 3.10 Ảnh gốc chuẩn bị phân đoạn màu ............................................................. 49
Hình 3.11 Ảnh sau khi phân đoạn màu ...................................................................... 49
Hình 3.12 Minh họa lấy toàn bộ đối tượng sau khi phân đoạn màu........................... 50
Hình 3.13 Minh họa lấy phần bên trong để tách đối tượng ........................................ 50
Hình 3.14 Minh họa loại bỏ đối tượng dựa trên diện tích .......................................... 50
Hình 3.15 Minh họa biển báo hiệu lệnh ..................................................................... 51
Hình 3.16 Biển báo hiệu lệnh sau khi phân đoạn màu ............................................... 52
Hình 3.17 Lấy phần bên trong sau khi phân đoạn màu .............................................. 52
Hình 3.18 Lấy toàn bộ phần bên trong và bên ngoài của đối tượng........................... 53
Hình 3.19 Hình minh họa kết quả trích xuất đặc trưng .............................................. 57
Hình 3.20 Mô phỏng giải thật với biển báo cấm ô tô rẽ phải ..................................... 59
Hình 3.21 Ảnh gốc và ảnh phân đoạn màu bị đứt cạnh .............................................. 61
Hình 3.22 Ảnh gốc và ảnh phân đoạn màu sau giãn nở ............................................. 62
Hình 3.23 Minh họa thread và process ....................................................................... 63
Hình 3.24 Kít nhúng FriendlyARM Tiny 4412 .......................................................... 67
Hình 3.25 Bo mạch Tiny4412 .................................................................................... 68
Hình 3.26 Chạy SD-Flasher.exe ................................................................................. 69
Hình 3.27 SD-Flasher chọn Mini4412/Tiny4412 ....................................................... 69
Hình 3.28 SD-Flasher relayout ................................................................................... 70
Hình 3.29 SD-Flasher Fuse ........................................................................................ 71

-X-



Hình 3.30 Chép các file boot image lên SD card ....................................................... 72
Hình 3.31 Cài đặt Qt Creator từ Ubuntu Software Center ......................................... 76
Hình 3.32 Giao diện của Qt Creator ........................................................................... 77
Hình 3.33 Thêm Tool chains vào QT Creator ............................................................ 80

Hình 3.34 Thêm qmake của Qt Everywhere vào Qt Creator...................................... 80
Hình 3.35 Build configuration cho kit ARM .............................................................. 81
Hình 3.36 Cmake Opencv

Desktop Use default compiler....................................... 82

Hình 3.37 Cmake Opencv

Desktop Configure ........................................................ 83

Hình 3.38 Cmake Opencv

Desktop Generate .......................................................... 84

Hình 3.39 Cmake Opencv

ARM tùy chọn cross compiler ...................................... 85

Hình 3.40 Cmake Opencv ARM đường dẫn tới cross compiler ................................ 86
Hình 3.41 Cmake Opencv kit configure ..................................................................... 87
Hình 3.42 Cmake Opencv kit generating ................................................................... 88
Hình 3.43 Copy thư viện opencv lên kit ..................................................................... 89
Hình 3.44 Copy thư viện qte lên kit ........................................................................... 90
Hình 3.45 Chỉnh sửa đường dẫn thư viện build cho kit ............................................. 91
Hình 3.46 Copy ứng dụng xuống kit .......................................................................... 91
Hình 3.47 Chỉnh sửa file rcS ...................................................................................... 92
Hình 3.48 Chỉnh sửa file appscript ............................................................................. 93
Hình 4.1 Nhận diện biển báo bị chói nắng ................................................................. 95
Hình 4.2 Nhận diện biển báo có màu sơn mờ, bong ttóc ........................................... 95
Hình 4.3 Nhận diện biển báo lúc ttời tối, sơn phai màu ............................................. 96

Hình 4.4 Nhận diện biển báo có viền trùng màu nền ................................................. 96
Hình 4.5 Nhận diện biển báo ánh sáng không đồng đều, bóng râm ........................... 97
Hình 4.6 Nhận diện biển báo mờ, blur do di chuyển .................................................. 97
Hình 4.7 Nhận diện biển báo bị blur 1 ....................................................................... 98
Hình 4.8 Nhận diện biển báo bị blur 2 ....................................................................... 98
Hình 4.9 Nhận diện biển báo bị blur 3 ....................................................................... 99
Hình 4.10 Nhận diện biển báo bị cong, méo .............................................................. 99
Hình 4.11 Thử nghiệm giải thuật ttên kit ................................................................. 104

- xi -


Hình 4.12 Nhận diện biển báo giao thông trên kit 1................................................. 105
Hình 4.13 Nhận diện biển báo giao thông trên kit 2................................................. 105
Hình 4.14 Thời gian nhận diện biển báo

124a - 23ms .......................................... 106

Hình 4.15 Thời gian nhận diện biển báo

128 ~24ms ............................................ 107

Hình 4.16 Thời gian nhận diện biển báo

13 lb - 21ms .......................................... 107

Hình 4.17 Thời gian nhận diện biển báo

201a - 20ms .......................................... 108


Hình 4.18 Thời gian nhận diện biển báo 208 - 20ms ............................................... 108

- xii -



1. CHƯƠNG 1: GIỚI THIỆU
1.1 Giới thiệu tổng quan

Vấn đề về an toàn giao thông luôn là một chủ đề nóng được cộng đồng và nhà nước
quan tâm. Mỗi ngày số người chết vì tai nạn giao thông không ngừng tăng lên, nguyên
nhân chủ yếu là do ý thức người tham gia giao thông, ngoài ra còn phải kể tới cơ sở hạ
tầng giao thông. Tuy nhiên cũng không thể đổ lỗi hoàn toàn cho người tham gia giao
thông, một phần các tài xế lưu thông trên đường luôn phải xử lí rất nhiều tình huống
liên tục do đó sự thiếu sót là không tránh khỏi, một phần không nhỏ đó là ý thức tham
gia giao thông.
Để giảm bớt thiếu sót trong xử lý tình huống của tài xế cũng như giảm bớt tai nạn giao
thông, việc giúp tài xế phát hiện và nhận diện biển báo giao thông có thể giảm bớt phần
nào tai nạn giao thông. Phát hiện và nhận diện biển báo giao thông là một phần chính
của hệ thống hỗ trợ lái xe DAS (Driver Assistant Systems). Nó có thể cung cấp thông
tin như đưa ra các cảnh báo cho tài xế, hoặc hỗ trợ cho việc lái xe tự động. Trong phạm
vi luận văn này em sẽ từng bước xây dựng ra hệ thống này dựa trên bộ thư viện xử lý
ảnh OpenCV, chạy trên Kit nhúng Friendly ARM Tiny4412.
1.2 Mục tiêu đề tài

-

Phát triển giải thuật phát hiện và nhận dạng biển báo giao thông tại Việt Nam.

-


Mô phỏng giải thuật trên PC

-

Xây dựng hệ thống phát hiện và nhận diện biển báo giao thông ở Việt Nam, sử
dụng kit Friendly Arm Tiny 4412

-

Xây dựng cơ sở dữ liệu hình ảnh và video về biển báo giao thông Việt Nam.

1.3 Một số thách thức và giói hạn đề tài

Biển báo giao thông đường bộ 2015 hay còn gọi là hệ thống báo hiệu đường bộ là
hệ thống các biển báo được đặt ven đường giao thông, biển báo giao thông cung cấp các
thông tin cụ thể đến người tham gia giao thông. Được chia thành 6 nhóm sau: biển báo
cấm, biển báo nguy hiểm, biển hiệu lệnh, biển chỉ dẫn, biển phụ, vạch



×