Trên cơ sở thu đƣợc, chúng ta phát triển một mô hình miêu tả trong hình 8 bằng cách tách độ sai khác màu và độ sáng. Đặc trƣng của mô hình này là các giá trị điểm ảnh nền nằm dọc theo trục chính của từ mã cùng với giới hạn giá trị cao thấp của độ sáng, từ đó độ sai khác màu có mỗi quan hệ mật thiết với giá trị độ sáng. Khi chúng ta có một điểm ảnh nhận đƣợc xt=(R,B,G) và một từ mã ci với vi=(Ri,Gi,Bi) ta xác định đƣợc:
Độ sai khác màu δ có thể đƣợc tính bởi công thức:
Phép đo độ sai khác màu có thể đƣợc hiểu nhƣ là phiên bản có trọng số của độ sáng trong không gian màu đƣợc chuẩn hóa. Điều này tƣơng đƣơng với thay đổi tỉ lệ theo quan điểm hình học(việc chuẩn hóa) véc-tơ từ mã với độ sáng của điểm ảnh lối vào. Bằng cách này, chúng ta đã đƣa độ sáng vào trong phép độ sai khác màu và loại bỏ sự không ổn định của các màu đƣợc chuẩn hóa.
Để cho phép sự thay đổi độ sáng khi tách nền, chúng ta lƣu trữ 2 giá trị thống kê Imin, Imax là độ sáng nhỏ nhất và lớn nhất của tất cả các điểm đƣợc biểu diễn bởi từ mã này. Giá trị độ sáng có thể thay đổi trong khoảng giới hạn mức tối và mức sáng. Giá trị đó là [Ilow,Ihi] đƣợc định nghĩa nhƣ sau:
Trong đó, α<1 và β>1. Thƣờng thì α nằm trong khoảng 0,4 tới 0,7; β trong khoảng 1,1 đến 1,5. Chính khoảng [Ilow,Ihi] tạo nên khoảng ổn định trong suốt quá trình cập nhật từ mã.
Hàm logic về độ sáng đƣợc định nghĩa nhƣ sau:
1.4.2 Phát hiện vật thể từ nền
Việc tách vật thể với mô hình nền tƣơng đối đơn giản sau quá trình khởi tạo từ điển. Không giống nhƣ MOG [2] hay các mô hình không tham số [1] cần phải tính các xác suất thì thuật toán này việc đó là không cần thiết. Thay vì đi ƣớc lƣợng xác suất dựa trên các mẫu gần nhất trong quá trình đào tạo thì chúng ta chỉ đơn giản là đi tính khoảng cách từ mẫu tới vùng giá trị trung bình gần nhất. Việc này có thể đƣợc tiến hành nhanh chóng và hiệu quả. Giả sử quá trình tách nền một điểm ảnh tới x là BGS(x). Khi đó ta định nghĩa BGS(x) nhƣ sau:
1. ; trong đó R, G, B là 3 thành phần màu của x. 2. Tìm từ mã cm trong M phù hợp với x dựa trên 2 điều kiện:
i. colodist(x,cm) < ε2
ii. brightness(I,<Imin,Imax>) đúng
Cập nhật từ mã tìm đƣợc giống nhƣ bƣớc xây dựng từ điển.
3.
Trong đó, hằng số ε2 là ngƣỡng phát hiện. Điểm ảnh đƣợc coi nhƣ là thuộc vật thể nếu không tìm thấy từ khóa trong từ điển khớp với nó và ngƣợc lại là nền.
1.4.3 So sánh mô hình sử dụng từ điển với các mô hình khác
Mô hình tách nền sử dụng từ điển có một khác biệt so với mô hình hỗ tạp các phân bố Gauss thích nghi MOG [2] và mô hình không tham số sử dụng ƣớc lƣợng mật độ xác suất hàm lõi [1] ở một số điểm nhƣ sau:
Khác với MOG, chúng ta không giả thiết rằng nền là các quá trình Gauss đa-mốt. Nếu giả thiết này đúng, nếu có thể, thì MOG sẽ nhận các tham số chính xác. Nhƣng điều này không phải lúc nào cũng đúng vì phân bố nền có thể rất khác nhau.
Cũng khác so với mô hình không tham số, chúng ta không lƣu trữ các mẫu gốc trong suốt quá trình làm việc với mô hình nền. Chính do số lƣợng mẫu lớn nên chúng ta không thể lƣu đƣợc toàn bộ trong một thời gian dài. Trong khi đó thì mô hình sử dụng từ điển lại khá đơn giản, nhỏ gọn có thể sử dụng trong thời gian dài với không gian nhớ giới hạn.
Mô hình sử dụng từ điển làm việc tốt với tình huống đa-nền và cũng không giới hạn về số nền. Nó có thể mô hình các cây có chuyển động trong một thời gian dài hơn so với các mẫu gốc của mô hình không tham số.
Việc lọc giá trị cho phép xuất hiện các vật thể chuyển động ngay trong quá trình đào tạo.
Mô hình chúng ta đang đề cập không cần ƣớc lƣợng xác suất, là phép toán yêu cầu tính toán khác phức tạp, mà thay vào đó là việc tính khoảng cách với các vùng giá trị trung bình. Chính điều này giúp cho thuật toán thực hiện nhanh hơn.
MOG sử dụng các biến RGB gốc và không căn cứ vào độ sáng và màu. MOG không mô hình hóa phƣơng sai, thƣờng lớn và là nguyên nhân gây ra sai khác về độ sáng. Điều này chỉ có ích cho các trƣờng hợp có độ sáng xác định. Mô hình không tham số thì sử dụng các màu đƣợc chuẩn hóa và độ sáng – hai giá trị này chƣa chắc đã liên quan tới nhau. Để đối phó với vấn đề độ sáng thay đổi mô hình này sẽ tính độ sáng đồng thời với độ sai khác màu dựa trên giá trị RGB.
Đặc điểm Mô hình MOG Mô hình không tham số Mô hình từ điển
Biểu diễn mô hình Hồn hợp các phân bố Gauss Mật độ hàm lõi Từ điển Ƣớc lƣợng mô hình Ƣớc lƣợng mật độ xác suất Ƣớc lƣợng mật độ xác suất Khoảng cách Tham số mô hình Có Không Không
Không gian màu
Chỉ làm việc với RGB
Màu chuẩn hóa ( độ sáng r, g, b ) RBG hoặc mức xám Dung lƣợng bộ nhớ
Tùy thuộc vào K là số phân bố Gauss đƣợc sử dụng
Mô hình theo thời gian ngắn (N mẫu)
Mô hình theo thời gian dài (N mẫu) Bộ nhớ giới hạn Bộ nhớ sử dụng Nhỏ Lớn Gọn Tốc độ xử lý Chậm Chậm Nhanh Duy trì mô hình Cập nhật liên tục K phân bố Gauss
Mô hình theo thời gian ngắn và dài
Mô hình phân lớp và phát hiện sử dụng mô hình đệm
1.4.4 Mô hình nền sử dụng từ điển phân lớp
Việc sử dụng mô hình hóa phân lớp và phát hiện cho phép phát hiện các vật thể trên nền mới trong pha phát hiện chuyển động – sau khi đã có đƣợc mô hình nền của quá trình khởi tạo. Nếu không, thì rất dễ các vật thể sẽ bị trộn với các vật thể đứng yên khác nền xác định từ trƣớc đó. Sau khi thực hiện xong quá trình khởi tạo từ điển thì chúng ta tiến hành thêm một bƣớc là cập nhật mô hình. Việc này thực hiện đƣợc dựa trên một mô hình đệm H với 3 tham số TH, Tadd, Tdelete. Chu kỳ TH cho phép lọc các từ mã ứng với các điểm ảnh tới đƣợc lƣu trong từ điển H, giống nhƣ mô hình nền xây dựng ở phần trên. Tham số Tadd là khoảng thời gian lặp lại để từ mã có thể đƣợc thêm vào mô hình nền nhƣ là nền xét trong thời gian ngắn. Giả sử rằng mô hình đã thu đƣợc trong quá trình đào tạo là mô hình vĩnh cửu. Nếu từ mã không đƣợc lặp lại trong khoảng thời gian Tdelete thì sẽ đƣợc loại bỏ khỏi từ điển. Từ đó, ta có thể chia điểm ảnh tới có thể thuộc 1 trong 4 loại sau: (1) nền tìm thấy trong nền vĩnh cửu, (2) nền trong mô hình nền xét thời gian ngắn, (3) vật thể tìm thấy trong mô hình đệm và (4) vật thể không thuộc các nhóm trên. Chính khả năng thích nghi này cho phép chúng ta bắt đƣợc các thay đổi của môi trƣờng trong suốt quá trình sử dụng từ điển.
Thuật toán cho mô hình nền sử dụng từ điển phân lớp đƣợc mô tả cụ thể nhƣ sau:
1. Sau quá trình đào tạo, mô hình nền M đƣợc xác định, chúng ta tạo một mô hình đệm là mô hình H.
2. Với mỗi điểm ảnh tới x, tìm từ mã phù hợp trong M: a. Nếu thấy thì cập nhật từ mã đó.
b. Nếu không thấy thì tìm từ mã phù hợp trong H. i. Nếu thấy thì cập nhật từ mã đó.
ii. Nếu không thì tạo từ mã mới là h và thêm vào H. 3. Tiến hành lọc mô hình đệm H trên cơ sở tham số TH.
H = H – {hi | hi ϵ H, của hi lớn hơn TH} 4. Chuyển các từ mã trong H có đủ thời gian tồn tại sang M
M = M + {hi | hi ϵ H, hi tồn tại lâu hơn Tadd}
5. Xóa các từ mã trong M không đƣợc sử dụng trong thời gian dài M = M – {ci | ci ϵ M, ci không đƣợc sử dụng trong Tdelete} 6. Lặp lại bƣớc (2)
1.5 Mô hình từ điển hai lớp thích nghi thời gian thực
Mô hình đề cập của Kim[4] là mô hình dựa trên cơ sở không gian màu. Mô hình sử dụng từ điển về cơ bản hoạt động rất nhanh và hiệu quả đối với các vấn đề liên quan tới bộ nhớ. Để cải tiến mô hình sử dụng từ điển cơ bản thì Kim cũng đề xuất mô hình phân lớp và cập nhật từ điển thích nghi trong một cấu trúc mới đƣợc gọi là từ điển phân lớp thích nghi. Từ điển này có thể mô hình nền mới trong suốt quá trình tách vật thể và có thể phát hiện tốt với những thay đổi về cƣờng độ sáng. Tuy vậy, mô hình này không thể mô hình các thay đổi cƣờng độ sáng chậm diễn ra trong một thời gian dài.
1.5.1 Mô hình từ điển cơ bản
Mô hình từ điển cơ bản dựa trên khái niệm điểm ảnh. Chính vì vậy mà mỗi từ điển sẽ tồn tại cho mỗi một điểm ảnh; hay nói cách khác, mỗi điểm ảnh có một từ điển riêng mô tả đặc tính của nó. Mỗi từ điển có thể có một hay nhiều từ mã và số lƣợng từ mã là khác nhau. Ta có thể hiểu mỗi từ mã là một nhóm các mẫu đƣợc tạo ra từ một phần của nền. Ở đây, khác với mô hình của Kim thì ta sử dụng mức xám của điểm ảnh để thiết lập từ điển.
Giả sử chuỗi đào tạo gồm N điểm ảnh mức xám là X={I1,I2,…IN} và từ mã tƣơng ứng của điểm ảnh đang xét gồm L từ mã là C={c1,c2,…,cL}. Với mỗi từ mã đƣợc biểu diễn gồm 6 thành phần ci=(Imin, Imax, fi, i, pi, qi). Ở đây ta dễ dàng nhận thấy sự thiếu vắng của véc-tơ RiBiGi là thành phần màu trung bình của từ mã nhƣ trong mô hình của Kim đề cập. Điều đó có thể đƣợc lý giải là do thuật toán này xử lý trên miền giá trị độ xám thay vì trong không gian màu RGB. Imin, Imax cũng đƣợc định nghĩa lại là giá trị độ xám cực tiểu và cực đại mà từ mã biểu diễn. fi là tần suất mà từ mã đƣợc sử dụng trong chuỗi đào tạo. Khoảng thời gian dài nhất mà từ mã không xảy ra trong chuỗi đào tạo đƣợc kí hiệu là . pi và qi là thời điểm lần đầu tiên và cuối cùng mà từ mã đƣợc truy nhập.
Thuật toán khởi tạo từ điển đƣợc mô tả nhƣ sau:
1. L = {rỗng}; C={rỗng} 2. Với t=1 tới N
i. Tìm từ mã cm trong C phù hợp với It trong khoảng [Imin, Imax] ii. Nếu C rỗng hoặc không tìm thấy thì L=L+1. Tạo mới từ mã cL với
cL = (max{0,It-α},min{255,It+α}, 1,max{m,t-1},t,t) iii. Nếu tìm thấy thì cập nhật từ mã cm nhƣ sau:
cm =
3. Với mỗi từ mã ci với i=1,..L cập nhật i = max{i , N-qi+pi-1}
Trong đó, α là tham số thực dƣơng và giá trị nên chọn cỡ 10. Trong thuật toán này, nếu fi nhỏ thì ci sẽ biểu diễn mẫu trong một vùng nhỏ và dải giá trị độ sáng [Imin, Imax] sẽ đƣợc thay đổi nhanh. Nhƣng khi fi lớn thì ci sẽ biểu diễn một vùng lớn gồm rất nhiều mẫu với dải độ sáng đƣợc cập nhật chậm hơn. Trong thuật toán của Kim thì Imin, Imax đƣợc sử dụng với toán tử so sánh khác với ở đây- đƣợc sử dụng nhƣ là lấy trung bình hóa với các giá trị cập nhật. Với các thay đổi độ sáng chậm diễn ra trong khoảng thời gian dài có thể đƣợc mô hình hóa nhƣ là nền.
1.5.2 Thuật toán tách nền
Thuật toán tách nền ở đây cũng khá giống so với đề xuất của Kim, chỉ khác ở điều kiện so sánh để tìm ra từ khóa phù hợp.
a. Tìm từ mã cm trong M mà It trong khoảng [Imin, Imax] b. Nếu thấy cm thì cập nhật từ mã
cm =
và khi đó It là nền.
c. Nếu không thì It là thuộc vật thể.
Trong đó, β là tham số thực dƣơng trong khoảng từ 0,9 đến 1.
So sánh với thuật toán của Kim, ta thấy rằng ở đây mỗi từ mã gồm 4 giá trị nguyên (fi,i,pi,qi) và 2 giá trị thực (Imin, Imax) – không có 3 giá trị thực lƣu thành phần RGB của từ mã. Nhƣ vậy, nếu mã hóa số nguyên và thực đều bằng 4 byte thì kích thƣớc của một từ mã trong phƣơng pháp này là 24 byte trong khi phƣơng pháp của Kim là 36 byte. Về tốc độ thuật toán thì thuật toán này cũng thực hiện nhanh hơn do ít các phép toán với số có dấu phẩy động, căn thức, và số học hơn. Phƣơng pháp Chế độ màu Tốc độ xử lý (khung/giây) Kích thƣớc từ mã Phƣơng pháp phân lớp thích nghi của Kim RGB 27 36 Phƣơng pháp đƣợc đề xuất Mức xám 41 24
Kết quả thí nghiệm cho thấy rằng: hai thuật toán cho kết quả khá giống nhau với các chuỗi nền chuyển động. Tuy vậy, mô hình đƣợc sử dụng ở đây là mức xám chứ không phải RGB nhƣ Kim đề xuất. Trong khi đó, thuật toán của Kim lại cho kết quả yếu – không thể phát hiện các vật thể với sự thay đổi cƣờng độ sáng chậm trong khoảng thời gian dài.
Chƣơng 2. THƢ VIỆN CHƢƠNG TRÌNH XỬ LÝ ĐỒ HỌA OPENCV
OpenCV là một thƣ viện đồ họa máy tính mã nguồn mở. Thƣ viện đƣợc viết bằng C/C++ và có thể chạy trên nhiều nền tảng hệ điều hành nhƣ Linux, Windows, và MacOS X. Nó cũng có thể đƣợc dùng để giao tiếp với các ngôn ngữ nhƣ Python, Ruby, Matlab,… OpenCV đƣợc thiết kế để chạy trên các ứng dụng máy tính một cách hiệu quả và chủ yếu tập trung hƣớng tới các ứng dụng thời gian thực. OpenCV đƣợc việc trên dựa trên ngôn ngữ C đã đƣợc tùy biến và có thể đem lại những ƣu điểm của các bộ xử lý đa nhân. Nếu chúng ta mong muốn một sự tối ƣu hơn nữa trên cấu trúc của Intel thì có thể sử dụng thƣ viện IPP (Intel’s Integrated Performance Primitives) với các cấu trúc lệnh ở mức thấp đƣợc tùy biến với nhiều thuật toán. OpenCV sẽ tự động tham chiếu tới thƣ viện IPP khi chạy chƣơng trình nếu thƣ viện này đƣợc cài đặt. OpenCV đem lại cho chúng ta một cách đơn giản để tiếp cận với các ứng dụng liên quan tới xử lý đồ họa trực quan. Thƣ viện này chứa hơn 500 hàm có thể đƣợc sử dụng trong rất nhiều các lĩnh vực liên quan tới xử lý đồ họa nhƣ kiểm tra sản phẩm, hình ảnh y tế, an ninh, giao diện ngƣời dùng, máy ảnh hiệu chuẩn, tự động hóa...Vì lý do đồ họa máy tính và trí tuệ máy tính luôn đi liên với nhau nên OpenCV cũng chứa thƣ viện trí tuệ máy tính( Machine Learning Library - MLL) khá đầy đủ có thể là nhận dạng mẫu dựa vào tính chất thống kê, xếp nhóm, nhận dạng khuôn mặt, nhận dạng chuyển động,…
Bản quyền mã nguồn mở của OpenCV cho phép chúng ta có thể sử dụng vào các ứng dụng thƣơng mại. Chính vì thế, thƣ viện này có một công đồng ngƣời sử dụng rất lớn từ các công ty lớn nhƣ IBM, Microsoft , Intel, SONY, Siemens,… tới các trung tâm nghiên cứu nhƣ Stanford, MIT, CMU, Cambridge, INRIA,… Từ khi phát hành bản thử nghiệm vào tháng 1 năm 1999, OpenCV đã đƣợc sử dụng trong rất nhiều các ứng dụng, sản phẩm, công trình nghiên cứu.
2.1 Kiến trúc của thƣ viện
OpenCV đƣợc khái quát bởi năm thành phần chính và bốn trong số đó đƣợc thể hiện nhƣ hình dƣới đây. Thành phần CV chứa các xử lý ảnh cơ bản và các thuật toán đồ họa máy tính ở mức cao. MLL là thƣ viện trí tuệ máy tính bao gồm các công cụ về thống kê và phân nhóm. HighGUI chứa các lệnh về vào/ra máy tính và các chức năng liên quan tới lƣu trữ, đọc ảnh, video. CXCore chứa các cấu trúc cơ bản dữ liệu cơ bản.