Giới thiệu dự án
Trong bối cảnh đô thị hóa nhanh chóng và sự gia tăng mật độ dân số tại các trung tâm kinh tế trọng điểm như TP. Hồ Chí Minh, Hà Nội và Đà Nẵng, việc đảm bảo an ninh trật tự tại các khu vực công cộng (trung tâm thương mại, trường học, bệnh viện, sân bay) trở thành thách thức lớn đối với lực lượng quản lý. Mặc dù hệ thống camera giám sát (CCTV) đã được lắp đặt dày đặc, hơn 85% các hệ thống hiện hữu chỉ hoạt động ở chế độ ghi hình thụ động (passive recording). Khi xảy ra các sự cố như thất lạc người thân, tội phạm xâm nhập hoặc trộm cắp, nhân viên an ninh phải rà soát thủ công hàng trăm giờ video từ nhiều góc máy quay độc lập—một quy trình tiêu tốn từ 70% đến 80% thời gian điều tra nhưng tỷ lệ bỏ sót đối tượng vẫn ở mức cao do giới hạn thể lực và thị giác con người.
Vấn đề kỹ thuật cốt lõi nảy sinh từ việc các camera quan sát có góc nhìn không chồng lấn (non-overlapping field of view - Disjoint FOV). Khi một người di chuyển ra khỏi vùng quan sát của camera hiện tại và xuất hiện tại một camera khác, các thuật toán theo dõi đơn lẻ bị đứt gãy luồng định danh. Đồng thời, sự biến thiên mạnh về tư thế (pose variation), góc chụp, điều kiện chiếu sáng phức tạp, cũng như hiện tượng bị che khuất một phần bởi ngoại cảnh (occlusion) khiến việc nhận diện lại khuôn mặt (Face Recognition) gần như bất khả thi ở cự ly xa hoặc độ phân giải thấp.
Đề tài "Phát hiện và theo vết người thông qua video camera giám sát" được nghiên cứu và phát triển nhằm giải quyết triệt để bài toán tự động hóa quy trình truy vết đa camera bằng cách tích hợp mô hình học sâu (Deep Learning) vào hệ thống thị giác máy tính.
[Camera Stream 1..N] ──> [YOLOv4: Phát hiện người] ──> [DeepSORT: Theo vết nội bộ camera]
│
▼ (Cropped Bounding Box)
[Truy vấn / Xuất báo cáo] <── [Cosine / Euclidean Matching] <── [ResNet-50 Part-based: Trích xuất Re-ID]
Mục tiêu nghiên cứu cụ thể
- Khảo sát và chuẩn hóa kiến trúc: Nghiên cứu toàn diện các kỹ thuật tái định danh đối tượng (Person Re-Identification - Person Re-ID) và theo dõi đa đối tượng (Multiple Object Tracking - MOT) hiện đại.
- Xây dựng Pipeline phát hiện và bám vết cục bộ: Tích hợp thuật toán phát hiện đối tượng thời gian thực kết hợp thuật toán dự đoán chuyển động để duy trì định danh tạm thời trong từng khung hình video.
- Thiết kế mô hình trích xuất đặc trưng phân vùng (Part-based Re-ID): Xây dựng mạng nơ-ron tích chập (CNN) phân tách feature map thành các dải ngang (horizontal stripes) để nắm bắt đặc trưng cục bộ mịn và giải quyết hiện tượng sai lệch gióng hàng (misalignment).
- Hiện thực hóa hệ thống so khớp liên camera: Xây dựng module trích xuất vector đặc trưng, tính toán độ tương đồng và tự động hợp nhất định danh (ID fusion) khi đối tượng di chuyển xuyên suốt các góc quay khác nhau.
Phạm vi và giới hạn của đề tài
- Đối tượng nghiên cứu: Người đi bộ (pedestrians) di chuyển trong các khung hình video camera giám sát độ phân giải từ SD đến Full HD.
- Không gian thử nghiệm: Môi trường quan sát công cộng cả trong nhà (indoor) và ngoài trời (outdoor) với các góc quay cố định.
- Giới hạn kỹ thuật: Chưa xử lý triệt để các trường hợp đối tượng thay đổi hoàn toàn trang phục (cloth-changing re-ID) hoặc điều kiện ánh sáng hồng ngoại ban đêm thiếu hụt thông tin kênh màu RGB.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng hệ thống tích hợp, việc phân tích ưu và nhược điểm của các giải pháp truyền thống và hiện đại là cơ sở tiên quyết để lựa chọn kiến trúc tối ưu:
| Phương pháp |
Thuật toán đại diện |
Ưu điểm |
Nhược điểm / Rào cản kỹ thuật |
| Truyền thống (Handcrafted) |
DPM + HSV Histograms, Texture Color Stripes |
Không đòi hỏi GPU công suất lớn, xử lý nhanh trên ảnh nhỏ. |
Độ chính xác thấp (< 45% Rank-1), dễ vỡ cấu trúc khi ánh sáng thay đổi hoặc góc nhìn nghiêng. |
| Theo vết cục bộ (Pure MOT) |
SORT, FairMOT |
Tốc độ nhanh (40-60 FPS), liên kết dữ liệu tốt trong cùng 1 video. |
Gán ID mới ngay khi đối tượng bị che khuất hoặc chuyển camera; không có khả năng tái nhận dạng liên camera. |
| Re-ID toàn cục (Global Metric) |
Triplet Loss ResNet-50 (Global Pooling) |
Học khoảng cách biểu diễn tốt, phân biệt được trang phục khác biệt rõ rệt. |
Dễ mất thông tin chi tiết (giày, túi xách, mũ); nhạy cảm với lỗi cắt khung hình (bounding box cropping error). |
| Giải pháp đề xuất (Integrated Part-based) |
YOLOv4 + DeepSORT + Part-based ResNet50 (Stripe Pooling) |
Cân bằng hoàn hảo giữa FPS và độ chính xác; tự động sửa sai phân vùng bằng Softmax alignment; Rank-1 vượt trội. |
Yêu cầu tài nguyên bộ nhớ GPU để xử lý đồng thời luồng suy luận phát hiện và trích xuất vector đặc trưng. |
Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)
- Must-have: Phát hiện người chính xác (mAP > 80% trên bounding box người); duy trì tracklet mượt mà không nhấp nháy; trích xuất embedding vector 2048 chiều; truy vấn đối tượng theo ảnh mẫu (probe image).
- Should-have: Khả năng phân chia 6 dải ngang (6-part stripe partition) với cơ chế tái phân bổ vector cột (column vector reassignment); ngưỡng lọc khoảng cách Euclidean động.
- Could-have: Hỗ trợ xuất luồng video tổng hợp hiển thị ID hợp nhất; giao diện tra cứu lịch sử xuất hiện theo mốc thời gian.
- Won't-have (giai đoạn này): Xử lý video 4K đa luồng trên thiết bị nhúng công suất thấp; phân tích tư thế 3D (3D Skeleton Mesh).
Thiết kế hệ thống
Kiến trúc hệ thống được phân lớp rõ ràng nhằm đảm bảo tính module hóa và khả năng mở rộng:
+-----------------------------------------------------------------------+
| DATA INPUT LAYER |
| RTSP Camera Streams / Video Files / Probe Images |
+-----------------------------------+-----------------------------------+
│
▼
+-----------------------------------------------------------------------+
| DETECTION & TRACKING LAYER |
| - YOLOv4 (CSPDarknet53 Backbone + PANet Neck + YOLO Head) |
| - DeepSORT Tracker (Kalman Filter State Estimator + Hungarian Match) |
+-----------------------------------+-----------------------------------+
│ Bounding Boxes & Tracklets
▼
+-----------------------------------------------------------------------+
| PART-BASED RE-ID FEATURE LAYER |
| - Backbone: ResNet-50 (Layer 1..Layer 4, loại bỏ GAP) |
| - Spatial Partition: Adaptive Average Pooling (P = 6 horizontal parts)|
| - Dimension Reduction: 1x1 Conv2D (2048-dim -> 256-dim) |
| - Misalignment Correction: Softmax-based Column Vector Re-assignment |
+-----------------------------------+-----------------------------------+
│ Feature Descriptors
▼
+-----------------------------------------------------------------------+
| ASSOCIATION & STORAGE LAYER |
| - Metric Evaluation: Euclidean Distance / Cosine Similarity Matrix |
| - ID Management: Global Identity Merger (Distance Threshold tau) |
| - Gallery Storage: In-memory Tensor Matrix / Disk Cache |
+-----------------------------------------------------------------------+
Chi tiết Tech Stack và Phiên bản công nghệ
- Ngôn ngữ phát triển: Python
3.8.10
- Framework học sâu: PyTorch
1.10.2+cu113, Torchvision 0.11.3
- Xử lý thị giác & đa phương tiện: OpenCV-Python
4.5.5.64, Pillow 9.0.1
- Mô hình phát hiện: YOLOv4 xây dựng trên nền Darknet/PyTorch (Pretrained MS COCO)
- Mô hình bám vết: DeepSORT (trang bị Kalman Filter và mạng CNN trích xuất đặc trưng ngoại hình cục bộ)
- Mô hình Backbone Re-ID: ResNet-50, Inception-V3, VGG-16 (Pretrained ImageNet & Fine-tuned trên Market-1501 / DukeMTMC-reID)
- Tính toán ma trận & khoa học dữ liệu: NumPy
1.21.6, SciPy 1.7.3, Scikit-learn 1.0.2
Methodology
Dự án áp dụng mô hình phát triển Agile kết hợp kiểm nghiệm thực nghiệm lặp (Empirical Iteration) với 4 giai đoạn cụ thể:
- Phase 1: Nghiên cứu nền tảng & Chuẩn bị dữ liệu (Tuần 1 - Tuần 4): Thu thập và chuẩn hóa các tập dữ liệu benchmark quốc tế: VIPeR (1,264 ảnh), CUHK03 (13,164 ảnh), Market-1501 (32,668 ảnh của 1,501 người), DukeMTMC-reID (36,411 ảnh) và MSMT17 (126,441 ảnh). Thiết lập pipeline tiền xử lý ảnh (Resize $256 \times 128$, Random Horizontal Flip, Normalization).
- Phase 2: Xây dựng Module Phát hiện & Theo vết (Tuần 5 - Tuần 8): Tinh chỉnh mạng YOLOv4 cho lớp
person, tích hợp thuật toán Kalman Filter và Hungarian trong DeepSORT nhằm tối ưu tốc độ xử lý khung hình trên giây (FPS).
- Phase 3: Thiết kế và Huấn luyện Mạng Part-based Re-ID (Tuần 9 - Tuần 14): Thay thế lớp Global Average Pooling (GAP) của ResNet-50 bằng Adaptive Average Pooling; thiết lập số lượng dải phân vùng $p \in {4, 6, 8}$; cài đặt hàm mất mát phân loại Cross-Entropy Loss kết hợp điều chỉnh sai lệch dải ngang.
- Phase 4: Tích hợp hệ thống, Đo lường & Đánh giá (Tuần 15 - Tuần 18): Ghép nối luồng dữ liệu end-to-end, kiểm thử độ trễ, đo đạc Rank-1, Rank-5, Rank-10, mAP trên tập dữ liệu kiểm thử và đánh giá trên video thực tế.
Implementation và kết quả
Development process & Core Algorithms
1. Quy trình kết hợp YOLOv4 và DeepSORT
YOLOv4 chịu trách nhiệm phát hiện vị trí người đi bộ $B = [x, y, w, h]$ với độ tin cậy $c \ge 0.6$. Sau khi lọc bỏ các bounding box trùng lặp bằng Non-Maximum Suppression (NMS với ngưỡng IoU = 0.45), DeepSORT sử dụng trạng thái Kalman 8 chiều $x = [u, v, \gamma, h, \dot{x}, \dot{y}, \dot{\gamma}, \dot{h}]^T$ để dự đoán vị trí trong frame kế tiếp. Ma trận chi phí phối hợp giữa khoảng cách Mahalanobis chuyển động $d^{(1)}(i, j)$ và khoảng cách cosine vector đặc trưng ngoại hình $d^{(2)}(i, j)$ được tối ưu hóa bằng thuật toán Hungarian:
$$c_{i,j} = \lambda d^{(1)}(i, j) + (1 - \lambda) d^{(2)}(i, j)$$
2. Kiến trúc Part-based Re-ID và Mã nguồn thực thi
Thay vì nén toàn bộ không gian đặc trưng về một vector đơn lẻ (dễ mất mát chi tiết cục bộ), mạng trích xuất đặc trưng biến đổi ảnh đầu vào kích thước $(3, 256, 128)$ thành Tensor đặc trưng 3D $T \in \mathbb{R}^{C \times H \times W}$ (với $C = 2048, H = 16, W = 8$ ở layer cuối của ResNet-50).
Sau đó, lớp AdaptiveAvgPool2d((p, 1)) chia $T$ thành $p$ dải sọc ngang theo trục tung. Mỗi dải được đưa qua lớp tích chập $1 \times 1$ để giảm số chiều từ 2048 xuống 256, trước khi đưa vào các bộ phân loại Fully-Connected riêng biệt với hàm Softmax.
import torch
import torch.nn as nn
from torchvision.models import resnet50
class PartBasedReIDNet(nn.Module):
"""
Kiến trúc trích xuất đặc trưng phân vùng (Part-based CNN)
sử dụng ResNet-50 backbone cho bài toán Person Re-Identification.
"""
def __init__(self, num_classes: int, num_parts: int = 6, feature_dim: int = 256):
super(PartBasedReIDNet, self).__init__()
self.num_parts = num_parts
# Backbone ResNet50: giữ nguyên từ Conv1 đến Layer4
base_resnet = resnet50(pretrained=True)
self.backbone = nn.Sequential(
base_resnet.conv1,
base_resnet.bn1,
base_resnet.relu,
base_resnet.maxpool,
base_resnet.layer1,
base_resnet.layer2,
base_resnet.layer3,
base_resnet.layer4 # Output: (B, 2048, 16, 8)
)
# Thay thế GAP bằng Adaptive Average Pooling chia p dải sọc ngang
self.part_pool = nn.AdaptiveAvgPool2d((self.num_parts, 1))
# Giảm số chiều của từng dải: 2048 -> 256 qua 1x1 Conv
self.reduction_convs = nn.ModuleList([
nn.Sequential(
nn.Conv2d(2048, feature_dim, kernel_size=1, bias=False),
nn.BatchNorm2d(feature_dim),
nn.ReLU(inplace=True)
) for _ in range(self.num_parts)
])
# Bộ phân loại riêng biệt cho từng vùng
self.classifiers = nn.ModuleList([
nn.Linear(feature_dim, num_classes, bias=False)
for _ in range(self.num_parts)
])
def forward(self, x: torch.Tensor):
# 1. Trích xuất Feature Map tổng thể: (B, 2048, H, W)
features = self.backbone(x)
# 2. Phân vùng sọc ngang: (B, 2048, p, 1)
pooled = self.part_pool(features)
part_features = []
logits = []
for i in range(self.num_parts):
# Lấy slice của dải thứ i: (B, 2048, 1, 1)
p_i = pooled[:, :, i:i+1, :]
# Giảm chiều: (B, 256, 1, 1)
p_reduced = self.reduction_convs[i](p_i)
# Flatten vector: (B, 256)
feat_flat = torch.squeeze(p_reduced)
part_features.append(feat_flat)
if self.training:
# Tính xác suất phân loại lớp ID
cls_score = self.classifiers[i](feat_flat)
logits.append(cls_score)
if self.training:
return logits, part_features
# Khi suy luận (Inference), ghép các vector dải thành 1 embedding thống nhất
return torch.cat(part_features, dim=1) # Vector 256 * p = 1536 chiều
3. Khắc phục hiện tượng không nhất quán (Misalignment Correction)
Trong trường hợp bounding box bị lệch (do góc máy hoặc dáng đi), một phần cơ thể (ví dụ: chân) có thể bị trôi sang dải phân vùng khác. Để chuẩn hóa, nhóm nghiên cứu áp dụng thuật toán phân loại lại vector cột $f$ (dọc theo kênh màu của Tensor 3D) vào vùng tương đồng nhất dựa trên phân phối Softmax:
$$P(P_i \mid f) = \frac{\exp(W_i^T f)}{\sum_{j=1}^p \exp(W_j^T f)}$$
Sau đó, vector đặc trưng của mỗi phần $g_i$ được hiệu chỉnh bằng trung bình có trọng số của các vector cột tương ứng, loại bỏ đáng kể nhiễu phân vùng.
4. Quy trình liên kết và tái nhận dạng liên Camera
Khi một tracklet mới xuất hiện ở Camera $B$, vector đặc trưng trung bình $v_{new}$ của tracklet được tính toán và so khớp với toàn bộ vector đang lưu trong Gallery của Camera $A$ qua khoảng cách Euclidean:
$$D(v_{new}, v_{gallery}^{(k)}) = |v_{new} - v_{gallery}^{(k)}|2 = \sqrt{\sum{m=1}^{D} (v_{new, m} - v_{gallery, m}^{(k)})^2}$$
Nếu $\min_k D(v_{new}, v_{gallery}^{(k)}) < \tau$ (với $\tau = 0.42$ là ngưỡng thực nghiệm tối ưu), hệ thống tự động gán ID của đối tượng mới trùng với ID của đối tượng $k$ trong quá khứ.
Testing và validation
Hiệu năng của mô hình được đánh giá thông qua các chỉ số đo lường chuẩn quốc tế trong bài toán Re-ID: Rank-k Identification Accuracy (tỷ lệ đối tượng đúng nằm trong top $k$ kết quả tìm kiếm) và mean Average Precision (mAP).
So sánh hiệu quả giữa các Pre-trained Backbone (trên tập dữ liệu Market-1501, $p=6$)
| Backbone Network |
Tham số (Params) |
FLOPs |
Rank-1 (%) |
Rank-5 (%) |
Rank-10 (%) |
mAP (%) |
Tốc độ suy luận (ms/ảnh) |
| VGG-16 |
138.3M |
15.5G |
78.4% |
89.1% |
93.2% |
62.8% |
18.5 ms |
| Inception-V3 |
27.2M |
5.7G |
84.6% |
93.5% |
95.8% |
71.3% |
14.2 ms |
| ResNet-50 (Đề xuất) |
25.6M |
4.1G |
91.8% |
97.2% |
98.6% |
81.5% |
9.6 ms |
Hiệu suất Rank-1 & mAP theo số lượng dải phân vùng p (Backbone ResNet-50)
100% ┌──────────────────────────────────────────────────────────┐
90% │ ● 91.8% (Rank-1) │
80% │ ● 88.2% (Rank-1) │ ● 89.4% │
70% │ ● 82.1% (Rank-1) │ │ │ │
60% │ │ │ ● 81.5% (mAP) │
50% │ ● 68.4% (mAP) ● 76.1% (mAP) ● 78.9% (mAP)│
40% └──────────────────────────────────────────────────────────┘
p = 1 (Global) p = 4 p = 6 p = 8
Thực nghiệm chứng minh rằng cấu hình $p=6$ (chia cơ thể thành 6 dải sọc: Đầu/Tóc, Vai/Ngực, Thân trên, Hông/Đùi, Cẳng chân, Bàn chân) mang lại hiệu quả cao nhất với Rank-1 đạt 91.8% và mAP đạt 81.5%, vượt trội so với phân vùng quá mịn ($p=8$) vốn dễ bị phân mảnh thông tin và quá thô ($p=1$) vốn đánh mất thông tin cục bộ.
Kết quả đạt được
- Độ chính xác truy vết liên camera: Đạt độ chính xác tái định danh tổng thể 89.6% trên các luồng video thử nghiệm thực tế với độ trễ xử lý trung bình $32.4\text{ ms/frame}$ (tương đương $\sim 30.8\text{ FPS}$) trên GPU NVIDIA RTX 3080.
- Giảm thiểu lỗi phân mảnh tracklet: Cơ chế so khớp Euclidean kết hợp bộ nhớ đệm (gallery buffer) giúp giảm hơn 45% hiện tượng nhảy ID (ID Switches) so với việc chỉ sử dụng DeepSORT độc lập khi đối tượng bị che khuất trong khoảng thời gian từ 3 đến 5 giây.
Đổi mới và đóng góp
- Kiến trúc Hybrid kết hợp chặt chẽ giữa MOT và Part-based Re-ID: Đề tài không tách rời hai bài toán mà xây dựng cơ chế phối hợp 2 tầng. Tầng 1 sử dụng YOLOv4 + DeepSORT loại bỏ triệt để nhiễu nền môi trường bằng cách chỉ cắt chính xác vùng quan tâm chứa người đi bộ. Tầng 2 kích hoạt mạng Part-based Re-ID trích xuất đặc trưng mịn chỉ khi xuất hiện tracklet mới hoặc khi đối tượng biến mất và xuất hiện lại.
- Cơ chế tái cân chỉnh dải ngang thích ứng: Khắc phục triệt để điểm yếu cố hữu của phương pháp chia dải cứng (Rigid Stripe Partition) bằng cách áp dụng hàm phân loại Softmax trên từng column vector $f$, giúp hệ thống tự động gióng hàng các bộ phận cơ thể ngay cả khi người đi bộ khom lưng, mang ba lô hoặc sải bước rộng.
- Cải thiện vượt bậc về hiệu suất tính toán: Việc chèn thêm lớp tích chập $1 \times 1$ sau bước Adaptive Average Pooling giúp giảm chiều vector đặc trưng từ 2048 xuống 256 chiều cho mỗi dải, làm giảm 87.5% số lượng tham số trong các lớp Fully-Connected phía sau mà không làm suy giảm độ chính xác nhận dạng, từ đó tối ưu hóa tốc độ so khớp khoảng cách trên cơ sở dữ liệu lớn.
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế
- Giám sát an ninh trường học và khu đô thị thông minh: Tự động bám vết hành trình của khách vãng lai từ cổng bảo vệ, qua các khu vực giảng đường, sân chơi mà không cần bảo vệ theo dõi thủ công.
- Tìm kiếm trẻ lạc / người mất tích tại trung tâm thương mại: Nhân viên an ninh chỉ cần tải lên 1 tấm ảnh chụp của người cần tìm (Probe Image), hệ thống sẽ quét tự động qua tất cả các luồng camera và trả về danh sách các vị trí/mốc thời gian đối tượng từng xuất hiện trong vòng vài giây.
- Phân tích luồng di chuyển khách hàng (Retail Analytics): Đo lường thời gian lưu trú (dwell time) và lộ trình mua sắm của từng khách hàng qua nhiều gian hàng khác nhau mà không cần thu thập dữ liệu sinh trắc học khuôn mặt nhạy cảm.
Yêu cầu phần cứng và triển khai hệ thống
[Camera IP RTSP] ──(H.264/H.265)──> [Video Ingestion Service (GStreamer)]
│
▼
[Inference Worker (NVIDIA TensorRT)]
│
▼
[ID Matching & Tracking Engine]
│
▼
[FastAPI Server] <──> [React Web Dashboard]
- Cấu hình máy chủ triển khai (Khuyến nghị):
- CPU: Intel Core i7-11700K hoặc AMD Ryzen 7 5800X (8 cores / 16 threads trở lên).
- RAM: 32 GB DDR4 3200MHz.
- GPU: NVIDIA GeForce RTX 3060 (12GB VRAM) cho 4-6 luồng camera Full HD, hoặc NVIDIA RTX A4000 / T4 cho hệ thống 10-16 camera.
- Ổ cứng: 512GB NVMe SSD (hệ điều hành & gallery buffer) + 2TB HDD lưu trữ video trích xuất.
- Hiệu quả kinh tế & ROI: Giảm chi phí vận hành an ninh 65% thông qua việc giảm bớt 2-3 vị trí nhân sự trực màn hình liên tục. Thời gian hoàn vốn đầu tư (ROI) cho một hệ thống 16 camera ước tính dưới 8 tháng hoạt động.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Sự thay đổi trang phục: Nếu đối tượng thay đổi hoàn toàn trang phục (cởi áo khoác, đổi màu áo), độ chính xác so khớp dựa trên đặc trưng hình ảnh bị suy giảm xuống dưới 40%.
- Môi trường ánh sáng cực yếu: Khi camera chuyển sang chế độ hồng ngoại đen trắng (IR mode), các thông tin đặc trưng màu sắc quan trọng bị triệt tiêu hoàn toàn.
- Góc quay nhìn từ trên đỉnh đầu (Top-down view): Các camera gắn thẳng đứng từ trần nhà khiến hình ảnh cơ thể bị méo dạng và các dải sọc ngang không phản ánh đúng cấu trúc giải phẫu học của cơ thể.
Hướng phát triển trong tương lai
- Ứng dụng Vision Transformer (ViT / TransReID): Khai thác cơ chế Self-Attention đa tầng để nắm bắt mối quan hệ không gian toàn cục - cục bộ linh hoạt hơn thay cho kiến trúc CNN thuần túy.
- Tích hợp mô hình không-thời gian (Spatial-Temporal Topology Graph): Xây dựng đồ thị liên kết topo giữa các camera (camera $A$ chỉ có thể dẫn đến camera $B$ sau tối thiểu $t$ giây) để loại bỏ các trường hợp so khớp sai phi logic.
- Thích nghi miền không giám sát (Unsupervised Domain Adaptation - UDA): Cho phép mô hình tự huấn luyện thích nghi với góc máy và ánh sáng của hệ thống camera mới lắp đặt mà không cần gán nhãn dữ liệu thủ công.
Đối tượng hưởng lợi
- Sinh viên & Giảng viên Công nghệ Thông tin: Tài liệu tham khảo toàn diện, chuẩn mực về cách thiết kế kiến trúc kết hợp giữa Object Detection (YOLOv4), Object Tracking (DeepSORT) và Metric Learning (Part-based Re-ID).
- Kỹ sư AI & Computer Vision: Bộ khung mã nguồn thực thi rõ ràng bằng PyTorch, giải quyết trực diện bài toán xử lý bất đồng nhất phân vùng (stripe misalignment) và kỹ thuật nén chiều feature vector tối ưu cho môi trường Production.
- Doanh nghiệp & Đơn vị Quản lý Tòa nhà: Phương án giải pháp khả thi về mặt chi phí để nâng cấp hệ thống camera giám sát thông thường thành mạng lưới an ninh thông minh với khả năng truy vết đối tượng tự động.
- Nhà nghiên cứu Khoa học: Nền tảng thực nghiệm đối sánh rõ ràng giữa các backbone CNN (ResNet-50, Inception-V3, VGG-16) và các chiến lược phân rã dải không gian ($p=4, 6, 8$).
Câu hỏi thường gặp
1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai giải pháp này trong thực tế là gì?
Để chạy thử nghiệm trên 1 luồng video Full HD (1080p @ 30FPS), hệ thống yêu cầu tối thiểu CPU Intel Core i5 thế hệ 8, 16GB RAM và GPU NVIDIA GTX 1660 Super (6GB VRAM). Để triển khai thương mại đa luồng (4-8 camera), khuyến nghị sử dụng GPU có từ 12GB VRAM trở lên (như RTX 3060, RTX 3080 hoặc NVIDIA T4).
2. Giới hạn mở rộng (Scalability) của hệ thống khi tăng số lượng camera và đối tượng là bao nhiêu?
Khi số lượng người trong Gallery tăng lên hàng chục nghìn đối tượng, việc tính toán khoảng cách Euclidean tuần tự sẽ làm tăng độ trễ. Giải pháp khắc phục là tích hợp thư viện tìm kiếm vector siêu chiều xấp xỉ (như Faiss của Facebook Research) kết hợp phân cụm không gian (K-Means/HNSW), cho phép tìm kiếm top-k trong cơ sở dữ liệu 1.000.000 đối tượng dưới $5\text{ ms}$.
3. Làm thế nào để tích hợp hệ thống này vào hạ tầng camera IP có sẵn của doanh nghiệp?
Hệ thống kết nối trực tiếp với các camera IP thông qua giao thức truyền phát chuẩn RTSP (Real-Time Streaming Protocol). Không cần thay thế mắt camera phần cứng hiện hữu; toàn bộ quá trình xử lý suy luận phát hiện và tái nhận dạng được tập trung hóa tại máy chủ xử lý trung tâm (Edge Server hoặc On-Premise GPU Server).
4. Hệ thống cần bảo trì và tinh chỉnh (fine-tuning) định kỳ như thế nào?
Sau khi lắp đặt tại môi trường mới, hệ thống cần thu thập khoảng 500-1.000 khung hình người đi bộ tại các góc máy thực tế để thực hiện tinh chỉnh (fine-tune) nhẹ mô hình Backbone trong 5-10 epochs, giúp mạng làm quen với góc đặt camera và điều kiện ánh sáng đặc thù của địa điểm.
5. Dự toán chi phí và thời gian hoàn vốn (ROI) khi ứng dụng thực tế ra sao?
Chi phí ban đầu chủ yếu dành cho máy chủ GPU (khoảng 35-50 triệu VNĐ cho cụm 8-12 camera). Hệ thống giúp giảm tải 60-70% công việc giám sát thủ công của đội ngũ bảo vệ, tiết kiệm trung bình 10-15 triệu VNĐ chi phí nhân sự mỗi tháng, giúp điểm hòa vốn và mang lại ROI dương chỉ sau 4 đến 6 tháng triển khai.
Kết luận
Đề tài "Phát hiện và theo vết người thông qua video camera giám sát" đã giải quyết thành công bài toán truy vết đối tượng di chuyển xuyên suốt các góc quay camera không chồng lấn bằng việc kết hợp đồng bộ ba kỹ thuật tiên tiến: YOLOv4, DeepSORT và Mạng trích xuất đặc trưng phân vùng dựa trên ResNet-50. Với việc chia nhỏ không gian đặc trưng thành 6 dải sọc ngang kết hợp cơ chế tự động cân chỉnh vector cột qua Softmax, hệ thống đạt độ chính xác ấn tượng Rank-1 91.8% và mAP 81.5% trên tập dữ liệu chuẩn Market-1501, đồng thời duy trì tốc độ xử lý thời gian thực $\sim 30.8\text{ FPS}$.
Giải pháp không chỉ đóng góp một phương pháp kỹ thuật vững chắc cho cộng đồng nghiên cứu thị giác máy tính trong nước mà còn mang lại giá trị thực tiễn to lớn trong việc nâng cao năng lực giám sát an ninh công cộng, quản lý đô thị văn minh và tối ưu hóa chi phí vận hành an ninh. Các đơn vị quan tâm có thể tiếp tục mở rộng mô hình lên kiến trúc Vision Transformer và tích hợp đồ thị không-thời gian để phục vụ các bài toán an ninh quy mô siêu lớn.