• Không có kết quả nào được tìm thấy

Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng OpenCV

Protected

Academic year: 2023

Chia sẻ "Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng OpenCV"

Copied!
61
0
0

Loading.... (view fulltext now)

Văn bản

Tên dự án: “Tạo ứng dụng nhận diện khuôn mặt trong ảnh bằng OpenCV”. Tìm hiểu một số hàm cơ bản trong thư viện OpenCV dùng để nhận diện khuôn mặt trong ảnh. Lý thuyết: Đề tài trình bày các câu hỏi cơ bản về nhận diện khuôn mặt trong ảnh, các hàm Haar, các hàm cơ bản trong OpenCV sử dụng trong nhận diện khuôn mặt trong ảnh.

Thử nghiệm: Đề tài cài đặt chương trình phát hiện khuôn mặt trong ảnh sử dụng hàm OpenCV, chỉ dừng lại ở việc phát hiện khuôn mặt nhìn thẳng (nghiêng, xoay ít). Phát hiện khuôn mặt người trong ảnh là một phần quan trọng của hệ thống nhận dạng khuôn mặt con người đó. Một giải pháp nhận diện khuôn mặt con người tốt sẽ giúp tiết kiệm thời gian và nâng cao độ chính xác của nhận dạng khuôn mặt. Phát hiện khuôn mặt người cũng là một bài toán nhận dạng đơn giản; hệ thống chỉ cần phân loại đối tượng đầu vào có phải là khuôn mặt người hay không.

Ở cấp độ cao hơn, sau khi phát hiện khuôn mặt, những khuôn mặt đó sẽ được so sánh với các khuôn mặt trong dữ liệu để xác định đó là khuôn mặt của ai (thường được sử dụng trong nhận dạng khuôn mặt). người nổi tiếng hoặc tội phạm bị truy nã). Với mục tiêu chính là tìm hiểu các đặc điểm giống haar, mô hình Cascade of Classifiers và ứng dụng của nó vào vấn đề nhận diện khuôn mặt người trong ảnh.

Tổng quan về phát hiện khuôn mặt

  • Giới thiệu phát hiện khuôn mặt
  • Các hướng tiếp cận trong phát hiện khuôn mặt
    • Hướng tiếp cận dựa trên tri thức
    • Hướng tiếp cận dựa trên đặc trưng không đổi
    • Hướng tiếp cận dựa trên so lớp mẫu
    • Hướng tiếp cận dựa trên máy học
    • Hướng tiếp cận tổng hợp
  • Khó khăn và thách thức trong bài toán phát hiện khuôn mặt
  • Một số lĩnh vực ứng dụng phát hiện khuôn mặt

Với hệ thống máy tính, chúng ta có thể làm được nhiều việc, tiết kiệm thời gian, công sức. Trước đây, để tìm ra nghi phạm trong siêu thị hay sân bay, nhân viên an ninh phải kiểm tra từng màn hình camera giám sát. Ngày nay, công việc này được thực hiện tự động nhờ hệ thống nhận dạng khuôn mặt.

Phát hiện khuôn mặt sử dụng đặc trưng Haar

Đặc trưng của Haar

  • Đối tượng nhận dạng
  • Đặc trưng

Bộ phân lớp AdaBoost

  • Giới thiệu
  • Các hướng tiếp cận dò tìm khuôn mặt nhanh
  • Thuật toán AdaBoost
  • Bộ phân lớp AdaBoost

Dò tìm khuôn mặt

Nhận xét

  • Ưu điểm
  • Nhược điểm

Thực nghiệm phát hiện khuôn mặt

Mô tả bài toán

Để nhận dạng khuôn mặt sử dụng các đặc điểm giống tóc, trước tiên chúng ta cần hiển thị hình ảnh ở thang độ xám, sau đó chạy các đặc điểm giống tóc trên toàn bộ hình ảnh. Các khu vực so sánh được cho là giống với đặc điểm giống tóc nhất sẽ được làm nổi bật lại. Từ ảnh gốc, chúng ta tính toán ảnh tích phân, một mảng hai chiều gồm các phần tử (x,y) được tính bằng tổng của các phần tử (x',y') với x' < y và y' < y. tính toán nhanh tổng các giá trị mức xám của từng vùng hình chữ nhật trên ảnh gốc. Các vùng ảnh con này được truyền qua các hàm Haar cơ bản để ước tính các đặc điểm, kết quả ước lượng được truyền qua bộ điều khiển Adaboost để loại bỏ nhanh chóng các đặc điểm không chắc là đặc điểm khuôn mặt.

Chỉ một tập hợp nhỏ các tính năng mà bộ điều chỉnh Adaboost coi có thể là các đặc điểm khuôn mặt người mới được chuyển đến bộ quyết định đầu ra (là tập hợp các bộ phân loại yếu). Người ra quyết định sẽ tóm tắt kết quả dưới dạng khuôn mặt người nếu kết quả của các bộ phân loại yếu trả về dưới dạng khuôn mặt người. Bất kỳ trình phân loại yếu nào cũng sẽ xác định điểm cho đặc điểm giống Haar, với ngưỡng được đặt đủ nhỏ để có thể vượt qua tất cả các tập dữ liệu mẫu trong tập dữ liệu huấn luyện (số lượng hình ảnh khuôn mặt trong bài tập huấn luyện.

Phát hiện khuôn mặt sử dụng hàm OpenCV

  • OpenCV là gì

OpenCV cung cấp một hệ thống đơn giản, dễ sử dụng giúp mọi người nhanh chóng xây dựng các ứng dụng thị giác máy, bao gồm hệ thống kiểm tra nhà máy, hình ảnh y tế, bảo mật và robot. Nó chứa các chương trình xử lý hình ảnh đơn giản, bao gồm việc thực hiện các chức năng cấp cao như nhận diện khuôn mặt, theo dõi khuôn mặt và nhận dạng khuôn mặt. OpenCV được giới thiệu vào tháng 1 năm 1999, OpenCV đã được sử dụng trong nhiều ứng dụng, sản phẩm và nghiên cứu như: trong ngành hàng không, sử dụng giảm tiếng ồn trong y học, phân tích đối tượng, an toàn, bảo mật, hệ thống phát hiện, hệ thống theo dõi và an toàn tự động. ., ngoài ra nó còn được dùng để nhận dạng âm thanh.

OpenCV cũng là chìa khóa quan trọng trong các robot sử dụng tầm nhìn như Stanford và Asimo. Trong quá trình cài đặt Opencv 3.4.2 đã có sẵn tệp huấn luyện. Như vậy, phương pháp HA sẽ không khai thác đặc điểm màu sắc khuôn mặt để nhận dạng nhưng vẫn rất hiệu quả.

Hình ảnh màu được chuyển thành hình ảnh màu xám để nhận dạng. Việc chuyển đổi này khá đơn giản, được thực hiện bằng chức năng chuyển đổi và chỉ được sử dụng bằng một lệnh trong Opencv nên báo cáo không đề cập đến việc này. Sau khi chuyển đổi sang ảnh thang độ xám, ảnh được chuyển đổi trở lại thành "ảnh tích hợp" và trong bước đầu tiên của quá trình nhận dạng, các đặc điểm giống Haar sẽ tác động trực tiếp lên ảnh tích hợp. Như vậy sẽ có nhiều ảnh con tương ứng với mỗi cửa sổ con. Các đối tượng địa lý giống Haar sẽ được đặt trong các cửa sổ phụ này để tính giá trị của đối tượng địa lý.

Các giá trị này sau đó được tập huấn luyện sử dụng để xác nhận xem khung có phải là khuôn mặt hay không. Các tính năng của Haar sẽ so sánh với tập mẫu huấn luyện và sẽ làm nổi bật những vị trí có thể là khuôn mặt trong ảnh. Hàm DetectMultiScale sau khi hoàn tất tìm kiếm sẽ trả về một tập giá trị, bao gồm tọa độ ban đầu của khung chứa bề mặt x,y; chiều dài và chiều rộng khung b, h.

Sau khi đánh dấu tất cả các vị trí có thể là các mặt, chúng ta kết hợp các hình chữ nhật có cùng một mặt để tạo chỉ một hình chữ nhật cho 1 mặt. Bạn cũng sẽ biết cách sử dụng các hàm có sẵn trong thư viện OpenCV. Còn với chương trình thì mình chỉ nhận diện khuôn mặt người trong ảnh, kết quả như mong đợi, thời gian nhận diện nhanh đối với khuôn mặt người chụp thẳng, chất lượng ảnh tốt, không có chướng ngại vật..., nhưng trong trường hợp ảnh được chụp từ góc nhỏ hoặc ảnh có màu tối thì chương trình chưa nhận diện được khuôn mặt trong ảnh đó.

Hình 3-2: Cấu trúc cơ bản của OpenCV
Hình 3-2: Cấu trúc cơ bản của OpenCV

Hình ảnh

Hình 1-1: Các bước chính trong một hệ thống nhận dạng mặt người
Hình 1-2: (a) Ảnh ban đầu có độ phân giải n = 1; (b), (c), và (d) Ảnh có độ  phân giải n = 4, 8, 16
Hình 1-3: Một loại tri thức của người nghiên cứu phân tích trên khuôn mặt.
Hình 1-4:  Phương pháp chiếu
+7

Tài liệu tham khảo

Đề cương

Tài liệu liên quan

Thanh công thức: là công cụ đặc trưng của bảng tính được sử dụng để nhập, hiện thị dữ liệu hoặc công thức trong ô tính.. Màn hình làm việc của Excel.. b)Di chuyển