CƠ SỞ LÝ THUYẾT
THƯ VIỆN PYTORCH
PyTorch là một thư viện mạnh mẽ dựa trên ngôn ngữ lập trình Python, cho phép người dùng dễ dàng tạo và triển khai các mô hình học sâu cho nhiều ứng dụng khác nhau Với thiết kế thân thiện và dễ sử dụng, PyTorch phù hợp ngay cả với những người có kiến thức lập trình cơ bản, giúp họ tham gia vào các dự án học sâu một cách hiệu quả.
Cấu trúc dữ liệu chính trong PyTorch là Tensor, tương tự như numpy array Tensor là một mảng một chiều với tất cả các phần tử có cùng kiểu dữ liệu.
Hình dưới đây mô tả một quy trình cơ bản của:
Trong đó có các mô-đun cơ bản thường gặp là torch.nn, torch.optim, torch.utils và torch.autograd
Bước đầu tiên trong bất kỳ dự án học sâu nào là tải và xử lý dữ liệu, và PyTorch cung cấp các tiện ích hữu ích thông qua mô-đun torch.utils.data Hai thư viện quan trọng trong mô-đun này là Dataset và DataLoader Dataset được xây dựng dựa trên kiểu dữ liệu Tensor, chủ yếu phục vụ cho các bộ dữ liệu tùy chỉnh, trong khi DataLoader được sử dụng để xử lý các tập dữ liệu lớn một cách hiệu quả.
Để tối ưu hóa quy trình huấn luyện trong PyTorch, chúng ta có thể tải dữ liệu từ Dataset ở chế độ nền, giúp dữ liệu luôn sẵn sàng cho training loop Bên cạnh đó, PyTorch hỗ trợ sử dụng torch.nn.DataParallel và torch.distributed để tận dụng khả năng tính toán song song trên nhiều máy tính hoặc nhiều GPU, nâng cao hiệu suất đào tạo mô hình.
Mô-đun torch.nn là công cụ quan trọng trong việc xây dựng mạng thần kinh (NN), cung cấp đầy đủ các lớp phổ biến như lớp kết nối đầy đủ (fully connected), lớp tích chập (convolution), cùng với các hàm kích hoạt và hàm mất mát.
Sau khi kiến trúc mạng được thiết lập và dữ liệu đã sẵn sàng, chúng ta cần áp dụng các kỹ thuật để cập nhật trọng số và độ lệch nhằm tiến hành huấn luyện mạng Mô-đun torch.optim cung cấp các tiện ích hữu ích cho quá trình này, trong khi mô-đun torch.autograd hỗ trợ tính toán gradient tự động.
Sau khi mô hình được huấn luyện, nó có khả năng dự đoán ngõ ra cho các bộ dữ liệu thử nghiệm hoặc bộ dữ liệu mới thông qua quá trình gọi là “model inference” PyTorch cung cấp TorchScript, cho phép chạy các mô hình độc lập với “Python runtime”, hoạt động như một máy ảo chủ yếu dành cho việc thao tác với Tensors.
Chúng ta có thể chuyển đổi mô hình huấn luyện bằng PyTorch sang định dạng ONNX, giúp sử dụng trong các framework Deep Learning khác như MXNet, CNTK, và Caffe2 Ngoài ra, việc chuyển đổi các mô hình ONNX sang TensorFlow cũng được hỗ trợ.
XỬ LÝ ẢNH
2.2.1 Các khái niệm cơ bản trong xử lý ảnh [16] Ảnh số là một tập hợp của nhiều điểm ảnh, hay còn gọi là pixel Mỗi điểm ảnh biểu diễn một màu sắc nhất định (hay độ sáng với ảnh đen trắng) tại một điểm duy nhất, có thể xem một điểm ảnh giống như một chấm nhỏ trong một tấm ảnh màu Bằng phương pháp đo lường và thống kê một lượng lớn các điểm ảnh, chúng ta hoàn toàn có thể tái cấu trúc các điểm ảnh này thành một ảnh mới gần giống với ảnh gốc Có thể nói pixel gần giống như các phần tử có cấu trúc hạt trên một ảnh thông thường nhưng được sắp xếp theo từng hàng và cột và chứa các thông tin khác nhau Ảnh được biểu diễn dưới dạng một ma trận hai chiều với các pixel được xác định bởi cặp tọa độ (x, y), trong đó, giá trị của pixel tại tọa độ nhất định biểu diễn độ sáng (ảnh đen trắng) hay màu nhất định (ảnh màu)
Mỗi điểm ảnh đại diện cho một phần của đối tượng vật lý trong không gian ba chiều, được ánh sáng chiếu sáng Đối tượng này tương tác với ánh sáng, phản chiếu và hấp thụ một phần ánh sáng từ các nguồn sáng khác nhau Phần ánh sáng phản chiếu được cảm biến ghi lại, tạo thành đặc trưng cho từng điểm ảnh Những giá trị này phụ thuộc vào loại cảm biến được sử dụng để phản ánh khung cảnh từ nguồn sáng.
Có 2 dạng quan trọng trong ảnh số được dùng với nhiều mục đích khác nhau là ảnh màu và ảnh đen trắng (hay còn gọi là ảnh xám) Trong đó, ảnh màu được cấu trúc từ các pixel màu trong khi ảnh đen trắng được xây dựng từ các pixel có giá trị mức xám khác nhau Ảnh đen trắng: với một ảnh đen trắng được xây dựng từ nhiều pixel mà tại đó biểu diễn một giá trị nhất định tương ứng với một mức xám Những mức xám này trải dài trong một khoảng từ đen sang trắng với bước nhảy rất mịn, thông thường là 256 mức xám khác nhau theo tiêu chuẩn Do mắt người chỉ có thể phân biệt một cách rõ ràng với khoảng 200 mức xám khác nhau nên vì thế hoàn toàn có thể nhận xét sự thay đổi liên tục các mức xám Ảnh màu: một ảnh màu thường được tạo thành từ nhiều pixel mà trong đó mỗi pixel được biểu diễn bởi ba giá trị tương ứng với các mức trong các kênh màu đỏ (Red), xanh lá (Green) và xanh dương (Blue) tại một vị trí cụ thể Các kênh màu Red, Green và Blue (trong không gian màu RGB) là những màu cơ bản mà từ đó có thể tạo ra các màu khác nhau bằng phương pháp pha trộn Với việc chuẩn hóa 256 (28) mức cho từng kênh màu chính, từ đó có thể thấy một pixel màu có thể biểu diễn được một trong
Ảnh có thể được phân loại theo số lượng màu sắc, với 3^7= 777216 màu khác nhau Đối với ảnh đen trắng, mỗi pixel chỉ cần 1 byte để lưu trữ, trong khi ảnh màu yêu cầu 3 bytes Ảnh nhị phân sử dụng một bit để biểu diễn một pixel, cho phép hai trạng thái là 0 và 1, tương ứng với màu đen và trắng, nhưng ít được sử dụng trong thực tế Ảnh chỉ số, ngược lại, là những ảnh màu hoặc đen trắng được tạo ra từ một bảng màu giới hạn, thường là 256 màu khác nhau, với mỗi pixel được chỉ định một chỉ số trong bảng màu đó.
Phát hiện cạnh Canny là một phương pháp hiệu quả trong việc phát hiện biên, cho phép xác định tất cả các điểm cạnh trong hình ảnh và tạo ra một bản đồ nhị phân Phương pháp này dựa vào gradient của hình ảnh để phát hiện những thay đổi mạnh về cường độ pixel, từ đó xác định các đường nét có khả năng là đường viền trong hình ảnh đầu vào Kết quả cuối cùng là một ảnh nhị phân thể hiện rõ ràng các đường nét của hình.
Thuật toán Canny tính toán các đạo hàm bậc một theo hướng x và y, sau đó kết hợp chúng thành bốn đạo hàm hướng Các điểm cực trị địa phương của các đạo hàm này sẽ được xem xét làm ứng viên cho việc xác định các cạnh Trong dự án này, phương pháp Canny được áp dụng để phát hiện ranh giới làn đường trong khung hình.
Phát hiện cạnh cơ bản thông qua vector gradient của hình ảnh cường độ là một phương pháp hiệu quả để nhận diện ranh giới làn đường với độ tương phản cao Đây là một trong những kỹ thuật hàng đầu trong lĩnh vực phát hiện biên.
Hình 2 2 Hình tách biên sử dụng Canny
Contour là đường cong nối các điểm liên tục có cùng màu hoặc cường độ, giúp phân tích hình dạng và nhận diện đối tượng Kỹ thuật contour tracking là một phương pháp tiền xử lý trong hình ảnh kỹ thuật số, cho phép trích xuất thông tin về hình dạng Khi contour của mẫu được xác định, các đặc điểm sẽ được kiểm tra và sử dụng làm tính năng cho phân loại mẫu Việc tính toán contour tracking không chỉ tạo ra các tính năng chính xác hơn mà còn nâng cao khả năng phân loại chính xác cho các mẫu cụ thể.
Biến đổi Hough là một kỹ thuật quan trọng trong phân tích hình ảnh, thị giác máy tính và xử lý hình ảnh kỹ thuật số, nhằm trích xuất các đặc trưng của đối tượng Kỹ thuật này giúp xác định các trường hợp không hoàn hảo của các hình dạng trong một lớp nhất định thông qua một quy trình chọn lọc Quy trình này diễn ra trong không gian tham số, trong đó đối tượng được chọn ra sẽ là cực đại cục bộ trong không gian tích lũy, được tính toán bởi thuật toán biến đổi Hough.
Trong phân tích tự động hình ảnh kỹ thuật số, việc nhận diện các hình dạng đơn giản như đường thẳng, hình tròn và hình elip thường gặp phải thách thức do sự không hoàn hảo của dữ liệu hình ảnh và máy dò cạnh Máy dò cạnh có thể giúp thu thập các điểm hình ảnh trên đường cong mong muốn, nhưng thường thiếu sót các điểm cần thiết và có độ lệch không gian giữa hình dạng lý tưởng và điểm cạnh nhiễu Do đó, việc nhóm các tính năng cạnh thành các hình dạng phù hợp không phải là điều đơn giản Biến đổi Hough được phát triển để giải quyết vấn đề này, cho phép nhóm các điểm cạnh thành các đối tượng hình học thông qua quy trình chọn lọc trên các đối tượng hình ảnh đã được tham số hóa.
Biến đổi Hough là phương pháp cơ bản nhất để phát hiện các đường thẳng, trong đó đường thẳng y = mx + b có thể được biểu diễn dưới dạng điểm (b, m) trong không gian tham số Tuy nhiên, các đường thẳng đứng gây ra vấn đề với giá trị tham số độ dốc m không giới hạn Để giải quyết vấn đề này, Duda và Hart đã đề xuất sử dụng dạng chuẩn Hesse.
Trong không gian Hough, khoảng cách r từ gốc tọa độ đến đường thẳng và góc theta giữa trục x với đường cao r được sử dụng để xác định các điểm tương ứng Mỗi đường thẳng trong hệ tọa độ sẽ đại diện cho một điểm trong không gian Hough, cho phép phân tích và nhận diện các đường thẳng một cách hiệu quả.
Hình 2 3 Ánh xạ đường thẳng từ không gian ảnh sang không gian Hough
MÁY HỌC (MACHINE LEARNING)
Trong những năm gần đây, Trí Tuệ Nhân Tạo (AI) và đặc biệt là Học Máy (Machine Learning) đã trở thành biểu tượng của cuộc cách mạng công nghiệp lần thứ tư, tiếp nối các giai đoạn trước như động cơ hơi nước, năng lượng điện và công nghệ thông tin AI đang thâm nhập vào mọi lĩnh vực trong cuộc sống mà chúng ta có thể không nhận ra, với những ứng dụng nổi bật như xe tự hành của Google và Tesla, hệ thống nhận diện khuôn mặt trên Facebook, trợ lý ảo Siri của Apple, và các hệ thống gợi ý sản phẩm của Amazon và phim của Netflix AlphaGo của Google DeepMind cũng là một ví dụ điển hình cho sự phát triển vượt bậc của AI và Machine Learning.
Machine Learning là một tập con của AI Theo định nghĩa của Wikipedia:
Machine learning, a subset of computer science, enables computers to learn from data without explicit programming In simple terms, it allows machines to autonomously acquire knowledge and improve their performance based on the information provided.
Machine learning đã trở thành một hiện tượng công nghệ toàn cầu trong những năm gần đây, với hàng ngàn bài báo khoa học được xuất bản mỗi năm Các công ty lớn như Google, Facebook và Microsoft, cùng với nhiều startup, đang đổ tiền đầu tư vào lĩnh vực này Sự phát triển của machine learning đã dẫn đến hàng loạt ứng dụng trong nhiều lĩnh vực, từ khoa học máy tính đến vật lý, hóa học, y học và chính trị AlphaGo, một cỗ máy đánh cờ vây với khả năng tính toán vượt trội, là một minh chứng rõ ràng cho sự ưu việt của machine learning so với các phương pháp truyền thống.
SVM là viết tắt của Support Vector Machine [10], đây là một thuật toán trong lĩnh vực machine learning nhằm giải quyết bài toán “binary classification” mà hai
Trong bài viết này, khái niệm "class" được hiểu là "linearly separable", cho thấy rằng có nhiều siêu mặt phẳng (hyperplane) có thể phân biệt hai "class" khác nhau Mỗi siêu mặt phẳng này tương ứng với một 'classifier' Khoảng cách gần nhất từ một điểm dữ liệu đến siêu mặt phẳng đó được gọi là biên của classifier.
SVM (Support Vector Machine) tìm kiếm mặt phân cách tối ưu với biên lớn nhất, đảm bảo dữ liệu được phân loại an toàn Bài toán tối ưu trong SVM thuộc loại lồi với hàm mục tiêu "strictly convex" và có nghiệm duy nhất Bài toán này được định hình dưới dạng "Quadratic Programming" (QP) Mặc dù có thể giải SVM trực tiếp từ bài toán tối ưu gốc, nhưng thường thì người ta chọn giải bài toán đối ngẫu, cũng là một QP, với nghiệm "sparse", giúp áp dụng các phương pháp giải hiệu quả hơn.
Còn với các bài toán mà dữ liệu là “linear separable” hoặc “nonlinear separable”, có những cải tiến khác của SVM thích nghi với dữ liệu đó.
HỌC SÂU (DEEP LEARNING)
CNN, hay mạng thần kinh tích chập, là một kiến trúc quan trọng trong học sâu Khác với các phương pháp lọc truyền thống yêu cầu tìm kiếm và xử lý thủ công, CNN tự động học các bộ lọc và đặc trưng, mang lại hiệu quả cao hơn trong quá trình huấn luyện.
CNNs sử dụng các phép toán tích chập để xử lý dữ liệu đầu vào, trong đó dữ liệu được nhân chập với bộ lọc Qua từng lớp sâu, các đặc trưng của dữ liệu trở nên phức tạp hơn Ngoài ra, CNNs còn được kết hợp với các lớp khác để nâng cao khả năng phân tích.
“pooling” và chúng thường có lớp “fully connected” ở cuối cùng được biểu diễn trong hình 2.6
Tất cả các mô hình CNN đều có kiến trúc tương tự, bao gồm một chuỗi các lớp mà đầu ra của lớp trước trở thành đầu vào của lớp sau Trong kiến trúc CNN, có ba loại lớp chính: lớp Convolution, lớp Pooling và lớp Fully Connected, tất cả đều được coi là lớp ẩn (Hidden Layer).
Hình 2 4 Kiến trúc mạng CNN [20]
2.4.2 Phân đoạn ảnh (Image Segmentation) [21]
Phân đoạn ảnh là một bước đột phá trong lĩnh vực thị giác máy tính, giúp chia nhỏ ảnh đầu vào thành các phân đoạn để đơn giản hóa quá trình phân tích hình ảnh Các phân đoạn này đại diện cho các đối tượng hoặc bộ phận của đối tượng, bao gồm pixel và siêu pixel Qua đó, phân đoạn hình ảnh tổ chức các pixel thành các phần lớn hơn, loại bỏ việc cần xem xét từng pixel một Có hai loại phân đoạn ảnh chính: phân đoạn ngữ nghĩa và phân đoạn cá thể.
Phân đoạn ngữ nghĩa (semantic segmentation): Phân loại các pixel của một hình ảnh thành các lớp đối tượng ý nghĩa
Phân đoạn cá thể (instance segmentation) là quá trình xác định từng cá thể của mỗi đối tượng trong hình ảnh Khác với phân đoạn ngữ nghĩa, phương pháp này không yêu cầu phân loại cho mỗi pixel đã được phân cụm.
Hình 2 5 Ví dụ minh họa về phân đoạn ngữ nghĩa
2.4.3 Bài toán phát hiện vật thể (Object Detection)
Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo là thị giác máy, bao gồm các phương pháp thu nhận và xử lý ảnh kỹ thuật số, phân tích và nhận dạng hình ảnh, cũng như phát hiện đối tượng và tạo ảnh Đặc biệt, phát hiện vật thể là khía cạnh thu hút nhất của thị giác máy tính nhờ vào tính ứng dụng cao trong thực tế.
Bài toán phát hiện vật thể liên quan đến khả năng của hệ thống máy tính và phần mềm trong việc xác định và định vị các đối tượng trong ảnh Công nghệ này đã được ứng dụng rộng rãi trong nhiều lĩnh vực như phát hiện khuôn mặt, nhận diện xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái Có nhiều phương pháp khác nhau để phát hiện đối tượng, cho thấy tính linh hoạt và tiềm năng của công nghệ này trong cuộc sống hàng ngày.
Sự bùng nổ của học sâu vào năm 2012 đã tạo nền tảng cho sự phát triển của các thuật toán và phương pháp phát hiện đối tượng hiện đại, đạt độ chính xác cao như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet, cùng với tốc độ xử lý nhanh chóng như SSD.
Có hàng triệu lập trình viên và nhà phát triển phần mềm đang tìm kiếm cách tích hợp công nghệ phát hiện vật thể để tạo ra những sản phẩm mới.
SSD viết tắc của Single Shot Multi-Box Detector [8], là một phương pháp trong lĩnh vực học sâu nhằm giải quyết bài toán phát hiện vật thể
Mô hình SSD (Single Shot Multibox Detector) sử dụng tọa độ "bounding box" và nhãn của vật thể để nhận diện Điểm nổi bật của SSD là việc áp dụng một mạng thần kinh duy nhất, cho phép nhận diện vật thể từ các "features map" có độ phân giải khác nhau Mô hình tạo ra lưới ô vuông gọi là "grid cells", mỗi ô xác định một tập hợp các "default boxes" để dự đoán vị trí vật thể Khi dự báo, mạng sẽ cung cấp hai giá trị: xác suất nhãn của vật thể trong bounding box và offsets của nó Quá trình huấn luyện nhằm tinh chỉnh xác suất nhãn và bounding box cho phù hợp với giá trị thực từ đầu vào của mô hình.
Mạng SSD được thiết kế với nhiều bản đồ đặc trưng có độ phân giải khác nhau, giúp phát hiện các vật thể với kích thước và hình dạng đa dạng Khác với mô hình fast R-CNN, SSD loại bỏ bước tạo mặt nạ "region proposal network", cho phép tất cả quá trình phát hiện và phân loại vật thể diễn ra trong cùng một mạng Tên gọi "Single Shot MultiBox Detector" phản ánh việc sử dụng nhiều khung hình box với tỷ lệ "scales" khác nhau, giúp nhận diện và phân loại vật thể hiệu quả Điều này không chỉ giảm thiểu thời gian xử lý mà còn đảm bảo độ chính xác cao.
Dưới đây là kiến trúc của mô hình:
Hình 2 6 Kiến trúc của SSD [8]
2.4.3.2 Một số kiến trúc mạng sườn (backbone network)
The "backbone" network is designed for feature extraction, utilizing deep learning architectures such as MobileNet, RFB, ResNet, and VGG-16 Specifically, the MobileNet architecture is a prominent example used in this context.
Hình 2 7 Ứng dụng của Mobilenet trên thiết bị thông minh [24]
Mạng mobilenet là một mạng đặc biệt hiệu quả dành cho điện thoại, các hệ thống nhúng so với các mạng thông thường như VGG-16, ResNet, …
Mobilenet được xây dựng trên kiến trúc "streamlined" và sử dụng các phép chập "depth-wise separable" để tạo ra một mạng thần kinh với số lượng trọng số tối thiểu Hai siêu tham số quan trọng trong Mobilenet là "latency" và "accuracy", đại diện cho hai khía cạnh đối lập Những siêu tham số này cho phép người dùng điều chỉnh kích thước mô hình cho từng ứng dụng, tùy thuộc vào mức độ phức tạp của vấn đề.
Mobilenet phiên bản 1 đã tạo nền tảng cho sự ra đời của Mobilenet phiên bản 2, với hiệu suất và sức mạnh vượt trội hơn Phiên bản nâng cấp này tiếp tục sử dụng các lớp chập "depth-wise separable", nhưng bổ sung hai cải tiến quan trọng trong kiến trúc: (1) các "linear bottlenecks" nằm giữa các lớp và (2) các "shortcut connections" kết nối giữa các bottlenecks.
Dưới đây là kiến trúc của mobilenet version 1 và 2
Hình 2 8 Kiến trúc mạng mobilenet version 1 [24]
Hình 2 9 Kiến trúc mạng Moblilenet version 2 [24] b) RFB [25]
RFB, viết tắt của Receptive Fields Block, là một mạng được phát triển dựa trên kiến trúc của Receptive Fields (RFs) trong hệ thống thị giác của con người Mạng này tận dụng mối quan hệ giữa kích thước và độ lệch tâm của RFs nhằm nâng cao khả năng phân biệt các đặc trưng.
GIẢI THUẬT ĐIỀU KHIỂN PID
PID, viết tắt của Proportional – Integral – Derivative, là một kỹ thuật điều chỉnh kết hợp giữa tỉ lệ, tích phân và vi phân nhằm giảm thiểu sai số, hạn chế giao động, tăng tốc độ đáp ứng và giảm độ vọt lố Kỹ thuật PID với hồi tiếp vòng kín được ứng dụng rộng rãi trong các hệ thống điện, tự động hóa và điện tử.
Một các đơn giản để hiểu PID:
P: là thông số điều chỉnh tỉ lệ, giúp tạo ra tín hiệu điều chỉnh tỉ lệ với sai lệch ban đầu vào theo thời gian lấy mẫu
Điều khiển tích phân là phương pháp điều chỉnh nhằm giảm độ sai lệch về 0 bằng cách tạo ra các tín hiệu điều chỉnh Nó cho phép xác định tổng sai số tức thời theo thời gian và sai số tích lũy trong quá khứ Khi thời gian lấy mẫu càng nhỏ, tác động của điều chỉnh tích phân càng mạnh, dẫn đến độ lệch giảm xuống mức tối thiểu.
D là vi phân của sai lệch, và điều khiển vi phân tạo ra tín hiệu điều chỉnh tỷ lệ với tốc độ thay đổi của sai lệch đầu vào Khi thời gian tăng, phạm vi điều chỉnh vi phân cũng mạnh mẽ hơn, giúp bộ điều chỉnh phản ứng nhanh chóng hơn với các thay đổi đầu vào.
GIỚI THIỆU VỀ PHẦN CỨNG
TỔNG QUAN PHẦN CỨNG
Hình 3 1 Tổng quan phần cứng
Tổng quan phần cứng được thể hiện hình 3.1 và chức năng từng phần:
Jetson TX2: Thu nhận dữ liệu từ các ngoại vi, xử lý và gửi tín hiệu cho cho phần hiển thị và phần điều khiển
Pin Lipo: Nguồn cấp cho Jetson TX2, động cơ và bộ điều tốc của xe
Nút nhấn, LCD: là phần tương tác giữa người dùng và chương trình điều khiển
Cảm biến tiệm cận (cảm biến khoảng cách): tín hiệu để ngắt mềm dừng hệ thống, mỗi khi xe sắp va chạm hoặc va chạm
MPU9250: Gửi dữ liệu về Jetson TX2 theo chuẩn I2C, để hệ thống có thông tin về hướng của xe
Tiếp theo sau đó nhóm sẽ chi tiết từng phần cứng có trên xe.
CHI TIẾT PHẦN CỨNG
3.2.1 Tổng quan về xe Traxxas Desert
Hình 3 2 Xe RC 1/7 Traxxas Desert
Lốp xe 134mm x 57mm BFGoodrich ® KR3 replicas
Chiều dài thanh chống sốc trước 134mm
Chiều dài thanh chống sốc sau 160mm
Khay đựng pin 181mm x 46mm x 56mm
Bánh xe đường kính kép 40mm x 56/81mm
- Mô hình mô phỏng đúng với xe thật
- Cơ cấu truyền động giống với xe thật, bao gồm 2 bộ vi sai sau và vi sai giữa
Thông số kỹ thuật Điện áp vào 4-6s LiPo (max: 25.2 volts)
Khối lượng 207g Điện áp BEC 6.0V
Dòng điện liên tục BEC 10A
- Sử dụng được pin lên đến 6s (25.2 Volts)
- Tốc độ lên đến 50+ mph (80 kmh)
- Có tính năng bảo vệ động cơ khi chạy trong điều kiện khắc nghiệt
- Điều khiển đơn giản, dễ dàng
- Điều khiển tốc độ cho động cơ chính của xe, băm xung cho servo bẻ lái
- Cấp nguồn cho động cơ từ pin
- Nhận xung điều khiển từ Jetson TX2 thông qua mạch Adapter
3.2.1.3 Động cơ không chổi than (brushless)
Hình 3 4 Động cơ không chổi than
Chiều dài 75.5mm Đường kính 41.8mm
Công dụng: Là cơ cấu chuyển động chính của xe
3.2.2 Các thiết bị trên xe
3.2.2.1 Bộ điều khiển trung tâm
Hình 3 5 Bộ xử lý trung tâm NVIDIA Jetson TX2
GPU 256-core NVIDIA Pascal™ GPU
CPU Dual-Core NVIDIA Denver 1.5 64-Bit CPU and Quad-Core
ARM® Cortex®-A57 MPCore processor Memory 8 GB 128-bit LPDDR4 59.7GB/s
CSI Camera Up to 6 cameras (12 via virtual channels)
12 lanes MIPI CSI-2 D-PHY 1.2 (up to 30 Gbps) C-PHY 1.1 (up to 41Gbps) Video encoder 1x 4Kp60
8x 1080p30 (H.265) 1x 4Kp60 3x 4Kp30 7x 1080p60 14x 1080p30 (H.264) Video decoder 2x 4Kp60
4x 4Kp30 7x 1080p60 14x 1080p30 (H.265 & H.264) Display 2 multi-mode DP 1.2/eDP 1.4/HDMI 2.0
2 x4 DSI (1.5Gbps/lane) Networking 10/100/1000 BASE-T Ethernet, WLAN
Bộ xử lý trung tâm mạnh mẽ này được thiết kế để chạy các ứng dụng học sâu và trí tuệ nhân tạo, đồng thời đảm nhiệm việc thu nhận dữ liệu và gửi xung điều khiển.
Hình 3 6 Cảm biến khoảng cách
Thông số kỹ thuật Điện Áp 5VDC
Nhiệt Độ -25 - 55 Độ C Đường Kính 17mm
+ Dây Mầu Xanh Dương : GND
Dây màu đen thường được sử dụng cho tín hiệu NPN mở, do đó cần lắp thêm một điện trở kéo lên nguồn khoảng Rk Tín hiệu ra sẽ tương ứng với điện áp cấp nuôi cho cảm biến.
Thiết bị này được đặt ở đầu xe để gửi tín hiệu True-False về khoảng cách đến bộ xử lý Nó hoạt động như một thiết bị ngắt mềm an toàn, giúp dừng xe mỗi khi phát hiện sắp va chạm hoặc va chạm với vật thể.
3.2.2.3 Cảm biến gia tốc 9 trục MPU9250
Hình 3 7 Cảm biến gia tốc
Thông số kỹ thuật Điện áp sử dụng 3~5VDC Điện áp giao tiếp 3~5VDC
Kích thước 15 x 25mm, khoảng cách chân 2.54mm
Three 16-bit analog-to-digital converters (ADCs) for digitizing the gyroscope outputs
Three 16-bit ADCs for digitizing the accelerometer outputs
Three 16-bit ADCs for digitizing the magnetometer outputs
Gyroscope full-scale range of ±250, ±500, ±1000, and ±2000°/sec (dps)
Accelerometer full-scale range of ±2g, ±4g, ±8g, and ±16g
Magnetometer full-scale range of ±4800μT
Công dụng: các dữ liệu được gửi đến bộ xử lý trung tâm, để đo đạc và tính toán các thông số như góc nghiêng, hướng
Dung lượng định mức 5200mAh Điện áp định mức 11.1V
Kích thước 27.7mm x 44mm x 128mm
Công dụng: nguồn cấp cho cả hệ thống với dòng xả cao, dòng điện xả của pin tối đa có thể lên đến 260A
Kích thước 165mm x 30mm x 40mm
Hệ điều hành tương thích Android/ Linux/Windows 7/8/10
SDK Astra SDK or OpenNI
Công dụng: thu thập dữ liệu ảnh RGB và ảnh Depth cho bộ xử lý, để chạy các ứng dụng
Computer vision và tính khoảng cách tới vật
3.2.3 Tổng quang về mạch adapter CDS TX2
Hình 3 10 Mạch chuyển đổi CDD
Adapter CDS có nhiệm vụ là cầu nối giữa bộ điều khiển trung tâm với các thiết bị ngoại vi
- Điều khiển xung động cơ cho ESC của xe Traxxas Desert
- Header cho GPIO của mạch
- Module thời gian thực RTC
+Sơ đồ kết nối mạch adapter với các thiết bị ngoại vi:
Hình 3 11 Sơ đồ kết nối mạch chuyển đổi với thiết bị ngoại vi
Một số hình ảnh của phần cứng đặt trên xe:
Hình 3 12 Mô hình xe thực tế
Hình 3 13 NVIDIA Jetson TX2 gắn mạch chuyển đổi và các kết nối
THIẾT KẾ PHẦN MỀM
XỬ LÝ ON-ROAD
Hình 4 2 Tổng quan qui trình xử lý On-road
Quá trình xử lý hình ảnh được mô tả trong hình 4.2 bao gồm hai tác vụ chính: xử lý ảnh RGB và xử lý ảnh Depth Trong bước xử lý RGB, nhóm nghiên cứu sử dụng kết hợp giữa phương pháp xử lý ảnh truyền thống và học sâu để nhận diện làn đường Sau khi phát hiện làn đường, thông tin chiều sâu trong bước xử lý Depth sẽ được sử dụng để loại bỏ những thông tin không cần thiết ở phía xa và phát hiện các vật cản trên đường Mục tiêu của nhóm là xác định cả làn đường và chướng ngại vật nhằm xác định vùng có thể lái được Chi tiết về từng phần sẽ được trình bày trong các mục tiếp theo.
Trong hệ thống được đề xuất, nhóm nghiên cứu đã kết hợp phương pháp học sâu với xử lý ảnh truyền thống nhằm nâng cao hiệu suất và giảm thiểu thời gian tính toán.
4.1.1.1 Phân đoạn làn đường dựa trên học sâu (deep learning-based lane segmentation) Đầu tiên, nhóm đề xuất sử dụng kiến trúc mạng LiteSeg [29], một mạng nhẹ phù hợp để chạy trong các tình huống thời gian thực, và để trích xuất phân đoạn làn đường thô Đầu vào của mạng là hình ảnh được chụp lại từ camera và đầu ra là các phân đoạn làn đường Bên cạnh đó để giảm thiểu số lượng trọng số và kích thước của mô hình nhằm tăng tốc độ tính toán, mạng MobilenetV2 [24] với cấu trúc depth-wise và residual được lựa chọn như là một backbone Để giải quyết thách thức về thông tin đa tỷ lệ (multi-scale information), mạng đề xuất đã được nhúng thêm module Atrous Spatial Pyramid Pooling (ASPP) giống với phương pháp [30] với nhiều tỷ lệ dilation khác nhau Bằng cách kết hợp và tái sử dụng các đặc trưng low-level và high-level bằng các residual connection, việc phân đoạn các ảnh với độ phân giải cao tốt hơn Đồng thời để tăng khả năng học đa tỷ lệ với module được thêm
Hình 4 1 Kiến trúc mạng đề xuất cho xử lý On-road
37 vào, nhóm đã train mạng với nhiều kích thước ảnh đầu vào khác nhau Kiến trúc mạng đề xuất được thể hiện ở hình 4.3
4.1.1.2 Phát hiện làn đường dựa vào phép biến đổi Hough (Hough transform-based lane detection)
Hình 4 2 Phương pháp phát hiện làn đường
Mạng LiteSeg với backbone MobileNetV2 không đủ mạnh để suy luận chính xác các thành phần làn đường trong ảnh, dẫn đến kết quả có nhiều nhiễu và các đoạn bị đứt Để khắc phục vấn đề này, nhóm nghiên cứu đề xuất phương pháp phát hiện làn đường dựa vào phép biến đổi Hough, trong đó miền ảnh được chuyển sang miền Hough và mỗi thành phần làn đường được xác định như một điểm Hough.
Dựa vào khoảng cách giữa các điểm Hough, ta có thể xác định các cụm trong miền Hough, với mỗi cụm đại diện cho phân đoạn của một làn đường Để xử lý hàng nghìn điểm Hough mà không tốn quá nhiều thời gian, nhóm nghiên cứu đã đề xuất một phương pháp phân cụm nhanh hơn Cụ thể, mỗi điểm (rho, theta) sẽ được mở rộng bằng cách vẽ hình tròn trên ảnh nhị phân với tâm tại (rho, theta) và bán kính cố định Qua việc tìm đường viền của các thành phần đã được kết nối, các cụm sẽ được phân loại rõ ràng Những cụm quá nhỏ sẽ bị loại bỏ như thành phần nhiễu, trong khi các cụm còn lại sẽ được xác định là làn đường và được chuyển đổi ngược lại sang miền ảnh để phục vụ cho việc hoàn thiện các làn đường cong.
Hình 4 3 Xác định cụm dựa trên miền Hough
4.1.1.3 Xử lý đường cong (Curve fitting) Để xử lý các làn đường cong, nhóm lập mô hình cho làn đường bằng cách sử dụng phương trình bậc 2 như phương trình (9) Những phân đoạn làn đường thu được từ bước trước đó được sử dụng để tìm thông số cho các mô hình làn đường sử dụng phương pháp
Từ hai làn đường ngoài cùng, vùng quan tâm (ROI) có thể được xác định và chuyển đến tác vụ "xử lý ảnh Depth" để thực hiện các bước xử lý tiếp theo.
𝑦 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐, (9) Với (x, y) là tọa độ điểm ảnh của lane cần tìm; a, b, c là hệ số thu được từ Polynomial curve fitting
4.1.2.1 Lọc nền dựa vào ngưỡng
Để giảm nhiễu từ nền phức tạp trong hệ thống ADAS, nhóm nghiên cứu đã sử dụng ảnh Depth nhằm lọc bỏ nền không cần thiết Chỉ những đối tượng ở khoảng cách cố định phía trước xe được xem xét, trong khi những đối tượng quá xa sẽ bị loại bỏ Hình ảnh chiều sâu được chuyển đổi thành ảnh xám 8 bit, sau đó thông tin quá xa camera được lọc bằng ngưỡng cố định Cuối cùng, thông tin bên ngoài đường cũng được loại bỏ dựa trên thông tin ROI đã xác định trong tác vụ RGB trước đó.
4.1.2.2 Phát hiện vật cản và phân đoạn đường có thể đi được
Dựa vào kết quả từ bước lọc nền, vật cản trên đường được phát hiện để xác định đoạn đường khả thi Như hình 4.7 minh họa, nhóm chia vùng ROI thành hai phân đoạn, tương ứng với hai làn đường, tùy thuộc vào số lượng làn đường Hai ô cửa sổ sẽ được tạo ra và di chuyển dọc theo các phân đoạn này để đánh giá sự hiện diện của chướng ngại vật.
40 ngại vật trên đường tương ứng Các vật cản sẽ được xác định nếu tổng số điểm ảnh khác không trong ô cửa sổ vượt quá ngưỡng cho trước
Hình 4 5 Sơ đồ chi tiết thuật toán phát hiện vật cản
Khi xác định chướng ngại vật, chúng ta trích xuất các bounding box và vị trí của chúng Bằng cách loại bỏ khu vực có chướng ngại ra khỏi lộ trình, chúng ta có thể xác định được khu vực an toàn để lái xe.
XỬ LÝ OFF-ROAD
Hình 4 6 Sơ đồ phương pháp nhận diện biển báo
Phần xử lý off-road được mô tả trong hình 4.8 với hai nhiệm vụ chính là xác định vị trí và phân loại biển báo Theo bảng 1, phương pháp SSD đã chứng minh tính hiệu quả trong việc giải quyết nhiệm vụ xác định vị trí Do đó, nhóm nghiên cứu đã cải tiến bằng cách sử dụng kiến trúc tương tự SSD (hình 4.9) để phát hiện biển báo Để giảm kích thước mô hình, nhóm đã áp dụng kiến trúc mobilenet_v1 làm mạng backbone và thêm lớp RFB để cải thiện khả năng phát hiện vật thể nhỏ, đồng thời loại bỏ một số lớp ngoài cùng Sau khi thực hiện cải tiến, mô hình mới chỉ còn 1.14MB, giảm đáng kể so với kích thước 20MB của SSD truyền thống.
Hình 4 7 Kiến trúc thuật toán phát hiện vị trí biển báo
Sau khi xác định vị trí, khung ảnh chứa biển báo sẽ được tách ra để tiến hành nhận diện Như bảng 1.1 đã chỉ ra, SVM là một bộ phân loại nhẹ, có khả năng xử lý công việc này và đáp ứng yêu cầu thời gian thực Do đó, nhóm nghiên cứu đã chọn SVM để phân loại các biển báo Tuy nhiên, cần lưu ý rằng SVM chỉ là một bộ phân loại đơn giản.
Trong nghiên cứu này, nhóm đã sử dụng phương pháp HOG để trích xuất đặc trưng từ dữ liệu, nhằm đảm bảo rằng các đặc trưng này đáp ứng các yêu cầu đề ra Để kiểm tra tính hiệu quả của việc trích xuất, nhóm đã áp dụng t-SNE để chiếu các đặc trưng lên không gian hai chiều, cho thấy các phân lớp được phân cụm rõ ràng với các màu sắc khác nhau Nhờ vào sự phân cụm rõ ràng này, việc sử dụng bộ phân loại đơn giản như SVM để xác định loại biển báo trở nên khả thi và hiệu quả.
Hình 4 8 Đặc trưng HOG được biểu diễn bằng t-SNE
4.2.2 Hàm mất mát (loss function)
Trong quá trình huấn luyện mạng để xác định vị trí biển báo, nhóm nghiên cứu áp dụng hàm mất mát của phương pháp SSD Chỉ số 𝑥 𝑖𝑗 𝑘 = {1,0} được sử dụng để khớp box mặc định thứ i với box thực tế thứ j của phân lớp k Biến l đại diện cho box dự đoán, c là chỉ số "class confidence", và N là tổng số boxes mặc định đã kết nối Hàm mất mát được xác định theo công thức cụ thể.
Một bounding box được xác định bởi 4 tham số: vị trí trung tâm (cx, cy), độ rộng (w) và độ cao (h) Hàm mất mát của vị trí, được gọi là L loc, được thể hiện qua phương trình (11).
Hàm tin cậy (the confidence loss) L conf được cho trong phương trình (16)
Nhóm nghiên cứu đã áp dụng hàm mất mát của SVM tuyến tính trong công việc (2), đồng thời bổ sung thành phần L2 để giảm thiểu hiện tượng overfitting, như được thể hiện trong phương trình 8 Đầu ra của hàm được tính bằng 𝜃 𝑇 𝑥, với C là một hằng số cố định.
Trong công thức 2∑ 𝑛 𝑗=1 𝜃 𝑗 2, 𝜃 đại diện cho trọng số của mô hình, trong khi x và y lần lượt là đặc trưng HOG đầu vào và nhãn tương ứng Hệ số C được chọn là 0.005 nhằm cân bằng các thành phần trong hàm mất mát.
ĐIỀU KHIỂN
Sau khi đạt được các kết quả cần thiết, nhóm sẽ triển khai một thuật toán để gửi tín hiệu điều khiển cho xe, đồng thời tổng kết độ ưu tiên của từng phần nhằm tránh xung đột giữa các tác vụ Các phần này bao gồm tín hiệu điều khiển từ giải thuật nhận diện làn đường, phát hiện vật thể, khu vực lái xe an toàn và phát hiện loại biển báo Để xuất tín hiệu góc lái, hệ thống cần xác định điểm thực tế của xe mô hình và điểm cần bám, mà nhóm đã chọn là điểm chính giữa của làn đường Kết quả từ giải thuật phát hiện làn đường sẽ được chuyển đổi thành các phương trình bậc hai trên miền tọa độ ảnh, từ đó xác định điểm C(x,y) theo công thức đã được đề cập.
Trong hình 4.11, A và B là hai giao điểm của đường thẳng (d1) cố định với hai phương trình bậc hai được chọn Nếu có hơn hai phương trình bậc hai (tương ứng với 2 làn đường), chúng tôi sẽ ưu tiên chọn hai phương trình bên phải có cùng tọa độ.
Kết hợp PID: Sau khi có được điểm cần bám C so với vị trí thực tế của xe là điểm
Khi tính sai số với công thức (20) cho C’ (𝑥 𝐶′ = 𝑀, trong đó M là một nửa kích thước chiều ngang khung hình), xe sẽ sử dụng kỹ thuật PID để trích xuất góc lái 𝛼 theo công thức (21) Thuật toán này được mô tả chi tiết trong hình 4.11.
Hệ số 𝐾 𝑃, 𝐾 𝐷, và 𝐾 𝐼 được chọn lần lượt là 0.45, 0.02, và 0.05, trong khi khoảng thời gian ∆𝑡 được xem xét trong 3 khung hình (bao gồm 1 khung hình hiện tại và 2 khung hình trước đó) Nhằm tránh sai số cộng dồn, nhóm nghiên cứu sử dụng 𝐾 𝐼, và các giá trị của hệ số 𝐾 𝑃, 𝐾 𝐷, 𝐾 𝐼 đã được điều chỉnh qua nhiều lần thử nghiệm.
Hình 4 9 Áp dụng kỹ thuật PID chạy bám làn đường
Khi gặp chướng ngại vật, hệ thống sẽ đánh giá độ rộng M của khu vực lái xe Tại khung hình thứ t, nếu M đủ rộng, hệ thống sẽ chuyển từ điểm C(x,y) cũ sang điểm C1(x+N,y), trong đó N là khoảng cách an toàn giữa xe và chướng ngại vật Khi xe vượt qua chướng ngại vật ở khung hình thứ t+n, điểm C1 sẽ trở thành điểm chính giữa của khu vực lái xe, như thể hiện trong hình 4.12.
Hình 4 11 Lưu đồ giải thuật điều khiển
Hệ thống điều khiển được tổng kết qua lưu đồ giải thuật ở hình 4.13, trong đó độ ưu tiên của các tín hiệu điều khiển được sắp xếp theo thứ tự: khu vực có thể di chuyển, biển báo trên khung hình, né chướng ngại vật và bám làn đường.
KẾT QUẢ THỰC HIỆN, SO SÁNH VÀ ĐÁNH GIÁ
THỰC NGHIỆM
5.1.1 Môi trường thực nghiệm Để tránh các rủi ro khi chạy xe ngoài đời thực nhóm trước tiên thử trên môi trường ảo UNITY, sau đó đổ thuật toán lên xe mô hình và chạy trên sa hình thu nhỏ Chính vì thế sẽ có hai môi trường thực nghiệm môi trường ảo như hình 5 1 và môi trường thực tế trên sa hình thu nhỏ ở hình 5 2
Hình 5 1 Môi trường ảo dùng phần mềm UNITY
Hình 5 2 Môi trường thực tế tự tạo
Trong phần on-road, nhóm thực hiện đánh giá hiệu suất của hệ thống thông qua hai tác vụ chính: phát hiện làn đường và phát hiện trở ngại Để thực hiện điều này, nhóm đã chọn bộ dữ liệu CamVid, bao gồm 4000 hình ảnh.
Nhóm nghiên cứu đã sử dụng 50 tấm ảnh huấn luyện và 826 tấm ảnh kiểm tra để đánh giá mô hình phát hiện làn đường Bên cạnh đó, họ cũng thu thập một bộ dữ liệu riêng từ môi trường tự tạo bằng cách sử dụng camera Kinect gắn trên xe RC, bao gồm 500 tấm ảnh được dán nhãn trong những trường hợp thử thách nhằm đánh giá thuật toán phát hiện chướng ngại Ví dụ về bộ dữ liệu tự thu thập được thể hiện ở hình 5.3.
Hình 5 3 Ảnh thu được từ camera
Đối với việc nghiên cứu off-road, nhóm đã gắn nhãn 500 ảnh thu thập từ camera trên mô hình của họ Để mở rộng bộ dữ liệu, sau khi xác định vùng quan tâm của biển báo (ROI) trong ảnh, nhóm đã áp dụng các phương pháp làm giàu dữ liệu như thay đổi độ sáng, thêm bóng và thêm nhiễu Kết quả là nhóm đã tạo ra 10,000 ảnh mới bằng cách ghép ngẫu nhiên với các ảnh ban đầu, bao gồm 5 loại biển báo giao thông.
Hình 5 4 Các loại biển báo giao thông
KỸ THUẬT HUẤN LUYỆN MẠNG VÀ THIẾT LẬP THÔNG SỐ
5.2.1 Xử lý On-road Để tăng tốc độ huấn luyện mạng, mạng backbone được khởi tạo trọng số với mô hình mạng MobilenetV2 đã được huấn luyện trước với các tập dữ liệu lớn (pretrained model) Như đã chú thích ở trên, nhóm huấn luyện mạng với nhiều kích cỡ ảnh Nhóm làm giàu dữ liệu bằng cách thay đổi kích cỡ ảnh đầu vào với 4 kích cỡ khác nhau: 512x1024, 768x1536, 360x640, 720x1280 Nhóm sử dụng Adam solver [36] để tối ưu hóa hàm softmax với hệ số suy giảm 4 × 10 −5 và tốc độ học được khởi tạo là 10 −7 Tốc độ học giảm mỗi 5 epochs, mỗi epoch tốc độ học sẽ được tính như phương trình (13) Nhóm huấn luyện mạng trong 200 epoch với batch size là 4
Trong quá trình huấn luyện mô hình xác định vị trí biển báo, nhóm nghiên cứu đã áp dụng nhiều kỹ thuật xử lý ảnh như biến dạng trắc quang (bao gồm độ sáng ngẫu nhiên, độ tương phản, độ bão hòa và nhiễu sáng) và biến dạng hình học (cắt tỉ lệ ngẫu nhiên, đảo ảnh) Các ảnh sau khi xử lý được điều chỉnh kích thước về 320x240 pixels Đối với việc phân loại biển báo, các ảnh đã được tách ra sẽ được lưu dưới định dạng png và thay đổi kích thước thành 20x20 pixels.
KẾT QUẢ
Kết quả từ môi trường mô phỏng, như thể hiện trong hình 5.5 và hình 5.6, cho thấy thuật toán phân đoạn hoạt động hiệu quả mà không bị ảnh hưởng bởi bóng cây và tuyết bên lề đường.
Hình 5 5 Kết quả trong môi trường mô phỏng (1)
Hình 5 6 Kết quả trong môi trường mô phỏng (2)
Kết quả của thuật toán phân đoạn làn đường trên bộ dữ liệu CamVid và dữ liệu tự thu thập của nhóm được trình bày trong hình 5.7 và 5.8 Mặc dù chỉ được huấn luyện trên CamVid, thuật toán vẫn cho kết quả khả quan khi áp dụng trên dữ liệu tự thu thập, cho thấy khả năng thích nghi tốt với môi trường mới.
Nhóm nghiên cứu đã thu được kết quả khả quan từ phương pháp kết hợp giữa xử lý ảnh truyền thống và học sâu trên bộ dữ liệu tự thu thập Hình 5.9-5.12 cho thấy thuật toán có khả năng nhận diện làn đường cong với tốc độ cao.
Hình 5 7 Kết quả trong môi trường thực tế ngoài cuộc sống (dữ liệu lấy ra từ video)
Hình 5.8 Kết quả trong môi trường thực tế (Ảnh lấy từ mô hình xe)
Hình 5.9 Kết quả nhận diện làn đường (1)
Hình 5.10 Kết quả nhận diện làn đường (2)
Hình 5.11 Kết quả nhận diện làn đường (3)
Hình 5.12 Kết quả nhận diện làn đường (4)
SO SÁNH VÀ ĐÁNH GIÁ
5.4.1 Các phương pháp đánh giá kết quả
IoU (Intersection over Union) là chỉ số đo lường tỷ lệ phần trăm trùng lặp giữa mặt nạ được gán nhãn và kết quả dự đoán Nó được tính bằng công thức: IoU = A / (A + B), trong đó A là tổng số điểm ảnh của mặt nạ gán nhãn và B là tổng số điểm ảnh của mặt nạ dự đoán Chỉ số này thường được sử dụng để đánh giá độ chính xác của các mô hình trong lĩnh vực thị giác máy tính.
5.4.1.2 FLOPs Để đánh giá tốc độ của mô hình, nhóm đếm xem có bao nhiêu tính toán trong đó, được gọi là FLOPs – floating point operations per second
5.4.1.3 Độ chính xác điểm ảnh Để đánh giá độ chính xác của mỗi phân lớp (class) nhóm sử dụng công thức (15)
TP (true positive) là điểm ảnh được dự đoán đúng trong phân loại đã cho, trong khi TN (true negative) là điểm ảnh được dự đoán đúng nhưng không thuộc phân loại đó FP (false positive) đại diện cho điểm ảnh được dự đoán sai nhưng lại thuộc phân loại đã cho, và FN (false negative) là điểm ảnh không thuộc phân loại đã cho nhưng lại bị dự đoán sai.
5.4.1.4 Mà trận tương quan (Confusion matrix) cho nhiều lớp
Ma trận nhầm lẫn (confusion matrix) cơ bản thể hiện số lượng điểm dữ liệu thực sự thuộc về một lớp và số điểm được dự đoán rơi vào lớp đó Để minh họa rõ hơn, hãy tham khảo bảng dưới đây.
Hình 5 13 Ví dụ cho ma trận tương quan
Có tổng cộng 10 điểm dữ liệu Chúng ta xét ma trận tạo bởi các giá trị tại vùng 3x3 trung tâm của bảng
Ma trận confusion matrix là một ma trận vuông với kích thước tương ứng với số lượng lớp dữ liệu Giá trị tại hàng i, cột j phản ánh số lượng điểm thực sự thuộc lớp i nhưng được dự đoán thuộc lớp j Ví dụ, trong hàng đầu tiên (lớp 0), trong bốn điểm thuộc lớp 0, chỉ có hai điểm được phân loại đúng, trong khi hai điểm còn lại bị phân loại nhầm vào lớp 1 và lớp 2.
5.4.1.5 Tỉ lệ báo động nhầm, tỉ lệ bỏ sót (FPR và FNR)
FPR và FNR được xác định dựa trên bốn yếu tố chính: số lần phát hiện chính xác (TP), số lần phát hiện không chính xác (FP), số lần phát hiện không phải là loại cần quan tâm chính xác (TN) và số lần phát hiện không chính xác (FN) Trong đó, TP và FP thể hiện khả năng phát hiện biển báo đúng và sai của từng loại biển báo, trong khi TN và FN phản ánh độ chính xác trong việc nhận diện biển báo không liên quan Công thức tính FPR và FNR được trình bày dưới đây.
5.4.2 Kết quả On-road Để đánh giá hiệu suất của phát hiện làn đường, nhóm sử dụng các chỉ số: mean intersection over union (mean IU), mean accuracy (ACC), giga floating point operations (GFLOPs), và frames per second (FPS)
Bảng 5.1 trình bày hiệu suất của mô hình với các kích thước đầu vào khác nhau từ bộ dữ liệu CamVid, cho thấy hiệu quả tốt nhất với kích thước 720x1280 và 360x640 Mặc dù kích thước 720x1280 mang lại hiệu suất cao hơn một chút, nhưng tốc độ xử lý lại giảm 4 lần so với kích thước 360x640, như thể hiện trong bảng 5.2 Thêm vào đó, bảng 5.1 cũng so sánh hiệu suất của mô hình được huấn luyện với multi-scale (MS) và không có Kết quả cho thấy huấn luyện với MS cải thiện hiệu suất khoảng 1% trên Mean IU và từ 1% đến 2% trên Mean ACC.
Nhóm nghiên cứu đã tiến hành so sánh phương pháp đề xuất với mạng SkipNet, một mạng nhẹ dùng cho phân đoạn làn đường, dựa trên bộ dữ liệu CamVid Kết quả cho thấy phương pháp đề xuất có hiệu suất vượt trội hơn SkipNet, đồng thời tốc độ tính toán cũng thấp hơn đáng kể.
Bảng 5 1 HIỆU SUẤT QUÁ TRÌNH PHÂN ĐOẠN
Input size MS Mean IU, % Mean ACC, %
Để đánh giá mô hình phát hiện chướng ngại vật, nhóm nghiên cứu đã sử dụng tỷ lệ dương tính thật (TPR) và tỷ lệ dương tính giả (FPR), như thể hiện trong bảng 5.4 Kết quả cho thấy thuật toán phát hiện chướng ngại vật của chúng tôi hoạt động hiệu quả ở khoảng cách dưới 6 mét.
Bảng 5 2 SỐ PHẦN TỬ ĐIỂM NỔI VÀ TỐC ĐỘ FPS
Bảng 5 3 BẢNG SO SÁNH GIỮA MÔ-ĐUN CẢI TIẾN VỚI SKIPNET
Bảng 5 4 HIỆU SUÂT CỦA PHÁT HIỆN LÀN ĐƯỜNG VỚI NHỮNG KHOẢNG CÁCH
Distance from camera to obstacle, meter TPR, % FPR, %
Hình 5 14 Kết quả phân loại Để đánh giá độ chính xác của phương pháp được đề xuất, nhóm dựa vào (1) FPR và FNR với (2) ma trận tương quan
Hệ thống của chúng tôi hoạt động trong thời gian thực với tốc độ đáp ứng từ 22 đến 23 khung hình mỗi giây (fps) Nhóm đã thu thập dữ liệu từ môi trường thực tế qua 5 lần thử nghiệm để đánh giá hiệu suất, với FPR và FNR của phần nhận diện biển báo được trình bày trong bảng 5.6 và hình 5.14 Kết quả cho thấy phương pháp đề xuất đạt hiệu suất cao với độ chính xác trung bình lên đến 99,78%, ngay cả khi điều kiện ánh sáng thay đổi (như thể hiện ở hình 5.15) Tuy nhiên, hệ thống hiện tại chỉ xử lý 5 loại biển báo giao thông phổ biến, do đó cần mở rộng thêm nhiều loại biển báo khác để phát triển hơn trong thực tế.
Hình 5 15 (a) Kết quả trong điều kiện ánh sáng thấp (b) Kết quả trong điều kiện ánh sáng cao
Bảng 5 5 FPS CỦA MỖI CÔNG VIỆC TRONG OFF-ROAD
Identifying the location of the considered objects 25 fps
Bảng 5 6 ĐÁNH GIÁ KẾT QUẢ PHÁT HIỆN BIỂN BÁO TRONG CÁC LAANFN CHẠY