1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow

64 29 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

Định dạng
Số trang 64
Dung lượng 1,45 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 máy học, các thuật toán sẽ được “huấn luyện” để tìm các đặc trưng hay các đặc điểm chung từ một khối lượng dữ liệu lớn để có thể dựa vào đó, đưa ra các quyết định và các dự đoán dự

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN MÔN HỌC

Đồ án 2 - SE122.L11.PMCL

Đề tài: Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương

mặt với Tensorflow

GVHD: ThS Nguyễn Công Hoan

Sinh viên thực hiện:

Lý Hiền Phúc – 17520904

Lê Đình Trọng Nghĩa – 17520798

Trang 3

11 TỔNG QUAN VỀ BÀI TOÁN NHẬN DIỆN KHUÔN MẶT 29

Trang 4

1 Mục đích

Trong thời kỳ công nghệ ngày càng phát triển mạnh mẽ, ngày càng nhiều các

nghiên cứu được ra đời nhằm giải quyết các bài toán thực tiễn, phục vụ, xây dựng

và phát triển đời sống, xã hội con người văn minh, hiện đại

Trong số đó phải kể đến công nghệ máy học, dưới sự phát triển mạnh mẽ của các máy móc, thiết bị xử lý tính toán Vận dụng lợi thế phát triển đó, máy học đã trở lại

và phát triển mạnh mẽ hơn bao giờ hết, trở thành một trong những xu hướng của thế

kỷ, mở ra nhiều ứng dụng, giải pháp mạnh mẽ, linh hoạt giúp ích cho con người Nắm bắt được sự phát triển đó, nhóm em mong muốn được có cơ hội tiếp xúc, tìm hiểu về máy học Xây dựng và đưa ra những sản phẩm có ích, thiết thực cho đời sống Vì vậy, nhóm em đi đến ý tưởng thực hiện một phần mềm điểm danh ứng dụng công nghệ nhận diện gương mặt Công nghệ nhận diện gương mặt với độ chính xác cao rất thích hợp để làm sản phẩm điểm danh nhận diện gương mặt bởi lẽ phương pháp này có thể thay thế phương pháp sử dụng thẻ từ truyền thống có thể dẫn đến hiện tượng gian lận, hay ưu điểm hơn phương pháp sử dụng vân tay ở điểm

là có thể hạn chế sự tiếp xúc lên cùng một bề mặt, nhất là trong thời gian khủng hoảng đại dịch như hiện nay

Trang 5

2 Machine learning là gì ?

2.1/ Định nghĩa:

Machine learning là 1 nhánh của trí tuệ nhân tạo tập trung vào việc xây dựng, phát triển các ứng dụng có khả năng tự học hỏi từ tri thức và gia tăng độ chính xác theo thời gian

Trong khoa học dữ liệu, một thuật toán là một chuỗi các bước xử lý tính toán thống

kê Trong máy học, các thuật toán sẽ được “huấn luyện” để tìm các đặc trưng hay các đặc điểm chung từ một khối lượng dữ liệu lớn để có thể dựa vào đó, đưa ra các quyết định và các dự đoán dựa trên những dữ liệu mới Thuật toán càng xử lý nhiều

dữ liệu thì sẽ càng “thông minh” hơn và các quyết định và các dự đoán được đưa ra cũng sẽ chính xác hơn

2.2/ Biểu diễn

Biểu diễn (tiếng Anh: representation) là một trong những vấn đề quan trọng của học máy Biểu diễn ở đây có thể hiểu làm sao ghi mã (encode) những thông tin của thế giới thật giúp hoàn thành nhiệm vụ một cách hiệu quả và đầy đủ nhất có thể Thông tin ở đây bao hàm cả thông tin về dữ liệu đầu vào, đầu ra hay các trạng thái của hệ thống; cũng như cách đánh giá hiệu quả của chương trình

Thông thường, trong học máy người ta hay xây dựng các mô hình sử dụng những biến cho việc biểu diễn dữ liệu và nội trạng thái của hệ thống Ví dụ: dùng biến để biểu thị cho tính chất của email là spam (tương ứng giá trị 0) hay là bình thường (tương ứng 1) Mối tương quan giữa các biến này có thể sử dụng ví dụ như mô hình xác suất dạng đồ thị để miêu tả Mặt khác, để đo hiệu quả có thể dùng các hàm thiệt hại (hay hàm tiện ích, trong tiếng Anh là loss function và utility function tương ứng)

Trang 6

Lấy ví dụ về xếp thư điện tử tự động, một hệ thống tự động sau khi trải qua quá trình học từ dữ liệu ("training") có thể suy diễn một số nguyên tắc riêng (chẳng hạn như xem xét nội dung: nếu thư được viết bằng tiếng Anh mà chứa một số từ như

"porn", "sell", "good product" hoặc người gửi đến từ Somalia trong khi người nhận

ở Hà Nội không thân quen nhau) để quyết định xem có phải là thư rác hay không Tuy nhiên, nếu như trong dữ liệu bài giảng (training data) có ngôn ngữ khác trong thực tế (tiếng Việt thay vì tiếng Anh) hoặc thậm chí không phải dạng thuần văn bản (dạng ảnh khiến cho bóc tách nội dung khó hơn hoặc không thể) thì rất có thể máy

sẽ dự báo không chính xác nữa

Một số chương trình có thể tự động cập nhật trong thời gian thực (ví dụ như người

sử dụng có chỉ ra rằng thư bị sắp xếp sai danh mục)

2.4/ Tương tác với con người

Một số hệ thống học máy nỗ lực loại bỏ nhu cầu trực giác của con người trong việc phân tích dữ liệu, trong khi các hệ thống khác hướng đến việc tăng sự cộng tác giữa người và máy Không thể loại bỏ hoàn toàn tác động của con người vì các nhà thiết

kế hệ thống phải chỉ định cách biểu diễn của dữ liệu và những cơ chế nào sẽ được dùng để tìm kiếm các đặc tính của dữ liệu Học máy có thể được xem là một nỗ lực

để tự động hóa một số phần của phương pháp khoa học Một số nhà nghiên cứu học máy tạo ra các phương pháp bên trong các khuôn khổ của thống kê Bayes

2.5/ Tương quan với Khai phá dữ liệu

Khai phá dữ liệu và học máy là hai khái niệm hay bị nhầm lẫn Hai lĩnh vực này nhìn chung gần với nhau và đôi khi dùng chung nhiều phương pháp, công cụ nhưng khác biệt chính là ở mục tiêu:

Khai phá dữ liệu: thường mục tiêu là tìm kiếm những thông tin, tri thức hoàn toàn mới tiềm năng có ích trong nguồn dữ liệu

Học máy: dự đoán một số thông tin của dữ liệu dựa trên những đặc tính đã biết

Trang 7

3 Cách thức hoạt động của máy học

Có 4 bước cơ bản để xây dựng một model máy học

3.1/ Chọn lựa và chuẩn bị một bộ dữ liệu (dataset):

Dữ liệu huấn luyện chính là bộ dataset, dùng để huấn luyện model giải quyết những bài toán mà nó được thiết kế để giải quyết

Dataset gồm 2 loại:

+ Labeled dataset (dataset được gán nhãn)

+ Unlabeled dataset (dataset không được gán nhãn)

Một bộ dataset trước khi dùng cho huấn luyện model cần được chuẩn bị kĩ càng, cẩn thận để tránh ảnh hưởng đến kết quả huấn luyện model Thông thường, dataset

sẽ được chia làm 2 bộ gồm training dataset (dữ liệu huấn luyện) và evaluation

dataset(dữ liệu đánh giá)

3.2/ Chọn một thuật toán để chạy trên bộ dataset

Loại thuật toán sẽ được cân nhắc, chọn lựa dựa trên các yếu tố:

+ Loại dataset (được gán nhãn hay không)

+ Độ lớn của dataset

+ Loại bài toán cần giải quyết

Sau đây là những thuật toán phổ biến thường được áp dụng với bộ dữ liệu được gán nhãn:

+ Hồi quy tuyến tính (Linear regression): Được dùng để dự đoán giá trị của các yếu

tố không độc lập dựa trên giá trị của các yếu tố tự do Ví dụ, một thuật toán hồi quy tuyến tính có thể được huấn luyện để để dự đoán doanh số hằng năm của nhân viên bán hàng (biến số không độc lập) dựa trên mối quan hệ của doanh số với cấp độ học thức và số năm kinh nghiệm của của người đó (các biến số tự do)

+ Cây quyết định (Decision tree): Sử dụng dữ liệu đã được phân lớp để đưa ra các

đề nghị dựa trên một tập hợp các nguyên tắc quyết định Ví dụ, một cây quyết định dùng để dự đoán nên đặt cược vào con ngựa nào có thể sử dụng dữ liệu về các con ngựa (tuổi, tỷ lệ thắng, phả hệ, …) và áp dụng các nguyên tắc vào các số liệu đó để đưa ra quyết định

Trang 8

+ Học tập dựa trên cá thể (Instance-based algorithms): Tiêu biểu là K-Nearest

neighbors hay còn gọi là k-nn Nó dựa vào độ giống nhau của một cá thể với k nhóm cá thể có cùng tập tính gần nhất khác để quyết định xem cá thể đó thuộc về nhóm nào

Các thuật toán áp dụng cho tập dữ liệu không được gắn nhãn:

+ Các thuật toán phân cụm (Clustering algorithms): Đại diện cho nhóm thuật toán này có thể kể đến k-means, thuật toán sẽ tiến hành gom nhóm các cá thể có những đặc điểm tương đồng nhau nhất

+ Các thuật toán học dựa trên các quy tắc quan hệ (Association algorithms): Thuật toán sẽ tìm ra các điểm chung và mối quan hệ trong dữ liệu, chỉ ra các “luật quan hệ” Tương tự với các luật được dùng trong khai thác dữ liệu (data mining)

3.3/ Huấn luyện thuật toán để tạo ra model:

Đây là một quá trình lặp, bao gồm việc cho chạy các biến số qua thuật toán, so sánh kết quả được tạo ra với kết quả đúng, điều chỉnh các trọng số và độ lệch để cho ra kết quả tốt hơn, sau đó tiến hành chạy lại bước này cho đến khi kết quả thu được đã

đủ tốt

3.4/ Sử dụng và cải thiện model

Bước cuối cùng là sử dụng model với các dữ liệu mới, trong trường hợp tốt nhất, model sẽ tự cải thiện độ chính xác qua thời gian Các dữ liệu mới sẽ tùy thuộc vào bài toán đang cần giải quyết là gì Ví dụ, model phát hiện email spam sẽ nhận dữ liệu mới là các email

Trang 9

4 Các kiểu máy học

Các kiểu máy học được chia làm 3 loại chính

4.1/ Supervised machine learning

Còn được biết đến là “học có giám sát”, phương pháp này tự “train” chính nó dựa trên một tập dữ liệu được gán nhãn Một tập dữ liệu được gán nhãn nghĩa là các dữ liệu trong tập được gán cho các nhãn là thông tin mà model được xây dựng để xác định, phân loại Ví dụ, một model được xây dựng để nhận diện giống chó săn cừu Đức sẽ được “trained” trên một tập dữ liệu là các bức ảnh về các giống chó khác nhau đã được gán nhãn tương ứng là tên của giống chó đó

Phương pháp học này cần ít dữ liệu học hơn và quá trình học cũng dễ dàng hơn so với các phương pháp học khác bởi vì kết quả của model đưa ra có thể được kiểm chứng bằng cách so sánh với label thực tế của dữ liệu Tuy nhiên, có một hạn chế

đó là việc chuẩn bị tập dữ liệu được đánh nhãn một cách “đúng đắn” mất rất nhiều công sức, nỗ lực Ngoài ra còn có nguy cơ xảy ra “overfitting”, hay nói cách khác model bị học một cách máy móc, hình thành những “định kiến” dựa trên các dữ liệu được cung cấp trong tập dữ liệu nên khi gặp những dữ liệu mới, lạ thì model sẽ không xử lý tốt

4.2/ Unsupervised machine learning

Còn được gọi là học “không giám sát”, phương pháp học “không giám sát" sử dụng nguồn tri thức là tập dữ liệu không gán nhãn và sử dụng thuật toán để trích xuất các đặc trưng “mấu chốt” để đánh nhãn, phân loại và sắp xếp dữ liệu theo thời gian thực

mà không cần sự can thiệp từ con người Học không giám sát thường ít được dùng

để tự động hóa việc đưa ra quyết định và dự đoán mà thay vào đó, nó chủ yếu để rút trích, phát hiện các điểm chung, các mối quan hệ trong dữ liệu mà con người bỏ sót

Ví dụ như hệ thống phát hiện “spam”, con người sinh ra thư điện tử quá nhiều để một nhóm “nhà khoa học dữ liệu” có thể đánh nhãn và phân loại trong khoảng thời gian cả đời họ Sử dụng một thuật toán học không giám sát, họ có thể phân tích một lượng lớn các thư điện tử và phát hiện các đặc trưng, các hình mẫu của một thư spam (và thậm chí còn cải thiện khả năng đánh dấu thư spam qua thời gian)

4.3/ Semi-supervised learning

Trang 10

Học bán giám sát là một phương pháp học trung hòa giữa học có giám sát và học không giám sát Trong quá trình training, nó sử dụng một tập dữ liệu được gán nhãn nhỏ hơn để định hướng cho việc phân loại và rút trích đặc trưng từ một tập dữ liệu lớn hơn, không được đánh nhãn sẵn

Học bán giám sát có thể giải quyết những bài toán mà không có đủ dữ liệu được đánh nhãn (hoặc không có khả năng thu thập đủ dữ liệu được gán nhãn) để huấn luyện một model học có giám sát

Trang 11

5 Reinforcement machine learning

Học tăng cường là một dạng model máy học hành vi tương tự như học có giám sát Tuy nhiên, model học tăng cường không học dựa trên dữ liệu sẵn có mà nó sẽ tự học theo hình thức “trial and error” có thể hiểu là dạng học bắt tay vào thực hiện, sau đó tiếp thu và phân tích kết quả thu được, học hỏi từ những sai sót Các kết quả đúng qua đó sẽ được tăng cường để hình thành những đề nghị tốt nhất hay những quy trình tốt nhất cho một bài toán cụ thể được đặt ra

Hệ thống Watson@ do IBM phát triển đã chiến thắng cuộc thi Jeopardy! vào năm

2011 là một ví dụ điển hình Hệ thống đã ứng dụng phương pháp học tăng cường để quyết định khi nào nên trả lời hoặc đặt câu hỏi, nên chọn ô vuông nào trên bàn cờ

và đặt cược bao nhiêu Ngoài ra còn 2 hệ thống khác rất nổi tiếng ở thời điểm hiện tại là Alpha-zero do Google AI phát triển và CommaAI do một hacker nổi tiếng Geo Hotz phát triển, hệ thống Alpha-zero đã đánh bại được kì thủ số một thế giới và tái định nghĩa lại những hiểu biết của con người về bộ môn cờ vây trong hàng trăm năm qua hay CommaAI, một hệ thống xe tự hành đơn giản và tinh gọn chỉ gói gọn trong một chiếc smartphone nhưng có hiệu suất tương đương với các mẫu xe tự hành hàng đầu đắt đỏ, sử dụng những loại cảm biến hiện đại và tốn kém như các mẫu xe của Tesla

Trang 12

6 Deep learning

Học sâu là một tập con của máy học (tất cả model học sâu đều là máy học nhưng không phải tất cả model máy học đều là học sâu) Các thuật toán học sâu định nghĩa một mạng neuron nhân tạo được thiết kế để học cách mà bộ não con người học Các model học sâu cần một lượng dữ liệu học lớn, các dữ liệu học này sẽ đi qua nhiều lớp tính toán, áp dụng các trọng số và độ lệch trong mỗi lớp để liên tục điều chỉnh

và cải thiện các kết quả

Các máy học sâu thường là các model học không giám sát hoặc bán giám sát Máy học tăng cường cũng có thể là máy học sâu Một số loại model học sâu nhất định bao gồm:

+ Mạng neuron tích chập (Convolutional neural network)

+ Mạng neuron hồi quy (Recurrent neural network)

được ứng dụng rộng rãi trong các lĩnh vực như thị giác máy tính (computer vision),

xử lý ngôn ngữ tự nhiên (natural language processing - bao gồm cả nhận dạng giọng nói), xe tự hành

Trang 13

7 Neural Network

1/ Khái niệm

Mạng neural nhân tạo hay thường gọi ngắn gọn là mạng neural (tiếng Anh là

Artificial Neural network - ANN hay Neural Network) là một mô hình toán học hay

mô hình tính toán được xây dựng dựa trên các mạng neural sinh học Nó gồm có một nhóm các neural nhân tạo (nút hay còn được gọi là perceptron) nối với nhau, và

xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút (cách tiếp cận connectionism đối với tính toán) Trong nhiều trường hợp, mạng neural nhân tạo là một hệ thống thích ứng (adaptive system) tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chảy qua mạng trong quá trình học Ngày nay có rất nhiều thuật toán trí tuệ nhân tạo, tuy nhiên mạng neural lại có thể thực hiện deep learning

H7.1 Mô hình minh họa mạng neural nhân tạo

2/ Cách học của mạng neural

Không giống các thuật toán khác, mạng neural không thể được lập trình trực tiếp cho một công việc cụ thể Thay vào đó, nó giống như một bộ não đang phát triển

Trang 14

của một đứa trẻ, nó cần được học hỏi thông qua việc tiếp thu tri thức Và các

phương pháp học bao gồm 3 phương pháp chính đã được trình bày ở phần trước, chính là:

+ Supervised learning (học có giám sát)

+ Unsupervised learning (học không giám sát)

+ Reinforced learning (học tăng cường)

Trang 15

8 Lịch sử phát triển

8.1/ 1943 - Mô hình toán học đầu tiên của mạng nơron

Rõ ràng, để máy học và học sâu hoạt động, chúng ta cần có sự hiểu biết vững chắc

về mạng lưới thần kinh của não người

Walter Pitts, một nhà logic học và Warren McCulloch, một nhà thần kinh học, đã đưa cho chúng ta mảnh ghép đó vào năm 1943 khi họ tạo ra mô hình toán học đầu tiên của một mạng nơ-ron Được xuất bản trong tác phẩm tiêu biểu của họ “Phép tính lôgic của ý tưởng tồn tại trong hoạt động thần kinh”, họ đề xuất sự kết hợp giữa toán học và thuật toán nhằm bắt chước các quá trình suy nghĩ của con người

Mô hình của họ - thường được gọi là tế bào thần kinh McCulloch-Pitts - vẫn là tiêu chuẩn ngày nay (mặc dù nó đã phát triển qua nhiều năm)

mô tả tác động của nó đối với công việc

Vào năm 1950, Turing chỉ đề xuất một chiếc máy như vậy, thậm chí còn gợi ý về các thuật toán di truyền, trong bài báo của ông “Máy tính và trí thông minh” Trong

đó, anh đã tạo ra thứ được gọi là Thử nghiệm Turing - mặc dù bản thân anh gọi nó

là Trò chơi Giả lập - để xác định xem một máy tính có thể “suy nghĩ” hay không Đơn giản nhất, bài kiểm tra yêu cầu một máy thực hiện một cuộc trò chuyện qua tin nhắn với con người Nếu sau năm phút mà con người tin rằng họ đang nói chuyện với một người khác, máy được cho là đã qua

Sẽ mất 60 năm để bất kỳ cỗ máy nào làm được như vậy, mặc dù nhiều người vẫn tranh luận về tính hợp lệ của kết quả

8.3/ 1952 - Chương trình học máy đầu tiên

Trang 16

Arthur Samuel đã phát minh ra máy học và đặt ra cụm từ “máy học” vào năm 1952 Ông được tôn kính là cha đẻ của máy học Khi gia nhập Phòng thí nghiệm

Poughkeepsie tại IBM, Arthur Samuel sẽ tiếp tục tạo ra các chương trình học máy tính đầu tiên Các chương trình được xây dựng để chơi trò chơi cờ caro Chương trình của Arthur Samuel rất độc đáo ở chỗ mỗi lần chơi cờ caro, máy tính sẽ luôn hoạt động tốt hơn, sửa lỗi và tìm cách tốt hơn để giành chiến thắng từ dữ liệu đó Học tự động này sẽ là một trong những ví dụ đầu tiên của học máy

8.4/ 1957 - Đặt nền móng cho mạng nơron sâu

Rosenblatt, một nhà tâm lý học, đã gửi một bài báo có tựa đề “The Perceptron: A Perceiving and Recognition Automaton” cho Phòng thí nghiệm Hàng không Cornell vào năm 1957

Ông tuyên bố rằng mình sẽ “xây dựng một hệ thống điện tử hoặc cơ điện để học cách nhận ra các điểm tương đồng hoặc đồng nhất giữa các mẫu quang học, thông tin điện, hoặc âm sắc, theo cách có thể gần giống với các quá trình tri giác của não sinh học “

Ý tưởng của ông thiên về phần cứng hơn là phần mềm hoặc thuật toán, nhưng nó đã gieo mầm cho việc học từ dưới lên và được công nhận rộng rãi là nền tảng của mạng nơ-ron sâu (DNN)

8.5/ 1959 - Khám phá các tế bào đơn giản và tế bào phức tạp

Năm 1959, các nhà sinh lý học thần kinh và những người đoạt giải Nobel David H Hubel và Torsten Wiesel đã phát hiện ra hai loại tế bào trong vỏ não thị giác chính:

tế bào đơn giản và tế bào phức tạp

Nhiều mạng nơ-ron nhân tạo (ANN) được lấy cảm hứng từ những quan sát sinh học này theo cách này hay cách khác Mặc dù không phải là một cột mốc đặc biệt cho học sâu, nhưng nó chắc chắn là một trong những ảnh hưởng nặng nề đến lĩnh vực này

Trang 17

hành vi đó được sửa đổi bằng phản hồi - đã được áp dụng trực tiếp cho AI và ANN trong những năm qua

Chúng được sử dụng để phát triển những điều cơ bản của mô hình lan truyền ngược được sử dụng trong huấn luyện mạng nơ-ron

8.7/ 1965 - Mạng học sâu hoạt động đầu tiên

Nhà toán học Ivakhnenko và các cộng sự bao gồm cả Lapa được cho là đã tạo ra mạng học sâu hoạt động đầu tiên vào năm 1965, áp dụng những gì chỉ là lý thuyết

và ý tưởng cho đến thời điểm đó

Ivakhnenko đã phát triển Phương pháp Nhóm Xử lý Dữ liệu (GMDH) - được định nghĩa là “họ thuật toán quy nạp để lập mô hình toán học dựa trên máy tính của bộ

dữ liệu đa tham số có tính năng tối ưu hóa cấu trúc và tham số hoàn toàn tự động của các mô hình ”- và áp dụng nó cho mạng nơron

Chỉ vì lý do đó, nhiều người coi Ivakhnenko là cha đẻ của học sâu hiện đại

Các thuật toán học tập của ông đã sử dụng các perceptron nhiều lớp tiếp tục sâu bằng cách sử dụng phương pháp thống kê ở mỗi lớp để tìm các tính năng tốt nhất và chuyển tiếp chúng qua hệ thống

Sử dụng GMDH, Ivakhnenko đã có thể tạo ra một mạng sâu 8 lớp vào năm 1971 và ông đã chứng minh thành công quá trình học tập trong một hệ thống nhận dạng máy tính có tên là Alpha

8.8/ 1982 - Sự ra đời của Mạng Hopfield

Năm 1982, Hopfield tạo ra và phổ biến hệ thống hiện mang tên ông

Mạng Hopfield là một mạng nơ-ron lặp lại hoạt động như một hệ thống bộ nhớ có thể định địa chỉ nội dung và chúng vẫn là một công cụ triển khai phổ biến cho học sâu trong thế kỷ 21

8.9/ 1985 – A program learns to pronounce English words

Nhà khoa học thần kinh tính toán Terry Sejnowski đã sử dụng hiểu biết của mình về quá trình học tập để tạo ra NETtalk vào năm 1985

Chương trình đã học cách phát âm các từ tiếng Anh giống như cách một đứa trẻ làm

và có thể cải thiện theo thời gian trong khi chuyển văn bản thành giọng nói

8.10/ 1986 - Cải tiến trong nhận dạng hình dạng và dự đoán từ

Trang 18

Trong một bài báo năm 1986 có tựa đề “Học các biểu diễn bằng các lỗi lan truyền ngược”, Rumelhart, Hinton và Williams đã mô tả chi tiết hơn về quá trình Lan truyền ngược

Họ đã chỉ ra cách nó có thể cải thiện đáng kể các mạng nơ-ron hiện có cho nhiều tác

vụ như nhận dạng hình dạng, dự đoán từ và hơn thế nữa

Mặc dù có một số thất bại sau thành công ban đầu đó, Hinton vẫn tiếp tục nghiên cứu của mình trong Mùa đông AI thứ hai để đạt được mức độ thành công mới và được hoan nghênh Ông được nhiều người trong lĩnh vực này coi là cha đỡ đầu của học sâu

8.11/ 1989 - Máy đọc các chữ số viết tay

LeCun - một ngôi sao khác trong vũ trụ AI và DL - đã kết hợp các mạng nơ-ron phức hợp với các lý thuyết lan truyền ngược gần đây để đọc các chữ số viết tay vào năm 1989

Hệ thống của ông cuối cùng đã được sử dụng để đọc séc viết tay và mã zip của NCR và các công ty khác, xử lý từ 10 - 20% séc quy ra tiền mặt ở Hoa Kỳ vào cuối những năm 90 và đầu những năm 2000

8.12/ 1989 – Q-learning

Watkins đã xuất bản luận án Tiến sĩ của mình - “Học từ phần thưởng bị trì hoãn” - vào năm 1989 Trong đó, ông đưa ra khái niệm Q-learning, giúp cải thiện đáng kể tính thực tiễn và tính khả thi của việc học tăng cường trong máy móc

Thuật toán mới này cho thấy có thể học điều khiển tối ưu trực tiếp mà không cần

mô hình hóa các xác suất chuyển đổi hoặc phần thưởng mong đợi của Quy trình Quyết định Markov

8.13/ 1993 - Một nhiệm vụ 'học rất sâu' được giải quyết

Nhà khoa học máy tính người Đức Schmidhuber đã giải quyết một nhiệm vụ “học rất sâu” vào năm 1993 yêu cầu hơn 1.000 lớp trong mạng nơ-ron tuần hoàn

Đó là một bước tiến vượt bậc về độ phức tạp và khả năng của mạng nơ-ron

8.14/ 1995 – Support vector machines

Máy vectơ hỗ trợ - hay SVM - đã xuất hiện từ những năm 1960, được nhiều người điều chỉnh và hoàn thiện trong nhiều thập kỷ

Trang 19

Mô hình tiêu chuẩn hiện tại được thiết kế bởi Cortes và Vapnik vào năm 1993 và được giới thiệu vào năm 1995

SVM về cơ bản là một hệ thống để nhận dạng và ánh xạ dữ liệu tương tự và có thể được sử dụng trong phân loại văn bản, nhận dạng ký tự viết tay và phân loại hình ảnh vì nó liên quan đến học máy và học sâu

Dữ liệu được gắn nhãn - chẳng hạn như những hình ảnh này - là cần thiết để "huấn luyện" mạng thần kinh trong học tập có giám sát

8.16/ 2011 - Sự ra đời của AlexNet

Từ năm 2011 đến 2012, Alex Krizhevsky đã chiến thắng một số cuộc thi máy học

và học sâu quốc tế với việc tạo ra AlexNet, một mạng nơ-ron phức hợp

AlexNet được xây dựng và cải tiến dựa trên LeNet5 (được xây dựng bởi Yann LeCun nhiều năm trước đó) Ban đầu nó chỉ chứa tám lớp - năm lớp phức tạp, tiếp theo là ba lớp được kết nối đầy đủ - và tăng cường tốc độ và độ trễ bằng cách sử dụng các đơn vị tuyến tính được điều chỉnh

Thành công của nó đã khởi đầu cho sự phục hưng của mạng nơ-ron phức tạp trong cộng đồng học sâu

8.17/ 2014 - DeepFace

Được phát triển và phát hành trên toàn thế giới vào năm 2014, hệ thống học sâu khổng lồ trên mạng xã hội - có tên là DeepFace - sử dụng mạng thần kinh để nhận dạng khuôn mặt với độ chính xác 97,35% Đó là sự cải thiện 27% so với những nỗ lực trước đó và là một con số cạnh tranh với con người (được báo cáo là 97,5%) Google Photos cũng sử dụng một chương trình tương tự

8.18/ 2014 – Generative Adversarial Networks (GAN)

Trang 20

GAN cho phép các mô hình giải quyết việc học tập không có giám sát, vốn ít nhiều

là mục tiêu cuối cùng trong cộng đồng trí tuệ nhân tạo

Về cơ bản, một GAN sử dụng hai mạng cạnh tranh: mạng thứ nhất lấy dữ liệu và cố gắng tạo ra các mẫu không thể phân biệt được, trong khi mạng thứ hai nhận cả dữ liệu và các mẫu đã tạo và phải xác định xem mỗi điểm dữ liệu là chính hãng hay được tạo ra

Học đồng thời, các mạng cạnh tranh với nhau và thúc đẩy nhau trở nên “thông minh hơn” nhanh hơn

8.19/ Fun and Games

+ 1992: Gerald Tesauro phát triển TD-Gammon, một chương trình máy tính sử dụng mạng thần kinh nhân tạo để học cách chơi backgammon

+ 1997: Deep Blue - do IBM thiết kế - đánh bại đại kiện tướng cờ vua Garry Kasparov trong loạt sáu ván

+ 2011: Watson - một hệ thống trả lời câu hỏi do IBM phát triển - tranh giải trên Jeopardy! chống lại Ken Jennings và Brad Rutter Sử dụng kết hợp máy học, xử lý ngôn ngữ tự nhiên và các kỹ thuật truy xuất thông tin, Watson đã

có thể giành chiến thắng trong cuộc thi trong suốt ba trận đấu

+ 2016: Chương trình AlphaGo của Google đánh bại Lee Sedol của Hàn Quốc, một kỳ thủ cờ vây quốc tế được xếp hạng hàng đầu Được phát triển bởi DeepMind, AlphaGo sử dụng kỹ thuật máy học và tìm kiếm cây Cụ thể hơn chính là phương pháp học tăng cường (reinforcement learning)

Trang 21

9 Ứng dụng

● Trợ lý kỹ thuật số: Apple Siri, Amazon Alexa, Google Assistant và các trợ lý

kỹ thuật số khác được hỗ trợ bởi xử lý ngôn ngữ tự nhiên (NLP), một ứng dụng máy học cho phép máy tính xử lý dữ liệu văn bản và giọng nói và hiểu ngôn ngữ con người theo cách mọi người làm Xử lý ngôn ngữ tự nhiên cũng thúc đẩy các ứng dụng điều khiển bằng giọng nói như GPS và phần mềm nhận dạng giọng nói (chuyển lời nói thành văn bản)

● Quảng cáo trực tuyến theo ngữ cảnh: Các mô hình máy học và học sâu có thể đánh giá nội dung của một trang web — không chỉ chủ đề mà còn cả các sắc thái như quan điểm hoặc thái độ của tác giả — và đưa ra các quảng cáo phù hợp với sở thích của khách truy cập

● An ninh mạng: Máy học có thể trích xuất thông tin tình báo từ các báo cáo sự

cố, cảnh báo, bài đăng trên blog, v.v để xác định các mối đe dọa tiềm ẩn, tư vấn cho các nhà phân tích bảo mật

● Phân tích hình ảnh y tế: Thể loại và số lượng dữ liệu hình ảnh y tế kỹ thuật

số đã bùng nổ, dẫn đến nhiều thông tin có sẵn hơn để hỗ trợ chẩn đoán

nhưng cũng có nhiều cơ hội hơn cho lỗi của con người khi đọc dữ liệu Mạng nơ-ron chuyển đổi (CNN), mạng nơ-ron lặp lại (RNN) và các mô hình học sâu khác đã chứng tỏ ngày càng thành công trong việc trích xuất các tính năng và thông tin từ hình ảnh y tế để giúp hỗ trợ chẩn đoán chính xác

● Ô tô tự lái: Ô tô tự lái đòi hỏi máy tính phải liên tục xác định các đối tượng trong môi trường xung quanh ô tô, dự đoán chúng sẽ thay đổi hoặc di chuyển như thế nào và đưa ra hướng dẫn Hầu như mọi hình thức học máy và thuật toán học sâu được đề cập ở trên đều đóng một số vai trò trong việc kích hoạt

ô tô tự lái

Trang 22

10 CONVOLUTIONAL NEURAL NETWORK

Để giải quyết bài toán nhận diện khuôn mặt trong đề tài, nhóm em sử dụng một giải pháp sẵn có là một mạng neural tích chập (convolutional neural network) VGG16 Sau đây là tổng quan về mạng neural tích chập

10.1/ Tiến trình phát triển của CNN

10.1.1/ Giới thiệu chung

Mạng CNN ra đời đã thúc đẩy quá trình phát triển của ngành computer vision Hiện tại có rất nhiều các kiến trúc mạng CNN khác nhau và các kiến trúc mới vẫn đang tiếp tục được khám phá ngày qua ngày Nhưng ít ai biết rằng đằng sau những khám phá đó là một tiến trình khoa học lâu dài và bền bỉ trong gần 20 năm Với sự kết hợp đồng bộ của phát triển kiến trúc mạng, khả năng tính toán của máy tính và các phương pháp tối ưu hóa Bài viết này mình sẽ giới thiệu tới các bạn lược sử hình thành của các kiến trúc CNN tiêu biểu và những đóng góp mang tính cải tiến của những kiến trúc mạng này so với trước đó Thông qua bài viết bạn đọc sẽ hình dung được lộ trình hình thành và phát triển cho tới ngày nay của những mạng CNN và đồng thời hiểu rõ được đặc trưng trong kiến trúc của từng mạng Những ưu nhược điểm và cải tiến đã thực hiện so với những kiến trúc mạng trước đó

10.1.2/ Các dấu mốc quan trọng

Hình 10.1: Các cột mốc phát triển của mạng CNN Source: Illustrated: 10

CNN Architectures - Raimi Karim

Tiến trình phát triển của các kiến trúc CNN có thể được khái quát qua những dẫu mốc quan trọng sau đây:

Trang 23

1998: Yan Lecun lần đầu tiên sử dụng mạng tích chập trong tác vụ phân loại chữ số viết tay và đạt hiệu quả cao Tuy nhiên vào thời điểm đó do chưa có sự phát triển của dữ liệu và khả năng tính toán nên mạng CNN vẫn chưa có cơ hội phát triển 2009: Bộ dữ liệu ImageNet được giới thiệu vào năm 2009 là một trong những bộ dữ liệu tạo ra tiếng vang trong cộng đồng computer vision Đây là bộ dữ liệu lớn nhất

so với các bộ dữ liệu từng có từ trước đến thời điểm đó Với 1 triệu ảnh của 1000 nhãn, mỗi nhãn bao gồm 1000 ảnh, các mô hình được huấn luyện trên ImageNet dường như có thể chuyển giao tới rất nhiều những domain dữ liệu khác nhau Kể từ thời điểm đó, bắt đầu từ năm 2010, ImageNet trở thành cuộc thi đo đạc sự phát triển của các thuật toán học có giám sát trong thị giác máy tính

2012: Mạng AlexNet lần đầu tiên vượt qua các phương pháp tạo đặc trưng thủ công theo truyền thống và đạt độ chính xác cách biệt trong cuộc thi ImageNet Khởi đầu cho xu hướng nghiên cứu của các chuyên gia đầu ngành trong computer vision trong việc ứng dụng CNN

Liên tiếp vào những năm sau đó, chỉ trong vòng 8 năm, rất nhiều các kiến trúc mới của CNN đã được phát triển và cải tiến qua các năm như VGG Net, GoogleNet, ResNet, DenseNet,… mà chúng ta sẽ tìm hiểu qua bài viết này Qúa trình phát triển của các kiến trúc mạng song hành cùng với sự phát triển phần cứng máy tính mạnh hơn trước Các GPU có tốc độ tính toán nhanh hơn, các frame work hỗ trợ deep learning hình thành và phát triển, các bộ dữ liệu lớn ngày một nhiều hơn và kéo theo đó là sự mở rộng của cộng đồng những người theo đuổi và nghiên cứu về AI cho tới thời điểm hiện tại

10.2/ Lý thuyết mạng tích chập

10.2.1/ Giới thiệu tích chập

Tích chập là một khái niệm trong xử lý tín hiệu số nhằm biến đổi thông tin đầu vào thông qua một phép tích chập với bộ lọc để trả về đầu ra là một tín hiệu mới Tín hiệu này sẽ làm giảm những đặc trưng mà bộ lọc không quan tâm và chỉ giữ những đặc trưng chính

Tích chập thông dụng nhất là tích chập 2 chiều được áp dụng trên ma trận đầu vào

và ma trận bộ lọc 2 chiều Phép tích chập của một ma trận với một bộ lọc (receptive field) là một ma trận sẽ trả qua những bước sau:

Trang 24

Tính tích chập tại 1 điểm: Tại vị trí đầu tiên trên cùng của ma trận đầu vào ta sẽ lọc

ra một ma trận con có kích thước bằng với kích thước của bộ lọc Giá trị tương ứng trên là tích chập của với được tính như sau:

Tiến hành trượt dọc theo ma trận theo chiều từ trái qua phải, từ trên xuống dưới theo bước nhảy (stride) ta sẽ tính được các giá trị tiếp theo Sau khi quá trình này kết thúc ta thu được trọn vẹn ma trận

Hình 10.2: Ví dụ minh họa lý thuyết tích chập

10.2.2/ Các thuật ngữ

Đơn vị (Unit): Là giá trị của một điểm nằm trên ma trận khối ở mỗi tầng của mạng CNN

Vùng nhận thức (Receptive Field): Là một vùng ảnh trên khối ma trận đầu vào mà

bộ lọc sẽ nhân tích chập để ánh xạ tới một đơn vị trên layer tiếp theo

Vùng địa phương (Local region): Theo một nghĩa nào đó sẽ bao hàm cả vùng nhận thức Là một vùng ảnh cụ thể nằm trên khối ma trận ở các tầng mạng CNN

Bản đồ kích hoạt (Activation Map): Là ma trận đầu ra khi áp dụng phép tích chập giữa bộ lọc với các vùng nhận thức theo phương chi chuyển từ trái qua phải và từ trên xuống dưới

Bản đồ đặc trưng (Feature Map): Theo một nghĩa nào đó cũng tương tự như bản đồ kích hoạt

Trang 25

10.2.3/ Kiến trúc chung của mạng neural tích chập

Tích chập được ứng dụng phổ biến trong lĩnh vực thị giác máy tính Thông qua các phép tích chập, các đặc trưng chính từ ảnh được trích xuất và truyền vào các tầng tích chập (layer convolution) Mỗi một tầng tích chập sẽ bao gồm nhiều đơn vị mà kết quả ở mỗi đơn vị là một phép biến đổi tích chập từ layer trước đó thông qua phép nhân tích chập với bộ lọc

Về cơ bản thiết kế của một mạng nơ ron tích chập 2 chiều có dạng như sau:

INPUT -> [[CONV -> RELU]*N -> POOL?]*M -> [FC -> RELU]*K -> FC

Trong đó:

INPUT: Tầng đầu vào

CONV: Tầng tích chập

RELU: Tầng biến đổi thông qua hàm kích hoạt relu để kích hoạt phi tuyến

POOL: Tầng tổng hợp, thông thường là Max pooling hoặc có thể là Average

pooling dùng để giảm chiều của ma trận đầu vào

FC: Tầng kết nối hoàn toàn Thông thường tầng này nằm ở sau cùng và kết nối với các đơn vị đại diện cho nhóm phân loại

Các kí hiệu []N, []M hoặc []*K ám chỉ các khối bên trong [] có thể lặp lại nhiều lần liên tiếp nhau M, K là số lần lặp lại Kí hiệu -> đại diện cho các tầng liền kề nhau

mà tầng đứng trước -> sẽ làm đầu vào cho tầng đứng sau -> Dấu ? sau POOL để thể hiện tầng POOL có thể có hoặc không sau các khối tích chập

Như vậy ta có thể thấy một mạng nơ ron tích chập về cơ bản có 3 quá trình khác nhau:

Quá trình trích xuất đặc trưng (convolution): Thông qua các tích chập giữa ma trận đầu vào với bộ lọc để tạo thành các đơn vị trong một tầng mới Quá trình này có thể diễn ra liên tục ở phần đầu của mạng và thường sử dụng hàm kích hoạt relu

Quá trình tổng hợp (max pooling): Các tầng càng về sau trích xuất đặc trưng sẽ cần

số lượng tham số lớn do chiều sâu được qui định bởi số lượng các kênh ở các tầng sau thường tăng tiến theo cấp số nhân Điều đó làm tăng số lượng tham số và khối lượng tính toán trong mạng nơ ron Do đó để giảm tải tính toán chúng ta sẽ cần giảm chiều của khối ma trận đầu vào hoặc giảm số đơn vị của tầng Vì mỗi một đơn

Trang 26

vị sẽ là kết quả đại diện của việc áp dụng 1 bộ lọc để tìm ra một đặc trưng cụ thể nên việc giảm số đơn vị sẽ không khả thi Giảm kích thước khối ma trận đầu vào thông qua việc tìm ra 1 giá trị đại diện cho mỗi một vùng không gian mà bộ lọc đi qua sẽ không làm thay đổi các đường nét chính của bức ảnh nhưng lại giảm được kích thước của ảnh Do đó quá trình giảm chiều ma trận được áp dụng Quá trình này gọi là tổng hợp nhằm mục đích giảm kích thước dài, rộng

Quá trình kết nối hoàn toàn (fully connected): Sau khi đã giảm kích thước đến một mức độ hợp lý, ma trận cần được làm dẹt (flatten) thành một vector và sử dụng các kết nối hoàn toàn giữa các tầng Quá trình này sẽ diễn ra cuối mạng CNN và sử dụng hàm kích hoạt là relu Tầng kết nối hoàn toàn cuối cùng (fully connected

layer) sẽ có số lượng đơn vị bằng với số classes và áp dụng hàm kích hoạt là

softmax nhằm mục đích tính phân phối xác xuất

Hình 10.3: Cấu trúc đại diện của một mạng nơ ron tích chập

10.2.4/ Các mạng CNN tiêu biểu

LeNet (1998): Là mạng đầu tiên áp dụng tích chập 2 chiều

AlexNet (2012): Làm mạng áp dụng CNN đầu tiên chiến thắng trong cuộc thi

ImageNet Phá vỡ lối mòn sử dụng các đặc trưng thủ công từ các thuật toán truyền thống như HOG, SHIFT, SURF thay cho các đặc trưng được huấn luyện trong các tác vụ học có giám sát của thị giác máy tính

Trang 27

VGG-16 (2014): Hình thành một xu hướng cải thiện độ chính xác của các mạng học sâu thông qua gia tăng độ sâu của chúng

GoogleNet - InceptionV1 (2014): Kết hợp nhiều bộ lọc có kích thước khác biệt vào cùng một khối Định hình kiến trúc khối cho các kiến trúc mạng CNN chuẩn sau này

ResNet-50 (2015): Sử dụng kết nối tắt để ánh xạ các đầu vào từ những layer trước

đó tới những layer sau Là kiến trúc mạng rất sâu nhưng có số tham số nhỏ hơn nhờ

kế thừa những kỹ thuật từ GoogleNet

DenseNet (2016): Là bước phát triển tiếp theo cua ResNet khi kế thừa kiến trúc khối và phát triển kết nối tắt theo một mạng lưới dày đặc

Trang 28

11 TỔNG QUAN VỀ BÀI TOÁN NHẬN DIỆN KHUÔN MẶT

11.1/Bài toán nhận diện khuôn mặt

Nhận dạng khuôn mặt (Face Recognition) là một phương pháp sinh trắc để xác định hoặc xác minh một cá nhân nào đó bằng cách so sánh dữ liệu hình ảnh chụp trực tiếp hoặc hình ảnh kỹ thuật số với bản ghi được lưu trữ cho người đó Nó được xem

là một lĩnh vực nghiên cứu của ngành Biometrics (tương tự như nhận dạng vân tay – Fingerprint Recognition, hay nhận dạng mống mắt – Iris Recognition) Xét về nguyên tắc chung, nhận dạng khuôn mặt có sự tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích chọn đặt trưng (feature extraction) của mỗi lĩnh vực Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng khuôn mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người.So với nhận dạng vân tay và mống mắt, nhận dạng khuôn mặt có nguồn dữ liệu phong phú hơn (chúng ta có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác

có kiểm soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy

từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát) Các hệ thống nhận dạng khuôn mặt thường được sử dụng cho các mục đích an ninh như kiểm soát

an ninh tại tòa nhà, sân bay, máy ATM, tra cứu thông tin của tội phạm, phát hiện tội phạm ở nơi công cộng, và ngày càng được ứng dụng rộng rãi trong cuộc sống Bên cạnh những thành công đã được ghi nhận thì nhận dạng khuôn mặt cũng còn gặp nhiều khó khăn như về độ sáng, hướng nghiêng, kích thước hình ảnh, diện mạo, biểu hiện cảm xúc của khuôn mặt hay ảnh hưởng của tham số môi trường Để xây dựng một hệ thống nhận dạng khuôn mặt có đầu vào của hệ thống là một hình ảnh

kỹ thuật số hay một khung hình video từ một nguồn video Đầu ra là xác định hoặc xác minh người ở trong bức hình hoặc trong video đó là ai Hướng tới mục tiêu này chúng ta thường chia thủ tục nhận dạng khuôn mặt gồm ba bước: Phát hiện khuôn mặt, trích rút đặc trưng và nhận dạng khuôn mặt

Hình 11.1.Hệ thống nhận dạng khuôn mặt

Trang 29

Phát hiện khuôn mặt (Face Detection): Chức năng chính của bước này là phát hiện

ra khuôn mặt xem nó có xuất hiện ở trong một bức hình hay một đoạn video hay không? Tỷ lệ phát hiện ra khuôn mặt phụ thuộc nhiều vào điều kiện về độ sáng, hướng khuôn mặt, biểu hiện cảm xúc trên khuôn mặt hay các yếu tố môi trường khác Để hệ thống nhận dạng hoạt động đạt hiệu quả cao thì hình ảnh khuôn mặt sau khi được phát hiện cần chuẩn hóa về kích thước, ánh sáng Trích rút đặc trưng (Feature Extraction): Sau khi phát hiện ra khuôn mặt trong bức ảnh, chúng ta tiến hành trích rút những đặc trưng của khuôn mặt Bước này trích xuất ra một vector đặc trưng đại diện cho một khuôn mặt Nó phải đảm bảo được tính duy nhất của một khuôn mặt Nhận dạng khuôn mặt (Face Recognition): Với hình ảnh đầu vào sau khi phát hiện ra khuôn mặt, trích rút các đặc trưng của khuôn mặt và đem so sánh các đặc trưng này với cơ sở dữ liệu khuôn mặt Bài toán nhận dạng khuôn mặt được ứng dụng nhiều trong các lĩnh vực đời sống đặc biệt ở những lĩnh vực công nghệ cao, yêu cầu về an ninh, bảo mật Do đó để hệ thống nhận dạng khuôn mặt hoạt động mạnh mẽ với tốc độ và độ tin cậy thì có rất nhiều các phương pháp về nhận dạng khuôn mặt được đưa ra Các phương pháp có thể được phân loại theo các tiêu chí khác nhau như nhận dạng với dữ liệu ảnh đầu vào là ảnh tĩnh 2D (Elastic Bunch Graph, Active Appearance Model) Phương pháp này là phổ biến nhất và tương lai sẽ là 3D (3D Morphable Model) Tuy nhiên trên thực tế người ta hay chia phương pháp nhận dạng khuôn mặt ra thành 2 loại:

- Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn

mặt (Feature Base Face Recognition)

- Nhận dạng dựa trên xét tổng thể toàn khuôn mặt (Appearance

Based Face Recognition)

11.2/ Lịch sử phát triển của nhận diện gương mặt

11.2.1/ Thời kỳ đầu của nhận diện gương mặt - 1960s

Những người tiên phong trong lĩnh vực này là Woody Bledsoe, Helen Chan Wolf

và Charles Bisson Vào năm 1964 và 1965, Bledsoe cùng với Wolf và Bisson đã nghiên cứu cách thức sử dụng máy tính để nhận diện gương mặt con người

Do kinh phí đầu tư dự án bắt nguồn từ một tổ chức tình báo giấu tên nên phần lớn những nghiên cứu của họ đã không được không bố Tuy nhiên, sau đó đã có nguồn tiết lộ rằng vào thời điểm đó, họ đã dùng cách đánh dấu thủ công các đặc điểm khác nhau trên gương mặt như tâm mắt, miệng, … Sau đó chúng sẽ được máy tính xoay

Trang 30

dựa trên các quy tắc toán học để xử lý cho các trường hợp gương mặt xoay ở những

tư thế khác nhau Cả khoảng cách giữa các điểm đặc trưng này cũng được tính toán

và so sánh giữa các bức ảnh để xác định danh tính

Mặc dù những bước nghiên cứu đầu tiên của họ đã bị giới hạn nặng nề bởi công nghệ ở thời đại đó, tuy nhiên nó đã đóng một vai trò quan trọng trong việc chứng minh rằng nhận diện gương mặt là một phương pháp sinh trắc học hoàn toàn khả thi

11.2.2/ Gia tăng sự chính xác - 1970s

Tiếp tục từ những nghiên cứu nền tảng của Bledsoe, công việc đã được thừa hưởng

và duy trì bởi Goldstein, Harmon và Lesk vào những năm 1970 Họ đã mở rộng hơn bằng cách xét thêm các 21 đặc trưng khác của đối tượng như màu tóc, độ dày môi

để tự động hóa việc nhận diện

Tuy độ chính xác được nâng cao, các phép đo và các vị trí vẫn cần được tính toán thủ công, việc này vẫn là một việc rất tốn công nhưng cũng đã thể hiện được một bước tiến mới về công nghệ

11.2.3/ Áp dụng đại số tuyến tính - 1980s/90s

Mãi đến những năm 1980 thì ta mới có thể thấy được những bước tiến rõ rệt trong

sự phát triển về tính khả thi của nhận diện gương mặt trong doanh nghiệp Vào

1988, Sirovich và Kirby bắt đầu áp dụng đại số tuyến tính vào bài toán nhận diện gương mặt

Một hệ thống được biết với cái tên Eigenface đã chỉ ra rằng các đặc trưng được phân tích từ một tập các bức ảnh gương mặt có thể tạo thành một tập các đặc trưng

cơ bản Ngoài cũng chỉ ra được rằng để mã hóa chính xác một hình ảnh gương mặt cần dùng không quá 100 giá trị

Vào 1991, Turk và Pentland đã tiếp tục công trình nghiên cứu của Sirovich và Kirby bằng cách phát hiện ra cách để phát hiện các gương mặt trong hình ảnh Điều này đã mở ra một bước tiến mới trong việc tự động hóa nhận diện gương mặt và là tiền đề cho sự phát triển trong tương lai của công nghệ này

11.2.4/ Chương trình FERET - 990s/2000s

Cơ quan Dự án Nghiên cứu Tiên tiến Quốc phòng (DARPA) và Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) đã triển khai Công nghệ Nhận dạng Khuôn mặt vào đầu những năm 1990 để thúc đẩy thương mại hóa công nghệ nhận diện gương mặt

Trang 31

Dự án liên quan đến việc tạo cơ sở dữ liệu về hình ảnh khuôn mặt Bao gồm trong

bộ thử nghiệm là 2.413 ảnh tĩnh đại diện cho 856 người Hy vọng rằng một cơ sở dữ liệu lớn về hình ảnh thử nghiệm để nhận dạng khuôn mặt sẽ truyền cảm hứng cho

sự đổi mới và có thể dẫn đến công nghệ nhận dạng khuôn mặt mạnh mẽ hơn

11.2.5/ Kiểm tra nhà cung cấp nhận dạng khuôn mặt - 2000s

Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) đã bắt đầu Thử nghiệm nhà cung cấp nhận dạng khuôn mặt (FRVT) vào đầu những năm 2000 Dựa trên FERET, FRVTs được thiết kế để cung cấp các đánh giá độc lập của chính phủ về các hệ thống nhận dạng khuôn mặt có sẵn trên thị trường, cũng như các công nghệ nguyên mẫu Những đánh giá này được thiết kế để cung cấp cho các cơ quan thực thi pháp luật và chính phủ Hoa Kỳ thông tin cần thiết để xác định những cách tốt nhất để triển khai công nghệ nhận dạng khuôn mặt

11.2.6/ Cuộc thi Face Recognition Grand Challenge – 2006

Ra mắt vào năm 2006, mục tiêu chính của Thử thách lớn nhận dạng khuôn mặt (FRGC) là thúc đẩy và nâng cao công nghệ nhận dạng khuôn mặt được thiết kế để

hỗ trợ các nỗ lực nhận dạng khuôn mặt hiện có ở Chính phủ Hoa Kỳ

FRGC đã đánh giá các thuật toán nhận dạng khuôn mặt mới nhất hiện có Hình ảnh khuôn mặt có độ phân giải cao, quét khuôn mặt 3D và hình ảnh mống mắt được sử dụng trong các thử nghiệm Kết quả chỉ ra rằng các thuật toán mới chính xác hơn 10 lần so với các thuật toán nhận dạng khuôn mặt của năm 2002 và chính xác hơn 100 lần so với năm 1995, cho thấy những tiến bộ của công nghệ nhận dạng khuôn mặt trong thập kỷ qua

11.2.7/ Mạng xã hội – 2010 đến nay

Trở lại năm 2010, Facebook bắt đầu triển khai chức năng nhận dạng khuôn mặt giúp xác định những người có khuôn mặt có thể xuất hiện trong ảnh mà người dùng Facebook cập nhật hàng ngày Tính năng này đã ngay lập tức gây tranh cãi với các phương tiện truyền thông tin tức, làm dấy lên một loạt các bài báo liên quan đến quyền riêng tư Tuy nhiên, người dùng Facebook nói chung dường như không bận tâm Không có tác động tiêu cực rõ ràng đến việc sử dụng hoặc phổ biến của trang web, hơn 350 triệu ảnh được tải lên và gắn thẻ bằng nhận dạng khuôn mặt mỗi ngày

Trang 32

11.2.8/ iPhone X – 2017

Công nghệ Nhận dạng khuôn mặt đã phát triển nhanh chóng từ năm 2010 trở lại đây

và ngày 12 tháng 9 năm 2017 là một bước đột phá quan trọng khác để tích hợp tính năng nhận dạng khuôn mặt vào cuộc sống hàng ngày của chúng ta Đây là ngày Apple ra mắt iPhone X - người dùng iPhone đầu tiên có thể mở khóa bằng FaceID - thuật ngữ tiếp thị của Apple để chỉ nhận dạng khuôn mặt

11.2.9/ Tương lai của công nghệ nhận dạng khuôn mặt

Khi chúng ta bước sang năm 2020, công nghệ nhận dạng khuôn mặt tiếp tục phát triển với tốc độ và việc sử dụng công nghệ này ngày càng phổ biến hơn Các xu hướng áp dụng công nghệ này bao gồm:

+ Trải nghiệm khách hàng được cá nhân hóa

+ Cửa hàng không có nhân viên

Ngày đăng: 05/09/2021, 20:49

HÌNH ẢNH LIÊN QUAN

Artificial Neural networ k- ANN hay Neural Network) là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng neural sinh học - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
rtificial Neural networ k- ANN hay Neural Network) là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng neural sinh học (Trang 13)
Hình 10.1: Các cột mốc phát triển của mạng CNN. Source: Illustrated: 10 CNN Architectures - Raimi Karim - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
Hình 10.1 Các cột mốc phát triển của mạng CNN. Source: Illustrated: 10 CNN Architectures - Raimi Karim (Trang 22)
Hình 10.2: Ví dụ minh họa lý thuyết tích chập - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
Hình 10.2 Ví dụ minh họa lý thuyết tích chập (Trang 24)
Hình 10.3: Cấu trúc đại diện của một mạng nơron tích chập - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
Hình 10.3 Cấu trúc đại diện của một mạng nơron tích chập (Trang 26)
Hình 11.1.Hệ thống nhận dạng khuôn mặt - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
Hình 11.1. Hệ thống nhận dạng khuôn mặt (Trang 28)
Bảng 2.1STT  Tên yêu  - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
Bảng 2.1 STT Tên yêu (Trang 33)
Bảng 2.6 - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
Bảng 2.6 (Trang 35)
- Màn hình đăng nhập: - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
n hình đăng nhập: (Trang 43)
- Màn hình quản lý workers: - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
n hình quản lý workers: (Trang 44)
- Màn hình đăng nhập: - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
n hình đăng nhập: (Trang 45)
- Màn hình đăng ký nhân viên mới: - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
n hình đăng ký nhân viên mới: (Trang 47)
- Màn hình điểm danh: - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
n hình điểm danh: (Trang 51)
B5: Tổ chức cấu trúc thư mục như hình sau: - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
5 Tổ chức cấu trúc thư mục như hình sau: (Trang 56)
Django có mô hình xác thực người truy cập tuyệt vời, nhờ khả năng cấu hình user. Điều này khiến nó trở thành sự lựa chọn hàng đầu khi trang web, ứng dụng cần ưu  tiên về bảo mật - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
jango có mô hình xác thực người truy cập tuyệt vời, nhờ khả năng cấu hình user. Điều này khiến nó trở thành sự lựa chọn hàng đầu khi trang web, ứng dụng cần ưu tiên về bảo mật (Trang 61)
23. Bảng phân công công việc - Tìm hiểu deep learning và xây dựng ứng dụng minh họa điểm danh bằng gương mặt với tensorflow
23. Bảng phân công công việc (Trang 64)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w