Chương 1: Giới thiệu tổng quan dé tai Trình bày tổng quát về mục tiêu của vấn đề phân loại làn đường, sau đó liệt kê và phân tích một số nhóm giải pháp hiện đang tồn tai, các nghiên cứu trong các giải pháp này, điểm mạnh và điểm yếu của chúng. © Chương 2: Cơ sở lý thuyết Trình bày các lý thuyết nền được sử dụng trong đề tài. Ở mỗi mục trình bày cơ sở lý thuyết, ví dụ minh họa và hình ảnh nếu có. ¢ Chương3: Kiến trúc CNN đề xuất Trình bày kiến trúc của mô hình CNN được đề xuất.
Đưa ra chỉ tiết về kiến trúc của mô hình cùng với lý giải về các lựa chọn trong thiết kế. Cuối cùng, chỉ tiết về quá trình training được trình bày. e Chương 4: Kiến trúc phan cứng đề xuất Trình bày chỉ tiết về kiến trúc của thiết kế phần cứng cho mạng CNN. Phân tích về các giải pháp để song song hóa giải thuật convolution cùng với các thiết kế phần cứng tương ứng.
Đưa ra phân tích và cách lựa chọn các phiên bản thiết kế cho phiên bản cuối cùng. se _ Chương 5: Hiện thực trên FPGA Trình bày cách hiện thực hóa kiến trúc phần cứng đã đề ra lên FPGA. Trình bày cách xây dựng hệ thống và các phương pháp để vận hành, kiểm tra. e Chương 6: Kết quả Đưa ra kết quả về độ chính xác và tốc độ của mô hình phần mềm lẫn phần cứng.
Ngoài ra, trình bày kết quả về tài nguyên phần cứng và các hình ảnh thực tế. © Chuong 7: Tổng kết Đưa ra kết luận, trình bay các van dé gặp phải và hướng phát triển của đề tài. GIỚI THIEU TONG QUAN DE TÀI 1. Giới thiệu Một phương pháp truyền thống cho bài toán nhận diện làn đường là các giải thuật được thiết kế tay đề trích xuất các đặc trưng như màu sắc [2] [3] hay các thuật toán như hough transform [4] [5] [6].
Mặc dù nhiều thuật toán đạt được tốc độ rất nhanh, các phương pháp này thường không được linh hoạt và dễ bị lỗi do tính đa dạng của hình ảnh ngoài đời thật như ánh sáng thấp, vạch phân cách không được vẽ rõ rang,.1 trình bay một ví dụ lỗi của AR-LHT [6], một mô hình dựa trên hough transform. Kết quả được chạy từ mã nguồn của mô hình [7]. bằng kỹ thuật học sâu (deep learning), cụ thể là các mô hình CNN, nhờ vào hàng loạt các công trình nghiên cứu chứng tỏ CNN có khả năng mang lại độ chính xác cao cho rất nhiều ứng dụng khác nhau. Các mô hình CNN có thể được huấn luyện trên một số lượng lớn hình ảnh, từ đó chúng có thể tự học ra được những đặc trưng cần phải trích xuất từ ảnh, thay vì cần được cụ thể hóa bởi con người.
Một phương pháp thường được dùng cho bài toán phân loại làn đường là xuất ra segmentation map. Một số mô hình tiêu biéu sử dụng phương pháp này bao gồm U-Net [8], Enet [9], LaneNet [10] và một mô hình sử dụng mạng LSTM [11]. Các phương pháp nay xuất ra một ảnh output có kích thước giống với input, nhưng mỗi pixel đều được phân loại vào một lớp khác nhau. Mặc dù các phương pháp này đạt được độ chính xác cao, kết quả đầu ra của chúng thường không được tối ưu.
Dé giải thích rõ hơn, các làn đường là những đường cong liên tục, mỏng và dài, việc miêu tả chúng bằng các nhóm pixel dày đặc sẽ không chứa được các thông tin về hình học, ví dụ như góc nghiêng, và các thông tin này đòi hỏi nhiều hậu xử lý từ đầu ra của mô hình để có thé trích xuất ra.2 thé hiện một ví dụ về segmentation do nhóm tạo ra. Đâu vào Đâu ra Hình 1.2: Ví dụ về segmentation Các nghiên cứu gần đây đề xuất các giải pháp cho vấn đề này bằng các phương pháp miêu tả làn đường nhỏ gọn hơn và có thể chứa thêm các thông tin miêu tả về hình học. Vi dụ, Line-CNN [12] sử dụng khối Line Proposal Unit (LRU) để dự đoán làn đường sử dụng các đường thắng được định nghĩa trước. CondLaneNet [13] va PINet [14] miêu ta làn đường bằng cách dự đoán ra các điểm thưa dọc trên các làn đường và PolyLaneNet [15] biến bài toán phân loại làn đường thành bài toán hồi quy.
Mặc dù đạt được độ chính xác vô cùng cao và có kết quả đầu ra rất tối ưu, các phương pháp này đều được chạy trên các GPUs có mức độ tiêu thụ năng lượng rất cao, dẫn đến chúng khó mang tính thực tiễn cho các hệ thống di động trên xe. Từ các van đề trên, ta có thé thay một mô hình CNN có độ chính xác cao kèm với đầu ra mang tính tối ưu là một trong những giải pháp hiệu quả nhất cho bài toán phân loại làn đường. Đồng thời, việc có khả năng hiện thực mô hình này trên một nên tảng có khả năng xử lý song song cao mà không tiêu tốn nhiều năng lượng, ví dụ như FPGA, sẽ mang đến một giải pháp cực kỳ tối ưu cho các hệ thống di động dùng pin trên xe tự hành. Các nghiên cứu liên quan 1.
Các nghiên cứu phần mềm Các phương pháp deep learning ban đầu tìm cách giải quyết bài toán phân loại làn đường sử dụng semantic segmentation [9] [11]. Các mô hình này thường nhận một ảnh RGB, và trả về một ảnh khác có kích thước tương tự với ảnh đầu vào, nhưng mỗi pixel đều được phân loại vào một lớp khác nhau như đường, xe, người đi bộ,. Mặc dù có kha năng thé hiện các hình dạng phức tạp, kỹ thuật nay không thể phân biệt các làn đường riêng biệt khác nhau, do tất cả mọi pixel trong tất cả các làn đều được phân loại vào cùng một lớp như nhau.3 trình bày đầu ra của mô hình CNN sử dụng kỹ thuật LSTM được công bố ở bài báo [11].3: Kết qua semantic segmentation của bài báo [11] LaneNet [10] tìm cách giải quyết van đề này bằng cách sử dụng instance segmentation thay vì semantic segmentation, tức là cũng xuất ra segmentation map, tuy nhiên các pixel thuộc mỗi làn đường khác nhau sẽ được nhóm về thành các nhóm khác nhau.4 trình bày đầu ra của mô hình LaneNet. Đ&vầàuo nhãn a 3 N Đrầau Tuy có những cải tiến trên, các kiến trúc segmentation nói chung đều không được tối ưu, do các vạch phân cách làn đều mỏng và dài, chạy dọc theo bức ảnh.
Mặc dù các segmentation map nhìn rất đẹp khi đánh giá bằng mắt, việc thé hiện các vạch phân cách làn bằng các nhóm pixel dày đặc sẽ đòi hỏi đầu ra đó được xử lý không hề ít dé có thể nhóm lại và xuất ra các thông tin như góc nghiêng của làn, tọa độ của trung điểm,. Các nghiên cứu gần đây nhắm đến việc giải quyết sự thiếu tối ưu này bằng cách quy tắc miêu tả làn đường nhỏ gọn hơn các segmentation map. Dựa trên Region Proposal Network (RPN) của Faster R-CNN [16], Line-CNN [12] đề xuất khối Line Proposal Unit (LPU) có khả năng dự đoán các offset của làn đường so với các đường thing đã được định nghĩa sẵn. UFAST [17] đề xuất một quy tắc miêu tả làn đường theo từng hàng (row-wise formulation), tức là đầu ra bao gồm một danh sách hoành độ tương ứng và các tung độ đã được định sẵn.
Quy tắc miêu tả này được cải thiện thêm bởi CondLaneNet [13] bằng cách thêm hai bộ giá trị vertical range và offset map. Một ý tưởng khác, PINet [14], dự đoán các điểm thưa trên làn đường, sau đó được cụm lại thành từng instance khác nhau (phân biệt được điểm nào thuộc làn nào).5 trình bày dạng au ra của Line-CNN [12]. Đề xuất 15 đường ¬ Le By Te Le Lo Đường L3 có xác suất cao nhất [0.8 vu C + + a Xác suất Độ dai Cac offset hoành độ dọc trên L3 để định nghĩa vạch phân cách _) Hình 1.5: Dạng đầu ra của Line-CNN [12] Mặc dù giải quyết được vấn đề thiếu tối ưu của segmentation map mà vẫn mang độ chính xác vô cùng cao, các phương pháp mới này vẫn sử dụng các mô hình CNN có kích thước quá lớn để đạt được tốc độ real-time. Thậm chí các mô hình được công bồ với tốc độ vô cùng nhanh như UFAST [17] hay CondLaneNet [13], các tốc độ này đều được đánh giá trên các GPU có cấu hình cao.
Mức độ tiêu thụ năng lượng của các GPU này khiến chúng khó có thể tích hợp được vào các hệ thống nhúng di động sử dụng bởi các xe tự hành. Các nghiên cứu phần cứng Dé cải thiện về tốc độ xử lý lẫn năng lượng tiêu thụ, nhiều nghiên cứu tập trung vào thiết kế các bộ gia tốc phần cứng. ChipNet [18] [19] là một mô hình CNN được thiết kế dé phân loại phần đường xe chạy sử dụng cảm biến LiDAR. Mô hình này được hiện thực trên FPGA Xilinx UltraScale XCKUI15 và đạt được tốc độ 79.
Cho đầu vào từ camera, một mô hình CNN khác mang tên RoadNet-RT [20] được thiết kế cho đầu ra có ứng dụng tương tự với ChipNet. Sử dụng kỹ thuật lượng tử hóa dữ liệu (data quantization), mô hình này đạt được tốc độ 327.9 FPS khi được hiện thực trên FPGA ZCU102 MPSoC. Sử dụng kỹ thuật được trình bày ở [21], throughput của RoadNet-RT tiếp tục được cải thiện bằng cách thực hiện hai phép nhân 8-bit song song trên một nhân DSP48E2, từ đó thiết kế một phiên bản 8-bit có thê xử lý hai ảnh đầu vào một cách song song. Tuy nhiên, phiên bản này kém tính thực tế bởi vì thông thường các camera chỉ xuất ra từng khung ảnh một cách tuần tự, có nghĩa là trong một ứng dụng thực tế, thường chỉ có một ảnh đề xử lý một lúc.
Hơn nữa, cả hai phương pháp này đều xuất ra segmentation map, từ đó mang lại sự thiếu tối ưu được nhắc đến ở phần 1. Mục tiêu đề tài Để giải quyết bài toán phân loại làn đường và tối ưu về năng lượng tiêu thụ của mô hình CNN, trong khóa luận này, nhóm đưa ra ba mục tiêu chính: 1. Thiết kế một mô hình CNN có kích thước nhẹ, huấn luyện và đánh giá trên tập dữ liệu TuSimple. Mô hình sẽ được đánh giá bằng ba thang đo được cung cấp bởi tập dữ liệu bao gồm: accuracy, false positive (FP) và false negative (FN), mục tiêu có accuracy > 95%.
Thiết kế một kiến trúc phần cứng cho mô hình CNN trên, sử dụng các kỹ thuật để tối ưu như pipeline, data quantization dé đảm bảo mang lại sự đánh đổi tốt nhất và throughput, tài nguyên phần cứng và năng lượng tiêu thụ. Hiện thực kiến trúc này lên FPGA Virtex-7 VC707 như một bộ gia tốc phần cứng cho vi xử lý chính thông qua chuẩn giao tiếp PCle.