TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA CƠ KHÍ ĐỘNG LỰC
ĐỒ ÁN TỐT NGHIỆP
Ứng dụng xử lý ảnh trong chạy theo làn đường,nhận diện
biển báo và áp dụng lên xe tự hành
SVTH: NGUYỄN TRUNG TRỰC
MSSV: 16145560
SVTH: LÊ MINH HÙNG
MSSV: 16145406
GVHD: Ths.NGUYỄN THÀNH TUYÊN
Tp.Hồ Chí Minh, 14 tháng 08 năm 2020
LỜI CẢM ƠN
Trong thời gian làm đề tài tốt nghiệp, nhóm chúng em đã nhận được nhiều sự giúp đỡ,
đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cơ, gia đình và bạn bè.
Nhóm chúng em xin gửi lời cảm ơn chân thành đến Th.s Nguyễn Thành Tuyên, giảng
viên Bộ môn Điện-Điện tử - trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình thực hiện đề tài tốt nghiệp.
Đồng thời cả nhóm cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại Học
Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh nói chung, các thầy trong Bộ mơn Điện-Điện
tử nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên
ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt
quá trình học tập.
Cuối cùng chúng em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện,
quan tâm, giúp đỡ, động viên cả nhóm trong suốt q trình học tập, nghiên cứu và hoàn
thành đề tài tốt nghiệp.
Sinh Viên Thực Hiện
ii
TÓM TẮT
Đề tài:
“Xe tự hành chạy theo lane và nhận diện biển báo”
Được nghiên cứu và chế tạo tại trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí
Minh.Thời gian thực hiện 1/2020 đến 7/2020 là đề tài được ứng dụng vào thực tế.Đề tài
ứng dụng xử lý ảnh để nhận biết lane và biển báo để điều khiển hoạt động của chiếc xe.Với
ngơn ngữ chính để lập trình xử lý hình ảnh là ngơn ngữ Python,giúp cho việc lập trình xử
lý ảnh trở nên đơn giản hơn.Phương pháp được sử dụng trong xử lý ảnh của nhóm em là
Deep Learning,phương pháp này cho phép máy tự học các đặc điểm của hình ảnh mà khơng
cần tác động nhiều của người lập trình bằng cách cung cấp một lượng đủ hình ảnh cho
máy.Từ các hình ảnh được cung cấp đó máy sẽ tự lọc và chọn ra những đặc điểm nổi bật
của hình ảnh đó.Máy sẽ lưu nhớ các hình ảnh đó thơng qua các đặc điểm là nó đã lọc ban
đầu,hình ảnh được thu vào khi xe chạy sẽ được so sánh với hình ảnh đã được thu thập từ
trước,sau đó hệ thống sẽ đưa ra các quyết định thơng qua việc so sánh đặc điểm ấy.Mục
đích của đề tài là xây dựng mơ hình xe từ hành để từ đó có thể tạo một bước đệm lớn,từ
bước đệm đó chúng ta có thể phát triển và chế tạo ra những chiếc ơ tơ có thể tự hành trên
đường mà không cần sự can thiệp của con người.Cuộc đột phá công nghệ đang diễn ra
ngày cành nhanh không chỉ ở nước ta nói riêng,mà là tồn thế giới nói chung,chỉ một vài
năm nữa thơi các hãng xe lớn như Tesla,Audi,BMW…sẽ cho ra mắt các công nghệ tự hành
trên các dòng xe của họ.Để bắt kịp với xu thế của thế giới nói chung,cũng như ngành ơ tơ
nói riêng thì địi hỏi mỗi kỹ sư ơ tơ chúng ta phải ngày càng học hỏi,tìm hiểu các cơng nghệ
mới,các cơng nghệ hiện đại,có như vậy thì ngành ơ tơ Việt Nam mới ngày càng phát triển
được.Đó cũng chính là mục đích thứ hai của nhóm em khi quyết định nghiên cứu và mơ
hình hóa đề tài.Sau 6 tháng nghiên cứu và chế tạo thì nhóm em cũng hồn thành mơ hình
xe tự hành và có thể đem ra chạy thử.Tuy nhiên vẫn còn một số nhiễu khi xử lý ảnh đó là
ánh sáng mà nhóm em chưa hồn tồn có thể kiểm sốt được.Nhưng đó cũng là động lực
để nhóm em cố gắng hồn thiện hơn trong tương lại khơng xa,để tự hành trên ơ tơ khơng
cịn là định nghĩa xa vời đối với ngành ô tô của nước ta.
iii
MỤC LỤC
Trang
LỜI CẢM ƠN ..................................................................................................................ii
TÓM TẮT ..................................................................................................................... iii
MỤC LỤC ...................................................................................................................... iv
DANH MỤC CÁC HÌNH ................................................................................................ v
DANH MỤC CÁC BẢNG ............................................................................................... x
Chương 1: TỔNG QUAN .............................................................................................. 1
1.1 LÝ DO CHỌN ĐỀ TÀI............................................................................................. 1
1.2 CÁC NGHIÊN CỨU NGOÀI VÀ TRONG NƯỚC ................................................... 2
1.2.1 Các nghiên cứu ngoài nước ............................................................................... 2
1.2.2 Các nghiên cứu trong nước .............................................................................. 3
1.3 MỤC ĐÍCH CỦA ĐỀ TÀI ......................................................................................... 4
1.4 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI ................................................................ 4
1.5 PHƯƠNG PHÁP NGHIÊN CỨU .............................................................................. 4
Chương 2: CƠ SỞ LÍ THUYẾT.................................................................................... 5
2.1 XE TỰ HÀNH ........................................................................................................... 5
2.1.1 Giới thiệu ......................................................................................................... 5
2.1.2 Một số công nghệ được sử dụng trên xe tự hành. .............................................. 7
2.2 PHƯƠNG PHÁP NHẬN DIỆN LANE ...................................................................... 9
2.2.1 Deep learning sử dụng keras và tensorflow. ...................................................... 9
2.2.2 Deep learning sử dụng tensorflow ................................................................... 12
2.3 GIỚI THIỆU VỀ PYTHON ..................................................................................... 16
2.3.1 Giới thiệu ....................................................................................................... 16
2.3.2 Đặc điểm ........................................................................................................ 16
2.4 THƯ VIỆN OPENCV .............................................................................................. 17
2.4.1 Giới thiệu ....................................................................................................... 17
2.4.2 Đặc điểm ........................................................................................................ 17
2.5 TENSORFLOW ....................................................................................................... 18
2.5.1 Giới thiệu ....................................................................................................... 18
2.5.2 Đặc điểm ........................................................................................................ 18
2.6 TỔNG QUAN VỀ PHẦN CỨNG ............................................................................ 18
iv
2.6.1 Kit Jetson Nano .............................................................................................. 18
2.6.2 Camera Logitech C270 ................................................................................... 21
2.6.3 Arduino Uno ................................................................................................... 21
Chương 3: XÂY DỰNG VÀ LẬP TRÌNH HỆ THỐNG ............................................ 23
3.1 GIỚI THIỆU ............................................................................................................ 23
3.2 XÂY DỰNG HỆ THỐNG ....................................................................................... 23
3.2.1 Thiết kế sơ đồ khối ......................................................................................... 23
3.2.2 Các khối trong hệ thống .................................................................................. 24
3.2.2.1 Khối điều khiển và xử lý trung tâm........................................................... 24
3.2.2.2 Khối thu thập hình ảnh ............................................................................. 29
3.2.2.3 Khối động cơ ............................................................................................ 29
3.2.2.4 Khối điều khiển lái ................................................................................... 33
3.2.2.5 Khối nguồn ............................................................................................... 36
3.2.3 Sơ đồ nguyên lý toàn mạch ............................................................................. 38
3.3 CHUẨN BỊ LINH KIỆN – MƠ ĐUN ...................................................................... 39
3.4 MƠ HÌNH XE TỰ HÀNH ....................................................................................... 39
3.5 LẬP TRÌNH HỆ THỐNG ........................................................................................ 41
3.5.1 Cài đặt hệ điều hành cho jetson nano .............................................................. 41
3.5.2 Cài đặt các chương trình và phần mềm cần thiết ............................................. 43
3.5.3 Cài đặt chương trình Visual studio code cho jetson nano ................................ 44
3.5.4 Cài đặt phần mềm trên máy tính chủ (máy tính dùng để đào tạo mơ hình) ...... 44
3.5.4.1 Cài đặt Cuda , cuDNN .............................................................................. 44
3.5.4.2 Cài đặt anaconda, Visual studio code........................................................ 46
3.5.4.3 Thiết lập cho học sâu hướng đối tượng ..................................................... 46
3.5.5 Lưu đồ giải thuật hệ thống .............................................................................. 47
3.5.5.1 Nhận diện Lane ........................................................................................ 47
3.5.5.2 Nhận diện biển báo Stop ........................................................................... 50
3.5.6 Giao diện lập trình .......................................................................................... 53
3.5.6.1 Giao diện lập trình xử lý ảnh lane và biển báo .......................................... 53
3.6 HƯỚNG DẪN THAO TÁC ..................................................................................... 55
3.6.1 Thao tác đối với Jetson Nano .......................................................................... 55
3.6.1.1 Remote Desktop ....................................................................................... 55
Chương 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ ............................................................ 60
v
4.1 KẾT QUẢ ................................................................................................................ 60
4.1.1 Kết quả thi công phần cứng ............................................................................ 60
4.2 THỰC NGHIỆM ..................................................................................................... 63
4.2.1 Thực nghiện model Deep learning sử dụng tensorflow và keras ...................... 63
4.2.2 Thực nghiệm model Deep learning sử dụng tensorflow .................................. 67
4.2.3 Thống kê ........................................................................................................ 69
4.3 NHẬN XÉT VÀ ĐÁNH GIÁ .................................................................................. 71
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................ 72
5.1 KẾT LUẬN ............................................................................................................. 72
5.2 HƯỚNG PHÁT TRIỂN ........................................................................................... 73
TÀI LIỆU THAM KHẢM ............................................................................................. 74
PHỤ LỤC ...................................................................................................................... 76
vi
DANH MỤC CÁC HÌNH
Trang
Hình 2.1: Các cấp độ của xe tự hành ............................................................................... 6
Hình 2.2: Quan hệ giữa trí tuệ nhân tạo với học máy và học sâu ..................................... 8
Hình 2.3: Sơ đồ cách hoạt động của deep learning với nhận diện khn mặt ................... 9
Hình 2.4: Thư mục chứa ảnh đào tạo ............................................................................. 10
Hình 2.5: Sắp xếp dữ liệu theo thứ tự mong muốn......................................................... 11
Hình 2.6: Quá trình đào tạo mơ hình ............................................................................. 11
Hình 2.7: Dữ liệu nhận diện thực tế. .............................................................................. 12
Hình 2.8: Thư mục chứa ảnh đào tạo ............................................................................. 13
Hình 2.9: Quá trình phân vùng dữ liệu .......................................................................... 14
Hình 2.10: Quá trình đào tạo diễn ra.............................................................................. 14
Hình 2.11: Qúa trình đào tạo ......................................................................................... 15
Hình 2.12: Sử dụng mơ hình ......................................................................................... 15
Hình 2.13: Jetson Nano ................................................................................................. 18
Hình 2.14:Thơng số kỹ thuật của Jetson Nano ............................................................... 19
Hình 2.15: So sánh Jetson Nano và Raspberry PI 4 ....................................................... 20
Hình 2.16: Camera Logitech C270 ................................................................................ 21
Hình 2.17: Arduino Uno R3 .......................................................................................... 21
Hình 3.1: Sơ đồ khối tồn hệ thống ............................................................................... 23
Hình 3.2: Ngoại vi của Jetson Nano .............................................................................. 25
Hình 3.3: Sơ đồ cấu tạo của Jetson Nano....................................................................... 26
Hình 3.4: Sơ đồ chân GPIO của Jetson Nano ................................................................ 26
Hình 3.5: Sơ đồ cấu tạo của Arduino Uno R3 ................................................................ 27
Hình 3.6: Thơng số kỹ thuật của Arduino Uno R3 ......................................................... 28
Hình 3.7: Camera logitech C270 ................................................................................... 29
Hình 3.8: Động cơ RS550 ............................................................................................. 30
Hình 3.9: Thơng số động cơ RS550 ............................................................................... 30
Hình 3.10: Module BTS7960 43A................................................................................. 31
Hình 3.11: Sơ đồ các chân của module BTS7960 .......................................................... 31
Hình 3.12: Kết nối module BTS7960 với Arduino Uno R3 ........................................... 32
Hình 3.13: Động cơ bước .............................................................................................. 33
vii
Hình 3.14: Phương pháp điều khiển động cơ bước ........................................................ 34
Hình 3.15: Driver TB6600 ............................................................................................ 35
Hình 3.16: Sơ đồ kết nối TB6600 .................................................................................. 36
Hình 3.17: Bình ắc quy Đồng Nai ................................................................................. 37
Hình 3.18: Sơ đồ ngun lý tồn mạch .......................................................................... 38
Hình 3.19: Mơ phỏng xe tự hành ................................................................................... 40
Hình 3.20: Mơ phỏng xe tự hành ................................................................................... 40
Hình 3.21: Phần mềm format thẻ nhớ ............................................................................ 41
Hình 3.22: Phần mềm ghi đè hệ điều hành lên thẻ nhớ .................................................. 42
Hình 3.23: Giao diện hệ điều hành ................................................................................ 43
Hình 3.24: Thiết lập card nvidia là GPU mặc định ........................................................ 45
Hình 3.25: Quá trình cài đặt Cuda hồn tất .................................................................... 45
Hình 3.26: Lưu đồ nhận diện và chạy theo lane (P1) ..................................................... 47
Hình 3.27: Lưu đồ nhận diện và chạy theo lane (P2) ..................................................... 48
Hình 3.28: Thẳng 1 ....................................................................................................... 49
Hình 3.29: Cong ............................................................................................................ 49
Hình 3.30: Lưu đồ nhận diện biển báo Stop (P1) ........................................................... 50
Hình 3.31: Lưu đồ nhận diện biển báo Stop (P2) ........................................................... 51
Hình 3.32: Nhận diện biến báo Stop .............................................................................. 52
Hình 3.33: Giao diện Visual Studio ............................................................................... 53
Hình 3.34: Giao diện Visual Studio ............................................................................... 53
Hình 3.35: Giao diện lập trình Arduino ......................................................................... 54
Hình 3.36: Cài đặt phần mềm VNC ............................................................................... 55
Hình 3.37: Cú pháp tìm IP của Jetson Nano .................................................................. 56
Hình 3.38: Địa chỉ IP trên Jetson Nano ......................................................................... 56
Hình 3.39: Chạy VNC trên Jetson Nano ........................................................................ 57
Hình 3.40: Chạy VNC trên Jetson Nano ........................................................................ 57
Hình 3.41: Nhập IP của Jetson vào VNC ....................................................................... 58
Hình 3.42: Chấp nhận liên kết trên Jetson Nano ............................................................ 58
Hình 3.43: Liên kết thành cơng Jetson Nano và laptop .................................................. 59
Hình 4.1: Mơ hình xe tự hành........................................................................................ 60
Hình 4.2: Mơ hình xe tự hành........................................................................................ 60
Hình 4.3: Mơ hình xe tự hành........................................................................................ 61
viii
Hình 4.4: Mạch điện trong xe ........................................................................................ 62
Hình 4.5: Xe đi thẳng1 .................................................................................................. 63
Hình 4.6: Kết quả nhận diện lane thẳng ......................................................................... 63
Hình 4.7: Xe rẽ phải ...................................................................................................... 64
Hình 4.8: Kết quả nhận diện lane cong .......................................................................... 64
Hình 4.9: Xe đi thẳng 2 ................................................................................................. 65
Hình 4.10: Kết quả nhận diện lane thẳng 2 .................................................................... 65
Hình 4.11: Xe dừng lại .................................................................................................. 66
Hình 4.12: kết quả nhận diện biển báo........................................................................... 66
Hình 4.13: Xe đi thẳng api ............................................................................................ 67
Hình 4.14: Kết quả nhận diện thẳng api......................................................................... 67
Hình 4.15: Xe rẽ phải api .............................................................................................. 68
Hình 4.16: Kết quả nhận diện cong api .......................................................................... 68
Hình 4.17: Kết quả nhận diện biển báo bằng api ........................................................... 69
ix
DANH MỤC CÁC BẢNG
Trang
Bảng 3.1: Các linh kiện, mô đun sử dụng ...................................................................... 39
Bảng 4.1: Các linh kiện lắp đặt trên xe .......................................................................... 62
Bảng 4.2: Bảng kết quả thực nghiệm nhận dang lane,biển stop trong điều kiện thực tế. . 70
Bảng 5.1: Ưu điểm và nhược điểm của hai mô hình đào tạo. ......................................... 72
x
Chương 1
TỔNG QUAN
1.1 LÝ DO CHỌN ĐỀ TÀI
Với sự phát triển trong thời đại cơng nghệ 4.0 thì AI đang ngày càng trở thành xu thế tất
yếu của toàn cầu.Từ các ngành kinh tế,y học,kỹ thuật,…đều vận dụng AI vào công việc
nhằm giúp giảm bớt sức lao động của con người,tăng lợi nhuận kinh tế cho doanh
nghiệp.Khơng đứng ngồi xu hướng đấy thì ngành ơ tơ hiện nay trên tồn thế giới cũng
đang tiến vào cuộc đua số để cho ra đời những mẫu xe thông minh không người lái,bằng
cách sử dụng AI để làm bộ não của những chiếc xe của họ.Có thể nói xe tự hành đang là
vấn đề được tất cả các hãng xe lớn trên thế giới quan tâm,hằng năm các công ty này chi trả
hàng tỷ USD để phục vụ cho công cuộc nghiên cứu để có thể cho ra đời những mẫu xe
thơng minh một cách sớm nhất.Cái tên đứng đầu trong cuộc đua tự hành không phải ai xa
lạ,khi nhắc đến họ chúng ta đều phải trầm trồ thán phục về những nổ lực nghiên cứu,cũng
như độ chịu chơi khi đầu tư những khoảng tiền khổng lồ vào việc nghiên cứu này đó chính
là Tesla,một trong những cơng ty hàng đầu trong lĩnh vực ơ tơ điện hiện nay trên thế giới.Ơ
tơ tự hành được chia thành 5 cấp độ từ thấp đến cao bởi Hiệp hội kỹ sư ô tô (SAE) để đánh
giá mức độ.Trong thời tới Tesla sẽ nâng cấp xe tự hành của hãng lên cấp độ 5,có nghĩa là
các mẫu xe tự hành của họ có thể hồn tồn chạy trên đường phố mà không cần tác động
của con người.Vào khoảng thời gian khơng xa thì những chiếc ơ tơ tự hành chạy khắp trên
đường khơng cịn là những ý tưởng viển vong nữa,mà là thực tế đang diễn ra.
Để theo đuổi kịp xu thế tồn cầu thì ngành ơ tơ của nước ta cần có những bước chuyển
mình trong công nghệ cũng như tư duy của con người về vấn đề tự hành ngày nay.Một
trong những công ty đang có xu hướng phát xây dựng và phát triển mảng ô tô tự hành ở
Việt Nam là FPT.Hằng năm FPT đều tổ chức “Cuộc Thi Số” đó là sân chơi cho các bạn trẻ
trên tồn quốc có đam mê về xe tự hành thỏa sức sáng tạo,học hỏi lẫn nhau…đồng thời
giúp FPT tìm kiếm được những nhóm có tiềm năng để vào công ty nhằm giúp phát triển
mạnh mẽ hơn nữa về xe tự hành ở nước ta.
Là một kỹ sư ơ tơ thì đam mê ơ tơ là chưa đủ,chúng ta phải ngày càng nâng cao kiến
thức,tìm tịi học hỏi những công nghệ mới trên thế giới hiện nay.Thì xe tự hành đang và sẽ
1
là xu thế tất yếu của ngành ô tô trong vài năm tới,nên việc nghiên cứu và xây dựng mơ
mình là điều cấp thiết hiện nay.Ngành ô tô Việt Nam đang ngày càng phát triển mạnh
mẽ,rất có tiềm năng trong tương lai,cộng thêm sự đam mê nghiên cứu ngày càng nhiều thì
chúng em tin rằng trong một tương lai khơng xa nữa thì ơ tơ tự hành ở Việt Nam khơng
cịn là một định nghĩa xa vời,mà thay vào đó là thực tế hiển nhiên.
Bởi các lý do nhận thấy ở trên,nên nhóm em đã quyết định và nghiên cứu đề tài “Xe tự
hành chạy theo lane và nhận diện biển báo”.
1.2 CÁC NGHIÊN CỨU NGOÀI VÀ TRONG NƯỚC
1.2.1 Các nghiên cứu ngoài nước
- Với đề tài: Lane And Road Signs Recognition For Drive Assistance System do Ahmed
Herchi và Abdellatif Mtibaa nghiên cứu đã xác định được lane và biển báo giao thông trên
đường khi xe di chuyển.Đề tài đã chỉ cách thức để xác định lane và phương trình để tính
tốn nhằm giữ xe ln đi đúng làn đường của nó,đồng thời nêu ra các phương thức để nhận
diện biển báo giao thơng một cách chính xác nhất.Các bước để xử lý hình ảnh đầu
vào,phương pháp lọc nhiễu để tăng độ chính xác khi xử lý đề được trình bày một cách cụ
thể.Từ đó tác giả cũng đề xuất ra phương pháp hiệu quả nhất trong việc xác định lane và
biển báo giao thông.
- Với đề tài: A Simple Way to Prevent Neural Networks from Overfitting do Nitish
Srivastava,Geofrey Hinton,Alex Krizhevsky,Ilya Sutskever đồng nghiên cứu.Nghiên cứu
đã nêu ra một khái niệm mới việc đào tạo học máy là sử dụng mạng neural networks.Với
việc sử dụng nó cho phép chúng ta đào tạo máy học một cách nhanh chóng và dễ dàng
hơn,đồng thời độ chính xác cũng được cải thiện rất nhiều do với những phương pháp đào
tạo khác.Các phương trình tính tốn,cũng như cách thiết lập hệ thống mạng reural đều được
trình bày một cách cụ thể nhất,giúp người đọc có thể hiểu dễ dàng hơn.
- Trong đề tài: Deep Residual Learing for Image Recognition do Kaiming He,Xiangyu
Zhang,Shaoqing Ren,Jian Sun đã trình bày cách thức xây dựng khung hình để dễ dàng đào
tạo của mạng sâu hơn so với các mạng được sử dụng hiện nay.Đề tài chỉ ra cách định dạng
rõ ràng hơn về các lớp là học các hàm dư với tham chiếu đến các đầu vào của lớp,thay vì
2
học các hàm khơng được ước tính.Các bằng chứng thực nghiệm cũng được đưa ra để chứng
minh cho việc tối ưu hóa và đạt được độ chính xác bằng cách tăng nhiều lớp neural.
1.2.2 Các nghiên cứu trong nước
- Với đề tài: Phát hiện và nhận dạng biển báo giao thông đường bộ sử dụng đặc trưng
HOG và mạng nơron nhân tạo do Trương Quốc Bảo,Trương Quốc Định thuộc trường đại
học Cần Thơ nghiên cứu vào năm 2015.Tác giả đã trình bày thuật tốn xử lý ảnh và học
máy để tự động phát hiện và nhận diện biển báo giao thông đường bộ sử dụng đặc trưng
cục bộ HOG và mạng Nơron nhận tạo.Hệ thống có thể phát hiện và nhận dạng hầu hết các
biển báo giao thông như biển cấm,biển báo nguy hiểm,biển hiệu lệnh và biển chỉ dẫn không
bị chồng lắp.Thực nghiệm được tiến hành với 31 video với thời gian trung bình để phát
hiện và nhận diện và nhận dạng các biển báo giao thông trên một frame ảnh xấp xỉ 0.021
giây khi sử dụng mơ hình phân lớp với mạng nơron nhân tạo và khoảng 0.099 giây khi sử
dụng mơ hình phân lớp SVM và độ chính xác nhận dạng khoảng 94%.
- Luận văn thạc sĩ: “Nghiên cứu về mạng neural tích chập và ứng dụng cho bài tốn
nhận dạng biển báo giao thơng “ của Lê Thị Thu Hằng,Đại Học Công Nghệ Hà Nội,2016
đã giới thiệu khái quát về một số kiểu mạng Neural và đặc điểm của chúng.Trong đó đề tài
đã nêu ra được định nghĩa về mạng neural tích chập một cách cụ thể nhất và cách xây dựng
mơ hình mạng neural tích chập,ứng dụng vào việc nhận dạng biển báo giao thông trên
đường.
- Đồ án tốt nghiêp:”Robot vận chuyển mẫu xét nghiệm trong bệnh viện” của Đinh Việt
Hùng và Đặng Thị Huỳnh Như,Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh,2019
trong đề tài đã mơ tả q trình thu thập và xử lý hình ảnh của lane đường có sẵn trong bệnh
viện,giúp robot có thể vận hành một cách tự động trong môi trường đã thiết lập sẵn.Hạn
chế của đề tài là robot chỉ có thể tự vận hành trong một mơi trường cố định,cịn ra những
mơi trường khác thì không thể vận hành được.
3
1.3 MỤC ĐÍCH CỦA ĐỀ TÀI
- Mục đích đề tài là Nghiên cứu và xây dụng mơ hình xe tự hành chạy theo lane và nhận
diện biển báo giao thông,để xe có thể tự vận hành trên đường mà khơng cần sự can thiệp
của con người.
- Trong đề tài sử dụng lý thuyết về xử lý ảnh,đặc biết là lý thuyết về Deep
learning,Convolution Neural Network để xây dựng một hệ thống nhận diện lane đường và
biển báo trong một điều kiện cho trước.Đồng thời xây dựng mơ hình xe tự hành cỡ nhỏ có
thể vận hành được bằng hệ thống trên.
1.4 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI
- Đề tài nghiên cứu sẽ xây dựng mơ hình xe tự hành về cả hệ thống xử lý ảnh,và cả thiết
kế và thi cơng xây dựng mơ hình cơ khí cho xe.
- Trong đề tài sẽ sử dụng ngôn ngữ Python để lập trình xây dựng hệ thống xử lý cho
chiếc xe.
- Thực nghiệm cho mơ hình chạy trên đường để xem xét là tinh chỉnh các thông số giúp
tối ưu hóa khả năng xử lý của hệ thống.
- Đề tài chỉ có thể xây dựng mơ hình tự hành trong một môi trường cố định,chưa thể tự
hành trong các điều kiện mơi trường khác nhau.
- Mơ hình chỉ có thể chạy theo lane và nhận diện biển báo Stop để dừng lại.
1.5 PHƯƠNG PHÁP NGHIÊN CỨU
- Phân tích dữ liệu từ các cơng trình nghiên cứu trong và ngồi nước.
- Lập trình xây dựng hệ thống xử lý từ cơ bản đến có thể vận dụng vào xe tự hành.
- Thực nghiệm và đánh giá kết quả đạt được.
- Hiệu chỉnh sau thực nghiệm để tìm ra các yếu tố cần thiết và quan trọng,nhằm ổn định
cho xe khi chạy xử lý ảnh mà không bị nhiễu bởi các yếu tố của môi trường như ánh sáng.
4
Chương 2
CƠ SỞ LÍ THUYẾT
2.1 XE TỰ HÀNH
2.1.1 Giới thiệu
Xe tự hành là các thiết bị di chuyển có hình dạng như một chiếc xe ô tô và đáp ứng đầy
đủ các yêu cầu về tiêu chuẩn sau (theo giáo sư Sridhar Lakshmanan của trường đại học
Michigan-Dearborn) :
- Có hình dạng giống những chiếc ô tô thông thường.
- Được trang bị hệ thống nhận diện các biến động trên đường: GPS sẽ xác định nhiệm
vụ của xe tự lái bằng các thiết lập điểm đầu và điểm cuối của hành trình, dựa trên tính năng
dẫn đường của Google Maps. Một hệ thống công nghệ hỗ trợ khác như radar, laser, camera
để phát hiện và xử lí các tình huống bất ngờ.
- Có hệ thống chuyển các thơng tin từ hai hệ thống trên thành các hành động thực tế
trên đường.
Các cấp độ của xe tự hành:
- Xe ô tô tự hành cấp 1: một số khía cạnh được tự động hóa. Là cấp độ cơ bản nhất, có
nghĩa là các yếu tố của quá trình lái xe được thực hiện độc lập, sử dụng các dữ liệu từ các
cảm biến vầ máy ảnh, người lái vẫn chịu phần lớn trách nhiệm điều khiển. Ví dụ như các
hệ thống giữ làn đường ,…
- Xe ô tô tự hành cấp 2: chip kiểm soát hai hoặc nhiều yếu tố. Ở cấp dộ này, máy tính
đảm nhận nhiều chức năng từ điều khiển (kết hợp các hệ thống lái và tốc độ) từ các dữ liệu
: bướm ga, phanh, hệ thống lái cho một trong những hệ thống kiểm sốt hành trình. Điển
hình như tính năng đỗ xe tự động,..
- Xe ơ tơ tự hành cấp 3: xe có thể làm chủ các chức năng quan trọng về an tồn. Cấp
độ 3 có tên khác là ‘tự động hóa có điều kiện’ nghĩa là một chế độ cụ thể cho phép tất cả
các khía cạnh của việc lái xe được thực hiện (hệ thống điều khiển của người lái ở chế độ
chờ, nhưng có thể can thiệp trong một khoảng thời gian). Điều quan trọng nhất người lái
5
xe phải có mặt để đáp ứng yêu cầu can thiệp. Nghĩa là xe chỉ có thể tự lái trong một số điều
kiện nhất định, nơi nó sẽ nắm quyền kiểm soát tất cả các chức năng quan trọng về an toàn.
- Xe tự hành cấp 4: tự chủ hoàn tồn trong khu vực kiểm sốt. Tức là xe tự lái gần như
hoàn toàn trong một khu vực xác định. Khu vực này được nhà sản xuất lập bản đồ cực kì
chi tiết cho các khu vực.
- Xe tự hành cấp 5 : Hoàn toàn tự động, mọi nới với trình điều khiển tùy chọn. Điểm
khác biệt giữa cấp 4 với cấp 5 là thay vì chỉ chạy được trong điều kiện được thiết lập trước(
như các thành thị) thì ở cấp 5 có thể chạy trong mọi điều kiện. Bởi vì ở cấp độ này các khối
lượng dữ liệu được giải quyết gần như triệt để nhất có thể.
Hình 2.1: Các cấp độ của xe tự hành
6
2.1.2 Một số công nghệ được sử dụng trên xe tự hành.
Như đã giới thiệu ở trên thì để xe có thể đạt được tự hành ở cấp độ 5, thì địi hỏi chiếc
xe này ngồi việc xử lí các dữ liệu có sẵn cịn phải tự động thu thập, xử lí các dữ liệu mới.
Cụ thể cộng nghệ đáp ứng được yêu cầu là AI ( aritificial inteligence ), để định nghĩa một
cách cơ bản AI- trí tuệ nhân tạo nghĩa là máy tính có thể bắt chước hành vi, tư duy của con
người theo một cách nào đó. Để máy tính có thể bắt chước hành vi cũng như tư duy của
con người ta cần thiết lập nền tảng cũng như cách máy tính tiếp nhận kiến thức mới từ nền
tảng kiến thức đã được đào tạo từ con người. Giải pháp được dùng để máy tính thiết lập
nền tảng và tư duy, được gọi là machine learning (học máy).
Machine learning được hoạt động cơ bản như sau: Cung cấp một thuật toán ban đầu bao
gồm rất nhiều dữ liệu và để nó tìm ra mọi thứ. Đối với xe tự hành thuật toán được cung
cấp giúp xe xác định các yếu tố bao gồm: điều kiện đường xá, tình trạng giao thơng, các
phương tiện có mặt trên đường ,… Tuy nhiên để xử lí một lượng lớn thơng tin như vậy vẫn
rất khó khăn nếu chỉ sử dụng các thuật tốn thơng thường do lượng dữ liệu đầu vào là cực
kì lớn và xử lí cực kì khó khăn. Vì thế giải pháp được đưa ra là cho máy tính bắt trước theo
bộ não của con người từ đó ý tưởng về mạng thần kinh nhân tạo ra đời( neural networks).
Mạng lưới thần kinh nhân tạo bao gồm các mạng lười thần kinh với nhiều nơ-ron, các
lớp kết nối với nhau. Để hình thành các mạng lưới này thì phương pháp được sử dụng là
Deep learning (học sâu). Cách hoạt động của học sâu là ban đầu chúng ta được một lượng
lớn dữ liệu về một đối tượng nhất định, máy tính sẽ phân tích đặc điểm của dữ liệu đưa
vào, để đưa ra các đặc điểm chung, từ đó hình thành một mạng lưới thần kinh với đặc điểm
nhận dạng của dữ liệu đầu vào
7
Hình 2.2: Quan hệ giữa trí tuệ nhân tạo với học máy và học sâu
Ví dụ đối với chương trình xác định khuôn mặt, deep learning hoạt động như sau:
- Từ những hình ảnh mẫu mà chúng ta cung cấp. Máy tính chuyển đổi ảnh mẫu thành
các mẫu tương phản cục bộ.
- Lớp đầu tiên ( hidden layer 1) sử dụng các mẫu tương phản để xác định các đặc trưng
như mắt, mũi miệng.
- Lớp thứ hai ( hidden layer 2) có thể áp dụng các đặc điểm khn mặt đó để đưa ra
các mẫu khn mặt.
- Cuối cùng hình thành một mạng lưới thần kinh có khả năng kết hợp các nơron thần
kinh ( các thuật toán thể hiện đặc trưng riêng lẻ) thành một mạng lưới phức tạp. Có khả
năng phân tích và nhận diên khn mặt ở nhiều điều kiện khác nhau.
8
Hình 2.3: Sơ đồ cách hoạt động của deep learning với nhận diện khuôn mặt
Đối với giới hạn đề tài, thì cơng nghệ được sử dụng trên xe tự hành của chúng em chỉ
xử lí nhận dạng hình ảnh của deep learning.
2.2 PHƯƠNG PHÁP NHẬN DIỆN LANE
Do đặc thù của của mơi trường thực nghiệm là khơng có lane, nên sử dụng các yếu tố
đặc điểm đặc thù của môi trường thực nghiệm thay thế. Trong đề tài này tụi em sẽ sử dụng
hai phương pháp nhận diện khác nhau trên nền tảng của deep learning là xử lí ảnh bằng
deep learning sử dụng keras và tensorflow,phương pháp thứ hai là xử lí ảnh bằng deep
learning chỉ sử dụng tensorflow.
2.2.1 Deep learning sử dụng keras và tensorflow.
Phương pháp này xây dựng cơ sở dữ liệu nhận diện gần như là tự động. Với cơ sở dữ
liệu đầu vào, sau khi được phân loại chia thành các đối tượng và lọc bỏ đi các dữ liệu lỗi
thì được đưa vào chương trình tiến hành đào tạo mơ hình nhận diện. Đối với chương trình
là nhận diện làn đường thì ảnh được chia thành hai lớp khác nhau bao gồm: làn đường đi
thẳng và làn đường vào cua. Các dữ liệu lỗi là các hình bị mờ, vỡ và các hình chụp ngoài
ý muốn. Yêu cầu đối với dữ liệu chuẩn là ảnh rõ, đúng mục đích ( tức là thư mục chứa ảnh
đường cong không chứa ảnh đường thẳng và ngược lại) ngoài ra nên thêm các đối tượng
gây nhiễu vào các thư mục như lá cây, cành, … để trong q trình đào tạo mơ hình tránh
9
nhầm lẫn. Đồng thời các dữ liệu ảnh nên chụp trong nhiều điều kiện sáng khác nhau để tối
ưu quá trình nhận diện.
Các bước để xây dụng dữ liệu đào tạo mơ hình:
- Bước một: Chuẩn bị dữ liệu đầu vào, chia các ảnh đầu vào thành ba thư mục: “thang
1” , “cong” , “thang 2”. Với yêu cầu đối với dữ liệu đầu vào như trên. Mặc khác lí do chia
thành ba thư mục mà cách di chuyển chỉ là hai, bởi vì đặc thù của địa hình thực nghiệm có
sự khác biệt lớn dữ thẳng đầu tiên và thẳng thứ hai (sau khi đi vào đường cong) nên chia
làm hai thư mục riêng biệt để tăng tính độc lập của dữ liệu, tránh nhầm lần dẫn đến sai sót
trong q trình đào tạo.
Hình 2.4: Thư mục chứa ảnh đào tạo
10
- Bước hai: Sắp xếp dữ liệu theo đúng thứ tự mong muốn
Hình 2.5: Sắp xếp dữ liệu theo thứ tự mong muốn
- Bước ba: Tiến hành đào tạo mô hình thần kinh nhân tạo, thời gian của quá trình này
phục thuộc vào độ lớn dữ liệu và thiết bị phần cứng.
Hình 2.6: Q trình đào tạo mơ hình
11
Sau khi quá trình đào tạo kết thúc, ta tiến hành sử dụng mơ hình thần kinh nhân tạo đã
được đào tạo vào xe chạy thực tế.
Hình 2.7: Dữ liệu nhận diện thực tế.
Nhận xét:
- Ưu điểm: Quá trình thu thập hình ảnh đơn giản, thời gian đào tạo mơ hình ngắn. Mơ
hình nhẹ, u cầu phần cứng khơng q lớn nên tốc độ xử lí và thời gian đáp ứng nhanh.
- Nhược điểm: Do quá trình nhận diện đặc điểm là tự động và đặc thù đối tượng nhận
diện không rõ ràng ( cây cỏ phủ lên vỉa hè, lá rơi, …) nên dễ bị nhiễu bởi điều kiện mơi
trường dẫn đến tín hiệu điều khiển gửi về bị sai sót ảnh hưởng đến q trình di chuyển.
2.2.2 Deep learning sử dụng tensorflow
Về bản chất cách hoạt động của phương pháp này vẫn là deep learning nhưng sự can
thiệp của người sử dụng nhiều hơn. Đối với deep learning ta chỉ việc phân vùng đối tượng
ra từng thư mục khác nhau thì với deep learning hướng đối tượng thì ta tiến hành xác định
đối tượng muốn nhận diện và phân vùng đối tượng ngay trong từng bức ảnh. Việc này sẽ
tốn rất nhiều thời gian vì việc phân vùng đối tượng hoàn toàn thực hiện bằng tay, tuy nhiên
việc này sẽ tăng độ chính xác của mơ hình được tạo thành do giảm bớt việc xác định các
đặc điểm chung giữa dữ liệu ảnh đầu vào rồi mới tiến hành học sâu đối với đặc điểm đã
xác định thì phương pháp này sẽ tập trung học đặc điểm của đối tượng ngay từ đầu. Nhờ
12
vậy giảm đi sai sót trong q trình xác định đặc điểm chung khiến cho mơ hình đào tạo có
độ chính xác cao hơn.
Quy trình đào tạo mơ hình deep learning hướng đối tượng như sau:
- Bước 1: Ta tiến hành thu thập dữ liệu ảnh chứa các đối tượng cần nhận diện, loại bỏ
các ảnh đầu vào không đạt chuẩn ( bị mờ, vỡ ). Sau đó chia các ảnh đầu vào ra làm hai thư
mục là ảnh dùng để đào tạo và ảnh dùng để kiểm tra chất lượng mơ hình trong q trình
đào tạo.
Hình 2.8: Thư mục chứa ảnh đào tạo
- Bước 2:Tiến hành phân vùng đối tượng. Ta sử dùng chương trình labelImg để tiến
hành phân vùng đối tượng. Các đối tượng được xác định dưới dạng sau: đường thẳng bên
trái - “t1t” , đường thẳng bên phải - “t1p”, cong trái - “ ct”, cong phải - “cp”, đường thẳng
thứ hai - “t2p” , bồn cây - “td” , biển báo stop - “stop”, người - ”human”. Với việc phân
vùng đối tượng nhiều như thế sẽ giúp khắc phục được nhược điểm của địa hình dùng để
đào tạo.
13
Hình 2.9: Quá trình phân vùng dữ liệu
- Bước 3: Tiến hành đào tạo mơ hình. Sau khi tiến hành lọc dữ liệu và sắp xếp các dữ
liệu cần thiết ta tiến hành đào tạo mơ hình. Lưu ý trước khi đào tạo mơ hình cần chọn model
zoo phù hợp với thiết bị dùng để sử dụng mơ hình đào tạo sau này. Với mỗi model zoo sẽ
cung cấp cho chúng ta hai số liệu cơ bản là tốc độ phân tích của mơ hình và độ chính xác
của mơ hình khi chạy thực tế. Tùy vào loại mơ hình muốn đào tạo và sức mạnh phần cứng
của thiết bị ta chọn loại model zoo phù hợp. Đối với chúng em tụi em sử dụng model faster
rcnn cho máy tính và ssd mobile cho jetson nano.
Hình 2.10: Quá trình đào tạo diễn ra
14
Hình 2.11: Qúa trình đào tạo
- Bước 4: Tiến hành sử dụng mơ hình đã đào tạo
Hình 2.12: Sử dụng mơ hình
15