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..