BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

Nguyễn Thị Sen HỆ THỐNG ĐIỂM DANH TỰ ĐỘNG HỌC SINH TRUNG HỌC PHỔ THÔNG QUA CAMERA TRONG LỚP HỌC

LUẬN VĂN THẠC SĨ MÁY TÍNH

Thành phố Hồ Chí Minh - 2018

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

Nguyễn Thị Sen

HỆ THỐNG ĐIỂM DANH TỰ ĐỘNG HỌC SINH TRUNG HỌC PHỔ THÔNG QUA CAMERA TRONG LỚP HỌC

Chuyên ngành : Khoa học máy tính Mã số : 8480101

LUẬN VĂN THẠC SĨ MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS.TS. PHẠM THẾ BẢO

Thành phố Hồ Chí Minh - 2018

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của bản thân tôi dưới sự

hướng dẫn khoa học của PGS.TS. Phạm Thế Bảo. Các thông tin và số liệu của

luận văn có nguồn gốc rõ ràng, cụ thể, các trích dẫn theo đúng quy định.

Kết quả nghiên cứu của luận văn hoàn toàn trung thực, khách quan và

chưa từng được sử dụng hay công bố trong bất kỳ công trình nghiên cứu nào

khác.

Thành phố Hồ Chí Minh tháng 9 năm 2018

Học viên

Nguyễn Thị Sen

LỜI CẢM ƠN

Lời đầu tiên, tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất đến

Thầy PGS.TS. Phạm Thế Bảo - giảng viên hướng dẫn luận văn. Trong quá trình

tìm hiểu và nghiên cứu đề tài, tôi đã gặp rất nhiều khó khăn nhưng nhờ Thầy

luôn động viên, hết lòng hướng dẫn và giúp đỡ nên tôi đã hoàn thành luận văn

này.

Tôi cũng xin gửi lời cảm ơn chân thành đến quý Thầy/Cô – Trường Đại

học Sư phạm Thành phố Hồ Chí Minh đã tận tâm dạy dỗ và truyền đạt những

kiến thức quý báu trong quá trình học tập. Đồng thời, tôi cũng xin cảm ơn

thầy/cô Khoa Công nghệ Thông tin và Phòng Sau Đại học đã hỗ trợ và tạo điều

kiện cho tôi trong thời gian qua.

Cuối cùng, tôi xin bày tỏ lòng biết ơn đến gia đình, trường THPT Vũng

Tàu – nơi tôi đang công tác, đã luôn động viên và giúp đỡ tôi trong suốt quá

trình học tập cũng như thực hiện luận văn.

Thành phố Hồ Chí Minh tháng 9 năm 2018

Học viên thực hiện

Nguyễn Thị Sen

MỤC LỤC

Trang

Trang phụ bìa

Lời cam đoan

Lời cảm ơn

Mục lục

Danh mục thuật ngữ và viết tắt

Danh mục các bảng

Danh mục hình vẽ, biểu đồ

Chương 1. GIỚI THIỆU ..................................................................... 1

1.1. Đặt vấn đề...................................................................................... 1

1.2. Mục tiêu của luận văn ................................................................... 2

1.3. Nội dung thực hiện ........................................................................ 2

1.4. Những khó khăn thách thức .......................................................... 3

1.5. Các hướng tiếp cận ........................................................................ 4

1.6. Hướng giải quyết ........................................................................... 8

1.7. Bố cục luận văn ............................................................................. 8

Chương 2. CƠ SỞ LÝ THUYẾT ..................................................... 10

2.1. Mạng nơ-ron nhân tạo ................................................................. 10

2.1.1. Cấu trúc của mạng nơ-ron .................................................... 10

2.1.2. Một số dạng mạng nơ-ron ..................................................... 14

2.1.3. Quá trình học của mạng nơ-ron ............................................ 14

2.1.4. Mạng nơ-ron nhân tạo trong xử lí ảnh .................................. 14

2.2. Mạng nơ-ron tích chập ................................................................ 15

2.2.1. Tích chập ............................................................................... 16

2.2.2. Lớp hàm kích hoạt ................................................................ 17

2.2.3. Lớp tổng hợp ......................................................................... 18

2.2.4. Lớp kết nối đầy đủ ................................................................ 19

2.2.5. Nguyên lý hoạt động của mạng nơ-ron tích chập ................. 19

2.3. Mô hình YOLO ........................................................................... 20

2.3.1. Cấu trúc mạng YOLO ........................................................... 22

2.3.2. Nguyên tắc hoạt động của YOLO ........................................ 23

2.3.3. Quá trình huấn luyện của YOLO .......................................... 24

2.4. Lọc theo mức độ tương quan của hàm nhân ............................... 27

2.4.1. Các vấn đề liên quan ............................................................. 29

2.4.2. Phương pháp theo dõi đối tượng bằng lọc theo mức độ tương

quan của hàm nhân ............................................................... 31

Chương 3. XÂY DỰNG THUẬT TOÁN ......................................... 40

3.1. Phát hiện đối tượng đầu học sinh ................................................ 41

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

3.3. Xác định vị trí đầu học sinh dựa trên trung bình ........................ 46

3.4. Điểm danh học sinh ..................................................................... 47

Chương 4. KẾT QUẢ THỰC NGHIỆM VÀ HƯỚNG PHÁT

TRIỂN .............................................................................. 49

4.1. Môi trường thực nghiệm ............................................................. 49

4.2. Xây dựng dữ liệu ......................................................................... 49

4.3. Kết quả ........................................................................................ 49

4.3.1. Thời gian thực hiện ............................................................... 49

4.3.2. Phát hiện đối tượng đầu học sinh .......................................... 50

4.3.3. Xác định vị trí đối tượng đầu học sinh ................................. 52

4.4. Đánh giá ...................................................................................... 53

4.4.1. Ưu điểm ................................................................................ 53

4.4.2. Nhược điểm ........................................................................... 54

4.5. Hướng phát triển ......................................................................... 59

TÀI LIỆU KHAM KHẢO .................................................................... 60

DANH MỤC THUẬT NGỮ VÀ VIẾT TẮT

Trung học phổ thông THPT

Thành Phố TP

Convolution Neural Network CNN

YOLO You Only Look Once

YOLO v1 You Only Look Once version 1

YOLO v2 You Only Look Once version 2

YOLO v3 You Only Look Once version 3

Extended Kalman Filter EFK

Unscented Kalman Filter UKF

Deep Learning DL

Artificial Neural Network ANN

Deep Belief Network DBN

Convolutional Neural Network CNN

Recurrent Neural Network RNN

R-CNN Regions with Convolutional Neural Network

RELU Rectified Linear Unit

Intersection Over Union IOU

Discriminatively Correlation Filters DCF

SRDCF Spatially Regularized Discriminatively Correlation Filters

Kernelized Correlation Filter KCF

Tracking-Learning-Detection TLD

MOSSE Minimum Output Sum of Squared Error

Histogram of Oriented Gradients HOG

Discrete Fourier Transform DFT

Red, Green and Blue RGB

DANH MỤC CÁC BẢNG

Bảng 4.1. Thời gian trung bình trên một frame. ..................................... 49

Bảng 4.2. Độ chính xác của giai đoạn phát hiện. .................................... 50

Bảng 4.3. Độ chính xác của giai đoạn theo vết đối tượng đầu học sinh. 51

Bảng 4.4 Độ chính xác của giai đoạn xác định vị trí. ............................. 52

DANH MỤC HÌNH VẼ, BIỂU ĐỒ

Hình 2.1. Cấu trúc một nơ ron ................................................................ 11

Hình 2.2. Cấu trúc nơ-ron đầy đủ 3 tầng ................................................ 11

Hình 2.3. Cấu trúc nơ-ron đầy đủ có nhiều tầng ..................................... 12

Hình 2.4. Cấu trúc nơ-ron không có tầng ẩn ........................................... 13

Hình 2.5. Mô hình CNN .......................................................................... 16

Hình 2.6. Phương pháp tích chập ............................................................ 17

Hình 2.7. Tính toán với phương pháp MaxPooling ................................ 19

Hình 2.8. Nguyên lý hoạt động của mạng nơ-ron tích chập ................... 20

Hình 2.9. Hệ thống phát hiện đối tượng dựa vào YOLO........................ 21

Hình 2.10. Mạng phát hiện đối tượng có 24 lớp tích chập và 2 lớp kết

nối đầy đủ .............................................................................. 23

Hình 2.11. Mô hình phát hiện đối tượng bằng phương pháp hồi quy .... 25

Hình 2.12. Các mẫu huấn luyện thu được bằng cách thay đổi theo chu

kỳ của một mẫu cơ sở không thể đại diện cho nội dung hình

ảnh đúng cách. ...................................................................... 29

Hình 2.13. Ma trận chuẩn hóa không gian. ............................................. 35

Hình 2.14. Sơ đồ thuật toán lọc theo mức độ tương quan ...................... 39

Hình 3.1. Mô hình mô tả hoạt động bài toán .......................................... 40

Hình 4.1. Phát hiện nhiều bao biên trên một đối tượng ở một frame ..... 54

Hình 4.2. Phát hiện nhiều bao biên trên một đối tượng ở frame sau so

với hình 4.1 ............................................................................. 55

Hình 4.3. Kết quả thuật toán 2 ................................................................ 55

Hình 4.4. Không thể phát hiện do quá ít thông tin .................................. 56

Hình 4.5. Có đối tượng bị vật thể che khuất ........................................... 56

Hình 4.6. Các bao biên đối tượng bị sai .................................................. 57

Hình 4.7. Frame đầu tiên của video ........................................................ 57

Hình 4.8. Frame bắt đầu phát hiện .......................................................... 58

Hình 4.9. Theo vết chưa chính xác ......................................................... 59

Biểu đồ 4.1. Độ chính xác phát hiện đối tượng đầu học sinh của các lớp

kiểm tra và độ chính xác trung bình phát hiện đối tượng . 51

Biểu đồ 4.2. Độ chính xác của giai đoạn theo vết đối tượng đầu học sinh

và tỉ lệ trung bình độ chính xác các lớp kiểm tra ............. 52

Biểu đồ 4.3. Độ chính xác của giai đoạn sau khi sử dụng phép chiếu để

xác định vị trí phát hiện đối tượng đầu học sinh. ............. 53

1

Chương 1. GIỚI THIỆU

Chương 1 luận văn sẽ trình bày tổng quan bài toán “Hệ thống điểm

danh tự động học sinh THPT qua camera trong lớp học”.

1.1. Đặt vấn đề

Ngày nay công nghệ thông tin phát triển không ngừng, điều này đồng

nghĩa với sự phát triển song hành các thiết bị phần cứng lẫn phần mềm đáp ứng

nhu cầu con người ngày càng cao và phức tạp. Trong đó phải kể đến sự phát

triển của các thiết bị thu nhận hình ảnh từ thế giới thực, chẳng hạn như các hệ

thống giám sát bằng camera và hệ thống giám sát này xuất hiện khắp nơi: nhà

riêng, đường phố, siêu thị, cửa hàng, cơ quan, trường học,… [1]-[3].

Thông qua thiết bị thu nhận hình ảnh này nhu cầu khai thác của con người

ở mỗi lĩnh vực khác nhau sẽ có nhu cầu khác nhau, có rất nhiều bài toán được

đặt ra đòi hỏi phải xử lí các hình ảnh thu nhận được từ hệ thống giám sát [3].

Chẳng hạn như: Các hệ thống giám sát của một ngân hàng nhằm phát hiện các

hành vi khả nghi của tội phạm; Hệ thống giám sát ngoài đường phố nhằm phát

hiện tội phạm, những người vi phạm luật giao thông; Hệ thống giám sát tại siêu

thị, cửa hàng để chống trộm cắp,… Mỗi bài toán sẽ cần những thuật toán –

phương pháp xử lý khác nhau để đạt hiệu quả tốt cho từng môi trường khác

nhau.

Hiện nay tại các trường học đã và đang sử dụng hệ thống giám sát thông

qua camera gắn cố định trong phòng học nhằm quản lí nền nếp và hỗ trợ điểm

danh cả học sinh lẫn giáo viên trong quá trình diễn ra tiết học tránh tình trạng

học sinh trốn tiết học. Cụ thể, tôi đã khảo sát một số trường THPT tại Thành

phố Vũng Tàu có sử dụng camera giám sát trong lớp học cũng với mục đích

tương tự.

2

Sau khi các trường đầu tư một khoản kinh phí rất lớn để trang bị các thiết

bị cần thiết thì việc quản lí và khai thác các thiết bị cũng gặp rất nhiều khó

khăn. Nhân viên hoặc giáo viên được phân công trong nhiệm vụ trực giám sát

camera phải thường xuyên thay đổi kích thước hiển thị màn hình để kiểm tra sĩ

số học sinh khi bắt đầu mỗi tiết học và trực cả buổi học để làm công việc này,

một công việc đòi hỏi mất rất nhiều thời gian và kinh phí lẫn sức khỏe.

Hiện nay, trên thị trường có nhiều loại thiết bị hỗ trợ điểm danh như: quét

vân tay, hay quẹt thẻ từ … [4] , [5]. Tuy nhiên, các giải pháp trên rất khó để

ứng dụng trong trường học; đặc biệt là ở trường THPT với đặc thù của học sinh

chưa tự giác (quẹt thẻ giùm), tạo ùn tắc (khi quét vân tay) hay dễ hư hỏng.

Từ bài toán thực tế của các trường THPT thành phố Vũng Tàu tôi nghiên

cứu “Hệ thống điểm danh tự động học sinh THPT qua camera trong lớp học”

để có thể áp dụng mang lại hiệu quả cao với trang thiết bị đã có sẵn của các

trường.

1.2. Mục tiêu của luận văn

+ Nghiên cứu mạng Nơ-ron tích chập (Convolution Neural Network -

CNN), mà cụ thể là YOLO v2 (You Only Look Once - YOLO) ứng dụng trong

bài toán.

+ Nghiên cứu bài toán theo vết đối tượng.

+ Xây dựng các thuật giải với dữ liệu tại một trường THPT.

1.3. Nội dung thực hiện

Để có thể giải quyết được bài toán điểm danh học sinh trong trường THPT

thông qua camera được lắp đặt tại lớp, chúng tôi cần giải quyết các bài toán:

 Xác định đầu học sinh trong các frame ảnh, để xác định đối tượng

người – mà cụ thể là học sinh trong lớp thì có nhiều phương pháp như: xác định

người, xác định khuôn mặt, … Nhưng vì camera được lắp đặt trong phòng học

thường cao hơn đầu của học sinh nhiều nên việc xác định khuôn mặt sẽ rất khó,

3

không những vậy việc xác định người bằng các phương pháp cũng rất khó. Từ

đây chúng tôi đề xuất xác định vị trí trong ảnh có vùng đầu của học sinh để làm

tiền đề cho bài toán điểm danh.

 Trong quá trình dữ liệu lấy từ camera sẽ có những học sinh luôn

di chuyển vì thế chúng tôi sẽ bắt đầu xác định vị trí đầu của học sinh khi giáo

viên bắt đầu vào lớp và học sinh đứng lên chào giáo viên. Trong khoảng thời

gian này vẫn sẽ có những học sinh chuyển động đầu và thân thể; nhưng không

đáng kể; và vì có chuyển động nên có thể đường biên đầu học sinh này chồng

lắp đầu học sinh khác. Để giả quyết vấn đề này chúng tôi sẽ xác định vị trí đầu

học sinh trong nhiều frame của một đoạn video dữ liệu từ camera rồi tổng hợp

để có kết quả tốt nhất về vị trí đầu của học sinh trong lớp học.

 Vì học sinh có thể di chuyển đầu trong quá trình xác định đầu nên

chúng tôi cần tìm được tâm vùng đầu của từng học sinh trong lớp ở video, nếu

chúng ta xác định đầu trong tất cả các frame của video thì sẽ mất nhiều thời

gian nên rất khó để áp dụng vào thực tế, nên chúng tôi sẽ đề xuất dùng phương

pháp theo vết chuyển động của đối tượng đầu học sinh để tìm được các vùng

tâm của từng học sinh.

 Từ dữ liệu này, chúng tôi sẽ tìm vị trí trung bình của vùng đầu

từng học sinh của lớp học. Sau đó chúng tôi sẽ chiếu vị trí trung bình này xuống

sơ đồ lớp học để có thể điểm danh tất cả học sinh của lớp.

1.4. Những khó khăn thách thức

Trong quá trình khảo sát và thu thập dữ liệu tại một số trường THPT tại

TP Vũng Tàu tôi nhận thấy có những khó khăn thách thức:

 Chất lượng hình ảnh phụ thuộc cơ sở vật chất của trường vì phụ

thuộc vào kinh phí và thời điểm lắp đặt camera.

4

 Các yếu tố ảnh hưởng đến chất lượng video: ánh sáng, thời tiết…

gây nhiễu làm hình ảnh không rõ nét. Các thành phần khác trong phòng học

làm che khuất các đối tượng muốn theo dõi như quạt, rèm cửa,…

 Vị trí đặt camera giám sát cũng ảnh hưởng một phần không nhỏ

đến dữ liệu muốn thu thập.

1.5. Các hướng tiếp cận

Để giải quyết bài toán điểm danh học sinh trong lớp học thông qua camera

được lắp đặt trong lớp học, chúng ta cần giải quyết từng bài toán đó là: phát

hiện đầu, theo vết chuyển động đầu, tìm vị trí trung bình đầu, chiếu vị trí trung

bình vào sơ đồ lớp học.

a. Phát hiện chuyển động của đối tượng đầu học sinh trong lớp học

Phát hiện đối tượng đầu học sinh trong lớp học là bài toán xác định đối

tượng trong video và cần xác minh sự hiện diện của các đối tượng trong chuỗi

ảnh và cũng có thể định vị chính xác. Các hệ thống theo dõi đối tượng thường

bắt đầu bằng quá trình phát hiện đối tượng, ngoài ra phát hiện đối tượng được

lặp lại trong chuỗi ảnh sẽ cần thiết cho việc hỗ trợ và xác minh cho quá trình

theo vết đối tượng.

Một số cách tiếp cận phát hiện đối tượng:

 Phát hiện đối tượng dựa trên đặc trưng

Tùy vào đặc trưng được chọn, ta có các cách tiếp cận khác nhau như: dựa

trên hình dáng, dựa trên màu sắc [6], [7]. Trong đó, cách tiếp cận dựa trên màu

sắc được xem là thông dụng nhất vì đặc trưng màu sắc thì dễ dàng lấy được và

chi phí tính toán thấp.

5

 Phát hiện đối tượng dựa trên mẫu

Nếu như có một mẫu mô tả đối tượng, thì việc phát hiện đối tượng trở

thành quá trình so khớp các đặc trưng giữa mẫu và chuỗi ảnh dưới sự phân tích,

xác định xem mẫu có xuất hiện trong hình hay không, nếu có khoanh vùng khu

vực tương ứng. Có hai kiểu so khớp mẫu, so khớp mẫu cố định và so khớp mẫu

biến dạng [8].

Phát hiện đối tượng với việc so khớp chính xác thường tốn nhiều chi phí

và chất lượng so khớp phụ thuộc vào chi tiết và mức độ chính xác của mẫu đối

tượng.

 Phát hiện đối tượng chuyển động

Phát hiện đối tượng chuyển động từ hệ thống giám sát được quan tâm rất

nhiều bởi hầu hết các hệ thống này giám sát thông qua video và được ứng dụng

trong rất nhiều lĩnh vực, có rất nhiều kỹ thuật phát hiện chuyển động của đối

tượng được sử dụng.

Đối với vấn đề phát hiện đối tượng chuyển động có thể dùng biện pháp

trừ nền. Bước đầu xây dựng mô hình nền, mô hình nền này có thể được học qua

nhiều frame ảnh nếu nền bị thay đổi, ngược lại ta có thể chọn một nền có sẵn

nếu nền không bị thay đổi. Sau đó, ta sẽ dùng mô hình nền này để so sánh với

frame ảnh hiện tại và kết quả là ta sẽ nhận biết được đâu là vùng phần nền, đâu

là các phần chuyển động.

Ngoài ra, cũng có nhiều kỹ thuật tiếp cận để phát hiện chuyển động trong

hình ảnh video liên tục. Có thể so sánh khung hình hiện tại với hình nền chúng

ta chụp từ ban đầu khi bật camera hoặc từ khung hình trước. Đối với kỹ thuật

trừ nền thì giảm được việc xử lý. Tuy nhiên, cách tiếp cận có một bất lợi lớn,

ví dụ nếu có một đối tượng đang di chuyển ở frame đầu tiên nhưng sau đó nó

đã biến mất. Với kỹ thuật Yolo v2 thì xử lý phức tạp hơn, xử lý nhiều hơn

nhưng lại thích nghi với mọi môi trường, kể cả môi trường ít thay đổi hoặc thay

đổi nhiều. Nhược điểm là nếu đối tượng có kích thước nhỏ, bị che khuất thì hệ

6

thống không phát hiện ra nhưng đối với bài toán cụ thể vẫn đáp ứng được vì ở

đây đối tượng là học sinh trong lớp học nên có vị trí ngồi với khoảng cách cố

định ít thay đổi. Chính vì vậy, đề xuất giải pháp sử dụng Yolo v2 để phát hiện

đối tượng đầu học sinh.

b. Theo vết đối tượng đầu học sinh trong lớp.

Với bài toán cụ thể, phát hiện và theo dõi đối tượng học sinh trong thời

gian thực (real-time object tracking) cũng là vấn đề mà lĩnh vực thị giác máy

tính (computer vision) rất quan tâm trong thời gian qua. Mức độ khó khăn của

vấn đề này phụ thuộc nhiều vào đối tượng được phát hiện và theo vết như thế

nào. Hiện nay, có rất nhiều phương pháp theo vết chuyển động, cụ thể như:

 So khớp mẫu

So khớp mẫu là phương pháp nhằm phân loại đối tượng dựa vào mức độ

tương tự giữa những đối tượng xem xét với mẫu cho trước. Trong trường hợp

được ứng dụng để giải quyết yêu cầu rất cụ thể như cho trước một mẫu và một

hình bất kì đa mức xám lớn hơn mẫu, xác định xem đối tượng mẫu có xuất hiện

trong hình hay không, nếu có thì khoanh vùng khu vực tương ứng đó, nếu không

thì báo là không tồn tại đối tượng.

Ưu điểm của phương pháp này là không chịu ảnh hưởng bởi nhiễu và hiệu

ứng chiếu sáng, có thể theo vết chuyển động được các đối tượng biến dạng

nhưng độ phức tạp tính toán cao, chất lượng so khớp phụ thuộc vào chi tiết và

độ chính xác của mẫu đối tượng.

 Mean shift

Dorin Comaniciu [9] đã giới thiệu phương pháp theo vết Mean shift. Đây

là một phương pháp theo vết tối ưu hóa tối thiểu cục bộ. Mean shift là một

phương pháp đơn giản và hiệu quả cho theo vết thời gian thực, thích hợp các

video có đối tượng thay đổi do máy quay chuyển động, có ảnh nền lộn xộn

nhưng nó chỉ tối ưu hoá cục bộ chứ không toàn cục. Khi màu nền và màu đối

tượng giống nhau, phương pháp này sẽ không thể theo vết đối tượng được.

7

 Lọc Kalman

Lọc Kalman đã được biết như là một phương pháp cổ điển, nổi tiếng được

phát minh từ năm 1960 bởi R.E.Kalman. Nó là một thuật toán theo vết tối ưu

nhất trong trường hợp hệ là tuyến tính và nhiễu có phân phối Gauss với nguyên

lý “dự đoán – hiệu chỉnh” [10] sử dụng thuật toán hồi quy để ước lượng biến

trạng thái của hệ thống. Nhưng trong thực tế không phải luôn đảm bảo các yêu

cầu ràng buộc của bộ lọc Kalman mà nó hoàn toàn có thể được biểu diễn bởi

các phương trình phi tuyến, đồng thời nhiễu là phi Gauss. Để giải quyết vấn đề

này nhiều phương pháp được đưa ra nhằm cải tiến bộ lọc Kalman truyền thống

như: EKF (Extended Kalman Filter), UKF (Unscented Kalman Filter)... Mục

đích của các bộ lọc này nhằm tuyến tính hóa các hệ thống phi tuyến bằng

phương pháp khai triển Taylor các hàm phi tuyến thành chuỗi các hàm số sơ

cấp tuyến tính. Các giải pháp này thường gặp phải các nhược điểm như khối

lượng tính toán đòi hỏi quá lớn với các hệ thống phức tạp và nhiễu đo đạc bị

phân cực lớn.

 Lọc tương quan

Ma et al. [11] đề xuất các bộ lọc mức độ tương quan trên mỗi lớp tích chập

và suy luận phân cấp đáp ứng tối đa trên mỗi lớp để xác định vị trí mục tiêu. Ý

tưởng chính của thuật toán lọc tương quan sẽ học một bộ lọc trong suốt quá

trình theo dõi, sao cho bộ lọc khi tích chập với ảnh bao biên đối tượng thì kết

quả sẽ có thông tin tập trung xung quanh tâm của đối tượng.

Mỗi phương pháp có điểm mạnh và điểm yếu riêng, tuy nhiên phương

pháp lọc tương quan có thể khắc phục được những nhược điểm của các phương

pháp khác như: theo vết các đối tượng tốt trong trường hợp phi tuyến và không

phải nhiễu Gauss.

8

1.6. Hướng giải quyết

Từ các nhận xét trên chúng tôi đề xuất phương pháp giải quyết cho từng

bài toán:

(a) Bài toán 1 – xác định vùng đầu học sinh, chúng tôi sử dụng mô

hình học chuyên sâu (Deep Learning – DL) để huấn luyện và xác định các vùng

trong ảnh là đầu của học sinh vì DL cho phép “thấy” được nhiều chi tiết nhỏ

qua quá trình học rất hiệu quả.

(b) Bài toán 2 – theo vết chuyển động các vùng đầu học sinh, vì vùng

đầu học sinh (người Việt Nam) có màu đồng nhất (học sinh phổ thông không

được nhuộm tóc khi đi học – theo nội quy) nên phương pháp theo vết chuyển

động theo bộ lọc tương quan (trong xác suất thống kê) sẽ có ưu thế hơn so với

các phương pháp khác.

(c) Bài toán 3 – tìm vị trí trung bình tâm các vùng đầu, chúng tôi dùng

phương pháp tính tâm trung bình để tìm tâm của các vị trí đầu của một học sinh.

(d) Bài toán 4 – điểm danh học sinh theo sơ đồ, chúng tôi dùng

phương pháp chiếu với độ đo Euclide được dùng để điểm danh học sinh theo

sơ đồ lớp.

1.7. Bố cục luận văn

Bố cục luận văn được chia thành 4 chương:

Chương 1 trình bày một số vấn đề từ thực tế làm phát sinh vấn đề cần

nghiên cứu. Trong đó cũng sẽ giới thiệu những mục tiêu, nội dung nghiên cứu,

các giải pháp giải quyết vấn đề, những khó khăn thách thức khi giải quyết bài

toán và cuối cùng là bố cục trình bày của luận văn.

Chương 2 trình bày những vấn đề lý thuyết nghiên cứu trong đề tài: mạng

nơ-ron nhân tạo, mạng nơ-ron tích chập, lọc theo mức độ tương quan.

Chương 3 trình bày thuật giải sử dụng để giải quyết từng bài toán.

9

Chương 4 trình bày kết quả nghiên cứu và hướng phát triển của đề tài

trong tương lai.

10

Chương 2. CƠ SỞ LÝ THUYẾT

Chương 2 luận văn trình bày những vấn đề lý thuyết nghiên cứu

trong đề tài: mạng nơ-ron nhân tạo, mạng nơ-ron tích chập, lọc theo

mức độ tương quan

2.1. Mạng nơ-ron nhân tạo

Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) là một mô hình

xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học.

Nó được tạo nên từ một số lượng lớn các phần tử (nơ-ron) kết nối với nhau

thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để

giải quyết một vấn đề cụ thể nào đó. Một mạng nơ-ron nhân tạo được cấu hình

cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu,...) thông qua một

quá trình học từ tập các mẫu huấn luyện [12].

2.1.1. Cấu trúc của mạng nơ-ron

Cấu trúc của mạng nơ-ron bao gồm một nhóm các nơ-ron nhân tạo (phần

tử) liên kết với nhau, mạng nơ-ron xử lý thông tin bằng cách truyền thông tin

theo các kết nối và tính giá trị mới tại các hàm, hình 2.1. Trong nhiều trường

hợp, mạng nơ-ron nhân tạo là một hệ thống thích ứng, nghĩa là mạng nơ-ron có

thể tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong

truyền qua mạng trong quá trình học.Một ANN gồm ba tầng: tầng đầu vào chạy

lớp đầu vào, các tầng ẩn hay lớp ẩn và cuối cùng là tầng đầu ra được mô tả

trong hình 2.2, trong đó, tầng ẩn gồm nhiều nơ-ron nhận dữ liệu đầu vào từ các

lớp trước đó để xử lý và chuyển đổi các dữ liệu này cho các lớp tiếp theo. Một

ANN có thể có nhiều lớp ẩn, hình 2.3; hoặc không có lớp ẩn, hình 2.4.

11

Hình 2.1. Cấu trúc một nơ ron

Hình 2.2. Cấu trúc nơ-ron đầy đủ 3 tầng

12

Mỗi tầng trong ANN có thể có một hay nhiều nơ-ron (tương ứng ta có thể

có nhiều đặc trưng, nhiều dữ liệu, nhiều h(x)…). Về cơ bản, lớp đầu vào và

lớpđầu ra chỉ có một, riêng lớp ẩn có thể có nhiều, số lượng lớp ẩn sẽ khiến cho

độ phức tạp của mô hình thay đổi. Khi đó ta không cần thêm quá nhiều thành

phần đa thức vào các đặc trưng để khiến cho mô hình đủ phức tạp để phù hợp

với dữ liệu.

Hình 2.3. Cấu trúc nơ-ron đầy đủ có nhiều tầng

Hàm kích hoạt hay hàm chuyển đổi ℎ𝑘(𝑥) tính toán đầu ra của một nơ-ron

để chuyển đến lớp tiếp theo trong mạng nơ-ron. Hàm kích hoạt phi tuyến được

sử dụng vì mạng chỉ sử dụng các hàm kích hoạt tuyến tính có thể lược giản

thông qua các biến đổi đại số thành mô hình perceptron một lớp (là mô hình

ANN đơn giản nhất, không có lớp ẩn). Một số hàm kích hoạt phi tuyến thường

dùng là ReLU (Rectified Linear Unit), sigmoid, logistic, Gauss, tanh, softmax.

13

Hình 2.4. Cấu trúc nơ-ron không có tầng ẩn

(2.1) ℎ(𝑥) = { 0 , 𝑥 < 0 𝑥 , 𝑥 ≥ 0

Hàm Sigmoid

(2.2) ℎ(𝑥) = 1 1 + 𝑒−𝑥

Hàm Tanh

2 (2.3) ℎ(𝑥) =

1 + 𝑒−2𝑥 − 1 Kết quả xử lý đầu ra hàm tổng của nơ-ron đôi khi quá lớn, hàm kích hoạt

thường dùng để xử lý đầu ra này trước khi chuyển đến lớp tiếp theo. Đôi khi

thay vì sử dụng hàm kích hoạt, ta thường sử dụng giá trị ngưỡng để kiểm soát

đầu ra của nơ-ron. Nếu đầu ra của một nơ-ron nhỏ hơn ngưỡng thì sẽ không

được chuyển đến lớp tiếp theo.

14

2.1.2. Một số dạng mạng nơ-ron

Hiện nay có một số dạng mạng nơ-ron cơ bản:

 Mạng kết nối đầy đủ nếu mọi đầu ra của một lớp liên kết với mọi

nơ-ron của lớp tiếp theo.

 Mạng lan truyền thẳng nếu không tồn tại liên kết giữa các nơ-ron

thuộc cùng một lớp.

 Mạng phản hồi nếu tồn tại đầu ra của một nơ-ron liên kết ngược lại

làm đầu vào của một nơ-ron cùng lớp.

 Mạng hồi quy nếu các mạng phản hồi có các vòng lặp kín.

2.1.3. Quá trình học của mạng nơ-ron

Dữ liệu được học thông qua các lớp của mô hình này sẽ được “học” ra các

đặc trưng để tiến hành phân lớp một cách hiệu quả.

ANN được huấn luyện hay được học theo hai kỹ thuật cơ bản đó là học có

giám sát và học không giám sát.

Học có giám sát là quá trình huấn luyện được lặp lại cho đến kết quả của

ANN đạt được kết quả mong muốn mà chúng ta đã biết trước. Điển hình kỹ

thuật này là mạng nơ-ron lan truyền ngược.

Học không giám sát thì sẽ không sử dụng tri thức bên ngoài trong quá

trình học, nên còn gọi là tự tổ chức. Mạng nơ-ron điển hình được huấn luyện

theo kiểu Sefl – Organizing Map (SOM).

2.1.4. Mạng nơ-ron nhân tạo trong xử lí ảnh

Mô hình mạng nơ-ron nhân tạo truyền thẳng ra đời đã được áp dụng nhiều

trong các bài toán nhận dạng. Tuy nhiên mạng nơ-ron truyền thẳng không thể

hiện tốt đối với các dữ liệu như hình ảnh. Chính sự liên kết quá đầy đủ tạo nên

những hạn chế cho mô hình. Dữ liệu hình ảnh có kích thước khá lớn, một ảnh

xám có kích thước 32×32 (điểm ảnh) sẽ cho ra vector đặc trưng có 1024 chiều,

còn đối với ảnh màu cùng kích thước sẽ là 3072 chiều. Điều này cũng có nghĩa

15

là cần tới 3072 trọng số θ nối giữa lớp vào và một phần tử ở lớp ẩn kế tiếp. Số

lượng trọng số sẽ càng nhân rộng hơn nữa nếu số lượng phần tử trong lớp ẩn

tăng lên, số lượng lớp ẩn tăng lên. Như vậy chỉ với một ảnh nhỏ (32×32) thì

cũng cần đến một mô hình khá lớn. Điều này khiến cho việc thao tác với các

ảnh có kích thước lớn hơn trở nên khó khăn.

Việc liên kết các điểm ảnh vào một phần tử trong mạng không cần thiết vì

sự phụ thuộc lẫn nhau giữa các điểm ảnh xa nhau là không nhiều mà chủ yếu

là sự phụ thuộc giữa các điểm lân cận với nó. Dựa trên tư tưởng này mạng nơ-

ron tích chập ra đời với một kiến trúc khác so mới mạng truyền thẳng. Thay vì

toàn bộ ảnh nối với một phần tử thì chỉ có một phần cục bộ trong ảnh nối đến

một phần tử trong lớp tiếp theo.

2.2. Mạng nơ-ron tích chập

Mạng nơ-ron tích chập là một kiến trúc dựa trên các phép toán tích chập

giữa các lớp. Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số [13]. Nhờ

vào nguyên lý biến đổi thông tin, các nhà khoa học đã áp dụng kĩ thuật này vào

xử lý ảnh và video số [14]. Giả sử với một ảnh được biểu thị dưới dạng ma trận

là dữ liệu ban đầu cho CNN thì các nơ-ron ở tầng chập thứ nhất sẽ được tạo

thành nhờ các phép chập trên ma trận đó. Kết quả thu được sẽ được đi qua các

hàm kích hoạt. Tầng chập thứ hai sẽ được tạo thành bằng phép chập dựa trên

kết quả bên trên và cứ thế tiếp diễn.

Như vậy ta có thể hiểu ban đầu CNN sẽ phân tích ảnh ra trên nhiều khu

vực và sau đó sẽ kết hợp lại. Do kích thước cửa sổ chập ở mỗi tầng có thể khác

nên trong quá trình huấn luyện CNN sẽ tự động học các đặc trưng của các dữ

liệu. Việc sử dụng nhiều tầng tức thực hiện phép chập nhiều lần sẽ cho ta biết

cụ thể hơn về các tính chất có trong ảnh nên CNN tỏ ra hiệu quả trong việc

nhận dạng ảnh. Tuy nhiên vì sử dụng các phép tính chập cộng với việc cần một

lượng dữ liệu đầu vào phải nhiều nên chi phí tính toán của CNN sẽ rất lớn dẫn

16

tới thời gian huấn luyện sẽ khá lâu. Ngoài ra CNN chỉ hoạt động dựa trên dữ

liệu đã được phân loại trước.

CNN gồm nhiều tầng, mỗi tầng sẽ bao gồm các lớp: lớp tích chập, lớp

hàm kích hoạt, lớp Pooling hay còn gọi là lớp subsampling, lớp kết nối đầy đủ.

Trong các tầng của CNN, người thiết kế có thể sử dụng đủ 3 lớp hay không tùy

thuộc vào dữ liệu và mục tiêu.

Trong mô hình CNN, các lớp được liên kết với nhau thông qua cơ chế tích

chập, hình 2.5. Lớp tiếp theo là kết quả của tích chập của lớp trước đó, nhờ vậy

mà ta có được các kết nối cục bộ. Nghĩa là mỗi nơ-ron ở lớp tiếp theo được sinh

ra từ các bộ lọc áp đặt lên một vùng ảnh cục bộ của nơ-ron ở lớp trước đó.

Hình 2.5. Mô hình CNN

2.2.1. Tích chập

Khi có một hình ảnh mới, CNN không biết chính xác nơi chứa các đặc

trưng này sẽ khớp hay không nên nó sẽ thử chúng khắp mọi nơi, ở mọi vị trí có

thể. Khi tính toán sự khớp của một đặc trưng trên toàn bộ ảnh và làm thành một

bộ lọc. Phần toán ta sử dụng để làm điều này được gọi là tích chập, hình 2.6.

Lớp này chính là nơi thể hiện tư tưởng ban đầu của mạng nơ-ron tích chập.

Thay vì kết nối toàn bộ điểm ảnh, lớp này sẽ sử dụng một bộ các bộ lọc có kích

thước nhỏ so với ảnh (thường là 3×3 hoặc 5×5) áp vào một vùng trong ảnh và

tiến hành tính tích chập giữa bộ lọc và giá trị điểm ảnh trong vùng cục bộ đó.

17

Bộ lọc sẽ lần lượt được dịch chuyển theo một giá trị bước trượt duyệt dọc theo

ảnh và quét toàn bộ ảnh.

Hình 2.6. Phương pháp tích chập

Để tính toán sự khớp của một đặc trưng đối với một mảnh của hình ảnh,

ta chỉ cần nhân mỗi điểm ảnh trong phần đặc trưng với giá trị của điểm ảnh

tương ứng trong mảnh hình ảnh. Sau đó cộng tổng lại và chia cho số lượng

điểm ảnh trong đặc trưng.

Như vậy, với một ảnh 32×32 và một bộ lọc 3×3, ta sẽ có kết quả là một

ảnh mới có kích thước 32×32 (với điều kiện đã thêm padding vào ảnh gốc để

tính tích chập cho các trường hợp bộ lọc quét ra các biên cạnh) là kết quả tích

chập của bộ lọc và ảnh. Với bao nhiêu bộ lọc trong lớp này thì ta sẽ có bấy

nhiêu ảnh tương ứng mà lớp này trả ra và được truyền vào lớp tiếp theo. Các

trọng số của bộ lọc ban đầu sẽ được khởi tạo ngẫu nhiên và sẽ được học dần

trong quá trình huấn luyện mô hình.

2.2.2. Lớp hàm kích hoạt

Lớp hàm kích hoạt (Rectified Linear Unit - ReLU) thường được cài đặt

ngay sau lớp tích chập. Lớp này sử dụng hàm kích hoạt f(x) = max(0,x) và có

nhiệm vụ chuyển toàn bộ giá trị âm trong kết quả lấy từ lớp tích chập thành giá

trị 0. Ý nghĩa của cách cài đặt này chính là làm tăng các thuộc tính phi tuyến

cho mô hình. Tương tự như trong mạng truyền thẳng, việc xây dựng dựa trên

18

các phép biến đổi tuyến tính sẽ khiến việc xây dựng đa tầng đa lớp trở nên vô

nghĩa. Có rất nhiều cách để khiến mô hình trở nên phi tuyến như sử dụng các

hàm kích hoạt sigmoid, tanh như đã trình bày trong phần 2.1.1 ở trên, nhưng

hàm f(x) = max(0,x) dễ cài đặt, tính toán nhanh mà vẫn hiệu quả.

2.2.3. Lớp tổng hợp

Lớp tổng hợp (Pooling) sử dụng một cửa sổ trượt quét qua toàn bộ ảnh dữ

liệu, mỗi lần trượt theo một bước trượt cho trước. Khác với lớp tích chập, lớp

tổng hợp không tính tích chập mà tiến hành lấy mẫu. Khi cửa sổ trượt trên ảnh,

chỉ có một giá trị được xem là giá trị đại diện cho thông tin ảnh tại vùng đó (giá

trị mẫu) được giữ lại. Các phương pháp tính toán phổ biến trong lớp Pooling

là: lấy giá trị lớn nhất, lấy giá trị nhỏ nhất, lấy giá trị trung bình.

Xét một ảnh có kích thước 4×4 và lớp Pooling sử dụng bộ lọc có kích

thước 2×2 với bước trượt stride = 2, phương pháp sử dụng là MaxPooling, hình

2.7. Bộ lọc sẽ lần lượt duyệt qua ảnh, với mỗi lần duyệt chỉ có giá trị lớn nhất

trong 4 giá trị nằm trong vùng cửa sổ 2×2 của bộ lọc được giữ lại và đưa ra đầu ra.

Như vậy sau khi qua lớp Pooling, ảnh sẽ giảm kích thước xuống còn 2×2

(kích thước mỗi chiều giảm 2 lần).

Lớp Pooling có vai trò giảm kích thước dữ liệu. Với một ảnh kích thước

lớn qua nhiều lớp Pooling sẽ được thu nhỏ lại tuy nhiên vẫn giữ được những

đặc trưng cần cho việc nhận dạng (thông qua cách lấy mẫu). Việc giảm kích

thước dữ liệu sẽ làm giảm lượng tham số, tăng hiệu quả tính toán và góp phần

kiểm soát hiện tượng quá khớp.

19

Hình 2.7. Tính toán với phương pháp MaxPooling

2.2.4. Lớp kết nối đầy đủ

Lớp kết nối đầy đủ tương tự với lớp trong mạng nơ-ron truyền thẳng, các

giá trị ảnh được liên kết đầy đủ vào phần tử trong lớp tiếp theo. Sau khi ảnh

được xử lý và rút trích đặc trưng từ các lớp trước đó, dữ liệu ảnh sẽ không còn

quá lớn so với mô hình truyền thẳng nên ta có thể sử dụng mô hình truyền thẳng

để tiến hành nhận dạng. Tóm lại, lớp kết nối đầy đủ đóng vai trò như một mô

hình phân lớp và tiến hành dựa trên dữ liệu đã được xử lý ở các lớp trước đó.

2.2.5. Nguyên lý hoạt động của mạng nơ-ron tích chập

Mạng nơ-ron tích chập là một tập hợp các lớp tích chập chồng lên nhau và

sử dụng các hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng

số trong các phần tử. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo

ra các thông tin cho các lớp tiếp theo. Trong mô hình mạng truyền ngược thì

mỗi nơ-ron đầu vào cho mỗi nơ-ron đầu ra trong các lớp tiếp theo. Mô hình này

gọi là mạng kết nối đầy đủ hay mạng toàn vẹn. Còn trong mô hình CNN thì

ngược lại; Các tầng liên kết được với nhau thông qua cơ chế tích chập. Tầng

tiếp theo là kết quả tích chập từ tầng trước đó, nhờ vậy mà ta có được các kết

nối cục bộ. Như vậy mỗi nơ-ron ở lớp kế tiếp sinh ra từ kết quả của bộ lọc áp

đặt lên một vùng ảnh cục bộ của nơ-ron trước đó, hình 2.8.

Mỗi một lớp được sử dụng các bộ lọc khác nhau thông thường có hàng

trăm hàng nghìn bộ lọc như vậy và kết hợp kết quả của chúng lại. Ngoài ra có

20

một số lớp khác như lớp Pooling, lớp subsampling dùng để chắt lọc lại các

thông tin hữu ích hơn (loại bỏ các thông tin nhiễu).

Hình 2.8. Nguyên lý hoạt động của mạng nơ-ron tích chập

Trong quá trình huấn luyện mạng CNN tự động học các giá trị qua các bộ

lọc dựa vào cách thức mà bạn thực hiện. Ví dụ trong tác vụ phân lớp ảnh, CNN

sẽ cố gắng tìm ra thông số tối ưu cho các bộ lọc tương ứng theo thứ tự raw pixel

> edges > shapes > facial > high-level features. Lớp cuối cùng được dùng để

phân lớp ảnh.

2.3. Mô hình YOLO

Khi con người quan sát một hình ảnh thì ngay lập tức biết được các đối

tượng có trong hình ảnh, vị trí của chúng. Trong thị giác máy tính thì điều này

không dễ dàng, trước đây việc phát hiện đối tượng bằng cách sử dụng các trình

phân loại. Để phát hiện một đối tượng các hệ thống này phân loại cho đối tượng

đó và đánh giá nó ở các vị trí khác nhau và dựa vào tỉ lệ trong một hình ảnh thử

nghiệm. Các hệ thống sử dụng cách tiếp cận cửa sổ trượt, nơi trình phân loại

được chạy ở các vị trí cách đều nhau trên toàn bộ hình ảnh [15]. Cụ thể như R-

CNN sử dụng phương pháp đề xuất khu vực để tạo ra các bao biên đối tượng

tiềm năng đầu tiên trong một hình ảnh và sau đó chạy một bộ phân loại trên các

21

hộp được đề xuất này. Sau khi phân loại, xử lý điều chỉnh các bao biên đối

tượng loại bỏ các phát hiện trùng lặp và định lại các hộp dựa trên các đối tượng

khác trong cảnh [16]. Với phương pháp này phức tạp rất chậm và khó tối ưu vì

mỗi thành phần phải được huấn luyện riêng lẻ.

“Bạn chỉ nhìn một lần” – YOLO – là một biến thể của CNN cho phép có

thể dự đoán sự hiện diện của đối tượng và đối tượng đó ở đâu nhờ vào bài toán

hồi quy từ điểm ảnh đến tọa độ và xác suất của các lớp liên quan bằng cách sử

dụng mạng nơ-ron, hình 2.9. và đây là cách tiếp cận dùng để phát hiện đối

tượng.

Hình 2.9. Hệ thống phát hiện đối tượng dựa vào YOLO

(a) Thay đổi kích thước ảnh đầu vào thành 448×448, (b) thực thi CNN

trên ảnh, (c) ngưỡng phát hiện kết quả dựa theo độ tin cậy của mô hình.

YOLO huấn luyện hình ảnh đầy đủ và trực tiếp tối ưu hóa hiệu suất phát

hiện vì thế YOLO thực hiện rất nhanh. Mô hình này có một số lợi ích so với

các phương pháp phát hiện đối tượng truyền thống và YOLO có thể đạt được

gấp đôi độ chính xác trung bình của các hệ thống phát hiện đối tượng trong thời

gian thực khác.

Khi xử lý YOLO đưa ra dự đoán về hình ảnh, nhìn tổng quát toàn bộ về

một hình ảnh trong thời gian huấn luyện và kiểm tra nó ngầm mã hóa thông tin

của nó theo ngữ cảnh về các lớp cũng như sự xuất hiện của đối tượng không

giống như các phương pháp khác sử dụng cửa sổ trượt và các kỹ thuật dựa trên

đề xuất vùng.

22

Với Fast R-CNN, một phương pháp phát hiện đối tượng cũng rất hiệu quả

[16], tuy nhiên thường phát hiện sai trong một phần nền của một hình ảnh cho

các đối tượng bởi vì nó không thể nhìn thấy bối cảnh lớn hơn.

2.3.1. Cấu trúc mạng YOLO

Cấu trúc mạng được lấy ý tưởng từ mô hình GoogLeNet để phân loại hình

ảnh [17]. Mạng có 24 lớp tích chập và 2 lớp kết nối đầy đủ, sử dụng các lớp

giảm 1×1 sau đó đến các lớp tích chập 3×3, giống như Lin et al [18], hình 2.10.

YOLO được thiết kế để đẩy nhanh quá trình phát hiện đối tượng bằng cách

sử dụng mạng nơ-ron có ít lớp tích chập hơn (9 lớp thay vì 24 lớp) và ít bộ lọc

hơn trong các lớp đó gọi là Fast YOLO. Khác với kích thước của mạng, tất cả

các thông số huấn luyện và thử nghiệm đều giống nhau giữa YOLO và Fast

YOLO.

Các lớp chuyển tiếp 1×1 xen kẽ làm giảm không gian đặc trưng từ các lớp

trước. Giả định các lớp tích chập trên phân loại ImageNet ở một nửa độ phân

giải (hình ảnh đầu vào 224 × 224) và sau đó tăng gấp đôi độ phân giải để phát

hiện.

23

Hình 2.10. Mạng phát hiện đối tượng có 24 lớp tích chập và 2 lớp kết

nối đầy đủ

2.3.2. Nguyên tắc hoạt động của YOLO

YOLO sử dụng các đặc trưng từ toàn bộ hình ảnh để dự đoán mỗi bao biên

đối tượng và cũng dự đoán tất cả các bao biên đối tượng trên tất cả các lớp cho

một hình ảnh cùng một lúc.

Hình ảnh đầu vào được chia S × S ô lưới, nếu trung tâm của một đối tượng

rơi vào ô lưới nào thì ô lưới đó chịu trách nhiệm phát hiện đối tượng đó.

Mỗi ô lưới dự đoán B và độ tin cậy cho các hộp đó. Độ tin cậy này phản

𝑡𝑟𝑢𝑡ℎ.

ánh đối tượng có chứa hay không có chứa trong bao biên đối tượng đó.

Để xác định độ tin cậy này dựa theo cách tính Pr(𝑂𝑏𝑗𝑒𝑐𝑡) ∗ 𝐼𝑈𝑂𝑝𝑟𝑒𝑑

Nếu không có đối tượng nào tồn tại trong ô đó thì giá trị của độ tin cậy phải

bằng 0 và ngược lại thì giá trị của độ tin cậy chính là phần giao bao biên đối

tượng dự đoán với bao biên đối tượng được huấn luyện đã xác định đó là đối

tượng.

Mỗi bao biên đối tượng bao gồm 5 dự đoán: x, y, w, h và độ tin cậy. Các

tọa độ (x; y) đại diện cho tâm của ô tương ứng với các giới hạn của ô lưới.

Chiều rộng w và chiều cao h được dự đoán tương đối so với toàn bộ hình ảnh,

24

hình 2.11. Chia hình ảnh thành lưới SxS và cho mỗi ô lưới dự đoán các ô có B

bao biên đối tượng, độ tin cậy cho các hộp đó và xác suất lớp C. Những dự

đoán này được mô tả dưới dạng S × S × (B * 5 + C).

Mỗi ô lưới cũng dự đoán C xác suất lớp có điều kiện Pr(𝐶𝑙𝑎𝑠𝑠𝑖|𝑂𝑏𝑗𝑒𝑐𝑡).

Các xác suất này được điều chỉnh trên ô lưới có chứa một đối tượng và độc lập

với số lượng B bao biên đối tượng.

Quá trình thực hiện việc phát hiện đối tượng ta nhân xác suất từng lớp với

độ tin cậy, theo công thức (2.4)

𝑡𝑟𝑢𝑡ℎ Pr(𝐶𝑙𝑎𝑠𝑠𝑖|𝑂𝑏𝑗𝑒𝑐𝑡) ∗ Pr(𝑂𝑏𝑗𝑒𝑐𝑡) ∗ 𝐼𝑂𝑈𝑝𝑟𝑒𝑑

𝑡𝑟𝑢𝑡ℎ

(2.4)

= Pr(𝐶𝑙𝑎𝑠𝑠𝑖) ∗ 𝐼𝑂𝑈𝑝𝑟𝑒𝑑

Kết quả nhận được từ (2.4) là giá trị của độ tin cậy theo từng lớp cụ thể

cho từng ô. Những giá trị này là xác suất của lớp đó xuất hiện trong hộp và hộp

dự đoán phù hợp với đối tượng như thế nào.

2.3.3. Quá trình huấn luyện của YOLO

Các lớp tích chập được thực hiện trên bộ dữ liệu 1000 lớp của ImageNet

[19]. Đối với trường hợp huấn luyện lại, YOLO sử dụng 20 lớp tích chập đầu

tiên như hình 2.10 theo sau là một lớp gộp trung bình và một lớp được kết nối

đầy đủ.

Sau đó được chuyển đổi mô hình để thực hiện phát hiện. Ren et al. cho

biết việc thêm cả các lớp tích chập và lớp kết nối thì các mạng được huấn luyện

lại có thể cải thiện hơn và đạt hiệu quả cao hơn [20].

Ví dụ thêm bốn lớp tích chập và hai lớp được kết nối đầy đủ với trọng số

khởi tạo ngẫu nhiên. Phát hiện thường đòi hỏi thông tin trực quan chi tiết nên

giải pháp tăng độ phân giải đầu vào của mạng từ 224 × 224 lên 448 × 448 được

chọn.

25

Hình 2.11. Mô hình phát hiện đối tượng bằng phương pháp hồi quy

Lớp cuối cùng của YOLO dự đoán cả hai xác suất lớp và tọa độ bao biên

đối tượng. Chiều rộng và chiều cao của bao biên đối tượng theo chiều rộng và

chiều cao của ảnh sao cho các giá trị nằm trong khoảng từ 0 đến 1. Các tham

số của bao biên đối tượng gồm x và y là tọa độ của vị trí ô lưới cụ thể và những

giá trị này cũng bị giới hạn giữa 0 và 1 .

YOLO sử dụng hàm kích hoạt tuyến tính cho lớp cuối cùng và tất cả các

lớp khác sử dụng kích hoạt tuyến tính, (2.5)

(2.5) 𝜙(𝑥) = { x, nếu x>0 0.1x, ngược lại

YOLO tối ưu hóa tổng bình phương lỗi cho kết quả ra từ mô hình.

Đối với YOLO v2, sử dụng biện pháp chuẩn hóa trên tất cả các lớp tích

chập nên làm tăng độ chính xác. Việc chuẩn hóa thường xuyên giúp cập nhật

lại mô hình và cũng hạn chế trường hợp quá khớp dữ liệu.

26

Tất cả các phương pháp phát hiện hiện đại đều sử dụng trình phân loại

được huấn luyện trước trên ImageNet [19]. Như AlexNet, hầu hết các trình

phân loại hoạt động trên các hình ảnh đầu vào nhỏ hơn 256 × 256 [21]. YOLO

ban đầu huấn luyện mạng phân loại ở mức 224 × 224 và tăng độ phân giải lên

448 để phát hiện. Điều này có nghĩa là mạng phải đồng thời chuyển sang quá

trình phát hiệu đối tượng và điều chỉnh theo độ phân giải đầu vào mang lại hiệu

quả cao hơn.

YOLO dự đoán tọa độ của các bao biên đối tượng trực tiếp bằng cách sử

dụng các lớp được kết nối đầy đủ dựa trên các đặc trưng của lớp tích chập. Thay

vì dự đoán trước các tọa độ như Faster R-CNN dự đoán các bao biên đối tượng

bằng thủ công [22]. YOLO loại bỏ các lớp kết nối đầy đủ khỏi YOLO và sử

dụng các hộp neo để dự đoán các bao biên đối tượng. Đầu tiên loại bỏ một lớp

tổng hợp để làm cho đầu ra của các lớp tích chập của mạng có độ phân giải cao

hơn. Sau đó thu hẹp mạng để hoạt động trên 416 hình ảnh đầu vào thay vì

448x448 với mong muốn có một số vị trí lẻ trong mô hình đặc trưng và có một

ô trung tâm duy nhất. Đối tượng, đặc biệt là các đối tượng lớn có xu hướng

chiếm trung tâm của hình ảnh do đó tốt nhất nên có một vị trí ngay tại trung

tâm để dự đoán các đối tượng này thay vì bốn vị trí gần đó. Các lớp tích chập

của YOLO giảm kích thước hình ảnh xuống 32 lần bằng cách sử dụng một hình

ảnh đầu vào là 416, chúng ta có được một ảnh đầu ra có kích thước 13 × 13.

Khi sử dụng hộp neo kích thước được chọn bằng tay sẽ gặp vấn đề nếu có

lựa chọn tốt thì mạng sẽ huấn luyện, dự đoán và phát hiện tốt ngược lại thì kết

quả rất tệ. Để khắc phục vấn đề này, YOLO cho thực hiện phân cụm K-means

trên bộ huấn luyện để có thể đưa ra các bao biên đối tượng dự đoán tốt nhất với

giá trị IOU độc lập với kích thước bao biên đối tượng.

27

2.4. Lọc theo mức độ tương quan của hàm nhân

Theo dõi đối tượng là một vấn đề quan trọng trong thị giác máy tính và có

nhiều ứng dụng như tương tác máy tính như giám sát giao thông, phương tiện

không người lái [23], [24]. Nhiệm vụ chính của theo dõi đối tượng là phân tích

chuỗi video nhằm mục đích thiết lập vị trí của mục tiêu trên một chuỗi các

khung hình bắt đầu từ hộp giới hạn được đưa ra trong khung đầu tiên [23]. Mặc

dù trong thời gian qua công nghệ đã tiến bộ vượt bậc nhưng việc thiết kế một

thuật toán theo dõi đủ mạnh vẫn là một việc khó khăn do đối tượng bị che khuất,

biến dạng, chuyển động nhanh, thay đổi ánh sáng, v.v….

Gần đây, bộ theo dõi dựa trên bộ lọc theo mức độ tương quan mang lại kết

quả cao về độ chính xác, độ mạnh và tốc độ [25], [26], [27], [28]. Đặc biệt, lọc

theo mức độ tương quan của hàm nhân (Kernelized Correlation Filter – KCF)

thực hiện ở hàng trăm khung hình mỗi giây. Các thuật toán này giả định các

mẫu huấn luyện và các mẫu phát hiện ứng viên là thay đổi theo chu kỳ.

Thuật toán huấn luyện một bộ lọc theo mức độ tương quan từ một tập hợp

các mẫu là các thay đổi theo chu kỳ từ mẫu cơ sở và sử dụng bộ lọc theo mức

độ tương quan được huấn luyện để tìm vị trí của mục tiêu trong phần phát

hiện. Các mẫu được phát hiện cũng là những thay đổi theo chu kỳ so với mẫu

cơ sở. Giả thiết này cho phép huấn luyện và phát hiện hiệu quả bằng cách sử

dụng phép biến đổi Fourier [26]. Tuy nhiên, nó có một số nhược điểm do sử

dụng các thay đổi theo chu kỳ của mẫu cơ sở nên có thể các mẫu huấn luyện

không thể thể hiện chính xác nội dung hình ảnh, đặc biệt là khi mục tiêu chuyển

sang vùng ranh giới của phần tìm kiếm, hình 2.12. Chính vì vậy, các mẫu được

huấn luyện này làm giảm việc dự đoán các đối tượng từ mô hình đã học. Trong

phần phát hiện, kết quả nhận được chính xác khi đối tượng ở gần trung tâm của

vùng tìm kiếm vì sử dụng các thay đổi tuần hoàn của mẫu ban đầu làm mẫu

ứng viên nên rất hạn chế khu vực tìm kiếm mục tiêu.

28

Danelljan et al. [26] đề xuất hàm chuẩn hóa về không gian vào các bộ lọc

theo mức độ tương quan phân biệt (Discriminatively Correlation Filters - DCF)

hay còn gọi là chuẩn hóa bộ lọc theo mức độ tương quan phân biệt (Spatially

Regularized Discriminatively Correlation Filters- SRDCF) và cải thiện đáng kể

hiệu suất của DCF [26]. Tuy nhiên, việc đưa thêm hàm chuẩn hóa về không

gian dẫn đến việc tính toán cũng phức tạp hơn. SRDCF sử dụng một loạt các

phương pháp tối ưu hóa để cải thiện hiệu quả của thuật toán. Tuy nhiên, SRDCF

rất phức tạp và chậm. Dựa theo SRDCF , KCF sử dụng một ma trận được chuẩn

hóa không gian bằng công thức hồi quy ridge. Với công thức hồi quy ridge mới

có thể được giải quyết một cách hiệu quả bằng cách áp dụng tính chất của ma

trận tuần hoàn và trong bộ lọc theo mức độ tương quan sẽ huấn luyện nhanh

hơn.

Trong khi đó, các mẫu huấn luyện và mẫu phát hiện ứng cử viên có thể

được thể hiện ở khu vực rộng hơn. Từ đó, có nhiều mẫu huấn luyện tốt dẫn đến

mô hình phát hiện đối tượng tốt hơn khắc phục được hạn chế khi mục tiêu thay

đổi. Và nhiều mẫu phát hiện ứng cử viên cho phép nhận được diện tích lớn hơn

độ chính xác cao hơn gần trung tâm của phần tìm kiếm và điều này cũng mang

lại lợi ích cho việc đối tượng bị che khuất, có chuyển động nhanh.

KCF chuẩn hóa không gian trong công thức hồi quy ridge có thể giải quyết

một số vấn đề xảy ra khi các mẫu thay đổi tuần hoàn và sử dụng tính chất của

ma trận tuần hoàn để tính toán bằng công thức hồi quy ridge mang lại hiệu quả

cao cho bộ lọc theo mức độ tương quan.

29

Hình 2.12. Các mẫu huấn luyện thu được bằng cách thay đổi theo

chu kỳ của một mẫu cơ sở không thể đại diện cho nội dung hình ảnh

đúng cách.

(a) là mẫu cơ sở. Với sự thay đổi (a) theo [−100 −100] và [−50 −50] riêng

biệt nhận được (b1) và (b2). (c1) và (c2) là các thay đổi của (a) bằng [ − 100

−100] và [−50 −50]. So sánh (a), (b1) và (c1), chúng ta có thể thấy mục tiêu

trong (b1) được chia thành hai phần và mẫu huấn luyện giả sử là (c1). So

sánh (a), (b2) và (c2) nền của mẫu huấn luyện phải là nền của (c2).

2.4.1. Các vấn đề liên quan

Theo dõi và phát hiện đối tượng đã được nghiên cứu rộng rãi [29], [30],

[31] [32], [33]. Vì những trình theo dõi này thường phân biệt mục tiêu theo dõi

từ nền với các trình phân loại, chúng được phân loại là trình theo dõi phân biệt.

Các thuật toán phân loại như máy vectơ hỗ trợ [30], [32], [33], [34], [35], tăng

cường [29], [36], nhiều thành phần huấn luyện [37], phương pháp lấy ngẫu

30

nhiên [11], tự huấn luyện [38] và mạng tích chập [39], [40] đã được áp dụng

trong các phương pháp theo dõi và phát hiện đối tượng.

Ma et al. [39] đề xuất các bộ lọc mức độ tương quan trên mỗi lớp tích chập

và suy luận phân cấp đáp ứng tối đa trên mỗi lớp để xác định vị trí mục tiêu. Để

theo dõi dài hạn, phương pháp phát hiện dựa trên học để theo vết đối tượng

(Tracking-Learning-Detection – TLD) đã huấn luyện mẫu tích cực (positive)

lẫn mẫu tiêu cực (negative) để chọn mẫu thích hợp và sử dụng phân loại tăng

cường [31].

Gần đây nhiều bộ theo dõi sử dụng bộ lọc theo mức độ tương quan mang

lại kết quả cao nhờ vào các phương pháp tính toán

[26], [27], [41], [42], [43]. Các thuật toán này sử dụng tích chập hai ma trận

trong miền không gian bằng các phần tử nổi trội trong miền Fourier để thực

hiện huấn luyện nhanh và phát hiện đối tượng. Dựa trên lý thuyết này, MOSSE

[25] được đưa ra trình phân loại phân biệt bằng cách làm giảm tổng bình

phương lỗi nhỏ nhất. Danelljan et al. [44] mở rộng trình theo dõi MOSSE bằng

việc ước tính tỷ lệ.

Henriques et al. [42] sử dụng tính chất của ma trận tuần hoàn và bộ lọc

theo mức độ tương quan của hàm nhân để đạt được hàng trăm khung hình mỗi

giây [14] và sau đó tiếp tục cải thiện thuật toán bằng cách sử dụng các đặc

trưng HOG (Histogram Of Gradient) [27].

Với những vấn đề của các bài toán như đối tượng bị che khuất, chuyển

động nhanh, thay đổi ánh sáng thì nhiều phương pháp mới được được ra để cải

thiện hiệu suất của bộ theo dõi dựa trên bộ lọc mức độ tương

quan [45], [46], [47], [48]. Để khắc phục những vấn đề trên Li và Zhu [43] đề

xuất mô hình mang lại hiệu quả cao với nhiều đặc trưng như biểu đồ của

Gradient và đặt tên màu (color-naming) để tăng hiệu suất theo dõi. Danelljan

et al. [26] giới thiệu một hàm chuẩn hóa không gian việc xử lý trong huấn luyện

và làm tăng kích thước mẫu huấn luyện giúp phát hiện đối tượng hiệu quả hơn.

31

2.4.2. Phương pháp theo dõi đối tượng bằng lọc theo mức độ tương

quan của hàm nhân

Phương pháp lọc theo mức độ tương quan của hàm nhân dựa vào các tính

chất của ma trận tuần hoàn, công thức hồi quy ridge, nhân Gauss đưa ra giải

pháp theo dõi đối tượng hiệu quả.

2.4.2.1. Lọc theo mức độ tương quang của hàm nhân

Trong bộ lọc theo mức độ tương quan của hàm nhân mục tiêu mong muốn

là làm giảm hàm lỗi; hàm (2.6); đạt đến tối thiểu.

(2.6) 𝑆(𝑥𝑖) = 𝑓𝑇𝑥𝑖

Trong đó 𝑥𝑖là mẫu thứ i và kết quả hồi quy của nó tại 𝑦𝑖. Tập mẫu huấn

luyện là các mẫu được thay đổi tuần hoàn trên mẫu cơ sở x.

Giả sử dữ liệu mẫu một chiều 𝑥 = [𝑥1, 𝑥2, … , 𝑥𝑛] thì sự thay đổi tuần hoàn

của nó với một phần tử sẽ là 𝑃𝑥 = [𝑥𝑛, 𝑥1, … , 𝑥𝑛−1]. Vậy từ tập mẫu ban đầu

hình thành tập mẫu thay đổi tuần hoàn sẽ là (2.7)

(2.7) {𝑃𝑢𝑥|𝑢 = 0,1, … , 𝑛 − 1}

Trong ứng dụng theo dõi, mẫu cơ sở là một ánh xạ đặc trưng được trích

xuất từ vùng hình ảnh trung tâm. Các mẫu huấn luyện có kích thước không gian

M×N, kích thước này lớn hơn kích thước vùng bao quanh đối tượng . Trong

KCF, kích thước không gian lớn gấp 2,5 lần kích thước mục tiêu ban đầu. Tại

mỗi vị trí không gian (𝑚, 𝑛) ∈ Ω ≔ {0, … , 𝑀 − 1}𝑥{0, … , 𝑁 − 1} các mẫu

huấn luyện có vectơ đặc trưng d chiều 𝑥𝑖(𝑚, 𝑛) ∈ ℝ𝑑. Bằng cách áp dụng bộ mẫu huấn luyện này, qua theo dõi lấy được các mẫu phong phú để huấn luyện

bộ phân loại chính xác. Mục tiêu hồi quy 𝑦𝑖 là M×N hàm Gauss phân rã từ 1

đến 0. Công thức KCF của hồi quy tuyến tính có thể được xây dựng như (2.8)

32

𝑛 ∑(𝑆(𝑥𝑖) − 𝑦𝑖)2 + 𝜆‖𝑓‖2 𝑖=1

(2.8) min 𝑓

Trong đó 𝜆 là tham số để kiểm soát việc huấn luyện có bị quá khớp hay

không.

Hàm được viết dưới dạng tổ hợp tuyến tính của các mẫu huấn luyện là

𝑆(𝑥) = 𝑓𝑇𝑥. Với 𝑓 được tính theo công thức (2.9)

(2.9) 𝑓 = (𝑋𝐻𝑋 + 𝜆𝐼)−1𝑋𝐻𝑦

Trong đó, X và XH là ma trận tuần hoàn. X là một ma trận được tạo ra từ

tất cả các mẫu huấn luyện có các thay đổi theo chu kỳ từ mẫu cơ sở (base

sample). XH là sự chuyển hóa của ma trận Hermitian.

(2.10) 𝑋 = 𝐶(𝑥) =

[ 𝑥1 𝑥𝑛 𝑥𝑛−1 ⋯ 𝑥2 𝑥2 𝑥1 𝑥𝑛 ⋯ 𝑥3 𝑥3 … 𝑥𝑛 𝑥2 … 𝑥𝑛−1 𝑥1 … 𝑥𝑛−2 ⋯ ⋱ ⋯ 𝑥4 … 𝑥1 ]

Tất cả các ma trận tuần hoàn được thực hiện theo đường chéo bởi phép

biến đổi Fourier rời rạc (Discrete Fourier Transform - DFT). Các đặc trưng nổi

trội được biểu diễn bằng (2.11)

(2.11) 𝑋 = 𝐹𝑑𝑖𝑎𝑔(𝑋̂)𝐹𝐻

Trong đó, F là một ma trận liên tục biến đổi dữ liệu trong miền Fourier

và FH là sự chuyển đổi của Hermitian F. 𝑋̂ là biến đổi Fourier rời rạc (Discrete

Fourier Transform -DFT) của vectơ tạo ra từ mẫu cơ sở trong KCF. Khi phân

rã ma trận tuần hoàn có thể được sử dụng để việc tính toán cho giải pháp hồi

quy ridge đơn giản hơn.

Ta có thể đặt (2.11) vào (2.9) và nhận một công thức (2.12)

(2.12) 𝑓̂ = 𝑋̂ ∗⨀𝑦̂/(𝑋̂ ∗⨀𝑋̂ + 𝜆)

33

Với ⊙ là biểu diễn tích từng phần tử. Trong trường hợp hồi quy không

tuyến tính, kỹ thuật nhân được áp dụng để có trình phân loại mạnh hơn. Giải

pháp của công thức hồi quy có thể được biểu diễn dưới dạng kết hợp tuyến tính

𝑛

của các mẫu, công thức (2.13)

𝑖=1

(2.13) 𝑓 = ∑ 𝛼𝑖𝜑(𝑥𝑖)

𝜑(𝑥𝑖)là tập giá trị phi tuyến đầu vào. Và thành phần nổi trội của 𝜑(𝑥𝑖) có thể được tính bằng hàm nhân, 𝜑𝑇(𝑥𝑖)𝜑(𝑥𝑗) = 𝜅(𝑥𝑖, 𝑥𝑗). 𝑆(𝑥𝑘) có thể được

𝑛

biểu diễn bằng (2.14)

𝑖,𝑗=1

(2.14) 𝑆𝑓(𝑥) = 𝑓𝑇𝑥 = ∑ 𝛼𝑖𝜅(𝑥𝑖, 𝑥𝑗)

Và một giải pháp khác của (2.9) được tính toán như (2.15)

(2.15) 𝛼 = (𝐾 + 𝜆𝐼)−1𝑦

Trong đó K là ma trận nhân và phần tử của nó là tích các phần tử của hai

mẫu, 𝐾𝑖𝑗 = 𝜅(𝑥𝑖, 𝑥𝑗). α là vector của các hệ số 𝛼𝑖. (2.15) có thể được viết lại

như (2.16) dưới đây

(2.16) 𝛼̂ = 𝑦̂/(𝜅̂𝑥𝑥 + 𝜆)

KCF đã đạt được kết quả rất tốt về việc theo vết đối tượng trong ảnh. Tuy

nhiên, khi áp dụng các thay đổi theo chu kỳ của một mẫu cơ sở thì các mẫu

huấn luyện và các mẫu phát hiện ứng viên gặp vấn đề, hình 2.12. Những vấn

đề này làm giảm khả năng phân biệt của phân loại được huấn luyện và phát

hiện đối tượng. Giải pháp chuẩn hóa về không gian được đưa ra [26] nhằm giúp

phân loại tốt hơn.

34

2.4.2.2 Lọc theo mức độ tương quan được chuẩn hóa không gian

Để khắc phục các nhược điểm khi biến đổi theo chu kỳ có thể xảy ra thay

thế λ trong (2.8) với ma trận chuẩn hóa không gian 𝑟. Ma trận chuẩn hóa không

gian (hình 2.13) kích thước không gian của nó giống như bộ phân loại 𝑓. Ma

trận này được sử dụng để kiểm soát độ lớn của các hệ số lọc trong quá trình

học. Vị trí không gian của các hệ số bộ lọc trong 𝑟 xác định tầm quan trọng của

chúng. Các hệ số nằm ngoài khu vực mục tiêu bị chặn bởi giá trị cao hơn trong

𝑟, có thể mở rộng kích thước mẫu để kèm theo nhiều mẫu “negative” hơn dẫn

đến phân loại phân biệt rõ ràng hơn. Trong khi đó, nhiều mẫu phát hiện ứng cử

viên cho phép nhận được diện tích lớn hơn các giá trị phản hồi chính xác gần

trung tâm của vùng tìm kiếm nhằm khắc phục vấn đề bị che khuất và đối tượng

chuyển động nhanh.

Chúng ta nhân √𝜆 trực tiếp với f. Công thức hồi quy được biểu diễn bằng

(2.17)

𝑛 2 ∑(𝑆𝑓(𝑥𝑖) − 𝑦𝑖)2 + ‖√𝜆𝑓‖ 𝑖=1

(2.17) min 𝑓

(2.18) 𝑆𝑓(𝑥𝑖) = 𝑓𝑇𝑥𝑖

35

Hình 2.13. Ma trận chuẩn hóa không gian.

Số lượng trong (2.17) , (2.18) giống như (2.8) . Thay thế √𝜆 thành 𝑟 vào

(2.17) và (2.18). Sau đó chúng ta có thể nhận được phương trình mới, (2.19)

𝑛 ∑(𝑆𝑓(𝑥𝑖) − 𝑦𝑖)2 + ‖𝑟⨀𝑓‖2 𝑖=1

(2.19) min 𝑓

Giống như KCF, (2.19) có thể được giải quyết dưới dạng như (2.20)

(2.20) 𝑓 = (𝑋𝑇𝑋 + 𝑅2)−1𝑋𝐻𝑦

Trong (2.20), 𝑋 tương tự như trong (2.9). Ma trận điều chỉnh không gian

có thể giúp mở rộng khu vực nhận được các mẫu huấn luyện và các mẫu phát

hiện ứng cử viên. Khi chúng ta khoanh tròn mẫu cơ sở để lấy mẫu mới, vị trí

của đối tượng và nền được thay đổi. Do đó, để đánh giá độ lớn của các hệ số

lọc hoạt động trên nền, sự phân bố của ma trận điều chỉnh không gian là thay

36

đổi theo vòng tròn. 𝑅 trong (2.20) là ma trận tuần hoàn được tạo ra từ ma trận

chuẩn hóa không gian 𝑟. Mỗi thay đổi theo chu kỳ của ma trận chuẩn hóa

không gian 𝑟 tương ứng với việc dịch chuyển tuần hoàn của mẫu cơ sở. Áp

dụng các tính chất của ma trận tuần hoàn, tất cả các phép toán trong (2.20) có

thể được thực hiện các phần tử nằm trên đường chéo.

Lấy 𝑋𝑇𝑋 thay thế X trong (2.11), ta được (2.21)

(2.21) 𝑋𝑇𝑋 = 𝐹𝑑𝑖𝑎𝑔(𝑥̂∗)𝐹𝐻𝐹𝑑𝑖𝑎𝑔(𝑥̂)𝐹𝐻

Trong (2.21) , 𝑥̂∗ là các trường hợp phức tạp của 𝑥̂ . Áp dụng tính chất

𝐹𝐻𝐹 = 𝐼, chúng ta có thể viết lại (2.20) với miền tần số là (2.22)

(2.22) 𝑓̂ = 𝑑𝑖𝑎𝑔(𝑥̂∗)𝑦̂/(𝑑𝑖𝑎𝑔(𝑥̂∗⨀𝑥̂) + 𝑑𝑖𝑎𝑔(𝑟̂ ∗⨀ 𝑟̂))

Sử dụng cùng một tính chất của nhân như KCF để có được α , (2.23)

𝑥𝑥 + 𝑟̂ ∗ ⨀ 𝑟̂)

(2.23) 𝛼̂ = 𝑦̂/(𝑘̂

𝑥𝑥 là ma trận nhân trong miền tần số và phần tử của ma

Trong (2.23) , 𝑘̂

trận là tích các phần tử của hai mẫu. Đối với các hàm nhân như nhân Gauss,

nhân tuyến tính và nhân đa thức thì tính chất ma trận tuần hoàn cũng có thể

được áp dụng [27] .

Sử dụng nhân Gauss và ma trận nhân có thể thu được bằng phương trình

(2.24)

(2.24) 𝑘𝑥𝑥′ = exp (− 1 𝜎2 (‖𝑥‖2 + ‖𝑥′‖2) − 2𝐹−1(𝑥̂ ⨀ 𝑥̂′∗))

Sau khi nhận được bộ lọc α có thể sử dụng bộ lọc này để phát hiện đối

tượng được theo dõi bằng cách áp dụng tính chất của ma trận tuần hoàn và ánh

xạ đặc trưng z từ hình ảnh tại cùng một vị trí nơi đối tượng theo dõi được phát

hiện trong khung trước đó. Ánh xạ đặc trưng z được coi là mẫu cơ bản của mẫu

sẽ được phát hiện. Biến đổi từ trong miền Fourier được tính theo phương trình

(2.25)

37

𝑥𝑥⨀𝛼̂

(2.25) 𝑠̂(𝑧) = 𝑘̂

Trong đó, x là mô hình được học từ khung ảnh trước đó. Vị trí của giá trị

tối đa được coi là vị trí của mục tiêu được theo dõi. Trong quá trình huấn luyện

và phát hiện thì việc theo vết đối tượng mới chỉ cần tính tích các phần tử và

chia cho các phần tử với chi phí độ phức tạp tính toán O(nlogn).

2.4.2.3 Sử dụng đặc trưng và chia nhỏ tỉ lệ

Nhân Gauss được sử dụng trong (2.24) dựa trên tích các phần tử và đặc

điểm của vectơ, nhiều phần có thể được áp dụng trong nhân Gauss. Ánh xạ đặc

trưng x ghép các vectơ riêng lẻ trong C như 𝑥 = [𝑥1, 𝑥2, … , 𝑥𝑐]. (2.24) có thể

được viết lại dưới dạng (2.26):

𝑐

𝑘𝑥𝑥′ = exp (− )) (2.26) 1 𝜎2 (‖𝑥‖2 + ‖𝑥′‖2) − 2𝐹−1 (∑ 𝑥̂ ⨀ 𝑥̂′∗

Trong (2.26) cho phép sử dụng những đặc trưng nổi trội để biểu diễn mục

tiêu và áp dụng biểu đồ Gradient [49] và đặt tên màu (Color-naming) [50] để

mô tả các đặc điểm của mục tiêu khắc phục được vấn đề lỗi khi mục tiêu lẫn

trong nền.

Biểu đồ của Gradient là một trong những đặc trưng hình ảnh phổ biến

nhất trong thị giác máy tính vì nó rất hiệu quả trong các ứng dụng thực tế và có

thể tính rất chính xác. Đặc trưng này trích xuất thông tin gradient từ ô - phạm

vi pixel. HOG đếm định hướng rời rạc để tạo thành biểu đồ.

Đặt tên màu hay còn gọi là thuộc tính màu chính là không gian bối cảnh,

nhãn màu được gán bởi con người để mô tả màu sắc. Sử dụng phương pháp ánh

xạ để biến đổi từ không gian RGB sang color-naming có không gian biểu diễn

11 chiều, dựa vào tên màu để nhận biết đối tượng.

Hai kỹ thuật này bổ sung cho nhau, HOG đặt trọng tâm vào gradient hình

ảnh trong khi color-naming tập trung vào thông tin màu sắc.

38

Kỹ thuật chia nhỏ tỉ lệ là một phương pháp thường được sử dụng để cải

thiện hiệu suất của các thuật toán theo dõi bộ lọc theo mức độ tương quan. Đặt

7 kích thước mẫu khác nhau dựa trên kích thước mục tiêu trong khung đầu

tiên. Ở vị trí mục tiêu tạo mẫu có kích thước khác nhau, được định nghĩa là {𝑧𝑟}𝑟∈(1,2,…,7). Thay {𝑧𝑟}𝑟∈(1,2,…,7) vào (2.25) ta nhận được 7 ma trận tương ứng. Trong đó, tất cả {𝑧𝑟}𝑟∈(1,2,…,7) cần phải được thay đổi với kích thước

tương tự như các bộ lọc theo mức độ tương quan. Tìm giá trị lớn nhất trong số

các ma trận tương ứng này, mục tiêu được tìm thấy chính là vị trí mới và kích

thước mới.

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

Trong quá trình theo dõi, thuật toán cập nhật mô hình mục tiêu và bộ lọc

theo mức độ tương quan với phương trình (2.27).

(2.27) 𝑥̂𝑡 = (1 − 𝜂)𝑥̂𝑡−1 + 𝜂𝑥̂𝑡 𝛼̂ 𝑡 = (1 − 𝜂)𝛼̂ 𝑡−1 + 𝜂𝛼̂ 𝑡 {

𝑥̂𝑡là ánh xạ đặc trưng trong miền tần số được tạo từ vị trí mới trong khung

hiện tại.

𝛼̂ 𝑡 là bộ lọc theo mức độ tương quan mới được học trong miền tần số. Sơ

đồ 2.1 cho chúng ta thấy thuật toán lọc theo mức độ tương quan.

39

Khung hình đầu tiên và vị trí ban đầu của mục tiêu

Nhân tương quan 𝑘𝑥𝑥 = 𝐾(𝑥̂, 𝑥̂)

Mô hình huấn luyện 𝛼̂ = 𝑦̂/(𝑘̂ 𝑥𝑥 + 𝑟̂ ∗ ⨀ 𝑟̂)

{

Cập nhật mô hình 𝑥̂𝑡+1 = (1 − 𝜂)𝑥̂𝑡 + 𝜂𝑥̂ 𝛼̂ 𝑡+1 = (1 − 𝜂)𝛼̂ 𝑡 + 𝜂𝛼̂

Nạp khung hình thứ t+1 và phần ứng cử viên z

Nhân tương quan chéo 𝑘𝑥𝑧 = 𝐾(𝑥̂𝑡+1, 𝑧̂)

Tính toán 𝑦 = 𝐹−1(𝛼̂𝑡+1⨀𝑘𝑥𝑧)

Lấy vị trí mục tiêu 𝑃𝑡+1

S

Theo dõi kết thúc?

Đ

End

Hình 2.14. Sơ đồ thuật toán lọc theo mức độ tương quan

40

Chương 3. XÂY DỰNG THUẬT TOÁN

Bài toán điểm danh học sinh THPT thông qua camera trong lớp học được

giải quyết như sơ đồ 3.1. Từ một bài toán điểm danh cần giải quyết, chúng tôi

phân tích để trở thành bốn bài toán cần được giải quyết, đó là:

a. Bài toán 1, Phát hiện đầu của học sinh trong một số frame của video thu

trong lớp học;

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

c. 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;

d. Bài toán 4, Chiếu 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ình 3.1. Mô hình mô tả hoạt động bài toán

41

3.1. Phát hiện đối tượng đầu học sinh

Vấn đề đầu tiên cần giải quyết là thời điểm nào (frame bắt đầu) trong đoạn

video được chọn để bắt đầu thuật toán tìm các vùng là vùng đầu của học sinh?

Trong lớp học khi chưa có giáo viên vào lớp thì học sinh sẽ di chuyển hay trao

đổi nhiều, điều này dẫn đến mức độ hỗn loạn dữ liệu (các điểm ảnh) trong các

frame ảnh là rất lớn. Từ nhận xét này chúng tôi đề xuất thuật toán xác định thời

điểm bắt đầu (frame bắt đầu) thực hiện thuật toán xác định các vùng đầu của

học sinh, thuật toán 1. Ý tưởng chính của thuật toán chính là xem xét mức độ

chênh lệch (độ thay đổi) của hai frame cách nhau một khoảng thời gian t.

Thuật toán 1: xác định frame bắt đầu cho thuật toán tìm các vùng đầu

của học sinh trong video

Input: video trong lớp học

Output: chỉ mục (indexing) frame theo yêu cầu

Step 1: max  0

start  vị trí frame đầu tiên của video

index  start

Step 2: chuyển các frame về không gian xám

Step 3: count  0 ; flag  false

frame_1 video[start].getFrame()

Step 4: while (video còn và !flag)

start  start+t

4.1: frame_2  video[start].getFrame()

4.2: If (max ≤ |𝑓𝑟𝑎𝑚𝑒_2 – 𝑓𝑟𝑎𝑚𝑒_1|) then

max = |𝑓𝑟𝑎𝑚𝑒_2 – 𝑓𝑟𝑎𝑚𝑒_1|

index = start

count ++

42

Endif

4.3: frame_1 frame_2

If (start đủ lớn và count không đổi) then

flag  true

Endif

Endwhile

Step 5: Return index

Chúng tôi sử dụng tập dữ liệu 𝑇ℎ𝑒𝑎𝑑 để huấn luyện mô hình học chuyên

sâu YOLO2 để được mô hình phát hiện vùng đầu trong ảnh của chúng tôi – có

tên 𝑂𝑈𝑅_𝑌𝑂𝐿𝑂2ℎ𝑒𝑎𝑑, tập dữ liệu 𝑇ℎ𝑒𝑎𝑑 được xây dựng từ dữ liệu được trích

trong một phần video và các ảnh được thu thập từ các nguồn khác nhau. Có thể

trong quá trình xác định các đối tượng đầu học sinh trong frame thứ i và frame

thứ k khác biệt nhau do môi trường tác động như: mức độ sáng thay đổi do

mây, do che khuất của đối tượng khác đi ngang cửa sổ, do chuyển động của

quạt, do màn che bị gió thổi, … hay do các đối tượng học sinh dịch chuyển. Từ

đây 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, thuật toán 2.

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

Input: tập hợp Frame có N phần tử, kết quả index từ thuật toán 1, và step

là bước nhảy

Output: tập hợp B có N phần tử, mỗi phần tử của tập hợp B là một tập

các vùng đầu của một frame (𝐵𝑖, 𝑖 = 1. . 𝑁)

start  index

for i=1 to N do

B[i] = 𝑂𝑈𝑅𝑌𝑂𝐿𝑂2ℎ𝑒𝑎𝑑. 𝑔𝑒𝑡𝐻𝑒𝑎𝑑(𝑣𝑖𝑑𝑒𝑜[𝑠𝑡𝑎𝑟𝑡]. 𝑔𝑒𝑡𝐹𝑟𝑎𝑚𝑒()) start  start + step

43

end for

return B

Từ kết quả của thuật toán 2, chúng tôi 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, thuật toán 3.

Thuật toán 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 k = 1 to |𝐵𝑖| do

if(!isElementOfSet( 𝐵ℎ𝑒𝑎𝑑, 𝐵𝑖[𝑘], d )) then 𝐵ℎ𝑒𝑎𝑑 = 𝐵ℎ𝑒𝑎𝑑 ∪

𝐵𝑖[𝑘]

endif

endfor

endfor

return 𝐵ℎ𝑒𝑎𝑑

Thuật toán kiểm tra một phần tử có thuộc một tập hợp hay không dựa vào

khoảng cách d dùng cho thuật toán 3. 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 hơn α%.

Thuật toán kiểm tra (isElementOfSet(T,a, d))

Input: tập hợp T, phần tử a, khoảng cách d

Output: giá trị luận lý, nếu đúng là true hoặc sai là false

value = false

44

for i = 1 to |𝑇| do

if(|𝑎. 𝑔𝑒𝑡𝐶𝑒𝑛𝑡𝑒𝑟() − 𝑇[𝑖]. 𝑔𝑒𝑡𝐶𝑒𝑛𝑡𝑒𝑟()| ≤ d) then

𝑎∩𝑇[𝑖] 𝑎∪𝑇[𝑖]

ratio =

if(ratio > α) then value = true;

endif

endif

endfor

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

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à mô hình tỷ lệ 𝐴𝑡−1

𝑠𝑐𝑎𝑙𝑒, 𝐵𝑡−1

Vị trí đối tượng ở frame trước đó 𝑝𝑡−1 và tỷ lệ 𝑠𝑡−1 𝑡𝑟𝑎𝑛𝑠, 𝐵𝑡−1 Mô hình biến đổi 𝐴𝑡−1

Output:

𝑠𝑐𝑎𝑙𝑒

Ước lượng vị trí đối tượng ở frame thứ t 𝑝𝑡 và tỷ lệ 𝑠𝑡

𝑡𝑟𝑎𝑛𝑠, 𝐵𝑡

𝑡𝑟𝑎𝑛𝑠 và mô hình tỷ lệ 𝐴𝑡

𝑠𝑐𝑎𝑙𝑒, 𝐵𝑡

Cập nhật mô hình biến đổi 𝐴𝑡

Ước lượng biến đổi:

45

𝑡𝑟𝑎𝑛𝑠 (từ

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

𝑡𝑟𝑎𝑛𝑠, 𝑣à 𝐵𝑡−1

2. Tính tương quan biến đổi 𝑦𝑡𝑟𝑎𝑛𝑠 với 𝑧𝑡𝑟𝑎𝑛𝑠, 𝐴𝑡−1

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ệ:

𝑠𝑐𝑎𝑙𝑒 (từ công

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

𝑠𝑐𝑎𝑙𝑒, 𝑣à 𝐵𝑡−1

5. Tính tương quan tỷ lệ 𝑦𝑠𝑐𝑎𝑙𝑒 với 𝑧𝑠𝑐𝑎𝑙𝑒, 𝐴𝑡−1

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:

𝑡𝑟𝑎𝑛𝑠 (từ công thức 3.1 a,b)

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

𝑡𝑟𝑎𝑛𝑠, 𝐵𝑡

𝑠𝑐𝑎𝑙𝑒 (từ công thức 3.1 a,b)

8. Cập nhật mô hình biến đổi 𝐴𝑡

𝑙 = (1 − 𝜂)𝐴𝑡−1 𝐴𝑡

9. Cập nhật mô hình tỷ lệ 𝐴𝑡

𝑠𝑐𝑎𝑙𝑒, 𝐵𝑡 𝑙 + 𝜂𝐺𝑡̅̅̅𝐹𝑡 𝑙 𝑑

(3.1 a)

𝑘

𝑘̅̅̅̅ 𝐵𝑡 = (1 − 𝜂)𝐵𝑡−1 + 𝜂 ∑ 𝐹𝑡

(3.1 b) 𝐹𝑡

𝑘=1 ∑ 𝐴𝑙̅̅̅𝑍𝑙 𝑑 𝑙=1 𝐵 + 𝜆

(3.2) 𝑦 = ℱ−1 { }

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

Input: video với vị trí frame bắt đầu trong video và 𝐵ℎ𝑒𝑎𝑑 =

{𝐵𝑖/𝑖 = 1. . 𝑁}, bước nhảy frame f

46

𝑖 / 𝑘 = 1. . 𝑀} với

Output: 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑 = {𝑇𝑖𝑖 = 1. . 𝑁} mà 𝑇𝑖 = {𝐻𝑒𝑎𝑑𝑘

M là số lượng frame dùng để theo vết

M = size(video)/ f

for k = 1 to N do

𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑘] = 𝐵𝑘 endfor

𝑝1 = 𝐵ℎ𝑒𝑎𝑑

𝑠𝑐𝑎𝑙𝑒)

𝑡𝑟𝑎𝑛𝑠, 𝐴1

𝑠𝑐𝑎𝑙𝑒, 𝐵1

𝑡𝑟𝑎𝑛𝑠, 𝐵1 initial(𝐴1 for k = 2 to M do

𝑠𝑐𝑎𝑙𝑒)

initital(𝑠1)

𝑡𝑟𝑎𝑛𝑠, 𝐵𝑘−1 𝐴𝑘−1

𝑠𝑐𝑎𝑙𝑒, 𝐵𝑘−1

𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑. 𝑡𝑟𝑎𝑐𝑘𝑖𝑛𝑔𝐻𝑒𝑎𝑑(𝑣𝑖𝑑𝑒𝑜. 𝑔𝑒𝑡𝐹𝑟𝑎𝑚𝑒(𝑘), 𝑝𝑘−1, 𝑠𝑘−1, 𝑡𝑟𝑎𝑛𝑠, 𝐴𝑘−1

for i=1 to N do

𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖] = 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖] ∪ 𝑝𝑘[𝑖]

endfor

endfor

3.3. Xác định vị trí đầu học sinh dựa trên trung bình

Sau khi có tất cả các vị trí chuyển động đầu học sinh trong lớp học của

từng học sinh, chúng tôi xây dựng thuật toán 6 để tìm vị trí trung bình của vùng

đầu của từng học sinh trong lớp học thông qua khoảng cách Euclide.

47

𝑎𝑣𝑒 = (𝑥, 𝑦)/𝑖 = 1. . 𝑁, (𝑥, 𝑦) ∈ ℤ2}

Thuật toán 6: Vị trí trung bình của vùng đầu từng học sinh

Input: 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑 Output: 𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛ℎ𝑒𝑎𝑑 = {𝑃𝑜𝑠𝑖

for i = 1 to N do

for j = 1 to M do

𝑥𝑙+𝑥𝑟 2

𝐶𝑒𝑛𝑡𝑒𝑟[𝑖][𝑗] = ( ) , 𝑥𝑙 = 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖].getHead().getPositionOneX() 𝑥𝑟 = 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖].getHead().getPositionTwoX() 𝑦𝑙 = 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖].getHead().getPositionOneY() 𝑦𝑟 = 𝑇𝑟𝑎𝑐𝑘ℎ𝑒𝑎𝑑[𝑖].getHead().getPositionTwoY() 𝑦𝑙+𝑦𝑟 2

endfor

𝑥𝑡𝑜𝑡𝑎𝑙 = 0;

𝑦𝑡𝑜𝑡𝑎𝑙 = 0

for j = 1 to M do

𝑥𝑡𝑜𝑡𝑎𝑙 = 𝑥𝑡𝑜𝑡𝑎𝑙 + 𝐶𝑒𝑛𝑡𝑒𝑟[𝑖][𝑗]. 𝑔𝑒𝑡𝑋() 𝑦𝑡𝑜𝑡𝑎𝑙 = 𝑦𝑡𝑜𝑡𝑎𝑙 + 𝐶𝑒𝑛𝑡𝑒𝑟[𝑖][𝑗]. 𝑔𝑒𝑡𝑌()

endfor

𝑥𝑡𝑜𝑡𝑎𝑙 𝑀

𝑦𝑡𝑜𝑡𝑎𝑙 𝑀

, ) 𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛ℎ𝑒𝑎𝑑[𝑖] = (

endfor

sort(𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛ℎ𝑒𝑎𝑑)

3.4. Điểm danh học sinh

Dựa vào sơ đồ lớp đã được xây dựng trước bao gồm: vị trí bàn ghế của

lớp học, vị trí học sinh được bố trí ở vị trí bàn ghế theo sơ đồ, chúng tôi xây

dựng thuật toán 7 để điểm danh từng học sinh của lớp.

Thuật toán 7: điểm danh học sinh của lớp học

48

Input: vị trí đầu học sinh 𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛ℎ𝑒𝑎𝑑 và sơ đồ vị trí bàn học 𝑃𝑜𝑠𝑡𝑎𝑏𝑙𝑒 = {(𝑥, 𝑦, 𝑓𝑙𝑎𝑔)/(𝑥, 𝑦) ∈ ℤ2 𝑣à 𝑓𝑙𝑎𝑔 ∈ {0,1}} cùng danh sách học sinh tương

ứng 𝐿𝑖𝑠𝑡𝑡𝑎𝑏𝑙𝑒 = {(𝐹𝑢𝑙𝑙𝑛𝑎𝑚𝑒, 𝑣𝑎𝑙𝑢𝑒)/ 𝑣𝑎𝑙𝑢𝑒 ∈ {0,1}}

Output: 𝐿𝑖𝑠𝑡𝑡𝑎𝑏𝑙𝑒 có 𝑣𝑎𝑙𝑢𝑒 mang giá trị là 1 nghĩa là có mặt tại lớp và 0

là vắng mặt.

for i = 1 to |𝑃𝑜𝑠𝑡𝑎𝑏𝑙𝑒| do

𝐿𝑖𝑠𝑡𝑡𝑎𝑏𝑙𝑒[𝑖]. 𝑠𝑒𝑡𝑉𝑎𝑙𝑢𝑒(0) 𝑃𝑜𝑠𝑡𝑎𝑏𝑙𝑒[𝑖]. 𝑠𝑒𝑡𝐹𝑙𝑎𝑔(0) endfor

for i = 1 to N do

𝑑𝑚𝑖𝑛 = max

𝑑 = max

index = -1;

for j = 1 to |𝑃𝑜𝑠𝑡𝑎𝑏𝑙𝑒| do

if(! 𝑃𝑜𝑠𝑡𝑎𝑏𝑙𝑒[𝑗]. 𝑔𝑒𝑡𝐹𝑙𝑎𝑔()) 𝑡ℎ𝑒𝑛

𝑑 = 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛ℎ𝑒𝑎𝑑[𝑖], 𝑃𝑜𝑠𝑡𝑎𝑏𝑙𝑒[𝑗])

if(𝑑 < 𝑑𝑚𝑖𝑛) then

𝑑𝑚𝑖𝑛 = 𝑑

index = j

endif

endif

endfor

if(𝑑𝑚𝑖𝑛 < 𝛿) then

𝐿𝑖𝑠𝑡𝑡𝑎𝑏𝑙𝑒[𝑖𝑛𝑑𝑒𝑥]. 𝑠𝑒𝑡𝑉𝑎𝑙𝑢𝑒(1) 𝑃𝑜𝑠𝑡𝑎𝑏𝑙𝑒[𝑖𝑑𝑒𝑥]. 𝑠𝑒𝑡𝐹𝑙𝑎𝑔(1)

endif

endfor

49

Chương 4. KẾT QUẢ THỰC NGHIỆM VÀ HƯỚNG PHÁT TRIỂN

Chương 4 trình bày kết quả nghiên cứu và hướng phát triển của đề tài

trong tương lai

4.1. Môi trường thực nghiệm

Chúng tôi thực nghiệm trên máy tính được cài đặt hệ điều hành Unbuntu

16.04 phiên bản server, máy tính có cấu hình RAM 8GB, Intel(R) Core(TM)

i7-3632QM CPU @ 2.20GHz. chúng tôi cài đặt bằng ngôn ngữ python 3 kết

hợp cùng các thư viện mã nguồn mở như numpy 1.141.3, opencv 3.4.0,

tensorflow 1.6.0, keras 2.1.5, dlib 19.13.1.

4.2. Xây dựng dữ liệu

Chúng tôi thu thập xây dựng bộ dữ liệu A gồm 50 video từ 18 lớp khác

nhau tại trường THPT Vũng Tàu. Thời gian trung bình của mỗi video là 01

phút, mỗi video có số frame là 25 frame cho một giây. Chúng tôi trích 500

frame ảnh từ 70% của bộ dữ liệu A (35 video) dùng để trích các vùng đầu của

học sinh trong lớp học – tập ảnh B, mục tiêu xây dựng bộ dữ liệu vùng đầu học

sinh trong lớp học – bộ dữ liệu C.

4.3. Kết quả

4.3.1. Thời gian thực hiện

Kết quả thời gian trung bình các bước của hệ thống, bảng 4.1.

Bảng 4.1. Thời gian trung bình trên một frame.

Giai đoạn Thời gian (giây)

Phát hiện các vùng đầu 0.2

Theo vết chuyển động các vùng đầu 0.3

Xác định vị trí của lớp 0.02

50

4.3.2. Phát hiện đối tượng đầu học sinh

Mức độ chính xác của bài toán phát hiện vùng đầu tốt; bảng 4.2; vì chúng

tôi đã dùng thêm thuật toán kết hợp các kết quả phát hiện vùng đầu trong một

dãy các frame ảnh (thuật toán 3), bảng 4.3.

Bảng 4.2. Độ chính xác của giai đoạn phát hiện.

Độ chính xác Tên lớp (%)

12A3 92.85

12A4 90.55

12A5 88.25

12A7 90

12A8 90.64

12A9 90.32

12A10 88.57

11A1 90.1

11A2 88.87

11A3 89.7

… …

Trung bình 89.99

51

92.85

100

90.64

90.55

90.32

90.1

90

89.99

89.7

88.87

88.57

88.25

80

)

%

60

í

40

( c á x h n h c ộ Đ

20

0

12A3

12A4

12A5

12A7

12A8

12A9

12A10

11A1

11A2

11A3

Trung bình

Tên lớp học

BIỂU ĐỒ TỈ LỆ PHÁT HIỆN ĐỐI TƯỢNG

Biểu đồ 4.1. Độ chính xác phát hiện đối tượng đầu học sinh của các lớp

kiểm tra và độ chính xác trung bình phát hiện đối tượng

Bảng 4.3 cho thấy mức độ chính xác của bài toán theo vết chuyển động

vùng đầu học sinh trong lớp.

Bảng 4.3. Độ chính xác của giai đoạn theo vết đối tượng đầu học sinh.

Tên lớp Độ chính xác (%)

12A3 100

12A4 100

12A5 93.58

12A7 100

12A8 97.54

12A9 100

12A10 100

11A1 100

11A2 96.88

11A3 98.78

… …

Trung bình 98.68

52

100

100

100

100

100

100

98.78

98.68

97.54

96.88

100

93.58

80

BIỂU ĐỒ TỈ LỆ THEO VẾT ĐỐI TƯỢNG

)

%

60

í

40

( c á x h n h c ộ Đ

20

0

12A3

12A4

12A5

12A7

12A8

12A9

12A10

11A1

11A2

11A3

Trung bình

Tên lớp

Biểu đồ 4.2. Độ chính xác của giai đoạn theo vết đối tượng đầu học sinh

và tỉ lệ trung bình độ chính xác các lớp kiểm tra

4.3.3. Xác định vị trí đối tượng đầu học sinh

Bảng 4.4 Độ chính xác của giai đoạn xác định vị trí.

* Tỉ lệ là số học sinh của thuật toán xác định được so với sĩ số lớp.

Độ chính Tên lớp Tỉ lệ xác (%)

12A3 24/26 92.31

12A4 29/33 87.88

12A5 26/28 92.86

12A7 27/30 90

12A8 18/33 81.81

12A9 21/28 75

12A10 25/32 78.13

11A1 18/30 83.33

11A2 22/29 75.86

53

11A3 19/31 83.87

… … …

Trung bình 84.105

92.86

92.31

90

87.88

84.1

83.87

83.33

81.81

78.13

75.86

75

)

%

í

( c á x h n h c ộ Đ

100 90 80 70 60 50 40 30 20 10 0

12A3

12A4

12A5

12A7

12A8

12A9

12A10

11A1

11A2

11A3

Trung bình

BIỂU ĐỒ TỈ LỆ XÁC ĐỊNH VỊ TRÍ HỌC SINH

Tên lớp

Biểu đồ 4.3. Độ chính xác của giai đoạn sau khi sử dụng phép chiếu để

xác định vị trí phát hiện đối tượng đầu học sinh.

4.4. Đánh giá

4.4.1. Ưu điểm

Sử dụng mô hình nơ-ron nhân tạo Yolo v2 vào bài toán phát hiện giúp

phát hiện được cả đối tượng chứa phần lớn là màu đen (phần tóc), hướng tiếp

cận của chúng tôi sử dụng YOLO v2 kết hợp với các giải pháp làm tăng cường

kết quả đạt được.

Xây dựng và áp dụng thuật toán kết hợp các bao biên đối tượng trên nhiều

khung hình để tăng độ chính xác cho bước phát hiện.

Xây dựng và áp dụng thuật toán tìm kiếm thời điểm các đối tượng tương

đối ổn định để bắt đầu phát hiện.

54

4.4.2. Nhược điểm

Có một vài lớp có vị trí bố trí sơ đồ chỗ ngồi khác với các lớp khác làm

ảnh hưởng đến khi chúng tôi xây dựng tập dữ liệu chung và một số yếu tố khách

quan khác làm giảm độ chính xác của bài toán, cụ thể theo các phân tích về giai

đoạn phát hiện đối tượng đầu học sinh, giai đoạn theo vết đối tượng đầu học

sinh.

4.4.2.1 Giai đoạn phát hiện đối tượng đầu học sinh

- Ở giai đoạn này, nếu một đối tượng di chuyển liên tục thì đối tượng đó

sẽ tạo ra nhiều bao biên đối tượng trên đường đi, hình 4.1, hình 4.2, hình 4.3,

hình 4.4 sẽ cho thấy kết quả ta được hai bao biên đối tượng trên một đối tượng.

-Tuy chúng tôi đã tối ưu cho số lượng bao biên đối tượng phát hiện cùng

một vị trí để loại bỏ đối tượng giáo viên nhưng vẫn chưa giải quyết hoàn toàn

trường hợp này.

Hình 4.1. Phát hiện nhiều bao biên trên một đối tượng ở một frame

55

Hình 4.2. Phát hiện nhiều bao biên trên một đối tượng ở frame sau so

với hình 4.1

Hình 4.3. Kết quả thuật toán 2

56

Hình 4.4. Không thể phát hiện do quá ít thông tin

Phát hiện chưa chính xác do đối tượng không thể hiện rõ đặc trưng (mô

hình chỉ học các đối tượng khi có đủ hai phần thông tin gồm màu đen tóc và

màu da người). Hình 4.4 sẽ cho ta thấy đối tượng hình chữ nhật màu trắng chỉ

có phần tóc màu đen, còn bị chìm vào màu áo của học sinh đằng trước. Với

trường hợp đối tượng bị vật thể che khuất cũng không thể phát hiện được, hình

4.5.

Hình 4.5. Có đối tượng bị vật thể che khuất

57

- Phát hiện chưa chính xác do mô hình phát hiện sai đối tượng, hình 4.6.

Hình 4.6. Các bao biên đối tượng bị sai

- Một trường hợp khác, video không thỏa điều kiện đầu vào thuật toán 1

sẽ chọn sai thời điểm bắt đầu, dẫn đến toàn bộ quá trình đều thực hiện sai.

 Hình 4.7, frame đầu tiên của video là khi học sinh đã đứng dậy.

 Hình 4.8, thuật toán 1 sẽ trả về kết quả khi học sinh bắt đầu ngồi xuống

Hình 4.7. Frame đầu tiên của video

58

Hình 4.8. Frame bắt đầu phát hiện

4.4.2.2 Giai đoạn theo vết đối tượng đầu học sinh

- Sai khi theo vết chủ yếu do bao biên đối tượng thay đối cấu trúc khá

nhanh so với trạng thái trước.

- Hình 4.9 trên với bao biên đối tượng được đánh dấu, ta thấy đặc trưng rõ

là một chai nước với nền đen, nên khi đối tượng di chuyển thì bao biên đối

tượng vẫn không thay đổi.

59

Hình 4.9. Theo vết chưa chính xác

- Mô hình Yolo v2 chỉ giải quyết các ảnh có chiều dài và chiều rộng phải

bằng nhau và là bội của 32, vì thế khi ảnh đầu vào là 1920 ×1080 nên phải thay

đổi kích thước thành 1088 × 1088 dẫn đến việc mất một phần thông tin của đối

tượng.

- Độ chính xác ở bước phát hiện chưa hoàn toàn 100% nên chưa thể áp

dụng ngay vào trong thực tế mà cần cải tiến thêm.

- Chưa đề xuất được phương pháp giải quyết hai bài toán phát hiện và theo

vết khi đối tượng hoàn toàn là màu đen hoặc bị chìm vào nền đen.

4.5. Hướng phát triển

- Xây dựng thuật toán bắt đầu phát hiện khi cả giáo viên và học sinh đứng

yên.

- Thay đổi góc độ camera để lấy được thông tin nhiều nhất có thể.

- Xây dựng mô hình dựa trên ý tưởng Yolo v2 để có thể xử lý khi ảnh có

chiều dài và chiều rộng có kích thước khác nhau và là bội của một số bất kỳ.

- Xây dựng thuật toán xử lý khi đối tượng bị chìm vào nền.

60

TÀI LIỆU KHAM KHẢO

[1] Internet, "hệ thống camera giám sát giao thông"

https://www.baomoi.com/trien-khai-du-an-he-thong-camera-giam-sat-

an-ninh-giao-thong-trat-tu-uu-tien-tien-do-lap-dat-he-thong-camera-

phuc-vu-tuan-le-cap-cao-apec-2017/c/23264994.epi, ngày truy cập

20/10/2017.

[2] Internet, "Sử dụng camera giám sát phát hiện hành vi đeo bám khách du

lịch" http://www.catp.danang.gov.vn/-/se-trich-xuat-hinh-anh-tu-

camera-giam-sat-e-xu-phat-hanh-vi-eo-bam-cheo-keo-khach-du-lich,

ngày truy cập 20/10/2017.

[3] Internet, "Camera giám sát phát hiện vi phạm an toàn giao thông"

http://voh.com.vn/chinh-tri-xa-hoi/tphcm-lap-2000-camera-tu-trich-

xuat-hinh-anh-toi-pham-nguoi-vi-pham-giao-thong-232595.html, ngày

truy cập 20/10/2017.

[4] Internet, "Hệ thống điểm danh sinh viên bằng thẻ từ hoặc vân tay"

http://vken.vn/he-thong-diem-danh-sinh-vien-bang-the-tu-hoac-van-

tay.html, ngày truy cập 04/07/2018.

[5] Phạm Nguyên Khang, Trần Nguyễn Minh Thư, Đỗ Thanh Nghị, "Điểm

danh bằng mặt người với đặc trưng GIST và máy học véc-tơ hỗ trợ,"

Khoa CNTT-TT, Trường Đại học Cần Thơ, Tháng 8/2017.

[6] Bahlmann, C., Zhu, Y., Ramesh, V., Pellkofer, M., & Koehler, "A system

for traffic sign detection, tracking, and recognition using color, shape,

and motion information," Proceedings. IEEE, In Intelligent Vehicles

Symposium, 2005.

61

[7] Sobottka, K., & Pitas, "Face localization and facial feature extraction

based on shape and color information," In ICIP (3) (pp. 483-486), (1996,

September).

[8] Goshtasby, Ardeshir, "Template matching in rotated images," IEEE

Transactions on Pattern Analysis and Machine Intelligence, (1985): 338-

344.

[9] Comaniciu, D., & Meer, "Mean shift analysis and applications. In

Computer Vision," The Proceedings of the Seventh IEEE International

Conference on (Vol. 2, pp. 1197-1203), 1999.

[10] C.K.Chui, G. Chen, "Kalman filtering with real-time applications," pp.20

– 48, 1991.

[11] Gao, Long, Yunsong Li, and Jifeng Ning, "Improved kernelized

correlation filter tracking by using spatial regularization," Journal of

Visual Communication and Image Representation 50: 74-82, 2018.

[12] Hepner, Georgef, et al, "Artificial neural network classification using a

minimal training set- Comparison to conventional supervised

classification," Photogrammetric Engineering and Remote Sensing 56.4:

469-473, 1990.

[13] S. I. Amari & A. Cichocki, "Adaptive blind signal processing-neural

network approaches," Proceedings of the IEEE, 86(10): 2026-2048,

1998.

[14] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar & L. Fei-

Fei, "Large-scale video classification with convolutional neural

networks," In Proceedings of the IEEE conference on Computer Vision

and Pattern Recognition (pp. 1725-1732), 2014.

62

[15] K. H. R. B. G. X. Z. a. J. S. S. Ren, "Object detection networks on

convolutional feature maps," CoRR, abs/1504.06066, 2015.

[16] S. Ren, K. He, R. Girshick, and J. Sun, "Faster r-cnn: Towards real-time

object detection with region proposal networks," arXiv preprint

arXiv:1506.01497, 2015.

[17] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan,

V. Vanhoucke, and A. Rabinovich, "Going deeper with convolutions,"

CoRR, abs/1409.4842,, 2014.

[18] M. Lin, Q. Chen, and S. Yan, "Network in network," CoRR,

abs/1312.4400, 2013.

[19] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang,

A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei,

"ImageNet Large Scale Visual Recognition Challenge," International

Journal of Computer Vision (IJCV), 2015.

[20] S. Ren, K. He, R. B. Girshick, X. Zhang, and J. Sun, "Object detection

networks on convolutional feature maps," CoRR, abs/1504.06066, 2015.

[21] A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet classification

with deep convolutional neural networks," In Advances in neural

information processing systems, pages 1097–1105, 2012.

[22] K. H. R. G. a. J. S. S. Ren, "Faster r-cnn: Towards real-time object

detection with region proposal networks," arXiv preprint

arXiv:1506.01497, 2015.

[23] D. C. R. C. S. C. A. D. M. S. A.W. Smeulders, "Visual tracking: an

experimental survey," IEEE Trans. Pattern Anal. Mach. Intell, 36 (2013)

1441–1468.

63

[24] A. Yilmaz, O. Javed, M. Shah, "Object tracking: a survey, ACM

Comput," Surv, 38 (2006) 81–93.

[25] D.S. Bolme, J.R. Beveridge, B.A. Draper, Y.M. Lui, "Visual object

tracking using adaptive correlation filters," IEEE Conference on

Computer Vision and Pattern Recognition, 1113–1120 (2010).

[26] M. Danelljan, G. Hager, F.S. Khan, M. Felsberg, "Learning spatially

regularized correlation filters for visual tracking," IEEE International

Conference on Computer Vision, 4310–4318 (2015).

[27] J.F. Henriques, R. Caseiro, P. Martins, J. Batista, "High-speed tracking

with kernelized correlation filters," IEEE Trans. Pattern Anal. Mach.

Intell, 37 (2015) 583–596.

[28] Z. Hong, Z. Chen, C. Wang, X. Mei, D. Prokhorov, D. Tao, "Multi-Store

Tracker (MUSTer): a cognitive psychology inspired approach to object

tracking," IEEE Conference on Computer Vision and Pattern

Recognition, 749–758 (2015).

[29] H. Grabner, C. Leistner, H. Bischof, "Semi-supervised on-line boosting

for robust tracking," European Conference on Computer Vision, 234–

247 (2008).

[30] S. Hare, A. Saffari, P.H.S. Torr, "Struck: structured output tracking with

kernels," IEEE International Conference on Computer Vision, 263–270

(2011).

[31] Z. Kalal, K. Mikolajczyk, J. Matas, "Tracking-learning-detection," IEEE

Trans. Pattern Anal. Mach. Intell., 34 (2012) 1409–1422.

[32] J. Ning, J. Yang, S. Jiang, L. Zhang, M.H. Yang, "Object tracking via

dual linear structured SVM and explicit feature map," IEEE Conference

on Computer Vision and Pattern Recognition, 4266–4274 (2016).

64

[33] J.M. Zhang, S.G. Ma, S. Sclaroff, "MEEM: Robust tracking via multiple

experts using entropy minimization," European Conference on Computer

Vision, 188–203 (2014).

[34] S. Avidan, "Support vector tracking," IEEE Trans. Pattern Anal. Mach.

Intell, 26 (2004) 1064–1072.

[35] C.Q. Hong, J. Yu, J. You, X.H. Chen, D.P. Tao, "Multi-view ensemble

manifold regularization for 3D object recognition," Inf. Sci, 320 (2015)

395–405.

[36] H. Grabner, C. Leistner, H. Bischof, "Semi-supervised on-line boosting

for robust tracking," European Conference on Computer Vision, 34–247

(2008).

[37] B. Babenko, M.H. Yang, S. Belongie, "Robust object tracking with

online multiple instance learning," IEEE Trans. Pattern Anal. Mach.

Intell, 33 (2011) 1619–1632.

[38] H. Song, Y. Zheng, K. Zhang, "Robust visual tracking via self-similarity

learning," Electron. Lett, 53 (2017) 20–22..

[39] C. Ma, J.B. Huang, X.K. Yang, M.H. Yang, "Hierarchical convolutional

features for visual tracking," IEEE International Conference on

Computer Vision, 3074–3082 (2015).

[40] K. Zhang, Q. Liu, Y. Wu, M.H. Yang, "Robust visual tracking via

convolutional networks without training," IEEE Trans. Image Process,

25 (2016) 1779–1792.

[41] H. Galoogahi, T. Sim, S. Lucey, "Muti-channel correlation filters," IEEE

International Conference on Computer Vision, 3072–3079 (2013)..

65

[42] J.F. Henriques, R. Caseiro, P. Martins, J. Batista, "Exploiting the

circulant structure of tracking-by-detection with kernels," European

Conference on Computer Vision, 702–715 (2013).

[43] Y. Li, J. Zhu, "A scale adaptive kernel correlation filter tracker with

feature integration," European Conference on Computer Vision, 254–

265 (2014)..

[44] M. Danelljan, G. Hager, F.S. Khan, M. Felsberg, J. Weijer, "Accurate

scale estimation for robust visual tracking," British Machine Vision

Conference, 2014.

[45] C.Q. Hong, J.K. Zhu, J. Yu, J. Chen, X.H. Chen, "Realtime and robust

object matching with a large number of templates," Multimedia Tools

Appl, 75 (2016) 1459–1480.

[46] W. Chen, K. Zhang, Q. Liu, "Robust visual tracking via patch based

kernel correlation filters with adaptive multiple feature ensemble,"

Neurocomputing, 214 (2016) 607–617..

[47] B. Zhang, Z. Li, X. Cao, Q. Ye, C. Chen, L. Shen, A. Perina, R. Ji,

"Output constraint transfer for kernelized correlation filter in tracking,"

IEEE Trans. Syst. Man Cybernet.: Syst, 47 (2017) 693–703..

[48] Y. Li, J. Zhu, S.C.H. Hoi, "Reliable Patch Trackers: Robust visual

tracking by exploiting reliable patches," IEEE Conference on Computer

Vision and Pattern Recognition, 353–361 (2015)..

[49] P.F. Felzenszwalb, R.B. Girshick, D. McAllester, D. Ramanan, "Object

detection with discriminatively trained part-based models," IEEE Trans.

Pattern Anal. Mach. Intell, 32 (2010) 1627–1645..

66

[50] J.V.D. Weijer, C. Schmid, J. Verbeek, D. Larlus, "Learning color names

for real-world applications," IEEE Trans. Image Process, 18 (2009)

1512–1523..