1. Trang chủ
  2. » Tất cả

ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG

86 662 1
Tài liệu đã được kiểm tra trùng lặp

Đ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 86
Dung lượng 4,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

5 Hình 1.4 Mô hình xử lý nh n d ng biển báo giao thông c a bƠi báo ắA System for Traffic Sign Detection, Tracking, and Recognition Using Color, Shape, and Motion Information” [7].. 5 Hìn

Trang 1

M C L C

TRANG T A

QUY T Đ NH GIAO Đ TÀI

LÝ L CH KHOA H C i

L I CAM ĐOAN ii

L I C M N iii

TÓM T T iv

M C L C vi

CÁC T VI T T T ix

DANH SÁCH CÁC HÌNH x

CH NG 1: GI I THI U 1

1.1 Tổng quan tình hình nghiên c u 1

1.2 Các k t qu nghiên c u trong vƠ ngoƠi n c đư công bố 2

1.2.1 Các k t qu nghiên c u trong n c 2

1.2.2 Các k t qu nghiên c u ngoƠi n c 4

1.3 Nhi m v c a đ tài 6

1.3.1 Yêu cầu c a đ tài 6

1.3.2 Nội dung cần th c hi n 7

CH NG 2: C S LÝ THUY T X LÝ NH 9

2.1 Các lý thuy t xử lý nh 9

2.1.1 Không gian màu 9

2.1.2 Các toán tử hình thái 11

Trang 2

2.1.3 L c trung v (Median Filter) 19

2.2 Th vi n th giác máy tính mã nguồn m OpenCV 21

2.2.1 Gi i thi u th vi n mã nguồn m OpenCV 21

2.2.2 L ch sử OpenCV 22

2.2.3 Ki n trúc c a OpenCV 23

2.3 Đ ng cong Gielis 24

2.4 Thu t toán tối u Levenberg-Marquardt 26

CH NG 3: THI T K VÀ XÂY D NG CH NG TRỊNH 28

3.1 M c đích 28

3.2 Ch c năng c a ch ng trình 28

3.3 Xây d ng ch ng trình 29

3.3.1 Khối IHLS_NHS 29

3.3.2 Khối ti n xử lý 32

3.3.3 Khối xử lỦ đ ng biên 36

3.3.4 Góc quay offset 40

3.3.5 Khối tái t o hình d ng dùng đ ng cong Gielis 43

3.4 Ch ng trình trình nh n d ng trên máy tính 46

CH NG 4: THI T K VÀ TH C HI N H TH NG NHÚNG PHÁT HI N VÀ NH N D NG BI N BÁO 49

4.1 Yêu cầu thi t k 49

4.2 CƠi đặt cho kit nhúng 51

Trang 3

4.2.2 CƠi đặt h đi u hành 52

4.2.3 Kh i động h đi u hành và giao di n LXTerminal 53

4.2.4 CƠi đặt th vi n OPENCV cho QT, mã nguồn C++ 54

4.2.5 CƠi đặt driver vƠ th vi n cho Pi Camera 58

4.2.6 CƠi đặt th vi n GPIO trên kit nhúng 58

4.2.7 Xây d ng ch ng trình C++ trên kit nhúng 59

4.3 L u đồ gi i thu t tổng quát ch ng trình th c thi trên kit nhúng 59

CH NG 5: K T QU TH C HI N 63

5.1 Các nh đ a vƠo thử nghi m vƠ đánh giá 63

5.2 M ch thi công 73

CH NG 6: K T LU N VÀ H NG PHÁT TRI N 74

6.1 K t lu n 74

6.2 H ng phát triển 75

TÀI LI U THAM KH O 76

Trang 4

CÁC T VI T T T

CPU Central Processing Unit

HSI Hue ậ Saturation ậ Intensity

IPP Intergrated Performance Primitives

IPP Intergrated Performance Primitives

OpenCV Open Computer Vision

ORC Optical Character Recognition

PCA Principle Components Analysis

RGB Red ậ Green ậ Blue

SVM Support Vector Machine

NHS Normalized Hue Saturation

IHLS Improved Hue Luminance and Saturation

RO Rotational Offset

CCW Counter Clock Wise

Trang 5

DANH SÁCH CÁC HÌNH

Hình 1.1 Mô hình SVM đ c đ ngh [1] 3

Hình 1.2 Tổng quan đ tƠi dùng đặc tr ng c c bộ và bộ phân l p SVM [3] 4

Hình 1.3 Mô hình nh n d ng DVM mà nhóm tác gi đ xuất [6] 5

Hình 1.4 Mô hình xử lý nh n d ng biển báo giao thông c a bƠi báo ắA System for Traffic Sign Detection, Tracking, and Recognition Using Color, Shape, and Motion Information” [7] 5

Hình 1.5 Mô hình phát hi n biển báo giao thông c a bƠi báo ắColor-Based Road Sign Detection and Tracking” [8] 6

Hình 2.1 Mô hình không gian màu RGB 9

Hình 2.2 Mô hình không gian màu HSL 11

Hình 2.3 nh vƠ đối t ng trong nh 12

Hình 2.4 Quan h gi a hai t p h p 13

Hình 2.5 Phép giãn nh phân 15

Hình 2.6 Quá trình quét c a phần tử cấu trúc trên hình nh nh phân 16

Hình 2.7 Phép co nh phơn trên hai đối t ng 17

Hình 2.8 Quá trình th c hi n phép đóng nh 18

Hình 2.9 Minh h a phép đóng nh trên ph ng di n Ủ nghĩa hình h c 19

Hình 2.10 Cách th c ho t động c a l c trung v 19

Hình 2.11 Quá trình phát triển c a OpenCV 23

Hình 2.12 Cấu trúc c s c a OpenCV 24

Trang 6

Hình 2.13 Một số thông số c a đ ng cong Gielis và các hình d ng (v i a=b=1) 25

Hình 2.14 Mô phỏng các hình h c đ n gi n trên Matlab bằng h t a độ c c (a’, b’, c’, d’) và h t a độ Descart (a, b, c, d) 25

Hình 3.1 S đồ gi i thu t tổng quát 28

Hình 3.2 S đồ khối phát hi n biển báo giao thông 29

Hình 3.3 nh ngõ vào(a) và ngõ ra(b) c a khối IHLS-NHS 30

Hình 3.4 S đồ khối IHLS-NHS 30

Hình 3.5 nh nh phơn sau khi đ c phơn ng ỡng để lấy vùng đặc tr ng (vùng màu tr ng là nh ng pixel c a nh ngõ vƠo mang mƠu đỏ) 32

Hình 3.6 nh ngõ vào c a khối ti n xử lý 33

Hình 3.7 nh ngõ ra c a khối ti n xử lý 33

Hình 3.8 S đồ khối c a ti n xử lý 33

Hình 3.9 Các nh ngõ vào c a khối tăng c ng nh 34

Hình 3.10 nh ngõ ra c a khối tăng c ng nh 34

Hình 3.11 nh ngõ vƠo khi ch a lo i bỏ các đối t ng nhỏ và không quan tâm 35

Hình 3.12 nh ngõ ra c a khối lo i bỏ các đối t ng nhỏ và không quan tâm 35

Hình 3.13 nh nh phân ch a các điểm bao lồi 36

Hình 3.14 Đ ng biên c a đối t ng tr c (a) và sau khi xử lý (b) (màu tr ng lƠ các điểm thuộc biên đối t ng) 37

Hình 3.15 Kho ng cách t một điểm trên biên đ n đ ng thẳng nối hai điểm bao lồi 37

Hình 3.16 Kho ng cách h t điểm trên biên đ n đ ng thẳng nối 2 điểm trên bao lồi 38

Hình 3.17 S đồ khối c a khối xử lý biên 38

Trang 7

Hình 3.19 Ngõ ra c a khối xử lý biên, v i ng ỡng (kho ng cách tối đa cho phép) bằng 2

(các điểm màu tr ng lƠ đ ng biên m i sau khi đ c xử lý) 39

Hình 3.20 Góc quay offset (Rotational offset - RO) 40

Hình 3.21 S đồ khối c a khối Rotational offset 40

Hình 3.22 Mô t Rotational Offset 41

Hình 3.23 Các điểm trên đ ng biên b mất dẫn đ n k t qu sai 42

Hình 3.24 Hình nh b che ch n dẫn đ n k t qu sai 42

Hình 3.25 Các đầu vƠo vƠ đầu ra c a khối tái t o hình d ng dùng đ ng cong Gielis 43

Hình 3.26 S đồ khối c a khối tái t o hình d ng c a biển báo v i đ ng cong Gielis 43

Hình 3.27 S đồ gi i thu t c a thu t toán Levenberg-Marquardt 44

Hình 3.28 Giao di n ch ng trình 47

Hình 3.29 M nh cần xử lý 47

Hình 3.30 K t qu sau khi xử lý 48

Hình 4.1 H thống phát hi n và nh n d ng biển báo giao thông 50

Hình 4.2 Module c m bi n siêu âm SRF05 50

Hình 4.3 Camera pi dùng để thu nh n hình nh 51

Hình 4.4 Kit nhúng Raspberry PI và các kh ối c b n trên kit 51

Hình 4.5 Format thẻ nh vƠ cƠi đặt h đi u hành lên kit nhúng 52

Hình 4.6 Thi t l p các thông số c b n cho h đi u hành 53

Hình 4.7 Ch ng trình nh p l nh c a h đi u hành - LXTerminal 53

Hình 4.8 Cấu hình Raspberry Pi để nh n di n camera 58

Hình 4.9 S đồ gi i thu t ch ng trình phát hi n và nh n d ng biển báo giao thông trên kit nhúng 60

Trang 8

Hình 4.10 Màn hình hiển th kit nhúng, thể hi n kho ng cách gi a v t c n và kit nhúng 61

Hình 4.11 Camera ch p nh đ a vƠo khối xử lý ( nh ngõ vào c a khối xử lý) 61

Hình 4.12 Màn hình hiển th trên kit nhúng, thể hi n đư xử lý xong biển báo giao thông 62

Hình 4.13 K t qu xử lỦ ch ng trình trên kit nhúng 62

Hình 5.1 Phát hi n và nh n d ng biển báo giao thông nguy hiểm(biển báo hình tam giác) 64 Hình 5.2 Phát hi n và nh n d ng biển báo cấm (biển báo hình tròn) 65

Hình 5.3 Phát hi n và nh n d ng biển d ng l i (biển báo tám c nh) 66

Hình 5.4 Phát hi n và nh n d ng biển ch dẫn (biển báo hình vuông màu xanh) 67

Hình 5.5 Phát hi n và nh n d ng nhiểu biển báo trong một hình 68

Hình 5.6 K t qu thử nghi m trong môi tr ng ban đêm 69

Hình 5.7 K t qu thử nghi m trong môi tr ng có s ng mù vƠ m a nhẹ 69

Hình 5.8 K t qu thử nghi m v i nh ch p đ c khi tốc độ cao 70

Hình 5.9 Các tr ng h p nh n d ng sai 70

Hình 5.10 Xử lý biển báo tam giác trên kit v i hình nh đ c ch p t camera 72

Hình 5.11 Xử lý biển báo hình tròn trên kit v i hình nh đ c ch p t camera 72

Hình 5.12 Xử lý biển báo l c giác trên kit v i hình nh đ c ch p t camera 73

Hình 5.13 M ch thi công phần c ng 73

Trang 9

CH NG 1: GI I THI U

Cùng v i s phát triển c a các thành t u khoa h c kỹ thu t hi n đ i, s năng động trong c ch kinh t th tr ng, đ i sống văn hóa đ c nâng cao, chất l ng cuộc sống

đ c c i thi n rõ nét, vấn đ v giao thông cũng t ng b c đ c quan tâm nâng cao và góp

phần vào s phát triển chung an toàn và b n v ng c a toàn xã hội

Giao thông Vi t Nam luôn là một trong nh ng vấn đ nóng c a xã hội Nóng t quy

mô phát triển đ n chất l ng c s h tầng vƠ h n h t chính là tình hình tai n n giao thông

đ ng bộ Theo số li u m i nhất t y ban An Toàn Giao Thông Quốc Gia, ch trong 7

tháng đầu năm 2014 (từ ngày 16/12/2014 đến 15/7/2014), Vi t Nam x y ra 6.410 v tai

n n giao thông, làm ch t 5.635 ng i, làm b th ng 3.945 ng i Đơy lƠ một con số đáng báo động đối v i một đất n c hòa bình, đáng để m i thành phần trong xã hội cùng quan tơm đánh giá

T tình hình giao thông th c t t i Vi t Nam, xét một phần nguyên nhân các v tai

n n giao thông đ ng bộ là do tài x lái xe không làm ch tốc độ, không chấp hành hi u

l nh giao thông, không quan sát hoặc không nh n ra các lo i biển báo và tín hi u giao thông Nguyên nhân c a vấn đ này là do tài x m t mỏi, thi u t p trung và nhi u y u tố

ch quan và khách quan khác

T kh o sát th c t đối v i các tài x mà thành phần ch y u là các tài x taxi K t

qu cho thấy s mong muốn có một h thống có kh năng c nh báo đ c trang b trên xe giúp h ý th c h n v nh ng nguy hiểm ti m ẩn khi đi u khiển ph ng ti n l u thông, giúp b o v tài s n, tính m ng c a ng i tham gia và rộng h n n a là b o v h nh phúc c a gia đình vƠ toƠn xư hội

T nh ng lý do th c ti n trên, lu n văn nƠy đ nh h ng nghiên c u gi i thu t Levenberg- Marquardt nhằm đ a đ n một gi i pháp xây d ng một h thống, góp phần h n

ch nh ng tai n n giao thông và gi m thiểu hóa nh ng h u qu sau tai n n, thông qua ý

t ng một h thống phát hi n và nh n d ng các biển báo giao thông nguy hiểm để c nh báo, thông tin cho ng i đi u khiển ph ng ti n tham gia giao thông H thống ho t động trên th i gian th c, nh n d ng và phát hi n các biển báo giao thông trong m i hoàn c nh

đi u ki n có thể x y ra trong th c t Lu n văn h ng t i ng d ng h thống nhúng, camera cùng v i các ki n th c v xử lý nh số, l p trình bẳng ngôn ng l p trình C++ và ngôn ng l p trình nhúng(python) cùng v i th vi n mã nguồn m OpenCV

1.1 Tổng quan tình hình nghiên c u

Ngày nay khoa h c kỹ thu t phát triển rất m nh m , ngƠnh đi u khiển h c và

t động hóa đư có nh ng b c ti n l n Đi u khiển h c và t động hóa ngày càng

Trang 10

đóng vai trò quan tr ng trong vi c tăng năng suất lao động, chất l ng và an toàn cho cuộc sống c a con ng i Trong xã hội công nghi p ngày nay, vi c ng d ng các robot t hành, các cánh tay máy, có kh năng ho t động độc l p ngày càng phổ

bi n Để có kh năng thông minh đó, chúng ph i có kh năng nhìn, nh n d ng các tình huống, xử lý tình huống nh con ng i Đáp ng nhu cầu đó, xử lý nh là một

phần rất quan tr ng c a quá trình đi u khiển h c và t động hóa D li u v hình

nh có l ng thông tin l n vƠ chính xác h n các lo i d li u t các c m bi n khác

Đi u này giúp cho vi c gi i quy t các vấn đ trong lĩnh v c đi u khiển t động d dƠng h n

Vấn đ xây d ng một h thống nh n d ng biển báo giao thông là một vấn đ

l n vƠ đư có nhi u h ng ti p c n để gi i quy t bài toán Vấn đ nƠy đ c các quốc gia phát triển v ngành t động hóa quan tâm t s m vƠ cũng đư có nhi u công trình nghiên c u kh quan Tuy nhiên hi n nay các h thống c nh báo hỗ tr tài x hi n

vẫn đang trong giai đo n đ c các trung tâm nghiên c u c a th gi i, các hãng xe ô

tô thử nghi m, đánh giá vƠ vẫn ch a chính th c đ a vƠo sử d ng trong th c t

Để phát hi n, nh n di n và c nh báo, đ m b o tính chính xác thì b t buộc h

thống cần ph i có tốc độ xử lý nhanh, ho t động ổn đ nh th i gian th c Một s n

phẩm có tính ng d ng cao ph i có tốc độ xử lỦ đ nhanh, chính xác, tin c y, ổn

đ nh, và có kh năng m rộng và nâng cấp thêm Đó lƠ các y u tố rất quan tr ng trong vi c xây d ng và phát triển h thống

1.2 Các k t qu nghiên c u trong vƠ ngoƠi n c đư công b

1.2.1 Các k t qu nghiên c u trong n c

a “Phát hiện và phân loại biển báo giao thông dựa trên SVM trong

th ời gian thực” c a Lê Thanh Tâm, Trần Thái S n vƠ Seichii Mita [1]

Đơy lƠ một module nằm trong d án h thống lái xe t động c a h c

vi n Công Ngh Toyota đ c tài tr b i t p đoƠn ô tô Toyota Tác gi trình bày cách ti p c n m i hi u qu sử d ng đặc tr ng mƠu trên SVM (Support Vector Machine) để phát hi n vùng ng cử cho biển báo giao thông trong

th i gian th c Đặc tr ng mƠu đ c xử lý trên vùng c a pixel để sử d ng các thông tin pixel lân c n thay vì trên t ng pixel nh các cách ti p c n đư có Sau đó, phép bi n đổi Hough và thu t toán phát hi n contour đ c áp d ng

để phân l p cũng nh khử nhi u d a trên đặc tr ng hình h c c a biển báo

Trang 11

Hình 1.1 Mô hình SVM đ c đ ngh [1]

b “Thuật toán phát hiện chuyển động” c a ĐƠo Ng c Anh [2]

Đ tài [2] trình bƠy các ph ng pháp mô hình hỗn h p n n thích nghi,

mô hình không tham số thích nghi, mô hình sử d ng t điển (code-book)

thích nghi th i gian th c Gi l p chuyển động để t o ra nh lối vào khi nghiên c u các đặc tính cần đánh giá LƠm ch đ c thu t toán phát hi n chuyển động trên c s sử d ng các ph ng pháp khác nhau để mô hình hóa

n n Ch ng trình nguồn thu đ c có thể dùng để nghiên c u thu t toán hoặc

sử d ng trong các ng d ng th ng m i liên quan t i nh n d ng chuyển động

c “Phát hiện biển báo giao thông dùng đặc trưng cục bộ (local features) ” c a Nguy n Duy Khánh, Lê Đình Duy vƠ D ng Anh Đ c [3]

Đ tƠi dùng đặc tr ng c c bộ và bộ phân l p SVM (Support Vector

Machine) để phát hi n biển báo giao thông Tổng quan thu t toán đ c tác

gi trình bƠy nh theo hình 1.2 K t qu c a đ tài d ng l i vi c xác đ nh

biển báo và phân l p chúng thành các nhóm biển cấm, nguy hiểm, ch dẫn

Trang 12

Hình 1.2 Tổng quan đ tƠi dùng đặc tr ng c c bộ và bộ phân l p SVM [3]

1.2.2 Các k t qu nghiên c u ngoƠi n c

a “A Road Sign Recognition System Based on Dynamic Visual

Model” c a C Y Yang, C S Fuh, S W Chen và P S Yen [4]

Nhóm tác gi đặt vấn đ và mong muốn có một gi i pháp để hỗ tr

ng i lái xe vƠ nơng cao độ an toàn trong giao thông BƠi báo đ xuất một

mô hình nh hình 1.3, g i là mô hình tr c quan động (Dynamic Visual

Model) để phát hi n và nh n d ng các biển báo giao thông trên đ ng Đồng

th i cũng trình bƠy nh ng khó khăn trong vi c nh n d ng biển báo nh : mƠu

s c c a biển báo b phai m d i nh h ng c a ánh n ng mặt tr i, s n biển báo b bong tróc, b bóng râm che hay các y u tố khác làm mất đi một phần thông tin c a biển báo, không khí b ô nhi m vƠ các đi u ki n v th i ti t cũng lƠm nh h ng đ n kh năng nh n d ng c a mô hình v a nêu

(a) nh ngõ vào (b) Các điểm phân tích (c) Đặc tr ng c c bộ

(d) Bộ đ nh nghĩa (e) Histogram (f) Phân lo i

Trang 13

Hình 1.3 Mô hình nh n d ng DVM mà nhóm tác gi đ xuất [4]

b “A System for Traffic Sign Detection, Tracking, and Recognition Using Color, Shape, and Motion Information” c a C Bahlmann, Y Zhu, V

Ramesh, M Pellkofer và T Koehler Proceedings [5]

Bài báo trình bày một h thống th giác máy tính dùng để xử lý vi c phát hi n, theo v t và nh n d ng các biển báo giao thông d a trên màu s c, hình d ng và thông tin trong th i gian th c nh hình 1.4 Ph ng pháp ti p

c n đ c trình bày trong bài báo gồm hai phần Phần đầu tiên sử d ng các đặc tr ng Haar-like k t h p v i bộ tăng tốc Adaboost để phát hi n biển báo

Phần ti p theo, sau khi đư phát hi n và theo v t biển báo thì biển báo đ c phân lo i bằng mô hình Bayes Theo k t qu th c nghi m đ c cung cấp b i bài báo, h thống có thể phát hi n và phân lo i đ c một số biển báo giao thông v i t l chính xác cao trong đi u ki n 10frames/1 giây

Hình 1.4 Mô hình xử lý nh n d ng biển báo giao thông c a bƠi báo ắA System for Traffic Sign Detection, Tracking, and Recognition Using Color,

Shape, and Motion Information” [5]

Trang 14

c “Color-Based Road Sign Detection and Tracking ” c a Luis David

Lopez và Olac Fuentes [6]

Bài báo trình bày một n n t ng chung cho vi c nh n d ng và theo v t các biển báo giao thông ch sử d ng duy nhất một thông tin v màu s c

Ph ng pháp ti p c n gồm hai phần Phần đầu sử d ng một t p phân phối Gauss để phát hi n đ ng và các biển báo giao thông Phần th hai là theo

v t đối t ng đư đ c xác đ nh b c tr c đó Mô hình phát hi n biển báo giao thông đ c mô t nh hình 1.5 Theo k t qu th c nghi m đ c cung

cấp b i bài báo, h thống đ xuất nh n d ng đ c 97% đối t ng gần trong

th i gian th c

Hình 1.5 Mô hình phát hi n biển báo giao thông c a bƠi báo

ắColor-Based Road Sign Detection and Tracking” [6]

d “A generic geometric transformation that unifies a wide range of natural and abstract shapes” c a Johan Gielis [7]

Trong bài báo này, tác gi trình bày một ph ng pháp ti p c n hình

h c m i dùng để mô t các hình d ng tr u t ng, t nhiên và nhân t o trong

th c t Johan Gielis khẳng đ nh rằng rất nhi u hình d ng trong t nhiên có cùng một siêu công th c toán h c Hình d ng này giống v i d ng tròn, trong

đó ng i ta có thể thay đổi một vài thông số nhằm mô t phần l n nh ng hình d ng đ n gi n khác (tam giác, vuông, ch nh t…) và th m chí ph c t p

h n (cuộn xo n c a vỏ ốc hay một n tuy t) Gielis đánh giá rằng đơy lƠ một hình th c m i để mô t thiên nhiên chính xác và ch c ch n s mang l i các đột phá

1.3 Nhi m v của đ tài

Trang 15

M c tiêu c a lu n văn lƠ ng d ng các kỹ thu t xử lý nh, thu t toán tối u Levenberg- Marquardt vào vi c thi t k xây d ng một h thống h ng t i vi c phát

hi n và nh n d ng hình d ng các biển báo giao thông đ ng bộ đ c thu v t camera và hiển th thông tin nh n d ng

Ph m vi nghiên c u: nghiên c u nh n bi t một số biển báo giao thông đ ng

bộ t i Vi t Nam để đ a ra c nh báo cho lái xe Áp d ng thu t toán đ xuất đ a vƠo bài toán phát hi n và nh n d ng biển báo giao thông, nên ch có thể nh n d ng hình

d ng biển báo giao thông (ví d : biển báo hình tròn, hình vuông, tam giác, l c giác…) không nh n d ng nội dung c a biển báo (ví d : biển báo nguy hiểm bên giác, biển báo tốc độ tối đa cho phép 60km/h….) vì ph ng pháp đ xuất không qua giai đo n huấn luy n mẫu

Yêu cầu c a h thống là ph i ho t động ổn đ nh, phát hi n nhanh, tỷ l phát

hi n nh n d ng có độ chính xác cao, t l nh n sai thấp, ho t động trong nhi u đi u

ki n khác nhau nh trong môi tr ng ánh n ng g t, môi tr ng thi u ánh sáng, th i

ti t mát, th i ti t âm u nhi u mây, biển báo b che khuất b i bóng râm, b h h i một

phần nhỏ, trong quang c nh đ ng nông thôn, đ ng thành phố đông xe …

1.3.2 N i dung cần th c hi n

Đ tài t p trung nghiên c u và phát triển một h thống phát hi n, nh n d ng các biển báo giao thông đ ng bộ d a trên ng d ng một số hàm c a th vi n th giác máy tính mã nguồn m OpenCV, cùng v i các ph ng pháp xử lý nh và thu t toán tối u hóa Levenberg-Marquardt

Đ tài t p trung nghiên c u các vấn đ c b n sau:

1 Nghiên c u gi i thu t Levenberg-Marquardt, c s lý thuy t và

ph m vi ng d ng

2 Tìm hiểu th vi n th giác máy tính mã nguồn m OpenCV, ph ng trình đu ng cong Gielis dùng để mô t các hình d ng c b n, vi t ch ng trình để kiểm ch ng và mô t đ ng cong Gielis

3 Tìm hiểu các ph ng pháp xử lý nh, tăng c ng nh, xử lỦ điểm

nh, xử lý biên và bao lồi … để trích lấy vùng nh đặc tr ng c a biển báo giao thông t đó ch xử lý trên vùng nh này

4 Vi t ch ng trình phát hi n và nh n d ng biển báo giao thông qua

nh tĩnh bằng phần m m QT Creator trên Windows để có c s nghiên c u

Trang 16

và phát triển, h n n a các mã l nh này có thể k th a trên kit nhúng để ti p

t c xây d ng ch ng trình

5 Tìm hiểu v l p trình nhúng trên h đi u hành Linux, các thi t b

phần c ng ph c v cho h thống nh n d ng nh camera nhúng, module siêu

âm

6 Nghiên c u một lo i kit để l p trình nhúng Đ xuất sử d ng kit Raspberry Pi phiên b n B do tốc độ xử lý cao, giá thành thấp và tính linh động trong sử d ng

7 Nghiên c u cài đặt h đi u hành Linux cho kit nhúng, l p trình C++

và l p trình python trên kit nhúng, cƠi đặt th vi n OpenCV(t ng thích v i

Trang 17

CH NG 2: C S LÝ THUY T X LÝ NH

2.1 Các lý thuy t x lý nh

2.1.1 Không gian màu

Không gian màu là một mô hình toán h c dùng để mô t các màu s c trong th c t đ c biểu di n d i d ng số h c Trên th c t có rất nhi u không gian mƠu khác nhau đ c mô hình để sử d ng vào nh ng m c đích khác nhau Đầu tiên, chúng ta hưy xét đ n ba không gian mƠu lƠm c s lý thuy t để xử lỦ mƠu, đó lƠ h không gian màu RGB, HSV và IHLS

2.1.1.1 Không gian màu RGB (RGB space)

Không gian RGB mô t màu s c bằng ba thành phần Red, Green, Blue (đỏ, xanh lam, xanh dương) Không gian nƠy đ c minh h a bằng một

khối l p ph ng v i các tr c chính là R, G, B (nh hình 2.1)

Mỗi mƠu trong không gian RGB đ u đ c biểu di n nh lƠ một vector

thông qua ba vector c s là vector Red, vector Green và vector Blue Do đó,

ng v i các tổ h p khác nhau c a ba màu này s cho ta một màu m i

Hình 2.1 Mô hình không gian màu RGB

Trong hình l p ph ng mỗi màu gốc (Red, Green, Blue) đ c đặt vào

góc đối di n v i các màu bù nó (hai màu bù nhau là hai màu mà khi k t h p

t o thành màu tr ng hay xám (Grey )) Nh v y Red đối di n v i Cyan, Green đối di n v i Magenta, Blue đối di n v i Yellow Giá tr xám nằm trên đ ng

chéo nối các đ nh (0,0,0) (1,1,1) c a hình l p ph ng Các tr c R, G, B đ c

Trang 18

chuẩn hóa Khi k t h p hai màu l i v i nhau thì màu sinh ra có vector bằng

tổng các vector thành phần

u đi m của không gian RGB :

Không gian RGB là chuẩn công nghi p cho các thao tác đồ h a máy tính Các thao tác màu s c có thể đ c tính toán trên các không gian màu khác nh ng cuối cùng cần ph i chuyển v không gian RGB để có thể hiển th trên màn hình (do thi t k c a phần c ng d a trên mô hình RGB)

Có thể chuyển đổi qua l i gi a không gian RGB v i các không gian mƠu khác nh CIE, CMY, HSL, HSV, IHLS

Các thao tác tính toán trên không gian RGB th ng đ n gi n h n

Khuy t đi m của không gian RGB :

Các giá tr RGB c a một mƠu lƠ khác nhau đối v i các màn hình khác nhau: nghĩa lƠ các giá tr RGB c a màu tím trên màn hình màu này s không sinh ra đúng mƠu đó trên một màn hình khác

S mô t các màu trong th gi i th c đối v i không gian RGB còn nhi u h n ch b i vì không gian RGB không hoàn toàn phù h p v i s c m

nh n màu s c c a con ng i Hai điểm phân bi t trong không gian RGB, v i

m t ng i có thể hoặc không thể là thể hi n c a hai màu khác nhau Chính vì

đi u này mà không gian RGB không thể ánh x tr c ti p đ n bất c chi u

c m nh n nào khác

2.1.1.2 Không gian HSL (HSL space)

Một không gian màu chú tr ng h n không gian RGB đ n các thành

phần c a s c m nh n màu s c c a m t ng i là không gian màu HSL (Hue, Saturation, Lightness) Tuy nhiên, không gian HSL th c ra cũng ch là một phép bi n đổi gần đúng c a không gian RGB Không giống nh các không gian màu khác xây d ng trên s c m nh n màu s c c a m t, không gian HSL

vẫn còn b l thuộc vào phần c ng c a CRT

Không gian HSL đ c biểu di n trong h t a độ tr , hình minh h a là

hai hình nón úp vào nhau (xem hình 2.2) H (Hue) là to độ ng v i góc

Trang 19

Hình 2.2 Mô hình không gian màu HSL

u đi m của không gian màu HSL :

Không gian HSL gần v i s c m nh n các thuộc tính màu s c c a con ng i h n không gian RGB (tuy cách ti p c n đư đ n gi n hóa đi nhi u) Các mƠu đ c xác đ nh d dƠng h n chẳng h n do H quay quanh tr c đ ng nên các mƠu bù đ c xác đ nh một cách d dƠng, đối v i các giá tr

L(Lightness) cũng v y

Vi c kiểm soát các mƠu c s HSL d h n cho nh ng ng i m i làm quen v i các ch ng trình đồ h a

Khuy t đi m đi m của không gian màu HSL:

Vi c thêm vào một vector không thể th c hi n đ n gi n nh không

gian RGB (ch thêm vào các thành phần mƠu) Các thao tác l ng giác khi

bi n đổi s nh h ng đáng kể đ n tốc độ c a ch ng trình

Cần ph i qua hi u ch nh thông số gamma tr c khi hiển th (giống

nh các không gian mƠu khác)

2.1.2 Các toán t hình thái

Hình thái toán h c (Mathematical morphology) là một t p các phép toán dùng để phân tích nh và xử lý tín hi u số đa chi u theo mẫu, hình d ng

S (shape) đ c ch n Trong đó tín hi u đầu vƠo đ c so sánh một cách c c

bộ v i S (thành tố cấu trúc - structuring elements) có d ng bất kì, t i điểm

tham chi u R (thông th ng R là tâm c a S và ánh x t ng ng t i tín hi u đang xét)

Trang 20

M c tiêu c a vi c ng d ng Morphology lƠ để đ n gi n hóa tín hi u

bằng vi c lo i bỏ các thông tin không cần thi t Hình thái toán h c sử d ng các toán tử hình thái (morphological operators), mà có thể đ c ng d ng

v i các tín hi u nh phơn, đa m c xám nh lƠ nh ng công c ch y u ph c v quá trình xử lý Toán tử căn b n nhất đồng th i cũng lƠ thƠnh phần cấu thành các toán tử hình thái (morphology) ph c t p h n lƠ phép co nh phân (erosion) và phép giãn nh phân (dilation)

2.1.2.1 Khái ni m c b n

Ta đư đ nh nghĩa nh nh phân là t p h p các điểm nh có t a độ (x,y)

Chúng ta còn có đ nh nghĩa khác v nh, theo quan sát thì có thể xem nh

nh t p h p các t a độ r i r c hoặc liên t c

Theo một đ nh nghĩa nƠo đó thì, t p h p nƠy t ng ng v i các điểm

nh thuộc v các đối t ng hi n h u trong nh Hình 2.3 thể hi n nh vƠ đối

t ng trong nh trong h tr c t a độ (x,y)

Hình 2.3 nh vƠ đối t ng trong nh

Hình 2.3 cho thấy hai đối t ng, hay hai t p h p A và B trong nh đơy ta cần ph i xác đ nh h tr c t a độ nh trong hình, quan tơm đ n giá tr các điểm nh cấu thƠnh lên đối t ng trong nh vƠ đ c gi i h n trên không

gian r i r c Z 2

Đầu tiên, ta có A là một t p h p trong không gian r i r c Z 2 N ếu a = (a 1 , a 2 ) là một phần tử c a t p h p A thì ta có thể vi t nh sau:

Trang 21

(2.2)

Các phần tử c a t p h p có liên quan đ n trong phần này là nh ng

t a độ c a các pixel đ i di n cho đối t ng hoặc các đặc tr ng khác đ c quan tâm trong một hình nh

N u mỗi phần tử c a t p h p A cũng lƠ một phần tử trong t p h p B thì ta có thể nói A là t p con c a B, vƠ đ c biểu th nh sau:

H p (Union) c a hai t p h p A và B là t p h p c a các phần tử thuộc

A, B hoặc c A vƠ B, đ c biểu th nh sau:

Nh v y giao (Intersection) c a hai t p h p A và B là t p h p các

phần tử thuộc c A vƠ B, đ c biểu th nh sau:

Hai t p h p A và B tr thành không giao nhau (Disjoint) hoặc lo i tr

lẫn nhau ( Mutually exclusive) n u chúng có chung các phần tử, nh trong

Phần bù tuy t đối (complement) c a một t p h p A là t p h p các

phần tử không bao gồm các phần tử trong A:

Trang 22

(2.7)

Phần bù t ng đối (difference) c a t p h p A trong t p h p B đ c

biểu th là Aậ B nh trong biểu th c sau:

(2.8)

V i w là t p h p các phần tử thuộc t p h p A nh ng không thuộc t p

h p B, khái ni m nƠy đ c minh h a trên Hình 2.4(d) Phần có màu là k t

qu c a phép toán gi a hai t p h p

Sau đơy lƠ hai đ nh nghĩa cần bổ sung vì nó đ c sử d ng rộng rãi trong phép toán hình thái, nh ng nói chung lƠ vẫn ch a tìm đ c cái căn b n trên thuy t t p h p

2.1.2.2 Phép giãn nh phân (Dilation)

T p h p B th ng thì đ c coi nh lƠ một phần tử cấu trúc

(structuring element) trong giãn nh phơn, cũng nh trong các phép toán hình thái khác, t p h p A là t p h p các phần tử c a hình nh gốc

V i A và B là các t p h p trong Z 2, thì phép giãn nh phân c a A theo

B đ c đ nh nghĩa qua công th c sau:

Nh v y phép giãn nh phân c a t p h p A b i phần tử cấu trúc B là

t p h p c a tất c các điểm z (z lƠ tơm điểm c a phần tử cấu trúc B trên t p

h p A) sao cho ph n x c a B z giao v i t p A t i ít nhất một điểm Hay nói cách khác, phép giãn nh phân là s chồng chéo t ít nhất một phần tử t

Trang 23

Hình 2.5 Phép giãn nh phân

Hình 2.5a gồm:

+ T p h p A có hai c nh bên kích th c là d

+ Phần tử cấu trúc vuông B kích th c d/4, tr ng h p này thì phần tử

cấu trúc B vƠ t ng ph n c a nó bằng nhau vì B có t p h p các phần tử đối

x ng nhau qua tơm điểm (dấu chấm đen gi a)

+ Cuối cùng là k t qu c a phép giãn nh phân gi a t p h p A và phần

tử cấu trúc B

Hình 2.5b cũng gồm nh ng thành phần t ng t nh ng v i phần tử

cấu trúc B là hình ch nh t, nh ng cho ta một k t khác Nh v y, mỗi kiểu

phần tử cấu trúc khác nhau s cho ta một k t qu khác nhau, sau khi thu t toán đ c th c thi

Để th c t hóa nh ng lý thuy t đư nêu trên, ta coi nh ng phần tử cấu trúc nh một mẫu sẵn và d ch chuyển t nh ti n trên b mặt hình nh Khi gốc

c a phần tử cấu trúc (chấm đen tơm điểm) kh p v i điểm nh t i c nh c a hình nh thì các điểm nh t ng ng v i v i gốc này s đ c đánh dấu và thay th Sau khi toàn bộ điểm nh đư đ c quét qua b i phần tử cấu trúc thì, thao tác giãn hình nh đ c hoàn tất

Một ví d v phép giãn trên một hình nh nh phân sử d ng phần tử

cấu trúc d ng ma tr n vuông 3x3 nh sau:

Trang 24

Hình 2.6 Quá trình quét c a phần tử cấu trúc trên hình nh nh phân

ví d trên ta các điểm nh màu tr ng mang giá tr lƠ 1 lƠ các điểm thuộc đối t ng đang cần quan tâm trên nh, và phần mƠu đen mang giá tr 0

là phần nằm ngoƠi đối t ng Khi thu t toán đ c thi hành thì phần tử cấu trúc s lần l t quét qua các điểm nh ngoƠi cùng (đi theo đ ng kẻ mƠu đỏ trên hình v ) c a đối t ng sau đó thay th các điểm nh trên đối t ng này theo mẫu phần tử cấu trúc T đó ta ng d ng để nối các nét b đ t gẫy c a văn b n do quá trình xuống cấp, v i kho ng cách l n nhất c a các nét b đ t gãy tầm hai điểm nh

2.1.2.3 Phép co nh phân (Erosion)

Ta cũng xét t p h p A và t p h p B (phần tử cấu trúc) trong Z 2 , thì phép co nh phân c a t p h p A b i phần tử cấu trúc B đ c kí hi u

Trang 25

Hình 2.7 Phép co nh phơn trên hai đối t ng Hình 2.7a bao gồm:

Phép co nh phân và giãn nh phân có thể đ c v i nhau qua phép bù

và phép ph n x c a t p h p, lu n lý này s đ c minh h a qua công th c sau:

Trang 26

Nh v y, phần bù c a phép co nh phân gi a t p h p A và phần tử cấu trúc B là phép giãn nh phân gi a phần bù c a t p h p A v i ph n x c a

phần tử cấu trúc B

2.1.2.4 Phép đóng nh

M c đích c a phép đóng nh lƠm đầy nh ng chỗ thi u h t c a đối

t ng trên nh d a vào các phần tử c b n ban đầu Th c hi n phép giãn nh sau đó lƠ phép co nh

V i t p h p A lƠ đối t ng trong nh, B là phần tử cấu trúc ( ) là ký

hi u phép đóng nh Khi đó phép đóng nh c a t p h p A b i phần tử cấu trúc B, kí hi u là , xác đ nh b i:

Cho một hình nh nh phân, v i đối t ng trong nh có nh ng khu v c

b đ t gãy, không li n m ch Ðể kh c ph c hi n t ng này ta áp d ng phép đóng nh, v i A lƠ đối t ng ban đầu, B là phần tử cấu trúc có kích th c 3x3 (Hình 2.8a) Khi áp d ng phép đóng nh, đầu tiên đối t ng này s đ c

m rộng bằng phép giãn nh phân theo phần tử cấu trúc B Lúc này nh ng khu v c thi u h t s đ c bù lên, và khu v c đ t s đ c nối l i (Hình 2.8b) Sau đó áp d ng phép co nh phơn để đ a đối t ng v tr ng thái ban đầu (Hình 2.8c)

Hình 2.8 Quá trình th c hi n phép đóng nh

Cho một đối t ng trong nh t ng t nh đối t ng (hình 2.8) Khi

th c hi n phép đóng nh thì hình tròn(phần tử cấu trúc) có xu h ng quét bên

Trang 27

Hình 2.9 Minh h a phép đóng nh trên ph ng di n Ủ nghĩa hình h c

Quan sát trên hình v ta có thể thấy các góc h ng vào c a đối t ng

đ c lƠm tr n, các góc h ng ra thì không có tác động gì Độ lõm do phần tử

cấu trúc t o ra bên trái đối t ng nhỏ h n bên ph i, vì th kích th c phần

tử cấu trúc cũng rất quan tr ng trong độ tr n c a góc

2.1.3 L c trung v (Median Filter)

Trong các kỹ thu t xử lý nh, rất nhi u bộ l c đ c đ xuất Trong

ph m vi c a đ tài, ta ch đ c p đ n bộ l c trung v

L c trung v là phép l c phi tuy n đ c sử d ng phổ bi n, do kh năng l c khử nhi u ngẫu nhiên tốt, và ít b nhòe h n so v i phép l c trung bình S p x p các giá tr điểm nh trong cửa sổ tăng hoặc gi m dần so v i trung v Kích th c cửa sổ th ng đ c ch n sao cho số điểm nh trong cửa

sổ là lẻ Thay th các giá tr pixel bằng giá tr gi a c a danh sách nh mô t

t i hình 2.10

Hình 2.10 Cách th c ho t động c a l c trung v

Gi sử A= {a 1 , a 2 , a 3 , ,a k} là các giá tr pixel trong cửa sổ lân c n v i

a 1 ≤ a 2 ≤ … ≤ a k Thì

Trang 28

A={0, 1, 2, 4, 6, 6, 10, 12, 15}→Median (A) = 6

S l c một cách ng n g n các b c c a gi i thu t:

 Quét cửa sổ l c lên các thành phần c a nh gốc; đi n các giá tr

đ c quét vào cửa sổ l c

 Lấy các thành phần trong c a sổ l c để xử lý

 S p x p theo th t các thành phần trong cửa sổ l c

 L u l i thành phần trung v , gán cho nh output

 Tính chất c a l c trung v :

L c trung v là lo i l c phi tuy n Đi u này d nh n thấy qua ph ng trình sau:

Trung v ị ( x(m) + y(n )) ≠ trung vị( x(m) ) + trung vị y(n) ) (2.16)

Đ t hi u qu khá tốt trong vi c lo i bỏ các điểm nh hay các hàng mà

 Trong l c trung v , mỗi điểm nh đ n không có tính chất đặc tr ng thì s không nh h ng đ n m c gi a giá tr tín hi u Giá tr gi a chính xác s là giá tr c a một trong các điểm nh lân c n, l c trung v s không t o ra điểm nh m i có giá tr không chân th t khi bộ l c tăng m c độ l c Vì lí do này mà l c trung v thì tốt h n trong vi c đ m b o m c s c nét c a hình nh Bộ l c trung v cho phép phần l n các chi ti t nh có tần số không gian cao đi qua

Trang 29

vi c này là bộ l c trung v cho k t qu không tốt khi l c nh v i nhi u Gauss)

 Một trong nh ng vấn đ đối v i bộ l c trung v là chi phí thi t k

đ t ti n và tính toán ph c t p Để th c thi l c thì ph ng pháp trung v cần ph i s p x p các giá tr nh lân c n thành tr t t số h c

vƠ nh v y tốc độ xử lý ch m

2.2 Th vi n th giác máy tính mã nguồn m OpenCV

2.2.1 Gi i thi u th vi n mã nguồn m OpenCV

V i m c tiêu ti p c n và thi t k ng d ng mang tính th c nghi m trong đ tài này, chúng ta s tìm hiểu và ng d ng th vi n hỗ tr trong vi c

OpenCV đ c thi t k để nâng cao hi u suất tính toán và t p trung

m nh vào các ng d ng th i gian th c Nó ch a h n 500 hƠm sử d ng trong

th giác máy (computer vision) và chia thành nhi u lĩnh v c th giác nh trong an ninh, y t , robot Nó ch a các l nh l p trình xử lý nh rất đ n gi n,

đ n các th c thi các hàm b c cao nh dò tìm khuôn mặt, theo dõi khuôn mặt,

nh n d ng khuôn mặt Do OpenCV đ c vi t tối u hóa bằng ngôn ng C nên có thể t n d ng u điểm c a bộ vi xử lỦ đa luồng

Một trong nh ng m c tiêu chính c a OpenCV lƠ đ n gi n hóa nh ng

gì có thể trong lĩnh v c th giác máy tính để giúp ng i sử d ng nhanh chóng xây d ng các ng d ng m nh m , tinh vi trong lĩnh v c th giác máy một cách nhanh chóng

Hi n nay, OpenCV đ c ng d ng rất hi u qu trong các trong lĩnh

v c hƠng không vũ tr , thi t l p b n đồ web, gi m nhi u trong y h c, phân tích đối t ng, hỗ tr an ninh, h thống dò tìm, theo dõi t động, h thống

b o m t, h thống s n xuất, xử lý camera, các ng d ng trong quân s , h

thống hƠng không không ng i lái, trên mặt đất, các tàu ngầm vƠ robot…

Trang 30

2.2.2 L ch s OpenCV

OpenCV ra đ i là một sáng ki n nghiên c u c a Intel nhằm m c đích đẩy m nh các ng d ng c a CPU chuyên sơu H ng t i m c tiêu này, Intel

đư đ a ra nhi u d án nh lƠ theo v t th i gian th c, và b c t ng hiển th

nh 3D Một trong nh ng tác gi làm vi c cho Intel đư đ n thăm một số

tr ng đ i h c và nh n thấy rằng t i một số tr ng đ i h c hƠng đầu nh MIT Media Lab, sinh viên đư phát triển rất tốt một số n n t ng th giác máy

tính m (open computer vision) và mã nguồn nƠy đ c chia sẻ nội bộ gi a các sinh viên Thay vì ph i xây d ng l i nh ng ch c năng c b n t đầu thì

một sinh viên m i có thể k th a nh ng gì đư có sẵn, và phát triển nh ng ng

d ng m nh m h n

T đó OpenCV đ c Intel chú Ủ đầu t nghiên c u phát triển v i tinh

thần chia sẻ h c hỏi lẫn nhau Nh ng m c tiêu ban đầu c a OpenCV là:

 Nâng cao nghiên c u xử lý th giác không ch là nguồn m mà còn

ph i tối u hóa mư l nh (code) cho n n t ng xử lý th giác c b n

 Phổ bi n ki n th c xử lý th giác bằng cách cung cấp nh ng n n

t ng chung để các nhà phát triển có thể xây d ng trên nó, vì v y

mà mã l nh s có thể d dƠng đ c đ c cũng nh trong trao đổi

 Thúc đẩy ng d ng th ng m i d a trên th giác máy tính bằng cách làm cho nó linh ho t, di động (portable), tối u hóa hi u suất

c a mã l nh, cung cấp giấy phép mi n phí mà không yêu cầu các

ng d ng th ng m i s m (open) hoặc mi n phí

Kể t khi d án đầu tiên vƠo tháng 1 năm 1999 (hình 2.11) thì đ n nay

th vi n OpenCV là một lĩnh v c tích c c quan tr ng c a một số tổ ch c phát triển cũng nh thu hút trên 20.000 thƠnh viên sử d ng trên kh p th gi i,

do đó OpenCV đ c mong đ i có s có nhi u b n c p nh t tốt h n trong các

vấn đ v xử lý th giác máy tính vƠ đi u khiển robot [8]

Trang 31

Hình 2.11 Quá trình phát triển c a OpenCV

2.2.3 Ki n trúc của OpenCV

Cấu trúc c a OpenCV đ c chia thành các phần sau:

- CV (Computer Vision): là cung cấp các hàm liên quan tr c ti p đ n

Computer Vision, trong đó t p trung các thao tác cấp thấp trên nh và camera c thể là các thao tác trong xử lý nh nh l c nh, trích biên, phân vùng, tìm biên, bi n đổi Fourier

- MLL (Machine Learning Library ): lƠ th vi n machine learning, cái

này bao gồm rất nhi u l p thống kê và gộp các công c xử lý

- HighGUI: là thành phần ch a các thao tác lên nh ng file nh và file video nh đ c nh, hiển th nh, chuyển đổi đ nh d ng

- CxCore: ch a đ ng rất nhi u các thành phần c b n cấu thành nên toàn bộ OpenCV CxCore bao gồm các cấu trúc d li u c b n, các thao tác

lên m ng, các cấu trúc động, các hàm v , các hƠm tác động lên d li u, các hàm qu n lý lỗi và s ki n và một số hàm cần thi t khác Số l ng hàm ch a

đ ng trong CxCore là rất l n

- IPP (Integrated Performance Primitives): là một th vi n c a Intel

gồm các hàm tối u m c thấp trong các lĩnh v c khác nhau, đơy ch là một tùy ch n c a OpenCV, OpenCV t động g i các hàm trong IPP n u nó đ c cƠi đặt

Trang 32

HighGUI

Giao di n, truy xuất

nh vƠ video Các mư nguồn ví d vƠ ng d ng th c nghi m

Hình 2.12 Cấu trúc c s c a OpenCV

2.3 Đ ng cong Gielis

Công th c đ ng cong Gielis đ c gi i thi u b i Gielis [7] có thể đ c sử

d ng để mô t nhi u hình d ng vƠ đ ng cong ph c t p mà chúng ta có thể gặp trong cuộc sống

Để mô t một hình d ng bất kỳ, đi u quan tr ng là có thể l ng tử các hình

đó v các thông số, sau đó t các thông số này ta có thể xử lỦ để đ t đ c m c đích

nh n d ng Đ ng cong Gielis có mô t nh công th c (2.17), t các thông số c a

nó ta có thể thể hi n nh ng hình d ng c b n mà ta có thể gặp trong cuộc sống (nh hình 2.13)

Trang 33

T các thông số này, ta có thể d dàng l p trình, mô phỏng các d ng hình h c khác nhau (nh hình 2.14)

Hình 2.13 Một số thông số c a đ ng cong Gielis và các hình d ng (v i a=b=1)

Mô phỏng đ ng cong Gielis trên Matlab đ c thể hi n t i hình 2.14

m=0, n 1 = n 2 = n 3 =1 m=1000, n 1 = n 2 = n 3 =1000

m=3, n 1 =1000, n 2 = n 3 =1980 m=0, n 1 =1000, n 2 = n 3 =390

Hình 2.14 Mô phỏng các hình h c đ n gi n trên Matlab bằng h t a độ c c

(a’, b’, c’, d’) và h t a độ Descart (a, b, c, d)

Trang 34

Nh chúng ta đư bi t các biển báo giao thông đa số đ u có hình tròn, hình tam giác, hình l c giác và hình vuông T các công trình nghiên c u, và k t qu mô

phỏng nh hình 2.14, đ ng cong Gielis có kh năng mô t tất c các hình d ng c a

biển báo cũng nh các hình d ng gần giống hình d ng đư nêu (do trong quá trình thu

nh n nh, nh c a biển báo hầu h t không các d ng chuẩn) Rõ ràng, khi chúng ta

đư tìm đ c vùng nh quan tâm d a trên màu s c (đỏ hay xanh), sau đó phơn tích hình d ng c a biển báo đó d a vào các thông số c a đ ng cong Gielis K t qu phân tích s cho ta bi t đơy lƠ lo i biển báo nào Cách ti p c n nƠy hay h n, m i mẻ

h n các cách ti p c n tr c đó vì không cần huấn luy n mẫu, tuy nhiên có một độ

ph c t p cao h n trong gi i thu t để nh n d ng hình d ng c a biển báo

2.4 Thu t toán t i u Levenberg-Marquardt

M c tiêu ban đầu c a bài toán là: d a vƠo đ ng cong Gielis mô t hình d ng

c a các biển báo giao thông v i ngõ vào là các thông tin v biên đư đ c xử lý, nói cách khác đi tìm một gi i pháp tối u để sai số kho ng cách c a đ ng cong Gielis

t o thƠnh vƠ các đ ng biên c a đối t ng là nhỏ nhất K t qu tối u cƠng chính xác thì đ ng cong Gielis càng thể hi n đúng hình d ng biển báo nói chung, và c

thể h n lƠ hình d ng t o nên b i tất c các biên đối t ng Ph ng pháp dùng để làm trùng kh p đ ng cong nh đư nêu trên lƠ phơn tích hồi quy C thể, có hồi qui tuy n tính, hồi qui lôgic, hồi qui Poisson và h c có giám sát Phân tích hồi qui không ch là trùng kh p đ ng cong (l a ch n một đ ng cong mà v a kh p nhất

v i một t p điểm d li u); nó còn ph i trùng kh p v i một mô hình v i các thành

phần ngẫu nhiên vƠ xác đ nh (deterministic and stochastic components) Thành phần xác đ nh đ c g i là bộ d đoán (predictor) và thành phần ngẫu nhiên đ c g i là

phần sai số (error term)

Hồi qui th ng đ c x p vào lo i bài toán tối u vì chúng ta nỗ l c để tìm

ki m một gi i pháp để cho sai số và phần d lƠ tốt nhất Ph ng pháp sai số chung

nhất đ c sử d ng lƠ ph ng pháp bình ph ng c c tiểu: ph ng pháp nƠy t ng

ng v i một hàm h p lý d ng Gauss c a các d li u quan sát khi bi t bi n ngẫu

nhiên (ẩn) V một mặt nƠo đó, bình ph ng c c tiểu là một ph ng pháp c

l ng tối u

Để gi i quy t bài toán tối u trong hồi qui th ng dùng các gi i thu t nh

gi i thu t h b c gradient gradient descent, gi i thu t Gauss-Newton, và gi i thu t Levenberg-Marquardt Thu t toán Levenberg-Marquardt là một trong nh ng công

c đ c sử d ng nhi u nhất đối v i các bài toán tối u hóa phi tuy n Đơy đ c xem

Trang 35

+ G i hàm giá tr (hàm m c tiêu) f : là hàm t các thông số Gielis đang có, tính toán (tổng cộng) kho ng cách gi a các điểm trên đ ng biên đ n đ ng cong Gielis M c tiêu c a quá trình nƠy lƠ để có đ c nh ng đ ng cong phù h p nhất,

vì v y ph i thay đổi, c p nh t liên t c các thông số c a đ ng cong Gielis thông qua

Hessian lƠ đ o hàm cấp hai c a hàm giá tr

Áp d ng quy t c hóa Tikhonov bằng cách đ a ra một thông số bù (lambda)

Vì v y, ta có ph ng trình sau đơy:

( J T J + I ) h = - J T

+ Thêm thông số b c h vào các thông số tr c c a đ ng cong Gielis và

tính l i hàm giá tr : sau khi có đ c vector b c, chúng ta s thêm nó vào các thông

số c a đ ng cong Gielis cũ để có đ c các thông số Gielis m i V i các thông số

m i này, chúng ta s l i tính hàm giá tr m i

+ Kiểm tra m c độ phù h p: trong phần này, chúng ta s so sánh giá tr giá tr

m i và giá tr giá tr tr c đó N u giá tr giá tr m i thấp h n so v i giá tr tr c (có nghĩa lƠ có một đ ng cong tốt h n), chúng ta s gi các thông số đ ng cong Gielis m i vƠ sau đó gi m thông số bù N u không, chúng ta s khôi ph c l i các thông số Gielis cũ vƠ tăng thông số bù

Gi i thu t tối u Levenberg-Marquard đ c áp d ng trong khối tái t o hình

d ng c a biển báo giao thông, ta s đi sơu h n t i phần 3.3.5

Trang 36

CH NG 3: THI T K VÀ XÂY D NG CH NG TRỊNH

3.1 M c đích

Yêu cầu c a ch ng trình nƠy là xây d ng một h thống phát hi n và nh n

d ng biển báo giao thông, ph c v cho vi c nghiên c u, phát triển và làm ti n đ cho b c l p trình trên kit nhúng Do đó, h thống ph i ho t động đúng v i các yêu

cầu đ ra, làm vi c ổn đ nh, phát hi n nhanh để đ a ra c nh báo, phát hi n nh n

d ng có độ chính xác cao, t l nh n sai thấp, ho t động trong nhi u đi u ki n khác nhau nh trong môi tr ng ánh n ng g t, th i ti t mát, th i ti t âm u nhi u mây,

biển báo b che khuất b i bóng râm, b h h i một phần, trong quang c nh đ ng nông thôn, đ ng thành phố đông xe …

T nh ng yêu cầu trên ta xây d ng nên l u đồ gi i thu t tổng quát nh sau :

Hình 3.1 S đồ gi i thu t tổng quát

Biển báo giao thông đ c phát hi n d a vào phân khúc màu s c trên nh, và hình d ng t ng ng c a nó đ c nh n d ng bằng cách mô t thông qua đ ng cong Gielis

S đóng góp c a ph ng pháp ti p c n này là xây d ng một ph ng pháp cho phép phát hi n nhi u lo i biển báo giao thông phổ bi n, có hình d ng là hình tròn, hình tam giác, hình ch nh t và hình bát giác,… ch bằng một thu t toán duy

nhất mà không cần bất kỳ giai đo n huấn luy n nào

3.2 Ch c năng của ch ng trình

Ch ng trình đ c vi t bằng ngôn ng l p trình C++ trên ch ng trình QT Creator, cùng v i s hỗ tr một số hàm c a bộ th vi n xử lý nh OpenCV để xử lý

nh

nh đầu vào Phát hi n

biển báo giao thông

Nh n d ng

biển báo giao thông

Xuất nh k t

qu

Trang 37

3.3 Xây d ng ch ng trình

S đồ khối c a khối phát hi n biển báo giao thông đ c mô t nh hình sau:

Hình 3.2 S đồ khối phát hi n biển báo giao thông

3.3.1 Kh i IHLS_NHS

3.3.1.1 Gi i thi u

M c tiêu c a khối nƠy lƠ tìm các điểm nh trong hình có kh năng thuộc v biển báo đ ng bộ theo phân khúc màu s c, t c là tìm

ki m trong nh ngõ vào nh ng đối t ng là biển báo giao thông (có

vi n mùa đỏ hay xanh) Để lƠm đi u này, nh ngõ vƠo RBG đ c chuyển sang không gian mƠu IHLS để ít b nh h ng v i nh ng thay đổi trong độ sáng theo [9] và [10] vƠ sau đó nó đ c phơn ng ỡng

theo màu s c H (Hue ) vƠ độ bão hòa S (Saturation) để l c ra vùng nh

cần quan tâm d a trên một b ng tra

Hình nh ngõ vào: nh RBG ngõ vào lấy t các thi t b thu

nh n hình nh và camera (xem hình 3.3a)

Khối tái t o hình d ng dùng đ ng cong Gielis

Trang 38

Hình nh ngõ ra: nh nh phân, v i phần màu tr ng là vùng nh quan tâm (còn đ c g i là vùng đặc tr ng), phần mƠu đen lƠ n n ch a

nh ng vùng nh không quan tâm (xem hình 3.3b)

Hình 3.3 nh ngõ vào(a) và ngõ ra(b) c a khối IHLS-NHS

3.3.1.2 S đồ kh i:

Hình 3.4 S đồ khối IHLS-NHS

a.Kh i chuy n đổi IHLS: trong phần này chuyển đổi hình nh t

không gian màu RGB sang không gian màu IHLS theo quan h toán

G: giá tr màu xanh lá cây

B: giá tr mƠu xanh d ng

Ngõ vào: nh theo không gian màu RGB

nh ngõ

nh ngõ ra ( nh nh phân)

Trang 39

b Kh i phân khúc NHS ậ T k t qu H, L, S có đ c t khối chuyển đổi IHLS Sử d ng các ng ỡng đ a ra cho một trong hai màu: mƠu đỏ hoặc mƠu xanh, trích các điểm nh t hình nh IHLS trong

ng ỡng này để lấy nh ng vùng nh quan tơm để xử lý (vùng nh có mƠu đỏ hay xanh) K t qu là một hình nh nh phơn trong đó cho thấy

nh ng khu v c có màu s c phù h p v i biển báo đ ng bộ

B ng tra mƠu đ c sử d ng trong đ tài:

Nh ng pixel thỏa giá tr sau đơy đ c xem là vùng mang mƠu đỏ:

L u Ủ rằng b ng tra nƠy ch a có công bố hay công trình nghiên c u c

thể nào xác nh n, ch y u d a vào quan sát và thử nghi m

Đầu vào: Hình nh trong không gian màu IHLS

Đầu ra: Hình nh nh phơn đư đ c phơn ng ỡng (các vùng nh đặc tr ng) nh hình 3.5

Trang 40

Hình 3.5 nh nh phân sau khi đ c phơn ng ỡng để lấy vùng đặc

tr ng (vùng màu tr ng là nh ng pixel c a nh ngõ vào mang mƠu đỏ)

Thu t toán này không hỗ tr các tín hi u giao thông mƠu đen vƠ

tr ng

Thu t toán này s b nh h ng b i đối t ng khác có cùng màu s c xuất hi n trong nh ngõ ra, đối t ng này không ph i và vùng quan tâm Vì v y, ph i đ a đ n khối ti p theo để lo i bỏ các đối t ng nƠy để đ t độ chính xác cao trong nh n d ng

3.3.2 Kh i ti n x lý

3.3.2.1 Gi i thi u

M c tiêu c a phần nƠy lƠ để lo i bỏ nhi u xuất hi n trong nh cũng nh các đối t ng không ph i thuộc v biển báo (nh ng đối

t ng có cùng màu s c v i biển báo nh đư trình bƠy phần tr c)

NgoƠi ra, các đ ng bao vƠ các điểm lồi (convex hull) c a đối t ng

cũng s đ c xác đ nh, lƠ c s cho vi c phát hi n xử lý nh cho các

Ngày đăng: 18/11/2020, 14:00

HÌNH ẢNH LIÊN QUAN

Hình 1.1  Mô hình SVM đ c đ  ngh  [1] - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 1.1 Mô hình SVM đ c đ ngh [1] (Trang 11)
Hình 1.2 T ổng quan đ tƠi dùng đặc tr ng c c b ộ  và b ộ  phân l p SVM [3] - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 1.2 T ổng quan đ tƠi dùng đặc tr ng c c b ộ và b ộ phân l p SVM [3] (Trang 12)
Hình 1.3 Mô hình nh n d ng DVM mà nhóm tác gi   đ  xu ấ t [4]. - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 1.3 Mô hình nh n d ng DVM mà nhóm tác gi đ xu ấ t [4] (Trang 13)
Hình 2.2 Mô hình không gian màu HSL. - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 2.2 Mô hình không gian màu HSL (Trang 19)
Hình 2.7 Phép co nh   phơn trên hai đối t ng  Hình 2.7a bao g ồ m: - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 2.7 Phép co nh phơn trên hai đối t ng Hình 2.7a bao g ồ m: (Trang 25)
Hình 2.11 Quá trình phát tri ể n c a OpenCV. - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 2.11 Quá trình phát tri ể n c a OpenCV (Trang 31)
Hình 2.13 M ộ t s ố  thông s ố  c a đ ng cong Gielis và các hình d ng (v i a=b=1) - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 2.13 M ộ t s ố thông s ố c a đ ng cong Gielis và các hình d ng (v i a=b=1) (Trang 33)
Hình 3.22 Mô t  Rotational Offset. - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 3.22 Mô t Rotational Offset (Trang 49)
Hình 3.28 Giao di n ch ng trình - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 3.28 Giao di n ch ng trình (Trang 55)
Hình 3.29 M   nh c ầ n x ử  lý  Sau đó bấm ắXử lỦ” để  x ử  lý  nh theo các b c nh  đư  nêu   ph ầ n 3.3 - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 3.29 M nh c ầ n x ử lý Sau đó bấm ắXử lỦ” để x ử lý nh theo các b c nh đư nêu ph ầ n 3.3 (Trang 55)
Hình 3.30 K t qu  sau khi x ử  lý - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 3.30 K t qu sau khi x ử lý (Trang 56)
Hình 4.4 Kit nhúng Raspberry PI và các kh ối c  b n trên kit. - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 4.4 Kit nhúng Raspberry PI và các kh ối c b n trên kit (Trang 59)
Hình 4.7  Ch ng trình nh p l nh c a h   đi u hành - LXTerminal - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 4.7 Ch ng trình nh p l nh c a h đi u hành - LXTerminal (Trang 61)
Hình 4.9  S  đồ  gi i thu t  ch ng trình  phát hi n và nh n d ng bi ể n báo giao - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 4.9 S đồ gi i thu t ch ng trình phát hi n và nh n d ng bi ể n báo giao (Trang 68)
Hình 4.13 K t qu  x ử lỦ ch ng trìn h trên kit nhúng. - ỨNG DỤNG xử lý ẢNH và THUẬT TOÁN LEVENBERG MARQUARDT TRONG VIỆC PHÁT HIỆN, NHẬN DẠNG BIỂN báo GIAO THÔNG
Hình 4.13 K t qu x ử lỦ ch ng trìn h trên kit nhúng (Trang 70)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm