Tài liệu tham khảo ngành tin học tìm hiểu và xây dựng hệ thống bám mục tiêu di dộng sử dụng thuật toán xử lý ảnh Camshift của OpenCV
Trang 1MỞ ĐẦU
Thị giác máy là một lĩnh vực đã và đang rất phát triển Khái niệm xử lýảnh và thị giác máy – Computer vision có liên quan tới nhiều ngành học vàhướng nghiên cứu khác nhau Từ những năm 1970 khi mà năng lực tính toáncủa máy tính ngày càng trở nên mạnh mẽ hơn, các máy tính lúc này có thể xử
lý được những tập dữ liệu lớn như các hình ảnh, các đoạn phim thì khái niệm
và kỹ thuật về thị giác máy ngày càng được nhắc đến và nghiên cứu nhiềuhơn cho tới ngày nay
Thị giác máy bao gồm lý thuyết và các kỹ thuật liên quan nhằm mụcđích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnhthu được hoặc các tập dữ liệu đa chiều Việc kết hợp giữa thị giác máy vớicác kỹ thuật khác như công nghệ thông tin, truyền thông, điện tử, điều khiển
tự động, cơ khí… cho chúng ta rất nhiều ứng dụng trong đời sống hàng ngàycũng như trong khoa học, an ninh, quân sự… Ngày nay, ứng dụng của thị giácmáy đã trở nên rất rộng lớn và đa dạng, len lỏi vào mọi lĩnh vực từ quân sự,khoa học, vũ trụ, cho đến y học, sản xuất, và tự động hóa tòa nhà
Trong thời gian thực tập tốt nghiệp, được sự giúp đỡ của thầy cô hướngdẫn em đã từng bước tiếp cận và nghiên cứu cơ sở ban đầu về xử lý ảnh số, sửdụng thư viện mã nguồn mở OpenCV, lập trình Visual C++ và xây dựng giaodiện điều khiển trên máy tính
Công nghệ xử lý ảnh bao gồm rất nhiều hướng nghiên cứu, một trongnhững hướng nghiên cứu của em đó là tìm hiểu và xây dựng hệ thống bámmục tiêu di dộng sử dụng thuật toán xử lý ảnh Camshift của OpenCV
Báo cáo thực tập bao gồm:
Chương 1: Tổng quan về xử lý ảnh và thư viện mã nguồn mở Opencv Chương 2: Cơ sở về hệ thống bám ảnh tự động
Chương 3: Tìm hiểu thư viện mã nguồn mở OpenCV của Intel trên nền
Visual C++
Chương 4: Xây dựng giao diện điều khiển dùng Visual C++
Trang 2Chương 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ THƯ
VIỆN MÃ NGUỒN MỞ OPENCV
1.1 Giới thiệu một số ứng dụng của xử lý ảnh
Trong những năm gần đây, Trên thế giới nghiên cứu ứng dụng xử lý vànhận dạng ảnh (Machine Vision) đang là hướng nghiên cứu tập trung của rấtnhiều nhà khoa học trong đa số các lĩnh vực Xử lý ảnh số đã được phát triển
và trở thành một lĩnh vực khoa học Xử lý ảnh số không chỉ nâng cao chấtlượng của ảnh mà còn phân tích và lý giải nó phục vụ các mục đích riêng biệt.Các thiết bị ngày nay được ứng dụng công nghệ xử lý và điều khiển theo hìnhảnh ngày càng nhiều và cho thấy rõ sự ưu việt của nó, trong đó có rất nhiềuứng dụng mang tính cách mạng như:
1.1.1 Trong quân sự:
Các hệ thống tích hợp quang hồng ngoại có khả năng tự động điều khiểndàn hỏa lực (pháo, tên lửa) được lắp đặt cho các trận địa cao xạ, trên xe tăng,tàu chiến, máy bay, tên lửa hoặc vệ tinh (Hình 1) Chúng được thay thế và hỗtrợ các dàn rada dễ bị nhiễu trong việc tự động phát hiện, cảnh giới, bám bắtmục tiêu Đặc biệt có những loại lắp trên máy bay có khả năng điều khiển hỏalực đánh phá hàng chục mục tiêu một lúc Ngoài ra còn phải kể đến các đầu tựdẫn tên lửa và đạn thông minh
1.1.2 Trong an ninh, phòng chống tội phạm, bảo vệ pháp luật:
Các hệ thống camera nhận dạng khuôn mặt vân tay tự động cũng nhưphát hiện, theo dõi, cảnh báo các âm mưu và hoạt động khủng bố Các xerobốt tự hành có gắn các camera cũng được ứng dụng trong các môi trườngđộc hại, dò phá bom mìn (Hình 1.1)
1.1.3 Trong lĩnh vực hàng không vũ trụ:
Các hệ thống ống kính chụp ảnh viễn thám (remote sensing) lắp trên các
vệ tinh bay quanh trái đất có thể chụp và quan sát được các vật kích cỡ 0,5 m
từ độ cao 750 km trong mọi điều kiện thời tiết (Hình 1.1) Việc nối ghép cácống kính này với hệ thống GPS sẽ cho phép xây dựng các bản đồ số có nhữnglĩnh vực ứng dụng cực kỳ quan trọng trong quốc phòng an ninh, phát triểnkinh tế, xã hội
Trang 31.1.4 Trong công nghiệp, giao thông, xây dựng :
Hệ thống quang điện tử đóng vai trò của các thị giác máy (machinevision) có khả năng tự động đo đạc kiểm tra chất lượng sản phẩm trong cácdây truyền sản xuất: phân loại hạt ngũ cốc, cà phê; tìm lỗi lắp ráp linh kiệncác bản vi mạch và khuyết tật các mối hàn và động cơ Các hệ thống quangđiện tử cũng được ứng dụng ngày càng nhiều trong giao thông như đo tốc độ,
tự động kiểm soát điều khiển và phân luồng giao thông (Hình 1.2)
1.1.5 Trong nghiên cứu y sinh dược học:
Các kính hiển vi có khả năng tự động nhận dạng và đo đếm các tế bàovới độ chính xác cao Các kính hiển vi có hệ thống dẫn đường laser cho phépthực hiện những phẫu thuật rất phức tạp như mổ u não, nơi mà một sự khôngchính xác cỡ m cũng gây tổn hại đến các dây thần kinh chằng chịt xungquanh
1.1.6 Trong công nghiệp giải trí truyền hình:
Các hệ thống tích hợp có thể điều khiển các camera kích thước và khốilượng lớn dễ dàng tự động bám theo các đối tượng chuyển động nhanh nhưbóng đang bay, đua xe
Một số hình ảnh hệ thống sử dụng công nghệ xử lý ảnh:
Trang 4Hình 1.1 Một số hệ thống tích hợp quang hồng ngoại, và ảnh nhiệt trên
các phương tiện di động
Hình 1.2 Một số hệ thống camera robot tự hành, trong hàng không vũ
trụ
1.2 Một số giải pháp phần cứng phục vụ xử lý ảnh
Để giải bài toán xử lý bằng hình ảnh, ta có rất nhiều giái pháp khác nhau
Từ phần cứng cho tới các phần mềm Ta có thể điểm qua một vài phươngpháp hay được sử dụng và có hiệu quả cao như sau
1.2.1 Máy tính PC, laptop
Đây là một trong những phương pháp đơn giản nhất Có thể tận Dụngcác mainboard máy tính hay thậm chí các máy tính xách tay với chức năng là
Trang 5một đơn vị xử lý ảnh, và đưa ra quyết định Với việc kết nối một camera haywebcam ta hoàn toàn chủ động trong quá trình nhận/xử lý ảnh Các giao tiếpngoại vi phổ biến như UART, Parallel, USB hay KeyboarD Việc sử dụng
PC, laptop sẽ có những ưu/ nhược điểm sau:
* Ưu điểm:
- Rất dễ dàng phát triển các ứng dụng dựa trên các phần mềm lập trìnhnhư C, VisualC, VisualBasic…, rất phù hợp cho những người mới bắt đầunghiên cứu về lĩnh vực xử lý ảnh đặc biệt là hiện nay có rất nhiều thư viện mởphục vụ cho xử lý ảnh, do đó rất thuận tiện cho người mới bắt đầu tìm hiểu về
xử lý ảnh
- Có tốc độ xử lý không cao
- Dễ Dàng lập trình, kiểm lỗi
- Hệ điều hành quen thuộc (winDows/linux)
- Các công cụ lập trình/biên Dịch phổ biến (C, C++, VisualC,VisualBasic )
* Nhược điểm
- Kích thước, khối lượng lớn
- Dễ hư hỏng Do va đập hay các tác nhân khác
- Có quá nhiều thành phần không sử Dụng đến
- Chỉ có thể giao tiếp với ngoại vi thông qua các chuẩn phổ biến nhưUART, USB
1.2.2 Main công nghiệp, máy tính nhúng PC 104
Hình 1.3 Main công nghiệp PC 104
Ta có thể sử dụng mainboad PC104 với các chức năng như một máy tínhthông thường Việc sử dụng PC104 sẽ có những ưu/ nhược điểm sau:
Trang 6Ưu điểm:
- Có tốc độ xử lý cao
- Dễ Dàng lập trình, kiểm lỗi
- Hệ điều hành quen thuộc (windows/linux)
- Các công cụ lập trình/biên dịch phổ biến (MSVC, C++ )
ra mà ta có thể chọn các SBC cho các SoC phù hợp với yêu cầu cụ thể Hiệnnay đã có nhiều SoC có khả năng tích hợp các DSP Processor vào trong nhânnhằm tăng khả năng xử lý (sign processing)
Ưu điểm:
Trang 7- Các công cụ biên dịch phổ biến gcc
- Các công cụ hỗ trợ lập trình rất nhiều Eclipse, Vim, Emacs v v
Đây là giải pháp về phần cứng mà hay được sử dụng hiện nay Tận dụng
đặc tính của FPGA là linh hoạt và tốc độ xử lý nhanh (cứng hoá các giải
thuật) Ta có thể kết nối FPGA với các CCD sensor để điều khiển và nhận cácframe hình thông qua bus dữ liệu tốc độ cao
Ví dụ ta có thể tham khảo mô hình của CCD Sensor MT9T001 củaMicron như sau:
Trang 8Hình 1.5 CCD Sensor MT9T001 của hãng Micron
Ta có thể thao tác trực tiếp vào các thanh ghi điều khiển của MT9T001thông qua bus TWI, và lấy các frame hình qua bus data 10bit FPGA có tốc
độ nhanh sẽ làm nhiệm vụ điều khiển MT9T001 và lấy dữ liệu liên tục từ databus sau đó đưa vào bộ nhớ tạm để xử lý
1.2.5 DSP (Digital signal processing)
Bộ xử lý tín hiệu số DSP được giới thiệu đầu tiên vào những năm 1978,
1979 bởi Intel, Bell
Các bộ xử lý DSP có những đặc tính nổi bật như sau:
- Thích hợp cho các quá trình cần xử lý theo thời gian thực
- Hiệu năng được tối ưu với dữ liệu dạng luồng
- Chương trình và dữ liệu được bố chí riêng biệt (kiến trúc Harvard)
- Tích hợp các chỉ thị lệnh đặc biệt SIMD (Single Instruction, Multiple Data)
- Không hỗ trợ đa nhiệm
- Tương tác trực tiếp với bộ nhớ của thiết bị
Trang 9- Tích hợp sẵn ADC và DAC
Hình 1.6 một board xử lý ảnh sử dụng DSP
DSP ngày nay đã được tích hợp nhiều thành phần khác nhau, làm tăng khả năng xử lý linh hoạt và tốc độ xử lý Đặc biệt các DSP rất thích hợp cho những nhu cầu cần tính toán nhanh, xử lý số thực Đặc biệt một số còn có sẵn những chỉ thị lệnh giúp cho việc tính toán ma trận, tích chập hay thậm chí cácphép biến đổi DCT trong quá trình nén ảnh Với những ưu điểm đó DSP được dùng trong nhiều thiết bị xử lý ảnh chuyên nghiệp
Trang 10Chương 2: CƠ SỞ VỀ HỆ THỐNG BÁM ẢNH TỰ ĐỘNG
TỔNG QUAN:
Phát hiện và phân loại các đối tượng di động là một lĩnh vực quan trọng trong nghiên cứu thị giác máy tính Lĩnh vực này rất quan trọng do thế giới quan sát được của chúng ta là động và ta liên tiếp bắt gặp những cảnh video chứa đựng một số lượng lớn các đối tượng di động Để phân tách, phát hiện
và bám những đối tượng này từ một chuỗi các ảnh video là một thách thức quan trọng nhất mà các chuyên gia thị giác máy tính phải đối mặt Trong chương này chung ta sẽ trình bày vấn đề và các giải pháp có thể của mỗi nhiệm vụ con trong nhiệm vụ phân tích cảnh động Các hệ thống này có ứng dụng trong các lĩnh vực giám sát người, hệ thống bảo vệ giám sát giao thông, thị giác công nghiệp, giám sát phòng ngự,…
YÊU CẦU :
Bước đầu tiên để giải bài toán phát hiện và bám đối tượng di động là phân
tách nền (background) và vật (foreground) bằng cách trừ nền từ mỗi khung
ảnh của chuỗi video Sự sai khác thu được chỉ ra các đối tượng di động,… người di động hoặc ôto di động được gọi là vật Tuy nhiên, sự phức tạp trong việc tách các vật di động trong cảnh động sẽ tăng theo sự xuất hiện của các chuyển động sinh ra bởi các hiện tượng khác Các hiện tượng đó có thể là sự thay đổi chiếu sáng, sự thay đổi mầu do tự cân bằng trắng (hoặc hiệu chỉnh mầu) trong camera mầu, sự thay đổi giá trị pixel do rung rinh hoặc các hiện tượng khác, từ đó sinh ra các chuyển động giả trong cảnh động Các chuyển động cũng còn do chuyển động của bóng, cây và nhiều thứ khác trong cảnh cần được xem xét và phát hiện đó là các chuyển động giả Trong diễn dải ở trên, chúng ta cần mô hình nền sao cho chỉ những vật di động cần quan tâm được phát hiện và bám
MÔ HÌNH NỀN THÍCH NGHI:
Những vấn đề chính để hiểu mô hình nền là:
- Tại sao mô hình nền là cần thiết
- Các phương pháp cũ của mô hình nền là gì và
- Các chiến lược mới dựa vào một số khái niệm được đưa ra bởi một vài nhà nghiên cứu gần đây nhất
Chúng ta hiểu nền là phần tĩnh trong cảnh không thay đổi theo thời gian Chỉ có những đối tượng di động thay đổi vị trí của chúng trong cảnh Tuy nhiên, có một vài yếu tố tạo ra sự thay đổi trong nền Nó thực sự quan trọng
Trang 11do trong khi thực hiện giám sát cảnh liên tục, chúng ta nên mô hình nền này
là liên tục
Mô hình nền là cần thiết vì những lý do sau:
1.Có khả năng chiếu sáng trong cảnh ngoài trời thay đổi thường xuyên do mây, mưa, sương khói…
2.Các hiện tượng tự nhiên như dông gió cũng sinh ra sự thay đổi trong nền
do sự di động của cành cây, bụi cây…
3.Thậm chí trong một ngày bình thường, toàn bộ sự chiếu sáng cũng thay đổi từ bình minh đến hoang hôn khi mà độ chiếu sáng của mặt trời thay đổi liên tục
4.Sự thay đổi quan sát được từ các tia phản chiếu và ánh sáng của mặt trời
do có sự thay đổi góc chiếu sáng của mặt trời
5.Ánh sáng nhân tạo như đèn đường cũng tạo ra sự thay đổi nền
6.Có những đối tượng di động khác, bao gồm bóng, làm mờ trường thị giác
và sinh ra nhiễu loạn và thay đổi nền
Mỗi yếu tố trên sinh ra sự thay đổi nền, do vậy nó không còn là một thực thể tĩnh Mô hình nền thực sự là một thành phần thiết yếu trong phân tích cảnh động Phương pháp mô hình nền thất bại nếu thuật toán không mô hình nền là liên tục, do nền phải trải qua sự thay đổi liên tục sinh ra bởi các yếu tố
kể trên Mô hình nền không thích nghi và liên tục thì các lỗi nền sẽ được tích lũy liên tục Khi đó phát hiện và bám đối tượng di động có thể gặp sai lầm
3.1 Chiến lược mô hình hóa nền cơ bản
Trong trường hợp cảnh thay đổi liên tục, mỗi pixel có thể có chuyển động không đổi Điều này có nghĩa là giá trị độ sáng của một pixel nhất định có sự thay đổi là không đổi trong khi môi trường thay đổi Các hiện tượng quan tâmkhác xuất hiện khá thường xuyên là, một pixel thuộc về lớp lá cây ở một khung ảnh nhất định và pixel đó lại thuộc lớp khác (người chẳng hạn) ở khung ảnh tiếp theo Do đó mỗi biến pixel nên được mô hình là thay đổi thống kê Sự ước lượng liên tục mô hình thống kê này là triết lý chính của môhình hóa nền
Trong trường hợp có rất ít hoặc không có đối tượng di động trong nền, chúng ta có thể lấy trung bình đơn giản của các khung ảnh nền để tạo một nềntĩnh gần đúng Phương pháp mô hình hóa nền đơn giản làm việc khi chúng ta lấy một số lớn các khung ảnh nền không có bất kỳ đối tượng di động trong cảnh Tuy nhiên, trong hầu hết trường hợp thực tế có một lượng đáng kế các đối tượng di động Điều này đòi hỏi phương pháp mô hình hóa nền bền vững
Trang 123.2 Một phương pháp mô hình hóa nền bền vững
Một pixel trong một cảnh có thể được hiểu là thuộc về một trong nhiều lớp mẫu như lá cây, cỏ … Mỗi lớp có một phân bố xác suất riêng Mỗi lớp mẫu riêng sẽ được mô hình hóa bằng một histogram giá trị cường độ riêng,
histogram này quy định một đo lường phân bố của nó Khi pixel thuộc về chỉ một lớp đơn khối thì phân bố các giá trị lý tưởng nên là compact, phân bố giống gauss quanh một vài điểm trung bình
Tuy nhiên, khi một pixel có trạng thái chuyển động không đổi thì một pixelnhất định trong cảnh có thể được xem xét là một tổ hợp của nhiều phân bố gauss và chỉ một gauss không đủ để mô hình giá trị pixel
Trong thực tế, nhiều đối tượng có thể xuất hiện trong trường nhìn của pixelnhất định do điều kiện chiếu sáng thay đổi Do vậy, để mô hình một pixel thường phải dùng phân bố gauss thích nghi Ta sử dụng một phân bố gauss trộn thích nghi để xấp xỉ quá trình này
Bây giờ ta hãy xem xét quá khứ của một pixel theo thời gian, ở đây về bản chất là một thang thời gian của các giá trị xám (hoặc là vector đối với ảnh
mầu) Tại điểm thời gian t, quá khứ của một pixel nhất định {X 1 , X 2 , …, X t-1} ,
được lấy bằng tổ hợp trọng số của một số có phân bố gauss (K) như phương trình dưới Giá trị K lớn hơn sẽ cho xấp xỉ tốt hơn.
K i
t t t i t
ở đó i , t là trọng số được ước lượng ở khung ảnh thứ t của phân bố gauss thứ
i, i(x,t, ,t, ,t)có giá trị trung bình i, tvà phương sai i , t biểu diễn lớp
mẫu thứ i Phân bố gauss của lớp i là:
, , 1 , ,
, ,
,
,
) 2 (
) (
) (
2
1 exp ) , ,
(
t d
t t t
T t t t
t
t
i
x x
I
t t
Giá trị pixel mới được biểu diễn bởi K thành phần chính trong mô hình trộn
và giá trị này thường để cập nhật mô hình Khi giá trị cường độ của một pixel rơi vào trong một khoảng định trước của phân bố, ta nói rằng pixel phù hợp
với phân bố Nếu K phân bố không phù hợp với giá trị hiện tại thì phân bố xác
Trang 13suất kém nhất được thay thế bằng phân bố mới có giá trị hiện là giá trị trung bình.
Trọng số tiền nghiệm i,k,t 1 của K phân bố ở thời điểm t+1được hiệu
chỉnh như sau:
t t
k i t
)
2 2
bố mới
Một ưu điểm quan trọng nhất của mô hình nền này là khi một pixel trong vật được cho phép trở thành một phần của nền, nó không làm hỏng mô hình nền hiện hành
GẮN NHÃN THÀNH PHẦN LIÊN KẾT
Khi ta lấy một tập các pixel vật trong mỗi khung, sau khi mô hình hóa nền và trừ nền thì quan trọng là phải phân ngưỡng chúng để đạt được một tập các điểm nhị phân Các pixel vật nhị phân sẽ được phân đoạn thành các vùng bởi
Trang 14thuật toán gắn nhãn thành phần liên kết, tại đây sẽ thu được một tập các đốm
(blob) tương ứng với mỗi đối tượng di động Mục tiêu của gắn nhãn thành
phân liên kết là để xác định tất cả các tập thành phần được liên kết với nhau trong ảnh và quy cho một nhãn riêng với mỗi pixel trong thành phần liên kết giống nhau
Ảnh nhị phân được quét từ trái qua phải, pixel đối tượng chưa gắn nhãn
được gán một nhãn gọi là X và mỗi pixel đối tượng lân cận của nó được gán
nhãn giống nhau cho tới khi tất cả các pixel đối tượng trong ảnh được gắn nhãn Như vậy thuật toán đệ quy có thể tính toán hiệu quả trên máy lưới song song để gắn nhãn thành phần liên kết Một chiến lược xen kẽ của việc gắn nhãn thành phần liên kết có thể được định nghĩa trong 2 phần Phần đầu, mỗi pixel đối tượng được gán một nhãn theo tiêu chuẩn sau:
(a) Nếu cả lân cận trên P(i-1,j) và trái P(i,j-1) của pixel đối tượng P(i,j) trong lân cận liên kết 4 có nhãn giống nhau X, thì gán nhãn X cho P(i,j) (b) Nếu hoặc là lân cận trên P(i-1,j) hoặc là trái P(i,j-1) của pixel đối tượng
P(i,j) trong lân cận liên kết 4 có nhãn X, thì gán nhãn X cho P(i,j).
(c) Nếu lân cân trên P(i-1,j) có nhãn X và lân cận trái P(i,j-1) của pixel đối tượng P(i,j) trong liên kết 4 có nhãn khác làY (X≠Y) thì gán nhãn X cho
P(i,j) Nhập X và Y vào một bảng tương đương gọi là E.
(d) Nếu cả lân cận trên P(i-1,j) và trái P(i,j-1) của pixel đối tượng P(i,j)
trong lân cận liên kết 4 không là pixel đối tượng (nền) thì gán nhãn mới
Z cho P(i,j) Nhập Z vào bảng tương đương E.
Thường ta gán nhãn là một số tự nhiên cho mỗi thành phần Bản tương
đương E chứa đựng một tập các nhãn tượng đương.
Phần hai, các nhãn tương đương được hợp nhất để tạo một nhãn duy nhất
cho mỗi thành phần liên kết trong ảnh Nếu X và Y là hai nhãn tương đương thì gán lại Y bởi X nếu X<Y và ngược lại Kết quả là mỗi thành phân liên kết
được gán một nhãn duy nhất
Do đó thuật toán gắn nhãn thành phần liên kết ở trên là thuật toán 2 phần Trong phần đầu các pixel đối tượng thuộc về thành phân liên kết giống nhau được gán nhãn khác nhau và được ghi là tương đương trong bảng tương
đương E Trong phần 2 các nhãn tượng đương được hợp nhất do vậy mỗi
thành phần liên kết được gán một nhãn duy nhất
PHÁT HIỆN BÓNG
Phát hiện và khử bóng có lẽ là một nhiệm vụ quan trong nhất trong giám sát video [4]-[8] Nếu ta có thể loại bỏ các bóng thì nhiệm vụ nhận dạng đối tượng và lý giải cảnh trở nên dễ dàng Chi tiết quan trọng nhất của bóng là rằng các pixel tạo thành đối tượng di động và bóng của nó được xác định đồng thời từ việc trừ ảnh Các bóng và đối tượng di động sinh ra bóng thườngđược định vị liên kề nhau Như vậy chúng có thể được bao chưa trong cùng
Trang 15một đốm Cũng thường thì các bóng của hai đối tượng di động được hợp thành một đốm, từ đó sinh ra kết quả phát hiện đối tượng không đúng.
Vì vậy ta phải hiểu một số chi tiết của bóng để có thể phân biệt được các bóng với các đối tượng di động
Bóng có các kiểu khác nhau Đôi khi một phần của đối tượng là đen do
phần này không được chiếu sáng Những bóng này được gọi là “tự bóng” Ngược lại bóng được sinh ra bởi một vật trên một bề mặt được gọi là “bóng
đổ” Khi vật, như hình người di chuyển thì bóng cũng di chuyển Có 3 chi tiết
khác nhau của bóng:
1.Bóng rất khác biệt trong không gian màu HSV, tương tự như nhận thức của người Điều này ẩn ý rằng bóng được tạo ra bởi đối tượng thì thay đổi H, S, và V nhiều đáng kể
2.Hơn nữa các điểm bóng đổ làm giảm cường độ của pixel nền, bóng làm tối nền
3.Quan sát thấy rằng bóng làm giảm sự bão hòa của điểm, co nghĩa rằng hiệu giữa giá trị bão hòa của pixel nền và giá trị bão hòa của pixel bóng
là một số dương
Giải thuật khử bóng sử dụng cả thông tin cường độ và mầu sẽ thu được kết quả tốt [5]
CÁC NGUYÊN LÝ CỦA BÁM ĐỐI TƯỢNG
Khi mô hình hóa nền thích hợp và phát hiện và loại bỏ bóng đã được thực hiện thì nhiệm vụ tiếp theo là bám đối tượng chìm trong nhiễu loạn Nhiều hướng tiếp cận đã được công bố dựa trên các thuật toán bám khác nhau [10]-[12] Dưới đây kể đến 8 yếu tố khi thiết kế cần được xem xét và kết hợp chặt chẽ trong hệ thống bám mục tiêu
Nền tĩnh: Khi cảnh chứa nhiều đối tượng, nền không chuyển động trong
khi tất cả hoặc một phần của các đối tượng trong vật (foreground) có thể
chuyển động.
1.Kích thước mục tiêu thay đổi: Kích thước mục tiêu giảm khi mục tiêu
di chuyển ra xa camera Do đó kỹ thuật xác định tỉ lệ phải được kết hợp trong khi xử lý bám
2.Mất mục tiêu tạm thời: Trong suốt pha bám mục tiêu có thể bị mất tạm
thời khi nó đi vào đằng sau các đối tượng khác Đây còn gọi là sự mất hút Trong trường hợp đó hệ thống sẽ khôi phục mục tiêu một cách tự động
3.Mô hình mục tiêu: Mô hình mục tiêu cần phải được kết hợp Ví dụ trong
trường hợp bám người, thì hình dạng của người có thể được mô hình hóa như sự kết hợp của một vài hình ellip, ở đó mỗi ellip biểu diễn một phần
Trang 16thân thể riêng như đầu, thân, tay, chân, v.v… Mầu, hình dạng, cường độ,
và những thuộc tính khác của đối tượng có thể thay đổi trong khi đối tượng chuyển động và dù thể hệ bám nên có khả năng bám chính xác
4.Phát hiện mục tiêu tự động: Hệ bám nên có khả năng tự động phát hiện
tất cả các mục tiêu mới và bắt đầu bám chúng
5.Thời gian thực: Thuật toán bám nên được tính toán đơn giản và tối ưu
sao cho quá trình bám có thể thực hiện trong thời gian thực
6.Quỹ đạo mục tiêu: Mục tiêu có thể hoặc không theo một quỹ đạo đặc
biệt Có thể có sự thay đổi đột ngột trong hướng của mục tiêu
7.Tốc độ mục tiêu: Tốc độ của mục tiêu có thể thay đổi đột ngột; nó có thể
là hằng số, tăng hay giảm đi
MÔ HÌNH HỆ BÁM
Hệ bám có thể được mô hình hóa như một máy có 3 trạng thái liên tiếp, máy này có 3 trạng thái là: khóa, bám và khôi phục Các chức năng của 3 trạng thái như sau:
1.Trạng thái khóa: Khởi đầu hệ thống là trạng thái khóa, khi camera đang
trong mode tìm kiếm để tìm kiếm mục tiêu Trong suốt trạng thái này quátrình xử lý tiến hành trên toàn bộ khung ảnh Hệ thống sẽ phân đoạn khung ảnh thu được từ camera thành một số các đối tượng di động Lịch
sử của các đối tượng này được trích chọn từ việc kiểm tra quỹ đạo sau đócủa các đối tượng, và sự chứng thực đối tượng di động là được tiến hành trong mode tự động Khi một mục tiêu đã được chứng thực thì sự điều khiển hệ thống được chuyển tới trạng thái bám
2.Trạng thái bám: Trạng thái này nên sử dụng kỹ thuật tính toán ít tốn
kém Vị trí hiện tại được trích chọn từ trạng thái khóa được sử dụng để
xử lý Vị trí tiếp theo của mục tiêu được nhận dạng và thông tin vị trí đó được lưu trữ trong cơ sử dữ liệu lích sử Nếu mục tiêu không tồn tại trongvùng cửa sổ dự đoán thì điều khiển hệ thống được chuyển tới trạng thái khôi phục
3.Trạng thái khôi phục: Hoàn toàn bình thường khi đối tượng di động
đang được quan tâm có thể mất tạm thời hay mãi mãi Trong trạng thái này nếu mất mục tiêu thì hệ thống sẽ cố gắng phục hồi mục tiêu từ ảnh phân giải thấp Nếu mục tiêu được khôi phục trong một vài khung thì hệ thống sẽ chuyển điều khiển tới trạng thái bám, nếu không nó vân duy trì trạng thái khôi phục cho tới khi hết thời gian định trước Sau khi thời gian này trôi qua điều khiển sẽ chuyển tới trạng thái khóa
Trang 17Chương 3: TÌM HIỂU THƯ VIỆN MÃ NGUỒN MỞ
OPENCV TRÊN NỀN VISUAL C++
1.3 Thư viện mã nguồn mở OpenCV của Intel
OpenCV (Open Computer Vision library) do Intel phát triển, được giới thiệu năm 1999 và hoàn thiện thành phiên bản 1.0 năm 2006 Thư viện
OpenCV - gồm khoảng 500 hàm – được viết bằng ngôn ngữ lập trình C và tương thích với các hệ điều hành Windows, Linux, Mac OS đóng vai trò xáclập chuẩn giao tiếp, dữ liệu, thuật toán cho lĩnh vực CV và tạo điều kiện cho mọi người tham gia nghiên cứu và phát triển ứng dụng
Hình 1.7 Tổ chức thư viện OpenCV
Trước OpenCV không có một công cụ chuẩn nào cho lĩnh vực xử lý ảnh.Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất
và không ổn định Các bộ công cụ thương mại như Matlab, Simulink, Halcon,v.v lại có giá cao chỉ thích hợp cho các công ty phát triển các ứng dụng lớn.Ngoài ra còn có các giải pháp kèm theo thiết bị phần cứng mà phần lớn là mãđóng và được thiết kế riêng cho từng thiết bị, rất khó khăn cho việc mở rộngứng dụng
Trang 18OpenCV là công cụ hữu ích cho những người bước đầu làm quen với xử
lý ảnh số vì các ưu điểm sau:
- OpenCV là công cụ chuyên dụng: Được Intel phát triển theo hướng tối
ưu hóa cho các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lý,thư viện tạo giao diện, truy xuất thiết bị phần cứng được tích hợp sẵn.OpenCV thích hợp để phát triển nhanh ứng dụng
- OpenCV là công cụ mã nguồn mở: Không chỉ là công cụ miễn phí (vớiBSD license), việc được xây dựng trên mã nguồn mở giúp OpenCV trở thànhcông cụ thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi và mởrộng các mô hình, thuật toán
- OpenCV đã được sử dụng rộng rãi: Từ năm 1999 đến nay, OpenCV đãthu hút được một lượng lớn người dùng, trong đó có các công ty lớn nhưMicrosoft, IBM, Sony, Siemens, Google và các nhóm nghiên cứu ởStandford, MIT, CMU, Cambridge Nhiều forum hỗ trợ và cộng đồng ngườidùng đã được thành lập, tạo nên kênh thông tin rộng lớn hữu ích cho việctham khảo tra cứu
Hình 1.8 Nhận dạng khuôn mặt với Haar classifier