đề tài phát triển phần mềm qua nhận dạng khuôn mặt và mắt

43 0 0
Tài liệu đã được kiểm tra trùng lặp
đề tài phát triển phần mềm qua nhận dạng khuôn mặt và mắt

Đ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

Không chỉ dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử lý ảnh hiện nay chúng ta có thể giải quyết các bài toán nhận dạng chữ viết, nhận dạng dấu vân tay, nhận

Trang 1

ĐỀ TÀI

PHÁT TRIỂN PHẦN MỀM QUA NHẬN DẠNG KHUÔN MẶT

VÀ MẮT

Trang 2

TÊN THÀNH VIÊN

Hoàng Quốc BảoĐậu Minh HuyNguyễn Văn Toại

Lê Duy Vĩ TháiTrương Đức Nhã Nguyễn Đức Bình

Trang 3

Với sự phát triển không ngừng của khoa học và công nghệ, đặc biệt là với những chiếc điện thoại thông minh (smartphone) ngày càng hiện đại và được sử dụng phổ biến

trong đời sống con người đã làm cho lượng thông tin thu được bằng hình ảnh ngày càng tăng Theo đó, lĩnh vực xử lý ảnh cũng được chú trọng phát triển, ứng dụng rộng rãi trong đời sống xã hội hiện đại Không chỉ dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử lý ảnh hiện nay chúng ta có thể giải quyết các bài toán nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khuôn mặt… Một trong những bài toán được nhiều người quan tâm nhất của lĩnh vực xử lý ảnh hiện nay đó là nhận dạng khuôn mặt (Face Recognition)

LÝ DO CHỌN ĐỀ TÀI NÀY

Trang 4

MỤC TIÊU CỦA ĐỀ TÀIMỤC TIÊU ĐỀ TÀI

Xây dựng một dự án phần mềm ứng dụng nhận dạng khuôn mặt

Tìm hiểu các phương pháp xác định khuôn mặt (Face Detection).

Nghiên cứu phương pháp phân tích thành phần chính (Principal Component

AnalysisPCA).

Trang 5

NHẬN DIỆN KHUÔN MẶT LÀ GÌ?

xác định hoặc xác nhận danh tính của một người qua khuôn mặt của họ

cách xác định và đo lường các đặc điểm khuôn mặt trong hình

Trang 6

ỨNG DỤNG THỰC TIỄN

Sử dụng trong hệ thống kiểm soát ra

vào, giám sát an ninh.

Theo dõi trạng thái sức khỏe qua biểu

cảm khuôn mặt.

Xác minh danh tính khách hàng khi thực hiện giao

Cải thiện trải nghiệm mua sắm thông qua

nhận dạng khuôn mặt của khách

hàng.

Trang 7

LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN

Công nghệ nhận dạng khuôn mặt đã phát triển từ những năm 1960, từ các hệ

thống đơn giản đến việc ứng dụng các thuật toán học sâu hiện đại Sự phát triển này đã mở ra nhiều cơ hội mới trong việc ứng dụng công nghệ nhận dạng khuôn mặt, không chỉ trong lĩnh vực an ninh mà còn trong y tế, marketing và nhiều ngành công nghiệp khác.

Trang 8

ỨNG DỤNG TRONG ĐỜI SỐNG

Nhận dạng khuôn mặt ngày càng trở nên phổ biến, từ việc mở khóa điện thoại thông minh đến hệ thống giám sát an ninh Công nghệ này cũng được sử dụng trong việc tìm kiếm và nhận diện người mất tích, cũng như trong các hệ thống quảng cáo thông minh, nơi nó có thể cung cấp thông tin cá nhân hóa cho người dùng.

Trang 9

Những khó khăn và những bài toán khó giải quyết trong khi tạo nên một chương trình nhận dạng

khuôn mặt

Trang 10

Bài toán nhận dạng mặt người

Hệ thống nhận dạng mặt người là một hệ thống nhận vào là một ảnh hoặc một đoạn video (một dòng các hình ảnh liên tục) Qua xử lý, tính toán hệ thống xác định

được vị trí mặt người (nếu có) trong ảnh và xác định là người nào trong số những người mà hệ thống đã được biết (qua quá trình học) hoặc là người lạ.

Trang 11

Những khó khăn của hệ thống nhận dạng khuôn mặt.

Bài toán nhận dạng mặt người là bài toán đã được nghiên cứu từ những năm 70 Tuy nhiên, đây là một bài toán khó nên những nghiên cứu hiện tại vẫn chưa đạt được những kết quả mong muốn Chính vì thế, vấn đề này vẫn đang được nhiều nhóm trên thế giới quan tâm nghiên cứu Khó khăn của bài toán nhận dạng mặt người có thể kể đến

Trang 12

Tư thế chụp, góc chụp:

Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì

góc chụp giữa camera và khuôn mặt Chẳng hạn như:

Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần

hoặc thậm chí khuất hết

Trang 13

Các yếu tố trên khuôn mặt hay phụ kiện

Sự xuất hiện hoặc thiếu một số thành phần của khuôn

mặt: Các đặc trưng như: râu mép, râu hàm, mắt kính,

v.v… có thể xuất hiện hoặc không Vấn đề này làm cho

bài toán càng trở nên khó hơn rất nhiều

Trang 14

Sự biểu cảm của khuôn mặt:

Biểu cảm của khuôn mặt con người

có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười

hoặc sợ hãi, v.v…

Trang 15

Sự che khuất:

Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các khuôn

mặt khác

Trang 16

Hướng của ảnh (pose variations): Các ảnh khuôn mặt có thể

biến đổi rất nhiều với các góc quay khác nhau của trục camera Chẳng hạn chụp với trục máy ảnh

nghiêng làm cho khuôn mặt bị nghiêng so với trục của

ảnh

Trang 17

Điều kiện của ảnh:

Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại,

v.v…), ảnh có chất lượng thấp ảnh hưởng rất nhiều đến chất lượng ảnh

khuôn mặt

Trang 18

Aging condition:

Việc nhận dạng ảnh mặt thay

đổi theo thời gian còn là một vấn đề khó khăn, ngay cả đối với khả năng nhận dạng của con

người

Trang 19

Các hệ thống cực lớn (very large scale systems):

Các CSDL ảnh mặt được test bởi các nhà

nghiên cứu còn khá nhỏ (vài trăm tới vài chục nghìn ảnh mặt), tuy nhiên trên thực tế các CSDL có thể rất lớn, ví dụ CSDL ảnh mặt của

cảnh sát của một đất nước có thể chứa từ hàng

triệu tới hơn 1 tỉ ảnh…

Trang 20

Tổng quan kiến trúc của một hệ

thống

nhận dạng mặt

1 Phát hiện khuôn mặt (Face

Detection)

2 Phân đoạn khuôn mặt (Face

Alignment hay Segmentation)

3 Trích chọn đặc trưng (Feature

Extraction)

4 Nhận dạng (Recognition) hay Phân lớp khuôn mặt (Face Clasaification)

Trang 21

Quá trình XLA được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn Kết quả đầu ra của một quá trình XLA có thể là một ảnh “tốt hơn” hoặc một kết luận

Trang 22

-Cơ sở tri thức (Knowledge Base)

-Mô tả (biểu diễn ảnh)

Trang 23

Các vấn đề khi xử lí hình ảnh

1 Điểm ảnh (Picture Element) 2 Độ phân giải của ảnh

3 Mức xám của ảnh 4 Ảnh đen trắng

5 Ảnh nhị phân6 Ảnh màu

1 Điểm ảnh (Picture Element) 2 Độ phân giải của ảnh

3 Mức xám của ảnh 4 Ảnh đen trắng

5 Ảnh nhị phân6 Ảnh màu

7 Định nghĩa ảnh số

Các vấn đề khi xử lí hình ảnh

Trang 24

Quan hệ giữa các điểm ảnh

a) Các lân cận của điểm ảnh (Image Neighbors) b) Các mối liên kết điểm ảnh

* Có 3 loại liên kết -Liên kết 4

Trang 25

Cấu trúc tổng quan.

Cấu trúc tổng quan của OpenCv bao gồm 5

phần chính Hình vẽ dưới đây, mô tả 4 trong 5 thành phần đó

Trang 26

Một số ngôn ngữ thường được ứng dụng vào nhận dạng khuôn

• Python• JAVA• C++

• Javascript• HTML

Trang 27

pictureBox1.Image = MyImage.ToBitmap(); }

}

Trang 28

PHÂN TÍCH

 Nhiệm vụ chính của chương trình là nhận dạng một khuôn mặt người xem khuôn mặt đó có được biết đến hay chưa Ngoài ra, chương trình còn thực hiện công việc phát hiện, tách các khuôn mặt người (nếu có) từ một ảnh tĩnh, hoặc từ các frame ảnh thu được từ camera Sau đó, lưu vào CSDL làm tập mẫu

 Như vậy, các chức năng của chương trình bao gồm:

Lấy một ảnh từ trong máy tính, hoặc kết nối đến webcam hiển thị lên ImageBox.

Thực hiện tách các khuôn mặt trên ImageBox (nếu có) Thực hiện lưu khuôn mặt phát hiện được vào CSDL Thực hiện xóa, đổi tên…

Nhận dạng ảnh một khuôn mặt

Nếu “biết” người đó (có lưu thông tin trong CSDL) thì hiển thị tên và một ảnh của người đó Nếu “không biết” (không có

thông tin của người đó trong CSDL) thì hiển thị 1 màu đen lên

màn hình và tên người là: “Unknow”

SƠ ĐỒ NGỮ CẢNH HỆ THỐNG

Trang 29

Xử lý ảnh đầu vào

Phát hiện khuôn mặt

Xử lý đầu ra

Sơ đồ thực hiện chương trình

Trang 30

XỬ LÝ ẢNH ĐẦU VÀO  Đầu vào của hệ thống là 1 ảnh chứa khuôn mặt cần xử lý, ảnh này có thể là ảnh tĩnh, lấy từ trong bộ nhớ máy tính hoặc là frame

ảnh bắt được từ dòng hình ảnh của camera Sau khi có được ảnh đầu vào thì bắt đầu ti ến hành tìm kiếm, phát hiện các khuôn mặt trong ảnh

}

Lưu đồ giải thuật chọn ảnh đầu vào

Trang 31

PHÁT HIỆN KHUÔN MẶT TRONG ẢNH

Sau khi nhận được ảnh đầu vào, hệ thống sẽ thực hiện chức năng phát hiện khuôn mặt có trong ảnh Như đã nói trong phần Giới Thiệu, bài toán phát hiện mặt người trong ảnh là một bài toán khó, nên ta không đi sâu tìm hiểu cách giải quyết bài toán này

Ở đây, ta sử dụng phương pháp tiếp cận dựa trên diện mạo

(appearance-based) được thực hiện nhanh bằng thuật toán adaboost

thông qua hàm cvHaarObjects() của bộ thư viện OpenCV Hàm này thực hiện việc phát hiện đối tượng dựa trên các đặc trưng haar-like, cụ thể là nhờ vào một bộ Cascade được truyền vào cho hàm Bộ Cascade được xây dựng theo dạng cây (tree-node) và đã được huấn luyện từ trước

Việc huấn luyện bộ Cascade có thể thực hiện từ những dữ liệu thu thập được để phục vụ cho quá trình nhận dạng Ví dụ, muốn nhận dạng một người A, ta thu thập các ảnh khuôn mặt của người A với nhiều tư thế, góc chụp và điều kiện chụp khác nhau, sau đó cho bộ nhận dạng học theo thuật toán Cascade training Kết quả thu được là ta sẽ có một mô hình nhận diện, được sử dụng để nhận dạng các đối tượng

Trang 32

CODE THỰC HIỆN CHỨC NĂNG

privateHaarCascade haarface; privateCascadeClassifier haar; privateint WindowSize = 25; privateDouble ScaleIncreaseRate = 1.1; privateint MinNeighbors = 3;

// Control Timer privatevoid timer_getImage_Tick(object sender, EventArgs e) {

MinNeighbors = int.Parse(comboBoxMinNeigh.Text);

WindowSize = int.Parse(textBoxWinSiz.Text); ScaleIncreaseRate = Double.Parse(comboBoxScIncRte.Text); using (Image<Bgr, byte> ImageFrame = capture.QueryFrame())

{

if (ImageFrame != null) {

//STEP1 COnvert the image to Gray scale

Image<Gray, byte> grayframe = ImageFrame.Convert<Gray, byte>();

//STEP2 Detectfaces from the gray-scale image and store into an array of type 'var', i.e 'MCvAvgComp[]' var faces = grayframe.DetectHaarCascade(haarface,

Trang 33

HÀM THỰC HIỆN CHỨC NĂNG PHÁT HIỆN MẶT NGƯỜI TRONG DÒNG HÌNH ẢNH CAMERA

Trang 34

1 The HaarCascade (haarface)

2 ScaleIncreaseRate

3.Minimum Neighbors Threshold

(MinNeighbors)

Trang 35

XỬ LÝ ĐẦU RA

 Các khuôn mặt sau khi được phát hiện sẽ được tách ra khỏi bức ảnh, hiển thị lên picturebox NgCác khuôn mặt trước khi được hiển thị lên

picturebox sẽ được chỉnh lại kích thước và chuẩn hóa (tăng chỉnh độ sáng, đưa về một kênh màu: Ảnh Xám) Ảnh sau khi chuẩn hóa có thể được kiểm tra nhận dạng hoặc lưu vào CSDL dưới dạng nhị phân

 Các khuôn mặt trước khi được hiển thị lên

picturebox sẽ được chỉnh lại kích thước và chuẩn hóa (tăng chỉnh độ sáng, đưa về một kênh màu: Ảnh Xám) Ảnh sau khi chuẩn hóa có thể được kiểm tra nhận dạng hoặc lưu vào CSDL dưới dạng nhị phân

Trang 36

CSDL là trái tim của hệ thống, việc thiết kế, tổ chức CSDL ảnh hưởng lớn đến hoạt động của chương trình, bởi dữ liệu cần lưu trữ ở đây là các ảnh Dù kích thước mỗi ảnh có thể không lớn, nhưng số lượng ảnh cần lưu trữ lại rất lớn Ảnh hưởng lớn đến tốc độ truy xuất dữ liệu Do đó cần thiết kế, tổ chức CSDL một cách hợp lý, ngoài ra việc lựa chọn Hệ quản trị CSDL cũng rất quan trọng Ở đây, Hệ quản trị SQL server được lựa chọn để xây dựng, quản lý CSDL Đây là một hệ quản trị CSDL mạnh, đáp ứng được nhiều yêu cầu về quản lý các CSDL lớn

Ta cần xác định các thông tin cần được lưu trữ: 1 Ảnh (FaceImage) Ảnh đầu vào

Kiểu dữ liệu: image Is null: true

2 Tên người (FaceName)

Kiểu dữ liệu: nvarchar(200); Is null: true;

3 Id (FaceID)

Kiểu dữ liệu: Int Khóa chính

Mã tự tăng Is null: false

4 Tên người có khuôn mặt được phát hiện 5 Id xác định các đối tượng

THIẾT KẾ CƠ SỞ DỮ LIỆU

Trang 37

THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH

Giao diện chương trình được thiết kế đơn giản, dễ nhìn Bố cục giao diện chia làm 3 phần Phần 1, dành cho người dùng chọn đầu vào, có thể là một ảnh tĩnh từ trong máy tính, hoặc mở webcam để lấy hình ảnh Phần 2 bao gồm phần điều chỉnh các thông số phát hiện khuôn mặt, thông số nhận dạng khuôn mặt Và cuối cùng là phần nhận dạng

khuôn mặt

Phần 1:

- Button Browse Image

- Button Detect face

- Button Start.

- Button Extract face

Phần 2:

1 Điều chỉnh thông số phát hiện khuôn mặt

-Scale Increase Rate

-Min Neighbors

-Min Detection Scale (Window Size) 2 Điều chỉnh thông số nhận dạng khuôn mặt -Eigen Distance Threshold

Phần 3:

- Picturebox pbInputFaces

- Picturebox pbTSFaceButton Prev, Next.z

- Button btnTSFirst, btnTSPArev, btnTSNxt, btnLoadTSLast

- Button btTrainforReg (Trained for Recognizer)

- Button btnCheckRecognizer (Check Recognizer)

- Button btnView (View Information Of TrainingSet)

- Button btnAddtoTS (Add to Training Set)

- Button btnUpdateFace (Update Face)

- Button btnDelFace (Delete Face)

Trang 38

Tên Đối tượng Số lần

nhận dạng Số lần nhận dạng đúng Số lần nhận dạng sai Số lần không nhận dạng được

TRIỂN KHAI VÀ THỬ NGHIỆM

Với khoảng cách ngưỡng riêng β =

3000

Trang 39

Tên đối tượng Số ảnh huấn luyện

của 1 đối tượng Số ảnh test Tỷ lệ Nhận dạng đúng

Trang 40

Với khoảng cách ngưỡng riêng β =

Tên Đối tượng Số lần

nhận dạng Số lần nhận dạng đúng Số lần nhận dạng sai Số lần không nhận dạng được

Trang 41

Tên đối tượng Số ảnh huấn luyện

của 1 đối tượng Số ảnh test Tỷ lệ Nhận dạng đúng

Trang 42

KẾT LUẬN:

Từ bảng kết quả, ta có thể thấy rằng, kết quả nhận dạng phụ thuộc rất nhiều vào giá trị của khoảng cách ngưỡng riêng Do đó, cần điều chỉnh thông số một cách phù hợp để có thể thu được kết quả tốt nhất Ngoài ra, các ảnh bị nhận dạng sai hoặc không nhận dạng được phụ thuộc vào chất lượng ảnh đầu vào, đa số các ảnh bị nhận dạng sai hoặc không nhận dạng được đều là các bức ảnh bị chụp thiếu sáng

Trang 43

KẾT LUẬN ĐỒ ÁN NHÓM

Báo cáo đồ án môn học đã trình bày các kiến thức cơ bản để giải quyết bài toán nhận dạng khuôn mặt người Riêng phương pháp nhận

dạng mặt người Eigenfaces được xây dựng dựa trên phương pháp Eigenfaces-sử dụng thuật

toán PCA đã được trình bày cụ thể, chi tiết trong chương 4 Phần mềm Face Recognition áp dụng phương pháp Eigenfaces được thiết kế để nhận dạng mặt người Từ kết quả thực

nghiệm cho thấy, độ chính xác của chương

trình tương đối cao khoảng 80% nhận dạng

đúng Tuy nhiên, do thời hạn thời gian hạn chế nên chương trình vẫn còn nhiều nhược điểm và nhiều ý tưởng chưa được thực hiện

Để chương trình có thể được sử dụng vào trong thực tế, cần giải quyết những nhược điểm mà phần mềm còn gặp phải, thực hiện các ý tưởng mới nhằm năng cao tốc độ, hiệu suất và độ chính xác của chương trình

Ngày đăng: 22/05/2024, 15:25

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

Tài liệu liên quan