Bối cảnh và vấn đề nghiên cứu
Lý do chọn đề tài và bối cảnh thực tiễn
Cùng với sự phát triển của kinh tế và mức sống, nhu cầu đi du lịch, nghỉ dưỡng dài ngày xa nhà của người dân ngày càng gia tăng. Vấn đề an tâm về an ninh tài sản nhà ở khi vắng mặt trở thành một nhu cầu thực tiễn cấp thiết. Để giải quyết bài toán giám sát từ xa, các giải pháp truyền thống thường sử dụng phương pháp trừ nền (Background Subtraction) để phát hiện chuyển động dựa trên sự chênh lệch số lượng điểm ảnh (pixel).
Tuy nhiên, phương pháp trừ nền bộc lộ nhiều nhược điểm nghiêm trọng: rất nhạy với nhiễu camera, nhạy với sự thay đổi của điều kiện chiếu sáng và không thích ứng tốt với các bối cảnh động (như cành cây rung rinh trước gió hoặc ánh sáng biến thiên liên tục). Nhằm khắc phục các giới hạn này, đề tài "Ứng dụng xử lý ảnh trong giám sát an ninh sử dụng bằng cách kết hợp mô hình phân phối chuẩn" đã được thực hiện, ứng dụng mô hình hỗn hợp Gauss (Gaussian Mixture Model - GMM) có khả năng tự động cập nhật tham số nền theo thời gian thực kết hợp với nền tảng phần cứng nhúng để nhận diện chuyển động và cảnh báo qua tin nhắn SMS.
Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu chính của đề tài là thi công hoàn chỉnh một hệ thống giám sát an ninh hoạt động ổn định, kết hợp kiến thức lập trình nhúng trên kit máy tính đơn bo và thuật toán xử lý ảnh, có khả năng phát hiện đối tượng xâm nhập và gửi tin nhắn cảnh báo đến số điện thoại của chủ nhà.
Nhiệm vụ nghiên cứu được phân rã thành 10 nội dung cụ thể:
- Tìm hiểu nội dung lý thuyết về xử lý ảnh và phương pháp mô hình phân phối chuẩn kết hợp (GMM).
- Nghiên cứu cấu tạo, thông số kỹ thuật và phương thức giao tiếp của các thiết bị phần cứng gồm: Camera giám sát Bluelover S7, kit Raspberry Pi B+, module SIM 900A và thư viện xử lý ảnh OpenCV.
- Cài đặt môi trường phát triển Microsoft Visual Studio 2015 cùng thư viện OpenCV trên máy tính cá nhân để tiến hành thử nghiệm thuật toán ban đầu.
- Cài đặt hệ điều hành Raspbian và thư viện OpenCV lên kit Raspberry Pi B+.
- Kết nối camera với Raspberry Pi B+, thực hiện thu nhận luồng video và lập trình giải thuật xác định chuyển động.
- Tiến hành thực nghiệm kiểm tra giải thuật trong hai điều kiện môi trường: ánh sáng thường và ánh sáng tối với sự thay đổi của các tham số cấu hình.
- Kết nối và cấu hình module SIM 900A với Raspberry Pi B+ qua giao tiếp nối tiếp để triển khai chức năng truyền gửi tin nhắn SMS.
- Gia công khung vỏ bảo vệ bằng vật liệu mica, thực hiện đóng gói kit xử lý Raspberry Pi B+ cùng module SIM 900A thành một khối hoàn chỉnh.
- Kiểm tra, đo đạc và đánh giá độ ổn định tổng thể của hệ thống.
- Tổng hợp dữ liệu, hoàn thành báo cáo đồ án tốt nghiệp và xây dựng tài liệu thuyết minh.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Kỹ thuật xử lý luồng video thời gian thực, thuật toán mô hình phân phối chuẩn kết hợp (GMM), hệ thống nhúng Raspberry Pi B+ và module truyền thông viễn thông SIM 900A.
- Phạm vi không gian: Hệ thống được thiết kế để lắp đặt linh hoạt trong nhà hoặc ngoài trời, thử nghiệm trực tiếp tại không gian phòng trọ giả định. Kích thước phần cứng đóng gói giới hạn trong khung vỏ mica chiều dài 15 cm, chiều rộng 11 cm và chiều cao 7 cm.
- Phạm vi thời gian: Đồ án được nghiên cứu, thi công và nghiệm thu trong thời gian 3 tháng (hoàn thành vào tháng 07/2016).
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình toán học
Hệ thống sử dụng nền tảng toán học của hai phương pháp phát hiện chuyển động trong thị giác máy tính:
-
Phương pháp trừ nền (Background Subtraction):
Hoạt động dựa trên việc tính toán sự khác biệt giữa khung hình hiện tại $I(x, y, t)$ và khung hình nền ước tính $B(x, y, t)$. Mặt nạ nhị phân tiền cảnh được trích xuất bằng cách so sánh độ sai khác tuyệt đối với một ngưỡng xác định ($Th$). Phương pháp này sử dụng thuật toán phân ngưỡng Otsu để chuyển đổi sang ảnh nhị phân và đếm số lượng pixel trắng để kết luận chuyển động.
-
Phương pháp mô hình phân phối chuẩn kết hợp (Gaussian Mixture Model - GMM):
Mô hình xấp xỉ hàm mật độ xác suất của từng giá trị điểm ảnh theo thời gian bằng một tổ hợp tuyến tính gồm $M$ hàm phân phối Gauss:
$$P_{GMM}(\vec{x}) = \sum_{i=1}^{M} W_i P_i(\vec{x})$$
Trong đó, $W_i$ là trọng số của phân phối Gauss thứ $i$ thỏa mãn điều kiện $0 \le W_i \le 1$ và $\sum_{i=1}^{M} W_i = 1$. Mỗi phân phối thành phần có hàm mật độ:
$$P(\vec{x}) = \frac{1}{(2\pi)^{D/2} |\Sigma|^{1/2}} \exp\left(-\frac{1}{2} (\vec{x} - \vec{\mu})' \Sigma^{-1} (\vec{x} - \vec{\mu})\right)$$
Bộ tham số $\lambda = {W_i, \Sigma_i, \mu_i}$ được ước lượng và tối ưu hóa thông qua thuật toán Cực đại hóa kỳ vọng (Expectation Maximization - EM) theo tiêu chí Ước lượng hợp lý cực đại (Maximum Likelihood - ML) hoặc Xác suất hậu nghiệm cực đại (Maximum A Posteriori - MAP). Quá trình cập nhật trực tuyến giá trị trung bình ($\mu$) và phương sai ($\sigma^2$) theo hệ số học $p$ được biểu diễn:
$$\mu_{i, t+1} = (1-p)\mu_{i, t} + p X_{t+1}$$
$$\sigma_{i, t+1}^2 = (1-p)\sigma_{i, t}^2 + p(X_{t+1} - \mu_{i, t+1})^2$$
Phương pháp nghiên cứu và công cụ thực nghiệm
- Phương pháp thực nghiệm kỹ thuật: Xây dựng phần cứng nhúng, thu nhận dữ liệu video trực tiếp từ camera tĩnh ở độ phân giải thực, chạy giải thuật nhận dạng điểm ảnh tiền cảnh và đánh giá sự biến thiên số lượng pixel trắng qua từng khung hình.
- Môi trường phần mềm và thư viện:
- Hệ điều hành Raspbian (nhân Linux, giao diện MATE dựa trên GNOME 2).
- Ngôn ngữ lập trình: Python.
- Thư viện thị giác máy tính: OpenCV với các module cấu trúc CXCORE (cấu trúc dữ liệu, đại số tuyến tính), CV (xử lý ảnh và hình học), CVAUX (module thử nghiệm), HighGUI (giao diện vào/ra dữ liệu) và CVCAM.
- Công cụ quản trị: Remote Desktop Protocol qua kết nối mạng nội bộ.
Thiết kế và triển khai
Kiến trúc phần cứng và kết nối hệ thống
Hệ thống phần cứng bao gồm kit xử lý trung tâm kết nối trực tiếp với các module chức năng ngoại vi:
| Tên thiết bị |
Thông số kỹ thuật chính |
Giao thức kết nối với Raspberry Pi B+ |
| Kit Raspberry Pi B+ |
CPU ARM1176JZF-S (700 MHz), RAM 512 MB SDRAM, thẻ MicroSD, 40 chân GPIO, cổng mạng Ethernet 10/100M |
Bo mạch chủ xử lý trung tâm |
| Camera Bluelover S7 |
Cảm biến 5.0 Megapixels, zoom số 4x, tích hợp microphone |
Kết nối qua cổng USB 2.0 |
| Module SIM 900A |
Kích thước 65 x 45 mm, nguồn 5V, tự kích hoạt khi cấp nguồn |
Chuẩn UART: TXD (SIM) $\to$ RXD (GPIO 15), RXD (SIM) $\to$ TXD (GPIO 14), chung Mass (GND) |
| Module Wifi |
Bộ định tuyến truyền nhận không dây |
Cáp mạng RJ45 cắm vào cổng Ethernet LAN |
| Nguồn cấp Adapter |
Điện áp vào 100-240V AC, ngõ ra 5V DC - dòng 1A/2A (2 bộ) |
Cổng cấp nguồn Micro USB cho Pi và mạch nguồn SIM |
Khối xử lý được đặt trong vỏ bảo vệ bằng chất liệu mica kích thước $15 \times 11 \times 7\text{ cm}$ gồm các tấm mặt nắp, mặt đáy ($15 \times 11\text{ cm}$), mặt cạnh trước ($15 \times 7\text{ cm}$) và mặt cạnh phải ($11 \times 7\text{ cm}$) được cố định bằng ốc vít.
Giải thuật xử lý và cơ chế chống báo động giả
Quy trình vận hành logic của hệ thống được lập trình qua hai lưu đồ giải thuật chính:
-
Lưu đồ phát hiện chuyển động:
- Khởi tạo: Thu nhận 50 khung hình ($n = 50$) đầu tiên để học và thiết lập các thông số khởi tạo ban đầu cho mô hình nền (mỗi điểm ảnh được mô hình hóa bằng 5 phân phối Gauss với các cặp giá trị trung bình $\mu$ và phương sai $\sigma^2$ riêng biệt).
- Cập nhật: Liên tục cập nhật giá trị $\mu$ và $\sigma^2$ khi có dữ liệu khung hình mới truyền về theo công thức thích nghi trực tuyến.
- Trích xuất tiền cảnh: Phân tách các điểm ảnh không thuộc mô hình nền, chuyển đổi thành các pixel trắng trên mặt nạ nhị phân.
- Đếm và so ngưỡng: Đếm tổng số lượng pixel trắng trong khung hình. Nếu tổng số pixel vượt ngưỡng cài đặt trước, chuyển sang luồng điều khiển gửi cảnh báo.
-
Lưu đồ lọc nhiễu và gửi tin nhắn cảnh báo (SMS):
- Nhằm loại bỏ các chuyển động ảo ngẫu nhiên (như gió thổi làm rung cành cây, ánh sáng thay đổi tức thời, hoặc chim bay ngang qua tầm nhìn camera), hệ thống thiết lập bộ đếm thời gian thực.
- Với tốc độ khung hình chuẩn 30 fps (30 khung hình/giây), biến đếm
Count sẽ tăng lên 1 đơn vị mỗi khi phát hiện một khung hình có chuyển động thỏa mãn ngưỡng pixel trắng.
- Hệ thống chỉ kích hoạt lệnh gửi tin nhắn cảnh báo qua giao tiếp UART tới module SIM 900A khi và chỉ khi biến đếm đạt liên tục $\text{Count} \ge 30$ (tương đương hiện tượng chuyển động kéo dài liên tục trong tối thiểu 1 giây). Nếu chuỗi chuyển động bị gián đoạn trước 30 frame,
Count sẽ được đặt lại về 0.
Nội dung chính theo từng chương
Chương 1. Tổng quan
Chương 1 phân tích tính cấp thiết của bài toán an ninh nhà ở trong bối cảnh xã hội hiện đại, chỉ ra các hạn chế kỹ thuật của phương pháp trừ nền truyền thống khi hoạt động trong môi trường chiếu sáng không ổn định. Tác giả xác định rõ ràng mục tiêu nghiên cứu, liệt kê 10 nội dung thực hiện tuần tự, xác lập các giới hạn về kích thước mô hình, linh kiện phần cứng và phác thảo cấu trúc 6 chương của báo cáo.
Chương 2. Cơ sở lý thuyết
Chương này đi sâu vào phân tích toán học và so sánh hai giải thuật thị giác máy tính:
- Phương pháp trừ nền: Trình bày chi tiết chu trình 4 bước gồm Tiền xử lý (lọc nhiễu, chuẩn hóa không gian màu RGB/HSV), Mô hình hóa nền, Phát hiện đối tượng và Hợp lý hóa dữ liệu; chỉ ra ưu điểm xử lý nhanh nhưng độ chính xác thấp và nhạy với nhiễu môi trường.
- Phương pháp mô hình phân phối chuẩn kết hợp (GMM): Trình bày công thức toán học của hàm mật độ Gauss đơn biến, đa biến, tổ hợp tổng trọng số GMM, cấu trúc ma trận hiệp phương sai (Nodal, Grand, Global dạng Diagonal hoặc Full). Phân tích chi tiết quy trình ước lượng tham số qua thuật toán EM, công thức cập nhật thích nghi trực tuyến và giải thuật khởi tạo K-means.
Chương 3. Tính toán và thiết kế
Chương 3 trình bày toàn bộ sơ đồ khối chức năng của hệ thống, thiết lập bảng ánh xạ kết nối chân tín hiệu giữa kit Raspberry Pi B+ với module SIM 900A và camera Bluelover S7. Tác giả liệt kê chi tiết các thông số kỹ thuật phần cứng, phân tích cấu trúc vi xử lý kiến trúc ARM11, cấu hình giao diện vào ra GPIO, cổng USB, chuẩn Ethernet và các thông số nguồn cấp của Adapter.
Chương 4. Thi công hệ thống
Chương này mô tả quy trình hiện thực hóa mô hình thực tế:
- Thi công cắt ghép vỏ hộp mica kích thước $15 \times 11 \times 7\text{ cm}$.
- Quy trình kết nối dây tín hiệu, cấu hình truyền thông nối tiếp UART và cấp nguồn hoạt động.
- Trình bày lưu đồ thuật toán trích xuất pixel trắng và lưu đồ thuật toán điều khiển biến đếm 30 khung hình để gửi tin nhắn SMS.
- Giới thiệu tổng quan hệ điều hành Raspbian, cấu trúc các module thư viện OpenCV (CXCORE, CV, CVAUX, HighGUI, CVCAM).
- Soạn thảo tài liệu hướng dẫn vận hành hệ thống qua Remote Desktop và quy trình tắt máy (Shutdown) an toàn.
Chương 5. Kết quả - Nhận xét - Đánh giá
Chương 5 thiết lập không gian thực nghiệm tại khu vực phòng trọ, thực hiện thu hình các kịch bản có 1 người, 2 người và 3 người chuyển động trong hai môi trường ánh sáng thường (ngoài phòng) và ánh sáng tối (trong phòng tắt đèn). Chương này công bố dữ liệu đo lường số lượng pixel trắng tại khung hình thứ 600 khi khảo sát các bộ tham số History, Varthreshold và Shadowdetection.
Chương 6. Kết luận và hướng phát triển
Chương tổng kết các hạng mục đã hoàn thành về mặt lý thuyết mô hình hóa và chế tạo phần cứng; chỉ ra các hạn chế cố hữu và đề xuất phương hướng nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Dữ liệu kết quả thực nghiệm
Các thử nghiệm được tiến hành trên cùng một luồng video đầu vào tại vị trí khung hình thứ 600, khảo sát sự thay đổi của ba tham số cấu hình: số lượng khung hình học nền (History), ngưỡng phát hiện (Varthreshold), và chế độ đánh dấu bóng tiền cảnh (Shadowdetection):
| Điều kiện môi trường |
History |
Varthreshold |
Shadowdetection |
Kết quả số pixel trắng ghi nhận |
Nhận xét chất lượng quan sát |
| Ánh sáng thường |
100 |
16 |
True |
4.283 |
Hình ảnh xuất hiện một số nhiễu nhỏ |
| (Camera ngoài phòng) |
500 |
16 |
True |
4.491 |
Độ phân tách tiền cảnh ở mức trung bình |
|
900 |
16 |
True |
4.606 |
Tốc độ cập nhật nền chậm hơn |
|
500 |
1 |
True |
36.753 |
Rất nhiều nhiễu, nhận diện sai lệch lớn |
|
500 |
50 |
True |
4.228 |
Tối ưu nhất: Hình ảnh rõ nét, loại bỏ nhiễu và bóng tốt |
|
500 |
100 |
True |
3.282 |
Ngưỡng quá cao làm mất một số chi tiết đối tượng |
|
500 |
16 |
False |
4.979 |
Xuất hiện bóng của đối tượng chuyển động |
| Ánh sáng tối |
100 |
16 |
True |
4.752 |
Tốc độ cập nhật chưa đủ bù sáng yếu |
| (Camera trong phòng tắt đèn) |
500 |
16 |
True |
5.832 |
Phân tách đối tượng ở mức khá |
|
900 |
16 |
True |
7.625 |
Độ nhạy cao nhưng dễ lẫn nhiễu nền tối |
|
500 |
1 |
True |
30.586 |
Nhiễu hạt do cảm biến khuếch đại trong tối |
|
500 |
50 |
True |
1.872 |
Tối ưu nhất: Lọc nhiễu nền tối xuất sắc, đối tượng rõ ràng |
|
500 |
100 |
True |
1.764 |
Mất một phần diện tích biên đối tượng |
|
500 |
16 |
False |
5.832 |
Bóng tối của đối tượng bị gộp vào tiền cảnh |
Giải pháp và đóng góp của đề tài
- Khẳng định bộ tham số tối ưu: Thực nghiệm chứng minh rằng cấu hình $\text{History} = 500$, $\text{Varthreshold} = 50$ và $\text{Shadowdetection} = \text{True}$ mang lại chất lượng quan sát rõ nét nhất, giúp hệ thống thích nghi tốt với cả điều kiện đủ sáng và thiếu sáng.
- Hiện thực hóa giải pháp nhúng hoàn chỉnh: Tích hợp thành công thuật toán GMM phức tạp lên kit máy tính đơn bo tài nguyên thấp (Raspberry Pi B+ 700 MHz, 512 MB RAM) hoạt động độc lập không cần máy tính chủ sau khi khởi động.
- Khắc phục triệt để báo động giả: Ứng dụng thành công cơ chế lọc nhiễu thời gian thực với ngưỡng chuyển động liên tục 30 frame/giây, đảm bảo hệ thống chỉ gửi tin nhắn SMS khi có xâm nhập thực tế, giải quyết được nhược điểm báo động sai do rung lá cây hay ánh sáng nhấp nháy của phương pháp trừ nền.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế kỹ thuật
Căn cứ theo các giới hạn được tác giả ghi nhận trong văn bản:
- Hệ thống bắt buộc phải sử dụng camera đặt ở vị trí cố định (camera tĩnh), không hỗ trợ camera chuyển động hoặc camera quay quét (PTZ).
- Việc khởi tạo các tham số Gaussian ban đầu có tính chất quyết định cao đến hiệu năng; các tham số cấu hình phụ thuộc vào việc tinh chỉnh thực nghiệm thủ công theo từng môi trường cụ thể.
- Hệ thống yêu cầu cấu hình phần cứng tối thiểu và quy trình khởi động/tắt máy phải thông qua giao diện mạng trước khi chạy độc lập hoàn toàn.
Hướng phát triển
- Tích hợp thêm các cảm biến phụ trợ để nâng cao độ chính xác nhận diện.
- Phát triển thêm tính năng truyền gửi hình ảnh trực tiếp đính kèm qua mạng Internet bên cạnh hình thức cảnh báo tin nhắn văn bản SMS truyền thống.
- Nghiên cứu tối ưu hóa mã nguồn xử lý ảnh để tăng tốc độ khung hình xử lý trên các thế hệ kit nhúng mới hơn.
Giá trị tham khảo
Đồ án là tài liệu thực hành kỹ thuật hữu ích cho:
- Sinh viên ngành Kỹ thuật Điện tử, Viễn thông, Tự động hóa và Công nghệ thông tin: Tham khảo phương pháp tích hợp xử lý ảnh thời gian thực (OpenCV/Python) lên các nền tảng phần cứng nhúng (Raspberry Pi).
- Kỹ sư và người nghiên cứu hệ thống giám sát an ninh: Tham khảo chi tiết phương thức ghép nối phần cứng qua giao tiếp UART giữa bo mạch điều khiển với module viễn thông SIM 900A, cách thiết lập cấu hình tham số GMM (
History, Varthreshold, Shadowdetection) để triệt tiêu bóng và lọc nhiễu trong các điều kiện môi trường ánh sáng phức tạp.
Câu hỏi thường gặp
1. Vì sao đề tài sử dụng phương pháp mô hình phân phối chuẩn kết hợp (GMM) thay vì phương pháp trừ nền truyền thống?
Phương pháp trừ nền truyền thống rất nhạy cảm với nhiễu camera, thay đổi cường độ chiếu sáng và các dao động môi trường như cành cây đung đưa. Phương pháp GMM mô hình hóa mỗi pixel bằng một tổ hợp các phân phối Gauss và tự động cập nhật trung bình, phương sai theo thời gian, cho phép đối tượng hòa nhập vào nền mà không phá hủy mô hình, đồng thời hỗ trợ lọc bóng và nhiễu hiệu quả.
2. Hệ thống làm thế nào để tránh việc gửi tin nhắn cảnh báo giả khi có lá cây rung hoặc ánh sáng thay đổi tức thời?
Hệ thống sử dụng giải thuật đếm số khung hình liên tiếp. Cứ mỗi khung hình có số pixel trắng vượt ngưỡng, biến đếm Count tăng 1. Chỉ khi hiện tượng chuyển động xuất hiện liên tục trong đủ 30 khung hình (tương đương 1 giây với tốc độ 30 fps), hệ thống mới kích hoạt lệnh gửi tin nhắn cảnh báo qua module SIM 900A.
3. Bộ tham số cấu hình GMM nào cho kết quả phát hiện chuyển động rõ nét nhất trong thực nghiệm?
Qua khảo sát tại khung hình thứ 600 ở cả hai môi trường ánh sáng thường và ánh sáng tối, bộ tham số $\text{History} = 500$, $\text{Varthreshold} = 50$ và $\text{Shadowdetection} = \text{True}$ cho kết quả tách biên rõ ràng nhất, loại bỏ tối đa nhiễu hạt và vùng bóng của đối tượng.
4. Module SIM 900A được kết nối với Raspberry Pi B+ qua những chân tín hiệu nào?
Module SIM 900A kết nối với Raspberry Pi B+ theo giao thức truyền thông nối tiếp UART bằng 3 đường dây: chân TXD của SIM nối với chân RXD (GPIO 15) của Pi, chân RXD của SIM nối với chân TXD (GPIO 14) của Pi, và chân GND của hai thiết bị nối chung với nhau.
5. Trong pha khởi tạo ban đầu, hệ thống cần bao nhiêu khung hình để học các thông số mô hình nền?
Hệ thống thu nhận 50 khung hình ($n = 50$) ban đầu từ camera để học và tính toán các thông số giá trị trung bình ($\mu$) và phương sai ($\sigma^2$) khởi tạo cho 5 hàm phân phối Gauss trên mỗi điểm ảnh.
Kết luận
Đồ án đã thiết kế và thi công thành công hệ thống giám sát an ninh độc lập kết hợp giữa thuật toán xử lý ảnh mô hình phân phối chuẩn (GMM) trên nền tảng nhúng Raspberry Pi B+ và module truyền thông SIM 900A. Bằng việc thực nghiệm chi tiết các bộ thông số trong môi trường ánh sáng thường và ánh sáng tối, nhóm tác giả đã xác định được cấu hình tối ưu giúp hệ thống hoạt động ổn định và lọc bóng chính xác. Cơ chế xác nhận chuyển động liên tục 30 khung hình/giây đã giải quyết hiệu quả vấn đề cảnh báo giả, hoàn thành đầy đủ các mục tiêu kỹ thuật đề ra ban đầu.