Mô Hình Bài Toán Điểm Danh Học Sinh Dùng Camera


2.4.4 Tổng kết

Đây là một thuật toán hiệu quả cho việc theo vết lâu dài. Phương pháp này học những bộ lọc tương quan khác nhau để ước lượng sự thay đổi về mặt biến dạng và kích thước của những vật thể mục tiêu một cách hiệu quả. Sự biến dạng được ước lượng bằng việc mô hình hóa tương quan bối cảnh liên quan thời gian và kích thước được ước lượng bằng việc tìm kiếm trong mô hình kim tự tháp một cách toàn diện. Thuật toán đã giúp phát triển một bộ phát hiện trực tuyến mạnh mẽ sử dụng bộ phân loại Random ferns để tái phát hiện lại mục tiêu trong trường hợp theo dõi bị lỗi.


XÂY DỰNG THUẬT TOÁN

Như đã trình bài ở Chương một, bài toán điểm danh học sinh có thể dùng các phương pháp điểm danh truyền thống như: bằng phiếu điểm danh hoặc bằng danh sách lớp, hai phương pháp này sẽ dẫn đến tình trạng học sinh điểm danh hộ cho bạn của mình, do đó kết quả sẽ không chính xác; nếu dùng công nghệ nhận dạng khuôn mặt sẽ khó nhận dạng những bạn ngồi phía sau (nhất là những bạn ở các dãy bàn cuối); còn nếu dùng công cụ quét dấu vân tay điểm danh từng học sinh thì dễ gây ùn tắc, gây khó khăn và ảnh hưởng đến giờ học của các lớp. Các phương pháp nêu trên đều gặp không ít những khó khăn và trở ngại. Chính vì lẽ đó, việc tận dụng những camera đã được gắn trên cao trong các lớp học kết hợp dùng phương pháp phát hiện và theo vết chuyển động vùng đầu học sinh sẽ giải quyết được bài toán điểm danh học sinh trong lớp học. Phương pháp này có ưu điểm là dùng công nghệ nhận dạng đầu, nên có thể nhận dạng các đối tượng ở cuối phòng học, kể cả những bạn ngồi phía sau các bạn lớn hơn (vì camera được gắn trên cao), dùng mô hình học sâu để huấn luyện và cho kết quả điểm danh tự động nên sẽ không mất thời gian, cũng sẽ không có trình trạng điểm danh hộ, lại cho kết quả nhanh và có độ chính xác khá cao. Phương pháp này giải quyết được những khó khăn và trở ngại mà các phương pháp truyền thống không làm được.

Để thực hiện bài toán điểm danh học sinh dùng phương pháp nhận dạng vùng đầu học sinh kết hợp theo vết chuyển động của vùng đầu học sinh trong camera, chúng tôi chia bài toán điểm danh này thành bốn bài toán sau.

- Bài toán 1: Phát hiện vùng đầu của học sinh trong một số frame của video thu được trong lớp học;

- Bài toán 2: Theo vết chuyển động vùng đầu của từng học sinh trong lớp học;


Có thể bạn quan tâm!

Xem toàn bộ 97 trang tài liệu này.

- Bài toán 3: Xác định vị trí tâm trung bình vùng đầu của từng học sinh trong lớp học;

- Bài toán 4: Chiếu tìm vị trí tâm trung bình vùng đầu của từng học sinh lên sơ đồ lớp học để điểm danh.

Hệ thống điểm danh học sinh thông qua nhận dạng đầu học sinh kết hợp theo vết chuyển động trong video - 7

Bài toán điểm danh học sinh sau khi được phân tích thành bốn bài toán nhỏ được mô tả như sơ đồ 3.1 dưới đây.


Dữ liệu từ camera

Phát hiện đầu học sinh trong n frame

Dùng mô hình học

máy chuyên

sâu

phát hiện vùng đầu được huấn luyện


Theo vết chuyển động các vùng đầu theo mức độ tương quan

Tính tâm trung bình từng vùng đầu của từng học

Chiếu tâm trung bình từng đầu học sinh lên sơ đồ lớp

Kết quả điểm danh học sinh


Sơ đồ 3.1. Mô hình bài toán điểm danh học sinh dùng camera


Phát hiện vùng đầu học sinh trong ảnh


Trước tiên, chúng ta cần xác định thời điểm bắt đầu của bài toán điểm danh học sinh? Khi nào thì dùng thuật toán tìm vùng đầu học sinh, tức là dùng frame nào trong đoạn video được chọn để thực hiện công việc này. Trên thực tế, thời


điểm chưa có giáo viên vào lớp là lúc học sinh di chuyển nhiều, không ngồi cố định, hoặc ngồi không đúng vị trí của mình, học sinh còn hay đùa giỡn, đổi chổ, thậm chí còn chạy nhảy trong lớp học. Do đó, nếu bắt đầu lúc này sẽ dễ gây hỗn loạn dữ liệu, vì mức độ thay đổi giữa các frame ảnh của từng vị trí học sinh là rất lớn nên sẽ rất khó điểm danh. Thời điểm tốt nhất để bắt đầu của bài toán phát hiện vùng đầu của học sinh trong lớp học là lúc giáo viên vừa vào lớp. Vì vậy, chúng tôi xây dựng thuật toán 3.1 để xác định frame bắt đầu dựa vào mức độ thay đổi của hai frame ảnh gần nhau. Hay nói cách khác, thuật toán này xem xét mức độ thay đổi (độ chênh lệch) của hai frame ảnh cách nhau một khoảng thời gian ∆𝑡 mà có ít sự thay đổi nhất.


Thuật toán 3.1: xác định frame đầu tiên của bài toán tìm các vùng đầu của học sinh lớp học

INPUT:


Những video được quay trong lớp học;


OUTPUT:


Vị trí frame theo yêu cầu: pos;


Bước 1:


max 0;

go vị trí frame đầu tiên của video;

pos go;

Bước 2:


Chuyển các frame ảnh về không gian xám; Bước 3:

num 0;


flag false;

frame1 video[go].timFrame(); Bước 4:

WHILE (video còn lại và !flag);


go go+t;


4.1:


frame2 video[go].timFrame();


4.2:


IF (max |𝑓𝑟𝑎𝑚𝑒2 – 𝑓𝑟𝑎𝑚𝑒1|)


THEN


max = |𝑓𝑟𝑎𝑚𝑒2 – 𝑓𝑟𝑎𝑚𝑒1|;


pos = go; num ++;

ENDIF


4.3:


frame1 frame2;

IF (go đủ lớn và num không đổi);


THEN


flag true;


ENDIF


ENDWHILE


Bước 5:


RETURN pos



Trong bài toán điểm danh học sinh tập dữ liệu 𝐷𝑑𝑎𝑢 được xây dựng từ dữ liệu được trích xuất trong một phần video và các ảnh được thu thập từ các nguồn khác nhau. Cụ thể, Để có tập dữ liệu 𝐷𝑑𝑎𝑢 này, chúng tôi lấy ra 50 frame

ảnh từ hàng ngàn frame ảnh của mỗi video quay được trong các lớp học, trong

50 frame ảnh này; sau đó chúng tôi trích xuất vùng đầu của học sinh trong các frame ảnh tạo thành tập tập dữ liệu 𝐷𝑑𝑎𝑢. Tập dữ liệu 𝐷𝑑𝑎𝑢 này được sử dụng để huấn luyện theo mô hình học chuyên sâu YOLOv2 để được mô hình phát hiện vùng đầu trong ảnh của lớp học được đặt tên là 𝑀𝑌_𝑌𝑂𝐿𝑂2𝑑𝑎𝑢

Trong thực tế các yếu tố môi trường tác động như: mức độ sáng thay đổi (mây nhiều hoặc ít), do bóng của đối tượng khác đi ngang cửa sổ che khuất vùng ảnh của học sinh, do chuyển động của máy quạt, do màn che trong phòng học bị gió thổi hay do các đối tượng học sinh dịch chuyển…. Những yếu tố này có thể sẽ gây ra sự khác biệt nhau trong quá trình xác định các đối tượng vùng đầu học sinh trong frame thứ m và frame thứ n. Do đó, chúng tôi xây dựng thuật toán để phát hiện các vùng đầu của từng frame trong đoạn video, để có thể chắc chắn rằng vị trí cần điểm danh có học sinh hay không, (thuật toán 3.2).


Thuật toán 3.2: Xác định các vùng đầu trong đoạn video


INPUT:


Tập hợp Frame có X phần tử; Kết quả pos từ thuật toán 3.1;

times là bước nhảy của các frame;


OUTPUT:


Tập hợp H có N phần tử, mỗi phần tử của tập hợp H là một tập các vùng đầu của một frame (𝐻𝑖, 𝑖 = 1. . 𝑁);


go pos;

FOR i=1 to N do

H[i] = 𝑀𝑌_𝑌𝑂𝐿𝑂2𝑑𝑎𝑢. 𝑡𝑖𝑚𝐻𝑒𝑎𝑑(𝑣𝑖𝑑𝑒𝑜[𝑔𝑜]. 𝑡𝑖𝑚𝐹𝑟𝑎𝑚𝑒()); go go + times;

ENDFOR RETURN H

Sau khi có kết quả của thuật toán 3.2, chúng tôi tiến hành xây dựng thuật toán để tích hợp các 𝐻𝑖, 𝑖 = 1. . 𝑁 từ các frame để có được một tập các vùng đầu của học sinh trong lớp tốt nhất.

Chúng tôi xây dựng thuật toán 3.3 dưới đây để cho kết quả là tập các vùng đầu học sinh trong lớp học.


Thuật toán 3.3: xác định một tập các vùng đầu của học sinh trong lớp.


INPUT:

𝐻 = {𝐻𝑖/𝑖 = 1. . 𝑁} and d;

OUTPUT: 𝐻𝑑𝑎𝑢

𝐻𝑑𝑎𝑢 = 𝐻1;

FOR i = 2 to N do

FOR j = 1 to |𝐻𝑖| do

IF(!isPartOfData(𝐻𝑑𝑎𝑢, 𝐻𝑖[𝑗], d))

THEN 𝐻𝑑𝑎𝑢 = 𝐻𝑑𝑎𝑢 ∪ 𝐻𝑖[𝑗]

ENDIF ENDFOR

ENDFOR

RETURN 𝐻𝑑𝑎𝑢



Trong quá trình xây dựng tập dữ liệu vùng đầu của học sinh, để có tập dữ liệu vùng đầu tốt nhất dùng cho tập huấn luyện, chúng tôi xây dựng thuật toán kiểm tra một phần tử (đối tượng) có thuộc tập hợp vùng đẩu đã có được trong thuật toán 3.3 hay không. Thuật toán này dùng để loại trừ các đối tượng được nhận dạng nhưng không phải là vùng đầu học sinh. Những đối tượng đó có thể là bóng của học sinh khác, bóng của quạt, máy chiếu, hoặc từ các ô cửa sổ phản chiếu lên bàn, trên tường hoặc hành lang giữa hai dãy bàn; hoặc cũng có thể là vật dụng của học sinh để trên bàn...

Thuật toán dựa vào khoảng cách d (thuật toán 3.4). Mỗi phần tử là một hình chữ nhật. Tâm hai phần tử không xa nhau hơn khoảng cách d và giao hai hình chữ nhật này phải lớn hơn 𝛼%.


Thuật toán 3.4: thuật toán kiểm tra một phần tử có thuộc một tập hợp hay không: (isPartOfData(K,a, d))


INPUT:


Tập hợp K;


Phần tử a;


Khoảng cách d;

OUTPUT:


Nếu đúng là TRUE (1) hoặc sai là FALSE (0);


giatri = 0;


FOR i = 1 to |𝐾| do

IF(|𝑎. 𝑡𝑖𝑛ℎ𝑇𝐵() − 𝐾[𝑖]. 𝑡𝑖𝑛ℎ𝑇𝐵()| ≤ d)


THEN ratio =

𝑎∩𝐾[𝑖]

𝑎∪𝐾[𝑖]


IF(ratio > α)

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 06/02/2023