1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nhận diện làn đường và điều hướng cho xe tự hành trên FPGA

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhận diện làn đường và điều hướng cho xe tự hành trên FPGA
Tác giả Trần Long Hải
Người hướng dẫn THS. Ngô Hiếu Trường, TS. Doãn Duy
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 57
Dung lượng 26,05 MB

Nội dung

Đầ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 3

THONG 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 4

LOI 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 5

1.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 6

3.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 7

4.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 8

DANH 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 9

Hì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 10

DANH 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 11

DANH 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 12

TOM 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 13

MỞ ĐẦ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 14

Chươ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 15

Chươ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 16

nhậ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 17

1.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 18

Chươ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 19

2.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 20

SDRAM đượ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 21

Hì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 22

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ô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 23

Thay 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 24

2.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 26

2.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 27

Nế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 28

Chươ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

Ngày đăng: 23/10/2024, 01:06

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

TÀI LIỆU LIÊN QUAN

w