Bài tập thực tập: Hệ thống xử lý video đa camera

Nhóm AI · Tài liệu giao bài

Người giao
Thực tập sinh
Ngày giao15/10/2026
Hạn nộp23/10/2026
Hình thứcCá nhân

1. Đề bài

Viết một service Python chạy tối thiểu 4 nguồn video cùng lúc (camera thật hoặc file video phát lại qua RTSP). Luồng xử lý:

camera -> capture -> detect + track -> xử lý sự kiện -> vẽ kết quả -> ffmpeg -> RTSP server
                                           |
                                           +-> lưu snapshot, DB, log

Sau bài này em cần:

2. Yêu cầu chức năng

MãYêu cầu
F01Đọc được RTSP, file video, webcam. Mất kết nối thì tự reconnect, một camera lỗi không kéo các camera khác dừng theo.
F02Luôn xử lý frame mới nhất, không để queue dồn làm trễ tăng dần.
F03Detect người và xe bằng YOLO (v8 trở lên). Class, ngưỡng confidence, imgsz đọc từ config.
F04Tracking, ID giữ ổn định qua các frame (ByteTrack hoặc BoT-SORT).
F05Đếm đối tượng qua vạch, tách riêng hai chiều.
F06Phát hiện đối tượng đi vào vùng cấm (polygon).
F07Mỗi lần vi phạm chỉ ghi một sự kiện. Sự kiện gồm thời gian, camera, track ID, loại sự kiện, ảnh snapshot. Lưu vào SQLite.
F08Vẽ box, ID, vạch, vùng cấm, bộ đếm lên frame. Mỗi camera ra một đường RTSP riêng, mở được bằng VLC. FFmpeg chết thì tự bật lại.
F09Camera, model, vạch, vùng cấm, URL stream đều khai báo trong YAML. Config sai phải báo lỗi rõ khi khởi động. Thêm camera chỉ sửa config.
F10API (FastAPI): xem trạng thái và FPS từng camera, bật/tắt một camera khi đang chạy, lấy danh sách sự kiện theo camera và khoảng thời gian.

3. Yêu cầu phi chức năng

Benchmark

Đo với 1, 4 và 8 camera. So sánh ít nhất hai cách làm, ví dụ threading với multiprocessing, hoặc mỗi camera một model với batch inference dùng chung. Chọn một cách và giải thích vì sao, dựa trên số liệu.

4. Công nghệ

Python 3.10+, OpenCV, FFmpeg, Ultralytics YOLO, ByteTrack/BoT-SORT, MediaMTX, FastAPI, SQLite, Pydantic, pytest, Docker.

Muốn dùng thứ khác thì trao đổi trước và nêu lý do.

5. Cần nộp

  1. Repo Git. Commit đều trong quá trình làm, không dồn một commit cuối. Không commit mật khẩu camera.
  2. README: cài đặt, cấu hình, chạy, các lỗi hay gặp.
  3. Tài liệu thiết kế ngắn: sơ đồ kiến trúc, luồng dữ liệu, lý do chọn.
  4. Báo cáo benchmark: bảng số liệu, cấu hình máy, video test dùng, nhận xét.
  5. Video demo 4 camera chạy cùng lúc, có sự kiện xảy ra.

6. Chấm điểm

PhầnNội dungĐiểm
Chức năngF01 đến F1030
Hiệu năng, ổn địnhĐạt chỉ tiêu, chạy lâu không lỗi, reconnect đúng20
CodeCấu trúc, xử lý lỗi, dừng sạch, test20
BenchmarkSố liệu đo lại được, kết luận có căn cứ15
Tài liệu, bảo vệREADME, demo, giải thích được lựa chọn15
Tổng100