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

Nhận dạng khuôn mặt bằng matlab

26 14 0

Đ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 đề Nhận dạng khuôn mặt bằng matlab
Người hướng dẫn Vũ Hữu Tiến
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Khoa Điện – Điện Tử
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 26
Dung lượng 6,59 MB

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

Nội dung

Trong nhiều năm qua có rất nhiều công trình nghiên cứu về bài toán nhận dạngkhuôn mặt người từ ánh đen trắng,xám đến ảnh màu như ngày hôm nay.Các nghiên cứu đi từ bài toán đơn giản ,mỗi

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA ĐIỆN – ĐIỆN TỬ

BÁO CÁO BÀI TẬP LỚN TRUYỀN THÔNG ĐA PHƯƠNG TIỆN

Đề tài : Nhận dạng khuôn mặt bằng matlab GVHD : Vũ Hữu Tiến

Hà Nội - 5/2022

Trang 2

Mục lục

LỜI MỞ ĐẦU 4

I TỔNG QUAN VỀ NHẬN DIỆN KHUÔN MẶT VÀ THUẬT TOÁN MẠNG NƠ-RON 5

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

2 Thuật toán mạng nơ-ron 5

3 InPut 6

3.1 Kiến Trúc AlexNet 7

3.2 Overlapping Max Pooling 7

3.3 ReLu Nonlinearity 8

3.4 Reducing overfitting 9

II BÀI TOÁN NHẬN DẠNG BẰNG MẠNG NƠ-RON TÍCH CHẬP 11

1 Cách Thức Hoạt Động 11

2 Nhận Diện Khuôn mặt 13

3 Phát Hiện Các Điểm Quan Trọng Trên Khuôn Mặt 14

4 Liên Kết Khuôn Mặt 15

III ẢNH MÀU VÀ CÁC LỆNH XỬ LÝ ẢNH MÀU TRONG MATLAB 16

1 Ảnh số 16

2 Ảnh màu 16

3 Các định dạng ảnh cơ bản trong xử lý ảnh 17

IV SƠ ĐỒ KHỐI VÀ CODE CHƯƠNG TRÌNH 19

1 Sơ đồ khối 19

2 Code chương trình 20

2.1 Collect data 20

2.2 Trainning 21

2.3 Test 22

Trang 3

Mục Lục Hình Ảnh

Hình 1 Điều chỉnh bức ảnh về 256px 7

Hình 2.AlexNet bao gồm 5 convolution Layer và 3 Fully connected Layers 7

Hình 3.So sánh tốc độ huấn luyện của ReLu và Tanh 8

Hình 4.Giá trị bão hoà của hàm Tanh 9

Hình 5.Hiệu ứng hình qua gương 10

Hình 6 Rút trích kích thước 227*227 từ bức ảnh 256*256 11

Hình 7.Mô hình huấn luyện 11

Hình 8.Tổng quan về phương pháp nhận dạng khuôn mặt người bằng mạng nơ ron tích chập 12

Hình 9.Thiết kế mạng nơ-ron để xử lý ảnh 12

Hình 10.Các giai đoạn dò tìm và hiệu chỉnh 13

Hình 11.Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu 14

Hình 12 Kiến trúc DCNN được sử dụng để trích xuất các mô tả cục bộ cho nhiệm vụ phát hiện các điểm mốc trên khuôn mặt 14

Hình 13.Ví dụ về các điểm mốc trên khuôn mặt 15

Hình 14.Kết quả mẫu của phương pháp liên kết khuôn mặt cho các video của JANUS CS2, là bộ dữ liệu mở rộng của IJB-A 16

Trang 4

LỜI MỞ ĐẦU

Trong thế giới ngày nay với sự phát triển mạnh mẽ của kỹ thuật số và mạng toàncầu, vấn đề về đảm bảo an toàn thông tin cũng như vật chất ngày càng trở nên quan trọng

và khó khăn Một trong những phương pháp đơn giản nhất cũng là bài toán phức tạp nhất

là xác định một người thông qua khuôn mặt từ đó cập nhật thông tin để đảm bảo an toànthông tin cũng như tìm kiếm tội phạm

Trong nhiều năm qua có rất nhiều công trình nghiên cứu về bài toán nhận dạngkhuôn mặt người từ ánh đen trắng,xám đến ảnh màu như ngày hôm nay.Các nghiên cứu

đi từ bài toán đơn giản ,mỗi ảnh chỉ có một khuôn mặt người nhìn vào thiết bị thu hình vàđầu ở tư thế thẳng đứng trong ảnh đen trắng.Cho đến ngày hôm nay bài toán mở rộng choảnh màu ,có nhiều tư thế thay đổi trong ảnh.Không những thế vậy mà còn mở rộng phạm

vi từ môi trường xung quanh khá đơn giản cho đến môi trường xung quanh rất phức tạpnhằm đáp ứng nhu cầu của con người

Mục tiêu của đề tài “Nhận dạng khuôn mặt bằng matlab dùng thuật toán mạng ron” là thực hiện chương trình tìm kiếm một bức ảnh có khuôn mặt một người trong tậpảnh cơ sở giống với khuôn mặt của người đó trong ảnh cần kiểm tra bằng ngôn ngữmatlab

Trang 5

nơ-I TỔNG QUAN VỀ NHẬN DIỆN KHUÔN MẶT VÀ THUẬT TOÁN MẠNG NƠ-RON

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

Dựa vào những đặc điểm của phương pháp nhận diện khuôn mặt người trên ảnh.Cácphương pháp này được chia làm bốn hướng tiếp cận :

 Hướng tiếp cận trên tri thức: Mã hoá các hiểu biết của con người về khuôn mặtthành các luật Thông thường các luật mô tả mối quan hệ giữa các đặc trưng

 Hướng tiếp cận dựa trên các đặc trưng không thay đổi: Mục tiêu của các thuậttoán này là đi tìm các đặc trưng mô tả cấu trúc khuôn mặt người mà các đặc trưngnày sẽ không thay đổi theo thời gian, và không phụ thuộc vào biểu cảm khuônmặt, vị trí đặt thiệt bị thu hình hay điều kiện ánh sáng

 Hướng tiếp cận dựa trên so mẫu khớp: Dùng các mẫu chuẩn của khuôn mặt người

để mô tả cho khuôn mặt người hay các đặc trưng khuôn mặt Các mối tương quangiữa những dữ liệu ảnh đưa vào và các mẫu dùng để xác định khuôn mặt người

 Hướng tiếp cận dựa trên diện mạo: Trái ngược so với mẫu khớp, các mô hình(hay các mẫu) được học từ một tập ảnh huấn luyện trước đó Sau đó hệ thống sẽxác định khuôn mặt người hay còn gọi hướng tiếp cận này là hướng tiếp cận theophương pháp học

2 Thuật toán mạng nơ-ron

Mạng nơ ron nhân tạo (Artificial Neural Network ANN) là một chuỗi các giải thuậtlập trình, mô phỏng dựa trên cách hoạt động của mạng lưới thần kinh trong não bộ cácsinh vật sống Mạng nơ ron nhân tạo được sử dụng để tìm ra mối quan hệ của một tập dữliệu thông qua một thiết kế kiến trúc chứa nhiều tầng ẩn (hidden layer), mỗi tầng lạichứa nhiều nơ ron Các nơ ron được kết nối với nhau và độ mạnh yếu của các liên kếtđược biểu hiện qua trọng số liên kết Lập trình thông thường có thể làm được rất nhiềuphần mềm lớn, như tính toán mô phỏng các vụ nổ hạt nhân trong siêu máy tính ở cácphòng thí nghiệm, hoặc tái hiện các tế bào ở cấp độ phân tử để phân tích các thử nghiệmthuốc Một siêu máy tính có thể tính toán được nhiều tỉ phép tính trên giây, tuy nhiên lậptrình thông thường lại gặp khó khăn trong việc nhận ra các mẫu đơn giản, ví dụ nhưnhận diện mặt người, điều mà một bộ não sinh học xử lý nhanh và chính xác hơn nhiều

Áp dụng với các kỹ thuật học sâu, mạng nơ ron nhân tạo hiện nay đang được áp dụng đểgiải quyết những vấn đề mà lập trình theo logic thông thường khó có thể giải quyếtđược Do đó, mạng nơ ron nhân tạo đang nhanh chóng trở nên phổ biến, và là xu thế trênnhiều lĩnh vực

Mạng nơ-ron tích chập (CNN) là một trong những mô hình học sâu thành công nhấttrong lĩnh vực nhận dạng khuôn mặt, các vùng hình ảnh khác nhau luôn được sử dụng

Trang 6

đồng thời khi trích xuất các đặc trưng hình ảnh, nhưng trong thực tế, các phần khác nhaucủa khuôn mặt đóng những vai trò khác nhau trong nhận diện khuôn mặt Mỗi khuônmặt của mỗi người có sự độc đáo và nét đặc trưng riêng biệt.

Một hệ thống nhận diện mặt người thông thường bao gồm bốn bước xử lý sau:

 Phát hiện khuôn mặt (Face Detection)

 Phân đoạn khuôn mặt (Face Alignment hay Segmentation)

 Trích chọn đặc trưng (Feature Extraction)

 Nhận diện (Recognition) hay Phân lớp khuôn mặt (Face Classification)

3 Mạng Neural Network AlexNet

3.1 InPut

Mạng AlexNet là mô hình giải quyết bài toán phân lớp một bức ảnh vào 1 lớp trong

1000 lớp khác nhau (vd gà, chó, mèo… ) Đầu ra của mô hình là một vector có 1000phần tử Phần tử thứ i của vector đại diện cho xác suất bức ảnh thuộc về lớp thứ i Do

đó, tổng của các phần tử trong vector là 1

Đầu vào của mạng AlexNet là một bức ảnh RGB có kích thước 256x256 pixel Toàn

bộ các bức ảnh của tập train và tập test đều có cùng kích thước là 256x256 Nếu một bứcảnh nào đó không có kích thước 256x256, bức ảnh đó sẽ được chuyển về kích thướcđúng 256x256 Những bức hình có kích thước nhỏ hơn 256 thì sẽ được phóng bự lên đếnkích thước 256, những bức hình nào có kích thước lớn hơn 256 thì sẽ được cắt loại phầnthừa để nhận được bức hình có kích thước 256x256 Hình 1 là ví dụ về việc điều chỉnhbức ảnh về kích thước 256x256

Hình 1 Điều chỉnh bức ảnh về 256px

Trang 7

Nếu ảnh đầu vào là ảnh xám (grayscale), bức ảnh trên sẽ được chuyển đổi thànhđịnh dạng RGB bằng cách tạo ra 3 layer kênh màu giống nhau từ ảnh xám Sau khichuẩn hoá hết tất cả các ảnh về dạng 256x256x3, nhóm tác giả chỉ sử dụng một phầncủa bức ảnh có kích thước 227x227x3 của một bức ảnh làm đầu vào cho mạng neuralnetwork

3.2 Kiến Trúc AlexNet

Hình 2.AlexNet bao gồm 5 convolution Layer và 3 Fully connected Layers

Những convolution layer ( hay còn gọi với tên khác là các filter) rút trích các thôngtin hữu ích trong các bức ảnh Trong một convolution layer bất kỳ thường bao gồmnhiều kernel có cùng kích thước Ví dụ như convolution layer đầu tiên của AlexNet chứa

96 kernel có kích thước 11x11x3 Thông thường thì width và height của một kernel bằngnhau, và độ sâu (depth) thường bằng số lượng kênh màu

Convolutional 1 và convolution 2 kết nối với nhau qua một Overlapping MaxPooling ở giữa Tương tự như vậy giữa convolution 2 và convolution 3 Convolutional 3,convolution 4, convolution 5 kết nối trực tiếp với nhau, không thông qua trung gian.Convolutional 5 kết nối fully connected layter 1 thông qua một Overlapping Maxpooling, tiếp theo mà một fully connected layter nữa Và cuối cùng là một bộ phân lớpsoftmax với 1000 lớp nhãn (các bạn có thể xem hình kiến trúc mạng AlexNet ở trên để

có cái nhìn tổng quát hơn)

ReLU nonlinerity được sử dụng sau tất các các convolution và fully connected layer.Trước đây, ReLU nonlinerity của lớp convolution 1 và 2 thường theo sau bởi một bướcchuẩn hoá cục bộ (local normalization) rồi mới thực hiện pooling

3.3 Overlapping Max Pooling

Max Pooling layer thường được sử dụng để giảm chiều rộng và chiều dài của mộttensor nhưng vẫn giữ nguyên chiều sâu Overlapping Max Pool layter cũng tương tự như

Trang 8

Max Pool layter, ngoại trừ việc là một window của bước này sẽ có một phần chồng lênwindow của bước tiếp theo Ta sử dụng pooling có kích thước 3x3 và bước nhảy là 2giữa các pooling Nghĩa là giữa pooling này và pooling khác sẽ overlapping với nhau 1pixel Các thí nghiệm thực tế đã chứng minh rằng việc sử dụng overlapping giữa cácpooling giúp giảm độ lỗi top-1 error 0.4% và top-5 error là 0.3% khi so với việc sử dụngpooling có kích thước 2x2 và bước nhảy 2 (vector output của cả hai đều có số chiềubằng nhau).

3.4 ReLu Nonlinearity

Một cải tiến quan trọng khác của AlexNet là việc sử dụng hàm phi tuyến ReLU.Trước đây, các nhóm nghiên cứu thường sử dụng hàm kích hoạt là hàm Tanh hoặc hàmSigmoid để huấn luyên mô hình neural network AlexNet chỉ ra rằng, khi sử dụngReLU, mô hình deep CNN sẽ huấn luyện nhanh hơn so với viêc sử dụng tanh hoặcsigmoid Hình 3 được rút ra từ bài báo chỉ ra rằng với việc sử dụng ReLU (đường nétliền trong hình), AlexNet đạt độ lỗi 25% trên tập huấn luyện và nhanh hơn gấp 6 lần sovới mô hình tương tự nhưng sử dụng Tanh (đường nét đứt trong hình) Thí nghiệm trên

sử dụng tập dữ liệu CIFAR-10 để huấn luyện

Hình 3.So sánh tốc độ huấn luyện của ReLu và Tanh

Để hiểu rõ hơn lý do vì sao ReLU lại nhanh hơn so với các hàm khác, chúng ta hãy đốisánh hình dạng giá trị output của các hàm trên

Công thức của ReLU là: f(X) = max(0,x)

Trang 9

Hình 4.Giá trị bão hoà của hàm Tanh

hình 4, ta có nhận xét rằng: hàm tanh đạt giá trị bão hoà khi giá trị z >2.5 và z < -2.5(số 2.5 là số cảm tính của mình) Và tại vùng |z|>2.5, thì độ dốc của hàm hầu như gầnnhư bằng 0, |z| càng lớn thì độ dốc càng gần 0 hơn Vì lý do này nên gradient descent sẽhội tụ chậm Còn đối với hàm ReLU, với giá trị z dương thì độ dốc của hàm không gầnbằng 0 như hàm tanh Điều này giúp cho việc hội tụ xảy ra nhanh hơn Với giá trị z âm,

độ dốc bằng 0, tuy nhiên, hầu hết các giá trị của các neural trong mạng thường có giá trịdương, nên trường hợp âm ít (hiếm) khi xảy ra ReLU huấn luyện nhanh hơn so vớisigmoid cũng bởi lý do tương tự

3.5 Reducing overfitting

3.5.1 Overfitting là gì?

 Khi dạy một đứa trẻ từ 2-5 tuổi về việc cộng hai số, chúng sẽ học rất nhanh và trảlời đúng hầu hết các câu hỏi mà chúng ta đã dạy chúng Tuy nhiên, chúng sẽ trảlời sai đối với những câu hỏi hơi lắc léo một chút (câu hỏi tương tự câu chúng ta

đã dạy, nhưng thêm một xíu thông tin đòi hỏi trẻ phải suy nghĩ), hoặc các câu hỏichưa được dạy Lý do chúng trả lời sai những câu hỏi đó là khi trả lời những câuhỏi được dạy, chúng thường nhớ lại câu trả lời, chứ không thực sự hiểu câu hỏi.Cái này ở Việt Nam ta gọi là học vẹt

 Tương tự vậy, Neural network chính bản thân nó có khả năng học được những gìđược dạy, tuy nhiên, nếu quá trình huấn luyện của bạn không tốt, mô hình có khảnăng sẽ giống như những đứa trẻ trên kia, hồi tưởng lại những gì đã dạy chochúng mà không hiểu bản chất Và kết quả Neural Network sẽ hoạt động tốt trêntập huấn luyện (nhưng chúng không rút ra được bản chất chính của vấn đề), và

kết quả trên tập test tệ Người ta gọi trường hợp trên là overfitting.

3.5.2 Augmentation

Trang 10

 Việc sử dụng nhiều biến thể khác nhau của một bức hình có thể giúp ngăn môhình không bị overfitting Với việc sử dụng nhiều biến thể của 1 bức hình, bạn bắt

ép mô hình không học vẹt dữ liệu Có nhiều cách khác nhau để sinh ra dữ liệumới dựa vào dữ liệu có sẵn

3.5.3 Data augmentation by mirroring

 Ý tưởng của việc này là lấy ảnh trong gương của một bức hình (ảnh ảo) Nhìn vàoảnh bên dưới, bên trái là hình gốc của con mèo trong tập huấn luyện, bên phải làảnh của con mèo khi thêm hiệu ứng hình qua gương (đơn giản là xoay qua trục y

là được )

Hình 5.Hiệu ứng hình qua gương

3.5.4 Data augmentation by random crops

 Việc lựa chọn vị trí ảnh gốc một cách ngẫu nhiên cũng giúp chúng ta có thêm mộtảnh khác so với ảnh gốc ban đầu

 Nhóm tác giả của AlexNet rút trích ngẫu nhiên bức ảnh có kích thước 227x227 từbức ảnh 256x256 ban đầu làm input đầu vào cho mô hình Bằng cách này, chúng

ta có thể tăng số lượng dữ liệu lên gấp 2048 lần bằng việc sử dụng cách này

Trang 11

3.5.5 Dropout

 Với gần 60 triệu tham số trong tập huấn luyện, việc overfitting xảy ra là điều dễhiểu Các tác giả của AlexNet đã thực nghiệm nhiều cách nữa để giảm overfitting

Họ sử dụng một kỹ thuật gọi là dropout -kỹ thuật này khá đơn giản, một neural sẽ

có xác suất bị loại khỏi mô hình là 0.5 Khi một neural bị loại khỏi mô hình, nó sẽkhông được tham qia vào quá trình lan truyền tiến hoặc lan truyền ngược Chonên, mỗi giá trị input sẽ đi qua một kiến trúc mạng khác nhau Như mô tả ở hình

7, kết quả là giá trị của tham số trọng số sẽ tốt hơn và khó bị overfitting hơn.Trong quá trình test, toàn bộ network được sử dụng, không có dropout, tuy nhiên,giá trị output sẽ scaled bởi tham số 0.5 tương ứng với những neural không sửdụng trong quá trình trainning Với việc sử dụng dropout, chúng ta sẽ tăng gấpđôi lần lặp cần thiết để đạt được độ hội tụ, nhưng khi không sử dụng dropout,mạng AlexNet rất dễ bị overfitting

Trang 12

Hình 7.Mô hình huấn luyện

II.BÀI TOÁN NHẬN DẠNG BẰNG MẠNG NƠ-RON TÍCH CHẬP

1 Cách Thức Hoạt Động

Phương pháp bao gồm các bước khác nhau để thực hiện nhận diện khuôn mặt tựđộng Đầu tiên là thực hiện phát hiện khuôn mặt để khoanh vùng khuôn mặt trong từngkhung hình ảnh và video Sau đó, dữ liệu ở bước trên đuợc liên kết với các khuôn mặtđược phát hiện với danh tính chung trên các video và căn chỉnh các khuôn mặt thành tọa

độ bằng cách sử dụng các mốc được phát hiện Cuối cùng, hệ thống thực hiện xác minhkhuôn mặt để tính toán độ tương tự giữa một cặp hình ảnh / video

Hình 8.Tổng quan về phương pháp nhận dạng khuôn mặt người bằng mạng nơ ron tíchchập

Trang 13

Hình 9.Thiết kế mạng nơ-ron để xử lý ảnh

Từ mạng nơ ron trên, ta có thể thấy các bước xử lý ảnh từ trái sang phải Lần lượt, ta

có thể thấy hình ảnh các cửa sổ dò tìm (ô vuông màu xanh) đang giảm dần và hiệu chỉnhdần theo từng giai đoạn dò tìm:

Hình 10.Các giai đoạn dò tìm và hiệu chỉnh

2 Nhận Diện Khuôn mặt

Tất cả các khuôn mặt trong khung hình ảnh / video được phát hiện bằng hệ thống dòkhuôn mặt dựa trên mạng nơ ron tích chập sâu (Deep Convolutional Neural Network –DCNN), được gọi là Mô hình tháp sâu để phát hiện khuôn mặt (Deep PyramidDeformable Parts Model for Face Detection - DP2MFD), bao gồm hai mô-đun Môđunđầu tiên tạo ra một hình tháp sâu được chuẩn hóa bảy cấp cho bất kỳ hình ảnh đầu vàonào có kích thước tùy ý Kiến trúc mạng nơ ron tích chập tương tự như Alexnet, được sửdụng để trích xuất các tính năng sâu Mạng hình tháp này tạo ra một tháp gồm 256 bản

đồ đặc trưng ở lớp tích chập thứ 5 (conv5) Bộ lọc 3*3 được áp dụng để có được lớp

Ngày đăng: 26/02/2023, 17:11

w