Bối cảnh và vấn đề nghiên cứu

Trước thực trạng giao thông phức tạp tại Việt Nam, nhu cầu trang bị các tính năng an toàn trên ô tô nhằm hỗ trợ người lái và giảm thiểu tai nạn giao thông là vấn đề cấp thiết. Trải qua gần 70 năm kể từ khi dây đai an toàn ra đời, ngành công nghiệp ô tô đã liên tục phát triển các hệ thống an toàn chủ động như hệ thống ổn định thân xe điện tử (ESP), hệ thống kiểm soát lực kéo (TCS), hệ thống hỗ trợ đỗ xe (PAS), cảnh báo điểm mù và cảnh báo chệch làn đường (LDWS). Trong đó, hệ thống cảnh báo va chạm sớm (Pre-Collision System - PCS) đóng vai trò then chốt trong việc theo dõi chướng ngại vật phía trước và gửi cảnh báo sớm hoặc kích hoạt phanh tự động khẩn cấp (AEB) để bảo vệ người ngồi trong xe cũng như người đi đường.

Đồ án tốt nghiệp "Nghiên cứu thiết kế và chế tạo hệ thống cảnh báo va chạm sớm trên xe" do sinh viên Nguyễn Thanh Nhàn và Lương Thành Long thực hiện dưới sự hướng dẫn của ThS. Nguyễn Thành Tuyên tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (Khoa Đào tạo Chất lượng cao, ngành Công nghệ Kỹ thuật Ô tô) tập trung vào việc nghiên cứu, làm chủ công nghệ xử lý ảnh và học sâu để chế tạo một hệ thống cảnh báo va chạm có chi phí thấp, phù hợp ứng dụng thực tế.

Nhiệm vụ nghiên cứu của đề tài được xác định gồm 5 nội dung chính:

  1. Khảo sát, phân tích các đề tài, công trình nghiên cứu liên quan trong và ngoài nước.
  2. Tìm hiểu và nghiên cứu lĩnh vực thị giác máy tính và kỹ thuật xử lý ảnh.
  3. Nghiên cứu hệ thống phát hiện và cảnh báo chướng ngại vật.
  4. Xây dựng thuật toán, thiết kế hệ thống và lắp đặt thử nghiệm lên phương tiện.
  5. Kết luận, đánh giá ưu khuyết điểm của hệ thống và đề xuất giải pháp cải thiện.

Đối tượng nghiên cứu:

  • Hệ thống nhận diện và cảnh báo va chạm sớm cho ô tô.
  • Các mô hình xử lý ảnh và học sâu: Mạng nơ-ron tích chập (CNN), SSD (Single Shot MultiBox Detector), YOLO (You Only Look Once), SSD-MobileNet v2.
  • Phần cứng máy tính nhúng: Bo mạch Nvidia Jetson Nano Developer Kit B01, mô đun camera Raspberry Pi v2, mô đun nguồn UPS, màn hình LCD 7 inch và loa cảnh báo.
  • Phương pháp lắp đặt và vận hành hệ thống trên xe thực tế.

Phạm vi nghiên cứu:

  • Không gian: Nghiên cứu, chế tạo và thử nghiệm thực tế tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh trên mô hình xe tự chế và ô tô Toyota Vios đời 2009.
  • Thời gian: Đề tài thực hiện từ ngày 21/02/2022 đến ngày 10/07/2022.

Cơ sở lý thuyết và phương pháp

Nghiên cứu xây dựng trên nền tảng lý thuyết thị giác máy tính (Computer Vision) và học sâu (Deep Learning) phục vụ bài toán nhận dạng đối tượng:

  • Cơ sở xử lý ảnh: Áp dụng quy trình chuẩn bao gồm thu nhận ảnh (Image Acquisition) qua cảm biến camera, tiền xử lý (lọc nhiễu, cân bằng tương phản), phân đoạn ảnh (Segmentation), trích chọn đặc trưng (Feature Extraction) và nhận dạng/nội suy ảnh (Image Recognition and Interpretation).
  • Mạng nơ-ron tích chập (CNN): Sử dụng cấu trúc mạng gồm các tầng tích chập (Convolutional Layer) với bộ lọc kích thước lẻ (3x3, 5x5) để trích xuất đặc trưng không gian (Receptive Field, Feature Map), tầng gộp (Pooling Layer - Max Pooling kích thước 2x2, bước nhảy 2) để giảm chiều dữ liệu và chống quá khớp (overfitting), cùng tầng kết nối đầy đủ (Fully-Connected Layer) kết hợp hàm kích hoạt Softmax để phân loại đối tượng.
  • Mô hình phát hiện đối tượng Single Shot MultiBox Detector (SSD): Phân tích cơ chế phát hiện vật thể không qua bước đề xuất vùng (Region Proposal) như họ R-CNN (R-CNN, Fast R-CNN, Faster R-CNN) nhằm tối ưu hóa tốc độ xử lý. Mô hình SSD sử dụng mạng cơ sở (Base Network) kết hợp các tầng đặc trưng bổ sung (Extra Feature Layers) ở nhiều kích thước khác nhau (38x38, 19x19, 10x10, 5x5, 3x3, 1x1) để tạo ra các khung mặc định (Default Bounding Boxes) đa tỷ lệ cạnh (Aspect Ratio).
  • Hàm mất mát (Loss Function): SSD tối ưu hóa đồng thời độ lệch vị trí hộp dự đoán so với hộp thực tế (Ground Truth) thông qua Localization Loss (Smooth L1) và sai số phân loại thông qua Confidence Loss (Softmax Loss).

Phương pháp nghiên cứu thực tế:

  • Phương pháp phân tích - tổng hợp tài liệu: Khảo sát các công nghệ an toàn trên thế giới (hệ thống phối hợp LiDAR-Radar-Camera trên xe tự hành Waymo Driver; hệ thống cảnh báo chệch làn đường LDWS; nền tảng AI NVIDIA Jetson trên thiết bị Komatsu; công nghệ Tesla Vision thuần camera không radar) và các nghiên cứu tại Việt Nam (hệ thống Mobileye 630 series 6; thuật toán nhận dạng biển số bằng OpenCV và Support Vector Machine - SVM; xe tự hành FPT dùng LiDAR 360 kết hợp Deep Learning).
  • Phương pháp thiết kế và tích hợp hệ thống kỹ thuật: Thiết kế sơ đồ khối phần cứng, kết nối bo mạch máy tính nhúng Nvidia Jetson Nano với camera Raspberry Pi v2, mạch nguồn UPS, màn hình LCD và loa qua cổng giao tiếp. Lập trình giải thuật xử lý luồng video và phát hiện chướng ngại vật bằng ngôn ngữ Python kết hợp thư viện OpenCV.
  • Phương pháp thực nghiệm: Xây dựng các kịch bản thử nghiệm khả năng nhận diện người đi bộ, phương tiện và kích hoạt cảnh báo âm thanh/hình ảnh khi đối tượng tiến vào vùng nguy hiểm (Warning Zone) được thiết lập trước.

Nguồn dữ liệu:

  • Luồng khung hình video thu nhận trực tiếp từ camera Raspberry Pi v2 trong thời gian thực.
  • Trọng số mô hình SSD-MobileNet v2 được huấn luyện sẵn trên các tập dữ liệu nhận dạng vật thể tiêu chuẩn.
  • Dữ liệu mở rộng từ tập dữ liệu German Traffic Sign phục vụ nghiên cứu phụ trợ về nhận diện biển báo bằng Keras/CNN.

Thiết kế và triển khai hệ thống

Hệ thống cảnh báo va chạm sớm được thiết kế dưới dạng một thiết bị nhúng độc lập, có cấu trúc phần cứng và phần mềm như sau:

Thành phần phần cứng Thông số kỹ thuật / Đặc tính Vai trò trong hệ thống
Nvidia Jetson Nano B01 GPU Maxwell 128 nhân, CPU ARM Cortex-A57 Quad-Core 1.43 GHz, RAM 4GB LPDDR4 Bộ xử lý trung tâm, chạy mô hình nhận diện SSD-MobileNet v2
Mô đun Camera Pi v2 Cảm biến Sony IMX219 8MP, giao tiếp CSI-2 Thu nhận hình ảnh trực tiếp phía trước đầu xe
Mô đun nguồn UPS Mạch quản lý pin và cấp nguồn chuyên dụng cho Jetson Nano Đảm bảo nguồn điện độc lập, ổn định cho hệ thống trên xe
Màn hình LCD 7 inch Hiển thị HDMI, độ phân giải cao Hiển thị luồng video thời gian thực, bounding box và vùng cảnh báo
Loa USB Mini Kết nối qua cổng USB / Jack âm thanh Phát tín hiệu âm thanh cảnh báo tới người lái khi có nguy cơ va chạm

Quy trình xử lý thuật toán trên phần mềm:

  1. Thu nhận ảnh: Đọc dữ liệu khung hình từ camera Raspberry Pi v2 bằng thư viện OpenCV trên Python.
  2. Tiền xử lý và suy luận: Chuyển đổi định dạng khung hình và đưa qua mạng SSD-MobileNet v2 để phát hiện chướng ngại vật.
  3. Trích xuất tọa độ: Trích xuất các tham số hộp giới hạn (Bounding Box: tọa độ tâm, chiều dài, chiều rộng, nhãn phân loại và độ tin cậy).
  4. Xác định vùng cảnh báo (Warning Zone): Xây dựng lớp đối tượng Zone với các hàm tính toán hình học:
    • getCenterPoint(): Xác định tọa độ điểm tâm của hộp giới hạn đối tượng.
    • getWidth(), getHeight(): Tính toán kích thước hình học của vùng cảnh báo và đối tượng.
    • isOverlap(): Kiểm tra sự giao cắt giữa tọa độ tâm/hộp của chướng ngại vật với vùng cảnh báo nguy hiểm được định nghĩa phía trước xe.
  5. Kích hoạt cảnh báo: Hàm draw_warning_zone() vẽ vùng nguy hiểm và bounding box lên màn hình LCD; đồng thời hàm play_sound() kích hoạt loa phát âm thanh cảnh báo người lái nếu hàm isOverlap() trả về giá trị xác nhận có nguy cơ va chạm.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Chương 1 trình bày lý do chọn đề tài dựa trên tính cấp thiết của an toàn giao thông và xu hướng phát triển của các công nghệ hỗ trợ lái xe tiên tiến (ADAS). Tác giả tổng hợp các công trình tiêu biểu:

  • Nghiên cứu quốc tế: Phân tích hệ thống xe tự hành Waymo kết hợp LiDAR 360, Radar và Camera; hệ thống cảnh báo chệch làn đường (LDWS) giúp giảm khoảng 50% tai nạn theo số liệu của FHWA; hệ sinh thái NVIDIA Cloud Platform trên máy móc công trường Komatsu; giải pháp Tesla Vision chuyển đổi sang hệ thống thuần camera không sử dụng cảm biến radar.
  • Nghiên cứu trong nước: Các giải pháp phân loại sản phẩm theo màu sắc, hệ thống nhận diện biển số xe qua thư viện OpenCV và thuật toán SVM, thiết bị Mobileye 630 series 6 (lắp sau kính lái, tích hợp cảnh báo làn đường, khoảng cách qua mạng CAN bus), và mô hình xe tự hành FPT sử dụng LiDAR 360 kết hợp Deep Learning. Từ các phân tích trên, chương 1 xác định rõ mục tiêu, đối tượng, phạm vi nghiên cứu và phương pháp tiếp cận của đề tài nhằm hướng tới việc chế tạo thiết bị cảnh báo va chạm chi phí thấp.

Chương 2: Cơ sở lý thuyết

Chương 2 cung cấp nền tảng lý thuyết chi tiết về thị giác máy tính và học sâu:

  • Trình bày 3 giai đoạn của thị giác máy tính: thu nhận (mô phỏng mắt), mô tả (mô phỏng vỏ não thị giác) và thấu hiểu (mô phỏng chức năng não bộ).
  • Hệ thống hóa các bước cơ bản trong xử lý ảnh số: thu nhận ảnh qua cảm biến CCD/CMOS, tiền xử lý lọc nhiễu, phân đoạn ảnh, trích chọn đặc trưng và nội suy nhận dạng.
  • Phân tích chi tiết kiến trúc mạng nơ-ron tích chập (CNN) gồm Convolutional Layer (tính tích chập ma trận bằng filter lẻ), Pooling Layer (giảm chiều bằng Max/Average Pooling) và Fully-Connected Layer.
  • So sánh hiệu năng giữa hai nhóm mô hình: nhóm ưu tiên độ chính xác (họ R-CNN, Fast R-CNN, Faster R-CNN) và nhóm ưu tiên tốc độ xử lý thời gian thực (SSD, YOLO).
  • Trình bày chi tiết cấu trúc toán học của mô hình SSD: sử dụng mạng cơ sở trích xuất feature map, sau đó kết nối các tầng Extra Feature Layers để tính toán các default bounding boxes. Tổng số hộp mặc định được tạo ra trên các tầng là 8.732 boxes:
    • Conv4_3 (kích thước 38x38, 4 boxes/cell): 5.776 boxes
    • Conv7 (kích thước 19x19, 6 boxes/cell): 2.166 boxes
    • Conv8_2 (kích thước 10x10, 6 boxes/cell): 600 boxes
    • Conv9_2 (kích thước 5x5, 6 boxes/cell): 150 boxes
    • Conv10_2 (kích thước 3x3, 4 boxes/cell): 36 boxes
    • Conv11_2 (kích thước 1x1, 4 boxes/cell): 4 boxes
  • Giới thiệu ngôn ngữ lập trình Python, thư viện OpenCV và các thông số kỹ thuật của phần cứng: Jetson Nano B01, mô đun nguồn UPS, camera Raspberry Pi v2, màn hình LCD 7 inch và loa USB.

Chương 3: Thực nghiệm và kết quả đạt được

Chương 3 trình bày quá trình thiết kế giải thuật và kết quả thử nghiệm thực tế:

  • Xây dựng sơ đồ giải thuật phát hiện chướng ngại vật và cảnh báo va chạm bằng Python. Định nghĩa các hàm xử lý không gian vùng cảnh báo (getCenterPoint, getWidth, getHeight, isOverlap, draw_warning_zone, play_sound).
  • Giai đoạn 1: Lắp đặt và vận hành thử nghiệm trên mô hình xe tự chế để kiểm tra tính tương thích giữa máy tính nhúng Jetson Nano, nguồn UPS, camera và thuật toán xử lý.
  • Giai đoạn 2: Lắp đặt hoàn chỉnh hệ thống lên xe ô tô Toyota Vios 2009 (camera đặt phía sau kính chắn gió, màn hình LCD và loa bố trí trong khoang lái).
  • Tiến hành thực nghiệm qua 4 kịch bản giao thông cụ thể:
    • Kịch bản 1: Phát hiện xe máy di chuyển phía trước xe.
    • Kịch bản 2: Phát hiện người đi bộ băng qua đường trước đầu xe.
    • Kịch bản 3: Nhận diện phương tiện ô tô lưu thông cùng chiều và ngược chiều.
    • Kịch bản 4: Chướng ngại vật đi vào vùng cảnh báo nguy hiểm đã thiết lập, hệ thống kích hoạt âm thanh và hiển thị khung cảnh báo màu đỏ trên màn hình LCD.
  • Đánh giá hiệu năng: Tốc độ xử lý của mô hình SSD-MobileNet v2 trên Jetson Nano tiệm cận ngưỡng thời gian thực, đáp ứng được yêu cầu phát hiện và cảnh báo vật thể.

Chương 4: Kết luận và hướng phát triển

Chương 4 tổng hợp các kết quả nghiên cứu đã đạt được trong thời gian 4 tháng, chỉ ra các mặt hạn chế về mặt phần cứng và thuật toán, đồng thời vạch ra phương hướng mở rộng nâng cấp hệ thống trong tương lai. (Phần phụ lục tài liệu trình bày thêm nghiên cứu xây dựng mô hình phân loại biển báo giao thông trên tập German Traffic Sign sử dụng Keras và CNN).

Kết quả và đóng góp

Kết quả chính đạt được:

  • Thiết kế, chế tạo và tích hợp thành công mô hình phần cứng hoàn chỉnh gồm Jetson Nano B01, camera Raspberry Pi v2, màn hình LCD 7 inch, loa USB và mô đun nguồn UPS hoạt động độc lập trên xe ô tô.
  • Ứng dụng thành công mô hình học sâu SSD-MobileNet v2 trên máy tính nhúng để phát hiện các đối tượng tham gia giao thông (người đi bộ, xe máy, ô tô).
  • Triển khai thuật toán vùng cảnh báo với các hàm hình học (isOverlap), cho phép xác định chính xác khi nào vật thể xâm nhập vùng nguy hiểm để kích hoạt đồng thời cảnh báo hình ảnh trên LCD và âm thanh qua loa.
  • Hoàn thành thử nghiệm thực tế trên xe Toyota Vios 2009 qua 4 kịch bản giao thông, chứng minh hệ thống có tốc độ xử lý gần đạt ngưỡng thời gian thực.

Đóng góp của đề tài:

  • Cung cấp một giải pháp thiết kế hệ thống cảnh báo va chạm sớm (PCS) hoàn chỉnh từ lý thuyết, thuật toán đến phần cứng thực nghiệm với chi phí thấp.
  • Đóng góp vào việc nghiên cứu ứng dụng công nghệ học sâu và thị giác máy tính trên phần cứng nhúng giá rẻ tại Việt Nam, mở ra tiềm năng thương mại hóa các thiết bị an toàn ô tô nội địa.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài:

  • Tốc độ xử lý của hệ thống chỉ ở mức "gần đạt ngưỡng thời gian thực", vẫn tồn tại độ trễ nhỏ khi xử lý các khung cảnh phức tạp có nhiều đối tượng.
  • Trong quá trình phát hiện chướng ngại vật (detecting), chương trình đôi lúc gặp hiện tượng bị dừng đột ngột (crash).
  • Chất lượng nhận diện phụ thuộc nhiều vào điều kiện ánh sáng môi trường và góc đặt của camera Raspberry Pi v2.
  • Hệ thống chỉ dừng lại ở mức phát tín hiệu cảnh báo thụ động (âm thanh, hình ảnh), chưa thể chủ động can thiệp vào hệ thống điều khiển phanh (AEB) hoặc hệ thống lái do chưa liên kết với mạng CAN bus/ECU của xe.

Hướng nghiên cứu tiếp:

  • Tối ưu hóa thuật toán và mô hình nhận diện (sử dụng TensorRT hoặc các mô hình tối ưu hơn) nhằm loại bỏ lỗi crash và tăng tốc độ xử lý đạt chuẩn thời gian thực ổn định.
  • Tích hợp thêm các tính năng ADAS khác như nhận diện làn đường (LDWS) và nhận diện biển báo giao thông (dựa trên mô hình Keras/CNN đã khảo sát trong phụ lục).
  • Nghiên cứu kết nối hệ thống với mạng CAN bus trên xe để truyền tín hiệu can thiệp trực tiếp vào hệ thống phanh tự động khẩn cấp khi người lái không phản hồi cảnh báo.

Giá trị tham khảo

Đồ án là tài liệu kỹ thuật có giá trị tham khảo cho:

  • Sinh viên, giảng viên và nghiên cứu viên các ngành Công nghệ Kỹ thuật Ô tô, Cơ điện tử, Kỹ thuật Điều khiển - Tự động hóa và Công nghệ Thông tin đang thực hiện các đề tài về hệ thống an toàn chủ động (ADAS) hoặc thị giác máy tính trên ô tô.
  • Kỹ sư phát triển hệ thống nhúng quan tâm đến quy trình tích hợp mô hình học sâu (SSD-MobileNet) trên nền tảng Nvidia Jetson Nano kết hợp camera CSI và các ngoại vi hiển thị/cảnh báo.
  • Nội dung đáng tham khảo nhất: Phương pháp thiết lập vùng cảnh báo (Zone) với giải thuật kiểm tra giao thoa isOverlap(), cách tính toán 8.732 default boxes trong mô hình SSD, và sơ đồ bố trí phần cứng thực nghiệm trên xe Toyota Vios 2009.

Câu hỏi thường gặp

1. Tại sao nhóm tác giả lại lựa chọn mô hình SSD-MobileNet v2 thay vì Faster R-CNN hay YOLOv3?
Trong phân tích cơ sở lý thuyết, nhóm tác giả chỉ ra rằng các mô hình họ R-CNN (như Faster R-CNN) tuy có độ chính xác cao nhưng cấu trúc mạng phức tạp và tốc độ tính toán chậm, không thể chạy thời gian thực trên phần cứng nhúng yếu. Ngược lại, SSD là mô hình phát hiện một pha (single-shot), kết hợp với mạng cơ sở gọn nhẹ MobileNet v2 giúp giảm đáng kể số lượng phép tính, đạt được sự cân bằng giữa độ chính xác và tốc độ xử lý gần thời gian thực trên bo mạch Nvidia Jetson Nano.

2. Tổng số default bounding boxes mà mô hình SSD tạo ra ở các tầng đặc trưng là bao nhiêu?
Mô hình SSD trong đồ án tạo ra tổng cộng 8.732 default bounding boxes ở đầu ra, phân bổ qua 6 tầng đặc trưng: Conv4_3 (5.776 boxes), Conv7 (2.166 boxes), Conv8_2 (600 boxes), Conv9_2 (150 boxes), Conv10_2 (36 boxes) và Conv11_2 (4 boxes).

3. Cơ chế kích hoạt cảnh báo va chạm của hệ thống hoạt động như thế nào?
Hệ thống sử dụng lớp Zone để vẽ một vùng cảnh báo ảo phía trước xe (draw_warning_zone). Khi camera thu hình và mạng SSD xác định được đối tượng, hàm getCenterPoint() lấy tọa độ tâm của đối tượng. Hàm isOverlap() sẽ kiểm tra xem tọa độ này có nằm đè lên vùng cảnh báo hay không. Nếu có giao thoa, hệ thống lập tức hiển thị cảnh báo trực quan trên màn hình LCD 7 inch và gọi hàm play_sound() để phát âm thanh cảnh báo qua loa mini.

4. Hệ thống đã được lắp đặt và kiểm thử trên các phương tiện thực tế nào?
Hệ thống được lắp đặt và thử nghiệm qua hai giai đoạn: đầu tiên trên mô hình xe tự chế trong phòng thí nghiệm để kiểm tra tính ổn định của mạch nguồn UPS và các kết nối ngoại vi; sau đó được lắp đặt hoàn chỉnh phía sau kính chắn gió của xe ô tô Toyota Vios đời 2009 để chạy thực nghiệm qua 4 kịch bản giao thông thực tế.

5. Hạn chế kỹ thuật lớn nhất mà nhóm tác giả ghi nhận trong quá trình thử nghiệm là gì?
Hạn chế lớn nhất được tác giả ghi nhận là chương trình đôi lúc bị crash trong quá trình nhận diện (detecting), tốc độ xử lý mới chỉ tiệm cận ngưỡng thời gian thực và hệ thống chỉ dừng lại ở cảnh báo thụ động chứ chưa thể tự động can thiệp phanh xe do chưa kết nối với giao thức CAN bus.

Kết luận

Đồ án "Nghiên cứu thiết kế và chế tạo hệ thống cảnh báo va chạm sớm trên xe" đã giải quyết trọn vẹn mục tiêu thiết kế và tích hợp một hệ thống ADAS độc lập dựa trên thị giác máy tính và máy tính nhúng Nvidia Jetson Nano. Bằng việc ứng dụng mô hình học sâu SSD-MobileNet v2 kết hợp giải thuật phân tích vùng nguy hiểm, hệ thống đã nhận diện và đưa ra cảnh báo âm thanh, hình ảnh kịp thời qua 4 kịch bản thực nghiệm trên xe Toyota Vios 2009. Công trình là tài liệu tham khảo kỹ thuật hữu ích về phương pháp triển khai các mô hình AI thị giác máy tính lên phần cứng nhúng thực tế trong ngành công nghệ kỹ thuật ô tô.