Nhận diện khuôn mặt với 2 thuật toán viola jones, camshift

22 1.5K 9
Nhận diện khuôn mặt với 2 thuật toán viola jones, camshift

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nhận diện khuôn mặt với 2 thuật toán viola jones, camshift

Contents Lời mở đầu Theo dõi đối tượng tự động phương pháp xử lý ảnh số, bao gồm việc tìm kiếm theo dõi đối tượng khác di chuyển qua khung hình theo trình tự video Chức computer vision mở rộng sử dụng giao diện người dùng, robot, thiết bị y tế, thiết bị giám sát… Và quan tâm hệ thống theo dõi tự động nhúng tảng khác Các công việc mô tả triển khai Việc tạo hệ thống theo dõi nhúng tảng gồm vấn đề: chọn tảng thích hợp, hai chọn thuật toán theo dõi tương ứng có độ tin cậy tốc đô chấp nhận Hầu hết thuật toán phát triển gần dựa nguyên tắc sau: phương pháp tương quan, lưu lượng quang học, trừ nền, lọc hạt, phương pháp đánh giá mật độ xác suất,…Phương pháp tương quan lưu lượng quang học phân biệt với tính toán phức tạp làm chúng khó phù hợp với ứng dụng thời gian thực Việc trừ hiệu có tiếng ồn làm việc camera chuyển động Việc lọc hạt lại đánh đổi độ tin cậy với tốc độ Do tập lần chúng em chọn sử dụng phương pháp tiếp cận dựa thuật toán ước lượng mật độ xác suất gọi Camshiftthuật có chi phí tính toán thấp dùng ứng dụng thời gian thực Camshift có đủ độ tin cậy, theo dõi đối tượng không cứng nhắc máy quay di chuyển, cho thấy độ nhạy thấp với tiếng ồn Phần sau báo cáo, chúng em trình bày thuật toán Camshift mô hình thực Matlab Simulink Thuật toán Viola-Jones Đặc trưng Haar-like Do Viola Jones công bố, gồm đặc trưng để xác định khuôn mặt người Mỗi đặc trưng Haar–like kết hợp hai hay ba hình chữ nhật "trắng" hay "đen" hình sau: Hình 1: đặt trưng Haar-like Để sử dụng đặt trưng vào việc xác định khuôn mặt người, đặt trưng Haarlike mở rộng ra, chia làm tập đặc trưng sau: - Đặc trưng cạnh (edge features): - Đặc trưng đường (line features): - Đặc trưng xung quanh tâm (center-surround features): Hình 2: Các đặc trưng mở rộng đặc trưng Haar-like sở Dùng đặc trưng trên, ta tính giá trị đặc trưng Haar-like chênh lệch tổng pixel vùng đen vùng trắng công thức sau: f(x) = Tổng pixel) vùng đen (các mức xám pixel) - Tổng (các mức xám vùng trắng Sử dụng giá trị này, so sánh với giá trị giá trị pixel thô, đặc trưng Haar-like tăng/giảm thay đổi in-class/out-of-class (bên hay bên lớp khuôn mặt người), làm cho phân loại dễ - Nói đơn giản là: chèn đặc trưng Haarlike lên toàn hình bạn Khu vực giống nhận diện mặt bạn Cho nên có nhiều khu vực hình nhận mặt bạn Sau dùng ảnh ko giống để loại trừ vùng Cho nên trình training nhận dạng Adaboost, số lượng ảnh sai phải tuơng đối nhiều để loại trừ - Mean shift thuật toán tracking Tức sau phát đối tượng nằm đâu theo dõi chuyển động đối tượng Ở khuôn mặt, sau xác đinh khuôn mặt, khuôn mặt có lắc lư theo dõi, không cần dùng lại thuật toán để nhận dạng Integral Image Như ta thấy rằng, để tính giá trị đặc trưng Haar-like, ta phải tính tổng vùng pixel ảnh Nhưng để tính toán giá trị đặc trưng Haar-like cho tất vị trí ảnh đòi hỏi chi phí tính toán lớn, không đáp ứng cho ứng dụng đòi hỏi tính run-time Do Viola Jones đưa khái niệm gọi Integral Image, mảng chiều với kích thước với kích ảnh cần tính đặc trưng Haar-like, với phần tử mảng tính cách tính tổng điểm ảnh phía (dòng-1) bên trái (cột-1) Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải ảnh, việc tính toán đơn đựa phép cộng số nguyên đơn giản, tốc độ thực nhanh Hình 3: Cách tính Integral Image ảnh Sau tính Integral Image, việc tính tổng giá trị mức xám vùng ảnh thực đơn giản theo cách sau: Giả sử ta cần tính tổng giá trị mức xám vùng D hình 4, ta tính sau: D = A + B + C + D – (A+B) – (A+C) + A Với A + B + C + D giá trị điểm P4 Integral Image, tương tự A+B giá trị điểm P2, A+C giá trị điểm P3, A giá trị điểm P1 Vậy ta viết lại biểu thức tính D sau: Hình 4: Ví dụ cách tính nhanh giá trị mức xám vùng D ảnh Tiếp theo, để chọn đặc trưng Haar-like dùng cho việc thiết lập ngưỡng, Viola Jones sử dụng phương pháp máy học gọi AdaBoost AdaBoost kết hợp phân loại yếu để tạo thành phân loại mạnh Với phân loại yếu cho câu trả lời xác viện đoán cách ngẫn nhiên chút, phân loại mạnh đưa câu trả lời xác 60% AdaBoost AdaBoost phân loại mạnh phi tuyến phức dựa hướng tiếp cận boosting Freund Schapire đưa vào năm 1995 Adaboost hoạt động nguyên tắc kết hợp tuyến tính weak classifiers để hình thành strong classifier Là cải tiến tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng số (weight) để đánh dấu mẫu khó nhận dạng Trong trình huấn luyện, weak classifiers xây dựng, thuật toán tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng weak classifier kế tiếp: tăng trọng số mẫu bị nhận dạng sai giảm trọng số mẫu nhận dạng weak classifier vừa xây dựng Bằng cách weak classifer sau tập trung vào mẫu mà weak classifiers trước làm chưa tốt Sau cùng, weak classifers kết hợp tùy theo mức độ tốt chúng để tạo nên strong classifier Viola Jones dùng AdaBoost kết hợp phân loại yếu sử dụng đặc trưng Haar-like theo mô hình phân tầng (cascade) sau: Hình 5: Mô hình phân tần kết hợp phân loại yếu để xác định khôn mặt Trong hk phận loại yếu, biểu diễn sau: x: cửa sổ cần xét O : ngưỡng (O = teta) k fk: giá trị đặc trưng Haar-like p : hệ số định chiều phương trình k AdaBoost kết hợp phân loại yếu thành phân loại mạnh sau: H(x) = sign(a1h1(x) +a2h2(x) + + anhn(x)) (a = alpha) Với: a >= hệ số chuẩn hoá cho phân loại yếu t Hình 6: Kết hợp phân loại yếu thành phân loại mạnh Hệ thống xác định vị trí khuôn mặt người Hình 7: Hệ thống xác định vị trí khuôn mặt người (Face detection system) Như hình trên, từ ảnh gốc ban đầu, ta tính Integral Image, mảng chiều với phần tử (x, y) tính tổng phần tử (x', y') với x' < x y' < y, mục đích để tính nhanh tổng giá trị mức xám vùng hình chữ nhật ảnh gốc Các vùng ảnh đưa qua hàm Haar để ước lượng đặc trưng, kết ước lượng đưa qua điều chỉnh AdaBoost để loại bỏ nhanh đặc trưng khả đặc trưng khuôn mặt người Chỉ có tập nhỏ đặc trưng mà điều chỉnh AdaBoost cho có khả đặc trưng khuôn mặt người chuyển sang cho định kết (là tập phân loại yếu có cấu trúc hình 5) Bộ định tổng hợp kết khuôn mặt người kết phân loại yếu trả khuôn mặt người Mỗi phân loại yếu định kết cho đặc trưng Haar-like, xác định ngưỡng đủ nhỏ cho vượt tất liệu mẫu tập liệu huấn luyện (số lượng ảnh khuôn mặt tập huấn luyện lớn) Trong trình xác định khuôn mặt người, vùng ảnh kiểm tra với đặc trưng chuỗi đặc trưng Haar-like, có đặc trưng Haar-like cho kết khuôn mặt người đặc trưng khác không cần xét Thứ tự xét đặc trưng chuỗi đặc trưng Haar-like dựa vào trọng số (weight) đặc trưng AdaBoost định dựa vào số lần thứ tự xuất đặc trưng Haar-like 10 Thuật toán Camshift Giải thuật Camshift (Continuously Adaptive Mean Shift) dựa tảng giải thuật Mean Shift hiệu chỉnh để đạt mục đích theo vết động Sự cải tiến Camshift so với Meanshift minh họa bảng sau: Thông số Trạng thái đối tượng Kích thước đôi tượng Dữ liệu phân tích MeanShift Tĩnh, tịnh tiến Cố định Camshift Động, xoay Thay đổi Phân bố màu tĩnh, cập nhật có thay đổi lớn Kích thước cửa sổ tìm kiếm Kích thước vùng tính Tìm vector di chuyển Cố định Phân bố màu liên tục cập nhật liên tục frame by frame Thay đổi Cố định Thay đổi Dựa khoảng cách trọng tâm thay đổi Dựa moment cấp để tìm dự đoán vector dị chuyển So sánh MeanShift Camshift Thuật toán Camshift phát triển cho việc theo dõi hiệu khuôn mặt đầu giao diện người dùng tri giác Phần phương pháp phi tham số mạnh mẽ cho phép việc tăng dần xác suất nhằm tìm đỉnh mật độ xác suất Thuật toán gọi mean-shift Thuật toán Camshift ban đầu sử dụng thuật toán Histogram chiều mô hình đối tượng bắt Các biểu đồ bao gồm kênh màu (H) không gian màu HSV Việc tìm kiếm thực thông qua việc tìm kiếm phân bố xác suất lớn thu từ biểu đồ trình chiếu lại (back projection) Để giảm lượng tính toán, phân bố xác suất không quét toàn không gian ảnh, thay vào tính toán không gian nhỏ xung quanh cửa sổ tìm kiếm Thuật toán Camshift gồm phần: Back projection Meanshift Track Page 11 Chi tiết phần Camshift: Back projection Back projection phương pháp xử dụng biểu đồ histogram hình ảnh để hiển thị xác suất xuất màu điểm ảnh Bước thuật toán chuyển đổi không gian hình ảnh sang không gian HSV ( không gian ảnh bao gồm kênh H, đặc trưng cho màu sắc điểm ảnh ) Sau chia kênh H ra, ảnh xám nhất, lấy histogram bình thường hóa Bước cuối sử dụng hàm tính toán back project ảnh Bức ảnh back projection thu thể xác suất điểm ảnh có thuộc đối tượng hay không Ảnh đầu vào: Chuyển sang không gian HSV kênh H: Page 12 Histogram ảnh kênh H: Page 13 Tính toán lại trọng lượng màu sắc toàn ảnh histogram thay đổi giá trị điểm ảnh với trọng lượng màu sắc toàn ảnh Đây hình ảnh sau thực back projection Meanshift Meanshift thuật toán thực tập liệu nhằm tìm đại diện, sử dụng hàm mật độ xác suất PDF không gian RxN Đây kĩ thuật phân nhóm không tham số, không đòi hỏi hiểu biết cluster, không hạn chế hình dạng cluster Thuật toán Meanshift thuật toán theo dõi phát triển từ phương pháp Gauss dùng ước lượng đối tượng cửa sổ cố định, chia ảnh đối tượng thành ma trận điểm ảnh, sau thực ước lượng điểm ảnh phương pháp Gauss, tính trung bình pixel khung ảnh cố định đối tượng Quá trình lặp lại hội tụ Đầu vào thuật toán ảnh xám hay back projection Đầu tiên tính toán centroid tất điểm ảnh ảnh Nếu centroid “ weighted” điểm ảnh sáng gán trọng lượng lớn hơn, điểm ảnh màu đen Để dễ hiểu, tưởng tượng không gian d chiều ( d>2), có nhiều điểm không gian Mục đích thuật toán meanshift trường hợp phân nhóm điểm Bây tạo hình cầu mà tâm điểm này, bán kinh h Vì không gian high-demensional nên hình cầu tạo highdemensional Khi đó, điểm vector , tổng vector gọi meanshift Với vector meanshift này, có khối lượng vector trung tâm Page 14 Phần phần lõi thuật toán meanshift, sau toàn thuật toán: • Khởi tạo hình cầu, bao gồm tâm bán kính • Tính toán giá trị mass tâm • Chuyển tâm hình cầu tới tâm mass Page 15 • Lặp lại bước 2,3 đạt giá trị hội tụ, mass trung tâm sau tính toán, tâm hình cầu Quá trình lặp lại khung hình video Điểm mạnh : thuật toán Meanshift theo dõi đối tượng hiệu việc tìm kiếm đối tượng lân cận nơi chúng xuất frame trước Điểm yếu Meanshift : kích thước cửa sổ tìm kiếm có kích thước không đổi nên điều làm cho theo dõi phần đối tượng, đưa kết ước tính không xác vị trí Track Đây bước cuối tracking, có sẵn video frame bắt camera, áp dụng thuật toán meanshift lên frame ảnh, khởi tạo cửa sổ ban đầu cho khung cửa sổ đầu khung trước Thuật toán Camshift giảm theo trình tự bước sau đây: Thiết lập khu vực tính toán xác suất cho toàn frame Chọn vị trí ban đầu cho cửa sổ tìm kiếm trung bình chiều Tính phân phối màu sắc cho khu vực trung tâm 2D cửa sổ tìm kiếm vùng lớn kích cỡ cửa sổ tìm kiếm trung bình o Thực tìm kiếm mật độ xác suất tối đa sử dụng tham số dịch chuyển trung bình để hội tụ để thiết lập số lần lặp lại Lưu trữ thời điểm không( vị trí kích cỡ) vị trí trung bình o Trong khung hình tiếp theo, đặt cửa sổ tìm kiếm vị trí trung bình cố đinh tìm bước thiết lập cửa sổ thời điểm gần Trở lại bước o o o Page 16 Như đề cập, bước , phân bố xác suất tính dựa vào thủ tục trình chiếu lại Hoạt động mức thấp đặt giá trị điểm ảnh vào bin Histogram đích tương ứng Đối với phân bố xác suất 2D rời rạc, giá trị trung bình( trọng tâm) cửa sổ tìm kiếm( bước 3,4) xác định sau: Với (x,y) giá trị phân phối xác suất rời rạc điểm (x,y) hình ảnh lại, giá trị x,y thay đổi cửa sổ tìm kiếm - thời điểm không, thời điểm vị trí cửa sổ tìm kiếm (trọng tâm) Tính toán vị trí trung bình việc lặp lặp lại thay đổi đạt thay đổi nhỏ điểm ảnh theo Giá trị lớn số lần lặp đưa thường từ 10 đến 20 Quy mô hình dạng phân phối (quy mô hình dạng đối tượng) tính toán cách sử dụng phương trình sau: Hai giá trị riêng (chiều rộng chiều dài) phân bố xác suất (tương ứng với đối tượng) bắt Camshift tính với công thức gần giống với công thức tính thời điểm trung tâm: Các giới hạn bán trục w l tính theo công thức sau: Page 17 Định hướng đối tượng (chủ yếu theo trục nghiêng) tính theo công thức sau: Nếu biểu đồ Histogram đích có chứa số lượng đáng kể đặc điểm thuộc hình đối tượng lân cận, vị trí quy mô mục tiêu khó xác định xác Để đối phó với vấn đề này, áp dụng kĩ thuật đơn giản: giảm khối lượng bin Histogram đích thuộc đồng thời Histogram Nói cách khác sử dụng tỉ lệ bin Histogram đích với bin Histogram tương ứng (nền tương ứng với bên cửa sổ tìm kiếm ban đầu) – gọi biểu đồ trọng lượng Biểu đồ trọng lượng viết sau: Với khối lượng Histogram (tỉ lệ biểu đồ), Page 18 Histogram đích, Histogram Tại lại Là Matlab? o o o o o o o o o o o o o Matlab ngôn ngữ lập trình thực hành bậc cao, dùng để giải toánthuật Matlab tích hợp việc tính toán, thể kết quả, cho phép lập trình, giao diện người dùng dễ làm việc Dữ liệu với thư viện lập trình sẵn cho phép người sử dụng thực nhiều ứng dụng thực tế điều khiển, viễn thông, xử lý âm thanh, hình ảnh, video…và ứng dụng sau đây: Sử dụng hàm có sẵn thư viện, phép tính toán thông thường Cho phép lập trình tạo ứng dụng Cho phép mô mô hình thực tế Phân tích, khảo sát hiển thị liệu Với phần mềm đồ họa cực nhanh Cho phép phát triển, giao tiếp với số phần mềm khác : C++, Fortan Tổng quan cấu trúc liệu Matlab, ứng dụng: Matlab hệ thống tương giao, phần tử liệu mảng (không đòi hỏi kích thước) Chúng cho phép giải vấn đề liên quan đến lập trình máy tính, đặc biệt sử dụng phép tính ma trận hay vector sử dụng ngôn ngữ C Fortan lập trình thực ứng dụng lập trình câu lệnh gọi từ Matlab Matlab viết tắt từ “ Matrix Laboratory” – thư viện ma trận, từ phần mềm Matlab viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận cách dễ dàng, phần mềm ma trận phát triển công trình Linpack Eispack Ngày Matlab phát triển Lapack Artpack tạo nên nghệ thuật phần mềm cho ma trận Dữ liệu Matlab: Dữ liệu Matlab thể dạng ma trận (hoặc mảng – tổng quát ) , có kiểu liệu liệt kê sau đây: Kiểu đơn single, kiểu có lợi nhớ, đòi hỏi liệu byte nhớ hơn, kiểu liệu sử dụng tính toán độ xác Kiểu double, kiểu thông dụng Matlab Kiểu Spare Kiểu uint8, uint16, uint64… Kiểu char Kiểu cell Kiểu structure Trong Matlab kiểu double mặc định sử dụng phép tính số học Toolbox công cụ quan trọng Matlab: Page 19 Công cụ Matlab cung cấp cho phép bạn ứng dụng kĩ thuật để phân tích, thiết kế, mô mô hình Ta tìm thấy toolbox môi trường làm việc của: o Mạng noron o Logic mờ o Simulink Do mạnh ma trận nên Matlab công cụ xử lý ảnh đơn giản với người dùng mà không phần mạnh mẽ Trình tự thực tracking face với Matlab: Page 20 Bước Thực detect Sử dụng vision.CascadeObjectDetector để thực dectect vị trí mặt frame ảnh Cascade object detector sử dụng thuật toán Viola- Jones mô hình phân loại đào tạo để phát Theo mặc định, dùng để phát khuôn mặt, nhiên cấu hình để phát đối tượng khác Khởi tạo đối tượng CascadeObjectDetector: faceDetector = vision.CascadeObjectDetector(); Bước 2: Xác định đặc trưng khuôn mặt để theo dõi: Khi xác định khuôn mặt năm đoạn video, bước xác định đặc trưng để giúp theo dõi khuôn mặt Ví dụ sử dụng hình dạng, kết cấu, màu sắc…Chọn đặc trưng cho đối tượng bất biển đối tượng di chuyển Trong chương trình chúng em sử dụng đối tượng tông màu da Tông màu da cung cấp lượng tương phản mặt nền, không thay đổi kể xoay mặt di chuyển Chuyển ảnh từ hệ màu RGB sang hệ màu HSV để lấy tông màu : [hueChannel,~,~] = rgb2hsv(videoFrame); Bước 3: Với tông màu da chọn tính theo dõi , chúng em sử dụng vision.HistogramBasedTracker để theo dõi Các theo dõi biểu đồ sử dụng thuật toán Camshift, cung cấp khả theo dõi đối tượng dựa histogram điểm ảnh Tài liệu tham khảo: http://eric-yuan.me/continuously-adaptive-shift/ http://www.mathworks.com/help/vision/examples/face-detection-and-tracking-usingcamshift.html Page 21 Page 22 ... shift thuật toán tracking Tức sau phát đối tượng nằm đâu theo dõi chuyển động đối tượng Ở khuôn mặt, sau xác đinh khuôn mặt, khuôn mặt có lắc lư theo dõi, không cần dùng lại thuật toán để nhận. .. chuyển, cho thấy độ nhạy thấp với tiếng ồn Phần sau báo cáo, chúng em trình bày thuật toán Camshift mô hình thực Matlab Simulink Thuật toán Viola- Jones Đặc trưng Haar-like Do Viola Jones công bố, gồm... Haar-like 10 Thuật toán Camshift Giải thuật Camshift (Continuously Adaptive Mean Shift) dựa tảng giải thuật Mean Shift hiệu chỉnh để đạt mục đích theo vết động Sự cải tiến Camshift so với Meanshift

Ngày đăng: 09/03/2017, 17:44

Từ khóa liên quan

Mục lục

  • Lời mở đầu

    • 1. Đặc trưng Haar-like

    • 2. Integral Image

    • 3. AdaBoost

    • 4. Hệ thống xác định vị trí khuôn mặt người

    • Thuật toán Camshift

Tài liệu cùng người dùng

Tài liệu liên quan