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

Trong xã hội hiện đại, sự gia tăng nhanh chóng của số lượng phương tiện ô tô cá nhân tại các khu vực đô thị dẫn đến tình trạng quá tải hạ tầng và gia tăng áp lực khi đỗ xe trong không gian chật hẹp. Nhằm hỗ trợ người điều khiển phương tiện, các hệ thống hỗ trợ đỗ xe (Parking Assistance System - PAS) và đỗ xe tự động trở thành hướng nghiên cứu trọng điểm trong lĩnh vực công nghệ ô tô. Các giải pháp cảm biến truyền thống đều tồn tại những nhược điểm riêng: máy quét laser có độ ổn định và chính xác cao nhưng tuổi thọ ngắn và dễ bị ảnh hưởng bởi thời tiết mưa tuyết; cảm biến siêu âm và radar tầm xa có tuổi thọ cao và kích thước nhỏ nhưng độ chính xác thấp, phạm vi phát hiện ngắn; cảm biến tầm nhìn (camera) cung cấp hình ảnh trực quan thời gian thực nhưng lại bị giới hạn khi hoạt động trong điều kiện thiếu sáng. Bên cạnh đó, các loại camera lùi hoặc camera tiến thông thường chỉ cung cấp một góc nhìn cố định, không thể bao quát toàn bộ các điểm mù xung quanh thân xe.

Trên thế giới, hệ thống camera quan sát toàn cảnh từ trên cao (Bird-view car camera) 360 độ đã được trang bị trên nhiều dòng xe cao cấp (như Acura MDX, BMW 7-Series, Genesis G90, Infiniti QX30) hoặc cung cấp bởi các nhà sản xuất phụ tùng chuyên dụng (DCT, Panorama). Tại Việt Nam, nhu cầu sử dụng ô tô tầm trung tăng trưởng mạnh mẽ, tuy nhiên hệ thống Bird-view vẫn chủ yếu xuất hiện trên các dòng xe hạng sang và hầu hết là sản phẩm nhập khẩu nguyên bộ.

Khóa luận tốt nghiệp ngành Kỹ thuật Máy tính của nhóm tác giả Phạm Xuân Linh và Nguyễn Lê Nhân (Trường Đại học Công nghệ Thông tin – ĐHQG-HCM, 2021) được thực hiện với các mục tiêu và nhiệm vụ cụ thể:

  1. Xây dựng chương trình tạo ảnh toàn cảnh Bird-view 360 độ cho xe ô tô từ 2 đến 4 chỗ ngồi từ 4 camera gắn xung quanh xe (đầu xe, đuôi xe, hai bên gương chiếu hậu), xử lý trực tiếp trên kit máy tính nhúng NVIDIA Jetson Nano Developer Kit.
  2. Xây dựng chương trình phát hiện và cảnh báo vật cản thời gian thực (gồm người, xe ô tô, xe máy, động vật) bằng mô hình mạng học sâu SSD-Mobilenet V1 nhằm hỗ trợ tài xế tránh va chạm khi đỗ xe.
  3. Dựng mô hình không gian 3D hiển thị đối tượng xe cùng bối cảnh môi trường xung quanh thông qua thuật toán ghép ảnh toàn cảnh (Image Panorama Stitching) và thư viện đồ họa 3D.

Phạm vi và giới hạn nghiên cứu:

  • Đối tượng áp dụng: Ô tô loại từ 2 đến 4 chỗ ngồi.
  • Phần cứng xử lý: Bo mạch nhúng NVIDIA Jetson Nano Developer Kit (phiên bản B01).
  • Cảm biến thu hình: 2 camera CSI Waveshare IMX219-200 và 2 camera hành trình góc rộng kết nối USB.
  • Giới hạn kỹ thuật: Hệ thống hiển thị hình ảnh Bird-view ở độ phân giải 200x250 pixels với tốc độ khung hình đạt 15–20 FPS; độ chính xác nhận diện vật cản đạt trong khoảng 70–85%; phạm vi cảnh báo an toàn từ 1.5m – 2.0m đối với camera trước/sau và 1.0m đối với camera hai bên thân xe.

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

Khóa luận kết hợp nền tảng thị giác máy tính cổ điển, đồ họa 3D và các mô hình học sâu (Deep Learning) tối ưu cho phần cứng nhúng:

  • Khung lý thuyết và mô hình học sâu:

    • Mô hình SSD-Mobilenet V1: Cấu trúc mạng phát hiện đối tượng kết hợp giữa Single Shot MultiBox Detector (SSD) và mạng đường trục MobileNet V1. MobileNet V1 tối ưu hóa hiệu năng tính toán thông qua cấu trúc tích chập tách biệt theo chiều sâu (Depthwise Separable Convolution), bao gồm một lớp Depthwise Convolution (tích chập không gian theo từng kênh $D_K \times D_K$) kết hợp với một lớp Pointwise Convolution (tích chập $1 \times 1$). Cơ chế này giúp giảm tới 75% lượng tham số và giảm thiểu số lượng phép tính tích lũy (Mult-Adds) so với các mạng VGG16 hay GoogleNet, đảm bảo khả năng chạy thời gian thực.
    • Cơ chế hoạt động của SSD: Sử dụng các bản đồ đặc trưng đa tỷ lệ (multi-scale feature maps) kết hợp với các hộp mặc định (default boxes/anchor boxes) ở nhiều tỷ lệ khung hình khác nhau. Hàm mất mát (loss function) của mô hình là sự kết hợp có trọng số ($\alpha$) giữa sai số phân lớp (Confidence Loss – hàm Softmax/Cross-entropy) và sai số định vị tọa độ hộp bao (Localization Loss – hàm Smooth L1/L2-Norm).
    • Cấu trúc DetectNet và hệ thống NVIDIA DIGITS: Phương pháp biểu diễn dữ liệu phát hiện đối tượng dựa trên lưới ô vuông cố định (grid coverage), gán nhãn tọa độ tương đối của bounding box so với tâm ô lưới để tối ưu hàm mất mát khi huấn luyện trên GPU.
    • Thư viện đồ họa Ratcave: Gói thư viện Python xây dựng trên nền tảng OpenGL hiện đại, hỗ trợ đọc các tệp mô hình 3D Mesh (.obj Wavefront từ Blender), tích hợp các bộ đổ bóng (shaders) và kỹ thuật ánh xạ môi trường (Cubemapping) nhằm tái tạo không gian trực quan cho xe.
  • Kỹ thuật xử lý ảnh thị giác máy tính:

    • Biến đổi phối cảnh (Perspective Transformation): Sử dụng ma trận biến đổi $3 \times 3$ thông qua các hàm cv2.getPerspectiveTransform (xác định từ 4 điểm không thẳng hàng trên ảnh nguồn và ảnh đích) và cv2.warpPerspective để chuyển đổi góc nhìn nghiêng của các camera đơn lẻ thành góc nhìn thẳng đứng từ trên xuống (Top-down view).
    • Ghép nối và xử lý biên ảnh: Ứng dụng các phép biến đổi hình học (xoay ảnh $90^\circ$, $45^\circ$, phép co giãn tỉ lệ, phép trượt), kỹ thuật trộn ảnh liền mạch (seamless stitching), cân bằng màu sắc (color balancing) và ghép ảnh toàn cảnh (Image Panorama Stitching) để loại bỏ đường viền phân tách giữa 4 camera.
  • Phương pháp nghiên cứu thực tế và nguồn dữ liệu:

    • Phương pháp thực nghiệm kỹ thuật: Thiết kế hệ thống nhúng, lắp đặt phần cứng thực tế, lập trình đa luồng (multithreading) trên Python để đồng bộ hóa 4 luồng camera và mô hình suy luận AI.
    • Dữ liệu nghiên cứu: Sử dụng trọng số tiền huấn luyện trên tập dữ liệu chuẩn COCO (hơn 330.000 ảnh, 80 lớp đối tượng), kết hợp thu thập và gán nhãn bộ dữ liệu thực tế tại Việt Nam gồm các lớp đối tượng: ô tô, xe máy, người đi bộ, chó và mèo.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc tích hợp phần cứng và phần mềm khép kín, hoạt động độc lập trên thiết bị nhúng:

Thành phần Chi tiết cấu hình / Công nghệ Vai trò trong hệ thống
Bo mạch xử lý trung tâm NVIDIA Jetson Nano Developer Kit (B01)
- GPU: 128-core Maxwell
- CPU: Quad-core ARM Cortex-A57 64-bit
- RAM: 4GB 64-bit LPDDR4
- Năng lực tính toán: 472 GFLOPS
Chạy hệ điều hành Linux/JetPack, xử lý song song các luồng thu nhận hình ảnh, tính toán ma trận biến đổi phối cảnh và thực thi suy luận mạng nơ-ron học sâu.
Hệ thống cảm biến hình ảnh - 02 Camera CSI Waveshare IMX219-200 (Cảm biến Sony IMX219 8MP, FOV $200^\circ$, độ méo $<11%$, khẩu độ F/2.87)
- 02 Camera hành trình góc rộng kết nối USB
Gắn tại 4 vị trí: cản trước, cản sau, gương chiếu hậu trái và gương chiếu hậu phải để thu nhận toàn cảnh không gian xung quanh xe.
Môi trường phần mềm & Thư viện - NVIDIA JetPack (CUDA, cuDNN, TensorRT)
- Python, PyTorch, OpenCV (cv2)
- Thư viện đồ họa 3D ratcave
Xử lý hình ảnh, huấn luyện và triển khai mô hình SSD-Mobilenet V1, dựng không gian đồ họa 3D.
Cơ chế xử lý luồng Lập trình đa luồng (Multithreading) Đọc song song 4 luồng video đầu vào từ các cổng CSI và USB, giảm thiểu độ trễ khung hình và tối ưu hóa tài nguyên phần cứng.
Mô-đun tạo ảnh Bird-view Thuật toán Perspective Transform & Stitching Chuyển đổi hệ tọa độ từng camera sang góc nhìn mặt phẳng đất, cắt ghép và pha trộn màu sắc thành một ảnh toàn cảnh $360^\circ$.
Mô-đun nhận diện & Cảnh báo Mô hình SSD-Mobilenet V1 & Thuật toán đo khoảng cách Nhận diện bounding box của vật cản; tính toán khoảng cách từ tâm xe đến vật cản theo pixel quy đổi; phát tín hiệu cảnh báo trên giao diện khi vật cản đi vào vùng nguy hiểm.

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

Chương 1: Tổng quan

Chương này phân tích bối cảnh phát triển của các công nghệ hỗ trợ đỗ xe (PAS), chỉ ra những hạn chế của cảm biến siêu âm, radar và camera góc nhìn đơn lẻ. Tác giả khảo sát tình hình nghiên cứu Bird-view car camera trên thế giới (Acura, BMW, Genesis, Infiniti, DCT, Panorama) và thực trạng thị trường Việt Nam. Từ đó, chương xác định rõ giải pháp sử dụng 4 camera góc rộng, bo mạch Jetson Nano, mô hình SSD-Mobilenet V1, đồng thời công bố các mục tiêu kỹ thuật và giới hạn của đề tài (độ phân giải 200x250, tốc độ 15–20 FPS, độ chính xác 70–85%, khoảng cách cảnh báo 1.0m – 2.0m).

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

Chương 2 trình bày toàn diện các nền tảng lý thuyết và công nghệ được sử dụng trong khóa luận:

  • Phân tích thông số kỹ thuật, khả năng tính toán 472 GFLOPS và hiệu năng chạy các mạng học sâu (ResNet, MobileNet, Tiny YOLO v3, OpenPose, U-Net) của NVIDIA Jetson Nano so với Raspberry Pi 3, Intel Neural Compute Stick 2 và Google TPU Coral Dev Board.
  • Giới thiệu quy trình xử lý ảnh số (thu nhận, tiền xử lý, phân đoạn, biểu diễn, nhận dạng) và thông số quang học của camera Waveshare IMX219-200.
  • Trình bày tổng quan về PyTorch, mạng nơ-ron nhân tạo (ANN) và nguyên lý trích xuất đặc trưng tự động của Deep Learning.
  • Phân tích chi tiết kiến trúc mạng MobileNet V1 với 30 lớp và cơ chế Depthwise Separable Convolution, so sánh hiệu quả số phép tính với GoogleNet và VGG16 trên tập ImageNet và Stanford Dogs.
  • Phân tích nguyên lý của mạng SSD (Single Shot Detector), cấu trúc multi-scale feature maps, cơ chế default boxes, hàm lỗi MultiBox (Confidence Loss và Localization Loss).
  • Giới thiệu thư viện đồ họa 3D Ratcave trên nền tảng OpenGL và cấu trúc nhận dạng đối tượng DetectNet của NVIDIA qua hệ thống DIGITS.

Chương 3: Phân tích thiết kế hệ thống

Chương 3 mô tả chi tiết các bước thiết kế và cài đặt hệ thống:

  • Thiết kế hệ thống Bird-view: Thiết lập các phép toán biến đổi hình học (xoay ma trận $45^\circ$, $90^\circ$, tỉ lệ, trượt, phản chiếu, chiếu vuông góc); áp dụng thuật toán Perspective Transformation với ma trận $3 \times 3$ qua hàm cv2.getPerspectiveTransform và cv2.warpPerspective để nắn chỉnh 4 luồng ảnh; thực hiện ghép nối và pha trộn màu sắc (seamless stitching, color balancing).
  • Thiết kế hệ thống cảnh báo: Ứng dụng SSD-Mobilenet V1 để nhận diện vật thể; quy trình thu thập và dán nhãn bộ dữ liệu riêng cho các đối tượng (ô tô, xe máy, người, động vật); thuật toán tính toán khoảng cách từ ảnh Bird-view và kích hoạt tín hiệu cảnh báo nguy cơ va chạm.
  • Cài đặt phần cứng và đa luồng: Quy trình kết nối, xử lý tín hiệu từ 2 camera CSI và 2 camera USB, giải pháp chạy đa luồng (multithreading) để đồng bộ xử lý trên Jetson Nano.
  • Xử lý không gian 3D: Sử dụng thư viện ratcave để tải tệp mô hình đối tượng 3D (.obj Wavefront), kết hợp ảnh nền môi trường từ thuật toán Image Panorama Stitching để tạo giao diện hiển thị 3D trực quan.

Chương 4: Kết quả mô phỏng

Chương 4 công bố kết quả đo kiểm thực nghiệm của hệ thống qua các kịch bản thử nghiệm:

  • Đánh giá chất lượng ghép ảnh Bird-view và đo lường tốc độ xử lý khung hình (FPS) ở các mốc thời gian khi xe vận hành ở vận tốc thích hợp.
  • Kết quả kiểm thử tính năng nhận diện vật cản (người đi bộ, chó, mèo, xe máy, ô tô) bằng SSD-Mobilenet V1; đo lường độ chính xác và tốc độ nhận diện dưới các điều kiện cường độ ánh sáng khác nhau và các mức tốc độ di chuyển khác nhau của xe.
  • Kết quả mô phỏng không gian đối tượng xe 3D tích hợp trên nền ảnh môi trường xung quanh.
  • So sánh các tính năng và hiệu năng của hệ thống tự chế tạo với các hệ thống Bird-view thương mại của Nissan, Mazda, Bosch và VinFast.

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

Đánh giá tổng quan mức độ hoàn thành so với mục tiêu ban đầu và đề xuất các định hướng nâng cấp hệ thống trong tương lai.


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

Kết quả thực nghiệm chính

Khóa luận đã hoàn thành việc xây dựng và kiểm thử hệ thống trên phần cứng thực tế với các số liệu được công bố trong văn bản:

Hạng mục đánh giá Kết quả thực nghiệm đạt được trong khóa luận
Khả năng ghép ảnh toàn cảnh Ghép thành công 4 luồng camera thành ảnh Bird-view $360^\circ$ hoàn chỉnh, loại bỏ điểm mù quanh xe.
Độ phân giải hiển thị $200 \times 250$ pixels trên màn hình giám sát.
Tốc độ xử lý khung hình Đạt khoảng $15 - 20$ FPS trên bo mạch NVIDIA Jetson Nano Developer Kit.
Độ chính xác phát hiện vật cản Đạt mức $70% - 85%$ đối với các đối tượng: xe ô tô, xe máy, người đi bộ, chó và mèo.
Phạm vi kích hoạt cảnh báo va chạm - Camera trước và sau: Cảnh báo khi khoảng cách đến vật cản từ $1.5\text{m} - 2.0\text{m}$.
- Camera hai bên thân xe: Cảnh báo khi khoảng cách đến vật cản dưới $1.0\text{m}$.
Xử lý đa đối tượng Nhận diện và theo dõi đồng thời nhiều vật cản trong cùng một khung hình.
Mô phỏng không gian 3D Hiển thị thành công mô hình xe 3D (.obj) đặt trên nền ảnh môi trường được ghép từ camera xung quanh.

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

  1. Đề xuất và hiện thực hóa thành công một giải pháp hệ thống Bird-view 360 độ kết hợp nhận diện cảnh báo vật cản thời gian thực với chi phí phần cứng thấp, dựa trên nền tảng máy tính nhúng NVIDIA Jetson Nano.
  2. Tự xây dựng và chuẩn hóa bộ dữ liệu thực tế tại Việt Nam cho các lớp đối tượng giao thông đặc trưng (đặc biệt là xe máy, người đi bộ, vật nuôi) phục vụ huấn luyện mô hình SSD-Mobilenet V1.
  3. Kết hợp đồng bộ các kỹ thuật biến đổi phối cảnh, ghép nối ảnh, đa luồng phần mềm và thư viện đồ họa 3D ratcave để cung cấp giao diện trực quan hỗ trợ người lái đỗ xe an toàn.

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

  • Hạn chế được đề cập trong nghiên cứu:

    • Độ phân giải hình ảnh hiển thị trên màn hình còn ở mức hạn chế ($200 \times 250$ pixels) do giới hạn năng lực tính toán khi phải xử lý đồng thời 4 luồng camera và mô hình học sâu trên Jetson Nano.
    • Tốc độ xử lý ($15 - 20$ FPS) và độ chính xác nhận diện ($70 - 85%$) chịu ảnh hưởng khi môi trường thay đổi độ sáng đột ngột hoặc khi xe di chuyển ở tốc độ cao.
    • Phạm vi thử nghiệm của hệ thống mới tập trung trên phân khúc xe ô tô loại nhỏ từ 2 đến 4 chỗ ngồi.
  • Hướng phát triển tiếp:

    • Tối ưu hóa các thuật toán xử lý ảnh và cấu trúc mạng nơ-ron để nâng cao độ phân giải hiển thị và gia tăng tốc độ khung hình (FPS).
    • Mở rộng tập dữ liệu huấn luyện trong các điều kiện môi trường phức tạp (ban đêm, thiếu sáng, thời tiết xấu) để nâng cao độ chính xác nhận dạng vật cản.
    • Hoàn thiện mô hình không gian 3D và cải tiến thuật toán ghép ảnh môi trường xung quanh xe nhằm tăng cường độ mịn và tính trực quan cho giao diện người dùng.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo hữu ích cho các nhóm đối tượng:

  • Sinh viên và học viên: Thuộc các chuyên ngành Kỹ thuật Máy tính, Công nghệ Thông tin, Khoa học Máy tính, Kỹ thuật Điều khiển & Tự động hóa, và Kỹ thuật Ô tô đang thực hiện các đồ án liên quan đến hệ thống hỗ trợ lái xe nâng cao (ADAS), hệ thống hỗ trợ đỗ xe (PAS), hoặc ứng dụng thị giác máy tính trên thiết bị nhúng.
  • Kỹ sư phát triển hệ thống nhúng AI: Có thể tham khảo phương pháp kết nối phần cứng camera CSI/USB, kỹ thuật xử lý đa luồng trên JetPack/Linux, quy trình triển khai mô hình SSD-Mobilenet V1 bằng PyTorch/TensorRT trên dòng chip NVIDIA Jetson.
  • Nội dung giá trị nhất: Phương pháp tính toán ma trận và áp dụng thuật toán biến đổi phối cảnh (cv2.warpPerspective) để ghép ảnh Bird-view $360^\circ$, cùng kỹ thuật định vị khoảng cách vật cản trực tiếp từ mặt phẳng ảnh Bird-view.

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

1. Hệ thống sử dụng những loại camera nào và được bố trí ở các vị trí nào trên xe?
Hệ thống sử dụng tổng cộng 4 mắt camera, bao gồm 2 camera CSI Waveshare IMX219-200 (cảm biến Sony IMX219 8MP, góc nhìn $200^\circ$) và 2 camera hành trình góc rộng chuẩn USB. Các camera được lắp đặt tại 4 vị trí: đầu xe, đuôi xe, gương chiếu hậu bên trái và gương chiếu hậu bên phải nhằm bao quát toàn bộ $360^\circ$ quanh thân xe.

2. Vì sao nhóm tác giả lựa chọn mô hình SSD-Mobilenet V1 thay vì Faster R-CNN hay YOLO?
Faster R-CNN sử dụng mạng đề xuất khu vực nên tốc độ xử lý chậm (chỉ khoảng 7 FPS), không đáp ứng được yêu cầu thời gian thực trên thiết bị nhúng. Trong khi đó, SSD-Mobilenet V1 sử dụng các lớp tích chập tách biệt theo chiều sâu (Depthwise Separable Convolution), giúp giảm đáng kể kích thước mô hình và số lượng phép tính toán so với YOLO và các mạng cơ sở như VGG16, tiêu thụ ít điện năng và chạy mượt mà trên phần cứng hạn chế của NVIDIA Jetson Nano.

3. Ngưỡng khoảng cách cảnh báo va chạm vật cản được quy định cụ thể là bao nhiêu?
Hệ thống thiết lập ngưỡng cảnh báo va chạm khi xe đến gần vật cản: đối với camera phía trước và camera phía sau là từ $1.5\text{m} - 2.0\text{m}$; đối với camera hai bên thân xe là dưới $1.0\text{m}$.

4. Bo mạch phần cứng trung tâm được sử dụng là gì và có năng lực xử lý ra sao?
Hệ thống chạy trên bo mạch NVIDIA Jetson Nano Developer Kit (phiên bản B01), trang bị GPU Maxwell 128 lõi, CPU quad-core ARM Cortex-A57 64-bit, bộ nhớ 4GB LPDDR4, cung cấp năng lực tính toán 472 GFLOPS với mức tiêu thụ công suất dưới 5W.

5. Thư viện Ratcave đóng vai trò gì trong hệ thống?
Ratcave là thư viện đồ họa 3D viết bằng Python dựa trên nền tảng OpenGL. Trong khóa luận, Ratcave được sử dụng để đọc tệp mô hình đối tượng 3D (.obj Wavefront từ Blender), áp dụng các bộ tạo bóng và kết xuất mô hình xe 3D trực tiếp lên nền ảnh toàn cảnh môi trường xung quanh xe.


Kết luận

Khóa luận đã hoàn thành việc thiết kế và triển khai thực nghiệm chương trình tạo ảnh toàn cảnh Bird-view 360 độ và cảnh báo vật cản cho ô tô từ 2 đến 4 chỗ ngồi trên phần cứng máy tính nhúng NVIDIA Jetson Nano. Bằng việc kết hợp thuật toán biến đổi phối cảnh, mô hình học sâu SSD-Mobilenet V1 và thư viện đồ họa Ratcave, hệ thống đạt tốc độ xử lý 15–20 FPS và độ chính xác nhận diện 70–85% trong phạm vi cảnh báo an toàn từ 1.0m đến 2.0m. Kết quả nghiên cứu cung cấp một tài liệu tham khảo kỹ thuật hoàn chỉnh và thực tế cho các ứng dụng thị giác máy tính và hệ thống hỗ trợ lái xe an toàn trên các thiết bị nhúng có tài nguyên giới hạn.