1. Trang chủ
  2. » Tất cả

Đề tài nhận diện khuôn mặt

10 9 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề Tài Nhận Diện Khuôn Mặt
Tác giả Lê Hoàng Thái
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tiểu luận
Định dạng
Số trang 10
Dung lượng 0,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIÊN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG TIỂU LUẬN XỬ LÝ ẢNH ĐỀ TÀI NHẬN DIỆN KHUÔN MẶT GIÁO VIÊN Lê Hoàng Thái Mở Đầu Xử lý ảnh kỹ thuật số thao tác, xử lý các hình ảnh kỹ[.]

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIÊN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

TIỂU LUẬN: XỬ LÝ ẢNH

ĐỀ TÀI: NHẬN DIỆN KHUÔN MẶT

GIÁO VIÊN: Lê Hoàng Thái

Trang 2

Mở Đầu.

Xử lý ảnh kỹ thuật số: thao tác, xử lý các hình ảnh kỹ thuật số thông qua một máy tính kỹ thuật

số Môn học này là một trường con của tín hiệu và hệ thống nhưng tập trung chủ yếu vào hình ảnh DIP tập trung vào việc phát triển một hệ thống máy tính có khả năng thực hiện xử lý trên một ảnh Các đầu vào của hệ thống đó là một hình ảnh kỹ thuật số và hệ thống xử lý hình ảnh

đó bằng cách sử dụng các thuật toán hiệu quả, và đưa ra một hình ảnh mà ta mong muốn Các

ví dụ phổ biến nhất là Adobe Photoshop Nó là một trong những ứng dụng được sử dụng rộng rãi để xử lý hình ảnh kỹ thuật số

Cách thức hoạt động:

Trong hình, một hình ảnh đã được chụp bởi một máy ảnh và đã được gửi đến một hệ thống xử

lý để loại bỏ tất cả các chi tiết khác, chỉ tập trung vào những giọt nước bằng cách phóng to nó

mà không làm mất chất lượng hình ảnh

Đối tượng

- Hướng dẫn này cung cấp cho bạn những kiến thức về phương pháp và thuật toán được sử dụng rộng rãi cho việc xử lý hình ảnh kỹ thuật số để nâng cao hình ảnh, khôi phục và thực hiện các hoạt động trên hình ảnh như (làm mờ, phóng to, độ sắc nét, phát hiện cạnh, vv) Nó cũng tập trung vào những điều cơ bản về về hoạt động nhìn (bằng mắt) của con người Làm thế nào

để mắt người hình dung rất nhiều thứ, và làm thế nào để giải thích những hình ảnh bộ não? Các hướng dẫn này cũng bao gồm một số khái niệm quan trọng của tín hiệu và hệ thống như (lấy mẫu, lượng tử hóa, tần số phân tích miền vv)

Tín hiệu và hệ thống

Trang 3

- DIP là một trường con của tín hiệu và hệ thống, do đó, bạn cần phải có kiến thức cơ bản về môn học này, hoặc là môn xử lý tín hiệu số

Kỹ năng lập trình cơ bản

Một số kỹ năng lập trình cơ bản trên bất kỳ ngôn ngữ phổ biến như C ++, Java, hoặc MATLAB

Phát hiện nhiều khuôn mặt trong một hình ảnh

Trong vài năm qua, nhận diện khuôn mặt sở hữu sự cân nhắc đáng kể và được đánh giá cao là một trong những ứng dụng hứa hẹn nhất trong lĩnh vực phân tích hình ảnh Nhận diện khuôn mặt có thể xem xét một phần đáng kể của hoạt động nhận dạng khuôn mặt Theo sức mạnh của nó để tập trung tài nguyên tính toán vào phần hình ảnh giữ khuôn mặt Phương pháp nhận diện khuôn mặt trong ảnh rất phức tạp do sự thay đổi hiện diện trên khuôn mặt người như tư thế, biểu cảm, vị trí và hướng, màu da, sự hiện diện của kính hoặc tóc trên khuôn mặt, sự khác biệt về độ tăng của camera, điều kiện ánh sáng và độ phân giải hình ảnh

Phát hiện đối tượng là một trong những công nghệ máy tính, kết nối với xử lý hình ảnh và thị giác máy tính và nó tương tác với việc phát hiện các đối tượng như mặt người, tòa nhà, cây cối, ô tô, v.v Mục đích chính của thuật toán phát hiện khuôn mặt là để xác định cho dù có bất

kỳ khuôn mặt trong một hình ảnh hay không

Trong thời gian gần đây, rất nhiều công việc nghiên cứu được đề xuất trong lĩnh vực Nhận diện khuôn mặt và Nhận diện khuôn mặt để làm cho nó tiên tiến và chính xác hơn, nhưng nó tạo ra một cuộc cách mạng trong lĩnh vực này khi Viola-Jones đi kèm với Máy dò tìm thời gian thực

có khả năng phát hiện khuôn mặt trong thời gian thực với độ chính xác cao

Nhận diện khuôn mặt là bước đầu tiên và cần thiết để nhận dạng khuôn mặt và được sử dụng

để phát hiện khuôn mặt trong ảnh Nó là một phần của phát hiện đối tượng và có thể sử dụng trong nhiều lĩnh vực như bảo mật, số liệu sinh học, thực thi pháp luật, giải trí, an toàn cá nhân, v.v

Nó được sử dụng để phát hiện khuôn mặt trong thời gian thực để giám sát và theo dõi người hoặc vật Nó được sử dụng rộng rãi trong các máy ảnh để xác định nhiều lần xuất hiện trong khung hình Máy ảnh Ex-Mobile và DSLR DSLR Facebook cũng đang sử dụng thuật toán nhận diện khuôn mặt để phát hiện khuôn mặt trong ảnh và nhận ra chúng

Trang 4

Phương pháp nhận diện khuôn mặt

Yan, Kriegman và Ahuja đã trình bày một phân loại cho các phương pháp nhận diện khuôn mặt Các phương pháp này được chia thành bốn loại và thuật toán nhận diện khuôn mặt có thể thuộc về hai hoặc nhiều nhóm Các loại này như

sau-Các loại phương pháp nhận diện khuôn mặt khác nhau

1 Đặc điểm "hiểu biết" cơ sở (Knowledge-Based):

Phương pháp dựa trên kiến thức phụ thuộc vào bộ quy tắc và nó dựa trên kiến thức của con người để phát hiện khuôn mặt Ex- Một khuôn mặt phải có mũi, mắt và miệng trong khoảng cách và vị trí nhất định với nhau Vấn đề lớn với các phương pháp này là khó khăn trong việc xây dựng một bộ quy tắc phù hợp Có thể có nhiều kết quả dương tính giả nếu các quy tắc quá chung chung hoặc quá chi tiết Cách tiếp cận này là không đủ và không thể tìm thấy nhiều khuôn mặt trong nhiều hình ảnh.

2 "Đặc tính" nhận dạng cơ sở(Feature-Based):

Phương pháp dựa trên tính năng là xác định vị trí các khuôn mặt bằng cách trích xuất các đặc điểm cấu trúc của khuôn mặt Đầu tiên nó được đào tạo như một bộ phân loại và sau đó được sử dụng để phân biệt giữa các vùng mặt và không mặt Ý tưởng là để vượt qua giới hạn của kiến thức bản năng của chúng ta về khuôn mặt Cách tiếp cận này chia thành nhiều bước và thậm chí các bức ảnh có nhiều khuôn mặt họ báo cáo tỷ lệ thành công là 94%.

3 Mẫu phát hiện phù hợp(Template Matching):

Phương pháp so khớp mẫu sử dụng các mẫu khuôn mặt được xác định trước hoặc được tham số hóa để xác định vị trí hoặc phát hiện các khuôn mặt bằng sự tương quan giữa các mẫu và hình ảnh đầu vào Có thể chia khuôn mặt người thành mắt,

Trang 5

đường viền mặt, mũi và miệng Ngoài ra, một mô hình khuôn mặt có thể được xây dựng bởi các cạnh chỉ bằng cách sử dụng phương pháp phát hiện cạnh Cách tiếp cận này đơn giản để thực hiện, nhưng nó không đủ để phát hiện khuôn mặt Tuy nhiên, các mẫu biến dạng đã được đề xuất để giải quyết các vấn đề này.

Template Matching

4.Ngoại hình (Appearance-Based)

Phương pháp dựa trên ngoại hình phụ thuộc vào một tập hợp các hình ảnh khuôn mặt đào tạo đại biểu để tìm ra các mô hình khuôn mặt Cách tiếp cận dựa trên ngoại hình tốt hơn so với các cách hiệu suất khác Nói chung, phương pháp dựa trên ngoại hình dựa vào các kỹ thuật từ phân tích thống kê và học máy để tìm ra các đặc điểm liên quan của hình ảnh khuôn mặt Phương pháp này cũng được sử dụng trong việc trích xuất đặc điểm để nhận dạng khuôn mặt

Mô hình dựa trên ngoại hình được chia thành nhiều phương pháp phụ để sử dụng nhận diện khuôn mặt như sau:

4.1 dựa trên giao diện:

Thuật toán dựa trên Eigenface được sử dụng cho Nhận dạng khuôn mặt và nó là một phương pháp để biểu diễn khuôn mặt một cách hiệu quả bằng cách sử dụng Phân tích thành phần chính

4.2 Dựa trên phân phối:

Các thuật toán như PCA và Fisher’s Discriminant có thể được sử dụng để xác định không gian con đại diện cho các mẫu khuôn mặt Có một bộ phân loại được đào tạo, xác định chính xác các trường hợp của lớp mẫu đích từ các mẫu ảnh nền

4.3 Mạng tự nhiên:

Trang 6

Nhiều vấn đề phát hiện như phát hiện đối tượng, nhận diện khuôn mặt, phát hiện cảm xúc và nhận dạng khuôn mặt, v.v đã được Neural Networks giải quyết thành công

4.4.Support Vector Machine:

Máy vectơ hỗ trợ là bộ phân loại tuyến tính tối đa hóa biên độ giữa siêu phẳng quyết định và các ví dụ trong tập huấn luyện Osuna và cộng sự lần đầu tiên áp dụng bộ phân loại này để nhận diện khuôn mặt

4.5 Phân tích mạng Winnows:

Họ xác định một mạng lưới thưa thớt gồm hai đơn vị tuyến tính hoặc các nút mục tiêu; một đại diện cho các mẫu khuôn mặt và một cho các mẫu không phải khuôn mặt Nó ít tốn thời gian và hiệu quả

4.6.Naive Bayes phân loại:

-Họ đã tính toán xác suất xuất hiện của một khuôn mặt trong bức tranh bằng cách đếm tần suất xuất hiện của một loạt các mẫu trên các hình ảnh huấn luyện Bộ phân loại thu thập các thống

kê chung về diện mạo cục bộ và vị trí của các khuôn mặt

4.7.Mô hình Markov ẩn:

Các trạng thái của mô hình sẽ là các đặc điểm trên khuôn mặt, thường được mô tả dưới dạng các dải pixel HMM thường được sử dụng cùng với các phương pháp khác để xây dựng thuật toán phát hiện

4.8 Phương pháp tiếp cận lý thuyết về thông tin:

Markov Random Fields (MRF) có thể sử dụng cho mẫu khuôn mặt và các đặc điểm tương quan Quá trình Markov tối đa hóa sự phân biệt giữa các lớp bằng cách sử dụng phân kỳ Kullback-Leibler Do đó, phương pháp này có thể được sử dụng trong Nhận diện khuôn mặt

4.9 Học tập theo quy luật:

Cách tiếp cận này đã được sử dụng để phát hiện khuôn mặt Các thuật toán như Quinlan’s C4.5 hoặc Mitchell’s FIND-S được sử dụng cho mục đích này

Trang 7

Cách thức nhận diện khuôn mặt hoạt động

Có nhiều kỹ thuật để phát hiện khuôn mặt, với sự trợ giúp của các kỹ thuật này, chúng ta có thể xác định khuôn mặt với độ chính xác cao hơn Các kỹ thuật này có quy trình gần như giống nhau để nhận diện khuôn mặt như OpenCV, Mạng thần kinh, Matlab, v.v Tính năng nhận diện khuôn mặt hoạt động như để phát hiện nhiều khuôn mặt trong một hình ảnh Ở đây chúng tôi làm việc trên OpenCV để nhận diện khuôn mặt và có một số bước về cách phát hiện khuôn mặt hoạt động, như sau

Đầu tiên hình ảnh được nhập bằng cách cung cấp vị trí của hình ảnh Sau đó, hình ảnh được chuyển đổi từ RGB sang Grayscale vì dễ dàng phát hiện các khuôn mặt trong thang độ xám

Chuyển đổi hình ảnh RGB sang Grayscale Sau đó, thao tác hình ảnh được sử dụng, trong đó thay đổi kích thước, cắt xén, làm mờ và làm sắc nét các hình ảnh được thực hiện nếu cần Bước tiếp theo là phân đoạn hình ảnh, được sử dụng để phát hiện đường viền hoặc phân đoạn nhiều đối tượng trong một hình ảnh để phân loại có thể nhanh chóng phát hiện các đối tượng và khuôn mặt trong ảnh

Bước tiếp theo là sử dụng thuật toán tính năng Haar-Like, được đề xuất bởi Voila và Jones để nhận diện khuôn mặt Thuật toán này được sử dụng để tìm vị trí của khuôn mặt người trong khung hoặc hình ảnh Tất cả các khuôn mặt của con người đều có chung một số đặc tính phổ biến của khuôn mặt người như vùng mắt tối hơn so với các pixel lân cận và vùng mũi sáng hơn vùng mắt

Trang 8

Các tính năng haar-like để nhận diện khuôn mặt

Haar-like thuật toán cũng được sử dụng để lựa chọn tính năng hoặc trích xuất tính năng cho một đối tượng trong ảnh, với sự trợ giúp của phát hiện cạnh, phát hiện đường thẳng, phát hiện trung tâm để phát hiện mắt, mũi, miệng, v.v trong ảnh Nó được sử dụng để chọn các tính năng cần thiết trong ảnh và trích xuất các tính năng này để nhận diện khuôn mặt

Bước tiếp theo là đưa ra tọa độ của x, y, w, h để tạo một hộp hình chữ nhật trong hình để hiển thị vị trí của khuôn mặt hoặc chúng ta có thể nói rằng để hiển thị vùng quan tâm trong ảnh Sau này, nó có thể tạo một hộp hình chữ nhật trong khu vực quan tâm nơi nó phát hiện khuôn mặt

Trang 9

Ngoài ra còn có nhiều kỹ thuật phát hiện khác được sử dụng cùng nhau để phát hiện như phát hiện nụ cười, phát hiện mắt, phát hiện chớp mắt, v.v

Phát hiện thành công khuôn mặt trong ảnh

Cách chạy Trình phát hiện khuôn mặt trong thời gian thực - Real - time(Webcam):

Yêu cầu để chạy mã- Python, OpenCV, Webcam, Numpy

Trang 10

#import libraries

import cv2

import numpy as np

#import classifier for face and eye detection

face_classifier = cv2 CascadeClassifier ( ‘Haarcascades / haarcascade_frontalface_default xml’ )

# Import Classifier for Face and Eye Detection

face_classifier = cv2 CascadeClassifier ( ‘Haarcascades / haarcascade_frontalface_default xml’ )

eye_classifier = cv2 CascadeClassifier ( ‘Haarcascades / haarcascade_eye xml’ )

def face_detector img , size = 0.5 ):

# Convert Image to Grayscale

gray = cv2 cvtColor ( img , cv2 COLOR_BGR2GRAY )

faces = face_classifier detectMultiScale ( gray , 1.3 , 5 )

If faces is ():

return img

# Given coordinates to detect face and eyes location from ROI

for x , y , w , h ) in faces

x = x — 100

w = w + 100

y = y — 100

h = h + 100

cv2 rectangle ( img , x , y ), x + w , y + h ), 255 , 0 , 0 ), 2 )

roi_gray = gray [ y : y + h , x : x + w ]

roi_color = img [ y : y + h , x : x + w ]

eyes = eye_classifier detectMultiScale ( roi_gray )

for ex , ey , ew , eh ) in eyes :

cv2 rectangle ( roi_color ,( ex , ey ),( ex + ew , ey + eh ),( 0 , 0 , 255 ), 2 )

roi_color = cv2 flip ( roi_color , 1 )

return roi_color

# Webcam setup for Face Detection

cap = cv2 VideoCapture ( 0 )

while True :

ret , frame = cap read ()

cv2 imshow ( ‘Our Face Extractor’ , face_detector ( frame ))

if cv2 waitKey ( 1 ) == 13 : #13 is the Enter Key

break

# When everything done, release the capture

cap release ()

cv2 destroyAllWindows ()

Ngày đăng: 25/02/2023, 10:35

TỪ KHÓA LIÊN QUAN

w