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 3THONG 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 4LỜ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 5MỤ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 63.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 7DANH 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 8Hì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 9Hì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 10DANH 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 11DANH 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 12TÓ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 13MỞ 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 14Chươ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 161.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 171.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 18Chươ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 212.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 22Hì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 23Hì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 24mã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 25Hì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 26Mố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 27Chươ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 29nhữ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 30Module 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 31Trong đó, 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 32reset_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 33reset_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 34Hinh 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 35in_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 37Dự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 39Hinh 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 403.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