-
-
-
Tổng tiền thanh toán:
-
Cảnh báo học sinh sử dụng điện thoại trong lớp học bằng AI camera
13/10/2026
Cảnh báo học sinh sử dụng điện thoại trong lớp học bằng AI camera
xây dựng chương trình bằng Python trên PyCharm 2025.3.4, sử dụng AI để phát hiện học sinh đang sử dụng điện thoại trong lớp học và hiển thị kết quả trực tiếp trên giao diện Web.
Tôi đề xuất sử dụng YOLO + OpenCV + FastAPI, xử lý hình ảnh từ camera IP hoặc webcam, sau đó truyền hình ảnh và cảnh báo lên Web.
1. Mô hình hoạt động
![]()
2. Các chức năng tôi đề xuất
-
Phát hiện người: AI nhận diện vị trí từng học sinh trong khung hình.
-
Phát hiện điện thoại: Xác định điện thoại xuất hiện trên bàn hoặc trong tay.
-
Phân tích sử dụng: Kết hợp vị trí điện thoại, bàn tay, tư thế và thời gian để ước lượng học sinh có đang sử dụng điện thoại hay không.
-
Cảnh báo: Khi nghi ngờ sử dụng điện thoại liên tục từ 3–5 giây, hiển thị cảnh báo.
-
Giao diện Web: Xem camera trực tiếp, vùng đánh dấu AI, số người và số trường hợp nghi ngờ.
-
Lưu sự kiện: Thời gian, camera, ảnh minh chứng và mức độ tin cậy; không tự động kết luận vi phạm chỉ từ một khung hình.
3. Giao diện Web dự kiến

4. Công nghệ sử dụng
|
Thành phần |
Công nghệ |
|---|---|
|
Lập trình |
Python, PyCharm 2025.3.4 |
|
AI nhận diện |
Ultralytics YOLO |
|
Xử lý video |
OpenCV |
|
Web Server |
FastAPI |
|
Giao diện |
HTML, CSS, JavaScript |
|
Camera |
Webcam, RTSP camera IP |
|
Lưu dữ liệu |
SQLite |
Lưu ý: YOLO thông thường phát hiện được điện thoại, nhưng không thể khẳng định học sinh đang sử dụng điện thoại chỉ vì phát hiện điện thoại. Để tăng độ chính xác cần kết hợp theo dõi người, tay và thời gian, đồng thời thử nghiệm với góc camera thực tế. Khi triển khai trong trường học, cần quy định rõ quyền truy cập hình ảnh, thời gian lưu và bảo vệ dữ liệu học sinh.
5. Tôi cần xác định nguồn camera trước khi viết chương trình đầy đủ
Webcam USB máy tính
1 camera
Xem Web, cảnh báo và lưu ảnh sự kiện
Tôi ưu tiên phương án xử lý AI trên máy tính tại lớp học, còn Web dùng để quan sát và quản lý. Cách này không cần đưa video lên máy chủ bên ngoài và có thể tích hợp với hệ thống Hikvision.
Chương trình AI phát hiện sử dụng điện thoại trong lớp học
Tôi thiết kế phiên bản AI Classroom Monitor V1.0 chạy trên Windows, lập trình bằng Python trong PyCharm 2025.3.4, sử dụng một webcam USB và quản lý qua trình duyệt Web.
Nguồn hình ảnh: Webcam USB, mặc định Camera 0
AI: YOLO nhận diện người và điện thoại
Web: Video trực tiếp, thống kê và cảnh báo
Lưu trữ: Ảnh sự kiện JPEG và lịch sử SQLite
Nguyên lý nhận diện
Chương trình sẽ thực hiện ba bước:
-
Phát hiện người và điện thoại trong hình ảnh.
-
Kiểm tra điện thoại có nằm gần hoặc trong vùng của người hay không.
-
Nếu tình trạng đó kéo dài tối thiểu 3 giây, tạo cảnh báo và lưu ảnh sự kiện.
Đây là cảnh báo nghi ngờ sử dụng điện thoại, không phải kết luận chắc chắn về hành vi của học sinh. Phiên bản đầu chưa nhận diện riêng bàn tay, chưa nhận dạng danh tính học sinh và chưa phân biệt hoàn toàn điện thoại đang sử dụng với điện thoại đặt trên bàn.
Mô hình sử dụng API dự đoán của Ultralytics YOLO, còn FastAPI cung cấp luồng video MJPEG cho trình duyệt.
Ultralytics
+1
1. Tải bộ chương trình hoàn chỉnh
AI_Classroom_Monitor_V1.zip
Mã nguồn Python, giao diện Web, cấu hình và hướng dẫn cài đặt
Tải toàn bộ chương trình ZIP
Tôi đã tạo các file chương trình và kiểm tra cú pháp Python. Chương trình chưa được kiểm thử trực tiếp với webcam trên máy của bạn.
2. Cấu trúc Project
AI_Classroom_Monitor/
│
├── main.py
├── config.py
├── requirements.txt
├── README.md
│
├── templates/
│ └── index.html
│
├── events/ (tự tạo khi chạy)
└── events.db (tự tạo khi chạy)
Các thành phần quan trọng:
|
File |
Chức năng |
|---|---|
|
|
Nhận camera, chạy YOLO, phát hiện và lưu sự kiện |
|
|
Điều chỉnh camera, AI, thời gian cảnh báo |
|
|
Giao diện Web, xem camera, thống kê |
|
|
Danh sách thư viện cần cài |
|
|
Cơ sở dữ liệu lịch sử |
|
|
Lưu ảnh JPEG khi có cảnh báo |
3. Cài đặt trên PyCharm 2025.3.4
Bước 1: Giải nén file ZIP và mở thư mục AI_Classroom_Monitor bằng PyCharm.
Bước 2: Tạo Python Interpreter dạng Virtualenv. Tôi khuyến nghị Python 3.11 64-bit để thuận tiện cài các thư viện AI.
Bước 3: Mở Terminal trong PyCharm, chạy:
python -m pip install -r requirements.txt
Bước 4: Chạy chương trình:
python main.py
Lần đầu, Ultralytics sẽ tải mô hình YOLO nên cần Internet.
Bước 5: Mở trình duyệt Chrome hoặc Edge và truy cập:
Sao chép
Web sẽ hiển thị hình ảnh camera, số người, số điện thoại, trạng thái cảnh báo và lịch sử ảnh sự kiện.
4. Cấu hình webcam và độ nhạy AI
Trong file config.py, các tham số chính là:

5. Kiểm tra hoạt động
Sau khi chương trình chạy, hãy thử ba tình huống: không có điện thoại, cầm điện thoại trước camera, và đặt điện thoại trên bàn gần người.
Bạn cần quan sát xem AI có nhận diện đúng điện thoại hay không, cảnh báo có xuất hiện sau 3 giây hay không, và ảnh có được lưu trong thư mục events hay không.
Lưu ý kỹ thuật: Với webcam nhìn toàn bộ lớp học, điện thoại có thể rất nhỏ trong khung hình. Nếu học sinh ngồi xa hoặc che khuất điện thoại, mô hình mặc định có thể bỏ sót. Khi đó cần tối ưu vị trí camera, độ phân giải và có thể huấn luyện thêm dữ liệu lớp học thực tế.
6. Hướng phát triển tiếp theo
Sau khi V1 hoạt động ổn định, tôi đề xuất nâng cấp thành V2 với khả năng theo dõi từng người qua nhiều khung hình, nhận diện tư thế tay, phân biệt điện thoại trên bàn với điện thoại đang cầm và xác định khu vực bàn học. Điều này sẽ giúp giảm cảnh báo sai đáng kể.
Trước tiên, hãy chạy bản V1 bằng webcam USB trên PyCharm. Nếu có lỗi cài đặt hoặc lỗi camera, gửi nội dung Terminal cho tôi để chỉnh đúng theo cấu hình máy tính của bạn.
--------------------------------------------------------
nh sẽ không phân tích hành vi học sinh nữa. Chỉ cần AI nhận diện được điện thoại trong hình ảnh webcam là lập tức hiển thị cảnh báo.
Chức năng của phiên bản V2.0
-
Nhận diện người: Đánh dấu khung xanh quanh người.
-
Nhận diện điện thoại: Đánh dấu khung đỏ quanh vị trí AI phát hiện điện thoại, kèm độ tin cậy.
-
Cảnh báo ngay: Không cần đợi 3 giây.
-
Lưu ảnh: Lưu hình ảnh có khung đánh dấu đỏ, ghi thời gian và số lượng điện thoại.
-
Xem lại ảnh: Hiển thị lịch sử ảnh, có thể bấm để phóng to.
-
Cài đặt trực tiếp trên Web: Chọn webcam USB số 0, 1, 2… và độ phân giải 640×480, 1280×720 hoặc 1920×1080.
-
Thống kê: Hiển thị số người và số điện thoại phát hiện trong khung hình hiện tại.
Để tránh lưu hàng trăm ảnh giống nhau khi một điện thoại xuất hiện liên tục, chương trình mặc định lưu tối đa một ảnh cảnh báo mỗi 15 giây.
Hướng dẫn chạy trên PyCharm 2025.3.4
Giải nén file ZIP, mở thư mục AI_Classroom_Monitor trong PyCharm, sau đó mở Terminal và chạy:
python -m pip install -r requirements.txt
python main.py
Mở trình duyệt tại địa chỉ:
**http://127.0.0.1:8000**
Trên màn hình chính, bạn có thể chọn USB Camera, thay đổi độ phân giải, xem số người và số điện thoại đang phát hiện, cũng như xem lại ảnh cảnh báo.
Tôi đã kiểm tra cú pháp Python và cấu trúc file ZIP. Việc kiểm thử camera và độ chính xác AI cần thực hiện trên máy tính thực tế.
Lưu ý: Số người và số điện thoại hiển thị là số lượng trong khung hình hiện tại, không phải tổng số lượt phát hiện từ khi khởi động.