Kỷ yếu kỷ niệm 35 năm thành lập Trường ĐH<br />
<br />
ng nghiệp Th<br />
<br />
ph m T<br />
<br />
h<br />
<br />
inh<br />
<br />
-2017)<br />
<br />
PHƢƠNG PHÁP PHÁT HIỆN NGƢỜI DỰA TRÊN<br />
VÙNG CHUYỂN ĐỘNG<br />
Trần Nhƣ Ý*, Nguyễn Văn Tùng, Ngô Dƣơng Hà<br />
Trường Đại họ<br />
<br />
ng nghiệp Th<br />
<br />
ph m T<br />
<br />
*<br />
<br />
Email: ytn@cntp.edu.vn<br />
TÓM TẮT<br />
<br />
Vấn đề phát hiện người trong video cũng như trong các thiết bị ghi hình đã được nghiên cứu bởi rất<br />
nhiều các nhà khoa học trên thế giới. Mục tiêu của họ là phát triển phương pháp nhằm cố gắng nâng cao<br />
độ chính xác, hiệu suất hoạt động cũng như khả năng thích nghi với nhiều môi trường và tình huống.<br />
Trong bài báo này, tác giả sẽ trình bày một số phương pháp phát hiện đối tượng người trong video thông<br />
dụng hiện nay cùng với những ưu nhược điểm. Bằng cách tách vùng chuyển động, tiếp theo là sử dụng<br />
phương pháp trích chọn đặc trưng LBP, Haar với bộ phân loại cascade để phát hiện người [1,2,3]. Dựa<br />
trên cơ sở lý thuyết này, tác giả đề xuất một thuật toán BS-CC (Background Subtraction-Cascade<br />
Classifier) với mục tiêu phát hiện người dựa trên vùng chuyển động. Kết quả thực nghiệm cho thấy<br />
phương pháp phát hiện dựa trên vùng chuyển động tối ưu hơn so với việc việc tính toán đặc trưng LBP<br />
trên tất cả các cửa sổ trong toàn khung ảnh, cho tất cả khung ảnh.<br />
Từ khóa: BS-CC, LBP, MB-LBP, Haar, AdaBoost, Cascade.<br />
1. GIỚI THIỆU<br />
Để phát triển một phương pháp tổng quát tối ưu là rất khó khăn do vậy người ta đã tiếp cận theo<br />
nhiều hướng khác nhau với những ưu điểm, nhược điểm phù hợp cho một tình huống cụ thể nhất định.<br />
Vào năm 1996, T. Ojala và các đồng sự đã đưa ra bài toán nhận dạng mặt người bằng đặc trưng LBP [4].<br />
Tiếp theo, Paul Viola và đồng sự đã đề xuất bộ phân loại cascade này dựa trên thuật toán học AdaBoost<br />
[1]. Phương pháp trích chọn kết cấu của ảnh thành vector đặc trưng gọi là đặc trưng LBP được Daniel<br />
Maturana và các đồng sự đề xuất năm 2009 [5]. Tốc độ xử lý của các thuật toán phát hiện mặt người luôn<br />
là thách thức được đề ra. Bằng cách tách vùng chuyển động, tiếp theo là sử dụng phương pháp trích chọn<br />
đặc trưng LBP, Haar với bộ phân loại cascade để phát hiện người [1,2,3]. Tác giả đề xuất một thuật toán<br />
BS-CC với mục tiêu phát hiện người dựa trên vùng chuyển động nhằm rút ngằn thời gian xử lý hơn so với<br />
phương pháp phát hiện người bằng bộ phân loại cascade. Kết quả thực nghiệm cho thấy phương pháp<br />
phát hiện dựa trên vùng chuyển động tối ưu hơn so với việc việc tính toán đặc trưng LBP trên tất cả các<br />
cửa sổ trong toàn khung ảnh, cho tất cả khung ảnh.<br />
Phần còn lại của bài báo được tổ chức như sau: phần 2 tác giả trình bày những công việc liên quan,<br />
phần 3 tác giả trình bày thuật toán, phần 4 tác giả sẽ trình bày kết quả thực nghiệm, đánh giá và cuối cùng<br />
là kết luận lại vấn đề.<br />
1. MỘT SỐ CÔNG VIỆC CÓ LIÊN QUAN<br />
Mẫu nhị phân cục bộ (Local Binary Pattern-LBP) là phương pháp trích chọn kết cấu của ảnh thành<br />
vector đặc trưng gọi là đặc trưng LBP. Ý tưởng ban đầu của phương pháp này được tác giả Ojala và các<br />
đồng nghiệp giới thiệu [4], ban đầu xử lý trên ảnh xám. Ví dụ với một điểm ảnh xét 8 điểm lân cận và sử<br />
dụng chính giá trị của điểm ảnh tại trung tâm để phân ngưỡng 8 giá trị lân cận. Kết quả tìm được một<br />
chuỗi bit nhị phân có chiều dài bằng 8 tương ứng với 8 điểm lân cận được định nghĩa theo thứ tự nhất<br />
định. Chuỗi bit sẽ được chuyển sang hệ thập phân và giá trị thập phân này thay thế giá trị ban đầu của<br />
217<br />
<br />
Tr n hư<br />
<br />
g<br />
<br />
n ăn T ng<br />
<br />
g<br />
<br />
ư ng à<br />
<br />
điểm ảnh đang xét. Số điểm lân cận có thể được thay đổi bằng đại lượng bán kính. Hình 1.a mô tả quá<br />
trình tính toán LBP cho bài toán nhận dạng mặt người [5].<br />
<br />
ình . (a) Mô tả tính toán với bán kính 1 điểm ảnh và lấy mẫu 8 điểm lân cận,<br />
(b) Mô tả 9×9 MB-LBP.<br />
<br />
Ưu điểm của phương pháp LBP là có chi phí tính toán thấp, ổn định khi cường độ thay đổi đơn điệu<br />
và dễ mở rộng lên không gian nhiều chiều như ảnh màu trong hệ RGB. Tuy nhiên, nhược điểm của đặc<br />
trưng dựa trên gradient là, đầu tiên, gradient phác họa cường độ phân phối xung quanh điểm ảnh một cách<br />
khá thô do chỉ biểu thị bởi hai giá trị 0 và 1. Hai mức gradient giống nhau có thể thuộc hai đối tượng cục<br />
bộ khác nhau, do đó không rõ ràng. Thứ hai, thông tin về gradient không đủ biểu diễn cho các đối tượng<br />
trong trường hợp gặp môi trường phức tạp gây ra nhiễu.<br />
Trong MB-LBP [2], Hình 1b toán tử so sánh giữa các điểm ảnh đơn trong LBP đơn giản được thay<br />
thế bằng so sánh giữa các giá trị trung bình màu xám của tiểu vùng. Mỗi tiểu vùng là một khối hình<br />
vuông chứa các pixel lân cận. Chúng ta lấy kích thước của bộ lọc như một tham số và s × s biểu thị thang<br />
đo của toán tử MB-LBP (đặc biệt là 3×3 MB-LBP trên thực tế là LBP ban đầu).<br />
Phương pháp Haar là một cách trích chọn đặc trưng của ảnh phát triển dựa trên phương pháp sóng<br />
Haar (Haar wavelet) trong xử lý tín hiệu số do Alfred Haar công bố. Viola và Jones [1] đã đưa ra phương<br />
pháp tính toán đặc trưng của ảnh với tốc độ xử lý rất nhanh dựa vào kĩ thuật quy hoạch động gọi là ảnh<br />
tích phân. Các đặc trưng thay đổi màu theo chiều ngang và dọc được phát hiện rất tốt do đó phương pháp<br />
Haar thường được sử dụng để phát hiện khuôn mặt trực diện của người, bởi vì đặc tính chung của khuôn<br />
mặt là có một số vùng mắt và miệng tối hơn vùng trán và má theo chiều dọc, và vùng mũi thường sáng<br />
hơn hai má theo chiều ngang. Nhược điểm của phương pháp này là nó khá nhạy cảm với điều kiện ánh<br />
sáng. Đồng thời nó không tập trung trích chọn được các đặc trưng về hình dáng của vật thể.<br />
Bộ phân loại cascade này dựa trên thuật toán học AdaBoost [1], áp dụng cho cả việc chọn lựa các<br />
tập đặc trưng nhỏ và việc huấn luyện cho bộ phân loại. Mỗi đặc trưng trong tập các đặc trưng của một<br />
mẫu , một bộ học yếu được định nghĩa nhằm xác định hàm phân ngưỡng tối ưu sao cho tập mẫu được<br />
phân loại sai là nhỏ nhất. Bộ phân loại yếu<br />
vì thế bao gồm một đặc trưng<br />
, một ngưỡng và<br />
một biến chẵn lẻ đại diện cho dấu của bất đẳng thức.<br />
{<br />
Thuật toán AdaBoost có thể được mô tả chi tiết thành các bước sau:<br />
- Cho một tập các mẫu<br />
{ } tương ứng cho ảnh<br />
là các ảnh và<br />
<br />
trong đó là nhãn của mẫu . Trong trường hợp này<br />
có chứa đối tượng người hay không.<br />
<br />
- Khởi tạo các giá trị trọng số<br />
tương ứng với<br />
trong đó<br />
là số ảnh không<br />
chứa người hay trường hợp âm (negative) và là số trường hợp dương (positive) hay số ảnh chứa người.<br />
- Lặp lại với<br />
<br />
:<br />
<br />
- Chuẩn hóa các trọng số để cho<br />
<br />
là một phân phối xác suất<br />
∑<br />
<br />
+ Với mỗi đặc trưng , huấn luyện bộ phân loại<br />
đơn. Sai số được đánh giá cho<br />
∑<br />
218<br />
<br />
chỉ được hạn chế để sử dụng cho một đặc trưng<br />
<br />
hư ng ph p ph t hiện người<br />
+ Chọn bộ phân loại<br />
<br />
a tr n<br />
<br />
ng h<br />
<br />
với sai số<br />
<br />
n<br />
<br />
ng<br />
<br />
nhỏ nhất.<br />
<br />
+ Cập nhật lại các trọng số:<br />
<br />
Trong đó<br />
<br />
nếu<br />
<br />
được phân loại chính xác, ngược lại bằng 1 và<br />
<br />
.<br />
<br />
- Bộ phân loại mạnh cuối cùng là<br />
{<br />
<br />
Với<br />
<br />
∑<br />
<br />
∑<br />
<br />
.<br />
<br />
Bộ phân loại cascade là tập hợp của nhiều bộ phân loại huấn luyện bởi thuật toán AdaBoost và điều<br />
chỉnh lại ngưỡng sao cho trường hợp phát hiện thiếu là thấp nhất. Tổng quát, ngưỡng thấp dẫn đến tỉ lệ<br />
phát hiện cao và do đó tỉ lệ phát hiện nhầm cũng cao.<br />
<br />
ình . Sơ đồ bộ phân loại cascade gồm 3 bộ phân loại đơn<br />
<br />
Bộ phân loại cascade có cấu trúc tương tự như một cây quyết định mà mỗi node là một bộ phân loại<br />
đơn. Bằng cách sử dụng bộ phân loại có cấu trúc như trên, quá trình phát hiện người sẽ được cải thiện về<br />
thời gian chạy do các ảnh chắc chắn không phải người sẽ có các đặc trưng rất khác biệt và có thể được<br />
phát hiện sớm từ các bộ phân loại đơn đầu tiên.<br />
2. BÀI TOÁN BACKGROUND SUBTRACTION-CASCADE CLASSIFIER (BS-CC)<br />
Mô hình phát hiện đối tượng được cài đặt để giải quyết bài toán trong thời gian thực. Tín hiệu từ<br />
máy ghi hình sẽ được chuyển đến dưới dạng từng khung hình liên tiếp theo thời gian. Trong bài báo này,<br />
tác giả sử dụng các đoạn video đã được ghi lại sẵn để kiểm tra kết quả của thuật toán nhưng sẽ đọc từng<br />
khung hình và tính toán để mô phỏng trường hợp thực tế. Quá trình xử lý tổng quát có thể được mô tả<br />
bằng sơ đồ dưới đây:<br />
<br />
ình 3 Sơ đồ các bước xử lý tổng quát<br />
<br />
Tại thời điểm khung hình<br />
là một ảnh màu được đọc và xử lý phân đoạn tìm ra các đối tượng<br />
động. Để làm được điều này ta cần mô hình hóa nền bằng thông tin từ các khung hình trước đó. Tác giả<br />
xây dựng một cấu trúc dữ liệu hướng đối tượng để lưu trữ<br />
khung hình trước đó có tên là<br />
FrameProcessor.<br />
Bộ xử lý khung hình có các thuộc tính gồm số nguyên cho phép người dùng lựa chọn chính là số<br />
khung hình trước đó cần lưu lại; một cấu trúc hàng đợi<br />
lưu trữ<br />
khung hình; một ảnh cộng dồn<br />
và một ảnh nền<br />
được tính toán tại mỗi thời điểm . Cụ thể, gọi<br />
là khung hình<br />
tại thời điểm t trong đó<br />
là tọa độ của điểm ảnh,<br />
{<br />
} lần lượt là kênh màu đỏ, lục hoặc lam.<br />
Ta thực hiện xám hóa và được ảnh xám<br />
bằng công thức [6].<br />
219<br />
<br />
Tr n hư<br />
<br />
Mặt nạ<br />
công thức:<br />
<br />
g<br />
<br />
n ăn T ng<br />
<br />
là một ảnh nhị phân chứa các vùng chuyển động tại thời điểm<br />
<br />
g<br />
<br />
ư ng à<br />
<br />
được tính bằng<br />
<br />
{<br />
Trong đó<br />
<br />
là một ngưỡng được định nghĩa ngay từ đầu. Ảnh nền<br />
<br />
được tính bằng:<br />
<br />
∑<br />
Hàng đợi<br />
{<br />
điểm bằng cách gán<br />
cập nhật bằng cách trừ cho<br />
<br />
} chứa khung hình dưới dạng ảnh xám và sẽ được cập nhật tại thời<br />
̅̅̅̅̅̅̅̅̅̅ và<br />
với<br />
. Tương tự ảnh cộng dồn<br />
cũng được<br />
và cộng cho .<br />
<br />
Mô hình phát hiện người được áp dụng trong các vùng chuyển động sau khi phân đoạn. Tác giả sử<br />
dụng phương pháp trích chọn đặc trưng LBP, Haar với bộ phân loại cascade để phát hiện người do đó đối<br />
tượng<br />
[1,2,5] được sử dụng, cùng với kết quả học máy cũng được cung cấp sẵn.<br />
Mỗi khi một đối tượng người được phát hiện trong video, ta cần lưu trữ các đặc trưng của đối tượng<br />
cho quá trình xử lý. Vì thế tác giả định nghĩa một cấu trúc dữ liệu đại diện cho người, là lớp đối tượng<br />
Human. Trong lớp đối tượng này tác giả định nghĩa một biến quyết định lưu lại số khung hình liên tiếp<br />
mà đối tượng được phát hiện bằng bộ phân loại. Biến này đóng vai trò xác định đối tượng có thực sự là<br />
người hay chỉ là một phát hiện nhầm.<br />
3. KẾT QUẢ THỰC NGHIỆM<br />
Tập dữ liệu kiểm tra gồm 10 video mà tác giả lấy từ bộ dữ liệu UT-Interaction [7] được giới thiệu<br />
trong [8]. UT-Interaction là bộ dữ liệu sử dụng trong bài toán nhận dạng hành động tương tác giữa hai<br />
người trong video, gồm 20 đoạn video độ dài khoảng 1 phút, độ phân giải<br />
, 30 fps, với<br />
chiều cao của người trong video vào khoảng 200 điểm ảnh. Bộ dữ liệu được chia thành 2 tập nhỏ, mỗi tập<br />
10 video. Tập dữ liệu thứ hai có khung cảnh phức tạp hơn tập dữ liệu thứ nhất, có nhiều cây cối rung<br />
động và độ sáng tương đối thấp. Tác giả chọn lựa trong 20 đoạn video thuộc bộ UT-Interaction ra 10<br />
video đạt chuẩn điều kiện đầu mà tác giả định nghĩa đồng thời tùy chỉnh lại kích thước của video. Cụ thể,<br />
điều kiện đầu mà tác giả áp dụng gồm:<br />
- Độ phân giải:<br />
<br />
điểm ảnh.<br />
<br />
- Tốc độ: 30 khung hình trên giây.<br />
- Tại thời điểm khởi đầu của video chưa xuất hiện bất kì đối tượng nào trong khung hình.<br />
Bảng 1. Bộ dữ liệu thực nghiệm<br />
Tên tập tin (*.avi)<br />
<br />
Số người xuất hiện trong video (người)<br />
<br />
01<br />
<br />
2<br />
<br />
02<br />
<br />
2<br />
<br />
03<br />
<br />
2<br />
<br />
04<br />
<br />
4<br />
<br />
05<br />
<br />
5<br />
<br />
06<br />
<br />
2<br />
<br />
07<br />
<br />
2<br />
<br />
08<br />
<br />
8<br />
<br />
09<br />
<br />
5<br />
<br />
10<br />
<br />
10<br />
<br />
220<br />
<br />
hư ng ph p ph t hiện người<br />
<br />
a tr n<br />
<br />
ng h<br />
<br />
n<br />
<br />
ng<br />
<br />
Tốc độ xử lý giữa thuật toán của tác giả được so sánh với tốc độ chạy của thuật toán phát hiện người<br />
bằng bộ phân loại cascade trên toàn khung ảnh. Ta thấy rằng việc tính toán đặc trưng LBP trên tất cả các<br />
cửa sổ trong toàn khung ảnh, cho tất cả khung ảnh rất tốn chi phí so với phương pháp phát hiện dựa trên<br />
vùng chuyển động.<br />
25<br />
Phương<br />
pháp BSCC<br />
<br />
(fps)<br />
20<br />
15<br />
<br />
Phương<br />
pháp<br />
Cascade<br />
Classifier<br />
<br />
10<br />
5<br />
0<br />
01<br />
<br />
02<br />
<br />
03<br />
<br />
04<br />
<br />
05<br />
<br />
06<br />
<br />
07<br />
<br />
08<br />
<br />
09<br />
<br />
10<br />
<br />
(video)<br />
<br />
ình 4 Biểu đồ so sánh tốc độ xử lý của phương pháp phát hiện người bằng bộ phân loại cascade và<br />
phương pháp BS-CC<br />
<br />
4. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN<br />
Với bộ dữ liệu video đạt chuẩn điều kiện đầu mà tác giả định nghĩa trên mục 4 thì tốc độ xử lý giữa<br />
thuật toán BS-CC nhanh hơn nhiều so với thuật toán phát hiện người bằng bộ phân loại cascade. Phương<br />
pháp phát hiện dựa trên vùng chuyển động tối ưu hơn so với việc việc tính toán đặc trưng LBP, Haar trên<br />
tất cả các cửa sổ trong toàn khung ảnh, cho tất cả khung ảnh.<br />
Tuy nhiên thuật toán phát hiện người còn cần được huấn luyện để cải thiện về độ ổn định trong kích<br />
thước của hình chữ nhật bao đối tượng, nghĩa là đối tượng người trong hình chữ nhật này phải có một tỉ lệ<br />
nhất định và tâm của hình chữ nhật trùng với tâm của đối tượng. Điều này sẽ hỗ trợ rất nhiều trong việc<br />
trích chọn đặc trưng bất biến của người một cách hiệu quả khi ta có thể xác định được chiều cao của đối<br />
tượng cũng như một số đặc trưng nâng cao theo hướng mô hình hóa người.<br />
Đặc trưng màu sắc của đối tượng người mà tác giả trích chọn dựa vào phương pháp tính biểu đồ<br />
mức xám của từng kênh màu do đó sự khác biệt màu sắc giữa các đối tượng chưa rõ ràng. Một phương<br />
pháp trích tính toán biểu đồ màu có thể được phát triển để bổ trợ cho việc trích chọn đặc trưng này. Dựa<br />
trên biểu đồ màu, chúng ta có thể xây dựng một hàm nhân theo ý tưởng của phương pháp mean shift làm<br />
nổi bật sự khác biệt màu sắc giữa các đối tượng chính là một đặc trưng bất biến hiệu quả.<br />
Trong thuật toán của tác giả, mỗi đối tượng từ khi xuất hiện đến khi ra khỏi vùng máy quay đều<br />
được ghi lại vị trí trong khung hình thành một đường đi theo thời gian. Dữ kiện này có thể được sử dụng<br />
kết hợp trong bài toán nhận dạng hành động người do sự tương tác giữa hai hay nhiều người có phụ thuộc<br />
vào vị trí của họ.<br />
TÀI LIỆU THAM KHẢO<br />
1.<br />
<br />
Paul Viola and Michael Jones (2001). Rapid Object Detection using a Boosted Cascade of Simple<br />
Features. Computer Vision and pattern Recognition.<br />
<br />
2.<br />
<br />
Shengcai Liao, Xiangxin Zhu, Zhen Lei, Lun Zhang, and Stan Z Li (2007). Learning multi-scale<br />
block local binary patterns for face recognition. In Advances in Biometrics, Springer, pages 828–<br />
837.<br />
<br />
3.<br />
<br />
OpenCV<br />
3.2.0<br />
documentation<br />
Cascade<br />
Classifier<br />
http://docs.opencv.org/3.2.0/dc/d88/tutorial_traincascade.html<br />
<br />
4.<br />
<br />
T. Ojala, M Pietikäinen, and D Harwood (1996). A Comparative Study of Texture Measures with<br />
Classification Based on Feature Distributions. Pattern Recognition 29(1).<br />
221<br />
<br />
Training.<br />
<br />
[Online].<br />
<br />