Theo vết chuyển động đầu học sinh trong lớp học

Một phần của tài liệu (LUẬN văn THẠC sĩ) hệ thống điểm danh tự động học sinh trung học phổ thông qua camera trong lớp học (Trang 55 - 57)

Sau khi có kết quả tìm được tập các vùng đầu của học sinh trong lớp học

𝐵ℎ𝑒𝑎𝑑 chúng tôi tiến hành theo vết chuyển động các vùng đầu học sinh này vì có thể trong một khoảng thời gian các bạn học sinh sẽ dịch chuyển nên cần tìm được vị trí trung bình cho quá trình điểm danh để có kết quả tốt nhất. Vì vùng đầu của học sinh (hình chữ nhật bao vùng đầu) có đặc trưng mức độ đồng nhất mức xám (ở không gian xám) chiếm gần như cả (tỷ lệ lớn) hình chữ nhật bao, nên dùng đặc tính mức độ tương quan để theo vết chuyển động sẽ cho kết quả tốt so với các phương pháp theo vết chuyển động khác. Chúng tôi hiệu chỉnh thuật toán theo vết chuyển động theo mức độ tương quan mức xám thuật toán 4 để theo vết chuyển động đầu các em học sinh, thuật toán 5.

Thuật toán 4: theo vết chuyển động Input:

Video, frame thứ t (𝐼𝑡)

Vị trí đối tượng ở frame trước đó 𝑝𝑡−1 và tỷ lệ 𝑠𝑡−1

Mô hình biến đổi 𝐴𝑡−1𝑡𝑟𝑎𝑛𝑠, 𝐵𝑡−1𝑡𝑟𝑎𝑛𝑠 và mô hình tỷ lệ 𝐴𝑡−1𝑠𝑐𝑎𝑙𝑒, 𝐵𝑡−1𝑠𝑐𝑎𝑙𝑒

Output:

1. Trích một mẫu biến đổi 𝑧𝑡𝑟𝑎𝑛𝑠 từ 𝐼𝑡 tại 𝑝𝑡−1 và tỷ lệ 𝑠𝑡−1

2. Tính tương quan biến đổi 𝑦𝑡𝑟𝑎𝑛𝑠 với 𝑧𝑡𝑟𝑎𝑛𝑠, 𝐴𝑡−1𝑡𝑟𝑎𝑛𝑠, 𝑣à 𝐵𝑡−1𝑡𝑟𝑎𝑛𝑠 (từ công thức 3.2)

3. Đặt 𝑝𝑡 thành vị trí mục tiêu mà được cực đại hóa 𝑦𝑡𝑟𝑎𝑛𝑠

Ước lượng tỷ lệ:

4. Trích một mẫu tỷ lệ 𝑧𝑠𝑐𝑎𝑙𝑒 từ 𝐼𝑡 tại 𝑝𝑡 và tỷ lệ 𝑠𝑡−1

5. Tính tương quan tỷ lệ 𝑦𝑠𝑐𝑎𝑙𝑒 với 𝑧𝑠𝑐𝑎𝑙𝑒, 𝐴𝑡−1𝑠𝑐𝑎𝑙𝑒, 𝑣à 𝐵𝑡−1𝑠𝑐𝑎𝑙𝑒 (từ công thức 3.2)

6. Đặt 𝑠𝑡 thành tỷ lệ mục tiêu mà được cực đại hóa 𝑦𝑠𝑐𝑎𝑙𝑒

Cập nhật mô hình:

7. Trích các mẫu 𝑓𝑡𝑟𝑎𝑛𝑠 và 𝑓𝑠𝑐𝑎𝑙𝑒 từ 𝐼𝑡 tại 𝑝𝑡 và 𝑠𝑡

8. Cập nhật mô hình biến đổi 𝐴𝑡𝑟𝑎𝑛𝑠𝑡 , 𝐵𝑡𝑡𝑟𝑎𝑛𝑠 (từ công thức 3.1 a,b) 9. Cập nhật mô hình tỷ lệ 𝐴𝑡𝑠𝑐𝑎𝑙𝑒, 𝐵𝑡𝑠𝑐𝑎𝑙𝑒 (từ công thức 3.1 a,b)

𝐴𝑡𝑙 = (1 − 𝜂)𝐴𝑡−1𝑙 + 𝜂𝐺̅̅̅𝐹𝑡 𝑡𝑙 𝐵𝑡 = (1 − 𝜂)𝐵𝑡−1+ 𝜂 ∑ 𝐹̅̅̅̅𝑡𝑘 𝑑 𝑘=1 𝐹𝑡𝑘 (3.1 a) (3.1 b) 𝑦 = ℱ−1{∑ 𝐴 𝑙 ̅̅̅𝑍𝑙 𝑑 𝑙=1 𝐵 + 𝜆 } (3.2)

Thuật toán 5: theo vết chuyển động các đối tượng đầu của học sinh trong

lớp

Output: 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑 = {𝑇𝑖𝑖 = 1. . 𝑁} mà 𝑇𝑖 = {𝐻𝑒𝑎𝑑𝑘𝑖 / 𝑘 = 1. . 𝑀} với M là số lượng frame dùng để theo vết

M = size(video)/ f for k = 1 to N do 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑘] = 𝐵𝑘 endfor 𝑝1 = 𝐵ℎ𝑒𝑎𝑑 initital(𝑠1) initial(𝐴1𝑡𝑟𝑎𝑛𝑠, 𝐵1𝑡𝑟𝑎𝑛𝑠, 𝐴1𝑠𝑐𝑎𝑙𝑒, 𝐵1𝑠𝑐𝑎𝑙𝑒) for k = 2 to M do 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑. 𝑡𝑟𝑎𝑐𝑘𝑖𝑛𝑔𝐻𝑒𝑎𝑑(𝑣𝑖𝑑𝑒𝑜. 𝑔𝑒𝑡𝐹𝑟𝑎𝑚𝑒(𝑘), 𝑝𝑘−1, 𝑠𝑘−1, 𝐴𝑡𝑟𝑎𝑛𝑠𝑘−1 , 𝐵𝑘−1𝑡𝑟𝑎𝑛𝑠, 𝐴𝑘−1𝑠𝑐𝑎𝑙𝑒, 𝐵𝑘−1𝑠𝑐𝑎𝑙𝑒) for i=1 to N do 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖] = 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖] ∪ 𝑝𝑘[𝑖] endfor endfor

Một phần của tài liệu (LUẬN văn THẠC sĩ) hệ thống điểm danh tự động học sinh trung học phổ thông qua camera trong lớp học (Trang 55 - 57)