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 311 TỔNG QUAN VỀ BÀI TOÁN NHẬN DIỆN KHUÔN MẶT 29
Trang 41 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 52 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 6Lấ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 73 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 94 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 10Họ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 115 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 126 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 137 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 14củ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 158 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 16Arthur 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 17hà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 18Trong 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 19Mô 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 20GAN 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 219 Ứ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 2210 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 231998: 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 24Tí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 2510.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 26vị 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 27VGG-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 2811 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 29Phá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 30dự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 31Dự á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 3211.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