Mô hình Cascade

Một phần của tài liệu Nhận dạng cử chỉ bàn tay ứng dụng trong điều khiển thiết bị điện gia dụng (Trang 39 - 48)

của nó đã thấp hơn max false alarm hay chƣa. Max false alarm là một giá trị đƣợc xác lập trƣớc khi tiến hành huấn luyện. False alarm (hay còn gọi là false positive) là tỉ lệ nhận dạng sai các mẫu negative. Ví dụ, nếu max false alarm = 0.5 thì trên 100 mẫu negative, nó phải nhận đúng ít nhất là 50 mẫu (50 mẫu còn lại bị phân loại nhầm thành positive). Vòng lặp xây dựng bộ phân loại mạnh sẽ kết thúc khi giá trị false alarm của bộ phân loại mạnh này thấp hơn max false alarm.

2.3.4. Mô hình Cascade Bộ phân Bộ phân lớp 1 Bộ phân lớp 2 Bộ phân lớp 3 Bộ phân lớp n

Các vùng ảnh không phải bàn tay

Tất cả các vùng ảnh Các vùng ảnh không phải cử chỉ Các vùng ảnh chứa cử chỉ bàn tay T T T T F F F F Hình 2. 12 - Mô hình Cascade

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Các bộ phân loại tốt thƣờng tốn rất nhiều thời gian để cho ra kết quả phân loại bởi vì nó phải xét rất nhiều đặc trƣng của mẫu. Tuy nhiên, trong các mẫu đƣa vào, không phải mẫu nào cũng thuộc loại khó nhận dạng, có những mẫu không phải đối tƣợng rất dễ nhận ra. Đối với những mẫu này, ta chỉ cần xét một hay vài đặc trƣng đơn giản là có thể nhận diện đƣợc mà không cần xét tất cả các đặc trƣng. Nhƣng đối với các bộ phân loại thông thƣờng thì cho dù mẫu cần nhận dạng là dễ hay khó thì thuật toán vẫn sẽ xét tất cả các đặc trƣng đã trích rút ra đƣợc trong quá trình học. Do đó, các thuật toán này tốn thời gian xử lý một cách không cần thiết. Cascade of Classifiers đƣợc xây dựng chính là nhằm rút ngắn thời gian xử lý, giảm thiểu tỉ lệ nhận dạng sai cho bộ phân loại. Cascade tree gồm nhiều tầng (stage), mỗi tầng của cây sẽ là một bộ phân loại. Một mẫu để đƣợc phân loại là đối tƣợng thì nó cần phải đi qua hết tất cả các tầng của cây. Các bộ phân loại ở tầng sau đƣợc huấn luyện bằng những mẫu negative mà bộ phân loại ở tầng trƣớc nhận dạng sai, tức là nó sẽ tập trung học từ các mẫu không phải đối tƣợng khó hơn, do đó sự kết hợp các bộ phân loại ở các tầng khác nhau sẽ giúp bộ phân loại giảm thiểu đƣợc có tỉ lệ nhận dạng sai. Với cấu trúc này, những mẫu không phải đối tƣợng dễ nhận dạng sẽ bị loại ngay từ những tầng đầu tiên, giúp đáp ứng tốt nhất đối với độ phức tạp gia tăng của các mẫu đƣa vào, đồng thời giúp rút ngắn thời gian xử lý.

Áp dụng mô hình cascade cho các bộ phân loại AdaBoost:

Cascade of Boosted Classifiers là mô hình Cascade của các bộ phân loại với mỗi bộ phân loại đƣợc xây dựng bằng AdaBoost sử dụng đặc trƣng Haar. Mô hình này đã đƣợc Viola và Jones sử dụng rất thành công trong bài toán nhận dạng mặt ngƣời (Face Detection) [3].Với tập huấn luyện gồm 4196 hình mặt ngƣời đƣợc đƣa về ảnh xám kích thƣớc 24x24 và 9500 ảnh không phải đối tƣợng không chứa khuôn mặt ngƣời, Viola và Jones đã xây dựng cấu trúc cascade gồm 38 tầng với tổng cộng 6060 đặc trƣng Haar. Thực nghiệm đã cho thấy bộ phân loại ở tầng đầu tiên sử dụng 2 đặc trƣng và loại đƣợc khoảng 50% mẫu không phải đối tƣợng không chứa khuôn mặt và có tỉ lệ nhận dạng là 100%. Bộ phân loại ở tầng thứ 2 sử dụng 10 đặc trƣng loại đƣợc 80% mẫu không phải đối tƣợng vẫn với tỉ lệ nhận dạng đúng đối tƣợng

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

100%. Hệ thống này đƣợc so sánh với hệ thống của Rowley-Baluja-Kanade[5] (sử dụng mạng nơron) và Schneiderman-Kanade (sử dụng phƣơng pháp thống kê), qua so sánh cho thấy tỉ lệ nhận dạng là ngang nhau, trong khi hệ thống của Viola và Jones chạy nhanh hơn đến 15 lần so với hệ thống của Rowley-Baluja-Kanade và nhanh hơn 600 lần hệ thống của Schneiderman-Kanade.

Bên cạnh đó, mô hình này cũng đƣợc Eng-Jon Ong và Richard Bowden áp dụng thành công trong bài toán nhận dạng bàn tay (Hand Detection)[11]. Do bàn tay có nhiều biến động hơn so với mặt ngƣời, Ong và Bowden đã sử dụng phƣơng pháp học không giám sát (unsupervised learning): tiến hành phân cụm cho tất cả các mẫu trong tập huấn luyện chứa 2504 hình bàn tay chụp ở nhiều tƣ thế khác nhau bằng thuật toán K-mediod clustering. Cấu trúc bộ nhận dạng của Ong và Bowden gồm 2 lớp: lớp ở trên là 1 cấu trúc Cascade of Boosted Classifiers để nhận dạng sơ bộ bàn tay, lớp bên dƣới là từng Cascade of Boosted Classifiers ứng với từng cụm đƣợc chia bằng K-mediod. Kết quả thu đƣợc rất khả quan, cấu trúc cascade của bộ nhận dạng ở lớp trên gồm 11 tầng với tổng cộng 634 bộ phân loại yếu đã đạt tỉ lệ nhận dạng là 99.8% trên tập thử nghiệm, còn các bộ cascade ở lớp dƣới có tỉ lệ nhận dạng trung bình là 97.4%. Bài toán phân loại cử chỉ tƣơng tự nhƣ bài toán nhận dạng tay của Ong và Bowden nhƣng phức tạp hơn. Trong bài toán của họ, một mẫu chỉ cần thỏa mãn một trong các bộ nhận dạng ứng với các cụm (cluster) đƣợc xây dựng bằng thuật toán K-mediod clustering thì đƣợc xem là bàn tay. Trong thực tế, có những mẫu vốn thuộc về cluster 1, nhƣng bộ nhận dạng cluster 1 cho kết quả nó không thuộc cluster 1, trong khi bộ nhận dạng cluster 2 lại cho rằng nó thuộc về cluster 2. Khi đó, rõ ràng cả 2 bộ nhận dạng đều cho kết quả sai nhƣng mẫu này vẫn đƣợc xem là một phân loại thành công của bộ nhận dạng bàn tay, vì mẫu đƣợc đƣa vào vẫn đƣợc đánh giá là bàn tay. Còn đối với bài toán nhận dạng cử chỉ, nếu xem các bộ nhận dạng từng cử chỉ ứng với các bộ phân loại cluster ở trên thì trƣờng hợp tƣơng tự sẽ là một phân loại thất bại (bởi vì cho kết quả phân loại sai).

Bên cạnh đó, thuật toán K-mediod cũng không áp dụng đƣợc vì bài toán phân loại cử chỉ là bài toán học giám sát (các lớp đã đƣợc qui định trƣớc). Ngoại trừ

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

những khác biệt trên, nhìn chung thì bài toán phân loại cử chỉ với bài toán nhận dạng bàn tay là giống nhau. Do đó, một mô hình cho kết quả tốt trên bài toán nhận dạng bàn tay cũng có thể cho kết quả tốt trên bài toán phân loại cử chỉ.

Một hệ thống nhận dạng cử chỉ đƣợc đƣa vào sử dụng, trƣớc hết hệ thống phải hiểu đúng các cử chỉ của con ngƣời, tức là phải nhận dạng đƣợc chính xác các cử chỉ đó. Một chƣơng trình điều khiển máy tính luôn làm sai những gì ngƣời sử dụng yêu cầu, hay một con robot luôn làm sai chỉ thị thì khó có thể đƣợc chấp nhận. Bên cạnh đó, để hệ thống có khả năng tƣơng tác tốt với ngƣời dùng thì hệ thống phải hoạt động thời gian thực, phải xử lý nhanh. Chúng ta sẽ không chấp nhận một hệ thống điều khiển máy tính mà phải sau 30s mới thực thi lệnh điều khiển.

Để đạt đƣợc những yêu cầu trên thì hệ thống phải chọn đƣợc đặc trƣng tốt biểu diễn hiệu quả thông tin đối tƣợng cần nhận dạng. Đồng thời, đặc trƣng phải đƣợc tính toán nhanh để không làm chậm công việc nhận dạng. Thêm vào đó, hệ thống phải có phƣơng pháp phân loại hiệu quả, có khả năng nhận dạng tốt các mẫu mới và trong các điều kiện khác nhau.

Với những yêu cầu nhƣ vậy thì đã có nhiều giải pháp đƣợc đƣa ra. Freeman đã sử dụng đặc trƣng HOG để nhận dạng cử chỉ. HOG có ƣu điểm là có thể tính toán nhanh và Freeman đã xây dựng đƣợc một hệ thống nhận dạng cử chỉ thời gian thực dựa trên đặc trƣng này. Đồng thời, đặc trƣng này giúp cho hệ thống hoạt động hiệu quả ở các môi trƣờng có điều kiện chiếu sáng khác nhau vì HOG tƣơng đối độc lập với điều kiện chiếu sáng. Tuy nhiên, HOG chỉ áp dụng đƣợc trên tập các cử chỉ hoàn toàn khác nhau, vì các cử chỉ giống nhau cũng sẽ cho các đặc trƣng HOG tƣơng tự nhau. Bên cạnh đó, khi tiến hành nhận dạng, bàn tay phải chiếm gần trọn mẫu đƣa vào, nếu mẫu đƣa vào là một không gian lớn trong đó vùng chứa bàn tay chỉ chiếm kích thƣớc nhỏ thì histogram lấy đƣợc sẽ không phải đặc trƣng của bàn tay, dẫn đến kết quả phân loại sai. Nolker và Nitter[12] sử dụng Local Linear Mapping (LLN) và mạng nơron để ánh xạ hình chụp 2 chiều về tọa độ 3 chiều theo kỹ thuật PSOM (Parametric Self-Organizing Map). Từ đó lƣu đƣợc nhiều thông tin

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

về bàn tay, giúp có thể nhận dạng cử chỉ từ nhiều góc độ khác nhau. Dù vậy, hệ thống này lại không đạt đƣợc hiêu quả về mặt thời gian. Nhìn chung các cách tiếp cận này không đạt đƣợc sự cân đối giữa thời gian và độ chính xác.

Vậy để đáp ứng đƣợc yêu cầu cho hệ thống nhận dạng cử chỉ trong video áp dụng điều khiển chƣơng trình máy tính, tác giả đề xuất một mô hình nhận dạng cử chỉ sử dụng đặc trƣng Haar-like (đƣợc trình bày trong phần 1.4.4) kết hợp với phƣơng pháp phân loại AdaBoost xây dựng trên cấu trúc Cascade (Cascade of Boosted Classifiers). Việc lựa chọn Cascade of Boosted Classifiers với đặc trƣng Haar-like dựa vào 3 lý do sau:

- Đặc trƣng Haar phản ánh đƣợc tốt thông tin về đối tƣợng, đồng thời có thể tính toán nhanh nhờ khái niệm Integral Image do Viola đƣa ra.

- AdaBoost chạy nhanh và giúp nâng cao tỉ lệ nhận dạng.

- Cấu trúc cascade cho phép loại nhanh các mẫu không phải là đối tƣợng ngay từ những tầng phân loại đầu tiên giúp rút ngắn thời gian nhận dạng, ở các tầng phân loại sau cho phép loại bỏ tốt các mẫu khó xác định không phải là đối tƣợng giúp giảm tỉ lệ nhận dạng nhầm.

Tính hiệu quả của mô hình này đã đƣợc thực tế chứng minh thông qua thành công của Viola và EngJon trên mô hình nhận dạng mặt ngƣời. Ngoài ra, Mathias Kolsch và Matthew Turk [13], [14]đã áp dụng kết hợp AdaBoost với biến đổi Fourier lên bài toán nhận dạng cử chỉ tĩnh với đƣợc kết quả đáng khích lệ: tỉ lệ nhận dạng đúng đạt 95% trong khi tỉ lệ nhận dạng nhầm là 10-4.

Cascaded of Boost Classifiers cho bộ nhận dạng một cử chỉ

Bộ nhận dạng 1 cử chỉ là 1 cấu trúc cascade gồm K stages, fi, di lần lƣợt là

max false alarmmin detection ratecủa ở tầng thứ i của bộ phân loại, max false alarm min detection ratecủa cây phân tầng (cascade tree) sẽ lần lƣợt là :

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Trên lý thuyết, các tầng phân loại sẽ có max false alarm min detection rate khác nhau, các bộ phân loại ở các tầng càng sâu thì max false alarm sẽ càng lớn và min detection rate càng nhỏ do nó học trên các mẫu khó hơn. Tuy nhiên, trong thực tế cài đặt, chúng ta không thể biết chính xác số tầng mà cây phân tầng sẽ có trƣớc khi tiến hành huấn luyện, dẫn đến khó khăn trong việc chọn giá trị max false alarm min detection rate cho mỗi tầng. Do đó, trong phần cài đặt của bài toán nhận dạng cử chỉ, max false alarm min detection rate đƣợc xác lập bằng nhau ở tất cả các tầng. Khi đó, max false alarm min detection rate của bộ nhận dạng lần lƣợt là và .

Thuật toán xây dựng cây phân tầng:

Xác lập max false alarm f, min detection rate dcho các bộ phân loại ở mỗi tầng và số stage tối đa cascade tree sẽ có.

Tính false alarm Fcho bộ phân loại chính (cây phân lớp) :

p, nlà số lƣợng mẫu positive và negative

là tập positive và negative cho bộ phân lớp ở tầng đầu tiên. Trong khi

o Huấn luyện bộ phân loại từ tập và với detection rate d và max false alarm f

o Thêm vào cây phân lớp.

o Dùng cây phân lớp hiện có để tính : Duyệt qua N mẫu negative cho đến khi nào tìm đủ n mẫu mà cây phân lớp hiện có phân loại sai :

Nếu , đƣa n mẫu negative trên vào ; xây dựng với tối đa p mẫu positive mà cây phân lớp hiện có phân loại đúng.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

i ← i +1

Qua thuật toán trên ta thấy, các mẫu negative trong tập huấn luyện của tầng phân loại sau sẽ là những mẫu negative mà tầng phân loại trƣớc nó nhận dạng sai. Nhƣ vậy, nó có điều kiện tập trung học những mẫu không phải đối tƣợng khó nhận dạng. Trong bộ nhận dạng cử chỉ “Bắt đầu” xây dựng đƣợc, bộ phân loại ở tầng thứ hai phải tìm trong 7035 vùng ảnh nền để có thể đƣa vào tập huấn luyện của mình 1591 mẫu không phải đối tƣợng. Điều này có nghĩa là trong số 7035 mẫu không phải đối tƣợng thì bộ phân loại ở tầng thứ nhất đã để bị sai 1591 mẫu. Tuy nhiên, bộ phân loại ở tầng thứ 3 phải tìm trong 21014 vùng nền mới lấy đƣợc 1591 vùng đƣa vào tập huấn luyện – tức là sự kết hợp bộ phân loại ở tầng thứ nhất và thứ hai chỉ nhận dạng sai 1591 mẫu trong số 21014 mẫu. Đến bộ phân loại ở tầng cuối cùng thì cần phải tìm trong số 42818355 vùng nền để có thể chọn ra 1591 mẫu cho mình, tức là đạt đƣợc giá trị false alarm khoảng 0.000037. Nhƣ vậy ta thấy các tầng phân loại đƣợc xây dựng sao cho sự kết hợp của chúng xử lý rất tốt các mẫu không phải đối tƣợng. Đây chính là lý do mà cấu trúc cascade giúp cho bộ nhận dạng giảm thiểu false alarm, và cũng là tăng tỉ lệ nhận dạng cho hệ thống. Đồng thời, cấu trúc này cũng đủ thông minh để biết phải loại một mẫu không phải đối tƣợng ở tầng nào tùy thuộc vào độ phức tạp của chúng, chứ không nhất thiết phải gọi đến tất cả các bộ phân loại đối với mọi mẫu không phải đối tƣợng – chính điều này đã giúp tăng tốc độ nhận dạng.

Hoạt động của bộ nhận dạng một cử chỉ

Khi đƣa một ảnh vào nhận dạng, bộ nhận dạng sẽ phải xét tất cả các vùng ảnh với kích thƣớc khác nhau trích ra đƣợc từ ảnh để có thể đƣa ra kết quả. Kích thƣớc khởi đầu của vùng ảnh sẽ là một cửa sổ bằng với kích thƣớc của mẫu positive trong quá trình huấn luyện, ví dụ cử chỉ “sang trái” là 32x24. Các cửa sổ này sẽ đƣợc dịch theo chiều ngang và dọc 1 lƣợng từ 1 đến 2 điểm ảnh cho đến khi phủ kín ảnh cần nhận dạng. Sau đó, cửa sổ sẽ đƣợc mở ra với tỉ lệ (giá trị này ngƣời dùng đƣợc phép thay đổi khi tiến hành nhận dạng) và tiếp tục quá trình duyệt ảnh nhƣ trên cho đến khi cửa sổ đƣợc mở ra bằng kích thƣớc ảnh.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Nhờ có cấu trúc tầng phân loại, các vùng ảnh không liên quan bị loại nhanh từ những tầng đầu tiên.

Hình 2. 13 - Các vùng không liên quan sẽ bị loại ngay từ những tầng đầu tiên

Trong quá trình trích vùng ảnh, sẽ có các vùng có vị trí và kích thƣớc tƣơng tự nhau. Các vùng này có thể đều đƣợc bộ nhận dạng trả về cho là có cử chỉ, khiến cho 1 cử chỉ đƣợc nhận dạng nhiều hơn một lần.

Hình 2. 14 - Khắc phục trường hợp nhiều vùng ảnh kế cận nhau bằng cách lấy vùng ảnh trung bình

Để khắc phục điều này, trên các vùng ảnh đƣợc bộ nhận dạng đánh giá là cử chỉ, ứng dụng nhận dạng sẽ tìm và nhóm các vùng ảnh tƣơng tự nhau bằng cách thay chúng bằng 1 vùng ảnh duy nhất có đƣợc bằng cách lấy trung bình của các vùng ảnh này.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Qua thực nghiệm, ta thấy số lƣợng vùng ảnh tƣơng tự nhau cũng có tác dụng trong việc điều chỉnh giữa min hit rate và false alarm. Do tỉ lệ nhận dạng không

Một phần của tài liệu Nhận dạng cử chỉ bàn tay ứng dụng trong điều khiển thiết bị điện gia dụng (Trang 39 - 48)