Đầu tiên là tìm hiểu thuật toán nhận diện làn đường, thuật toán này đượcthực hiện trên máy tính và cho kết quả là các khung hình chứa làn đường đã được nhận diện, kết quả này sẽ được sử
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
TRAN LONG HAI
KHOA LUAN TOT NGHIEP
NHAN DIEN LAN DUONG VA DIEU HUONG CHO XE
TU HANH TREN FPGA
LANE DETECTION AND NAVIGATION FOR AUTONOMOUS
VEHICLES ON FPGA
KỸ SU KY THUAT MAY TÍNH
TP HO CHi MINH, 2023
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
TRAN LONG HAI - 18520706
KHOA LUAN TOT NGHIEP NHAN DIEN LAN DUONG VA DIEU HUONG CHO XE
TU HANH TREN FPGA
LANE DETECTION AND NAVIGATION FOR AUTONOMOUS
VEHICLES ON FPGA
KY SƯ KỸ THUAT MAY TÍNH
GIANG VIEN HUONG DAN THS NGO HIEU TRUONG
TS DOAN DUY
TP HO CHi MINH, 2023
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
75/QD-DHCNTT ngày 15 tháng 02 năm 2023 của Hiệu trưởng Trường Đại học Công nghệ Thong tin.
Trang 4LOI CAM ON
Dau tiên, em xin gửi lời cảm ơn chân thành đến toàn thể quý thầy cô trường Đại học Công Nghệ Thông Tin - Đại học Quốc gia TP Hồ Chí Minh, đặc biệt là quý thầy cô khoa Kỹ Thuật Máy Tính đã truyền đạt cho chúng em những kiến thức và kinh nghiệm quý báu trong suốt những năm học vừa qua.
Đặc biệt, em xin chân thành cảm ơn thầy Ths Ngô Hiếu Trường, người đã tận tình hướng dẫn nhóm trong suốt quá trình thực hiện đề tài, luôn quan tâm giúp đỡ, động viên và cung cấp cho chúng em nhiều kiến thức chuyên môn quý báu.
Xin chân thành cảm ơn sự giúp đỡ của các bạn bè, anh chị, những người đã
giúp đỡ chúng tôi tìm kiếm thông tin và động viên tỉnh thần cho chúng tôi trong suốt quá trình thực hiện khóa luận.
Sau cùng, con xin cảm ơn ba mẹ, gia đình đã tạo mọi điêu kiện, cô vũ và ủng hộ
về tỉnh thần trong suốt khoảng thời gian thực hiện khóa luận.
Mặc dù đã rất nỗ lực và cố gắng nhưng kiến thức cũng như kinh nghiệm vẫn còn hạn chế, nên báo cáo không thể tránh khỏi nhiều thiếu sót Em rất mong nhận được nhiều sự góp ý, nhận xét từ quý thầy cô.
Một lần nữa, em xin chân thành cảm ơn!
TP Hồ Chí Minh, ngày 06 tháng 01 năm 2023
Sinh viên thực hiện
Trần Long Hải
Trang 51.3 Mute ca na 6 Chương 2 CO SỞ LÝ THUYÉT
2.1 Tìm hiểu DEL SoC FPGA -: -22222222++222222EE2Errttrtrtrkrrrrrrrrrrrrei 7 2.2 Tìm hiểu SDRAM
2.3 Thuật tốn Hough TransfOrm + 22+ +s+S2+£+*+++£e£exrererrerersrere 9 2.3.1 Giới thiệu thuật tốn Hough Transform.
2.3.2 Khơng gian Hough và ánh xạ các điểm cạnh lên khơng gian Hough 9 2.3.3 Cách dé biểu diễn một đường thăng trên máy tính - 1 2.3.4 Cách phát hiện đường thẳng -ccccccccccccveeeerrrrrr 2
2.4 Thuật tốn COTCIC - St 3k 1E ST HH rệt 3
2.4.1 Giới thiệu thuật tốn COFdÏC 5c S2 Erveexserererrerrrrser 3
2.4.2 Lý thuyết VỀ vector XOAY 22:222222S22222tEEEEEerrrrrkrrrrrrrrvee 3 2.4.3 Nguyên lý hoạt động vector xoay trong chế độ vector mode: 4 2.4.4 Chế độ vector mode trong thuật tốn COR.DIC 5 Chương 3 Thiết Kế Hệ Thống - 2222£©2222+22ES2+t2EESEvttvEEvvrrrrrrrcee 7 3.1 Kiến trúc hệ thống 22¿¿5222++++22E+++t2EEEEEEEEEEEErtErEkrrrerrkrrrrre 7
3.2 Phát hiện làn đường sử dung Ạ -c+ccxecrrerrrrererirerer 8
3.2.1 Giới thiỆU S111 1 1 1E HH HH HH it §
Trang 63.2.2 Kiến trúc mạng dé xuất -:+v+++++crvvrrrrrrrrrrrrrrrree 18
3.2.3 Dataset.
3.2.4 Tập train 22H re 20
3.3 Thiết kế khối Hough Transform
3.3.1 Giới thiệu Ă che 20
3.3.2 Các bước thiết kế một khối Hough Transform:
3.4 Turn prediCt 5.5255 St 1 2 2 212111 1121712101 11111 re 23 3.4.1 Giới thiệu.
3.4.2 Tìm phương trình đường thẳng đi qua hai điểm - 23 3.4.3 Các bước xác định điều hướng - c+ccscc+ccsscee 24 3.4.4 Thiết kế module Turn predict 2cc++z+t2vvvvvvcccsrrrrr 26 3.4.5 Thiết kế module HoughP -2c+++2222vvvvccczrrrr 26
3.5 Steering anglbl „ TU e.ơm Í, LH LH HH HH HH HH 27
3.5.1 Xử lý đầu vào: vcccrrrrrrrkkrrrrrrrrrrrrrrreerrrei 27
3.5.2 Xây dựng bang lookup table? -:c+ccccsce+ezeseersrs 27 3.5.3 Hiện thực thuật toán: -¿- ¿5:52 +22 + £eE+t+eE+eErerseerrserrrserseee 28 3.6 Nạp ảnh vào SDRAM + Sàn kg Hy 31
3.6.1 Xây dựng hệ thống SoPC 222cccvccersrrrrrrreererrrrer 31
3.6.2 Xây dựng chương trình C ¿+ set 33
Chương 4 Kết Quả 2 ©2222+222E22222221122221111227211E2271112221112 Xe 34 4.1 Kết qua của phát hiện làn đường sử dụng AI . ccccccxs+ 34 4.2 Kết quả mô phỏng Hough Transform -. :-+225+z++2cvvvceeccvsz 36 4.2.1 Quá trình tìm điểm ảnh sáng của ảnh - - 525cc 36 4.3 Quá trình bầu chọn giá tri (rho, theta) - «set 37
Trang 74.4 Kết quả mô phỏng Hough Transform 2- 22 2© s+2£x2z+ezx+zzsz 384.5 Kết quả mô phỏng Turn predict :- 55s 25£22S22£x2E+v£E+zzxzrxerxeeres 394.6 Kết quả mô phỏng tính góc lái sử dụng Cordic - ¿s2 s+zs+zs+s+2 404.7 Tài nguyên phan cứng sử dụng - 2 2© ++Sx+Ek+EE+E+2EE+Eerkerkerxerkrree 414.8 Kết quả nap ảnh vào board c.ccsccecessessessessessessescsecsessessessessssucscsessessesseeseass 42Chương 5 Kết Luận Và Hướng Phát TriỀn 2 2 2 ++E£+E££Ee£xerxerszsez 44
5.I KẾt luận che 44
5.2 Kho 0‹ cá n - 44
5.3 Hướng phát triỂn - + ++©x++++EE£EEEEEEEEEEEE21211211271 2121.211 45
Trang 8DANH MỤC HÌNH
Hình 1.1 Kết quả của LaneNet [3] Hàng đầu: đầu vào và nhãn Hàng giữa: đầu ra Hàng cuối: làn
đường được dự đoán . G1111 1 111v TT TH To TH To TH TH TH HH HH TH 5
Hình 1.2 Kết quả semantic instance segmentation của SCNN [4] - - c5 eeese 5
2000586100105 00086 +d—.Œg,HẬHAH HA 7 Hình 2.2 Kết nối giữa FPGA và SDRAM -2+- 22c 2< 2122127112112112112111121111.111 11 11c 8 Hình 2.3 Đường thang trong không gian OXY ccccccsssesssesssessssesssecssesssessssscssecssesssesssseessesssesssesesees 10 Hình 2.4 Chuyên đối điểm sang không gian Hough (]) -¿ 2+ ©£+E£++EE+EE+rxezrxerrerxee 10 Hình 2.5 Chuyên đổi điểm sang không gian Hough (2) :- 2 + +++£x++£x++EEEtrrxrsrkesrseee 11
Hình 2.6 Điểm giao nhau trong không gian Hough -: 2 2£ ©£+£E£E£+EEtzEEvrxevrxerkeerxee 12
Hình 2.7.XOay V€CfOT ÌM - TH HT nh ng HT HH hi nh 13
Hình 2.8 Minh họa chế độ vector ImOdE -¿- s55 +E‡EE+EE+ESEEEEEEEEEEEEEEEEEEEEEEEEEESEEEEEEkrEerkerszer 14 Hình 3.1 Kiến trúc để Xuất -::-2¿©©2++2E3122221122211222112221127111271112211122111211121112211 T11 tr 17 Hình 3.2 Kiến trúc mạng để Xuất ¿- 2-22 ©+¿++2£EESEEEEEEE2122112112117112211111271211 11.1121 xe 18 Hình 3.3 Ảnh lấy từ tập dữ liệu và nhãn 2-2 £+2E£©EE+EEE2EE£EEEEEEE211271211271.211 7122121 crk 19 Hình 3.4 Khối Hough TransfOrm - 2 2 E£+SE£EE+EE£EEEEEE22E19211211211271171127121171 1571 crxe 21 Hình 3.5 Kiến trúc khối Hough TransfOrrm - 2 2£ 2£E£2EE£EE£+EE£EE££EEtEEEEEEEEEerkrrrkrrrerred 21 Hình 3.6 Đầu ra của AI và là đầu vào của khối Hough + 2 2+2 £+£+EE+2£E+rxezrxerreerxee 24 Hình 3.7 Đầu ra của khối Hough 2-22 2+22k2EE2SEE1E22122112711271122112111271E 711.11 24 Hình 3.8 Quá trình thực hiện khối Turn prcdiG, 25 Hình 3.9 Thiết kế module Turn prediCE 2-52 S9S£9SE2E£9EE2EE£EEEEEEEEEEEEEEEEEEEEEEEEErrkrrrerred 26 Hình 3.10 Khối HoughP 2: 2£ + ++2+EE£2EE£EE2EEEEE12E121127112112711211211 1171.111.1111 xe 26
Hình 3.11 Minh họa góc ơ là góc cần tính 2-2 ¿+ £+EE£+EE+EEE+EE9EEEEE3211271121111E211 E1 rxe 27 Hinh N11 18<1e0 NNN - 29
Hình 3.13 Sử dụng SDRAM để lưu trữ ảnh - 2-22 22+22++2EE+2EEEEEEEEErSEEerkxerkrrrkrrsrkrerkree 31
Hình 3.15 Chương trình C nạp ảnh vào SDRAMM - + 2+ v21 9 HH HH ri, 33
Hình 4.1 Một số kết quả phát hiện làn đường 2-2-2522 ©2<+EE£EEEEE E221 2212121 34 Hình 4.2 Kết quả mô phỏng thé hiện vị trí điểm sáng trong ảnh tìm được khi thực hiện khối Hough
Transform
Hình 4.3 Quá trình bầu chọn CAp gid tri 0y:10i: s0 37 Hình 4.4 Kết quả mô phỏng Hough Transform .2- 2£ ©222E££EE+EE£EE£EEESEEEEEvEErEkrrrerrxee 38 Hình 4.5 Hình ảnh đầu vào và kết quả được biểu diễn dựa trên hai cặp giá trị (rho, theta) vừa tìm
Trang 9Hình 4.6 Kết quả mô phỏng Turn prediCt 2-5252 SS<92EESEECEEEEEEEE22E1221127112711 211211 Xe 39 Hình 4.7 Kết quả mô phỏng Cordic, tính arctan(theta) c.ccccscessesssessessesssesseessesssessesssessseseeseeese 40 Hình 4.8 Kết quả nạp ảnh vào SDRAM 2-5-2222 E2 EE12112711211211211711 2111111111 xe 43 Hình 4.9 Kết quả nạp ảnh vào ram ¿- 2 ©+t©xt+Ek+SEEE£2EE2E122711273111127112711111 111211 re 43
Trang 10DANH MỤC BANG
Bảng 2.1.Bang giá trị tan(theta) va theta thay đổi sau mỗi lần lặp -. -¿©cs+cxzecxe¿ 16
Bảng 3.1 Bảng tập dữ liỆu -.- - 5 1H TH TH TH TT TH Hà TT TH TT Hà ngư 19
Bảng 3.2 Phương pháp lấy mẫu 22 22©+E9EE9EEEEE1E2E12711171127112711211271E 0711.11.11 Xe 20
Bang 3.3 Bảng mô tả eð€_ ImAfT1X - 0 190 211 90 vn nh TH HH ngư
Bảng 3.4.Bảng mô tả ma trận find_ nonzero
Bảng 3.6 Bang mô trả ma trận thefa_ IAfTIX - - 5 11 9 21 9v TH TT ng nghiệt 22 Bang 4.1 Độ chính xác trên tập Test được xây dựng dựa trên TuSimple .- - -« +- 35
Bảng 4.2 Tài nguyên của hệ thống cần sử dụng - 2-22: ©+¿2EE£+EEEC2EEC2EE E211 211211 41
Bảng 4.3 Kết quả so sánh với các bài báo liên quan về Hough Transform - 2 5+¿ 41
Bảng 4.4 Tài nguyên phần cứng so với các bài báo liên quan về Hough Transform 42
Trang 11DANH MỤC TỪ VIET TAT
ADSA Advanced Driver Assistance System
BRAM Block Random Access Memory
CORDIC Coordinate Rotation Digital Computer
FPGA Field-Programmable Gate Array
DSP Digital Signal Processors
SDRAM Synchronous Dynamic Random Access Memory
SOPC System-on-a-Programmable-Chip
Trang 12TOM TAT KHÓA LUẬN
Trong khóa luận này, nhóm nhắm đến việc giải quyết bài toán nhận diện làn
đường sử dụng trí tuệ nhân tạo và đưa ra điều hướng cho xe tự hành Đề giải quyếtvấn đề này, nhóm chia đề tài thành 02 phần chính
Đầu tiên là tìm hiểu thuật toán nhận diện làn đường, thuật toán này đượcthực hiện trên máy tính và cho kết quả là các khung hình chứa làn đường đã được
nhận diện, kết quả này sẽ được sử dụng đề tính toán phần thứ hai
Phần thứ hai là đưa ra quyết định điều hướng bao gồm hướng rẽ và góc lái,
quyết định điều hướng được thực hiện bằng cách so sánh điểm chính giữa của làn
đường và điểm chính giữa của khung hình, điểm chính giữa của khung hình sẽ làmmốc, nếu điểm chính giữa của làn đường lệch sang trái tức là xe cần rẽ trái vàngược lại Dé xác định điểm chính giữa của làn đường, ta dùng kết quả ở phần đầu
tiên là ảnh chứa làn đường, ảnh này sẽ được xử lý bởi thuật toán Hough Transform
dé tìm hai vạch kẻ đường, từ đó xác định điểm ảnh trên hai vạch kẻ đường có cùng
độ cao với điểm chính giữa của khung hình, từ đó tính được chính giữa của lànđường Dé xác định góc lái, thuật toán cordic được áp dụng dé tính góc
Các kết quả của khóa luận bao gồm:
e Xác định được hướng rẽ bằng cách hiện thực thuật toán Hough
Transform bằng ngôn ngữ mô tả phần cứng verilog.
e_ Tính được góc lái bằng cách hiện thực thuật toán Cordic bằng ngôn
ngữ mô tả phần cứng verilog
Trang 13MỞ ĐẦU
Nhận diện làn đường là một trong nhiều mục tiêu có tầm quan trọng nhất định
trong xử lý hình ảnh, thị giác máy tính được ứng dụng rộng rãi trong công nghiệp
như chỉ dẫn phương tiện, hỗ trợ người lái xe nâng cao — Advanced Driver
Assistance System (ADSA).
Một trong những van dé lớn thường gặp phải trong bài toán nhận diện lànđường là khả năng xử lý khi gặp điều kiện môi trường không tốt, như: ánh sángthấp, vạch kẻ đường bị đứt nét, Trong những năm gần đây, bài toán nhận diện lànđường được nhiều sự quan tâm và nghiên cứu, nhiều nghiên cứu liên quan đến trítuệ nhân tạo giúp cho việc giải quyết bài toán ngày càng hiệu quả hơn Nhiều mô
hình nơ-ron tích chập ra đời cho phép mô phỏng việc học của não người thông qua
quá trình huấn luyện khiến cho mô hình tự điều chỉnh trọng số bên trong nó dé cóthé hiểu được dit liệu và đưa ra kết quả chính xác hơn
Một ứng dụng khác của ADSA là đưa ra quyết định điều hướng cho xe, quyết
định đó sẽ được ứng dụng vào nhiều tính năng của ADSA như: tự động chuyền làn,
hỗ trợ lái trên đường cao tốc, Quyết định điều hướng sẽ cho biết hướng rẽ và góclái cần thiết cho hướng rẽ đó
Dựa trên các công việc và kêt quả của đê tài này, bô cục của khóa luận được tô
chức như sau:
Chương 1 Giới Thiệu Tổng Quan Đề Tài
Chương đầu tiên sẽ giới thiệu tổng quan về đề tài khóa luận, lý do nhómchọn đề tài này, mục tiêu đề ra của nhóm, những giới hạn của đề tài và kết quả
thực hiện mà nhóm đạt được.
Chương 2 Cơ Sở Lý Thuyết
Chương này trình bày những cơ sở lý thuyết được sử dụng có liên quan đến
nội dung nghiên cứu của đê tài.
Trang 14Chương 5 Kết Luận Và Hướng Phát Triển
Đưa ra kết luận, trình bày khó khăn gặp phải và hướng phát triển trong
tương lai.
Trang 15Chương 1 GIỚI THIỆU TONG QUAN ĐÈ TÀI
11 Giới thiệu
Nhận diện làn đường và điều hướng là một phần quan trọng cho xe tự hành và
các hệ thống hỗ trợ tài xế nâng cao — Advanced Driver Assistance Systems
(ADAS) Nhiều thuật toán khác nhau đã được áp dụng trong nhận diện làn đường,một số phương pháp truyền thống giải quyết bài toán nhận diện làn đường dựa vào
xử lý ảnh bằng cái thuật toán: Hough Transform [1], Sliding Window [2], Mặc dùthuật toán có tốc độ xử lý nhanh nhưng các phương pháp này không có khả năng xử
ly cho các điều kiện xấu như ánh sáng tối, vạch kẻ đường bị đứt nét nặng,
Trong những năm gần đây, van đề này phần lớn đã được chuyên sang giảiquyết bằng trí tuệ nhân tạo sử dụng nhiều kỹ thuật khác nhau Tuy nhiên, phần lớncác phương pháp đều tập trung vào việc xử lý phát hiện làn đường trên một khunghình, nên các kết quả thường không đạt được hiệu suất tốt trong các điều kiện
không tốt Do đó mô hình CNN sử dụng kỹ thuật LSTM với khả năng lay thông tin
từ nhiều không hình để tìm được thông tin làn đường nhiều hơn, cho kết quả chínhxác hơn được lựa chọn dé tìm hiểu
Và để đưa ra quyết định điều hướng, thuật toán Hough Transform và thuật
toán Cordic được hiện thực Thuật toán Hough Transform là thuật toán được sử
dụng rộng rãi trong việc phát hiện đường thăng, tuy nhiên nhược điểm là tốn nhiều
bộ nhớ và cho hiệu suất thấp khi xuất hiện các đường thắng đứt nét Cordic là thuật
toán tính lượng giác phổ biến với khả năng giảm độ phức tạp cho bài toán bằng
cách sử dụng các phép tính đơn giản như: cộng, trừ, nhân, shift, nhiều lần dé đưa
ra kết quả Tuy nhiên, thuật toán có nhược điểm là tốc độ xử lý chậm
1.2 Một số nghiên cứu liên quan
1.2.1 Cac nghiên cứu liên quan đến nhận diện làn đường
Các phương pháp thường thấy để giải quyết bài toán phân loại làn đường là sử
dụng semantic segmentation (hay còn gọi là phân vùng ảnh) Bài toán này thường
Trang 16nhận một ảnh RGB, và trả về một ảnh khác có kích thước tương tự với anh đầu vào,nhưng mỗi điểm ảnh đều được phân loại vào một lớp khác nhau như đường, xe,
LaneNet [3] là phương pháp coi bai toán nhận diện làn đường như một bài
toán semantic instance segmentation, phương pháp này sẽ có đầu ra là một lane
instance map bang cách gan nhãn từng diém ảnh thuộc các làn đường khác nhau
Hình 1.1 Kết quả của LaneNet [3] Hàng đầu: đầu vào và nhãn Hàng giữa: đầu ra Hàng cuối: làn
đường được dự đoán.
Spatial CNN [4] là phương pháp coi bài toán nhận diện làn đường như một bài
toán semantic instance segmentation, tuy nhiên phương pháp này sẽ tìm các mối
liên hệ của các pixel có thê là vạch kẻ đường và nhóm chúng lại với nhau.
Trang 171.2.2 Các nghiên cứu liên quan đến Hough Transform
Đã có nhiều nghiên cứu liên quan đến thuật toán tìm đường thăng HoughTransform, cũng như phương pháp giúp cải tiễn tốc độ, giảm yêu cầu về bộ nhớ cho
thuật toán Có thé kế đến như:
Nghiên cứu [5] các tác giả đã xây dựng một thuật toán mới cho không gian
tham số Hough — Hough Parameter Space (HPS), phương pháp mới này đã làm
giảm đáng ké yêu cầu về bộ nhớ so với việc thực hiện giải thuật Hough Transform(HT) tiêu chuẩn
Nghiên cứu [6], các tác giả xây dụng thuật toán Hough Transform sử dụng lát
cắt DSP va block RAMs Lat cắt DSP được cau hình đề có thé tính nhanh các phép
tính như cộng, trừ, nhân, chia và các phép toán khác, Việc sử dung song song lát
cắt DSP và block RAMs giúp tăng tốc khả năng tính toán của FPGAs
1.3 Mục tiêu của đề tài
Đề giải quyết bài toán phân loại làn đường và điều hướng cho xe tự hành, trong
khóa luận này, nhóm có những mục tiêu chính:
1 Tìm hiểu giải thuật nhận diện được làn đường huấn luyện và đánh giá trên
tập dữ liệu TuSimple Mục tiêu có mô hình có accuracy > 95%.
2 Xác định được hướng cần rẽ của xe Bằng cách hiện thực thuật toán HoughTransform và xây dựng các modules tính toán dé đưa ra hướng rẽ
3 Xác định được góc lãi cho hướng rẽ Bằng cách hiện thực thuật toán Cordic
dé tính atan(góc lái)
4 Hiện thực thiết kế lên FPGAs DE1-SoC
Giải thuật nhận diện làn đường được thực hiện trên phần mềm và đưa kết quả làảnh chứa làn đường xuống phần cứng Ở phần cứng, các module được mô tả bởingôn ngữ verilog như Hough Transform, Cordic sẽ đưa ra tín hiệu điều hướng
Trang 18Chương 2 CO SỞ LÝ THUYET
2.1 Tìm hiểu DE1 SoC FPGA
DEI-SoC là một FPGA System-on-Chip (SoC) được sản xuất bởi Altera Nó
bao gồm một FPGA Cyclone V SE cùng với một vi xử lý ARM Cortex-A9
dual-core DEI-SoC cung cấp một nên tảng tùy chỉnh với các tính năng xử lý và mở rộngtốt hơn so với vi xử lý đơn giản
DEI-SoC có một số tính năng nổi bật như:
e Hỗ trợ cho vi xử lý ARM Cortex-A9 dual-core với tốc độ tới 1 GHz
e Cung cấp một FPGA Cyclone V SE với hơn 50,000 hoạt động Logic
Element (LE) và các tính năng kết nối của chuẩn transceiver serdes
e C6 sẵn các giao diện đầu vào/đầu ra như HDMI, VGA, audio codec,
Ethernet, USB, SD card, etc.
¢ Hỗ trợ cho các hệ điều hành như Linux và tích hợp các công cụ phát triển
phần mềm cho FPGA và vi xử lý ARM
DEI-SoC là một lựa chọn tốt cho các nhà phát triển muốn xây dựng các hệthống tùy chỉnh với các tính năng xử lý tốt hơn và các chức năng mở rộng hơn so
với vi xử lý đơn giản.
Trang 192.2 Tìm hiểu SDRAM
SDRAM (Synchronous Dynamic Random Access Memory) là một loại bộ nhớ
truy cập ngau nhiên đồng bộ với vi xử lý chính của hệ thống Trong DEI-SoCFPGA, SDRAM cung cấp một khoảng trồng lưu trữ lớn cho hệ thống, giúp tăng tốc
độ xử lý và giảm thiểu sự giới hạn bộ nhớ trong FPGA
SDRAM trong DEI-SoC cung cấp các tính năng sau:
e Tốc độ truy cập cao với thời gian truy cập ngẫu nhiên cô định
e Khả năng mở rộng dung lượng bộ nhớ bằng cách kết hợp nhiều chip
Hình 2.2 Kết nối giữa FPGA và SDRAM.
Trang 20SDRAM được sử dụng có cấu hình là 64MB (32Mx16) SDRAM chip Với 16
bit data, tín hiệu điều khiến và địa chỉ để kết nối với FPGA
Trong khóa luận này, SDRAM sẽ được dùng để lưu ảnh sau đã được phát hiệnlàn đường và truyền lại cho khối tìm hướng rẽ và góc lái
2.3 Thuật toán Hough Transform
2.3.1 Giới thiệu thuật toán Hough Transform
Hough Transform là một thuật toán được cấp bằng sáng chế bởi Paul V C.
Hough và ban đầu được phát minh để nhận ra các đường phức tạp trong ảnh(Hough, 1962) Hough Transform là thuật toán phát hiện đường thắng khá hiệu quả
trong xử lý ảnh có thé được sử dụng dé phát hiện các đường thằng, đường tròn, và 1
số đường cong khác
Ý tưởng chung của việc phát hiện đường thăng trong thuật toán này là tạomapping từ không gian ảnh (A) sang một không gian mới (B) mà mỗi đường thắng
trong không gian (A) sẽ ứng với một điểm trong không gian (B) - Để hiểu cách
hoạt động của thuật toán Hough Transform, ta cần tìm hiểu các thành phan: edgeimage, không gian Hough Space và mapping (ánh xạ) các điểm cạnh lên không gianHough, cách đề biểu diễn một đường thắng trên máy tính, và cách phát hiện đường
2.3.2 Không gian Hough va ánh xạ các điểm cạnh lên không gian Hough
Phương trình đường thăng cơ bản sẽ được biéu diễn theo 2 tham số a và b như sau:
y=ax+b
Trên đường thắng đó có thé lay duoc cac diém được gọi là điểm cạnh có tọa độ
(Xi, yi), (Xj, yj).
Trang 21Hình 2.3 Đường thang trong không gian Oxy
Thay vì dùng trục xy, ta đảo ngược lại và sử dụng trục ab, ta có phương trình
đường thăng biéu diễn theo 2 điểm cạnh đã lay có tọa độ (xi, yi), (xj, yj):
bị = y; - ax; va bz = yj; - đXj
Hai đường thăng vừa tim được sẽ giao nhau tai giao điểm có tọa độ (a, b) Nếutiếp tục chọn các điểm tọa độ thuộc đường thắng y và biếu diễn sang trục ab, ta sẽthấy các đường thắng vừa lay déu cat nhau tai giao điểm toa độ (a, b)
10
Trang 22Nếu xem trục xy là không gian ảnh và trục ab là không gian Hough, vậy môtđường thắng trong không gian ảnh (A) với 2 tham số a, b, sau khi map sang khônggian Hough (B) sẽ thành một điểm.
Nếu xem trục xy là không gian ảnh và trục ab là không gian Hough, vậy môt
đường thắng trong không gian ảnh (A) với 2 tham số a, b, sau khi map sang không
gian Hough (B) sẽ thành một điểm
2.3.3 Cách để biểu diễn một đường thang trên máy tinh
Khi biểu diễn đường thăng theo dạng: y = ax + b, giá trị của góc nghiêng a trảidài từ -œ đến +œ Vi du, dé có được phương trình đường Oy (x=0) thi a phải tiễntới oo Khi biểu diễn trên máy tính, bộ nhớ lưu trữ là có hạn, việc lưu trữ tat cả giátrị a là bất khả thi Nên thuật toán Hough Transform yêu cầu các giá trị a, b nămtrong một khoảng xác định (hay bị chặn trên dưới), ta phải sử dụng hệ tọa độ cực đềbiểu diễn phương trình đường thắng Phương trình đường thăng theo hệ tọa độc cực:
Trang 23Thay vì biểu diễn không gian Hough với hệ số góc a và giao điểm b, giờ đây nóđược biểu diễn bằng p và 0 trong đó trục hoành là giá trị @ và trục tung là giá trị p.Việc ánh xạ các điểm cạnh lên không gian Hough hoạt động theo cách tương tựngoại trừ việc một điểm cạnh ( xi, yi) Sẽ tạo ra một đường cong cosine trong khônggian Hough thay vì một đường thăng.
2.3.4 Cách phát hiện đường thang
Mỗi một điểm cạnh tạo ra một đường cong cosine trong không gian Hough Từ
đó, nếu chúng ta ánh xạ tất cả các điểm cạnh từ một hình ảnh cạnh vào không gianHough, nó sẽ tạo ra rất nhiều đường cong cosine Nếu hai điểm cạnh nằm trên cùngmột đường thăng, các đường cong cosin tương ứng của chúng sẽ cắt nhau trên một
cặp (p, 9) cụ thể Do đó, thuật toán Hough Transform phát hiện các đường bang
=p
+p
Hình 2.6 Điểm giao nhau trong không gian Hough.
12
Trang 242.4 Thuật toán Cordic
2.4.1 Giới thiệu thuật toán Cordic
Thuật toán Cordic (hay còn được gọi là thuật toán của volder) được công bó lần
đầu tiên vào năm 1959
Thuật toán Cordic được sử dụng đê tính các giá tri lượng giác dựa trên việc xoay các vector.
Các thành phần thực hiện thuật toán: phép cộng, phép trừ, phép dịch bit, so sánh
và thành phần lưu trữ
Ưu điểm : Tiết kiệm phần cứng
Nhược điểm : Yêu cầu số lần lặp lớn dé đảm bảo kết quả chính xác, do đó tốc độ
xử lý chậm.
2.4.2 Lý thuyết về vector xoay
Trong mặt phăng Oxy, cho điểm M(x, y) và góc cần xoay @
Trang 25© l = OM (cos a.cos 8 — sina sin 8)
y' = OM cos(b —9) y' = y.cos 8 — x sin 9)
2.4.3 Nguyên lý hoạt động vector xoay trong chế độ vector mode:
Giả sử góc cần xoay là 70 độ, xoay từ A đến trục hoành:
Khởi tạo Zo= 0.
Trang 262.4.4 Chế độ vector mode trong thuật toán CORDIC
Theo lý thuyết vector xoay, khi xoay M(x, y) một góc dương 9 sẽ thu được
M’(x’, y’), khi đó:
{* = x cos 9 — y sỉn 9)
y' = y.cos@ + x sin 6)
Khi xoay n lần, ta thu được:
{rir = cos 6; (x; — y; tan Ø;) Vier = cos Oj (y; + x; tan Ø;)
Trong đó, i là số bước quay (i = 0, 1, 2, , n) Dé tối ưu phan cứng (chỉ dùngshift thay vì phép nhân), tan(@) được giới hạn tan 6; = + 27.
Trang 27Nếu đặt hướng xoay của vector ở mỗi lần lặp là di (di = 1, góc quay là đương,
dị = -1, góc quay là âm), ta có tổng góc quay sau n lần:
Trang 28Chương 3 Thiết Kế Hệ Thống
3.1 Kiến trúc hệ thống
Video_in F—* AI —>y Ị Output signal
Hinh 3.1 Kién trac dé xuat
Khối Turn predict: dùng dé đưa ra quyết định rẽ trái hay phải
Khối Steering angle: dùng dé tính góc lái cần thiết cho quyết định điều hướng
Output signal: là tín hiệu điều hướng và góc lái
17