1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và cài Đặt chương trình sử dụng hog:lbp feature Để phát hiện mặt người trong video cho phép làm việc với dữ liệu Đầu vào từ webcam và file video

40 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Nghiên Cứu Và Cài Đặt Chương Trình Sử Dụng HOG/LBP Feature Để Phát Hiện Mặt Người Trong Video
Tác giả Nguyễn Ngọc Quang
Người hướng dẫn Ts. Nguyễn Hữu Tuân
Trường học Trường Đại Học Hàng Hải Việt Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo bài tập lớn
Năm xuất bản 2023
Thành phố Hải Phòng
Định dạng
Số trang 40
Dung lượng 10,57 MB

Cấu trúc

  • 2. Mục đích của đề tài (2)
  • 3. Phạm vi của đề tài (7)
  • CHƯƠNG II: CƠ SỞ LÝ THUYẾT.................................................................................................................... 1. Trích chọn đặc trưng (Feature extraction) (8)
    • 1.1. Khái niệm (8)
    • 1.2. Đặc trưng (feature) là gì? (8)
    • 1.3. Làm thế nào để trích chọn đặc trưng? (8)
    • 1.4. Phân lớp (classification) là gì? (9)
    • 2. Local Binary Patterns (LBP) (10)
      • 2.1. Giới thiệu (10)
      • 2.2. Toán tử LBP (11)
      • 2.3. Biến thể LBPH ( Local Binary Patterns Histogram) (12)
      • 2.4. Thuật toán LBP (13)
    • 3. Histogram of Oriented Gradient (HOG) (14)
      • 3.1. Giới thiệu (14)
      • 3.2. Ứng dụng của HOG (16)
      • 3.3. Thuật toán HOG (17)
  • CHƯƠNG III: XÂY DỰNG CHƯƠNG TRÌNH................................................................................................. 1. Mô hình tổng quát (18)
    • 2. Chi tiết thuật toán (18)
      • 2.1. Phát hiện khuôn mặt (18)
      • 2.2. Tiền xử lý (19)
      • 2.3. Trích xuất đặc trưng (19)
        • 2.3.1. Histogram of Oriented Gradients (HOG) (19)
        • 2.3.2. Local Binary Pattern (LBP) (20)
      • 2.4. Phân lớp (21)
      • 2.5. Tệp dữ liệu (21)
    • 3. Chi tiết chương trình (22)
      • 3.1. Khai báo thư viện (22)
      • 3.2. Lấy dữ liệu đầu vào và tiền xử lý (23)
      • 3.3. Khởi tạo các bộ phát hiện gương mặt (24)
      • 3.4. Phát hiện gương mặt (25)
      • 3.5. Hiển thị kết quả (29)
      • 3.6. Mô hình huấn luyện: face_detector_model.py (30)
    • 4. Kết quả thực hiện (35)

Nội dung

Dự án này không chỉ đặt ra thách thức về việc xử lý dữ liệu ảnh có độ biến động lớn về ánh sáng, góc chụp và chất lượng, mà còn đặt ra câu hỏi về việc kết hợp giữa công nghệ mới như học

Mục đích của đề tài

Nghiên cứu và triển khai chương trình sử dụng thuật toán HOG và LBP nhằm phát hiện khuôn mặt người, với nguồn dữ liệu đầu vào từ webcam hoặc video.

3 Công việc cần thực hiện

 Khảo sát, nghiên cứu đề tài.

 Làm báo cáo bài tập lớn

 Kết quả làm bài tập lớn: Báo cáo bài tập lớn

 Báo cáo bài tập lớn phải được trình bày theo mẫu quy định (kèm theo 1 bản mềm gồm báo cáo, slide thuyết trình, chương trình, dữ liệu được nén)

Trong thời đại công nghệ hiện nay, nhận dạng ảnh khuôn mặt trở thành một lĩnh vực nghiên cứu quan trọng và ứng dụng thực tiễn có tác động lớn đến xã hội và công nghệ Công nghệ này không chỉ bảo vệ thông tin cá nhân mà còn mở ra nhiều cơ hội trong các lĩnh vực an ninh, y tế, giáo dục và công nghiệp.

Chúng em đang nghiên cứu và phát triển một hệ thống nhận dạng ảnh khuôn mặt chính xác và hiệu quả cho cả ảnh và video Dự án này đối mặt với thách thức về xử lý dữ liệu ảnh trong điều kiện ánh sáng, góc chụp và chất lượng khác nhau, đồng thời khám phá sự kết hợp giữa công nghệ học sâu và các phương pháp truyền thống để tối ưu hiệu suất Mục tiêu chính là phát triển và đánh giá các thuật toán nhận dạng khuôn mặt trong nhiều điều kiện khác nhau, với hy vọng kết quả sẽ là bước tiến quan trọng trong lĩnh vực này, đồng thời tạo nền tảng cho các ứng dụng thực tiễn, góp phần vào sự phát triển công nghệ thông tin và xã hội hiện đại.

Chúng em xin gửi lời cảm ơn sâu sắc đến giáo viên hướng dẫn đã hỗ trợ và động viên chúng em, cũng như sự nỗ lực không ngừng của tất cả các thành viên trong nhóm Chúng em hy vọng rằng bài tập lớn này sẽ mang lại giá trị và kiến thức hữu ích cho tương lai.

MỤC LỤC CHƯƠNG I: GIỚI THIỆU 1 Hiện trạng vấn đề 1

2 Mục đích của đề tài 2

3 Phạm vi của đề tài 2

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 1 Trích chọn đặc trưng (Feature extraction) 3

1.2 Đặc trưng (feature) là gì? 3

1.3 Làm thế nào để trích chọn đặc trưng? 3

1.4 Phân lớp (classification) là gì? 4

2.3 Biến thể LBPH ( Local Binary Patterns Histogram) 7

3 Histogram of Oriented Gradient (HOG) 9

CHƯƠNG III: XÂY DỰNG CHƯƠNG TRÌNH 1 Mô hình tổng quát 13

2.3.1 Histogram of Oriented Gradients (HOG) 14

3.2 Lấy dữ liệu đầu vào và tiền xử lý 18

3.3 Khởi tạo các bộ phát hiện gương mặt 19

3.6 Mô hình huấn luyện: face_detector_model.py 25

4 Kết quả thực hiện 29 Đánh giá kết quả: 31 CHƯƠNG IV: KẾT LUẬN TÀI LIỆU THAM KHẢO

Trong những năm gần đây, trí tuệ nhân tạo (AI) đã thu hút sự chú ý lớn từ các nhà khoa học Mục tiêu chính của AI là phát triển máy tính có khả năng học hỏi từ dữ liệu, nhận diện các mô hình từ kinh nghiệm và thực hiện các nhiệm vụ thông minh, điều mà trước đây chỉ con người mới có thể làm.

Trong đó có 2 lĩnh vực chính của trí tuệ nhân tạo bao gồm:

Học máy là một lĩnh vực quan trọng trong trí tuệ nhân tạo, cho phép máy tính tự học từ dữ liệu và cải thiện hiệu suất theo thời gian mà không cần lập trình cụ thể.

Thị giác máy tính là lĩnh vực nghiên cứu nhằm giúp máy tính nhận diện và hiểu hình ảnh cũng như video Mục tiêu chính của thị giác máy tính là trang bị cho máy tính khả năng "nhìn" và "hiểu" thế giới xung quanh tương tự như con người.

Nhận diện khuôn mặt (Face Recognition) là một ứng dụng quan trọng trong lĩnh vực thị giác máy tính, cho phép xác định danh tính cá nhân dựa trên hình ảnh khuôn mặt Công nghệ này đã được áp dụng rộng rãi trong nhiều lĩnh vực như an ninh, quản lý giấy tờ, giám sát và các ứng dụng di động, web, mang lại nhiều lợi ích trong việc nâng cao hiệu quả và bảo mật.

Để giải quyết bài toán nhận diện khuôn mặt, cần khắc phục các vấn đề liên quan như ánh sáng, độ mờ, nhiễu, độ phân giải của ảnh và góc chụp.

Hiện nay, nhiều thuật toán và phương pháp nhận diện ảnh như Deep Learning, Convolutional Neural Networks (CNNs), Transfer Learning và YOLO V8 đang được sử dụng phổ biến Trong bài tập lớn này, chúng tôi sẽ tập trung vào hai phương pháp hiệu quả là Local Binary Patterns (LBP) và Histogram of Oriented Gradient (HOG) LBP là thuật toán đơn giản và hiệu quả, không bị ảnh hưởng bởi biến đổi độ sáng của hình ảnh, trong khi HOG chuyên về phân loại ảnh và nhận diện vật thể thông qua việc phân tích các cạnh và hình dạng của ảnh.

2 Mục đích của đề tài

 Tìm hiểu mô hình bài toán và các bước thực hiện hệ thống nhận diện trên khuôn mặt người

 Tìm hiểu các thuật toán, hướng phát triển bài toán được đưa ra trong mô hình

 Nghiên cứu, tìm hiểu sử dụng phương pháp trích chọn đặc trưng LBP và thuật toán HOG trong bài toán nhận diện khuôn mặt

Phạm vi của đề tài

Phát hiện mặt người sử dụng phương pháp trích chọn đặc trưng LBP và thuật toán HOG với dữ liệu đầu vào từ webcam hoặc file video.

CƠ SỞ LÝ THUYẾT 1 Trích chọn đặc trưng (Feature extraction)

Khái niệm

Trích chọn đặc trưng (feature extraction) là phương pháp rút ra các đặc điểm phân biệt nhất của ảnh hoặc đối tượng, biểu diễn dưới dạng vector đa chiều Các đặc trưng này chỉ là một phần thông tin quan trọng, giúp phân biệt các ảnh thuộc về các đối tượng khác nhau và nhận diện các bức ảnh khác nhau của cùng một đối tượng Vector đặc trưng thường có từ vài trăm đến vài nghìn giá trị, vẫn tương đối nhỏ so với độ phức tạp của dữ liệu gốc.

Sau khi trích chọn đặc trưng, việc xử lý ảnh thông qua so sánh và tính toán được thực hiện với các vector đặc trưng Trích chọn đặc trưng là bước quan trọng nhất trong hệ thống thị giác máy tính, vì nó cung cấp phương pháp số hóa dữ liệu và ảnh hưởng trực tiếp đến độ chính xác của hệ thống.

Đặc trưng (feature) là gì?

Đặc trưng trong lĩnh vực thị giác máy tính là những thông tin quan trọng giúp giải quyết các bài toán ứng dụng cụ thể Mỗi bài toán sẽ yêu cầu một loại đặc trưng khác nhau, phản ánh tính chất và yêu cầu riêng của từng ứng dụng.

Có 2 loại đặc trưng cơ bản:

 Đặc trưng cục bộ (local features): ví dụ như đối với khuôn mặt, đó là chi tiết về mắt, mũi, mồm, lông mày…

 Đặc trưng toàn cục (global features): ví dụ như đối với khuôn mặt, đó là kiểu khuôn mặt, màu da, độ lớn,…

Dạng số hóa của các đặc trưng cho ảnh là các vector đặc trưng (số).

Làm thế nào để trích chọn đặc trưng?

Để giải quyết các bài toán cụ thể, cần áp dụng các phương pháp đặc thù như LBP, SIFT, và Gabor wavelets, dựa trên kinh nghiệm và thực nghiệm.

 Cách tiếp cận dựa vào các mạng nơ ron học sâu.

Phân lớp (classification) là gì?

Phân lớp (classification) là thao tác gán nhãn cho các dữ liệu input dựa trên đánh giá về độ tương đồng so sánh với dữ liệu chuẩn (có nhãn).

Trong bài toán nhận dạng/phân lớp dữ liệu được chia thành 3 tập khác nhau:

 Tập tham chiếu (reference set) chứa các dữ liệu có nhãn chính xác (with annotation information).

Tập dữ liệu học là bộ dữ liệu chứa thông tin có thể có nhãn hoặc không, giúp hệ thống học và phát triển mô hình dự đoán Nếu thuật toán yêu cầu dữ liệu có nhãn, quá trình này được gọi là học có giám sát, trong khi đó, nếu không cần nhãn, nó được gọi là học không có giám sát.

Tập dữ liệu kiểm thử (test/validation set) là nguồn dữ liệu quan trọng để đánh giá độ chính xác của hệ thống Việc đánh giá này có thể thực hiện theo nhiều phương pháp khác nhau, tùy thuộc vào từng bài toán và mục tiêu cụ thể.

Local Binary Patterns (LBP)

LBP, hay Local Binary Pattern, là một kỹ thuật trích xuất đặc trưng ảnh dựa trên các mẫu nhị phân cục bộ Kỹ thuật này được ứng dụng rộng rãi trong nhận dạng khuôn mặt, phân loại vật liệu và phát hiện đối tượng LBP hoạt động bằng cách so sánh giá trị của một điểm ảnh với các điểm ảnh lân cận trong một khu vực nhất định, từ đó gán cho điểm ảnh đó một mã nhị phân tương ứng.

Ví dụ, nếu giá trị của điểm ảnh trung tâm là 100, và các điểm ảnh xung quanh nó là

Khi áp dụng mã LBP cho điểm ảnh trung tâm theo chiều kim đồng hồ từ 90 đến 130, ta thu được mã LBP là 00111111 Bằng cách lặp lại quy trình này cho tất cả các điểm ảnh trong ảnh, ta có thể tạo ra biểu diễn LBP cho toàn bộ ảnh Biểu diễn LBP này cho phép tính toán histogram hoặc ma trận đồng xuất hiện, giúp đo lường sự phân bố của các mẫu nhị phân trong ảnh Các histogram và ma trận đồng xuất hiện này có thể được sử dụng làm đặc trưng cho các thuật toán học máy nhằm phân loại hoặc so sánh các ảnh khác nhau.

LBP, được Ojala giới thiệu vào năm 1996, là phương pháp đo độ tương phản cục bộ của ảnh Phiên bản đầu tiên sử dụng 8 điểm ảnh xung quanh và giá trị của điểm ảnh trung tâm làm ngưỡng Giá trị LBP được tính bằng cách nhân các giá trị ngưỡng với trọng số tương ứng của từng điểm ảnh và sau đó cộng tổng lại.

Phương pháp LBP sử dụng toán tử LBP để xử lý từng điểm ảnh trong ảnh đầu vào, tạo ra ảnh đầu ra gọi là ảnh LBP Các giá trị đầu ra này được gọi là các mẫu hoặc đặc trưng LBP của ảnh.

 LBP dễ hiểu và dễ triển khai.

 Yêu cầu ít tài nguyên tính toán so với các phương pháp phức tạp hơn.

 LBP rất hiệu quả trong việc mô tả các đặc trưng cục bộ của hình ảnh, giúp trong việc nhận dạng vật thể.

 Do LBP chỉ tập trung vào các khu vực cục bộ của hình ảnh, nó có khả năng chống đối phó tốt với nhiễu.

 Có thể kết hợp LBP với các phương pháp rút trích đặc trưng khác để tăng cường hiệu suất của hệ thống nhận dạng.

 So với các phương pháp sâu hơn, LBP yêu cầu ít dữ liệu huấn luyện.

Nhược điểm của LBP là trong các trường hợp hình ảnh phức tạp và đa dạng, phương pháp này có thể không đủ mạnh mẽ để trích xuất các đặc trưng quan trọng.

Toán tử LBP là một thuật toán đơn giản được áp dụng tại mỗi điểm ảnh bằng cách so sánh giá trị mức xám của điểm ảnh với N điểm lân cận trên một đường tròn bán kính r Nếu giá trị điểm ảnh nhỏ hơn điểm lân cận, ta ghi nhận 1 bit 1, ngược lại ghi nhận 1 bit 0 Sau khi thực hiện so sánh với N điểm, các bit này được ghép lại để tạo thành một số ở cơ số 10, gọi là giá trị LBP của điểm ảnh tương ứng.

Toán tử LBP cơ bản chỉ xem xét 8 điểm lân cận với bán kính r = 1 Tuy nhiên, các toán tử LBP đã được mở rộng để bao gồm các điểm lân cận với bán kính r lớn hơn, giúp tăng cường khả năng phân tích mức xám.

Trong quá trình phân tích, 6 điểm lân cận sẽ được xem xét, mặc dù chúng không hoàn toàn nằm đúng trên hình ảnh Nội dung sẽ được xử lý theo phương pháp song tuyến tính để tính toán và so sánh với điểm đang được đánh giá.

Sau khi áp dụng toán tử LBP lên ảnh, ảnh sẽ được chia thành các vùng con rời nhau Các chuỗi histogram sẽ được tính toán và ghép lại, tạo thành vector LBP cho bức ảnh.

2.3 Biến thể LBPH ( Local Binary Patterns Histogram)

LBPH là phương pháp nhận dạng khuôn mặt dựa trên so sánh cường độ của các điểm ảnh lân cận Bước tạo histograms là rất quan trọng trong LBPH, vì nó thể hiện đặc trưng của từng vùng khuôn mặt dưới dạng vector số Để tạo ra các histogram này, cần thực hiện một số bước cụ thể.

Chia khuôn mặt thành các vùng nhỏ có kích thước đồng nhất, chẳng hạn như 8x8 điểm ảnh, nhằm mục đích giảm độ phức tạp của dữ liệu và nâng cao tính đồng nhất của các vùng khuôn mặt.

Để tính toán giá trị LBP (Local Binary Pattern) cho mỗi điểm ảnh trong từng vùng, ta so sánh giá trị cường độ của điểm ảnh với các điểm ảnh lân cận xung quanh theo hình tròn Nếu giá trị cường độ của điểm ảnh lân cận lớn hơn hoặc bằng giá trị của điểm ảnh đang xét, ta gán cho nó giá trị 1; ngược lại, gán giá trị 0 Cuối cùng, các giá trị này sẽ được ghép lại với nhau để tạo thành một chuỗi LBP.

Để chuyển đổi dãy số nhị phân 0 và 1 thành số nhị phân 8 bit, ta thực hiện quá trình chuyển đổi sang hệ thập phân nhằm thu được giá trị LBP Công thức tính giá trị LBP có thể được diễn đạt một cách rõ ràng như sau:

Trong công thức này, p_c đại diện cho cường độ của điểm ảnh đang được xem xét, trong khi p_i là cường độ của các điểm ảnh lân cận theo chiều kim đồng hồ Hàm dấu s(x) được định nghĩa như sau: s(x) = {1 nếu x >= 0; 0 nếu x < 0}.

Để tạo histogram cho mỗi vùng, cần đếm số lần xuất hiện của các giá trị LBP khác nhau Histogram có thể chứa tối đa 256 giá trị, tương ứng với khả năng của số nhị phân 8 bit Nó biểu diễn tần suất xuất hiện của các mẫu LBP trong vùng, phản ánh sự thay đổi cường độ của các điểm ảnh trong khu vực đó.

Histogram of Oriented Gradient (HOG)

HOG, viết tắt của Histogram of Oriented Gradient, là một loại "feature descriptor" dùng để trừu tượng hóa đối tượng bằng cách trích xuất các đặc trưng quan trọng và loại bỏ thông tin không cần thiết HOG chủ yếu được áp dụng để mô tả hình dạng và sự xuất hiện của đối tượng trong hình ảnh.

Thuật toán phát hiện vật thể sử dụng các bộ mô tả đặc trưng (feature descriptor) để phân tích hình ảnh Từ một bức ảnh, hai ma trận quan trọng được trích xuất là độ lớn gradient và phương của gradient Kết hợp thông tin này vào một biểu đồ phân phối histogram, độ lớn gradient được phân loại theo các nhóm bins của phương gradient, tạo ra véc tơ đặc trưng HOG Trong thực tế, thuật toán hoạt động phức tạp hơn khi véc tơ HOG được tính toán trên từng vùng cụ bộ như trong mạng CNN và trải qua quá trình chuẩn hóa để đồng nhất độ đo Cuối cùng, véc tơ HOG tổng hợp từ các véc tơ trên các vùng cục bộ.

Hình 11: Histogram of Oriented Gradient

 HOG có khả năng tốt trong việc mô tả các đặc trưng cục bộ của hình ảnh, đặc biệt là các cạnh và các đặc trưng hình học.

 HOG có thể chống đối phó tốt với các biến đổi ánh sáng, giúp tăng tính ổn định của thuật toán trong các điều kiện ánh sáng khác nhau.

HOG có khả năng chịu đựng các biến đổi cơ bản như quay, dịch chuyển và co giãn, từ đó nâng cao khả năng nhận diện trong những tình huống thực tế.

 Các đặc trưng HOG có thể được tổng hợp lại thành các vector đặc trưng để sử dụng trong các thuật toán máy học, như máy học phổ biến.

 HOG được sử dụng rộng rãi trong các ứng dụng nhận dạng vật thể, như nhận diện khuôn mặt và nhận diện chữ viết.

 HOG có thể không hiệu quả nếu vị trí hoặc tư thế của đối tượng thay đổi đáng kể.

 Trong trường hợp các biến đổi đối với đối tượng lớn hoặc các biến đổi không đều, HOG có thể không còn hiệu quả.

So với các phương pháp đơn giản như LBP, HOG có độ phức tạp cao hơn trong việc rút trích đặc trưng, đặc biệt là khi xử lý các hình ảnh có độ phân giải cao.

 HOG đòi hỏi một số lượng dữ liệu huấn luyện lớn để học được các trọng số tốt, đặc biệt là trong các tác vụ nhận diện phức tạp.

 HOG có thể không hiệu quả nếu đối tượng được quan sát từ các góc nhìn khác nhau và không có sự chuẩn hóa góc nhìn.

Human detection was first introduced in the paper "Histograms of Oriented Gradients for Human Detection" by Dalal and Trigg The HOG (Histograms of Oriented Gradients) method is capable of detecting one or multiple pedestrians within a single image.

Nhận diện khuôn mặt là một ứng dụng quan trọng trong công nghệ hiện đại, trong đó thuật toán HOG (Histogram of Oriented Gradients) được sử dụng hiệu quả Thuật toán này có khả năng biểu diễn các đường nét chính của khuôn mặt thông qua việc phân tích phương và độ lớn gradient, sử dụng các véc tơ trên mỗi cell để xác định các đặc điểm nổi bật.

Hình 13: Nhận diện khuôn mặt

Nhận diện các vật thể trong ảnh tĩnh là một lĩnh vực quan trọng, bao gồm việc xác định phương tiện, tín hiệu giao thông, động vật và ngay cả các đối tượng trong video.

Trong các bài toán phân loại ảnh với bộ dữ liệu nhỏ, việc sử dụng mạng học sâu có thể không hiệu quả và dễ dẫn đến hiện tượng overfitting Nguyên nhân là do dữ liệu hạn chế không đủ để máy tính nhận diện đặc trưng của vật thể một cách chính xác Do đó, việc áp dụng phương pháp HOG để tạo đặc trưng sẽ mang lại kết quả tốt hơn Ở cuối bài viết, tôi sẽ trình bày một ví dụ cụ thể để minh họa cho điều này.

Có 5 bước cơ bản để xây dựng một vector HOG cho hình ảnh, bao gồm:

Chuyển đổi ảnh sang ảnh xám (Grayscale) là bước đầu tiên trong quá trình xử lý hình ảnh với HOG, giúp tập trung vào các gradient của ảnh Việc này giảm thiểu thông tin màu sắc không cần thiết, tạo điều kiện thuận lợi cho việc phân tích hình ảnh hiệu quả hơn.

Gradient là thước đo sự biến đổi độ sáng của hình ảnh theo hai hướng chính là trục x và y Một trong những phương pháp phổ biến để tính gradient là sử dụng bộ lọc Sobel, cho phép xác định gradient theo trục x (Gx) và y (Gy) cho mỗi điểm ảnh.

Khi đó, bạn có thể tính được Gradient bao gồm hai thành phần cường độ (Magnitude) và góc (Orientation):

3 Tính vector đặc trưng cho từng ô (cells) Ảnh được chia thành các ô nhỏ (cells), mỗi ô có kích thước thường là 8x8 pixel (hoặc kích thước khác tùy thuộc vào bài toán) Trong mỗi ô, các hướng gradient được phân chia thành một số bins (thường là 9 bins, mỗi bin tương ứng với một khoảng hướng 20 độ)

Mỗi bin trong histogram đại diện cho một hướng cụ thể của gradient trong khu vực đó, và các gradient của từng ô sẽ được phân bổ vào các bin tương ứng.

4 Chuẩn hóa khối (blocks) Để tăng cường hiệu năng nhận dạng, các histogram cục bộ sẽ được chuẩn hóa về độ tương phản bằng cách tính một ngưỡng cường độ trong một khối và sử dụng giá trị đó để chuẩn hóa tất cả các ô trong khối Kết quả sau bước chuẩn hóa sẽ là một vector đặc trưng có tính bất biến cao hơn đối với các thay đổi về điều kiện ánh sáng.

5 Tính toán vector đặc trưng HOG

Sau khi chuẩn hóa, các đặc trưng từ các block được kết hợp thành một vector đặc trưng, đại diện cho đặc trưng của vùng ảnh, chứa thông tin về hướng và cường độ gradient Vector này có thể được sử dụng làm đầu vào cho các mô hình phân loại như SVM (Support Vector Machine) để nhận dạng đối tượng.

XÂY DỰNG CHƯƠNG TRÌNH 1 Mô hình tổng quát

Chi tiết thuật toán

 Bước 1: Hình ảnh (đã được gửi đến bộ phân loại) được chia thành các phần nhỏ (hoặc các cửa sổ con như trong hình minh họa).

Bước 2: Đặt N không có bộ dò theo phương pháp xếp tầng, trong đó mỗi bộ sẽ phát hiện sự kết hợp của các loại đặc trưng khác nhau từ hình ảnh như đường thẳng, cạnh, hình tròn và hình vuông Khi thực hiện trích xuất đối tượng địa lý, mỗi phần phụ sẽ được gán một giá trị tin cậy.

Hình 14: Sơ đồ thuật toán

Trong bước 3, hình ảnh có độ tin cậy cao nhất dưới dạng khuôn mặt sẽ được phát hiện và gửi đến bộ tích lũy, trong khi các hình ảnh khác sẽ bị từ chối Nếu còn lại hình ảnh, Cascade sẽ tiếp tục tìm nạp khung hình tiếp theo và khởi động lại quá trình.

Lọc nhiễu ảnh và cân bằng Histogram, chuẩn hóa ánh sáng cho phù hợp với điều kiện phát hiện ảnh.

The HOG (Histogram of Oriented Gradients) and LBP (Local Binary Pattern) algorithms are both effective methods for feature extraction from images, playing a crucial role in image processing and object recognition.

2.3.1 Histogram of Oriented Gradients (HOG)

HOG (Histogram of Oriented Gradients) là phương pháp rút trích đặc trưng từ hình ảnh, tính toán hướng và độ lớn của các gradient trong các ô nhỏ Phương pháp này chủ yếu được áp dụng trong nhận diện vật thể, giúp cải thiện độ chính xác trong việc nhận diện và phân loại đối tượng.

Các bước tính đặc trưng HOG

 Chuẩn bị ảnh đầu vào:

Chuyển đổi ảnh màu sang ảnh grayscale nếu ảnh chưa ở định dạng này Đồng thời, điều chỉnh kích thước ảnh về kích thước cố định để đơn giản hóa quá trình tính toán.

Tính đạo hàm theo x và y bằng cách sử dụng kernel gradient như Sobel để tìm gradient theo hướng x và y Tính toán magnitude và hướng của gradient

 Chia ảnh thành các ô (cells):

Chia ảnh thành các ô nhỏ không chồng lấn Một ô thường có kích thước là 8x8 pixels.

 Tính toán histogram của hướng gradient trong từng ô

Chia ô thành các điểm (pixels) và cho mỗi điểm, thêm hướng gradient vào một trong các bin của histogram dựa trên hướng gradient của điểm đó Thông thường, có 9 bins để bao phủ 180 độ, với các giá trị trong histogram thể hiện sự phân phối của các hướng gradient trong ô.

Ghép các ô liền kề thành các khối 2x2 để tạo thành các đơn vị lớn hơn Việc chuẩn hóa histogram của những khối này giúp giảm thiểu tác động của ánh sáng, đồng thời cải thiện khả năng bất biến đối với sự thay đổi độ sáng.

 Kết hợp các vector đặc trưng HOG:

Kết hợp các vector đặc trưng HOG từ các khối thành một vector đặc trưng duy nhất để biểu diễn toàn bộ ảnh.

LBP (Local Binary Patterns) là phương pháp rút trích đặc trưng cục bộ từ hình ảnh, thông qua việc so sánh giá trị của các điểm lân cận với điểm trung tâm trong các ô nhỏ Phương pháp này chủ yếu được áp dụng trong nhận diện khuôn mặt và nhiều ứng dụng khác trong xử lý ảnh.

Các bước tính toán thuật toán LBP trích chọn đặc trưng:

 Chia ảnh thành các ô (cells):

Chia ảnh thành các ô nhỏ không chồng lấn Một ô thường có kích thước là 3x3 hoặc 5x5 pixels.

 Tính toán LBP cho từng ô:

Trong mỗi ô, xác định một điểm trung tâm và so sánh giá trị pixel của các điểm xung quanh với điểm trung tâm Nếu giá trị pixel của các điểm xung quanh lớn hơn hoặc bằng giá trị của điểm trung tâm, gán giá trị 1; ngược lại, gán giá trị 0 Cuối cùng, sắp xếp các giá trị nhị phân thu được thành một chuỗi 8-bit, tương ứng với 8 điểm xung quanh mỗi ô.

 Chuyển đổi giá trị nhị phân thành giá trị thập phân:

Chuyển chuỗi nhị phân thành giá trị thập phân để tạo ra một số nguyên duy nhất để đại diện cho mẫu LBP của mỗi ô

 Kết hợp các giá trị LBP:

Kết hợp các giá trị LBP của các ô thành một vector hoặc ma trận để biểu diễn toàn bộ ảnh.

Sử dụng thuật toán SVM (Support Vector Machine) giúp phân lớp khuôn mặt trong ảnh hoặc video, xác định xem khuôn mặt có xuất hiện trong nội dung được đưa vào hay không.

Dữ liệu huấn luyện được thu thập từ hai tập dữ liệu phổ biến như COCO và ImageNet, cho phép người dùng lọc ảnh theo nhãn để chỉ lấy những hình ảnh không có khuôn mặt (như xe hơi, đồ vật, động vật, phong cảnh) hoặc những ảnh chỉ chứa khuôn mặt người nhằm phục vụ cho quá trình huấn luyện.

Hình 15: Tệp dữ liệu mặt người

Hình 16: Tệp dữ liệu không có mặt người

Chi tiết chương trình

Trong số các thư viện khai báo, ngoài những thư viện phục vụ cho tính toán và thiết kế giao diện, chúng ta cần đặc biệt lưu ý đến một số thư viện quan trọng khác.

Thư viện cv2 của OpenCV là một công cụ mạnh mẽ trong lĩnh vực xử lý ảnh và thị giác máy tính Trong chương trình, OpenCV được sử dụng để thực hiện các tác vụ liên quan đến ảnh và video, đồng thời hỗ trợ việc áp dụng thuật toán LBP để phát hiện khuôn mặt hiệu quả.

Thư viện joblib trong Python là công cụ hữu ích cho việc lưu trữ và tải lại các đối tượng phức tạp, đặc biệt là các mô hình học máy Joblib giúp tiết kiệm thời gian tính toán khi huấn luyện lại mô hình bằng cách lưu trữ trạng thái của mô hình dưới dạng tệp, cho phép tái sử dụng chúng trong tương lai.

Thư viện Scikit-learn là một công cụ mã nguồn mở mạnh mẽ trong Python, chủ yếu được sử dụng cho học máy Nó cung cấp các công cụ hiệu quả cho các tác vụ như phân loại, hồi quy, cụm và giảm chiều dữ liệu Scikit-learn hỗ trợ nhiều mô hình học máy phổ biến như SVM, cây quyết định và hồi quy tuyến tính, cùng với các thuật toán học không giám sát Thư viện này cũng bao gồm các công cụ hữu ích để chuẩn bị dữ liệu, đánh giá mô hình và tối ưu hóa tham số, giúp các nhà phát triển dễ dàng xây dựng và triển khai ứng dụng học máy.

Thư viện scikit-image là một công cụ mạnh mẽ trong Python cho xử lý và phân tích hình ảnh, cung cấp nhiều công cụ hữu ích cho các tác vụ như biến đổi hình ảnh, phát hiện cạnh, phân đoạn và trích xuất đặc trưng Một chức năng quan trọng của thư viện này là local_binary_pattern (LBP), giúp trích xuất đặc trưng LBP từ hình ảnh một cách hiệu quả.

Hình 17: Khai báo thư viện

3.2 Lấy dữ liệu đầu vào và tiền xử lý.

Hình 18: Lấy dữ liệu đầu vào và tiền xử lý

Lấy dữ liệu đầu vào:

Dữ liệu đầu vào cho quá trình xử lý video được lấy từ một video hoặc webcam thông qua hàm process_video() Hàm này sử dụng cv2.VideoCapture(video_source) để mở tệp video hoặc kết nối với webcam khi video_source được đặt là 0.

- Khung hình video: Mỗi khung hình của video (hoặc webcam) được lấy bằng ret, frame = cap.read() trong vòng lặp while.

Để phát hiện khuôn mặt hiệu quả, ảnh đầu vào cần được chuyển đổi sang ảnh xám bằng cách sử dụng cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) Việc này rất quan trọng vì hầu hết các mô hình phát hiện khuôn mặt hoạt động tốt hơn với hình ảnh ở định dạng xám.

- Phóng to ảnh: Ảnh đầu vào (khung hình) được thay đổi kích thước bằng cv2.resize(frame, None, fx=scale_factor, fy=scale_factor,

18 interpolation=cv2.INTER_LINEAR) để giảm kích thước ảnh và cải thiện hiệu suất phát hiện khuôn mặt Tỷ lệ thu nhỏ được xác định bởi scale_factor = 0.5.

Hàm extract_hog_features() và extract_lbp_features() được sử dụng để tiền xử lý và trích xuất đặc trưng từ khuôn mặt đã cắt ra, với hàm đầu tiên áp dụng mô tả HOG và hàm thứ hai sử dụng Local Binary Pattern (LBP).

3.3 Khởi tạo các bộ phát hiện gương mặt.

Hình 19: Bộ phát hiện gương mặt

Dòng lệnh Face_cascade = cv2.CascadeClassifier(CASCADE_PATH) khởi tạo bộ phát hiện khuôn mặt bằng cách sử dụng Cascade Classifier với mô hình Haar, dựa trên tệp XML chứa thông tin về cấu trúc khuôn mặt.

- Faces = cascade.detectMultiScale( ): Sau khi khởi tạo, hàm detectMultiScale sẽ tìm kiếm khuôn mặt trong khung hình đầu vào.

Mô hình HOG được tải từ tệp đã huấn luyện (hog_model = joblib.load(HOG_MODEL_PATH)) và được sử dụng để dự đoán khuôn mặt trong hình ảnh Hàm extract_hog_features giúp trích xuất các đặc trưng HOG từ từng khuôn mặt đã được phát hiện.

Mô hình LBP được tải từ tệp đã huấn luyện bằng cách sử dụng lệnh `lbp_model = joblib.load(LBP_MODEL_PATH)` Tương tự như HOG, hàm `extract_lbp_features` được áp dụng để trích xuất các đặc trưng LBP từ khuôn mặt.

Bộ phát hiện khuôn mặt này sử dụng Cascade Classifier để nhận diện khuôn mặt trong hình ảnh, sau đó áp dụng các mô hình HOG và LBP để xác thực và lưu trữ các khuôn mặt đã được phát hiện nếu quá trình nhận diện thành công.

Hình 20: Phát hiện mặt người

Chuyển đổi ảnh sang ảnh xám:

Để chuẩn bị cho quá trình phát hiện khuôn mặt, khung hình đầu vào (ảnh màu) được chuyển đổi thành ảnh xám bằng cách sử dụng hàm cv2.cvtColor với tham số cv2.COLOR_BGR2GRAY.

Phát hiện khuôn mặt bằng Haar Cascade:

Hàm cascade.detectMultiScale là công cụ hiệu quả để phát hiện khuôn mặt trong ảnh xám Các tham số như scaleFactor, minNeighbors và minSize có vai trò quan trọng trong việc điều chỉnh quy trình phát hiện, giúp tối ưu hóa giữa tốc độ và độ chính xác.

Trích xuất đặc trưng HOG và LBP:

- Đối với mỗi khuôn mặt được phát hiện (với tọa độ (x, y, w, h)), hai loại đặc trưng (HOG và LBP) được trích xuất từ vùng khuôn mặt:

Hình 21: Trích xuất đặc trưng HOG và LBP

Dự đoán và xác nhận khuôn mặt:

Các đặc trưng HOG và LBP được sử dụng để dự đoán tính hợp lệ của khuôn mặt bằng cách áp dụng mô hình đã được huấn luyện thông qua các phương thức hog_model.predict và lbp_model.predict.

Kết quả thực hiện

Hình 29: Kết quả chạy chương trình

Hình 30: Kết quả được lưu lại Đánh giá kết quả:

Hệ thống hoạt động hiệu quả khi hình ảnh có kích thước lớn và ánh sáng tốt, cho phép bắt chuyển động mượt mà và ổn định Thời gian thực thi ngắn trong điều kiện có ít đối tượng cũng là một yếu tố quan trọng để đảm bảo hiệu suất tối ưu.

Các ứng dụng yêu cầu độ chính xác cao, như giám sát an ninh trong môi trường ổn định hoặc phát hiện khuôn mặt rõ ràng, rất phù hợp với công nghệ này Tuy nhiên, vẫn tồn tại một số điểm yếu cần được khắc phục.

Khi gặp phải các tình huống như khuôn mặt có góc nghiêng, ánh sáng kém, hoặc bị che khuất một phần, việc nhận diện khuôn mặt sẽ gặp khó khăn Đặc biệt, trong trường hợp khuôn mặt ở xa hoặc hình ảnh bị mờ, không rõ nét, khả năng xác định sẽ không thể thực hiện được.

HOG yêu cầu tính toán phức tạp, đặc biệt trong việc trích xuất đặc trưng và huấn luyện các bộ phân loại, dẫn đến thời gian xử lý tăng cao, nhất là khi có nhiều đối tượng.

Công nghệ phát hiện khuôn mặt cho thấy hiệu quả vượt trội trong các điều kiện ánh sáng không đồng đều và khi đối tượng có màu sắc khác biệt Nó có khả năng nhận diện gương mặt từ khoảng cách xa, cũng như phát hiện các gương mặt nhỏ trong hình ảnh.

Công nghệ phát hiện khuôn mặt trong thời gian thực rất phù hợp cho các ứng dụng di động và hệ thống hạn chế về phần cứng, đặc biệt trong môi trường có ánh sáng không đồng đều Tuy nhiên, vẫn tồn tại một số điểm yếu cần khắc phục.

Trong các điều kiện phức tạp, LBP thường có độ chính xác thấp hơn HOG, đặc biệt khi khuôn mặt xuất hiện ở góc nghiêng hoặc bị che khuất một phần.

Phát hiện đối tượng có thể gặp khó khăn trong các điều kiện khác nhau, đặc biệt là khi góc nhìn bị thay đổi hoặc bị che khuất Trong môi trường ánh sáng yếu, khả năng phát hiện sẽ giảm đáng kể, dẫn đến độ chính xác không ổn định.

Tương tác ảo (với các thiết bị không chạm, người máy, trợ lý ảo):

Công nghệ phát hiện và nhận diện khuôn mặt đang ngày càng trở nên phổ biến trong các hệ thống an ninh, từ cửa ra vào thông minh cho đến các thiết bị điện thoại và máy tính Hệ thống này không chỉ giúp bảo vệ an toàn mà còn nâng cao trải nghiệm người dùng, đồng thời được ứng dụng rộng rãi trong các giải pháp giám sát video.

Công nghệ phát hiện khuôn mặt đang được ứng dụng rộng rãi trong các ứng dụng di động, đặc biệt là trong các trò chơi yêu cầu người chơi sử dụng cảm biến khuôn mặt để tương tác Những ứng dụng này không chỉ mang lại trải nghiệm thú vị mà còn tạo ra sự kết nối sâu sắc giữa người dùng và trò chơi thông qua việc nhận diện và phản hồi theo biểu cảm khuôn mặt.

AR (thực tế tăng cường) hay tiêu biểu là camera chụp hình.

Các hệ thống trợ lý ảo như Google Assistant và Siri có khả năng sử dụng công nghệ phát hiện khuôn mặt để nhận diện người dùng, từ đó điều chỉnh các cài đặt giao tiếp và tùy chỉnh phản hồi hoặc dịch vụ phù hợp với từng người Điều này đặc biệt hữu ích trong lĩnh vực chăm sóc sức khỏe, nơi mà việc cá nhân hóa trải nghiệm người dùng có thể nâng cao chất lượng dịch vụ y tế.

Công nghệ nhận diện khuôn mặt có thể được áp dụng trong các ứng dụng chẩn đoán, giúp bác sĩ và chuyên gia y tế phát hiện các triệu chứng hoặc thay đổi trên khuôn mặt bệnh nhân, chẳng hạn như trong phân tích cảm xúc hoặc nhận diện tình trạng sức khỏe.

Giám sát thời gian thực:

Hệ thống giám sát an ninh sử dụng công nghệ nhận diện khuôn mặt trong đám đông để xác định các đối tượng cần chú ý, từ đó hỗ trợ quá trình điều tra và thu thập thông tin hiệu quả.

Sau khi nghiên cứu và thực hiện bài tập lớn, tôi đã nâng cao hiểu biết về phương pháp trích xuất đặc trưng LBP và HOG, đồng thời thành công trong việc cài đặt chương trình phát hiện mặt người bằng thuật toán HOG/LBP.

HOG và LBP là hai phương pháp hiệu quả trong phát hiện khuôn mặt, mỗi phương pháp có những ưu điểm và nhược điểm riêng HOG phù hợp hơn trong các tình huống có sự thay đổi về góc độ và chi tiết hình ảnh, trong khi LBP nổi bật trong việc xử lý các vấn đề liên quan đến ánh sáng và khả năng hoạt động trong thời gian thực.

Ngày đăng: 06/02/2025, 16:08

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN