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

Khóa luận tốt nghiệp Kỹ thuật phần mềm: Thiết kế hệ thống phát hiện làn đường cho xe tự hành dựa trên phần cứng

87 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 đề Thiết kế hệ thống phát hiện làn đường cho xe tự hành dựa trên phần cứng
Tác giả Đinh Phạm Thiên Long, Nguyễn Thị Ngọc Diễm
Người hướng dẫn Tiến sĩ Lãm Đức Khải
Trường học Trường Đại học Công nghệ Thông tin
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 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 87
Dung lượng 25,62 MB

Nội dung

Vì vậy, trong sự phát triển của công nghệ hỗ trợ người lái, tính năng phát hiện làn đường theo thời gian thực có tầm quan trọng lớn đối với các phương tiện cơ giớiứng dụng công nghệ này

Trang 1

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

ĐINH PHẠM THIÊN LONG NGUYEN THỊ NGỌC DIEM

KHÓA LUẬN TÓT NGHIỆP

THIET KE HE THONG PHÁT HIEN LAN DUONG CHO

XE TU HANH DỰA TREN PHAN CỨNG

Design Lane Detector System for Autonomous Vehicles

based on Hardware

KY SƯ NGANH KY THUAT MAY TÍNH

TP HO CHÍ MINH, 2022

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

ĐINH PHẠM THIÊN LONG - 18521021

NGUYEN THỊ NGOC DIEM - 18520597

KHOA LUAN TOT NGHIEP

THIET KE HE THONG PHAT HIEN LAN DUONG CHO

XE TU HANH DỰA TREN PHAN CỨNG

Design Lane Detector System for Autonomous Vehicles

based on Hardware

KY SU NGANH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN

TIEN SĨ LAM ĐỨC KHAI

TP HO CHÍ MINH, 2022

Trang 3

THONG TIN HỘI 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ố 526/QD-DHCNTT

ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LỜI CÁM ƠN

Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến thầy hướng dẫnTiến sĩ Lâm Đức Khải, thầy đã tận tình hướng dẫn chúng em trong quá trình làm khóa

luận, cung cấp các trang thiết bị, cũng như dành nhiều thời gian chỉnh sửa, góp ý dé

chúng em có thé hoàn thành khóa luận một cách tốt nhất

Bên cạnh đó, chúng em cũng xin gửi lời cảm ơn đến Thầy/Cô và bạn bè khoa

Kỹ thuật Máy tinh nói riêng và trường Đại học Công nghệ Thông tin — Dai học Quốcgia Thành phố Hồ Chí Minh nói chung đã tận tình giảng dạy, truyền dat các kiến thức

vô cùng bổ ích, đồng hành và hỗ trợ chúng em trong suốt quá trình học tập tại trường

Đại học Công nghệ Thông tin Những kiến thức và kinh nghiệm quý báu đó sẽ làhành trang giúp em day tự tin khi bước vào đời

Cuối cùng, chúng em xin dành lời cảm ơn sâu sắc đến ba mẹ và gia đình vì

đã luôn sát cánh, động viên, tạo điều kiện và là chỗ dựa tinh thần vững chắc trên con

đường học tập của chúng em.

Trong suốt quá trình thực hiện dé tài khóa luận, chúng em không thé tránh

khỏi những khó khăn và sai sót do một số giới hạn liên quan đến chuyên ngành chuyênsâu Vì thé, chúng em mong các quý Thay/Cé và các bạn sẽ thông cảm, và có thé

đóng góp ý kiến dé đề tài khóa luận nay được phát triển và hoàn thiện hơn trong tương

Trang 5

MỤC LỤC

Chương 1 GIỚI THIỆU TONG QUAN DE TÀI -s< 1

1.1 Đặt vấn đề v.v Hee 11.2 Một số nghiên cứu liên quan :¿-+22v++++22vv+rtetrvvrrrsrrvrcree 11.3 _ Hướng nghiên cứu của đề tài 2c:c2222+cecCEEvrrerrkrrrrsrrkrcree 2

1.4 Mục tiêu của đề tài

1.5 Bố cục báo cáo c the 4

Chương 2 CO SỞ LÝ THUYÉT - c. ccsssssseevsrrrvse 5

2.1 Tổng quan cccccccc222222EEvvt22222111E 211.1 ccrrrrrii 52.2 Phần mềm Matlab Simulink -:c55225cvcvvvvvervveereerrrrrree 5

2.3 Công cụ Xilinx System Generator

2.4 Các thuật toán Sử dỤng - «tt HH re 8

2.4.1 Thuật toán Gray SCaÌe - - - St 8

2.4.2 Thuật toán Sobel Edge Detection ¿- - - 5+ 5<+++xexsrererxee 8

2.4.3 Thuật toán Hough TransfOorm -¿- 5-52 25+ 5++*+scssc>s>xzs++ 11

Chuong 3 THIET KE HE THONG DE XUẤT

3.1 _ Thiết kế hệ thống đề xuất trên Matlab Simulink và công cu Xilinx System

€0 0n 14

3.1.1 Thiết kế module Pre Processing và Post Processing 15

3.1.1.1 Thiết kế module Pre Processing -:-:z+cc5sccez+z 153.1.1.2 Thiết kế module Post Processing cc.cssssssssssssessssssseessseescessseeees 163.1.2 Thiết kế module IP CORE -2cc+++22cvvvvvcrerrrrrr 17

3.1.2.1 Thiết kế module MASKING -5225ccccvcvvvvvereeoeee 223.1.2.2 Thiết kế module GRAY SCALE -ccc:¿-522ccvccccce2 27

Trang 6

3.1.2.3 Thiết kế module SOBEL EDGE DETECTION - 28

3.1.2.4 Thiết kế module HOUGH TRANSFORM - 38

3.2 Đóng gói hệ thống đề xuất trên Vivado w csccccsssssesssssssessssssescessseeseessseeees 48 3.2.1 Kiến trúc tổng quan thiết kế - -: +++22++ztzvcvverrrrrrrvee 48 3.2.2 _ Thiết kế trên phần mềm Vivado -c:+++22cvvvvvcreerrrrd 49 Chương 4 KET QUÁ DANH GIÁ HE THONG THIET KÉ 51

4.1 Két quả mô phỏng Hardware Co-Simulation trên phần mềm Matlab Simulink và công cu Xilinx System Gen€rafOr ¿+ + cssexererxekererre 51 4.2 _ Kết quả tổng hợp, thực thi của thiết kế trên Vivado .- 52

4.2.1 Két quả tổng hợp, thực thi của hệ thống phát hiện làn đường 52

4.2.2 Kết quả tổng hợp, thực thi của Block Design - 55

43 So sánh kết quả thiết kế với các nghiên cứu liên quan - - 58

4.4 Ứng dụng hệ thống phát hiện làn đường trên Board Virtex-7 VC707 thông qua chuẩn giao tiếp PCIe 2-2222 222E+2222222311222211122221112222112 2221 ccrrkkg 60 Chương 5 KET LUẬN VÀ HƯỚNG PHAT TRIEN 5.I KSC Quan ccscccsccsssecssssseesssosseescssssecssssssecssssusssssssissessssuseessssnscesssusecessseeseessseesed 64 5.2 Khó khăn gặp phi ssssssssssssssscccsesssessssssssentsnnssnssssssssssssseeeeeeeeeeeeeeeeseeeees 64 5.3 _ Hướng phát triển -2-2++2222E+tEEEEEEEEEELrrrrrkrrrerrrrerrei 64 TÀI LIEU THAM KHẢO - 2-2-2 ssevsseevvsseersssevvssser 65 PHU LUC I BOARD FPGA XILINX VIRTEX-7 VC707 66

PHU LUC II CÁCH THỰC THI HARDWARE CO - SIMULATION 69

Trang 7

DANH MỤC HÌNH VE

Hình 2.1: Bộ thư viện Matlab Simulink ¿+ ¿5+ x‡**v*‡£Ekekekekrkrrereree 6

Hình 2.2: Thư viện của Xilinx System G€n€TafOT - - - 55+ x+x‡x+xvxvrrxexereree 7

Hình 2.3: Hình anh minh họa thuật tốn Gray Scale -. - ¿5-5-5 5+ 5+5+++ 8

Hình 2.4: Mặt nạ dọc v (bên trái) và mặt nạ ngang h (bên phải) 9

Hình 2.5: Kết quả minh họa cho việc nhân tích chập với mặt nạ dọc 0

Hình 2.6: Kết quả minh họa cho việc nhân tích chập với mặt nạ ngang 0

Hình 2.7: Kết qua minh họa cho việc tính giá trị Gmag va Gatan từ Gx và Gy 0

Hình 2.8: Hình anh minh họa thuật tốn Sobel Edge Detection 1

Hình 2.9: Ví dụ nhận diện đường thang từ các điểm đen -: - 2

Hình 2.10: Biểu diễn đường thăng bằng phương trình y = MX + b 2

Hình 2.11: Biểu diễn đường thang bằng cặp tham số (rho, 8) - 3

Hình 3.1: Hệ thống phát hiện làn đường trên Matlab Simulink - 4

Hình 3.2: Module Pre PFOC€S§SÌT1g SE tt SE kEskrkkrrkkerkkekrkrkrrrrerrrevek 5 Hình 3.3: Module Split control Signal + 555 S+5++*‡xexerezzkeeexererreexer 6 Hình 3.4: Module Post Processing 25-55 2c‡S+S+S++xtketerirekerrkerereeree 6 Hình 3.5: Tổng quan thiết kế module IP CORE -cccczz:222c5sccccz2 7 Hình 3.6: Module 7jPUTT ¿- - 5525 2*+E+E**EE2EE 9E 2121210113121 11111 8 Hình 3.7: Module AUŒ(ORITÌHÌM - + - +55 SEE‡kEk+EkEEEeEeEEkekrkrkrkrrrkrkrkek 9 Hình 3.8: Module (2ITTPT - - - ¿+ +++k+k£+E£EEE£kEkSEEEEkSEEEEEEEEEEEEEEELkrkrkrkrkee 21 Hình 3.9: Thiết kế module jA.SKƒNG -:::+ccccccetrrtrrreerktrrrrrrrrri 23 Hình 3.10: Module Compare _ ÌN c5 tt xế it 25 Hình 3.11: Module Compare _G 2-5-5552 525+5*+*‡+‡£c>++t+xexexererxrxsrrrere 25 Hình 3.12: Module Compare_B 26

Hình 3.13: Thiết kế module GRAY SCALE 27 Hình 3.14: Tổng quan thiết kế module SOBEL EDGE DETECTION 28

Hình 3.15: Module Line Buffer 30

Hình 3.16: Module Gx/ Gy (D€TđfiOII + 252552 SE+E‡‡£EEeEekekekrketrtrsrersee 31

Hình 3.17: Module Gx (D€FđfiOïI - 5 <5 šEE$kEk+kEkEkEekeEEkekrkrkrkrrrerervrk 32

Hình 3.18: Module Gy per4fi0ïn - ¿2-5-5 55+ S+2*‡£‡+‡£v>+t+xexexererrxerrrers 32

Trang 8

Hình 3.19: Module Cordic 4fđ11 - - + 5:55 ‡£‡ES+E‡kEk‡EEEEEkSEEEekrrkrkrkererre 33

Hình 3.20: Module Adjust 64411 5< 5Ssssereeeeeteseereeeeerrrrrrrrrrer A

Hình 3.21: Module Coordinate OHH€FF + S5 *S*£E‡E‡E£Eekeeerekererrkekrk 34

Hình 3.22: Module Compare St S+SEEk*k*EEEEEEEEEskekEkEkrrkkekrkrkskrkrkrerree 35

Hình 3.23: Module Tỉhres]loÏimig 555cc s server TƠI

Hình 3.24: Module ROI Jef€FTHiT6 55252522 St +t+x£xekeEerkrkerrrererkrkevee 36 Hình 3.25: Module ROI Coordinate - - +25 S2 SE **£‡E‡ESEEkekrrrrekerrkrkrkre 37

Hình 3.26: Module ROI rri€IIf@fÏOHI 5-55 SSEE‡E‡E‡EEEE+kEkEEEEEkEkeErkrkrkrkrtee 37

Hình 3.27: Tổng quan thiết kế module HOUGH TRANSFORM 38

Hình 3.28: Module Calculate rho pFOC@SS - 5-5-5255 +c+SSS++++x+xexererecxsxee 40

Hình 3.29: Module Calculate rÏO 5-5552 5££E+E‡EEEE+kEkeEeEkrkrkereterkrkrkevee 40

Hình 3.30: Module Generate Address FIPSS ++55<+5+c+c>++e+eeesrerereecer 41

Hinh 3.31: Module Calculate Address HPS «42

Hinh 3.32: Module HPS Memory 3

Hình 3.33: Module Initial Address 4

Hinh 3.34: Module Gen Mode 4

Hinh 3.35: Module Create Initial Address .45

Hình 3.36: Module HPS Memory F S5 St SE EEeEEkSkeEkEkkkkkkskkikkrrererkd 45

Hình 3.37: Module VOTING PROCESS EVEN + +2 55+ £+ce++ze+c+esr+ 46

Hình 3.38: Module VOTING PROCESS @DD e- 5555 +vscsscsrsrsrreresre 47 Hình 3.39: Module VALID CONTÌĐOl ¿2-5 ++EvEkEk+kEkekeEerkekerererkrkrkeree 48

Hình 3.40: Block Design trên phần mềm Vivado -. ¿ z22szz2ccssce2 49

Hình 4.1: Tam ảnh đầu vào ccst tri 5]Hình 4.2: Kết quả mơ phỏng của thuật tốn Hough Transform - 51

Hình 4.3: Kết qua mơ phỏng của hệ thống trên 01 frame ảnh - - 52

Hình 4.4: Kết quả Post Timing Implementation Simulation của hệ thống 52Hình 4.5: Xung clock chính của IP hệ thOng c.sccssssssssssescsosseesssssseeesssseeesessseeeeessees 53

Hình 4.6: Phân tích Timing cho IP hệ thống ¿-£2222552c+z+2£2vvvvecccez 54Hình 4.7: Tài nguyên của IP hệ thống sử dụng - -¿+22+cz+2cvsvresrz 54Hình 4.8: Năng lượng tiêu thụ của IP hệ thống - :¿-5+5c5s+ceecz 55

Trang 9

Hình 4.9: Tổng số lượng xung clock trong thiết kế :¿- 55s 56

Hình 4.10: Phân tích Timing cho Block Design -¿ ¿s5 +5+sv£v+veexexsxex 56

Hình 4.11: Tài nguyên phần cứng sử dung trong Block Design - 57

Hình 4.12: Năng lượng tiêu thụ của Block Design 5c 5555c+c+c+c<c+ 57

Hình 4.13: Sơ đồ phân bồ tài nguyên phần cứng của các IP trong Block Design 58

Hình 4.14: Board Virtex-7 được gắn vào công PCle của host PC - 60Hình 4.15: Kết quả thực thi trên Board Virtex-7 theo chuẩn giao tiếp PCle 61Hình 4.16: Kết qua thử nghiệm trên 10 video khác nhau .-: -: 61

Trang 10

DANH MỤC BANG

Bang 1.1: Mục tiêu kiến trúc đề xuất của nhóm -c:z++222vvvvvcreeree 3 Bang 3.1: Ý nghĩa của các tín hiệu trong module ïNPUT -c-cce+ 18

Bang 3.2: Mô tả các tín hiệu module ALGORITHM sử dụng -. : 19

Bảng 3.3: Mô tả các tín hiệu đầu vào và dau ra của module OU7PUT 21

Bang 3.4: Ý nghĩa các tín hiệu của module jA.SKING -ccccccce2 23 Bảng 3.5: Tổng số chu kỳ của module MASKING -c:-©c:z+5c5sccecz 26 Bang 3.6: Ý nghĩa của các ngõ vào/ra của module GRAY $CALE 27

Bang 3.7: Tổng số chu kỳ của module GRAY $CALE 2.-©22cccz5cc5ssceccz 28 Bang 3.8: Mô tả các ngõ vào và ra của module SOBEL EDGE DETECTION 29

Bảng 3.9: Tổng số chu kỳ của module SOBEL EDGE DETECTION 38

Bang 3.10: Ý nghĩa các tín hiệu module HOUGH TRANSFORM sử dụng 38

Bảng 3.11: Tổng số chu kỳ của module HOUGH TRANSEFORM 48

Bảng 4.1: Kết quả so sánh giữa kiến trúc của nhóm với các bài báo cùng chủ đề 59

Bang 4.2: Tài nguyên phần cứng của kiến trúc so với các bài báo liên quan 59

Bang 4.3: Kết quả thử nghiệm trên 10 video khác nhau -ccc+2 62 Bang 4.4: Thông số độ chính xác giữa module so với label - 63 Bang 5.1: Két quả hiện tại với mục tiêu đặt ra cece 55s ++++x+eexererrxecee 64

Trang 11

DANH MỤC TU VIET TAT

ADSA Advanced Driver Assistance System

AXI Advanced eXtensible Interface

DMA Direct Memory Access

DLD Dark — Light — Dark

DSP Digital Signal Processors

FF Flip Flop

FMC FPGA Mezzanine Card

FPGA Field Programmable Gate Array

FPS Frame Per Second

IP Integrated Protocol

JTAG Joint Test Action Group

HT Hough Transform

HDL Hardware Description Language

HPS Hough Parameter Space

HW HardWare

LDWS Lane Departure Warning System

LKAS Lane Keeping Assist System

LUT Look — Up — Table

PC Personal Computer

PCIe Peripheral Component Interconnect Express ROI Region Of Interest

SW SoftWare

UART Universal Asynchronous Receiver/Transmitter

WNS Worst Negative Slack

WHS Worst Hold Slack

WPWS Worst Pulse Width Slack

XSG Xilinx System Generator

Trang 12

TÓM TÁT KHÓA LUẬN

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) Trong đó, Hough Transform (HT) [1] là một thuật toán được sử

dụng rộng rãi cho việc phát hiện đường thẳng nhờ tính mạnh mẽ và hiệu quả pháthiện của nó ngay cả khi có nhiều nhiễu từ môi trường hoặc xuất hiện nhiều đường

thẳng không liền mạch Tuy nhiên, nhược điểm của thuật toán này chính là độ phứctạp tính toán cao do phải sử dụng nhiều phép toán lượng giác, yêu cầu tài nguyên bộ

nhớ lớn và trong thực tế, tốc độ xử lý của thuật toán sẽ bị chậm đi

Trong khóa luận này, nhóm đề xuất một kiến trac Hough Transform có thékhắc phục được nhược điểm của thuật toán HT thông thường bằng việc sử dụng bảng

tra cứu Look — Up — Table (LUT) để lưu trữ các giá trị lượng giác Kiến trúc này

được thực hiện trên Matlab Simulink kết hợp với Xilinx System Generator Đề tainay gồm 03 phan chính Dau tiên là phan Matlab bao gồm những scripts m được thiết

kế để thêm những hình ảnh cần xử lý đồng thời thực hiện các bước tiền xử lý bao

gồm các thao tác gán các tham số cho model và thời gian xử lý trên model, ngoài racòn có phan hậu xử lý và hiển thị kết quả Phan thứ hai chính là phan Simulink và

Xilinx System Generator, mục đích của phan này chính là sử dụng các tham số được

khai báo ở phần trước để thiết kế model với trung tâm là Hough Transform với chức

năng nhận diện làn đường Tuy nhiên, trước khi thiết kế model Hough Transform,cần thiết kế model Masking, Gray Scale, Sobel Edge Detection nhằm loại bỏ các dữliệu không mong muốn, làm mịn và khử nhiễu trong hình ảnh từ ngõ vào Cuối cùngchính là phần Hardware có nhiệm vụ thực hiện các bước Synthesis và Implementation

để đánh giá tài nguyên phan cứng và timing, power của thiết kế, sau đó thiết kế déxuất được ứng dụng trên FPGA Virtex-7 VC707 Evaluation có tan số hoạt động là

170 MHz và tốc độ xử lý trên phần cứng đạt khoảng 97 FPS với độ chính xác dat

được khoảng 94%.

Trang 13

MỞ DAU

Trong xu hướng hiện nay, các công nghệ hỗ trợ người lái xe trên các phươngtiện cơ giới đã và đang được phát triển vô cùng mạnh mẽ vì khả năng hoạt động độclập mà không cần hoặc cần rất ít sự can thiệp của con người, mang lại nhiều lợi ích antoàn khi tham gia giao thông, ngăn ngừa nhiều tai nạn xảy ra Một số phương tiện cơgiới có công nghệ giúp người lái xe tránh lạc sang làn đường liền kề hoặc chuyền lànkhông an toàn, cảnh báo người điều khiển phương tiện khác ở phía sau khi họ đang lùi

xe hoặc phanh tự động nếu xe phía trước dừng lại hoặc chậm đột ngột Một lợi thế

khác không kém phần quan trọng là những người không thê lái xe do các yếu tố nhưtuổi tác và khuyết tật có thể sử dụng các phương tiện có công nghệ hỗ trợ người lái,

giúp cho việc đi lại thuận tiện hơn.

Vì vậy, trong sự phát triển của công nghệ hỗ trợ người lái, tính năng phát hiện

làn đường theo thời gian thực có tầm quan trọng lớn đối với các phương tiện cơ giớiứng dụng công nghệ này vì nó là yếu té góp phần chính trong hệ thống cảnh báo lệch

làn đường (LDWS), là một phần cơ bản và thiết yếu của hệ thống hỗ trợ người lái xenâng cao (ADAS) Hệ thống sử dụng thông tin từ tính năng phát hiện làn đường để

đảm bảo không bị chệch khỏi làn, đồng thời đưa ra các tín hiệu điều hướng khi cầnthiết để tránh các tai nạn tiềm ẩn

Một số công trình nghiên cứu liên quan được thực hiện trong những năm gần

đây Một vai cách tiếp sử dụng các cảm biến như radar, tia laze Tuy nhiên, tinh năngnày vẫn là một thách thức to lớn, đặc biệt là trong môi trường vì xuất hiện nhiễu từ

điều kiện ánh sáng khác nhau hay các phương tiện xung quanh Điều này sẽ hạn chếkhả năng hoạt động theo thời gian thực Do đó, việc hiện thực và cải tiến tốc độ xử lý

của hệ thống phát hiện làn đường dựa trên phần cứng được xem là một trong nhữngmục tiêu quan trọng nhóm muốn hướng tới trong đề tài khóa luận này

Trang 14

Chương 1 GIỚI THIEU TONG QUAN DE TÀI

1.1 Đặt vấn đề

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 địnhtrong xử lý hình ảnh, thị giác máy tính; được ứng dụng trong công nghiệp như chỉ dẫnphương tiện; hay trong công nghệ hỗ trợ người lái xe nâng cao (ADAS) Nhiều thuật

toán khác nhau đã được áp dụng trong nhận diện làn đường, tuy nhiên thuật toán Hough

Transform được áp dụng rộng rãi nhờ tính ồn định các van đề như đường thăng không

liền mạch, xuất hiện nhiều nét đứt gãy hay ảnh hưởng của nhiễu từ môi trường xungquanh Tuy vậy, thuật toán này có độ phức tạp tính toán cao do phải sử dụng nhiều

phép tính lượng giác, yêu cầu tài nguyên bộ nhớ lớn và vì thế mà trong thực tế, tốc độ

xử lý của thuật toán sẽ bị chậm đi Do đó, đây vẫn là một thách thức khi hiện thực hệthống phát hiện làn đường cho xe tự hành dựa trên thuật toán Hough Transform

1.2 Một số nghiên cứu liên quan

Theo như các nghiên cứu trước đó, nghiên cứu [2] [3] đã xây dựng một kiến

trúc phần cứng cho giải thuật Hough Transform song song và sử dụng giải pháp bảngtra cứu LUT, điều này giúp giảm thời gian tính toán các phép toán lượng giác phức tạp

mà không làm thay đổi độ chính xác, ngoài ra nghiên cứu [2] còn đề ra các giải pháp

tính toán song song và bầu chọn song song nhằm làm tăng tốc độ xử lý

Dựa trên nghiên cứu [2], nghiên cứu [3] tiếp tục làm tăng tốc độ xử lý và giảmyêu cầu bộ nhớ nhờ vào việc bầu chọn các vị trí có số phiếu bầu lớn nhất ở cục bộ -

local maximum.

Đối với nghiên cứu [4] các tác giả đã xây dựng một thuật toán mới cho khônggian tham số Hough — Hough Parameter Space (HPS), phương pháp mới này đã làmgiả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

Tương tự như nghiên cứu [4], ở nghiên cứu [5], các tác giả đã dùng phương

pháp sử dụng các đặc điểm cu thé của làn đường để sửa đổi thuật toán HT tiêu chuẩn,

Trang 15

đồng thời phân tách thuật toán mới thành một tập hợp các khối several hardware (HW)

va software (SW) Hiệu suất hoạt động được tối ưu hóa rất nhiều bằng cách giảm trực

tiếp của phép tính HT và bộ nhớ tiêu thụ

Các tác giả ở nghiên cứu [6] đã xây dựng hệ thống cảnh báo chệch làn đường

hoạt động chính xác trong các điều kiện ánh sáng khác nhau dựa trên tầm nhìn mộtmắt trong thời gian thực Các thuật toán được tác giả sử dụng trong hệ thống chủ yếu

là phương pháp ngưỡng Otsu và thuật toán Hough Transform đề giải quyết vấn dé ánh

sáng, trích xuất ranh giới làn đường và giám sát vị trí của xe đối với làn đường và cungcấp cảnh báo nếu phương tiện sắp ra khỏi làn

Ở nghiên cứu [7], các tác giả đã xây dựng thuật toán Hough dựa trên gradient —một cải tiến của biến đổi Hough ban dau, dé phát hiện đường thang Nhờ vậy, lượng

tính toán được giảm đáng ké mà không làm thay đổi độ chính xác Hệ thống được cáctác giả xây dựng bằng cách sử dụng Xilinx Virtex-7 FPGA với các lát cắt DSP được

nhúng và khối RAM

Các thuật toán Gaussian blur, Gray Scale, DLD-threshold và Hough Transform

được các tác giả sử dung chủ yếu ở nghiên cứu [8] để phát hiện đường thing Phương

pháp này có thể hoạt động hiệu quả, chính xác và thu được kết quả tốt cả trong trường

hợp thông tin đường đơn giản cũng như phức tạp Tuy nhiên, nghiên cứu này không

xem xét tác động ánh sáng mạnh và vạch làn không rõ ràng do môi trường gây ra.

1.3 Hướng nghiên cứu của đề tài

Dựa trên ý tưởng phát triển hệ thống phát hiện làn đường đã xuất hiện ở nhữngcông trình nghiên cứu trước đó, nhóm đề xuất một kiến trúc phần cứng đề phát hiện

làn đường dựa trên thuật toán Hough Transform được thiết kế và mô phỏng trên Matlab

Simulink Đồng thời sau khi đã kiểm tra chức năng trên phần mềm nhóm tiến hànhứng dụng hệ thống trên board FPGA thông qua chuẩn giao tiếp PCle dé thực hiện phát

hiện làn đường cho video theo thời gian thực.

Trang 16

1.4 Mục tiêu của đề tài

Ở khóa luận này, nhóm sẽ xây dựng một kiến trúc Hough Transform dựa trên

bài báo [4] [5] để xây dựng một hệ thống day đủ các giải thuật xử lý ảnh từ video gốcban đầu, đồng thời cải tiến được tốc độ thực thi, độ phân giải xử lý của frame ảnh Từ

đó thiết kế được một hệ thống phát hiện làn đường và mô phỏng trên phần mềm MatlabSimulink kết hợp với thư viện Xilinx System Generator dé kiểm tra chức năng hoạt

động của hệ thống

Sau khi đã kiểm tra chức năng hoạt động sẽ tiến hành tạo ra HDL Netlist sang

phần mềm Vivado và thực hiện đóng gói Block Design để có thể thực hiện trên chuẩn

giao tiếp PCle Từ đó có thé đạt được tốc độ truyền dữ liệu tối đa để xử lý thời gian

Trang 17

1.5 - Bố cục báo cáo

Báo cáo này chia làm 05 chương chính Chương đầu tiên đặt van dé về đề tài,

hướng nghiên cứu của để tài và mục tiêu của đề tài Các chương tiếp theo được trình

bày như sau:

Chương 2 CƠ SỞ LÝ THUYET

Chương 2 sẽ trình bày những công cụ phục vụ trong việc thiết kế hệ thống và

lý thuyết của các giải thuật được sử dụng trong hệ thống

Chương 3 THIẾT KE HE THONG ĐÈ XUẤTChương 3 sẽ trình bày về tổng quan hệ thống phát hiện làn đường được thực

hiện trên nền tảng chính là Matlab Simulink kết hợp cùng Xilinx System Generatorcũng như tổng quan thiết kế Block Design của hệ thống và các IP của Xilinx dùng

trong thiết kế trên phần mềm Vivado Design Suite

Chương 4 KET QUA ĐÁNH GIÁ HE THONG THIẾT KEChương 4 trình bày phương pháp đánh giá của thiết kế, kiểm tra kết quả môphỏng của hệ thống dựa trên công cụ Co — Simulation được tích hợp trong Xilinx

System Generator và kết quả tổng hợp, thực thi của thiết kế trên Vivado cũng như trên

Board FPGA Virtex-7 VC707 Bên cạnh đó, kết quả thực hiện cũng được so sánh với

các nghiên cứu liên quan.

Chương 5 KET LUẬN VÀ HƯỚNG PHÁT TRIÊN

Chương 5 sẽ tóm tắt toàn bộ công việc và kết quả đạt được Đồng thời đề raphương hướng phát triển cho đề tài trong tương lai cũng được trình bày ở chương này

Trang 18

Chương 2 CƠ SỞ LÝ THUYET

2.1 Tổng quan

Trong dé tài này, nhóm dé xuất một kiến trúc phát hiện làn đường dựa trên thuậttoán Hough Transform — một thuật toán rất hữu ích, đặc biệt trong quá trình xử lý ảnh

Mục đích chính của thuật toán này chính là dựa trên quá trình “bầu chọn” mà sẽ trích

xuất lại những đường thăng hoàn chỉnh từ những điểm đen phát hiện được sau thuậttoán Gray Scale và Sobel Edge Detection Quá trình “bầu chọn” được phát triển từ

thuật toán HT và sau đó được thực hiện trong một không gian biến để tìm ra “phiếubầu” được bầu chọn nhiều nhất, hay nói cách khác, những điểm ảnh có cặp giá trị góc

và khoảng cách tương ứng với “phiếu bầu” sẽ cùng nằm trên một đường thẳng

2.2 Phần mềm Matlab Simulink

Matlab là từ viết tắt của Matrix Laboratory, một ngôn ngữ lập trình cấp cao

dạng thông dịch Nó là môi trường tính toán số được thiết kế bởi công ty MathWorks.Matlab cho phép thực hiện các phép tính toán số, ma trận, vẽ dé thi hàm số hay biểu

diễn thông tin (đưới dạng 2D hay 3D), thực hiện các thuật toán và giao tiếp với cácchương trình của các ngôn ngữ khác một cách dễ dàng.

Simulink là một công cụ mô phỏng được thiết kế tích hợp sẵn trong Matlab, nógiúp ta có thể dễ dang xây dựng các thuật toán xử lý tín hiệu một cách dé dàng thông

qua các khối (block) chức năng được thiết kế sẵn Ngoài ra nó còn tạo môi trường

thuận lợi cho việc xử lý các bài toán DSP trên phần mềm, sau đó chuyền sang phầncứng với sự hỗ trợ của công cụ Xilinx được tích hợp cùng.

Hình 2.1 mô tả bộ thư viện Matlab Simulink.

Trang 19

‘Lookup Tables H ie

hạn ren IH El S&S &

Tư (ven

'Model-\Wide Utlities Discrete Logic and Bit’ Lookup Math

ors & subsystems Sperators Tablet operations

Spel atrbates

Sonal Routing +

2 =| &

Sources

‘User-Defined Functions Model-wide Mode! Ports & ‘Signal

‘Additional Math & Discrete Utilities Verification Subsystems Attributes

Aerospace Bctet

Ao Syste Todlox

Aomated Diving Sytem Toolbox bài +

Communications System Toobox as 2

Communicators System Toobox HOL Supp =

Camputer ison System Toobox feng oe

Hình 2.1: Bộ thư viện Matlab Simulink 2.3 Công cụ Xilinx System Generator

Xilinx System Generator (XSG) [9] là công cụ phát triển hệ thống cho FPGA,

cho phép thiết kế hệ thống ở dạng các khối và hỗ trợ mô phỏng, debug, tạo code đểnạp vào FPGA hoặc kết hợp vào những ứng dụng lớn hơn

XSG được xây dựng như một Blockset của Simulink trong Matlab Do đó, XSG

thừa hưởng tất cả các ưu điểm của Simulink trong việc xây dựng hệ thống và môphỏng XSG còn sử dụng thư viện Logic Core đề xây dựng các block của mình Trong

thư viện của XSG có tat cả các khối thực hiện các chức năng từ cơ bản như cộng, trừ,

nhân, các khối logical, cho đến những thiết kế phức tạp như các DSP, bộ lọc số,

nhân chập, UART.,, , các bộ nhớ tích hợp: Single Port Ram, Dual Port Ram, FIFOs,

các thanh ghi,

XSG còn cho phép người thiết kế tạo ra các khối để thực hiện những nhiệm vụriêng biệt bằng khối Black Box, tại đây người thiết kế sẽ tạo ra các entity và cài mã

của nó vào Black Box để tạo ra các thiết kế riêng của mình Những thiết kế của XSG

có thé được dich ra nhiều kiểu dữ liệu, có thé thành file *.bir để nạp ngay vào phan

cứng thông qua chức năng Hardware Co — Simulation được tính hợp, hoặc thành các

thiết kế để ghép vào một hệ thống lớn hơn Với việc kết hợp với MathWorks để xây

dựng XSG, Xilinx đã làm cho việc thiết kế hệ thống trên FPGA trở nên thuận tiện và

Trang 20

đơn giản hơn rất nhiều đối với người làm kỹ thuật Trong khóa luận này, nhóm đã sử

dụng XSG dé xây dụng toàn bộ phan thuật toán xử lý ảnh phát hiện làn đường

XSG cung cấp 03 dang dữ liệu số học được sử dụng nhiều nhất trong DSP: số

Bool, số Floating Point, số Fixed Point có dấu và không dấu

Thư viện Simulink của XSG chứa 02 thư viện: Xilinx Blocksets va Xilinx

Reference Blocksets Trong đó thư viện Xilinx Blocksets chứa các khối chức năng đơn

giản như: thanh ghi, bộ cộng, delay, các hàm toán học đơn giản, ROM, các bộ lọc FIR,

bộ nhớ đệm FIFO, Thư viện Xilinx Reference Blocksets chứa các khối chuẩn, các

khối này tương đối phức tạp và có thể sử dụng với các mục đích xác định khác nhau

như: các bộ tinh FFT, DFT, Các khối này đưa ra các sự trừu tượng số học, logic,

bộ nhớ và xử lý tín hiệu phù hợp cho thực hiện các hệ thống DSP trong FPGA Bồ

sung vào thư viện này XSG còn cung cấp sự thực hiện từng hàm và phần mềm tạo mãdịch các hệ thống con mà đã kết hợp các khối XSG vào mô tả phần cứng của mô hình

Hình 2.2 là một ví dụ về thư viện của Xilinx System Generator

BE Smuink Library Browser

-=

g| ¢ te search te ~]#t v|B Ý(av = @8

E c & & &

= System Generator ‘Absolute Addressable Shift Register Assert,

Trang 21

2.4 Các thuật toán sử dụng

2.4.1 Thuật toán Gray Scale

Hình ảnh thông thường sẽ có 03 kênh màu đỏ (Red) — xanh lá (Green) — xanh

dương (Blue) Điều này có nghĩa là thuật toán Gray Scale sẽ có nhiệm vụ chuyền đổi

3 kênh màu này thành ba ma trận xám tương ứng cho từng kênh màu đỏ, xanh lá và

xanh dương Hình 2.3 giúp ta hình dung được kết quả của thuật toán này Công thứcphổ biến được sử dụng đề chuyển đổi ảnh xám được trình bày như công thức (2.1):

GRAY = 0.299 * R + 0.587 *G@ +0.114xB (2.1)

Thuật toán này dam nhận chức năng phat hiện biên của làn đường Thuật toán

này dựa vào việc sử dụng các cửa số trượt để trượt trên từng tấm ảnh Từ đó sẽ tínhđược các giá trị độ dốc Gmag và giá trị định hướng Gatan với công thức sau:

Trang 22

Hình 2.4: Mặt nạ dọc v (bên trái) và mặt nạ ngang h (bên phải)

Từ Hình 2.5 đến Hình 2.7 sẽ minh họa cách tính Gatan và Gmag như công

Trang 23

Hình 2.7: Kết quả minh họa cho việc tính giá trị Gmag và Gatan từ Gx va Gy

Sau khi có các giá trị Gatan và Gmag, việc phát hiện các biên ảnh được thực

hiện bằng cách so sánh với một ngưỡng threshold cho trước Nếu vị trí pixel nào thỏa

10

Trang 24

mãn điều kiện so sánh này thì đó là pixel cạnh và pixel đó sẽ có giá trị là 255 Ngược

lai, pixel đó sẽ có giá trị 0 Hình 2.8 sẽ là một kết quả minh họa cho thuật toán Sobel

Trang 25

Hình 2.9: Ví dụ nhận diện đường thắng từ các điểm đenGiả sử có một đường thang được biéu diễn bởi phương trình đường thang (2.6).

vấn đề gặp phải khi sử dung phương trình (2.6), ta có thể biéu điễn đường thang bằng

một phương trình (2.7) có công thức sau:

rho = xcos(@) + ysin(@) với (0° < @ < 179”) (2.7)Trong phương trình nay, rho là đoạn thang vuông góc với đường thang

y =mx + b, có độ dài tính từ gốc tọa độ đến đường thắng đó và đồng thời rho cũng

tạo với trục hoành một góc Ø.

12

Trang 26

Mối liên hệ giữa 02 phương trình (2.6) và (2.7) được thé hiện thông qua Hình

2.11.

Hình 2.11: Biểu diễn đường thẳng bằng cặp tham số (rho, 8)

Nếu ở HT tiêu chuẩn, tương ứng với mỗi điểm ảnh den sẽ có vô số đường thắng

đi qua nó nhưng với kiến trúc HT nhóm sử dụng sẽ chỉ có duy nhất một đường thang

di qua điểm đó bằng cách sử dụng chính giá trị hướng độ dốc Gatan được tính từ thuậttoán Sobel Edge Detection (mục 2.4.2) làm giá trị góc Ø Nhờ điều này, số lượng các

đường thẳng đi qua các điểm ảnh sẽ được giảm xuống cách đáng kẻ

Như vậy, với mỗi điểm có tọa độ (x,y) sẽ có giá tri rho ứng với góc Ø khác

nhau Với từng cặp giá trị (rho, @) sẽ có một dia chỉ 6 nhớ trong không gian Hough

Transform, một mang hai chiều A(rho, 8), và cũng tại ô nhớ đó sẽ cộng thêm một vào

giá trị đang được lưu trữ trong địa chỉ đó (hay A(rho;, Ø,)).

A(rho;,0;) = A(rho;, 0;)+1 (2.8)

Mỗi cặp (rho;,6;) được xem là một “phiếu bầu” và quá trình cộng thêm một

này được gọi là quá trình “bầu chọn” Sau khi toàn bộ các điểm ảnh đã được xử lý,cũng chính là lúc quá trình “bau chọn” hoàn thành Lúc này, tat cả “phiếu bầu” trong

không gian Hough Transform sẽ được kiểm tra dé tìm ra vị trí 6 nhớ đang lưu trữ giá

tri lớn nhất Đường thẳng đi qua tat cả các điểm den sẽ là đường thang có cặp giá trị(rho, @) hay “phiếu bầu” đang giữ giá trị lớn nhất trong không gian Hough

13

Trang 27

Chương 3 THIẾT KE HE THONG ĐÈ XUẤT

3.1 Thiết kế hệ thống đề xuất trên Matlab Simulink và công cụ Xilinx System

Generator

Hệ thống phát hiện làn đường được nhóm thiết kế chủ yếu trên nền tảng Matlab

Simulink và công cụ Xilinx System Generator Phần mềm sử dụng dé thiết kế chính là

Matlab 2018a và Xilinx System Generator 2018.1 được mô tả như Hình 3.1.

"Viewer

Pre Processing

Hình 3.1: Hệ thống phát hiện làn đường trên Matlab Simulink

Trong đó:

e Khối Video_in: dùng dé lấy thông tin từng khung hình của video trong

không gian làm việc của Matlab để đưa vào Simulink xử lý

e Module Pre Processing: thực hiện các bước tiền xử lý để đưa dữ liệu và

các tín hiệu điều khiển vào module /P CORE được thiết kế trong Xilinx dé

xử lý.

¢ Module IP CORE: module xử lý trung tâm của hệ thống và được thiết kế

trên thư viện Xilinx Blockset.

e Module Post Processing: thực hiện bước xử lý sau khi đã có 02 cặp giá tri

(rho, 8) ở vùng bên trái và bên phải dé thực hiện vẽ làn đường và phần đoạn

phần đường xe có thé đi

14

Trang 28

¢ Khối Video Viewer: dùng dé hiển thị kết quả sau khi đã xử lý từng frame

ảnh trong video.

Mục 3.1.1 và 3.1.2 sẽ mô tả chỉ tiết thiết kế các module trong hệ thống đề xuất

trên.

3.1.1 Thiết kế module Pre Processing và Post Processing

Trong hệ thống phát hiện làn đường của dé tài này, nhóm đã thực hiện 02module Pre Processing và Post Processing có nhiệm vụ chính đề xử lý từng frame ảnhđầu vào và xử lý kết quả đầu ra dé hiền thị kết quả ra màn hình Đây là những khối cósẵn trong Matlab Simulink nhằm dé kiểm tra hệ thống kiến trúc đề xuất của nhóm

3.1.1.1 Thiết kế module Pre Processing

Split control signal

Hinh 3.2: Module Pre Processing

Module Pre Processing bao gồm 02 thành phan là khối Frame to Pixels và

module Split control signal nhu Hinh 3.2.

¢ Khéi Frame To Pixels: nhằm đưa từng pixel của các kênh màu vào module

Đồng thời xây dựng các tín hiệu điều khiển cần thiết cho module sử dụng

© Module Split control signal: có nhiệm vụ lấy các giá trị pixel của kênh

màu dé tạo thành những dữ liệu rdara làm đầu vào cho hệ thống Đồng thời

từ tín hiệu crrl, khối này sẽ tách thành 02 tín hiệu tuser, tvalid đảm nhận

15

Trang 29

những chức năng khác nhau, module Split control signal được mô tả chỉ tiết

‘al toa] vint8 te] 38

mm vit ưn8[ĐỔ green ung

Hình 3.3: Module Split control signal

3.1.1.2 Thiét kế module Post Processing

‘hota mode

pte theta model

it 02610280 Vido.in image mm

van (1020:1020:

Hình 3.4: Module Post Processing

16

Trang 30

Module Post Processing được sử dụng nhằm tạo thành 01 ra khung ảnh kết quả

sau khi vẽ phần làn đường được phát hiện từ các tín hiệu ngõ ra của module IP Core

Đây là module chứa script function được nhóm xây dựng dé thực hiện vẽ làn đường

và phần đường xe có thể đi Hình 3.4 sẽ cho thấy các tín hiệu cũng như kiến trúc

module Post Processing mà nhóm xây dựng Trong đó, rho_l_model, rho_r_model

chính là khoảng cách rho như dé cập ở mục 2.4.3 của 02 vùng bên trái và vùng bên

phải tương ứng với với phiếu bầu lớn nhất Tương tự với theta_l model vàtheta_r_model lần lượt chính là cặp giá trị Gatan của cả 02 vùng mà module IP Coretính toán được Khối Video Viewer có tác dụng đưa video đầu vào đề mô hình hóa lạikiến trúc phát hiện làn đường nhóm đã xây dựng

3.1.2 Thiết kế module IP CORE

boolean PP

Dept

vain

ưa no hai pak mentee

wearolfff——kC2)

‘hota rau uric 24.0

dan out Ota m

Hình 3.5: Tổng quan thiết kế module IP CORE

Module /P CORE chủ yếu triển khai các thuật toán được trình bày ở mục 2.4

Đây là module sử dụng công cu Xilinx System Generator dé thiết kế Ngoài ra, trongmodule này, nhóm còn thiết kế 01 module MASKING đảm nhận nhiệm vụ tăng độ chi

tiết của vạch đường dé triển khai các thuật toán dé dang hơn Hình 3.5 mô tả tổng quanthiết kế module JP CORE

17

Trang 31

Trong đó, module INPUT đảm nhận nhiệm vụ truyền dir liệu đầu vào các module Ở

đây nhóm chủ yếu sử dung các khối trong Xilinx như Gateway in và các khối

Register dé lần lượt truyền các giá trị valid, data cũng như là first_pix vào module

như Hình 3.6 Các tín hiệu được sử dụng trong module này được mô ta ở Bảng 3.1.

Hình 3.6 mô tả kiến trúc INPUT nhóm sử dụng

ufx24 UFix_24_0 i

|pin) UFix_24_0 yg [UF 240

data data_in z.Ÿ UFix 24 0

len _“— qata_out Bool

boolean Bool Bool

1 >| bid z1

G) Boolean LI Bool re jan)

valid valid_in valid_out

Bảng 3.1: Ý nghĩa của các tín hiệu trong module INPUT

Tên tín hiệu Ý nghĩa

valid Tin hiệu bang 1 dữ liệu của từng frame được truyền vào

data Giá trị RGB của từng pixel trong frame ảnh được truyền vào

first_pix Tin hiệu cho biết pixel đầu tiên của frame ảnh được truyền vào

valid_ out Tín hiệu cho biết frame ảnh đã được xử lý xong

data_out Giá tri RGB cua từng pixel trong frame được lấy ra

first_pixel_out Tín hiệu cho biết pixel đầu tiên của frame ảnh được lấy ra thành công

18

Trang 32

reset_valid_out | Tín hiệu reset output của frame ảnh trước đó ngay sau khi frame mới

được truyền vào

Module ALGORITHM nhóm đề xuất gồm 04 module con: MASKING, GRAY

SCALE, SOBEL EDGE DETECTION va HOUGH TRANSFORM như Hình 3.7 Voi

m6i module trén sé dam nhan từng chức năng được mô ta và được thiết kế chỉ tiết từ

mục 3.1.2.1 đến mục 3.1.2.4 Bảng 3.2 sẽ mô tả các tín hiệu mà module ALGORITHM

Hinh 3.7: Module ALGORITHM

Bang 3.2: Mô ta các tín hiệu module ALGORITHM sử dụng

Tên tín hiệu Ý nghĩa

valid_in Tín hiệu bằng 1 khi dữ liệu của các frame ảnh được truyền vào

module.

data_in Dữ liệu pixel đầu vào, bao gồm giá trị của 03 kênh mau RGB

first_pixel Tin hiệu cho biết pixel đầu tiên của frame ảnh được truyền vào

19

Trang 33

reset_in Tin hiệu reset output của frame ảnh trước đó ngay sau khi frame mới

được truyền vào

theta_r_peak Giá trị góc Gatan tương ứng với phiếu bầu lớn nhất được bầu chọn

ở vùng bên phải.

rho_r_peak | Giá trị rho tương ứng với phiếu bầu lớn nhất được bầu chọn ở vùng

bên phải.

valid_out Tin hiệu cho biết frame ảnh đã được xử lý xong

theta_l_peak Giá trị góc Gatan tương ứng với phiếu bầu lớn nhất được bầu chọn

ở vùng bên trái.

rho_l_peak | Giá trị rho tương ứng với phiếu bầu lớn nhất được bầu chọn ở vùng

bên trái.

reset_out Tín hiệu reset output của frame ảnh trước đó ngay sau khi frame mới

được truyền vào

Sau quá trình xử lý, kết quả của module /P CORE được lưu trữ thông quamodule OUTPUT Hình 3.8 sẽ mô tả kiến trúc khối này Các cặp giá tri (rho, Gatan)của từng vùng bên trái và bên phải cũng như tín hiệu điều khiển valid được lưu trữthông qua các khối Register và Gateway out Bang 3.3 sẽ mô tả của các tín hiệu của

module OUTPUT sử dụng.

20

Trang 34

Hinh 3.8: Module OUTPUT

Bang 3.3: Mô tả các tín hiệu dau vào va dau ra cua module OUTPUT

Tên tín hiệu Ý nghĩa

theta_r_in Giá trị góc Gatan tương ứng với phiếu bầu lớn nhất được bau chon

ở vùng bên phải sau khi tính toán từ module ALGORITHM

rho_r_in Giá tri rho tương ứng với phiếu bau lớn nhất được bầu chon ở

vùng bên phải từ module ALGORITHM

valid_in Tín hiệu bằng 1 báo hiệu bắt đầu xuất dữ liệu tại các ngõ ra

rho_l_in Giá tri rho tương ứng với phiếu bau lớn nhất được bầu chon ở

vùng bên trái từ module ALGORITHM

theta_l_in Giá trị góc Gatan tương ứng với phiếu bầu lớn nhất được bau chọn

ở vùng bên trái sau khi tính toán từ module ALGORITHM.

21

Trang 35

in_reset_valid | Tín hiệu reset các output sau khi có frame ảnh mới được truyền

vào.

valid_o Tín hiệu bằng 1 báo hiệu việc xuất dit liệu tại các ngõ ra thành

công.

theta_r_o Ngõ ra chứa giá trị góc Gatan tương ứng với phiếu bau lớn nhất

được bau chọn 6 vùng bên phải của JP CORE

rho_r_o Ngõ ra chứa giá tri rho tương ứng với phiếu bầu lớn nhất được bau

chọn ở vùng bên phải cua JP CORE.

theta_l_o Ngõ ra chứa gid trị góc Gatan tương ứng với phiếu bau lớn nhất

được bầu chon ở vùng bên trai của JP CORE

rho lo Ngõ ra chứa giá trị rho tương ứng với phiếu bầu lớn nhất được bầu

chọn ở vùng bên trái của JP CORE.

3.1.2.1 Thiết kế module MASKING

Hình 3.9 sẽ mô tả kiến trúc module MASKING mà nhóm xây dựng Nhiệm vụ

chính của module là thông báo cho những module sau biết những vùng pixel ảnh đóng

vai trò là làn đường để dễ dàng hơn trong việc thực hiện các bước tiếp theo Ở đâynhóm sử dụng chủ yếu các khối Relational và Mux có sẵn trong Xilinx Blockset déxây dựng kiến trúc với chức năng so sánh và lựa chọn lại giá trị từ ngõ vào là các giá

trị của 03 kênh màu RGB Bên cạnh đó, Bảng 3.4 sẽ mô tả các tín hiệu mà kiến trúc

sử dụng.

22

Trang 36

| fa mm”

= =¬ ll

== "

QR

Hinh 3.9: Thiét ké module MASKING

Bảng 3.4: Ý nghĩa các tín hiệu của module MASKING

Tên tín hiệu Ý nghĩa

first_pixel Tin hiéu cho biét pixel đầu tiên của frame ảnh được vào module.valid_in Tín hiệu bằng | khi dữ liệu của frame được đưa vào module

data_in Dữ liệu pixel đầu vào bao gồm giá trị của 03 kênh màu Red —

Green — Blue.

first_pixel_out | Tin hiéu cho biét pixel đầu tiên của frame ảnh đã xử lý xong

valid_ out Tín hiệu bằng 1 khi frame đã được xử lý xong

data_red Giá trị kênh màu đỏ tại pixel ảnh đã xử lý.

data_green Giá trị kênh màu xanh lá tai pixel ảnh đã xử lý.

data_blue Giá trị kênh màu xanh dương tại pixel ảnh đã xử lý.

23

Trang 37

Dựa trên thực nghiệm, các loại làn đường thông thường sẽ có màu trắng hoặc

màu vàng Do đó nhóm đã dựa trên các giá trị màu tương ứng với 03 kênh màu (R —

GB) dé tìm các pixel là các vạch trắng hoặc vạch vàng trong frame ảnh bằng cách

so sánh giá tri của từng pixel ở từng kênh màu với một ngưỡng cho trước Đó là nhiệm

vụ của các module Compare_R, Compare_G và Compare_B.

Từ Hình 3.10 đến Hình 3.12 sẽ mô tả thiết kế nhóm dé xuất cho việc “ra dau

hiệu” các vạch trắng hoặc vàng của đường thang thông qua các giá trị của 03 kênh màu

RGB tương ứng.

Việc làm “đấu hiệu” các pixel giữ vai trò làn đường được thực hiện như sau:

Giả sử giá trị RGB của màu trắng cơ bản lần lượt có giá trị là (255, 255, 255) Nhưvậy, nếu vạch trắng của làn đường bị nhiễu do độ sáng, độ bóng từ môi trường nên giá

trị RGB không còn là (255, 255, 255) thì ta cần “ra dấu hiệu” cho hệ thống biết thôngqua tín hiệu is_white Việc báo hiệu này được thực hiện bằng cách so sánh giá trị kênh

màu R, G, B của các pixel ảnh với một ngưỡng có giá trị là 190 (giá trị nhóm dựa trên

thực nghiệm) Nếu pixel đó thỏa điều kiện trên thì có khả năng là vạch trắng của làn

đường, tức là is_white sẽ có giá trị 1 Tương tự với vạch vàng, nhóm cũng sẽ thực thi

tương tự.

24

Trang 39

Hinh 3.12: Module Compare_B

Các tín hiệu is_white và is_yellow của các module trên sau 02 chu kỳ kể từ khi

tín hiệu điều khiển en bật lên 1 sẽ cho ra kết quả Sau khi biết được pixel là vạch trắng

hoặc vàng thông qua 02 tín hiệu này ở từng kênh màu và sau đó nhóm sẽ sử dụng các

khối Logical và Mux dé chuyền những giá trị pixel đó thành màu trắng, tức là có giá

trị (255, 255, 255) báo hiệu đây là pixel đóng vai trò là làn đường cho những module

sau “biết” Như vậy, để đảm bảo hệ thống đạt được tần số 150MHz như mục tiêu đặt

ra thì nhóm đã xây dụng module MASKING sau 05 chu kỳ kể từ khi có tín hiệu điềukhiển bat đầu hoạt động sẽ có kết quả đối với từng pixel Bảng 3.5 sẽ tổng hợp số chu

kỳ thực thi của module này đối với 01 frame ảnh với width và height lần lượt là chiều

dai và chiêu cao của frame ảnh.

Bảng 3.5: Tổng số chu kỳ của module MASKING

Module Tổng số chu kỳ

MASKING width*height+5

26

Trang 40

3.1.2.2 Thiết ké module GRAY SCALEDựa theo công thức (2.1) ở mục 2.4.1 nhóm sé đưa kiến trúc dé xuất cua module

GRAY SCALE bao gồm 03 input là giá trị của 03 kênh màu của hình ảnh RGB sau khi

thực thi module MASKING và ngõ ra của module này chính là giá trị được thực hiện theo công thức (2.1).

Hình 3.13 sẽ trình bày thiết kế module để xuất cho thuật toán Gray Scale dựavới các tín hiệu đầu vào/ đầu ra được mô tả như Bảng 3.6 Với từng pixel của frameảnh, sau 06 chu kỳ sẽ có kết quả ảnh xám qua module này

me of ae |e a =

3 = I> 9 at +>

De a> a = ura 2t 18

Oe} et a data_green eames - [>

Hinh 3.13: Thiét ké module GRAY SCALE

Bang 3.6: Y nghĩa của các ngõ vào/ra cua module GRAY SCALE

vy xé |ư ass

Tên tín hiệu Ý nghĩa

first_pixel_in | Tín hiệu cho biết pixel đầu tiên của frame ảnh được truyền vào

module.

valid_in Tin hiéu bang 1 khi đữ liệu của frame ảnh được đưa vào module.

data_red Giá tri độ lớn pixel của kênh mau đỏ.

data_green Giá trị độ lớn pixel của kênh màu xanh lá.

27

Ngày đăng: 03/11/2024, 19:16

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

TÀI LIỆU LIÊN QUAN

w