Bài giảng thị giác máy tính

94 29 0
Bài giảng thị giác máy tính

Đ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

1 TRƢỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BỘ MÔN TIN HỌC CÔNG NGHIỆP BÀI GIẢNG THỊ GIÁC MÁY TÍNH (LƯU HÀNH NỘI BỘ) 2 Thái Nguyên, năm 2021 MỤC LỤC CHƢƠNG 1 GIỚI THIỆU TỔNG QUAN 5 1 1 Khái niệ.

TRƢỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BỘ MÔN TIN HỌC CÔNG NGHIỆP BÀI GIẢNG THỊ GIÁC MÁY TÍNH (LƯU HÀNH NỘI BỘ) Thái Nguyên, năm 2021 MỤC LỤC CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 Khái niệm thị giác máy tính 1.2 Tại thị giác máy tính lại cần thiết 1.3 Thị giác máy tính hoạt động nhƣ 1.4 Sự phát triển thị giác máy tính Chƣơng 2: Lọc ảnh 12 2.1 Lọc ảnh miền không gian 12 2.1.1 Hàm tính tích chập hai ảnh 12 2.1.2 Lọc trung bình (Median Filter) 14 2.1.3 Lọc trung vị 17 2.1.4 Bộ lọc Sobel 21 2.1.5 Bộ lọc Laplace 23 2.1.6 Cài đặt lọc OpenCV 24 2.2 Lọc ảnh miền tần số 26 2.2.1 Khái niệm 26 2.2.2 Lọc thông thấp - Low Pass Filter 29 2.2.3 Lọc thông cao - High Pass Filter 29 2.2.4 Bộ lọc Blur 29 Chƣơng 3: Phát đƣờng biên 32 3.1 Các phƣơng pháp phát đƣờng biên 32 3.1.1 Phƣơng pháp Gradient 32 3.1.2 Phƣơng pháp Laplacian 34 3.2 Một số chƣơng trình phát biên ảnh 34 3.3 Phát đƣờng thẳng với Hough transform 40 3.3 Phƣơng trình đƣờng thẳng không gian ảnh 40 3.3 Hàm houghlines opencv 41 3.3 Chƣơng trình tìm đƣờng trịn, đƣờng thẳng ảnh biến đổi Hough 42 3.4 Tìm contours ảnh 43 3.4.1 Contour 43 3.4.2 Tìm contours ảnh với Opencv 44 3.4.3 Vẽ contours ảnh với Opencv 46 CHƢƠNG 4: PHÂN ĐOẠN ẢNH 48 4.1 Giới thiệu phƣơng pháp phân đoạn ảnh 48 4.2 Chọn ngƣỡng cố định 49 4.3 Chọn ngƣỡng dựa lƣợc đồ 49 4.3 Thuật toán đẳng hiệu 49 4.3 Thuật toán đối xứng 50 4.3 Thuật toán tam giác 51 4.3 Chọn ngƣỡng Bimodal Histogram 51 4.4 Phƣơng pháp phân đoạn dựa ngƣỡng cục thích nghi 52 4.4 Phân đoạn Watershed 53 4.4 Tìm ngƣỡng cục thích nghi 55 4.5 Phân đoạn ảnh sử dụng openCV 58 4.5.1 Adaptive Thresholding (phân ngƣỡng thích nghi) 59 4.5.2 Nhị phân hóa thuật toán Otsu 60 CHƢƠNG 5: TRÍCH ĐẶC TRƢNG VÀ ĐỐI SÁNH ẢNH 62 Các đặc trƣng 62 Đặc trƣng màu sắc 62 5.2 Mô tả đặc trƣng mầu sắc 62 5.2 Độ đo tƣơng đồng màu sắc 63 Đặc trƣng kết cấu 63 5.3.1 Mô tả đặc trƣng kết cấu 63 5.3.2 Độ đo tƣơng đồng cho kết cấu ảnh 64 Đặc trƣng hình dạng 64 5.4.1 Mô tả đặc trƣng hình dạng 64 5.4.2 Độ đo tƣơng đồng cho hình dạng 64 5.5 Đặc trƣng Haar-like 65 5.5.1 Giới thiệu 65 5.5.2 Các đặc trƣng Haar-Like 65 5.6 Đặc trƣng cục SIFT 67 5.6.1 Phát đặc trƣng cục bất biến SIFT 67 5.6.2 Độ đo tƣơng đồng cho đặc trƣng cục bất biến 71 CHƢƠNG 6: NHẬN DẠNG 72 6.1 Nhận dạng đối tƣợng 72 6.1.1 Rút trích đặc trƣng 72 6.1.2 Sử dụng tập liệu để phát đối tƣợng 76 6.1.3 Ví dụ nhận diện biển số xe máy sử dụng OpenCV 77 6.2 Nhận dạng mặt ngƣời 79 6.2.1 Nhận diện khuôn mặt: Bƣớc 1: face detection 79 6.2.2 Nhận diện khuôn mặt – Bƣớc 2: face recognition 80 6.2.3 Nhận diện khuôn mặt – Bƣớc 3: tối ƣu hoá 81 6.3 Eigenfaces 84 6.3.1 Thuật toán PCA ứng dụng nhận dạng mặt ngƣời 85 6.3.2 Tìm EigenFaces 87 6.3.3 So sánh khoảng cách-Compare Distance 93 CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 Khái niệm thị giác máy tính Thị giác máy tính lĩnh vực Artificial Intelligence (Trí tuệ nhân tạo) Computer Science (Khoa học máy tính) nhằm giúp máy tính có đƣợc khả nhìn hiểu giống nhƣ ngƣời Thị giác máy tính (computer vision) đƣợc định nghĩa lĩnh vực bao gồm phƣơng pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích nhận dạng hình ảnh từ giới thực để đƣa thông tin số Thị giác máy tính đƣợc mơ tả tổng thể dải rộng trình tự động tích hợp thể cho nhận thức thị giác Q trình mơ thị giác ngƣời đƣợc chia thành giai đoạn nối tiếp (tƣơng tự cách ngƣời nhìn): mơ mắt (thu nhận), mô vỏ não thị giác (xử lý) mô phần cịn lại não (phân tích)  Thu nhận Mô mắt lĩnh vực đạt đƣợc nhiều thành công Chúng ta tạo cảm biến, vi xử lý hình ảnh giống khả nhìn mắt ngƣời chí cịn tốt Camera chụp hàng ngàn ảnh giây nhận diện từ xa với độ xác cao Tuy nhiên cảm biến camera tốt nhận diện đƣợc bóng đừng nói bắt đƣợc chúng Nói cách khác, phần cứng bị giới hạn khơng có phần mềm đến khó khăn lớn Tuy vậy, camera ngày linh hoạt làm tảng tốt để nghiên cứu  Xử lý Bộ não đƣợc xây dựng từ số với hình ảnh lấp đầy tâm trí, làm nhiệm vụ liên quan tới thị giác nhiều cơng việc khác việc xuống tới cấp độ tế bào Hàng tỉ tế bào phối hợp để lấy hình mẫu, bắt đƣợc tín hiệu Một nhóm nơ-ron báo cho nhóm khác có khác biệt dọc theo đƣờng thẳng (theo góc đó, nhƣ chuyển động nhanh hay theo hƣớng khác) Nghiên cứu thị giác máy tính cho mạng lƣới nơ-ron phức tạp tới nỗi hiểu tiếp cận theo hƣớng lý giải từ xuống dƣới Với số đối tƣợng cách hiệu nhƣng mô tả đối tƣợng, từ nhiều góc nhìn, nhiều biến thể màu sắc, chuyển động nhiều thứ khác hình dung khó Ngay mức nhận thức em bé cần lƣợng liệu lớn vô Cách tiếp cận từ dƣới lên bắt chƣớc cách não hoạt động hứa hẹn Những năm qua chứng kiến bùng nổ nghiên cứu sử dụng hệ thống việc bắt chƣớc não ngƣời Quá trình nhận diện hình mẫu tăng tốc liên tục đạt đƣợc tiến  Phân tích Ta xây dựng hệ thống nhận diện đƣợc táo, từ góc nào, tình nào, dù đứng im hay chuyển động nhƣng chúng nhận diện đƣợc cam, nói cho ta táo gì, có ăn đƣợc khơng, lớn nhỏ hay dùng để làm Nhƣ phần cứng phần mềm tốt không làm đƣợc khơng có hệ điều hành Đó phần cịn lại não: nhớ ngắn/dài hạn, liệu từ giác quan, ý, nhận thức, học tƣơng tác với giới… đƣợc viết lên mạng lƣới nơ-ron kết nối phức tạp thứ thấy, theo cách mà khơng thể hiểu Đó nơi mà khoa học máy tính trí tuệ nhân tạo gặp mặt Dù thời kì sơ khai, thị giác máy tính vơ hữu ích Nó có mặt camera nhận diện khn mặt (Face ID) nụ cƣời Nó giúp xe tự lái nhận diện biển báo, ngƣời đƣờng Nó nằm robot nhà máy, nhận diện sản phẩm, truyền cho ngƣời 1.2 Tại thị giác máy tính lại cần thiết Thị giác máy tính cho phép máy tính nhƣ robot, phƣơng tiện điều khiển từ máy tính thứ từ nhà máy, thiết bị nơng trại đến xe máy bay thực số hoạt động tự động, hoạt động cách hiệu quả, chí an tồn Tầm quan trọng trở nên rõ ràng thời đại kỹ thuật số Chúng ta nhìn thấy đƣợc ứng dụng cơng nghệ qua việc hỗ trợ ngƣời dùng tổ chức truy cập vào sƣu tập hình ảnh họ mà khơng cần gắn thẻ tag đánh dấu Google Photos Nhƣng điều đáng nói làm trì liên tục mà số lƣợng hình ảnh đƣợc chia sẻ ngày lên đến hàng tỷ Với ngƣời thao tác thủ công điều làm đƣợc Một nghiên cứu dịch vụ in ảnh Photoworld cho số liệu nhƣ sau: Một ngƣời đến 10 năm để xem qua tất hình ảnh đƣợc chia sẻ snapchat (chỉ giờ) chƣa đề cập đến việc phân loại Và dĩ nhiên 10 năm số lƣợng ảnh tƣơng ứng tăng theo cấp số nhân Điều cho thấy giới ngày tràn ngập hình ảnh kỹ thuật số cần cơng nghệ máy tính xử lý đƣợc tất – vƣợt qua khả mà ngƣời xử lý đƣợc 1.3 Thị giác máy tính hoạt động nhƣ Trên cấp độ định tất công nghệ nhận dạng mẫu Cách để huấn luyện cho máy tính hiểu đƣợc liệu hình ảnh thực tế cung cấp cho hình ảnh, nhiều hình hàng ngàn, hàng triệu đƣợc tổ chức gắn nhãn trƣớc Bƣớc đó, nhà phát triển phần mềm vẽ nên thuật toán tuân theo kỹ thuật phần mềm khác cho phép máy tính dị tìm tất mẫu theo nhiều yếu tố liên quan đến nhãn Ví dụ, bạn cung cấp cho máy tính triệu hình ảnh lồi chim cánh cụt, thị giác máy tính tuân theo tất thuật tốn cho phép chúng phân tích màu sắc ảnh, hình dạng khoảng cách phận Khi kết thúc thuật tốn, máy tính ứng dụng trải nghiệm đƣợc cung cấp hình ảnh khơng nhãn khác để định dạng hình ảnh chim cánh cụt 1.4 Sự phát triển thị giác máy tính Các hệ thống thị giác máy tính truyền thống kết hợp thuật toán phối hợp với nỗ lực giải nhiệm vụ nói Mục tiêu trích xuất đặc điểm (feature) từ hình ảnh nhƣ phát cạnh, phát góc phân đoạn dựa màu Độ xác thuật tốn đƣợc sử dụng để trích xuất đặc điểm phụ thuộc vào thiết kế tính linh hoạt thuật tốn Vấn đề với cách tiếp cận hệ thống cần đƣợc cho biết đặc điểm cần tìm hình ảnh Về bản, thuật tốn hoạt động nhƣ đƣợc xác định nhà thiết kế thuật tốn, features đƣợc trích xuất đƣợc thiết kế ngƣời Trong triển khai nhƣ vậy, hiệu suất thuật tốn đƣợc xử lý thông qua tinh chỉnh, chẳng hạn nhƣ cách điều chỉnh tham số sửa đổi cấp mã để điều chỉnh hành vi Tuy nhiên, thay đổi nhƣ cần phải đƣợc thực thủ công đƣợc mã hóa cứng cố định cho ứng dụng cụ thể  Xu hƣớng từ Deep Learning Mặc dù trở ngại đáng kể đƣờng phát triển thị giác máy tính đến “cấp độ ngƣời”, hệ thống Deep Learning đạt đƣợc tiến đáng kể việc xử lý số nhiệm vụ phụ có liên quan Lý cho thành công phần dựa trách nhiệm bổ sung đƣợc giao cho hệ thống deep learning Điều hợp lý để nói khác biệt lớn với hệ thống deep learning chúng khơng cịn cần phải đƣợc lập trình để tìm kiếm đặc điểm cụ thể Thay tìm kiếm đặc điểm cụ thể thuật toán đƣợc lập trình cẩn thận, mạng lƣới thần kinh bên hệ thống deep learning đƣợc đào tạo Ví dụ: tơ hình ảnh bị phân loại sai thành xe máy bạn khơng tinh chỉnh tham số viết lại thuật tốn Thay vào đó, bạn tiếp tục đào tạo hệ thống làm cho Với sức mạnh tính tốn tăng lên đƣợc cung cấp hệ thống deep learning đại, có tiến ổn định đáng ý hƣớng tới điểm mà máy tính nhận phản ứng với thứ mà nhìn thấy 1.1 Ứng dụng thị giác máy tính thực tiễn  Phát khiếm khuyết Đây có lẽ ứng dụng phổ biến thị giác máy tính Cho đến việc phát yếu tố bị lỗi thƣờng đƣợc tiến hành ngƣời giám sát định mở rộng họ khơng thể kiểm sốt đƣợc tồn quy trình hệ thống đƣợc Với thị giác máy tính, kiểm tra tất lỗi nhỏ từ vết nứt kim loại, lỗi sơn, in xấu, có kích thƣớc nhỏ 0,05mm Việc xử lý nhanh tốt mắt thƣờng ngƣời gấp nhiều lần Thuật toán đƣợc thiết kế đào tạo đặc biệt cho ứng dụng cụ thể thơng qua hình ảnh có khiếm khuyết khơng có khuyết tật  Trình đọc tự động Nếu bạn sử dụng ứng dụng Google translate, bạn phát khả trỏ camera điện thoại thông minh bạn vào văn từ số ngôn ngữ dịch sang ngơn ngữ khác hình gần nhƣ Sử dụng thuật toán nhận dạng ký tự (OCR) để trích xuất thơng tin, cụ thể nhận dạng ký tự quang học – cho phép dịch xác sau chuyển thành lớp phủ lên văn thực  Vận hành tự động Có lẽ bạn thấy tivi xe không ngƣời lái, lĩnh vực phụ thuộc nhiều vào Computer vision Deep learning Mặc dù chƣa đến thời điểm thay hồn tồn ngƣời lái, cơng nghệ xe tự hành tiến đáng kể vài năm qua Cơng nghệ AI phân tích liệu thu thập đƣợc từ hàng triệu ngƣời lái xe, học hỏi từ hành vi lái xe để tự động tìm đƣờng, ƣớc tính độ cong đƣờng, phát mối nguy hiểm giải thích tín hiệu tín hiệu giao thơng  Xử lí liệu Để hỗ trợ ngƣời thực nhiệm vụ nhận dạng tổ chức thông tin, công cụ Computer Vision mơ hình Deep Learning đƣợc đƣa vào nghiên cứu, đòi hỏi khối lƣợng liệu lớn đƣợc dán nhãn Khi thuật toán Deep Learning phát triển, chúng chủ yếu thay quy trình gắn thẻ thủ công thông qua phƣơng pháp tiếp cận đƣợc gọi nghiên cứu liệu đám đông – thu thập theo thời gian thực tự động gắn thẻ liệu chuyên gia tạo từ máy học bắt đầu quy trình nhận dạng đối tƣợng  Lĩnh vực y tế Những tiến lớn liên tục xuất lĩnh vực nhận dạng mẫu xử lý hình ảnh Đồng thời, khơng có đáng ngạc nhiên cộng đồng y tế chuyên gia lĩnh vực chăm sóc sức khỏe cho hình ảnh y khoa (kỹ thuật tạo hình ảnh trực quan bên thể để phân tích lâm sàng can thiệp y tế, nhƣ biểu thị trực quan chức số quan mô sinh lý học) trở thành phần thiết yếu cách thức làm việc họ, hƣớng đến cơng cụ chẩn đốn tốt tăng đáng kể khả đƣa hành động hiệu Phân tích hình ảnh y khoa trợ giúp lớn cho phân tích dự đốn trị liệu Ví dụ, thị giác máy tính đƣợc áp dụng cho hình ảnh nội soi làm tăng mức độ hợp lệ đáng tin cậy liệu để giảm tỷ lệ tử vong liên quan đến ung thƣ đại trực tràng Trong ví dụ khác, cơng nghệ thị giác máy tính cung cấp hỗ trợ kỹ thuật cho phẫu thuật Mô hình hình ảnh 3D hộp sọ, nhƣ phần điều trị khối u não, cung cấp tiềm to lớn việc chuẩn bị phẫu thuật thần kinh tiên tiến Ngoài ra, mà học sâu ngày đƣợc sử dụng công nghệ AI, việc tận dụng để phân loại nốt phổi đạt đƣợc tiến to lớn để chẩn đoán sớm ung thƣ phổi  Bán lẻ Thị giác máy tính đƣợc sử dụng cửa hàng ngày nhiều, đặc biệt giúp cải thiện trải nghiệm khách hàng Pinterest Lens cơng cụ tìm kiếm sử dụng thị giác máy tính để phát đối tƣợng Bằng cách sử dụng ứng dụng điện thoại thơng minh cửa hàng, bạn hình dung sản phẩm trông nhƣ nhận đƣợc sản phẩm khác liên quan đến Nhận dạng khuôn mặt ứng dụng tiếng thị giác máy tính đƣợc sử dụng trung tâm mua sắm cửa hàng Lolli & Pops, cửa hàng kẹo có trụ sở Mỹ, sử dụng nhận dạng khn mặt để tích điểm cho khách hàng trung thành “Hãy tƣởng tƣợng: Bạn bƣớc vào cửa hàng u thích nhân viên bán hàng chào đón bạn tên lúc bạn cần, họ chia sẻ với bạn sản phẩm mà bạn quan tâm nhất.” Sự đổi công nghệ đƣa giới thiệu đƣợc cá nhân hóa cụ thể cho khách hàng Dƣờng nhƣ khơng có giới hạn nói trƣờng hợp sử dụng thị giác máy tính lĩnh vực bán lẻ, chúng bao gồm phân tích kệ tầng cửa hàng, chí phân tích tâm trạng khách hàng, cụ thể phát cảm xúc dựa thuật tốn thơng qua hình ảnh video phân tích biểu cảm nhỏ gƣơng mặt, xử lý chúng cuối cùng, diễn giải cảm xúc chung Chấm dứt việc phải xếp hàng để tốn mục tiêu cuối cải tiến công nghệ cửa hàng Amazon phát triển mơ hình mới, Amazon Go, thúc đẩy công nghệ bao gồm thị giác máy tính, IoT AI để phát hiện, theo dõi phân tích hành vi nhƣ hành động khách hàng cửa hàng để xử lý tự động trình tốn gửi cho họ hóa đơn điện tử  Ngân hàng Khi nói đến việc liên kết công nghệ AI với ngân hàng, chủ yếu nghĩ đến việc phát gian lận Mặc dù lĩnh vực tập trung đặc biệt cho công nghệ tiên tiến lĩnh vực này, thị giác máy tính cải tiến nhiều thứ Các ứng dụng nhận dạng hình ảnh sử dụng học máy để phân loại trích xuất liệu phục vụ cho việc giám sát trình xác thực tài liệu nhƣ thẻ cƣớc giấy phép lái xe đƣợc sử dụng để cải thiện trải nghiệm khách hàng từ xa tăng cƣờng bảo mật  Phát cháy dựa máy bay không ngƣời lái Việc sử dụng rộng rãi đa dạng thị giác máy tính áp dụng cho lĩnh vực an ninh Máy bay không ngƣời lái, UAV, tận dụng hệ thống thị giác máy tính để tăng cƣờng khả phát ngƣời việc phát cháy rừng, sử dụng hình ảnh hồng ngoại (IR) nhƣ phần giao thức giám sát cháy rừng Các thuật toán nâng cao phân tích đặc điểm hình ảnh video nhƣ chuyển động độ sáng để phát lửa Hệ thống thực trích xuất đƣợc nhắm mục tiêu để phát dễ dàng mẫu tính tốn cách để thấy khác biệt đám cháy chuyển động thực tế bị hiểu nhầm hỏa hoạn Máy bay khơng ngƣời lái cải thiện an ninh hiệu hoạt động cứu hỏa cách giám sát nghiên cứu khu vực nguy hiểm Nhân viên cứu hỏa chạy phân tích dựa thuật tốn tiên tiến để kiểm tra khói lửa, từ đánh giá rủi ro đƣa dự đoán lan truyền lửa  Nhận diện khuôn mặt 10 Chƣơng trình load data xml khn mặt, sau detect ảnh/video/camera Viết Visual C++ 11 sử dụng thƣ viện Opencv  Lý thuyết Nhận diện khuôn mặt gồm bƣớc: Bƣớc Tiền xử lý ảnh: trích xuất ảnh từ video, webcam Sau biến đổi thành ảnh xám (gray) Bƣớc Tìm khn mặt ảnh xem có khn mặt ảnh khơng? Nếu có có khn mặt? Sau crop để qua bƣớc Bƣớc Nhận diện khuôn mặt trả kết Có thể vẽ hình vng bao lấy khn mặt vẽ text tên ngƣời  Giới thiệu Cascade model Đặc trƣng haar-like tập hợp đặc trƣng đƣờng ngang, đƣờng dọc, đƣờng chéo,… đối tƣợng Các đặc trƣng đƣợc lƣu file xml, dựa vào file mà biết đƣợc ảnh có chứa đối tƣợng cần tìm hay khơng Ngồi HAAR có đặc trung LBP HOG đƣợc áp dụng cho nhận diện hình ảnh OpenCV cung cấp sẵn model nhƣ lbpcascade_frontalface.xml để phát khuôn mặt Các bạn tải file dùng tool Cascade analytics để thử  Các bƣớc chƣơng trình Đầu tiên chƣơng trình load file cascade model đƣợc định file config.ini Nếu load cascade thành cơng load file video đƣợc định config.ini Sau tiến hành tách frame detect khn mặt, có khn mặt vẽ hình vng lên khuôn mặt 6.2.2 Nhận diện khuôn mặt – Bƣớc 2: face recognition Sau phát đƣợc khuôn mặt tiến hành nhận dạng (recognition) Để nhận dạng ta sử dụng lib face, lib đƣợc đóng góp ngƣời dùng OpenCV Trong lib face hỗ trợ phƣơng pháp nhận diện Eigen, Fisher LBPH Các tham số tốt để file config để dễ dàng thay đổi mà không cần build lại  Thuật tốn 80 Nhận diện khn mặt học có giám sát, tức phải dán nhãn cho ảnh khn mặt Từ chƣơng trình tìm khác biệt khn mặt lƣu lại model Với model học dùng để nhận diện khn mặt Cách làm nhƣ sau: - Thu thập khuôn mặt, crop lƣu vào folder, ngƣời folder Khi chạy chƣơng trình training ảnh khn mặt Với khung hình tiến hành tìm kiếm khn mặt Nếu tìm thấy khn mặt nhận diện in kết 6.2.3 Nhận diện khuôn mặt – Bƣớc 3: tối ƣu hoá Trong thực tế tình trạng nhận diện sai xảy nhiều, để khắc phục có vài cách nhƣ sau: Thay đổi file cascade tối ƣu tham số Tìm đơi mắt khn mặt nhận đƣợc Kiểm tra màu da  Thay đổi file cascade tối ƣu tham số Theo nhƣ lý thuyết độ xác phát khn mặt phụ thuộc nhiều vào file cascade tham số Những file cascade đƣợc cung cấp sẵn theo lib OpenCV để phát khn mặt có khác biệt Mình thử với ảnh 80 ảnh chứa 77 khn mặt phát đƣợc số lƣợng khuôn mặt nhƣ sau (các tham số hàm detectMultiScale để default): haarcascade_frontalface_alt.xml 86 khuôn haarcascade_frontalface_alt2.xml 95 khuôn haarcascade_frontalface_alt_tree.xml 74 khuôn haarcascade_frontalface_default.xml 155 khuôn mặt/80 ảnh mặt/80 mặt/80 mặt/80 ảnh ảnh ảnh Nhƣ vậy, dùng haarcascade_frontalface_alt.xml haarcascade_frontalface_alt_tree.xml để đạt kết tốt Tuy nhiên tuỳ thuộc tập liệu tham số truyền vào Do cần test cẩn thận liệu sử dụng  Tìm đơi mắt khuôn mặt nhận đƣợc 81 Trong khuôn mặt phát đƣợc dùng cascade để tìm đơi mắt để tăng độ xác Hơn nữa, biết đƣợc vị trí đơi mắt xoay khn mặt góc độ để dùng nhận diện khn mặt tốt Trong thƣ viện OpenCV có kèm file cascade sau giúp detect đƣợc đôi mắt haarcascade_eye.xml haarcascade_eye_tree_eyeglasses.xml 82  Kiểm tra màu da Có thể dùng màu HSV để kiểm tra có phải da ngƣời không Điểm yếu cách nhận đƣợc màu da vàng, da trắng đen khó mà nhận biết: Crop khuôn mặt Chuyển ảnh khuôn mặt thành HSV giới hạn khoảng (0, 48, 80) (20, 255, 255) Lấy giá trị trung bình kênh màu H, giá trị trung bình lớn 100 khn mặt 83 6.3 Eigenfaces Eigen Faces phƣơng pháp áp dụng trực tiếp phép phân tích thành phần PCA, đƣợc áp dụng nhiều vào biểu diễn, phát nhận dạng mặt Ƣu điểm phƣơng pháp biểu diễn đƣợc tồn ảnh có độ nén tốt (loại bỏ nhiễu dƣ thừa) 84 Hình 12 Sơ đồ khối trích chọn đặc trƣng sử dụng Eigen Faces 6.3.1 Thuật toán PCA ứng dụng nhận dạng mặt ngƣời  Giới thiệu chung thuật toán Phân tích thành phần (Principal Coponent Analysis) gọi tắt PCA thuật toán đƣợc sử dụng để tạo ảnh từ ảnh ban đầu Ảnh có kích thƣớc nhỏ nhiều so với ảnh ban đầu nhƣng mang đặc trƣng ảnh cần nhận dạng PCA không cần quan tâm đến việc tìm đặc điểm cụ thể thực thể cần nhận dạng mối quan hệ đặc điểm Tất chi tiết đƣợc thể ảnh đƣợc tạo từ PCA  Ƣu điểm phƣơng pháp PCA - Tìm đƣợc đặc tính tiêu biểu đối tƣợng cần nhận dạng mà không cần phải xác định thành phần mối quan hệ thành phần - Thuật tốn thực tốt với ảnh có độ phân giải cao, PCA thu gọc ảnh thành ảnh có kích thƣớc nhỏ - PCA kết hợp với phƣơng pháp khác nhƣ mạng Neuron, Support Vector Machine… để mang lại hiệu nhận dạng cao  Nhƣợc điểm PCA: 85 PCA phân loại theo chiều lớn tập vector Tuy nhiên, chiều phân bố lớn lúc mang lại hiệu tốt cho toán nhận dạng Đây nhƣợc điểm PCA - PCA nhạy với nhiễu  Ứng dụng toán nhận dạng mặt ngƣời - Trong toán nhận dạng mặt ngƣời, PCA thuật toán nhận dạng ảnh dựa nét tổng thể khuôn mặt, ta áp dụng thuật tốn để thực cơng việc tìm khn mặt giống với khn mặt cho trƣớc với kích thƣớc nhỏ mang nét đặc trƣng khuôn mặt - Đặc trƣng PCA: Mục tiêu phƣơng pháp PCA “giảm số chiều” tập vector cho đảm bảo đƣợc “tối đa thông tin quan trọng nhất” Phƣơng pháp PCA giữ lại K thuộc tính (Feature extraction) từ N thuộc tính ban đầu (feature selection) (K < N) - - Mục tiêu phƣơng pháp PCA tìm phép biến đổi tuyến tính T thỏa mãn: y = T.x cho trung bình bình phƣơng lỗi (MSE) nhỏ (sai số nhỏ giảm số chiều) 86  Cách tìm đƣợc T: Gọi vector trung bình tất vector x (kích thƣớc (NxP)x1) tập mẫu gồm M ảnh Gọi ma trận hiệp phƣơng sai phần tử x tập mẫu C C đƣợc tính theo cơng thức: ∑ Ma trận C có kích thƣớc (NxP)x(NxP) “Ma trận hiệp phƣơng sai tập hợp m biến ngẫu nhiên ma trận vng hạng (m × m), phần tử nằm đƣờng chéo (từ trái sang phải, từ xuống dƣới) lần lƣợt phƣơng sai tƣơng ứng biến (ta ý Var(X) = Cov(X,X)), phần tử cịn lại (khơng nằm đƣờng chéo) phƣơng sai đôi hai biến ngẫu nhiên khác tập hợp ”[11] Ngƣời ta chứng minh đƣợc rằng: “Nếu T ma trận m hàng, hàng vector riêng C, đồng thời m vector riêng phải ứng với m trị riêng lớn Khi đó, T phép biến đổi thỏa mãn MSE nhỏ nhất”  Tóm lại, phƣơng pháp PCA quy việc tìm trị riêng (Eigenvalues) vector riêng (eigenvectors) ma trận hiệp phương sai C Sau đó, giữ lại K vector riêng ứng với K trị riêng lớn để làm sở cho khơng gian 6.3.2 Tìm EigenFaces Ban đầu ta có tập ảnh khn mặt gọi tập ảnh huấn luyện (training set) Giả sử ảnh có kích thƣớc NxP, ta coi ảnh vector không gian NxP chiều Bây giờ, khuôn mặt vector, ta thấy vector không phân bố ngẫu nhiên không gian ảnh mà phân bố theo quy luật tƣơng đối đó, ta nói vector nằm không gian gọi không gian khuôn mặt Từ vector tập huấn luyện, ta tìm sở trực chuẩn cho không gian khuôn mặt Những vector thuộc sở coi vector mang nét tổng thể đặc trƣng khn mặt Các bƣớc thực tìm EigenFaces: 87 Bƣớc 1: Giả sử tập huấn luyện có M ảnh: I1, I2, , IM , với khn mặt phải diện tất ảnh có kích thước NxP Hình 13 Tập ảnh huấn luyện Bƣớc 2: Biểu diễn ảnh I1, I2, , IM, thành vector T1, T2, …, TM tƣơng ứng Mỗi vector Ti có kích thƣớc (NxP)x1 Ví dụ: Để đơn giản, ta giả sử có ảnh tập huấn luyện (kích thƣớc ảnh 3x3) Ta tính tốn đƣợc vector Ti có kích thƣớc (9x1) : ; ; ; [ ] [ ] [ ] Bƣớc 3: Tính vector khn mặt trung bình theo cơng thức: ∑ Cụ thể, ta có: 88 [ ] [ ] Bƣớc 4: Tính sai số vector ảnh so với giá trị vector mặt trung bình (i = M) Cụ thể ta có: ; [ ] ; [ ; ] [ ] [ Bƣớc 5: Tính ma trận hiệp phƣơng sai (covariance) C: ∑ ⇒ Ma trận C có kích thƣớc (NxP)x(NxP) = (3x3)x(3x3) Trong đó: - Ma trận A có kích thƣớc (NxP)xM A A= [Ф1, 89 ] Ф2, , ФM] - Ma trận AT ma trận chuyển vị ma trận A (Để có đƣợc ma trận AT, từ ma trận A, ta chuyển hàng thành cột, cột thành hàng => AT có kích thƣớc Mx(NxP) Cụ thể ta có: [ Ma trận A kích thƣớc (3x3)x4 ] Từ đó, ta tính đƣợc ma trận hiệp phƣơng sai C, kết nhƣ sau: [ ] Ma trận C kích thƣớc (NxP)x(NxP) = (9x9) Bƣớc 6: Tính vector riêng (Eigenvectors) ma trận vuông C = AAT Nhận thấy ma trận AAT có kích thƣớc (NxP)x(NxP), kích thƣớc ma trận lớn nên ta khơng thể tìm vector riêng trị riêng tƣơng ứng cách trực tiếp, thay vào đó, ta tìm vector riêng ma trận ATA có kích thƣớc MxM Nếu v vector riêng ma trận ATA λ trị riêng tƣơng ứng, ta có: (ATA).v = λ.v  A.(ATA).v = A.(λ.v)  (AAT).(A.v) = λ (A.v) 90 Tức u = A.v vector riêng ma trận AAT Đặt L = ATA, tìm V tập hợp vector riêng L, D tập hợp trị riêng tƣơng ứng V bao gồm K vectors riêng ứng với trị riêng lớn giá trị ứng với K trị riêng lớn D (K

Ngày đăng: 29/10/2022, 00:22