Trong đó, Hough Transform HT 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át hiện của nó ngay cả khi có nhiều nhiễu từ môi trườngh
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
NGUYEN NGUYEN NHẬT ANH - 19521200
KHÓA LUẬN TÓT NGHIỆP
THIẾT KE HE THONG PHÁT HIỆN LAN DUONG CHO
XE TU HANH DUA TREN PHAN CUNG
Design Lane Detector System for Autonomous Vehicles
based on Hardware
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN TIEN SI LAM DUC KHAI
TP HO CHÍ MINH, 2024
Trang 2THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số 10/QD-DHCNTT
ngày ngày 05 tháng 01 năm 2024 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 3LỜI CÁM ƠN
Lời đầu tiên, em xin bày tỏ lòng biết ơn chân thành đến Tiến sĩ Lâm ĐứcKhải, người đã ân cần hướng dẫn em suốt quá trình nghiên cứu khóa luận, cung cấp
các trang thiết bị cần thiết, và dành thời gian quý báu để chỉnh sửa và góp ý, giúp em
hoàn thành khóa luận một cách xuất sắc nhất có thé
Em cũng muốn bày tỏ lòng biết ơn đến các thầy cô và bạn bè trong khoa Kỹ
thuật Máy tinh cũng như toàn thé trường Dai học Công nghệ Thông tin — Đại họcQuốc gia Thành phố Hồ Chí Minh đã dành tâm huyết dé truyền đạt kiến thức hữu ích
và hỗ trợ em suốt quá trình học tập tại trường Những kiến thức và kinh nghiệm quýbáu đó sẽ là nguồn động viên lớn giúp em tự tin hơn khi bước vào thế giới làm việc
Cuối cùng, em muốn bày tỏ lòng biết ơn sâu sắc đến gia đình vì sự hỗ trợ,
động viên và sự ủng hộ vững vàng trong suôt hành trình học tập của em.
Trong quá trình thực hiện khóa luận, em gặp phải một số khó khăn và hạnchế do tính chuyên sâu của đề tài Mong rằng các thầy cô và bạn bè có thể thông cảm
và góp ý để khóa luận này có thể được hoàn thiện hơn trong tương lai
Thành pho Hồ Chí Minh, tháng 1 năm 2024
Sinh viên thực hiện
Nguyễn Nguyễn Nhật Anh
Trang 4MỤC LỤC
Chương 1 _ GIỚI THIỆU TONG QUAN DE TÀI ° s2 3
1.1 Đặt vấn đỀ -c- s22 222 2212211211211 211111211 211 1e rree 3 1.2 Một số nghiên cứu liên quan ¿¿©++2+++x+2£x2xxerxeerxesrxrrreee 3
1.3 Hướng nghiên cứu của đề tài :-©22+52+EE+EEeEE2EEEEEEEEerkerrrrrkerxees 4
1.4 Bố cục báo cáo -cckc2t 2E E122121121121111211211 01111 eree 5
Chương 2 CO SỞ LÝ THUYÊTT 22s ©sssessesseeseessese 7
2.1 TOng quan 5c 5222k EEE1E111112112121111111 111.1 cxe 7
2.2 Cac thuật toán SỬ Ụng - -c c1 11v vn ng ng ng 7
2.2.1 Thuật toán Gray SCaÌÏG€ - c1 SH HH ng ng 7 2.2.2 Thuật toán Sobel Edge IDDefecfIOn s5 *++seeseeersesreeere 8
2.2.3 Thuật toán Hough “TransfOrm - 5 5< + **sxseseEeseeserseesers 11
Chương 3 THIET KE HE THONG DE XUẤTT ° <- 15
3.1 _ Thiết kế hệ thống dé xuat oie cceecceececccsssceseeseesessessessesesessssseeseesesesseeees 15
3.1.1 Thiết kế high level design cho thiết kế phần cứng đề xuất 16
3.1.2 _ Thiết kế chi tiết cho phan cứng - - 2-2 2522 +Ee£xe£xerssrszsez 18 3.1.2.1 Thiết kế module MASKING AND GRAYSCALE 19
3.1.2.2 Thiết kế module SOBEL EDGE DETECTION - 22
3.1.2.3 Thiết kế module HOUGH TRANSFORM - - 29
3.2 _ Triển khải thiết kế bằng ngôn ngữ verilog và synthesis trên Vivado 42
3.2.1 Triển khai thiết kế sử dụng ngôn ngữ verilog và Elaborate thiết kế 42
3.2.2 Synthesis thiết kế trên VivadoO :-©-z+cz+cxerxerxrrrrxerkerree 43 3.2.3 Implementation thiết kế trên Vivado -: ¿csz©5++cs++cs+2 46
Trang 5Chương 4 KET QUÁ ĐÁNH GIÁ HE THONG THIẾT KÉ 5
4.1 Kết quả mô phỏng simulation và đánh giá 2-2-5252 s2 zx+zxzez 514.2 _ Thực thi của thiết kế trên Vivado -: s:©2¿+cx+2cxvcxrerxrsrxrrrrerrrcres 52
4.2.1 Thực thi của hệ thống phát hiện làn đường -: 5- 52
43 So sánh kết quả thiết kế với các nghiên cứu liên quan -.- 62
Chương 5 KET LUẬN VA HUONG PHÁT TRIEN 64
5.1 Kt Quan eee eecceccccccccecsesssessessessesseessessessessssssessessessusssessessesssssessessessessseeseesess 64
5.2 Kho khan gap phat oo eee '^oồ”' 64
5.3 Hướng phat tien oo.ccceccscccccccsscsssesssssssecssesssessecssecsssssscssecssecsesssecssecsseseeasecs 64
TÀI LIEU THAM KHAO -2- se <ssssssessevsseesserssecssee 65
Trang 6DANH MỤC HÌNH VẼ
Hình 2.1: Hình anh minh họa thuật toán Gray Scale 5 + *++ssssessss 7
Hình 2.2: Mặt nạ dọc 0 (bên trái) và mặt nạ ngang h (bên phải) 9
Hình 2.3: Kết quả minh họa cho việc nhân tích chập với mặt nạ đọc 9
Hình 2.4: Kết quả minh họa cho việc nhân tích chập với mặt nạ ngang 9
Hình 2.5: Kết quả minh họa cho việc tính giá trị Gmag và Gatan từ Gx và Gy 10
Hình 2.6: Hình ảnh minh họa thuật toán Sobel Edge Detection - 10
Hình 2.7: Ví dụ nhận diện đường thang từ các điểm den -2- 5552552 11 Hình 2.8: Biểu diễn đường thăng bang phương trình y = Mx + b 12
Hình 2.9: Biéu diễn đường thăng bang cặp tham số (rho, O) - . - 12
Hình 3.1 Vùng quan tâm của hình ảnh ¿6 << 2E 1E E*EE ntrưy 16 Hình 3.2 Hệ thống để xuất ¿- 2-52 ©222S49E19E182122E12E15212211211121 7121121111, l6 Hình 3.3: High level đ€S1g1i <1 9 ng ng ng ng tr 17 Hình 3.4: Tổng quan thiết kế module 7(P -¿ 2 +52 £+££+££+E££Ee£E+£k+rzrszxez 18 Hình 3.5: Thiết kế module MASKING và GRAYSCALE - c::+c-cc:-+ 19 Hình 3.6 Tài nguyên sử dụng của khối MASKING AND GRAY SCALE 21
Hình 3.7 Tan số Implementation Module MASKING AND GRAYSCALE 21
Hình 3.8 Timing của khối MASKING AND GRAYSCALE ocessessessessssssessessesssessesseess 22 Hình 3.9: Tổng quan thiết kế module SOBEL EDGE DETECTION 22
Hinh 3.10 Line Buffer [6] 0 = 24
Hình 3.11 Bang so sánh tài nguyên sử dụng cho FIFO [12] -«<-«2 24 Hình 3.12 Line Buffer đề xuất ¿22+ 22v tre 25 Hình 3.13 Convolution ESÌM - nh ng TH ng nh Hi tr 26 Hình 3.14 Tài nguyên sử dụng của khối SOBEL EDGE DETECTION 28
Hình 3.15 Tan số Implementation Module SOBEL EDGE DETECTION 28
Hình 3.16 Timing của khối SOBEL EDGE DETECTION W.scesssssessessesssessessessesssesseess 29 Hình 3.17 Thiết kế Hough tranform của nghiên cứu [6] . :-z-5z=5: 29 Hình 3.18: Tổng quan thiết kế module HOUGH TRANSFORM 30
Hình 3.19 Module CORDIC ATAN của nghiên cứu [6] - «<< << s<<+<<+2 32
Hình 3.20: Module COrdic << << +2 + 1 1 EEEE11111111111 111111 188555555555 11 kvvvvvkerer 33
Trang 7Hình 3.21 Module Calculate RHO process trong nghiên cứu [6] - 34 Hình 3.22: Module Calculate P - «5 + s31 91 E93 111 1 nh ng nên 34
Hình 3.23 Module Voting của nghiên cứu [Ó ] -«- «+ £+£eseeeeesessessessxs 36
Hình 3.24 Module Voting đề xuat cc.ccccccccsesssesssesssesssessesssecssecsusssesssecsseeseessesssecseeess 37
Hình 3.25 So sánh phân vùng VOTTNG - S SH HH ng ggg 38
Hình 3.26 Máy trạng thái Hough Transform 55+ + + + ++se++eexseeseeexs 39
Hình 3.27 Tài nguyên sử dung của khối HOUGH TRANSFORM 41Hình 3.28 Tần số Implementation Module HOUGH TRANSFORM 41
Hình 3.29 Timing của khối HOUGH TRANSFORM ccsscsssessessssssesseeseessesseeseess 42
Hình 3.30: Schematic trên phần mềm Vivado c.sccsscsssesssesssecsesseessecssessessesssecseeess 42
Hình 3.31 Clock constraint - 5 5 c1 001 911991 930 1v vn Hư 43
Hình 3.32 Chiến thuật Synthesis và tùy chọn 2 2 2+ ecxerxerxerxrrsrree 44
Hình 3.33 Tài nguyên sử dụng Post-Synthesis cà sesseeerrrrske 45
Hình 3.34 Chiến thuật Implementation và tùy chọn .-«-+-««++sx<++sxe+ses 46
Hình 3.35: Xung clock chính của IP hệ thống -¿- 2 +2 +2s++z++zx+zxzs+ 47
Hình 3.36: Phân tích Timing cho IP hệ thống 2- 2-2 2 2 ££E££E+£++£++£+2s+2 47
Hình 3.37: Tài nguyên Implementation sử dụng - - -« «+ +-«+++sexssesseers 48
Hình 3.38: Năng lượng tiêu thụ của IP hệ thống - 2 2 2 s2 ++£x£+z£s2 +2 48Hình 4.1: Tắm ảnh đầu vào :¿-©222+22++t2222tttEEkrttrttrrrttrrrrrrirrrrrrriee 5IHình 4.2: Kết quả mô phỏng của hệ thống trên 01 frame ảnh - - 52Hình 4.3: Kết quả Post-Implementation Simulation của hệ thống 33
Hình 4.4 GRAY SCALE MAIE cà 1 HH TH TH TH HH HH hiệp 55 Hình 4.5 SOBEL EDGE DETECTION Gx MAIE 5c cscsesersrrsrske 56 Hình 4.6 SOBEL EDGE DETECTION Gy MAIE - cà seessersrsersee 56 Hình 4.7 Cordic Magnitude value MAIE 5 óc SH HH ng it 57
Hình 4.8 Cordic arctan angle value MAIE 6 << 41kg ngư 57
Hình 4.9 Quá trình lấy kế quả và đánh giá 2-2 222E£+EE+£EtzEzEesrxerxerex 59Hình 4.10 Kết qua sau mô phỏng của video Ì - 2-2-2 2 2++£xe£x+£xerzrszsez 60Hình 4.11 Kết quả sau mô phỏng của video 2 - - 2-2 + 2 ++E££Ee£ke£xererszxez 60Hình 4.12 Kết quả sau mô phỏng của video 3 -2- ©2222 x+x+zx+z+zzxvrxzez 61
Trang 8DANH MỤC BANG
Bang 1.1: Mục tiêu kiến trúc đề xuất của nhĩm 2- 2 2 2+ +x£E+£++£z£zEzez 5Bảng 3.1: Ý nghĩa của các tín hiệu trong module JWPUT - -¿©-sz©5+=s+ 18Bảng 3.2: Ý nghĩa các tin hiệu của Module Grayscdle c.cccsssssesssesssecsesseessessseeseess 19Bang 3.3 So sánh Latency giữa nghiên cứu [6] và thiết kế đề xuất - 21
Bang 3.4: Mơ ta các ngõ vào và ra của module SOBEL EDGE DETECTION 23
Bảng 3.5 Máy trạng thái ConVỌUtIOH - c1 1v ng ng ng 26
Bang 3.6: Tổng số chu kỳ của module SOBEL EDGE DETECTION 28Bảng 3.7: Ý nghĩa các tín hiệu module HOUGH TRANSFORM sử dụng 3l
Bang 3.8: Máy trang thái của Hough tranSfOTm «+ sx£ssseeeseesessesske 39
Bang 3.9: Tổng số chu ky của module HOUGH TRANSFORM - 41
Bảng 3.10 So sánh tài nguyên giữa kết quả Synthesis và kết quả Implementation 49
Bang 4.1: Thơng số độ chính xác giữa module so với label -:-s:5: 61
Bang 4.2: 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ủ đề 62Bảng 4.3: 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 62Bảng 5.1: Kết quả hiện tại với mục tiêu đặt ra 2- ¿+ ©++x++zxzzxezxesrxs 64
Trang 9DANH MỤC TỪ 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
FPGA Field Programmable Gate Array
FPS Frame Per Second
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
WHS Worst Hold Slack
WPWS Worst Pulse Width Slack
MAE Mean Absolute Error
Trang 10TÓM TẮT KHÓA LUẬN
Việc nhận diện làn đường được xem là một trong những mục tiêu quan trọng
nhất trong xử lý hình ảnh và thị giác máy tính, đặc biệt trong hỗ trợ người lái xe nâng
cao — Advanced Driver Assistance System (ADSA) Trong đó, Hough Transform
(HT) 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át hiện của nó ngay cả khi có nhiều nhiễu từ môi trườnghoặc xuất hiện nhiều đường thang không liền mạch Tuy nhiên, nhược điểm của thuậttoán này chính là độ phức tạp tính toán cao do phải sử dụng nhiều phép toán lượnggiác, yêu cầu tài nguyên bộ nhớ lớn và trong thực tế, tốc độ xử ly của thuật toán sé bị
chậm di.
Trong khóa luận này, nhóm thực hiện một mô hình phát hiện làn đường dựa
trên giải pháp đề xuất của bài báo báo số [6] và [4] kết hợp phương pháp đề xuất nàygiúp giảm kích thước của bộ nhớ tích lũy đồng thời cũng làm giảm độ phức tạp củacác phép tính toán, hệ thống phát hiện làn đường sẽ bao gồm việc phát hiện những
vạch kẻ trắng của làn đường dựa trên thuật toán Hough Transform Nhóm sẽ tiễn hành
cải tiễn và tối ưu hóa về độ phân giải xử lý và bộ nhớ xử lý ở giải pháp đề xuất này
Phần cứng mô tả sẽ được thiết kế bởi ngôn ngữ miêu tả phần cứng Verilog vàsau đó sử dung Vivado dé mô phỏng và phân tích tài nguyên và tốc độ xử lý Cuốicùng thiết ké sẽ được hiện thực lên FPGA kit Virtex 7 XC7VX485T-2FFG1761C
Trang 11đồng thời cảnh báo người lái phía sau khi xe lùi hoặc phanh tự động khi phía trước
có sự dừng đột ngột.
Khía cạnh quan trọng khác là khả năng tiếp cận vận chuyền cho những ngườikhông thé lái xe do tuổi tác hoặc khuyét tật thông qua việc sử dụng các phương tiện
cơ giới tích hợp công nghệ hỗ trợ lái xe Do đó, tính năng phát hiện làn đường thời
gian thực đóng vai trò quan trọng trong việc nâng cao an toàn và hiệu suất của cácphương tiện cơ giới sử dụng công nghệ này Nó trở thành một yếu tố cơ bản của hệthống cảnh báo lệch làn đường (LDWS), một thành phần không thé thiếu trong Hệthống Hỗ trợ Lái xe Nâng cao (ADAS)
Hệ thống này tận dụng thông tin từ tính năng phát hiện làn đường thời gian
thực để duy tri sự ôn định trong làn đường và cung cấp hướng dẫn khi cần thiết, từ
đó giúp tránh được những rủi ro tiềm an Có nhiều nghiên cứu liên quan đã được thực
hiện trong những năm gan đây, sử dụng các công nghệ cảm biến như radar, tia laser
và các phương pháp khác.
Tuy nhiên, tính năng này vẫn đối mặt với nhiều thách thức, đặc biệt là trong
môi trường có nhiều biến đổi về điều kiện ánh sáng hoặc sự xuất hiện của nhiều
phương tiện gây nhiễu Điều này làm giảm hiệu suất của hệ thong khi hoạt động theo
thời gian thực Do đó, việc cải tiễn tốc độ xử ly của hệ thong phát hiện làn đường dựa
trên phần cứng là một trong những mục tiêu quan trọng mà đề tài khóa luận này
hướng tới.
Trang 12Chương 1 GIỚI THIEU TONG QUAN DE TÀI
1.1 Đặt van đề
Phát hiện làn đường đóng vai trò quan trong trong việc xử ly hình ảnh va thi
giác máy tính; được sử dụng rộng rãi trong các lĩnh vực công nghiệp dé hướng dan
các phương tiện hoặc trong các Hệ thống Hỗ trợ Lái xe Tiên tiến (ADAS) Mặc dù
có nhiều thuật toán khác nhau được áp dụng cho phát hiện làn đường, nhưng thuậttoán Biến đổi Hough được ưa chuộng nhất nhờ tính 6n định trong việc giải quyết cácthách thức như đường thăng không liên tục, đặc điểm phân tán, hoặc ảnh hưởng của
nhiễu môi trường Tuy nhiên, thuật toán này đòi hỏi tính toán phức tạp do phải sử
dụng nhiều phép tính lượng giác và tài nguyên bộ nhớ lớn, làm giảm tốc độ xử lýtrong thực tế Vì vậy, triển khai hệ thống phát hiện làn đường cho các xe tự hành dựatrên thuật toán Hough Transform vẫn là một thách thức đối với ngành công nghiệp
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ếntrúc phần cứng cho giải thuật Hough Transform song song và sử dụng giải pháp bảng
tra 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ứctạp mà không làm thay đôi độ chính xác, ngoài ra nghiên cứu [2] còn dé ra các giảiphá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 toc độ xử lý và giảm
yêu câu bộ nhớ nhờ vào việc bau chọn các vi trí có sô phiêu bau lớn nhât ở cục bộ
-local maximum.
Đối với nghiên cứu [4] các tác giả đã xây dung 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
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 13đồ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) và software (SW) Hiệu suất hoạt động được tối ưu hóa rất nhiều bằng cáchgiả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] , nhóm nghiên cứu đã hiện thực hệ thống pháttriển làn đường dựa trên bài báo khoa học số [4] bao gồm việc sử dụng vùng quan
tâm (region of interest) khi thực hiện phát hiện làn đường làm tăng độ chính xác khi
phát hiện.
Trong nghiên cứu [7], các tác giả đã phát triển một hệ thống cảnh báo việc xe
chạy ngoài làn đường chính xác trong điều kiện ánh sáng khác nhau, sử dụng một hệthống tầm nhìn một mắt thời gian thực Các thuật toán như phương pháp ngưỡng Otsu
và biến đổi Hough đã được áp dung dé xử lý ánh sáng, nhận diện đường biên lànđường và theo dõi vị trí của xe trong làn đường, đồng thời cung cấp cảnh báo khi xe
sắp rời khỏi làn đường
Trong nghiên cứu [8], tác giả đã tạo ra một biến thé của biến đổi Hough gọi làHough dựa trên gradient dé phát hiện đường thăng Điều này đã giúp giảm đáng kếlượng tính toán mà vẫn duy trì độ chính xác Hệ thống được xây dựng trên Xilinx
Virtex-7 FPGA sử dụng các lát cắt DSP tích hợp và khối RAM
Nghiên cứu [9] sử dụng các thuật toán Gaussian blur, Gray Scale,
DLD-threshold và Hough Transform dé phát hiện đường thang Phương pháp này đã chothấy hiệu suất và độ chính xác tốt trong việc xử lý thông tin về đường đơn giản và
phúc tạp Tuy nhiên, nghiên cứu này chưa đánh giá tác động của ánh sáng mạnh va vạch làn đường không rõ ràng do môi trường tạo ra.
1.3 Huong nghiên cứu của đề tài
Nhóm thực hiện một mô hình phát hiện làn đường dựa trên giải pháp đề xuấtcủa bài báo báo số [6] và [4] kết hợp phương pháp đề xuất này giúp giảm kích thướccủa bộ nhớ tích lũy đồng thời cũng làm giảm độ phức tạp của các phép tính toán, hệthống phát hiện làn đường sẽ bao gồm việc phát hiện những vạch kẻ trắng của làn
Trang 14đường dựa trên thuật toán Hough Transform Nhóm sẽ tiến hành cải tiễn và tối ưuhóa về độ phân giải xử lý và bộ nhớ xử lý ở giải pháp đề xuất này.
Phần cứng mô tả sẽ được thiết kế bởi ngôn ngữ miêu tả phần cứng Verilog vàsau đó sử dụng Vivado để mô phỏng và phân tích tài nguyên và tốc độ xử lý
Mục tiêu về tôc độ, tân sô của kiên trúc nhóm đê xuât so với các nghiên cứu
trước đó được thé hiện ở Bang 1.1
Bảng 1.1: Mục tiêu kiến trúc đề xuất của nhóm
Báo cáo này chia làm 05 chương chính Chương đầu tiên đặt van đề về dé tài,
hướng nghiên cứu của dé 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Ý THUYÉT
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 DE XUẤT
Trang 15Chương 3 sẽ trình bày về tông quan hệ thống phát hiện làn đường được thựchiện trên nền tang chính là thiết kế trên phan mềm Vivado Design Suite.
Chương 4 KET QUÁ ĐÁNH GIÁ HE THONG THIET KE
Chươ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ụ Vivado Design Suite và kết quả tổng hợp, thựcthi của thiết kế và hién thị kết quả sử dụng python 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 VA HUONG PHÁT TRIEN
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 16Chương 2 CƠ SỞ LÝ THUYET
2.1 Tổng quan
Trong nghiên cứu này, nhóm đề xuất một kiến trúc phát hiện đường dựa trên
thuật toán Hough Transform, một công cụ hữu ích đặc biệt trong việc xử lý hình ảnh.
Mục tiêu chính của thuật toán này là xác định các đường thăng hoàn chỉnh từ cácđiểm đen được phát hiện thông qua thuật toán Gray Scale và Sobel Edge Detectionthông qua quá trình ‘bau chọn' Quá trình này dựa trên việc phát triên thuật toán HT
và sau đó áp dụng trong không gian biến đổi dé tìm ra các 'phiéu bầu' được bầu chọnnhiều nhất, nghĩa là các điểm ảnh có cặp giá trị góc và khoảng cách tương ứng sẽ
cùng nằm trên một đường thắng
2.2 Cac thuật toán sử dụng
2.2.1 Thuật toán Gray Scale
Hình anh 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.1 giúp ta hình dung được kết quả của thuật toán này Công thức
phố biến được sử dung dé chuyên đôi ảnh xám được trình bày như công thức (2.1):
GRAY = 0.299xR+0.587x0 +0.114xB (2.1)
Trang 172.2.2 Thuật toán Sobel Edge Detection
Sobel Edge Detector là một phương pháp dựa trên nhân tích chập được sử
dụng dé phát hiện cạnh của làn đường trong hình anh Các cửa số trượt sẽ đi qua từng
tam anh Từ đó sẽ tính được các giá trị độ Gmag và giá trị góc quay của điểm ảnh
Gatan với công thức sau:
Trang 18Hình 2.2: Mặt nạ dọc 0 (bên trái) và mặt nạ ngang h (bên phải)
Từ Hình 2.3 đến Hình 2.5 sẽ minh họa cách tính Gatan và Gmag như công
thức (2.2), (2.3) Ma trận ảnh f và các mặt nạ dọc v, mặt nạ ngang h, Hình 2.3 va
Hình 2.4 sẽ trình bày kết quả nhân tích chập Gx và Gy sau khi áp dụng công thức(2.4) (2.5) Sau khi có kết qua Gx và Gy, việc còn lại là áp dụng công thức (2.2),(2.3) dé tính các giá trị Gatan và Gmag Hình 2.5 sẽ mô tả kết qua sau khi tính 02
EIFNERE IEà 2, [#|#⁄|#|äs |#|
Pele telet=| @[z|+|:|=I|*l*|°|[:]*|
ESEIE3i “i ` _daic [a | ae | | |
Ma tran anh Mat na Gx Két qua Gx
Hinh 2.3: Két quả minh họa cho việc nhân tích chập với mặt na dọc
Hình 2.4: Kết quả minh họa cho việc nhân tích chập với mặt nạ ngang
Trang 19te Pe Te]
EIEREIEIES
Kết quả Gy Kết quả Gatan
Hình 2.5: Kết quả minh họa cho việc tính giá trị Gmag và Gatan từ Gx và Gy
Sau khi thu thập các giá tri Gatan và Gmag, quá trình phát hiện biên ảnh được
thực hiện băng việc so sánh chúng với một ngưỡng được xác định trước Nếu vị trícủa pixel đáp ứng điều kiện so sánh này, đó sẽ là pixel biên và giá trị của nó sẽ đượcđặt là 255 Ngược lại, giá trị của pixel sẽ là 0 Hình 2.6 là ví dụ minh họa cho kết quả
của thuật toán Sobel Edge Detection.
10
Trang 202.2.3 Thuật toán Hough Transform
Như đã được đề cập trước đó, thuật toán Hough Transform được biết đến như
một công cụ quan trọng trong việc phát hiện làn đường dựa trên việc phát hiện cạnh
dé tìm và xác định các đường thăng Sau khi xác định được những đường thăng này,
bước tiếp theo đơn giản chỉ là vẽ chúng lên ảnh Hough Transform là một phươngpháp ước tính tham số sử dụng quy trình biểu quyết dé tìm và phù hợp với việc pháthiện làn đường Ý tưởng chính của thuật toán là chuyên đồi không gian tọa độ trong
ảnh sang không gian Hough và phân tích dữ liệu trong không gian Hough theo mốiquan hệ giữa đường và điểm để phát hiện ra các đường thăng Việc xác định cácđường này dựa trên quá trình 'bầu chọn', một quá trình được phát triển từ thuật toánHough Transform và sau đó áp dụng trong không gian biến (rho, 9) dé tìm ra đường
có sô phiêu bâu cao nhât.
Hình 2.7 là một ví dụ nhận diện đường thang từ các điểm đen
Hình 2.7: Ví dụ nhận diện đường thăng từ các điểm đen
Giả sử có một đường thăng được biéu diễn bởi phương trình đường thang (2.6)
y=mx+b (2.6)
Trong đó m là hệ số góc và đường thang cắt trục tung tại điểm có tung độ là b
11
Trang 21y=mx+b (Xi, Vi)
Hình 2.8: Biéu diễn đường thăng bang phương trình y = mx + bMột điểm nằm trên đường thăng như Hình 2.8 sẽ có một tọa độ (x, y) có định.Tuy nhiên nếu dùng phương pháp này để biểu diễn một đường thắng đứng theo trụctung thì giá trị góc nghiêng m sẽ nằm trong khoảng (—œo; +00) Vi vậy dé tránhnhững vấn dé gặp phải khi sử dụng phương trình (2.6), ta có thé biểu diễn đườngthắng bằng một phương trình (2.7) có công thức sau:
rho = xcos(@) + ysin(8) với (0 < 6 < 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 Ø.
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.9.
Hình 2.9: Biểu diễn đường thang bằng cặp tham số (rho, 8)
Trong HT tiêu chuẩn, mỗi điểm ảnh đen có thê tạo ra vô số các đường thăng
đi qua, tạo nên một không gian rộng và không xác định của các đường thắng có thé
đi qua điểm đó Điều này tạo ra một thách thức lớn khi muốn xác định một đường
12
Trang 22thang cụ thé từ các điểm ảnh trên ảnh den trắng Tuy nhiên, trong kiến trúc HoughTransform (HT) mà nhóm đang sử dụng, đã áp dụng một giải pháp hiệu quả dé giảm
độ phức tạp của không gian đường thắng đi qua điểm đó bằng cách sử dụng chính giátrị hướng độ dốc Gatan được tính từ thuật toán Sobel Edge Detection (mục 2.2.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ê.
Từ phương trình đường thăng (2.6) và công thức tính khoảng cách (2.7) ta có
được m = cot(@) va từ đó ta có được công thức
b=x*+sin(8)+y (2.8)
Nếu bau chọn sử dụng hệ(b, @) ta có thé giảm tải được quá trình xử lý Inversehough transform dé có được phương trình tọa độ đường thang (2.6)
Như vậy, với mỗi điểm có tọa độ (x,y) sẽ có giá trim ứng với góc Ø khác
nhau Với từng cặp giá trị (b, 8) sẽ có một địa chỉ ô nhớ trong không gian Hough
Transform, một mảng hai chiều A(b, 6), và cũng tai 6 nhớ đó sẽ cộng thêm một vào
giá trị đang được lưu trữ trong địa chỉ đó (hay A(b;, 6;)).
AGŒ¡,0,) = A(bj, 6,) + 1 (2.9)
Mỗi cặp (b;,;) trong không gian Hough Transform được xem như là một
"phiếu bầu" đại diện cho một đường thăng ảnh chứa một số điểm đen Quá trình cộngthêm một được gọi là quá trình "bầu chọn," mô phỏng cách mỗi điểm đen "bỏ phiếu"
cho các đường thang ứng với góc 9 và hệ số b trong không gian Hough
Sau khi toàn bộ hình ảnh đã được xử lý và mọi điểm đen đã "bầu chọn" chocác đường thăng tương ứng, quá trình "bầu chọn" được coi là hoàn thành Tại thời
điểm này, chúng ta sẽ kiểm tra tất cả các "phiếu bầu" trong không gian Hough
Transform để xác định vị trí ô nhớ nào đang lưu trữ giá trị lớn nhất Điều này tươngứng với việc tìm ra đường thăng có số lượng phiếu bau lớn nhất, cho biết đường thăng
nào có sự hô trợ lớn nhât từ các điêm ảnh.
13
Trang 23Đường thăng cuối cùng được xác định bằng cách sử dụng cặp giá trị (b, Ø) hay
"phiếu bầu" có giá trị lớn nhất trong không gian Hough Transform Giá trị Ø này sau
đó được sử dụng dé tính toán giá trị m trong phương trình (2.10), hoàn thiện quá trìnhxác định phương trình của đường thăng Điều này giúp chúng ta đạt được phương
trình của đường thăng, đồng thời cung cấp thông tin chỉ tiết về hướng và vị trí của
đường thăng trên hình anh
14
Trang 24Chương 3 THIẾT KE HE THONG DE XUẤT
3.1 Thiết kế hệ thống đề xuất
Hệ thống phát hiện làn đường được nhóm thiết kế từ các block diagram sau đótriển khai bằng ngôn ngữ phần cứng
Mục tiêu của hệ thống:
e Dap ứng độ phân giải 1024x1024.
e Giảm số lượng LUT sử dụng khi thực hiện biến đổi Hough
e Thực hiện Inverse Hough Transform bằng phan cứng
e Giảm số lượng Block ram sử dung khi voting
e© Áp dung Region of interest lên thiết kế
Về region of interest: Dựa theo nghiên cứu [4] và nghiên cứu [5] nhóm tác giả
đã sử dụng các đặc điềm cụ thé của làn đường, sử dụng những vùng cần quan tâm désửa đổi thiết kế Hough Transform tiêu chuẩn
Hình ảnh mà thiết kế sẽ nhận vào có độ phân giải là 1024x1024 Hình 3.1 thé
hiện vùng quan tâm, các góc quay được giới hạn và vùng tọa độ được sử dụng Nhóm
sử dụng kết quả thực nghiệm của nghiên cứu [6] với tọa độ và góc quay của đườngthắng tạo nên làn đường cho vùng quan tâm
e Góc quay max phải là 153 độ
e Góc quay min phải là 130 độ
e Góc quay max trái là 50 độ
e Góc quay min phải là 30 độ
e Vùng tọa độ quan tâm có tọa độ —512 < x < 512 và 100 < y < 400
Hình 3.1 Thé hiện vùng quan tâm của làn đường góc quay của đường thang
được đo từ đường thắng vuông góc với làn đường từ bên phải trục x tương ứng với
góc 9 ở Hình 2.9.
15
Trang 25Góc quay max phải
Góc quay min phải
Góc quay max trái
fAd a Góc quay min trái
512
/ _\ Vùng tọa độ quan tâm
NL Đường thang phải
“thing Duong thang trai
*._ Duong vuông góc với y = 400
làn đường
`
512
Hình 3.1 Vùng quan tâm của hình ảnh
Dé đạt được tốc độ xử lý nhóm đề xuất một hệ thống như Hình 3.2, hệ thống
sẽ bao gồm phần mềm được sử dụng dé đưa vào các pixel của vùng quan tâm của
hình ảnh, và phần cứng bao gồm 2 kênh có các khối xử lý Grayscale, Sobel edge,
Hough transform dé xử ly và đưa ra kết qua thông qua giao thức PCIE của FPGA kit
i INPUT IMAGE | terme | i
i
i i
>| stay scale} —>]Sobel -edse}—>} ansterm FJ
Hình 3.2 Hệ thống dé xuat
3.1.1 Thiết kế high level design cho thiết kế phan cứng đề xuất
Ap dụng Region of interest lên thiết kế và tận dụng để giảm bớt tài nguyêncho thiết kế Các tối ưu hóa của thiết kế sẽ tập trung vào Module Voting và các LUT
sử dụng trong Module Hough transform Module Voting va Module LUT COT cũng
16
Trang 26sẽ được áp dụng Region of interest dé giảm tài nguyên sử dung Đồng thời sửa đôi
thuật toán dé lay dữ liệu dau ra là phương trình đường thang (2.6) mà không cần phải
thực hiện Inverse Hough Transform với đường thăng bên phải và đường thắng bên
trái.
Red pixel
—Creen pixe MASKING AND Grayscale SOBEL EDGE HOUGH
Ẹ GRAYSCALE pixel DETECTION TRANSFORM
——Blue pixel
Hinh 3.3: High level design
Hệ thống bao gồm 03 thành phan là khối MASKING AND GRAYSCALE,
SOBEL EDGE DETECTION, HOUGH TRANSFORM O High level design như Hình
3.3.
e Khối GRAYSCALE: Khối sẽ nhận 3 kênh màu đầu vào và phân biệt màu
trang và vàng dành cho làn đường, đồng thời làm xám anh dé đưa vào khối
xử lý phát hiện cạnh của hình ảnh.
e _ Khối SOBEL EDGE DETECTION: có nhiệm vụ phát hiện ra các điểm
ảnh là cạnh, đồng thời cung cấp Gx, Gy để sử dụng tính ra góc quay củađiểm ảnh phục vụ cho việc hình thành cặp giá trị voting cho khối Hough
Transform.
e Khối HOUGH TRANSFORM: Có nhiệm vụ thực hiện vote cho các điểm
ảnh được phát hiện là cạnh trước đó, sau đó trả về cặp giá trị (b, m)
17
Trang 273.1.2 Thiết kế chỉ tiết cho phần cứng
ở các mục kê tiép Các tín hiệu được sử dụng trong module này được mô tả ở Bang
3.1.
Bảng 3.1: Y nghĩa của các tín hiệu trong module INPUT
clk Tín hiệu bằng 1 dữ liệu của từng frame được truyền vào
rst_n Gia tri reset trên module top.
input_rgb Giá tri RGB của từng pixel trong frame ảnh được truyền vao
valid_in Tín hiệu cho biết rằng các pixel hợp lệ
first_pixel_in Tín hiệu cho biết pixel dau tiên của frame anh được truyên vào.
valid_ out Tín hiệu cho biết frame ảnh đã được xử lý xong
peak_b_l Giá trị b tương ứng với phiếu bau lớn nhất được bau chon ở vùng bên
trái.
18
Trang 28peak_b_r Giá trị b tương ứng với phiếu bau lớn nhất được bau chon ở vùng bên
3.1.2.1 Thiết kế module MASKING AND GRAYSCALE
Hình 3.5 sẽ mô tả kiến trúc module MASKING AND GRAYSCALE mà nhóm
xây dựng Nhiệm vụ chính của module là chuyên đổi hình ảnh màu có 3 kênh RGB
thành ảnh xám để tiến hành xử lý ở các module sau Phan MASKING sẽ thực hiện
việc so sánh và thông báo cho các module sau 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ễ dàng thực hiện xử lý Phan
GRAYSCALE sẽ sử dụng những pixel từ phần MASKING chuyển đổi thành ảnh
xám Bảng 3.2 sẽ mô tả các tín hiệu mà kiên trúc sử dụng.
const
19
Trang 29Tên tín hiệu Y nghĩa
red Dữ liệu pixel đầu vào bao gồm giá trị của kênh màu Red
green Dữ liệu pixel đầu vào bao gồm giá trị của 03 kênh màu Green
blue Dữ liệu pixel đầu vào bao gồm giá trị của 03 kênh màuBlue
const Các hang số được sử dụng dé so sánh màu
grayscale Giá tri cua pixel thang độ xám.
Nhóm đã tham khảo nghiên cứu [6] về bố sung so sánh màu trước khi chuyển
đổi hình ảnh thành ảnh xám dựa trên thực nghiệm rằng các đường thông thườngthường được sơn màu trắng hoặc màu vàng Bằng cách so sánh giá trị màu tương ứng
của ba kênh màu (R — G — B), nhóm xác định các pixel có mau tương tự với mau sáng hoặc màu vàng trong khung hình, sử dụng ngưỡng được xác định trước đó Các bộ
so sánh trong phân này sẽ áp dụng so sánh với các giá trị hăng sô.
Với phan MASKING của module, dé xác định làn đường, quá trình "đánh dau"
các pixel được thực hiện theo cach sau: Ban đầu, giả định giá trị RGB cơ bản của
màu trang là (255, 255, 255) Khi vạch trắng trên đường bị ảnh hưởng bởi nhiễu ánh
sáng hoặc bóng đồ từ môi trường, giá tri RGB sẽ thay đôi và không còn là (255, 255,255) Quá trình "đánh dấu" được thực hiện băng cách so sánh giá trị của các kênh
màu R, G, B của pixel ảnh với một ngưỡng, thường là 190 (ngưỡng này dựa trên thực
nghiệm của nhóm) Nếu pIxel đáp ứng điều kiện này, có thé nói đó là vạch trắng trên
đường, và hệ thống sẽ sử dụng hằng số màu trang cho input_rgb Ngược lại, nếukhông đáp ứng điều kiện, giá trị màu sẽ được duy trì Quá trình này giúp xác định vị
trí của các vạch màu trăng và màu vàng trên đường một cách hiệu quả
Ở phần GRAYSCALE, các gam màu sẽ thực hiện phép nhân với một hăng số
theo công thức (2.1) Theo phương trình này, màu đỏ sẽ đóng góp 30%, màu xanh lá
cây đóng góp 59% - đứng đầu trong ba màu sắc, và màu xanh lam đóng góp 11%
20
Trang 30Đầu ra output_gray sẽ là pixel có giá trị màu là trắng đen và sau đó được đưa đếnModule SOBEL EDGE DETECTION để tiếp tục quá trình xử lý.
Module MASKING AND GRAYSCALE hoạt động tương tự Module
MASKING va Module GRAYSCALE của nghiên cứu [6], va đã được lượt bỏ bớt
các flipflops giữa các register không cần thiết dé giảm tài nguyên Register va latency
cua output.
Bang 3.3 So sánh Latency giữa nghiên cứu [6] và thiết kế đề xuất
Module Tong số chu kỳ thiết kế
MASKING & GRAYSCALE width*height+2
Dưới đây là kết quả Implement và tần số hoạt động của module được thé hiện
10 38 700 5.43
BUFG 1 32 3.13
Hình 3.6 Tài nguyên sử dụng của khối MASKING AND GRAY SCALE
Tài nguyên sử dụng của Module MASKING AND GRAYSCALE không đáng
kế với số lượng LUT là 1 và 6 FF
Trang 31Design Timing Summary
Setup Hold Pulse Width
Worst Negative Slack (WNS): 1.170 ns Worst Hold Slack (WHS): 0.224 ns Worst Pulse Width Slack (WPWS): 1.800 ns
Total Negative Slack(TNS) 0.000 ns Total Hold Slack (THS): 0.000 ns Total Pulse Width Negative Slack (TPWS): 0.000 ns Number of Failing Endpoints: 0 Number of Failing Endpoints: 0 Number of Failing Endpoints: 0
Total Number of Endpoints: 10 Total Number of Endpoints: 10 Total Number of Endpoints: 57
All user specified timing constraints are met.
Hình 3.8 Timing của khối MASKING AND GRAYSCALE
Nhu vay qua Hinh 3.13 va hinh 3.14 miéu ta, Module MASKING AND
GRAYSCALE thỏa mãn điều kiện timing và dat được tan số 250 Mhz với WNS là
1.17 ns.
3.1.2.2 Thiết kế module SOBEL EDGE DETECTION
Hình 3.9 sé mô ta tong quan thiết kế của thuật toán Sobel Edge Detection gồm
các phần như đã đề xuất với ngõ vào là 03 giá trị first_pixel_in, gray_pixel cũng như
ngõ ra gx, gy được mô ta chức nang ở Bảng 3.4.
input_ent
==grayscale Line buffer
Hình 3.9: Tổng quan thiết kế module SOBEL EDGE DETECTION
Dữ liệu đầu vào là các thông tin pixel ảnh xám có được từ Module MASKINGAND GRAYSCALE trước đó, và đi qua các phần Line buffer và Gx, Gy Operation
Đầu ra của thiết kế là giá trị Gx, Gy lần lượt tương ứng với công thức (2.4), (2.5), các
giá trị này sẽ được sử dụng dé quyết định các pixel ảnh là cạnh và tìm ra góc quay
của pixel đó phục vụ cho việc tính toán trong module HOUGH TRANSFORM.
22
Trang 32Kiên trúc này gôm các phân chính sau:
e FIFO: chứa lần lượt các giá tri pixel của frame ảnh xám, hay giá trị ngõ ra
gray_scale_out tạo từ thuật toán Gray Scale dé tạo thành cửa số trượt 3x3nhằm thực hiện Gx/ Gy Operation
e Gx/ Gy operation: thực hiện việc nhân tích chập với mặt nạ ngang và mặt
nạ dọc như công thức (2.4) và (2.5).
Dưới đây sẽ mô tả chỉ tiết các module được xây dựng trong module SOBEL
EDGE DETECTION.
Bảng 3.4: Mô tả các ngõ vào và ra cua module SOBEL EDGE DETECTION
Tên tín hiệu Ý nghĩa
first_pixel Thông báo pixel đầu tiên của hình ảnh, phục vu cho việc chuyên
trạng thái của máy trạng thái
gray_pixel Độ lớn giá tri của pixel thang độ xám từ module GRAY_SCALE
gx Gx dung dé tính toán Gradiant xác định điểm cạnh của anh và
góc quay của điêm ảnh đó
gy Gy dung dé tinh toán Gradiant xác định điểm cạnh của ảnh và
góc quay của điêm ảnh đó
Module FIFO với chức năng chứa lần lượt các giá tri pixel của frame ảnh xám,
hay nói cách khác chính là giá trị ngõ ra gray_pixel tạo từ module MASKING AND
GRAY SCALE, nhóm đã sử dụng các khối FIFO lưu trữ lần lượt các pixel nhằm thựchiện nhân tích chập ở các khối ở Gx, Gy Operation
23
Trang 33Hình 3.10 Line Buffer [6]
Module Line buffer sẽ tương ứng với Line Buffer của nghiên cứu [6] như Hình
3.10 Tuy nhiên trong nghiên cứu [6] các tác giả đã sử dụng shift register như một ma
trận bộ nhớ Việc sử dụng nhiều register như một FIFO sẽ làm tiêu tốn tài nguyênnhiều hơn việc sử dụng BRAM điều này thê hiện trong bảng so sánh của [12] ở Hình
Hình 3.11 Bảng so sánh tài nguyên sử dụng cho FIFO [12]
Như vậy việc sử dụng block ram giúp đạt được hiệu quả cao và tối ưu về mặt
tài nguyên sử dụng.
24
Trang 34Hinh 3.12 Line Buffer dé xuat
Nhóm thực hiện thiết kế đề xuất cho module Line Buffer dung BRAM ở Hình
3.12 Như vậy cần có một bộ điều khiển cho Block Ram dé Block Ram có thé nhậnbiết khi nào cần nhận input và đưa ra output dé thực hiện tính toán nhân tích chập ở
GX/GY operation Một máy trạng thái được thêm vào va được miêu tả trong Hình 3.13.
Các block ram được sử dụng trong module FIFO và một máy trạng thái bên
trong khối cho FIFO dé có thé đọc và ghi các dữ liệu Hình 3.8 sẽ miêu ta các trang
thái của Line Buffer Các dit liệu sẽ lần lượt được ghi nhớ qua các FIFO dé hình thành
ma trận 3x3, sau đó được đưa tới module tiếp theo đề thực hiện việc nhân tích chập
dựa theo công thức (2.4), (2.5).
May trạng thái sẽ giao tiếp với module FIFO , cho biết lúc nào FIFO cần nhậnthông tin hình ảnh và khi nào cần đưa ra thông tin hình ảnh phục vụ cho việc hìnhthành một ma trận 3x3 ở đầu ra của module Line Buffer Việc sử dụng thêm một máytrạng thái là cần thiết vì các FIFO cần có sẽ sử đụng một bộ nhớ và cần có các luận
lý thích hợp dé điều khiến thời điểm cần ghi và đọc các giá trị pixel vào FIFO và
tránh ghi vào các giá trị không thích hợp và đọc ra các giá trị khi chưa lưu xong các hàng ngang của hình ảnh.
25
Trang 35first_pixel && valid
S1: Nap dữ liệu vào FIFO 1 1 0 0 0
S2: Nap dữ liệu vào FIFO 2 1 1 1 0
S3: Trang thai hoat dong 1 1 1 1
Trong máy trạng thai:
26
Trang 36S0: Ở trạng thái này cả FIFOI và FIFO2 không mở input và output enable.Khi nhận được tín hiệu valid và first_pixel, trạng thái SO sẽ được chuyển
S2: Ở trạng thái nay, output enable của FIFO1 sẽ được mở đồng thời FIFO2
cũng nhận các pixel đã di qua FIFOI trước đó hình thành nên cửa số trượt
phục vụ cho việc tính nhân tích chập Giá trị nhân tích chập sẽ được đi qua
các cửa số nhân tích chập dé bắt đầu tính toán Khi nhận đủ 1 hàng giá tri
pixel Trạng thái S2 sẽ được chuyền qua trạng thái S3
S3: Ở trạng thái này, cả FIFOI và FIFO2 đều đã nạp đủ 1 hàng dữ liệu.Khối Convolution Control sẽ giữ nguyên ở trạng thái này cho tới khi thiết
kế được reset.Ngoai ra dé tránh cho việc bị sai lệch hàng của cửa số trượt,
các FIFO sé chỉ nhận các dự liệu pixel khi có tín hiệu valid.
Các Gx/ Gy Operation thực hiện việc nhân tích chập với các pixel lay từ FIFO
được thiết kế Trong module này gồm thêm 02 module Gx, Gy Operation đảm nhậnviệc nhân tích chập theo mặt nạ dọc và mặt nạ ngang Ở mỗi module này lần lượt lây
các giá trị pixel được lưu trữ ở FIFO và bắt đầu thực hiện việc nhân tích chập
Như vậy trong thiết của Module SOBEL EDGE DETECTION của thiết kê đề
xuât đã cải tiên được những diém sau:
e Chuyến đổi việc sử dụng lượng lớn SHIFT REGISTER cho Line Buffer
thành sử dụng BLOCK RAM cho FIFO để lưu các giá trị điểm ảnh
27
Trang 37Bảng 3.6: Tổng số chu kỳ của module SOBEL EDGE DETECTION
Module Tong số chu kỳ thực thi
FF 1308 607200 0.22
10 37 700 5.29 BUFG 1 32 3.13
Hình 3.14 Tài nguyên sử dụng của khối SOBEL EDGE DETECTIONHau hết tài nguyên của Module SOBEL EDGE DETECTION sử dụng tập trungvào các LUT để thực và LUTRAM Số lượng FF chiếm da số phản ánh ModuleSOBEL EDGE DETECTION cần sử dụng nhiều Shift Register dé thuc hién buffer
cho tin hiệu valid và tin hiệu first_pixel.