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

Trong bối cảnh khoa học kỹ thuật và công nghệ tự động hóa phát triển, các hệ thống giám sát và điều khiển thông minh ngày càng được ứng dụng rộng rãi nhằm thay thế con người thực hiện các nhiệm vụ nguy hiểm và đòi hỏi độ chính xác cao. Một trong những hướng nghiên cứu trọng tâm là xe tự lái và xe bán tự động, bắt đầu từ mô hình xe Navlab tại Đại học Carnegie Mellon năm 1980 đến các sản phẩm thương mại và thử nghiệm thực tế như xe điện bán tự động của Tesla (2015), xe tự lái của Google (2015) và Mercedes-Benz S500 (2015). Hệ thống hỗ trợ người lái cần khả năng thu nhận và hiểu biết cảnh quan giao thông xung quanh để đưa ra cảnh báo kịp thời, trong đó ô tô và người đi bộ là hai đối tượng cơ bản và quan trọng nhất.

Nhiệm vụ nghiên cứu của đồ án tốt nghiệp được xác định cụ thể gồm ba nội dung chính:

  1. Thu thập dữ liệu hình ảnh phục vụ huấn luyện và kiểm thử.
  2. Xây dựng, huấn luyện bộ phân loại xếp tầng (Cascade Classifier) cho hệ thống phát hiện đối tượng (ô tô và người đi bộ).
  3. Đánh giá kết quả đạt được thông qua thực nghiệm.

Đối tượng nghiên cứu trọng tâm của đề tài là phương tiện giao thông (ô tô) và người đi bộ trong môi trường đô thị thông qua ảnh kỹ thuật số. Phạm vi nghiên cứu về mặt dữ liệu bao gồm tập mẫu huấn luyện với hơn 16.000 ảnh được thu thập từ máy ảnh điện thoại di động có độ phân giải 8 megapixel và 23 megapixel. Phạm vi thực nghiệm hệ thống được triển khai trên phần mềm Matlab 2015b chạy trên máy tính xách tay trang bị vi xử lý Intel Core i5 (RAM 8GB) và Intel Core i3 (RAM 4GB).

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

Đồ án tổng quan các hướng tiếp cận chính trong thị giác máy tính và phát hiện đối tượng:

  • Tiếp cận dựa trên ảnh (Image-based): Sử dụng cửa sổ trượt và các thuật toán thống kê/học máy như Phân tích thành phần chính (PCA / EigenObject), Máy học véc-tơ hỗ trợ (SVM), Bộ phân biệt tuyến tính Fisher (Fisher’s Linear Discriminant), Không gian riêng (Eigen-space), Mạng nơ-ron nhân tạo (ANN), Mô hình Markov ẩn (HMM) và Mạng thưa Winnows (SNoW).
  • Tiếp cận dựa trên dạng hình học / đặc trưng (Feature-based): Gồm phương pháp từ dưới lên (Bottom-Up) dựa trên các đặc trưng hình dáng bất biến và phương pháp luồng quang (Optical Flow) theo dõi chuỗi khung hình liên tiếp.
  • Các loại đặc trưng trích xuất: Đặc trưng Haar-like (gồm dạng 2 khối, 3 khối, 4 khối chữ nhật theo Viola-Jones), đặc trưng mẫu nhị phân cục bộ (LBP - Local Binary Pattern của T. Ojala et al., 2002), và đặc trưng biểu đồ hướng gradient (HOG - Histogram of Oriented Gradients của Dalal và Triggs, 2005).
  • Thuật toán phân loại: Thuật toán tăng cường thích nghi (AdaBoost - Adaptive Boosting của Freund và Schapire, 1995) với ba biến thể: Discrete AdaBoost (DAB), Gentle AdaBoost (GAB), Real AdaBoost (RAB); cùng thuật toán phát hiện nhanh Viola-Jones (2001) dựa trên bộ phân loại xếp tầng (Cascade Classifier).

Phương pháp nghiên cứu thực nghiệm được tác giả lựa chọn là sự kết hợp giữa thuật toán Gentle AdaBoost (GAB) và đặc trưng HOG để huấn luyện bộ phân loại xếp tầng trên môi trường Matlab. Nguồn dữ liệu thực tế gồm tập dữ liệu hơn 16.000 mẫu ảnh chụp thực tế tại môi trường đô thị cùng các video giao thông để trích xuất khung hình phục vụ kiểm nghiệm.

Thiết kế và triển khai

Hệ thống phát hiện đối tượng được xây dựng và triển khai theo quy trình giải thuật gồm các giai đoạn xử lý cụ thể:

[Thu thập dữ liệu ảnh/video] 
[Tiền xử lý: Gán nhãn & Tạo ROI bằng mặt nạ nhị phân]
[Thiết lập tham số huấn luyện (Số tầng, đặc trưng HOG, sai số)]
[Huấn luyện Cascade Classifier qua N giai đoạn bằng Gentle AdaBoost]
[Kiểm tra & Đánh giá trên tập ảnh/video thử nghiệm]

Quy trình tính toán đặc trưng HOG (R-HOG)

Quá trình trích xuất đặc trưng HOG cho ảnh đầu vào được thực hiện qua 4 bước:

  1. Tính gradient và hướng:
    • Gradient: $|G| = \sqrt{I_x^2 + I_y^2}$ với $I_x = I * [-1, 0, 1]$ và $I_y = I * [-1, 0, 1]^T$.
    • Hướng gradient: $\theta = \arctan(I_x / I_y)$.
  2. Chia khối (Block): Chia ảnh thành các khối gồm các ô (cell) có kích thước bằng nhau, các khối được bố trí gối lên nhau 1 cell. Số lượng khối trong ảnh được xác định theo công thức: $$n_{\text{block/image}} = \left(\frac{W_{\text{image}} - W_{\text{block}} \times W_{\text{cell}}}{W_{\text{cell}}} + 1\right) \times \left(\frac{H_{\text{image}} - H_{\text{block}} \times H_{\text{cell}}}{H_{\text{cell}}} + 1\right)$$
  3. Lượng hóa hướng và tạo véc-tơ đặc trưng khối: Chia không gian hướng thành $p$ bin ($p = 9$ với unsigned-HOG từ $0^\circ - 180^\circ$, hoặc $p = 18$ với signed-HOG từ $0^\circ - 360^\circ$). Véc-tơ đặc trưng của khối có số chiều bằng tích của số cell trong block và số chiều véc-tơ của mỗi cell.
  4. Chuẩn hóa véc-tơ khối và ghép thành véc-tơ ảnh: Sử dụng các chuẩn L2-norm ($f = v / \sqrt{|v|_2^2 + e^2}$), L1-norm ($f = v / (|v|_1 + e)$), hoặc L1-sqrt ($f = \sqrt{v / (|v|_1 + e)}$).

Cấu hình tham số và môi trường huấn luyện

  • Tiền xử lý dữ liệu: Sử dụng mặt nạ nhị phân (ảnh nhị phân cùng kích thước với ảnh gốc, giá trị 1 cho vùng ROI chứa đối tượng và 0 cho vùng nền) để khoanh vùng vùng quan tâm (ROI).
  • Thiết lập tham số Cascade Classifier:
Trường hợp mục tiêu Hướng điều chỉnh thiết lập
Tập huấn luyện lớn (hàng nghìn mẫu) Tăng số lượng các giai đoạn (stages) và thiết lập tỷ lệ phân loại sai mẫu chứa đối tượng cao hơn cho từng giai đoạn
Tập huấn luyện nhỏ Giảm số lượng giai đoạn và thiết lập tỷ lệ phân loại sai mẫu chứa đối tượng nhỏ hơn cho từng giai đoạn
Giảm xác suất bỏ sót đối tượng Tăng tỷ lệ phân loại đúng mẫu chứa đối tượng ở mỗi giai đoạn
Giảm số lượng cảnh báo sai (False Positive) Tăng số lượng giai đoạn hoặc giảm tỷ lệ báo động sai (False Alarm Rate) mỗi giai đoạn
  • Triển khai phần mềm: Hệ thống được lập trình trên Matlab 2015b, sử dụng các hàm chuyên dụng trong bộ công cụ Computer Vision System Toolbox gồm: trainCascadeObjectDetector (huấn luyện với tệp cấu hình XML, thiết lập FalseAlarmRate = 0.01, NumCascadeStages = 15), vision.CascadeObjectDetector (tải mô hình XML để phát hiện), insertObjectAnnotation (đánh dấu khung chữ nhật bao quanh đối tượng), VideoReader (đọc và tách khung hình từ video định dạng MP4) và VideoWriter (xuất video kết quả với tốc độ 27 khung hình/giây, chất lượng 50).

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

Chương 1: Tổng quan

Chương này trình bày lịch sử phát triển của các phương tiện tự hành và hệ thống hỗ trợ người lái từ năm 1980 đến 2015. Tác giả khảo sát các công trình nghiên cứu tiêu biểu trên thế giới:

  • Nhóm Matveev, Murynin và Trekin (1997) phát hiện phương tiện dựa trên vùng màu sắc đồng nhất từ ảnh chụp trên không.
  • Han và Hahn (2009) sử dụng đặc trưng Haar-like và đặc trưng đối xứng để phát hiện phương tiện, hạn chế ảnh hưởng của bóng đổ nhưng dễ lỗi khi cường độ sáng thay đổi.
  • Mikolajczyk, Schmid và Zisserman (2005) phát hiện người đi bộ dựa trên việc nhận dạng từng bộ phận cơ thể.
  • Zhang, Bauckhage và Cremers (2014) sử dụng Haar-like kết hợp thu hẹp vùng khảo sát (tập trung vào góc trên bên phải ảnh). Từ các hạn chế của những nghiên cứu trước, chương 1 xác định hướng nghiên cứu của đề tài là kết hợp bộ phân loại xếp tầng (Viola-Jones, 2001) với đặc trưng HOG (Dalal & Triggs, 2005) và thuật toán AdaBoost.

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

Chương 2 phân tích cơ sở toán học và thuật toán của các kỹ thuật xử lý ảnh:

  • Thị giác máy tính: Định nghĩa, mối tương quan với xử lý ảnh, phân tích ảnh, thị giác máy và các ứng dụng trong y tế, công nghiệp, quân sự.
  • Phát hiện đối tượng: Phân biệt hai trường phái tiếp cận (dựa trên ảnh và dựa trên dạng hình học).
  • Các loại đặc trưng: Chi tiết cấu trúc Haar-like (các kiểu two-rectangle, three-rectangle, four-rectangle), cách tính mã LBP $2^P$ cấu trúc đối xứng tròn $LBP_{P,R}$, và 4 bước trích xuất HOG. Đồ án đưa ra ví dụ tính toán số học chi tiết trên ma trận ảnh mẫu kích thước $10 \times 8$ pixel với khối $2 \times 2$ cells, lượng hóa 18 bin hướng (signed-HOG), thu được véc-tơ đặc trưng 864 chiều.
  • Thuật toán AdaBoost: Trình bày nguyên lý kết hợp tuyến tính các bộ phân loại yếu $h_i(x)$ thành bộ phân loại mạnh $H(x) = \text{sign}(\sum \alpha_i h_i(x))$. So sánh chi tiết thuật toán của 3 biến thể DAB (phân loại nhị phân), GAB (hồi quy bình phương tối thiểu có trọng số) và RAB (dựa trên xác suất thực). Trình bày 4 bước trong thuật toán phát hiện đối tượng của Viola-Jones và cơ chế trượt cửa sổ, loại bỏ nhanh các mẫu âm tính qua từng giai đoạn (stage) của bộ phân loại xếp tầng.

Chương 3: Hệ thống phát hiện đối tượng và Kết quả thực nghiệm

Chương 3 mô tả quá trình xây dựng hệ thống và kiểm thử thực nghiệm:

  • Xây dựng hệ thống: Dữ liệu huấn luyện gồm hơn 16.000 mẫu được gán nhãn ROI bằng mặt nạ nhị phân. Quá trình huấn luyện diễn ra qua $N$ giai đoạn, ở mỗi giai đoạn các mẫu dương tính bị phân loại sai sẽ được đưa vào tập mẫu âm tính để huấn luyện lại cho giai đoạn kế tiếp.
  • Kết quả kiểm tra: Tiến hành kiểm thử trên 400 ảnh mẫu cho mỗi loại đối tượng (chia thành 2 bộ dữ liệu độc lập, mỗi bộ gồm ảnh có đối tượng và ảnh không có đối tượng).
  • Đánh giá hiệu năng: Sử dụng ma trận nhầm lẫn với các chỉ số True Positive (TP), False Positive (FP), True Negative (TN), False Negative (FN), độ nhạy (Sensitivity = $\frac{TP}{TP+FN}$), độ đặc hiệu (Specificity = $\frac{TN}{TN+FP}$), độ chính xác tổng thể ($ACC = \frac{TP+TN}{TP+FP+TN+FN}$) và biểu đồ đường cong ROC.

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

Chương 4 tổng kết các kết quả đạt được, chỉ ra các hạn chế trong quá trình thực nghiệm và đề xuất phương hướng phát triển hệ thống cho các nghiên cứu tiếp theo.

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

Kết quả thực nghiệm định lượng

Hệ thống được kiểm tra trên 400 ảnh mẫu thử nghiệm cho mỗi đối tượng (chia thành 2 bộ dữ liệu kiểm tra độc lập):

Loại đối tượng Bộ dữ liệu Nhận đúng mẫu có đối tượng (TP) Nhận sai mẫu có đối tượng (FN) Nhận đúng mẫu không có đối tượng (TN) Nhận sai mẫu không có đối tượng (FP) Độ chính xác từng bộ (ACC)
Ô tô Bộ dữ liệu 1 87 13 88 12 87,50%
Bộ dữ liệu 2 88 12 84 16 86,00%
Người đi bộ Bộ dữ liệu 1 89 11 90 10 89,50%
Bộ dữ liệu 2 86 14 85 15 85,50%
  • Độ chính xác trung bình (ACC): Đạt 86,75% đối với phương tiện giao thông (ô tô) và 87,50% đối với đối tượng người đi bộ.
  • Đánh giá qua đường cong ROC: Hệ thống thể hiện khả năng phân loại ổn định giữa tỷ lệ nhận đúng (True Positive Rate) và tỷ lệ báo động sai (False Positive Rate) trên cả hai tập đối tượng.

Đóng góp kỹ thuật của đề tài

  1. Kết hợp bộ phân loại xếp tầng (Cascade Classifier) với đặc trưng HOG và thuật toán Gentle AdaBoost (GAB) trên nền tảng Matlab, giúp tối ưu hóa thời gian huấn luyện và nâng cao khả năng phát hiện hai đối tượng phổ biến trong đô thị.
  2. Xây dựng tập cơ sở dữ liệu thực tế gồm hơn 16.000 mẫu ảnh chụp từ môi trường giao thông Việt Nam bằng thiết bị di động có độ phân giải 8MP và 23MP.
  3. Đề xuất quy trình tiền xử lý ảnh sử dụng mặt nạ nhị phân để trích xuất vùng quan tâm (ROI) phục vụ huấn luyện bộ phân loại đạt hiệu quả cao.

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

Hạn chế được ghi nhận

  • Môi trường thực thi: Việc huấn luyện và chạy thử nghiệm trên phần mềm Matlab khiến hệ thống khó đáp ứng trực tiếp yêu cầu xử lý trong điều kiện thời gian thực (real-time).
  • Hiệu năng phần cứng: Tốc độ xử lý của máy tính xách tay cá nhân (Core i5 RAM 8GB, Core i3 RAM 4GB) bị quá tải khi xử lý tập dữ liệu mẫu có dung lượng quá lớn.
  • Điều kiện thu nhận ảnh: Kết quả phân loại bị ảnh hưởng khi đối tượng bị che khuất một phần hoặc góc chụp bị lệch (không phải góc chụp chính diện). Đối với ô tô, bộ phân loại hoạt động tối ưu nhất khi phát hiện phần đuôi xe và trong khung hình không chứa quá nhiều đối tượng gây nhiễu.

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

  • Chuyển đổi ngôn ngữ và tối ưu phần cứng: Chuyển đổi mã nguồn thuật toán sang các ngôn ngữ lập trình có tốc độ thực thi cao hơn (như C# hoặc C++) để tích hợp lên các hệ thống phần cứng nhúng nhỏ gọn, đáp ứng thời gian thực cho xe bán tự động và xe tự lái.
  • Nâng cấp chức năng nhận dạng: Phát triển từ mức độ phát hiện (detection) vị trí đối tượng sang nhận dạng chi tiết thông tin đối tượng (recognition).
  • Mở rộng đối tượng nhận diện: Huấn luyện bổ sung mô hình cho các loại phương tiện giao thông đặc thù khác như xe máy, xe đạp để ứng dụng trong các hệ thống điều tiết giao thông và giám sát an ninh đô thị.

Giá trị tham khảo

Đồ án là tài liệu tham khảo phù hợp cho sinh viên, học viên và nhóm nghiên cứu thuộc các chuyên ngành Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử, Công nghệ Thông tin, Kỹ thuật Máy tính và Xử lý ảnh / Thị giác máy tính:

  • Phần lý thuyết tính toán đặc trưng HOG và AdaBoost: Cung cấp các bước toán học chi tiết kèm ví dụ số học ma trận cụ thể về quy trình trích xuất HOG, hữu ích cho người bắt đầu tìm hiểu về xử lý ảnh truyền thống.
  • Kinh nghiệm thiết lập tham số huấn luyện: Bảng hướng dẫn cấu hình số lượng giai đoạn (stages) và ngưỡng sai số tương ứng với kích thước tập mẫu là tài liệu thực hành thiết thực khi xây dựng bộ phân loại xếp tầng.
  • Mã nguồn tham khảo: Cung cấp đoạn mã hoàn chỉnh trên Matlab trong phần phụ lục về việc tạo danh sách dữ liệu, cắt khung hình từ video, cấu hình hàm trainCascadeObjectDetector và phát hiện đối tượng trên chuỗi video.

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

1. Đồ án sử dụng biến thể AdaBoost nào và kết hợp với đặc trưng gì để phát hiện đối tượng?
Đồ án sử dụng biến thể Gentle AdaBoost (GAB) kết hợp cùng đặc trưng biểu đồ hướng gradient (HOG) để huấn luyện bộ phân loại xếp tầng (Cascade Classifier), nhằm đẩy nhanh tốc độ huấn luyện và nâng cao độ chính xác nhận diện ô tô và người đi bộ.

2. Quy mô tập dữ liệu huấn luyện ban đầu của đề tài là bao nhiêu và thu thập bằng thiết bị nào?
Tập dữ liệu huấn luyện gồm hơn 16.000 mẫu ảnh cho mỗi loại đối tượng (bao gồm cả mẫu dương tính chứa đối tượng và mẫu âm tính không chứa đối tượng), được chụp thực tế từ điện thoại di động có độ phân giải 8 megapixel và 23 megapixel.

3. Kết quả độ chính xác (ACC) thực nghiệm của hệ thống đạt mức bao nhiêu?
Khi kiểm tra trên 400 ảnh mẫu thử nghiệm cho mỗi đối tượng (chia làm 2 bộ dữ liệu kiểm tra độc lập), độ chính xác trung bình đạt 86,75% đối với phương tiện giao thông (ô tô) và đạt 87,50% đối với người đi bộ.

4. Vì sao hệ thống phát hiện đối tượng trong đồ án chưa thể áp dụng thời gian thực tế trên xe?
Do toàn bộ hệ thống được xây dựng và thực thi trên môi trường phần mềm Matlab với cấu hình máy tính xách tay thử nghiệm (Core i5 RAM 8GB và Core i3 RAM 4GB), tốc độ xử lý chưa tối ưu hóa để đáp ứng độ trễ thời gian thực của các hệ thống hỗ trợ lái thực tế.

5. Vùng quan tâm (ROI) được tác giả tạo ra bằng cách nào trong bước tiền xử lý dữ liệu?
Tác giả sử dụng mặt nạ nhị phân có kích thước bằng với ảnh mẫu huấn luyện, trong đó các pixel thuộc vùng chứa đối tượng cần nhận dạng được gán giá trị bằng 1, các pixel nền bên ngoài ROI được gán giá trị bằng 0 để trích xuất đặc trưng chính xác cho bộ phân loại.

Kết luận

Đồ án tốt nghiệp đã xây dựng thành công phần mềm phát hiện ô tô và người đi bộ phục vụ bài toán hiểu biết cảnh quan giao thông dựa trên thị giác máy tính. Bằng việc kết hợp đặc trưng HOG và thuật toán Gentle AdaBoost trên cấu trúc phân loại xếp tầng, hệ thống đạt độ chính xác thực nghiệm trung bình 86,75% với ô tô và 87,50% với người đi bộ trên tập dữ liệu hơn 16.000 mẫu. Mặc dù còn hạn chế về khả năng xử lý thời gian thực trên Matlab và góc quan sát đối tượng bị che khuất, công trình đã hoàn thành các nhiệm vụ nghiên cứu đề ra và mở ra hướng tiếp cận triển khai trên phần cứng nhúng với các ngôn ngữ biên dịch cấp cao.