Một trong những ứng dụng vô cùng quan trọng của công nghệ thông tin mà ta không thể không kể đến, đó là : Ứng dụng công nghệ thông tin trong việc giám sát các chuyển động.. Như đã biết t
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Phan Huy Tùng
NGHIÊN CỨU GIẢI PHÁP ỨNG DỤNG CAMERA GIÁM SÁT TRONG
AN NINH VÀ GIAO THÔNG
Chuyên ngành : Công nghệ thông tin
LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Tạ Tuấn Anh
Hà Nội – 2011
Trang 2L ỜI CẢM ƠN
Sau hơn 6 năm học tập và rèn luyện tại trường Đại học Bách Khoa Hà Nội, đến nay em đã hoàn thành chương trình học tập và luận văn tốt nghiệp Thạc sĩ khoa học chuyên ngành Công nghệ thông tin
Để có được những kết quả khiêm tốn ngày hôm nay, em xin trân trọng cảm ơn:
Ban giám hiệu nhà trường đã quan tâm, tạo điều kiện thuận lợi cho chúng em học tập và rèn luyện tốt
Các Thầy, Cô trong viện Công nghệ thông tin và truyền thông đã tận tâm giảng dạy, truyền đạt những kiến thức nền tảng là hành trang quý báu để chúng em bước vào đời
Em xin đặc biệt bày tỏ lòng kính trọng và biết ơn chân thành đến Thầy giáo, Tiến sĩ Tạ Tuấn Anh, người đã trực tiếp hướng dẫn tận tình và tạo mọi điều kiện giúp em hoàn thành được luận văn tốt nghiệp này Em xin cảm ơn Thầy
Em cũng xin được đặc biệt cảm ở đến các anh, chị đồng nghiệp tại công ty CadPro đã tạo điều kiện, giúp đỡ em trong thời gian vừa qua
Đồng thời, tôi cũng xin gửi lời cảm ơn đến :
Bạn Nguyễn Danh Thắng, người đã nhiệt tình tham gia, giúp đỡ
để tạo bộ dữ liệu mẫu
Bạn Vũ Mạnh Thiên, người đã có những góp quý báu trong quá trình thực hiện các nghiên cứu
Cuối cùng, tôi xin được gửi lời cảm ơn đến gia đình và bạn bè, những người đã luôn ở bên, động viên và khích lệ tôi trong suốt chặng đường học tập đã qua
Trang 3Hà Nội, ngày 10, tháng 11, năm 2011
Phan Huy Tùng
Trang 6DANH M ỤC CÁC THUẬT NGỮ VÀ KÝ HIỆU VIẾT TẮT
1 BG Background – nền
2 FG Foreground – tiền cảnh
3 KDE Kernel Density Estimators
4 MDP Motion Detection Problem
5 MM Motion mask
6 MVC Mẫu thiết kế Model–view–controller
7 OM Object mask
8 ROI Region of interest
9 Fps frame per second
10 Frame Khung ảnh
Trang 7DANH M ỤC CÁC HÌNH VẼ TRONG LUẬN VĂN
Trang 10M Ở ĐẦU
M ục đích và lý do chọn đề tài
Ngày nay, với sự bùng nổ mạnh mẽ, ngành công nghệ thông tin đã có những đóng góp quan trọng trong việc thúc đẩy đất nước phát triển, hòa vào cùng thành công chung trong sự nghiệp công nghiệp hóa hiện đại hóa đất nước Nhờ công nghệ thông tin, mà xu hướng tin học hóa đã đi sâu vào hầu hết các lĩnh vực kinh tế-xã hội, đem lại hiệu quả làm việc, năng suất lao động cao, và trình độ quản lý hiệu quả
Một trong những ứng dụng vô cùng quan trọng của công nghệ thông tin mà ta
không thể không kể đến, đó là : Ứng dụng công nghệ thông tin trong việc giám sát các chuyển động
Như đã biết trên thế giới hiện đã triển khai rất nhiều mô hình, ứng dụng của hệ
thống giám sát chuyển động bằng hình ảnh :Hệ thống giám sát giao thông bằng hình ảnh (theo dõi xe lưu thông, điều khiển xe, phát hiện xe vi phạm,…), hệ thống an ninh (camera thông minh, phát hiện các chuyển động và cảnh báo xâm phạm , phát
hiện các tình huống bất ngờ như ẩu đả, cướp ngân hàng,…), các hệ thống theo dõi
quản lý bằng hình ảnh ở các cửa khẩu, sân bay, bến cảng,…
Ở nước ta, một số tuyến, nút giao thông quan trọng cũng đã triển khai hệ thống giám sát giao thông bằng hình ảnh như Quốc lộ 1 đoạn Pháp Vân - Cầu Giẽ Đây là
một ứng dụng vô cùng quan trọng, hữu hiệu trong việc giải quyết bài toán giao thông vốn rất nan giải ở nước ta
Xuất phát từ thực tiễn cùng niềm đam mê về lĩnh vực xử lý ảnh, tác giả mong muốn
có được hiểu biết sâu rộng hơn, có nhiều kinh nghiệm hơn về lĩnh vực giám sát chuyển động bằng hình ảnh Chính vì vậy, tác giả quyết định chọn đề tài :
Trang 11“Nghiên c ứu giáp pháp ứng dụng camera giám sát trong an ninh và giao
thông”
L ịch sử nghiên cứu
Trước khi thực hiện luận văn này, tác giả đã có một số nghiên cứu trong lĩnh vực
xử lý ảnh:
1 2009, Tìm hiểu thư viện mở về xử lý ảnh OpenCV của Intel: sử dụng thư
viện để xây dựng chương trình xử lý ảnh với hầu hết các tính năng cơ bản
2 2010, Xây dựng giao diện và module nhận dạng ký tự trong hệ thống nhận
dạng biển số xe
3 2011, Xây dựng ứng dụng tăng cường ảnh cho ảnh X quang trong y tế: tác
giả đã nghiên cứu, và cài đặt nhiều giải thuật tăng cường ảnh trong lĩnh vực
y tế Lựa chọn, thay đổi để tối ưu giải thuật cân bằng mức xám
Đối tượng, phạm vi nghiên cứu của luận văn
Đối tượng nghiên cứu của luận văn là các giải thuật phát hiện chuyển động, tracking
Phạm vi nghiên cứu của luận văn khá rộng: là toàn bộ các ứng dụng trong giám sát
an ninh và giao thông Luận văn sẽ phải chỉ ra được giải pháp hợp lý cho mỗi ứng
dụng cụ thể
B ố cục trình bày và đóng góp mới của tác giả
Toàn bộ nội dung luận văn được trình bày trong bốn chương:
Chương 1 - Cơ sở lý thuyết: đưa ra cái nhìn tổng quan về bài toán giám sát
chuyển động Đồng thời, trình bày về các giải thuật phát hiện chuyển động
và tracking Trong quá trình trình bày, tác giả có liên hệ với những phương
Trang 12pháp đã tìm hiểu qua các bài báo khoa học Đồng thời, đưa ra những đánh giá dựa trên kết quả cài đặt các giải thuật
Chương 2 - Ứng dụng camera giám sát để phát hiện chuyển động: trình
bày chi tiết các vấn đề của hai giải thuật phát hiện chuyển động phổ biến trong luận văn: giải thuật trừ frame và giải thuật trung bình liên tục Tác giả
đã đưa ra phương pháp xác định ngưỡng động Cuối chương có trình bày ứng
dụng vòng từ ảo, để có thể minh họa cho giải thuật phát hiện chuyển động
Chương 3 - Ứng dụng camera giám sát trong hệ thống giám sát an ninh:
trình bày các ứng dụng, chức năng của hệ thống giám sát an ninh Tác giả đã đưa ra các giải thuật hợp lý cho từng chức năng Và chứng minh tính hợp lý
đó bằng kết quả thực nghiệm
Chương 4 – Giải pháp ứng dụng camera giám sát trong giao thông: trình
bày cách tiếp cận dựa vào tracking để đưa ra những thông báo khi phát hiện
vi phạm, hoặc những thông tin thông kê về tình hình giao thông
Cuối cùng, trong phần kết luận, tác giả trình bày những đóng góp của cá nhân,
những khó khăn khi làm luận văn, và hướng phát triển tiếp theo của đề tài
Phương pháp nghiên cứu
Trong quá trình làm luận văn, tác giả nghiên cứu theo phương pháp:
Lựa chọn các bài báo thuộc lĩnh vực đang làm theo sự định hướng của thầy hướng dẫn.Nghiên cứu và cài đặt một số giải thuật trong các bài báo để kiểm định kết quả
Tham khảo các ứng dụng camera giám sát đã có trong thực tiễn
Trao đổi với bạn bè, đồng nghiệp để có thể có được những ý tưởng tốt
Báo cáo này là kết quả của phương pháp nghiên cứu trên, và nỗ lực của tác giả
Trang 13Chương 1 - CƠ SỞ LÝ THUYẾT
Ở mô hình hệ thống camera giám sát truyền thống, tất cả tín hiệu từ camera giám sát được truyền về phòng điều khiển Ở đó đặt tất cả các thiết bị lưu trữ, các màn hình hiển thị, bảng điều khiển, và nhân viên giám sát phải thực hiện giám sát một cách thủ công
Hình 1: Mô hình h ệ thống camera giám sát truyền thống
Trang 14Hình 2 : Phòng điều khiển hệ thống camera giám sát
Ngày nay, thay vì việc tập trung quá nhiều thứ tại phòng điều khiển Chúng ta có
thể phân tán hệ thống thành nhiều trạm với những nhiệm vụ riêng, có thể lưu trữ video ngay tại camera giám sát, dùng ethernet thay vì sử dụng cable đồng trục Và điều quan trọng hơn cả, phần mềm hệ thống camera giám sát sẽ thông minh hơn –
tự động phát hiện các sự kiện Các bước trong một phần mềm hệ thống camera giám sát được phân chia như sau:
Trang 15Hình 3 : Sơ đồ quy trình thực hiện của hệ thống camera giám sát
Video lấy từ các camera giám sát là đầu vào của hệ thống Video bản chất là các frame (khung ảnh) thay đổi theo thời gian Công việc tại mỗi bước cụ thể như sau:
Phát hi ện các đối tượng chuyển động: tìm ra các vật thể chuyển động trong
frame hiện thời Ở bước này, chúng ta đã có thể nhận biết được rất nhiều các
sự kiện, như: phát hiện kẻ xâm nhập, phát hiện vào vùng cấm, phát hiện vượt rào, phát hiện mất đồ, ước lượng mật độ giao thông…
Theo v ết đối tượng – tracking: lưu lại đường đi của các đối tượng chuyển
động giữa các frame liên tiếp nhau Việc xác định vị trí và lưu đường đi của các đối tượng giúp chúng ta giải quyết được rất nhiều bài toán, như: đếm số phương tiện giao thông, đi ngược chiều, ước lượng tốc độ…
Phân lo ại đối tượng: các đối tượng được phân loại thành: người, xe máy,
ô-tô con, ô-ô-tô tải… giúp ích cho việc thống kê, cũng như hỗ trợ đưa ra cảnh báo đi sai làn đường
Phát hiện đối tượng chuyển động
Theo vết đối tượng
Phân loại đối tượng
Đánh nhãn sự kiện
Video
Các sự kiện
Đối tượng chuyển động
Các đường đi của đối tượng
Các đối tượng được phân loại
Trang 16 Đánh nhãn sự kiện: dựa vào kết quả của các bước trên, bước này sẽ chỉ ra
các sự kiện tương ứng và phát đi những cảnh báo cần thiết
Trong bốn bước trên, phát hiện chuyển động là bước quan trọng nhất Không chỉ
cần thiết cho mọi bài toán, mà kết quả của bước này còn ảnh hưởng lớn đến độ
chính xác của các bước sau Theo vết đối tượng – tracking cũng đóng vai trò không
thể thiếu trong một số bài toán
1.2 Phát hi ện chuyển động
Mục đích chính của bài toán này là xác định được vật chuyển động trong
khung ảnh hiện thời của chuỗi video đầu vào Camera giám sát có thể là cố định
hoặc di chuyển, nhưng thường là cố định Trong luận văn này, chúng ta mặc định là
camera được cố định
Một hệ thống phát hiện chuyển động được hình dung theo sơ đồ sau:
Hình 4: Sơ đồ chung cho giải thuật phát hiện chuyển động
Foreground mask
Trang 17Đầu vào video sequence là chuỗi các hình ảnh - có thể là một stream, hoặc một file trên ổ cứng Đầu ra foreground mask cho thông tin về vị trí và hình dáng của vật
Một giải thuật phát hiện chuyển động cơ bản có bốn bước chính:
1 Ti ền xử lý (Preprocessing): lấy và chuẩn hóa frame ảnh từ video đầu vào để
phục vụ cho các bước sau Thông thường, frame ảnh sẽ được chuyển về grayscale nhằm giảm thiểu việc xử lý, hoặc có thể chuyển về không gian màu HSV, hoặc YUV cho đúng với bản chất vật lý của ảnh
2 Xây d ựng mô hình nền (Background modeling): đây là bước quan trọng,
tùy vào từng giải thuật mà mô hình nền được xây dựng theo những cách khác nhau Những giải thuật đơn giản sẽ mô hình hóa background chỉ bằng một ảnh, còn những giải thuật phức tạp hơn sẽ đưa ra một bản mô tả, với cấu trúc
dữ liệu phức tạp hơn
3 Phát hi ện tiền cảnh (Foreground detection): dựa vào frame (khung ảnh)
hiện tại, và background model đã xây dựng từ bước trước sẽ đưa ra hình ảnh
cơ bản của foreground
4 H ậu xử lý (Postprocessing): xác nhận lại ảnh foreground, loại trừ những
điểm ảnh không thực sự thuộc foreground (nhiễu) Có thể xử lý thêm để được foreground tốt hơn: không bị phân mảnh, không bị dính các vật với nhau…
Một số giải thuật có sử dụng ảnh âm bản của foreground để làm mặt nạ khi cập nhật
nền background Việc này sẽ giúp cho vật không bị cập nhật vào nền
Hiện nay có rất nhiều giải thuật phát hiện chuyển động, nhưng không có giải thuật nào được coi là hoàn hảoP
1
P
[14] Bởi MDP (Motion Detection Problem – bài toán phát hiện chuyển động) có rất nhiều vấn đề phải đương đầu
vấn đề của bài toán phát hiện chuyển động
Trang 181.2.1 Các v ấn đề của bài toán
V ật thuộc nền chuyển động: một vật vốn là một phần của nền, đột nhiên
di chuyển khỏi vị trí của nó, và vị trí này sẽ xuất hiện trên foreground mà đúng ra nó phải thuộc về background
Lấy ví dụ: hệ thống phát hiện chuyển động quan sát một sân Khi khởi tạo, trên sân có đậu một chiếc ô-tô Sau một khoảng thời gian, ô-tô di chuyển
khỏi vị trí ban đầu Khi này hệ thống phát hiện chuyển động phải xem xét
để cập nhật lại nền tại vị trí ô-tô đỗ trước kia, nếu không trên foreground
sẽ luôn có một ô-tô đứng yên Một số bài báo gọi hiện tượng này là ghost (bóng ma)
Ánh sáng thay đổi trong ngày: cường độ ánh sáng thay đổi từ từ theo
thời gian trong ngày cũng cần được để ý để cập nhập sự thay đổi này lên background Đặc biệt là những camera quan sát ngoài trời
Ánh sáng thay đổi đột ngột: sự thay đổi đột ngột về cường độ ánh sáng
có thể làm hỏng background model
Cây rung: background đôi khi không tĩnh như mong đợi, mà có thể có
những sự di chuyển, thường là nhỏ , dao động tại chỗ… Những phần tử này sẽ gây ra nhiễu, và rất dễ bị nhầm lẫn là foreground
Ng ụy trang: đây là hiện tượng rất thú vị và khó xử lý Khi mà vật có một
số đặc điểm giống với nền, dẫn đến foreground không bao gồm toàn bộ
vật, mà chỉ chỉ là các phần có thể không liên thông dẫn đến bị nhận biết thành nhiều vật
M ồi: trong một số trường hợp, không thể có thời gian để khởi tạo
background Có thể là do yêu cầu của ứng dụng, cũng có thể là do cảnh
với foreground dày đặc
S ự đồng màu: màu sắc của vật giống với background, nên hệ thống
không phát hiện ra vật đó Đặc biệt, khi toàn bộ background chỉ có 1 màu (đồng màu), mà vật cũng cùng màu Dẫn đến, toàn bộ vật có thể không được nhận biết
Trang 19 V ật ngủ quên: một vật vốn thuộc về foreground, nhưng không di chuyển
nữa Khi đó hệ thống cần phải có cơ chế biến vật đó thành thuộc về
background
Bóng: đây là vấn đề rất phổ biến, đặc biệt khi quan sát ngoài trời Hệ
thống, cần có cơ chế để loại bỏ bóng để có được foreground chính xác
Để khắc phục các vấn đề trên đã có rất nhiều các phương pháp được để cử Mỗi phương pháp có những ưu, nhược điểm riêng Có thể chia thành 2 nhóm dựa vào cách biểu diễn mô hình background: các phương pháp cơ bản và các phương pháp nâng cao
1.2.2 Các phương pháp cơ bản
Nhóm các phương pháp cơ bản hầu hết được phát triển từ giải thuật trừ nền
cơ bản sau đây
Trong đó:
: là khung ảnh hiện tại
: là ảnh nền hiện tại
: là ngưỡng
Có thể thấy phương pháp này nhận biết foreground bằng sự khác biệt giữa
khung ảnh hiện thời với một ảnh nền Ở các phương pháp cơ bản,
thường là một ảnh tĩnh, hơn là một cấu trúc dữ liệu đặc thù Phương pháp trừ frame được coi là đơn giản nhất trong tất cả các phương pháp phát hiện chuyển động
a Phương pháp trừ frame
Phương pháp này nhận biết foreground bằng sự khác biệt giữa khung ảnh hiện
tại và khung ảnh trước đó
Trang 20Ánh xạ với phương pháp trừ nền cơ bản thì được coi là nền ứng với
Lưu ý: không nhất thiết phải là frame ngay trước Trong một số trường hợp, do sự khác biệt giữa hai frame liên tiếp là quá nhỏ, chúng
ta có thể nhảy cách vài frame
U
Ưu điểm:
Tốc độ thực thi nhanh
Không yêu cầu bộ nhớ nhiều hơn các phương pháp khác
Cài đặt đơn giản
Do vậy, phương pháp này phù hợp để tích hợp trong các thiết bị phần cứng để phát
hiện chuyển động
U
Nhược điểm :
Rất nhạy cảm với ngưỡng
Không thể áp dụng trong một số trường hợp, khi mà sự khác biệt giữa các khung ảnh liên tiếp là quá ít (vật chuyển động chậm chẳng hạn)
foreground lấy được từ phương pháp này không cho hình dạng đúng của vật
thể
Trang 21
Hình 5: Minh h ọa nhược điểm nhạy với ngưỡng của phương pháp trừ frame
b Phương pháp trung bình
Background là trung bình của n frame trước đó.Tốc độ nhanh hơn nhưng bù lại
yêu cầu bộ nhớ lớn: bộ nhớ yêu cầu là n*kích thước của một frame
Đôi khi người ta cũng áp dụng trọng số cho mỗi frame (các frame có càng mới thì
có trọng số càng lớn) Tùy từng trường hợp, việc áp dụng trọng số sẽ cho kết quả tốt
hơn
Trang 22c Phương pháp trung bình liên tục
Ở phương pháp này, background được thay đổi liên tục bằng việc cập nhật frame hiện tại vào nền với một hệ số alpha rất nhỏ
Trong đó:
: background của frame kế tiếp
: background của frame hiện tại
: frame hiện tại
: hệ số cập nhật, hệ số này thường nhỏ cỡ 0.1
Đây là phương pháp khá tốt để tạo background mà khắc phục được vấn đề mồi, khi
mà background hoàn hảo không có
Để ý rằng, phương pháp này cũng không chỉ ra một cách rõ ràng để lựa chọn
hợp lý Để đơn giản, người ta có thể chọn là một giá trị hằng Nhưng chỉ với
một giá trị cố định sẽ không thể cho kết quả tốt với tất cả các trường hợp được Gupte et al đề cử phương pháp xác định ngưỡng dựa vào độ cao của histogram [6] :
Trang 23Hình 6 : Phương pháp xác định ngưỡng động
Cụ thể các bước thực hiện :
Xây dựng histogram của ảnh hiệu ( )
Xác định đỉnh của histogram (số điểm ảnh lớn nhất tại một mức xám xác định)
Đi từ phải qua trái, hay từ mức xám cao xuống mức xám thấp, nếu gặp vị trí đầu tiên trên histogram có số điểm ảnh bằng 10% số điểm ảnh của đỉnh thì
mức xám tại vị trí đó được chọn làm ngưỡng Th
Gupte et al đồng thời cũng sử dụng mặt nạ vùng chuyển động (motion mask) để tối
ưu việc cập nhật lại nền Young-Kee Jung et al cũng tận dụng motion mask[16], nhưng cách cập nhật nền có thay đổi:
Qua thực nghiệm, background tạo ra bằng cách này sẽ cho ra những vùng có chung
một mức xám Dẫn đến ảnh hiệu sẽ có hiện tượng phân thành những vùng giống như đường đồng mức
M ức xám
S ố điể
m ảnh
Đỉnh của histogram
10% độ cao của đỉnh
Th
Trang 24d Phương pháp trung bình liên tục Gaussian
Được để cử bởi Christopher Wren et all (1997)[2] Coi toàn bộ histogram là một phân bố chuẩn Gaussian : hàm phân bố mật độ xác suất PDF(probability density function) của background Phương pháp cập nhật background pdf: là
phương pháp trung bình liên tục
Foreground được xây dựng từ :
có thể được chọn bằng , thường lấy Như vậy, ngưỡng Th với mỗi điểm ảnh tại mỗi thời điểm là khác nhau
Có thể thấy độ phức tạp tính toán ở giải thuật này đã lớn hơn các giải thuật trước
Để giảm độ phức tạp Jianpeng Zhou et al đã đơn giản hóa cách tính độ lệch chuẩn [8]:
Đồng thời cũng đưa ra thêm hai ngưỡng, ba giá trị khác nhau nhằm tối ưu hóa
giải thuật Qua thực nghiệm, giải thuật chạy khá nhanh Nhưng giải thuật phụ thuộc nhiều vào tham số, và số lượng tham số thì khá lớn
Phương pháp này không thực hiện được với background đa mô hình, mà phải dùng đến phương pháp trộn Gaussian
e Phương pháp trộn Gaussian
Trộn của K hàm Gaussians [Stauffer and Grimson, 1999]
Trong phương pháp này, background luôn luôn phải là đa mô hình Nhưng:
Số lượng mô hình phải đặt trước
Trang 25 Làm thế nào để khởi tạo các hàm Gaussian này?
Có thể nhận thấy rằng, phương pháp trộn gaussian thực chất mô hình cả foreground
lẫn background Vậy làm thế nào để nhặt ra những phân bố là mô hình của
background? Tất cả các phân bố được xếp hạng dựa theo tỷ lệ tương ứng, phân bố đầu tiên sẽ được chọn làm “background”
Trang 26Hình 7: Minh h ọa phương pháp trộn gaussianP
2
f Phương pháp bộ đánh giá mật độ nhân
Phương pháp này thường được gọi tắt là KDE - Kernel Density Estimators [Elgammal, Harwood, Davis, 2000] Ý tưởng chung như sau:
Background PDF(hàm phân bố mật độ xác suất) được tạo từ histogram của n điểm ảnh mới nhất Mỗi histogram này đều được làm trơn với một nhân gaussian
Điểm ảnh thuộc về background nếu
Sử dụng motion mask khi cập nhật background
Phương pháp này yêu cầu bộ nhớ , thời gian tính các giá trị của nhân lớn
2 Nguồn: Pavlidis, I Morellas, V Tsiamyrtzis, P Harp, S (2001) Urban
surveillance systems: from the laboratory to the commercial world
Proceedings of the IEEE, 89, trang 1478 - 1497.
Trang 27g Phương pháp đánh giá dựa vào dịch trung vị
Phương pháp đánh giá dựa vào dịch trung vị - Mean-shift based estimation [Han, Comaniciu, Davis, 2004; Piccardi, Jan, submitted 2004] Phương pháp gradient-
ascent có thể phát hiện các mode cùng với ma trận hiệp biến của phân bố đa mô
hình Bước lặp, dừng lại cho tới khi hội tụ
Vector dịch trung vị:
Hình 8: Minh h ọa quỹ đạo dịch trung vị trong không gian dữ liệu
Với phương pháp này, nếu cài đặt thông thường – sử dụng phương pháp lặp thì chi phí tính toán lớn, và yêu cầu bộ nhớ Do vậy, khi cài đặt cần chú ý tối ưu hóa tính toán và chỉ sử dụng để xác định background PDF mode khi
khởi tạo, sau đó có thể dùng phương pháp có chi phí tính toán nhỏ hơn như chế độ lan truyền
Trang 28h Phương pháp xấp xỉ mật độ nhân liên tục
Xấp xỉ mật độ nhân liên tục (SKDA) – Sequential Kernel Density
Approximation [Han, Comaniciu, Davis, 2004] là phương pháp được đánh giá nhanh và sử dụng ít bộ nhớ hơn KDE Nó là phương pháp kết hợp giữa đánh giá và lan truyền:
Khởi tạo, sử dụng việc phát hiện mode dịch trung vị từ các mẫu
Những mode sau khi khởi tạo sẽ được lân truyền bằng cách thích ứng chúng
với các mẫu mới:
Những mode đã có được trộn với nhau bằng các thủ tục heuristic Số lượng các mode có thể thay đổi
Hình 9: So sánh gi ữa KDE(trên) và SKDA(dưới)P
3
through mode propagation: applications to background modeling,“ Proc ACCV 2004
Trang 29i Phương pháp Eigenbackgrounds
Eigenbackground [N M Oliver, B Rosario, and A P Pentland, 2000] được chính tác giả khảng định là chạy nhanh và tốt hơn phương pháp trộn Gaussians Có sáu bước chính:
1 Lấy ra n frame để sắp xép lại thành các cột của ma trận A
2 Tính ma trận hiệp biến
3 Tính ma trận đường chéo L, và ma trận eigenvector từ C
4 Chỉ giữ lại M eigenvector đầu tiên (Eigenbackgrounds )
5 Khi có ảnh mới I, chiếu I lên không gian con trong M eigenvector đã có Sau
đó, xây dựng lại thành I’
6 Tính hiệu Hiệu này chính là foreground, vì không gian con chỉ thể
hiện phần tĩnh của khung cảnh
1.2.3 Các phương pháp nâng cao
Những phương pháp cơ bản không thể áp dụng cho những cảnh có nền phức tạp, như: quạt quay, rèm đung đưa, cây rung, sóng nước… Dẫn đến, background không
thể biểu diễn bằng một ảnh nền nữa mà phải mô hình hóa với những cấu trúc dữ
liệu đặc thù tương ứng với mỗi phương pháp Cũng có nhiều phương pháp riêng
biệt để khắc chế những khó khăn này, như:
Trộn Gaussian dựa theo vùng (Region-based mixture of Gaussians)
Khung thống kê cho phương pháp trừ nền (Statistical framework for BGS)
Phát hiện dịch chuyển dựa chuyển động
Có thể thấy, tất cả các phương pháp nâng cao đều yêu cầu chi phí về bộ nhớ và thời gian tính toán lớn Ứng dụng những phương pháp này trong hệ thống thời gian thực
là rất khó khăn Luận văn sẽ trình bày một phương pháp nâng cao khá hiệu quả, đó
là codebook Background sẽ được mô hình bởi các codebook
Trang 30Một codebook được tạo thành từ những hộp bao nhiều giá trị chung của một điểm ảnh qua chuỗi ảnh đầu vào (qua thời gian)[5] Hình minh họa sau sẽ làm rõ hơn:
Hình 10: Minh h ọa cách xây dựng một codebookP
4
Hình phía trên (Waveform) thể hiện sự thay đổi về giá trị của một điểm ảnh theo thời gian ở dạng đường Giá trị của điểm ảnh ở đây chỉ giá trị mức xám nếu là ảnh xám, là giá trị của từng kênh riêng biệt ở không gian màu YUV hoặc HSV nếu
là ảnh màu
the OpenCV Library Sebastopol: O’Reilly, page 279
Trang 31Hình phía dưới (Codebook formation) chỉ ra cách hình thành codebook Codebook
là những hộp (hình chữ nhật dọc), nó được khởi tạo với kích thước tối thiểu vào bao
lấy giá trị điểm ảnh Qua thời gian, giá trị điểm ảnh thay đổi:
Nếu thay đổi nhỏ, không vượt quá xa kích thước của hộp thì hộp đó sẽ to lên
để bao lấy giá trị mới
Nếu thay đổi quá lớn, một hộp mới được khởi tạo
Lấy một ví dụ trực quan: hình dưới thể hiện sự thay đổi mức xám trên một hàng (đường bị tô đen đậm) qua thời gian (60 frames) Background là cảnh cây rung trong gió, foreground là bàn tay
Hình 11:Minh h ọa sự thay đổi giá trị của đường các điểm ảnh.P
5
Có thể thấy, vùng màu tối (bên trái, phía trên) tương đối ổn định Vùng các nhánh cây dao động (ở giữa, phía trên) có dao động lớn
the OpenCV Library Sebastopol: O’Reilly, page 268
Trang 32Khi học mô hình background theo phương pháp codebook, mỗi hộp được định nghĩa bởi hai ngưỡng (max và min) cho mỗi kênh Các ngưỡng này sẽ được nở
ra (max lớn lên, min bé lại) nếu giá trị điểm ảnh ở background mới rơi trong
ngưỡng học (learnHigh và learnLow) những phía trên max hoặc dưới min Nếu giá
trị này rơi ngoài hai ngưỡng và vượt quá ngưỡng học thì một hộp khác bắt đầu (không bỏ hộp cũ) Chúng ta có thể định nghĩa thêm hai ngưỡng nữa: hai ngưỡng
chấp nhận (dưới và trên) để sử dụng khi trừ nền Một điểm ảnh sẽ thuộc về nền nếu giá trị của nó nằm trong hoặc đủ sát (xác định bởi ngưỡng chấp nhận) với bất kỳ
hộp nào của codebook tương ứng Ngược lại, điểm đó thuộc foreground
Hình dưới đưa ra một minh họa rất thú vị Dưới đây là codebooks của sáu điểm ảnh (vùng sẽ bị tay che) thuộc đường đang xét ở hình trên
Trang 33Hình 13: So sánh foreground thu được từ phương pháp codebook và phương pháp
trung bình
Trang 341.2.4 So sánh và đánh giá các phương pháp
Toyama, K et al đã công bố kết quả thực nghiệm một số phương pháp với
các vấn đề của bài toán[14]
Hình 14: K ết quả thực nghiệm của Toyama, K et al với một số phương pháp trong
các môi trường khác nhau
Trang 35Bảng sau sẽ cho cái nhìn tổng quan về tốc độ thực thi, và yêu cầu bộ nhớ của các
phương pháp cơ bản
Phương pháp trừ frame
Phương pháp trung bình
Phương pháp trung bình liên
tục
Phương pháp trung bình liên
Phương pháp
trộn Gaussians
Phương pháp bộ đánh giá mật độ nhân
Phương pháp đánh giá dựa vào
Mỗi phương pháp có những ưu điểm và nhược điểm riêng, có thể khắc chế
được nhiều hay ít các vấn đề của bài toán Những, không tồn tại giải thuật hoàn hảo
Tùy vào từng trường hợp, chúng ta sẽ cân nhắc, lựa chọn giải thuật phù hợp
Trang 361.3 Tracking
Nhiệm vụ của tracking là định danh các đối tượng trong frame ảnh hiện thời,
và lưu lại những vị trí trước đó của đối tượng Mô hình tổng quan của giải thuật
tracking như sau:
Hình 15: Mô hình t ổng quan của giải thuật tracking
Đầu vào của bài toán này chính là đầu ra của bài toán phát hiện chuyển động: foreground mask (mặt nạ tiền cảnh) Trên thực tế, các vùng trên foreground mask
được phân chia thành các blob Các blob này mới thực sự là đầu vào
Mỗi đối tượng sẽ được đại diện bởi một track gồm ID(định danh) và lịch sử các vị
trí của đối tượng đó Trạng thái hiện tại chính là tập các track Việc gán ID cho các
blob đầu vào sẽ dựa vào trạng thái hiện tại
Gán ID cho các blob
Cập nhật track
Tạo mới track
Giải quyết tách
Phát hiện tách
Trang 37Hình 16: Gán ID cho các blob d ựa vào tập các track hiện thời
Chúng ta phải tính khoảng cách của các blob với các track để có thể tìm ra track tương ứng cho mỗi blob Khoảng cách giữa blob với track chính là khoảng cách giữa blob trong frame hiện thời với blob ứng với track trong frame trước Một
số cách tính khoảng cách như sau:
Hình 17: Cách tính kho ảng cách giữa các blob
a Khoảng cách từ biên tới biên của hai blob
b Khoảng cách từ tâm tới tâm của hai blob
c Khoảng cách từ tâm của blob thuộc frame trước tới hình chữ nhật bao của blob đầu vào
d Khoảng cách giữa hai hình chữ nhật bao blob
Chọn một trong bốn cách đo khoảng cách trên, chúng ta xây dựng ma trận khoảng cách giữa blob và track Giả sử kết quả được như sau:
Trang 38Hình 18: Ma tr ận khoảng cách giữa các blobs và các tracks
Chọn ngưỡng để lấy ra những blob và track gần nhau Những vị trí nhỏ hơn ngưỡng được tô đậm Các trường hợp có thể xảy ra được thể hiện ở hình dưới:
Hình 19 : Các trường hợp ứng với từng blob
1 C ập nhật track: trường hợp gán không bị nhập nhằng Cập nhật track này
vào mô hình bằng cách thêm những thuộc tính của blob hiện tại vào lịch sử
của track Các thuộc tính của blob có thể là: tâm, hình chữ nhật bao, mặt nạ,
thể tích… Nếu cảnh mà thưa thì hầu hết là xảy ra trường hợp này
2 T ạo mới/xóa track:
Trang 39 Tạo mới track khi mà blob không được gán cho track nào Cần lưu ý, nhiễu sẽ tạo ra những track ngắn
Xóa track khi track đó không xuất hiện trong N frame N phụ thuộc vào cảnh và giải thuật
3 Gi ải quyết tách: khi một blob bị tách thì có thể xảy ra hai trường hợp
Đối tượng bị phân mảnh: cần phải gán tất cả các mảnh cho cùng một
đối tượng
Hai đối tượng đi cùng nhau, và bây giờ tách ra: cần tạo đối tượng mới
Hình 20 : hai trường hợp khi blob bị tách
4 Gi ải quyết gộp: khi hai đối tượng luôn luôn di chuyển cùng nhau, với cùng
tốc độ thì cần phải xem xét để gộp hai đối tượng thành một
Đụng độ là hiện tượng rất phổ biến, khi hai đối tượng riêng biệt di chuyển lại gần nhau, đè lên nhau sau đó lại tách ra Cần phải có cơ chế để gán ID đúng cho từng đối tượng Có thể hình dung như hình dưới đây:
Trang 40Hình 21: Minh h ọa hai đối tượng đụng độ nhau
Một cách đơn giản để giải quyết vấn đề này như sau:
Khi hai đối tượng đụng độ: track nó như một đối tượng mới
Khi đối tượng mới này tách ra: cần xem xét A==C hay A==D bằng cách sử
dụng các đặc điểm của đối tượng: hình dạng, kích thước, quỹ đạo, độ tương quan…
mô hình tổng quan của giải thuật và trình bày chi tiết theo mô hình Chương này đóng một vai trò quan trọng trọng làm tiền đề cho các chương ứng dụng về sau