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 1M 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 22.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 34.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 4CÁ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 5DANH 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 6Hì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 7Hì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 8Hì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 9CH 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 11Hì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 12Hì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 13Hì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 14c “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 15M 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 16và 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 17CH 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 18chuẩ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 19Hì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 20M 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 23Hì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 24Hì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 25Hì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 26Nh 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 27Hì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 29vi 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 302.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 31Hì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 32HighGUI
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 33T 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 34Nh 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 36CH 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 373.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 38Hì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 39b 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 40Hì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