Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://baocaothuctap.net
Download luận văn đồ án tốt nghiệp với đề tài: Xây dựng, triển khai và quản lý mô hình mạng, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://baocaothuctap.net
Download luận văn đồ án tốt nghiệp với đề tài: Xây dựng, triển khai và quản lý mô hình mạng, cho các bạn làm luận văn tham khảo
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Similar to XÂY DỰNG NHẬN DIỆN KHUÔN MẶT BẰNG MTCNN VÀ FACENET.pdf (20)
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
https://dienlanhbachkhoa.net.vn
Hotline/Zalo: 0338580000
Địa chỉ: Số 108 Trần Phú, Hà Đông, Hà Nội
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfLngHu10
Chương 1
KHÁI LUẬN VỀ TRIẾT HỌC VÀ TRIẾT HỌC MÁC - LÊNIN
A. MỤC TIÊU
1. Về kiến thức: Trang bị cho sinh viên những tri thức cơ bản về triết học nói chung,
những điều kiện ra đời của triết học Mác - Lênin. Đồng thời, giúp sinh viên nhận thức được
thực chất cuộc cách mạng trong triết học do
C. Mác và Ph. Ăngghen thực hiện và các giai đoạn hình thành, phát triển triết học Mác - Lênin;
vai trò của triết học Mác - Lênin trong đời sống xã hội và trong thời đại ngày nay.
2. Về kỹ năng: Giúp sinh viên biết vận dụng tri thức đã học làm cơ sở cho việc nhận
thức những nguyên lý cơ bản của triết học Mác - Lênin; biết đấu tranh chống lại những luận
điểm sai trái phủ nhận sự hình thành, phát triển triết học Mác - Lênin.
3. Về tư tưởng: Giúp sinh viên củng cố niềm tin vào bản chất khoa học và cách mạng
của chủ nghĩa Mác - Lênin nói chung và triết học Mác - Lênin nói riêng.
B. NỘI DUNG
I- TRIẾT HỌC VÀ VẤN ĐỀ CƠ BẢN CỦA TRIẾT HỌC
1. Khái lược về triết học
a) Nguồn gốc của triết học
Là một loại hình nhận thức đặc thù của con người, triết học ra đời ở cả phương Đông và
phương Tây gần như cùng một thời gian (khoảng từ thế kỷ VIII đến thế kỷ VI trước Công
nguyên) tại các trung tâm văn minh lớn của nhân loại thời cổ đại. Ý thức triết học xuất hiện
không ngẫu nhiên, mà có nguồn gốc thực tế từ tồn tại xã hội với một trình độ nhất định của
sự phát triển văn minh, văn hóa và khoa học. Con người, với kỳ vọng được đáp ứng nhu
cầu về nhận thức và hoạt động thực tiễn của mình đã sáng tạo ra những luận thuyết chung
nhất, có tính hệ thống, phản ánh thế giới xung quanh và thế giới của chính con người. Triết
học là dạng tri thức lý luận xuất hiện sớm nhất trong lịch sử các loại hình lý luận của nhân
loại.
Với tư cách là một hình thái ý thức xã hội, triết học có nguồn gốc nhận thức và nguồn
gốc xã hội.
* Nguồn gốc nhận thức
Nhận thức thế giới là một nhu cầu tự nhiên, khách quan của con người. Về mặt lịch
sử, tư duy huyền thoại và tín ngưỡng nguyên thủy là loại hình triết lý đầu tiên mà con
người dùng để giải thích thế giới bí ẩn xung quanh. Người nguyên thủy kết nối những hiểu
biết rời rạc, mơ hồ, phi lôgích... của mình trong các quan niệm đầy xúc cảm và hoang
tưởng thành những huyền thoại để giải thích mọi hiện tượng. Đỉnh cao của tư duy huyền
thoại và tín ngưỡng nguyên thủy là kho tàng những câu chuyện thần thoại và những tôn
9
giáo sơ khai như Tô tem giáo, Bái vật giáo, Saman giáo. Thời kỳ triết học ra đời cũng là
thời kỳ suy giảm và thu hẹp phạm vi của các loại hình tư duy huyền thoại và tôn giáo
nguyên thủy. Triết học chính là hình thức tư duy lý luận đầu tiên trong lịch sử tư tưởng
nhân loại thay thế được cho tư duy huyền thoại và tôn giáo.
Trong quá trình sống và cải biến thế giới, từng bước con người có kinh nghiệm và có
tri thức về thế giới. Ban đầu là những tri thức cụ thể, riêng lẻ, cảm tính. Cùng với sự tiến
bộ của sản xuất và đời sống, nhận thức của con người dần dần đạt đến trình độ cao hơn
trong việc giải thích thế giới một cách hệ thống
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCNGTRC3
Cháy, nổ trong công nghiệp không chỉ gây ra thiệt hại về kinh tế, con người mà còn gây ra bất ổn, mất an ninh quốc gia và trật tự xã hội. Vì vậy phòng chông cháy nổ không chỉ là nhiệm vụ mà còn là trách nhiệm của cơ sở sản xuất, của mổi công dân và của toàn thể xã hội. Để hạn chế các vụ tai nạn do cháy, nổ xảy ra thì chúng ta cần phải đi tìm hiểu nguyên nhân gây ra các vụ cháy nố là như thế nào cũng như phải hiểu rõ các kiến thức cơ bản về nó từ đó chúng ta mới đi tìm ra được các biện pháp hữu hiệu nhất để phòng chống và sử lý sự cố cháy nổ.
Mục tiêu:
- Nêu rõ các nguy cơ xảy ra cháy, nổ trong công nghiệp và đời sống; nguyên nhân và các biện pháp đề phòng phòng;
- Sử dụng được vật liệu và phương tiện vào việc phòng cháy, chữa cháy;
- Thực hiện được việc cấp cứa khẩn cấp khi tai nạn xảy ra;
- Rèn luyện tính kỷ luật, kiên trì, cẩn thận, nghiêm túc, chủ động và tích cực sáng tạo trong học tập.
Để xem full tài liệu Xin vui long liên hệ page để được hỗ trợ
:
https://www.facebook.com/garmentspace/
https://www.facebook.com/thuvienluanvan01
HOẶC
https://www.facebook.com/thuvienluanvan01
https://www.facebook.com/thuvienluanvan01
tai lieu tong hop, thu vien luan van, luan van tong hop, do an chuyen nganh
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
XÂY DỰNG NHẬN DIỆN KHUÔN MẶT BẰNG MTCNN VÀ FACENET.pdf
1. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO ĐỒ ÁN CƠ SỞ 5
XÂY DỰNG NHẬN DIỆN KHUÔN MẶT
BẰNG MTCNN VÀ FACENET
Sinh viên thực hiện : Nguyễn Đình An
Lớp : 18IT4
Giảng viên hướng dẫn : TS. Nguyễn Sĩ Thìn
Đà Nẵng, tháng 5 năm 2021
Trang 1
2. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
MỞ ĐẦU
Trang 2
Hiện nay, cùng với sự phát triển của xã hội, vấn đề án ninh bảo mật đang
được yêu cầu khắt khe ở mọi nơi trên thế giới. Các hệ thống nhận dạng con người
được ra đời với độ tin cậy ngày càng cao. Một trong các bài toán nhận dạng con
người rất được quan tâm hiện nay là nhận dạng khuôn mặt. Vì nhận dạng khuôn
mặt là cách cơ bản và dễ dàng nhất mà con người dùng để phân biệt nhau. Bên
cạnh đó, ngày nay việc thu thập, xử lý thông tin qua ảnh để phân biệt đối tượng
đang được quan tâm và ứng dụng rộng rãi. Với phương pháp này, chúng ta có thể
thu nhận được nhiều thông từ đối tượng mà không cần tác nhiều đến đối tượng
nghiên cứu.
Một trong những bài toán được nhiều người quan tâm nhất của lĩnh vực xử
lý ảnh hiện nay đó là nhận dạng khuôn mặt (Face Recognition). Như chúng ta đã
biết, khuôn mặt đóng vai trò quan trọng trong quá trình giao tiếp giữa người với
người, nó mang một lượng thông tin giàu có, chẳng hạn như từ khuôn mặt chúng
ta có thể xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt là xác
định mối quan hệ với đối tượng (có quen biết hay không). Do đó, bài toán nhận
dạng khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vực đời sống hằng ngày
của con người như các hệ thống giám sát, quản lý vào ra, tìm kiếm thông tin một
người nổi tiếng, …đặc biệt là an ninh, bảo mật. Có rất nhiều phương pháp nhận
dạng khuôn mặt để nâng cao hiệu suất tuy nhiên dù ít hay nhiều những phương
pháp này đang vấp phải những thử thách về độ sáng, hướng nghiêng, kích thước
ảnh, hay ảnh hưởng của tham số môi trường.
Trong khuôn khổ đồ án này, chúng em sẽ tiếp tục giải quyết bài toán nhận
dạng offline. Trong đó đối tượng được thu thập thành các file dữ liệu và được
chuyển về trung tâm. Tại đó, các số liệu sẽ được phân tích xử lý. Chúng em sẽ lấy
đó làm nền tảng để có thể xây dựng các ứng dụng lớn hơn sau này
3. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
LỜI CẢM ƠN
Trang 3
Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡ và hướng
dẫn rất tận tình của các thầy cô thuộc Trường Đại học Công nghệ thông tin và Truyền
thông Việt Hàn – Đại học Đà Nẵng. Em xin cảm ơn các thầy cô thuộc bộ môn chuyên
ngành đã cung cấp cho chúng em các thông tin, kiến thức vô cùng quý báu và cần thiết
trong suốt thời gian quá để em có thể thực hiện và hoàn thành đồ án của mình. Đặc biệt
em xin chân thành cảm ơn thành cô Hà Thị Minh Phương người đã trực tiếp hướng dẫn
chúng em trong thời gian thực hiện đồ án này.
Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thông tin đã ủng
hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúp chúng tôi trong quá
trình nghiên cứu và thực hiện đề tài.
Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thực tiễn nên đề
tài không tránh khỏi những sai sót. Em rất mong nhận được sự thông cảm của quý thầy cô
và mong đón nhận những góp ý của thầy cô và các bạn.
Em xin chân thành cảm ơn!
4. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
NHẬN XÉT
CỦA GIÁO VIÊN HƯỚNG DẪN
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
........................................................
Đà Nẵng, ngày 30 tháng 05 năm 2021
Giảng viên hướng dẫn
TS. NGUYỄN SĨ THÌN
Trang 4
5. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
MỤC LỤC
Chương 1:.............................................................................................................7
GIỚI THIỆU VÀ NGHIÊN CỨU TỔNG QUAN..............................................7
1.1 Giới thiệu đề tài:...........................................................................................7
1.2 Phương pháp thực hiện:................................................................................7
1.3 Mục đích nghiên cứu:....................................................................................8
1.4 Giới hạn của đề tài:.......................................................................................8
1.5 Cấu trúc đồ án:............................................................................................10
Chương 2 :..........................................................................................................10
CƠ SỞ LÝ THUYẾT.........................................................................................10
2.1 Các phương pháp nhận diện khuôn mặt:.....................................................10
2.1.1 Nhận dạng khuôn mặt người dùng thuật toán PCA :.............................11
2.1.2 Nhận dạng khuôn mặt người dựa trên phương pháp LBP:....................12
2.1.3 Nhận dạng khuôn mặt dựa trên phương pháp haar like và thuật toán
Adaboost:.......................................................................................................13
2.2 Mạng nơ-ron tích chập (Convolutional Neural Network):..........................17
2.2.1 Định nghĩa:...........................................................................................17
2.2.2 Cấu trúc đơn giản của CNN:.................................................................18
2.3 Tìm hiểu về Face Detector - MTCNN:........................................................22
2.4 Tìm hiểu Pre-trained model - FaceNet:.......................................................25
2.4.1 Pre-trained model:................................................................................25
2.4.2 FaceNet:................................................................................................26
2.4.3 Thuật toán Triplet loss trong FaceNet:..................................................27
2.5 Kỹ thuật căn chỉnh khuôn mặt (Face alignment):........................................30
Trang 5
6. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
2.6 Ngôn ngữ Python:.......................................................................................31
2.6.1 Giới thiệu sơ lược về ngôn ngữ Python:...............................................31
2.6.2 Các đặc điểm của ngôn ngữ Python:.....................................................32
2.6.3 Ứng dụng của Python:..........................................................................35
2.7 Một số thư viện quan trọng:........................................................................35
2.7.1 OpenCV:...............................................................................................35
2.7.2 Numpy:.................................................................................................37
2.7.3 Keras:....................................................................................................37
2.7.4 TensorFlow:..........................................................................................38
2.7.2 Dlib:......................................................................................................38
Chương 3:...........................................................................................................39
PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG....................................................39
3.1 Phân tích – thiết kế hệ thống phát hiện mặt người:.....................................39
3.1.1 Phân tích:..............................................................................................39
3.1.2 Thiết kế hệ thống:.................................................................................41
3.1.3 Xử lý đầu vào:......................................................................................41
3.1.4 Trích chọn đặc trưng và gán nhãn:........................................................41
3.1.5 Phát hiện khuôn mặt trong ảnh đầu vào::..............................................44
3.1.6 Căn chỉnh khuôn mặt trước khi nhận dạng:..........................................44
3.1.7 Trích rút đặc trưng khuôn mặt từ ảnh đầu vào:.....................................44
3.1.8 Nhận diện khuôn mặt:...........................................................................45
3.1.9 Xác định các khuôn mặt “unknown”:...................................................46
3.2 Kết quả thử nghiệm hệ thống:.....................................................................46
3.3 Phân tích – thiết kế hệ thống phát hiện mặt người:.....................................24
3.3.1 Phân tích:..............................................................................................24
Trang 6
7. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
3.3.2 Thiết kế hệ thống:.................................................................................25
3.3.3 Thiết kế cơ sở dữ liệu:..........................................................................26
3.4 Giao diện chương trình:..............................................................................27
KẾT LUẬN.........................................................................................................49
DANH MỤC TÀI LIỆU THAM KHẢO...........................................................50
Trang 7
8. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
MỤC LỤC HÌNH ẢNH
Hình 1: Mô tả tính toán với bán kính 1 điểm ảnh và lấy mẫu 8 điểm lân cận.......13
Hình 2: Đặc trưng theo cạnh.................................................................................14
Hình 3: Đặc trưng theo đường..............................................................................14
Hình 4: Đặc trưng theo xung quanh tâm...............................................................14
Hình 5: Đặc trưng theo đường chéo.....................................................................14
Hình 6: Cách tính Integral Image của ảnh............................................................15
Hình 7: Cách tính tổng giá trị pixel vùng cần tính...............................................15
Hình 8: Hệ thống phát hiện khuôn mặt.................................................................16
Hình 9: : Cấu trúc của mạng nơ-ron tích chập......................................................19
Hình 10: Minh họa chập với kernel 3x3...............................................................19
Hình 11: Phép toán sử dụng phép gộp..................................................................20
Hình 12: Một số hàm phi tuyến............................................................................21
Hình 13: Kiến trúc mạng MTCNN.......................................................................23
Hình 14: Mạng neural P-Net................................................................................23
Hình 15: Mạng neural R-Net................................................................................24
Hình 16: Mạng neural O-Net................................................................................25
Hình 17: FaceNet lấy hình ảnh khuôn mặt làm đầu vào và xuất ra vector
embedding............................................................................................................26
Hình 18: Triplet loss trên hai positive faces-mặt tích cực và một negative face-mặt
tiêu cực.................................................................................................................28
Hình 19: Triplet loss.............................................................................................29
Hình 20: Triplet loss trước và sau khi đào tạo......................................................30
Hình 21: Căn chỉnh khuôn mặt.............................................................................31
Hình 22: Biểu đồ ngữ cảnh của hệ thống..............................................................39
Hình 23: Sơ đồ thực hiện......................................................................................40
Hình 24: Sơ đồ hệ thống.......................................................................................40
Hình 25: T Phát hiện khuôn mặt với Haar cascade...............................................42
Hình 26: Phát hiện khuôn mặt với MTCNN.........................................................43
Trang 8
9. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Hình 27: Trước và sau khi căn chỉnh khuôn mặt..................................................44
Hình 28: Cosine similarity...................................................................................45
Hình 29: Giao diện tạo mới người dùng...............................................................47
Hình 30: File hình ảnh..........................................................................................48
Hình 31: Giao diện training..................................................................................48
Hình 32: Giao diện nhận diện...............................................................................48
Trang 9
10. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Chương 1:
GIỚI THIỆU
1.1 Giới thiệu đề tài
Ngày nay, trong kỷ nguyên số, máy tính là một phần không thể thiếu trong
nghiên cứu khoa học cũng như trong đời sống hàng ngày. Tuy nhiên, do hệ thống
máy tính dựa trên lý thuyết cổ điển (tập hợp, logic nhị phân), nên dù có khả năng
tính toán lớn và độ chính xác cao, thì máy tính cũng chỉ có thể làm việc theo một
chương trình gồm các thuật toán được viết sẵn do lập trình viên chứ chưa thể tự
lập luận hay sáng tạo.
Học máy (Machine learning) là một phương pháp phân tích dữ liệu có thể
tự động hóa phân tích dữ liệu và tìm ra các trích xuất đặc trưng của bộ dữ liệu.
Học máy sử dụng các thuật toán trừu tượng để tự học từ dữ liệu, cho phép máy
tính tìm thấy những thông 2 tin có giá trị ẩn ở rất sâu mà không thể lập trình được
bằng cách thông thường. Khi tiếp xúc với dữ liệu mới, học máy có thể thích ứng
rất nhanh và độc lập.
Học sâu (Deep Learning) là một ngành đặc biệt của học máy. Học sâu sử
dụng mạng nơ ron nhân tạo (Artificial Neural Networks) để giải quyết các bài
toán mà tính toán cứng chưa thể xử lý được như dữ liệu trừu tượng, dữ liệu mờ,
dữ liệu không rõ ràng,... Với tính chất như vậy, học sâu thường được ứng dụng
trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên hoặc dự
đoán, dự báo.
Mạng nơ ron nhân tạo (Artificial Neural Networks) là một mô hình xử lý
thông tin, cấu thành từ các lớp nơ ron, được ra đời trên cơ sở mô phỏng hoạt động
não bộ của sinh vật. Mạng nơ ron nhân tạo gắn kết nhiều nơ ron theo một mô hình
nhất định, được trải qua huấn luyện để rút ra được kinh nghiệm, và sử dụng các
kinh nghiệm đã có để xử lý các thông tin mới. Mạng nơ ron nhân tạo thường áp
dụng vào giải các bài toán nhận dạng mẫu, hoặc dự đoán.
Mạng nơ ron Tích chập (Convolutional Neural Network) là một trong
những mô hình học sâu hiện đại nhất hiện nay. Mạng nơ ron Tích chập hiện nay
thường được sử dụng nhiều trong các hệ thống thông minh do ưu điểm của mạng
là có độ chính xác cao, tuy nhiên tốc độ tính toán lại rất nhanh. Vì lý do đó, mạng
Trang 10
11. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
nơ ron tích chập rất mạnh trong xử lý hình ảnh, và được ứng dụng rất nhiều trong
ngành thị giác máy tính trong các bài toán liên quan đến nhận dạng đối tượng.
Ngày nay, với sự phát triển của công nghệ bán dẫn, máy tính ngày càng
nhỏ đi, năng lượng tiêu thụ ngày càng thấp xuống, trong khi sức mạnh lại ngày
càng tăng lên. Với những ưu điểm như vậy, chúng ta có thể thấy rất nhiều thiết bị
thông minh đã và đang hiện diện mọi nơi trong đời sống, với camera nhiều điểm
ảnh, bộ nhớ trong lớn và vi xử lý mạnh như: điện thoại thông minh, máy ảnh kỹ
thuật số, camera hành trình,… Ngoài ra, với sự bùng nổ của xu hướng mạng vạn
vật IOT, người ta có thể sẽ còn thấy rất nhiều thiết bị thông minh mới xuất hiện:
xe ô tô tự lái, thiết bị bay không người lái tự giao hàng,... Có thể thấy, việc sử
dụng trí thông minh nhân tạo để khai thác dữ liệu hình ảnh trong các thiết bị
thông minh trong tương lai đã và đang trở thành xu hướng. Từ nhận định trên và
sự gợi ý của giảng viên hướng dẫn, nhóm em quyết định chọn nội dung “Xây
dựng ứng dụng nhận diện sử dụng deep learning” để làm đề tài nghiên cứu thực
hiện đồ án cơ sở của mình.
1.2 Phương pháp thực hiện
- Trước tiên ta phải nêu bài toán, phân tích và thiết kế hệ thống nhận dạng.
- Xây dựng hệ thống deep learning sử dụng ngôn ngữ Python và mạng nơ
ron Tích chập (CNN). Hệ thống lấy mẫu khuôn mặt bằng camera, sau đó hệ thống
trích xuất, phân tích khuôn mặt từ hình ảnh hoặc các mẫu được lấy trước đó để so
sánh và hệ thống đưa ra kết luận rằng có phải đối tượng được cho phép hay
không. Sử dụng công cụ IDLE Python để lập trình
- Sau đó xây dựng cơ sở dữ liệu SQLite để thống kê, hiển thị dữ liệu, sử
dụng một số công cụ để lập trình như Sublime Text, PHPStorm, Pycharm …
1.3 Mục đích nghiên cứu
Tìm hiểu về các thuật toán nhận diện khuôn mặt người.
Tìm hiểu về mạng nơ-ron tích chập (CNN).
Nâng cao kỹ năng thiết kế và lập trình bằng ngôn ngữ Python.
Rèn luyện kỹ năng nghiên cứu và tìm hiểu tài liệu.
Xây dựng mô hình có thể nhận diện được cảm xúc khuôn mặt người
và đếm được số người ra vào.
1.4 Giới hạn của đề tài
Trang 11
12. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Với thời gian có hạn nên nhóm chỉ thực hiện nghiên cứu các vấn đề cơ bản
trong phạm vi nhất định:
- Sử dụng thư viện mở có sẵn.
- Sử dụng video quay trực tiếp từ webcam và ảnh có sẵn làm đầu vào.
- Chỉ hoạt động trong điều kiện có ánh sáng và góc quay phù hợp.
1.5 Cấu trúc đồ án:
- Nghiên cứu tổng quan.
- Phân tích và thiết kế hệ thống.
- Triển khai xây dựng.
- Kết luận và hướng phát triển.
Chương 2:
CƠ SỞ LÝ THUYẾT
2.1 Các phương pháp nhận diện khuôn mặt
Trang 12
13. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Hiện nay các phương pháp nhận dạng mặt được chia thành nhiều hướng
theo các tiêu chí khác nhau: nhận dạng với dữ liệu đầu vào là ảnh tĩnh 2D là phổ
biến nhất, tuy nhiên tương lai có lẽ sẽ là 3D (vì việc bố trí nhiều camera 2D sẽ cho
dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn), cũng có thể chia thành 2
hướng là: làm với dữ liệu ảnh và làm với dữ liệu video. Trên thực tế người ta hay
chia các phương pháp nhận dạng mặt ra làm 3 loại: phương pháp tiếp cận toàn cục
(Global) như Eigenfaces - PCA, Fisherfaces - LDA; phương pháp tiếp cận dựa trên
các đặc điểm cục bộ (Local Feature Based) như LBP, Gabor Wavelets và phương
pháp lai (là sự kết hợp của phương pháp toàn cục và phương pháp cục bộ). [1]
Phương pháp nhận dạng khuôn mặt dựa trên các đặc điểm cục bộ: Đây là phương
pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các
chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt, mũi, miệng,
…), và mối quan hệ giữa chúng (như khoảng cách của hai mắt, khoảng cách của
hai lông mày,…). [2]
Phương pháp nhận dạng khuôn mặt dựa trên xét toàn diện khuôn mặt:
Nhận dạng dựa trên toàn diện khuôn mặt, có nghĩa là sẽ không đi xét đến từng
thành phần đặc trưng trên khuôn mặt nữa mà sẽ xem khuôn mặt là một không
gian cụ thể và sẽ tìm những đặc trưng, những đặc điểm chính trên không gian đó.
[2]
Phương pháp dựa trên các đặc điểm cục bộ đã được chứng minh là ưu việt
hơn khi làm việc trong các điều kiện không có kiểm soát và có thể nói rằng lịch sử
phát triển của nhận dạng mặt là sự phát triển của các phương pháp trích chọn đặc
trưng (Feature Extractrion Methods) được sử dụng trong các hệ thống dựa trên
feature based. Các ứng dụng cụ thể của nhận dạng mặt dựa trên 2 mô hình nhận
dạng: identification (xác định danh tính, bài toán 1-N), và verification (xác thực
danh tính, bài toán 1-1). Trong bài toán identification, ta cần xác định danh tính
của ảnh kiểm tra, còn trong bài toán verification ta cần xác định 2 ảnh có cùng
thuộc về một người hay không. [1]
Trang 13
14. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
2.1.1 Nhận dạng khuôn mặt người dùng thuật toán PCA
Kohonen đã đưa ra phương pháp dùng vector riêng để nhận dạng khuôn
mặt, ông dùng một mạng neural đơn giản để chứng tỏ khả năng của phương pháp
này trên các ảnh đã được chuẩn hóa. Mạng neural tính một mô tả của khuôn mặt
bằng cách xấp xỉ các vector riêng của ma trận tương quan của ảnh. Các vector
riêng sau này được biết đến với cái tên Eigenface [3] . Kirby và Sirovich chứng tỏ
các ảnh có khuôn mặt có thể được mã hóa tuyến tính bằng một số lượng vừa phải
các ảnh cơ sở. Tính chất này dựa trên biến đổi Karhunen-Lòeve, mà còn được gọi
dưới một cái tên khác là PCA và biến đổi Hotelling. Ý tưởng này được xem là
của Pearson trình bày đầu tiên vào năm 1901 và sau đó là Hotelling vào năm
1933. Cho một tập các ảnh huấn luyện có kích thước n x m được mô tả bởi các
vector có kích thước m x m, các vector cở sở cho một không gian con tối ưu được
xác định thông qua lỗi bình phương trung bình khi chiếu các ảnh huấn luyện vào
không gian con này. Các tác giả gọi tập các vector cơ sở tối ưu này là ảnh riêng
sau đó gọi cho đơn giản là vector riêng của ma trận hiệp phương sai được tính từ
các ảnh khuôn mặt đã vector hóa trong tập huấn luyện. Nếu cho 100 ảnh, mà mỗi
khuôn mặt có kích thước 91x50 thì có thể chỉ dùng 50 ảnh riêng, trong khi vẫn
duy trì được một khả năng giống nhau hợp lý (giữ được 95% tính chất). [4]
Turk và Pentland áp dụng PCA để xác định và nhận dạng khuôn mặt.
Tương tự, dùng PCA trên tập huấn luyện ảnh các khuôn mặt để sinh các ảnh riêng
(còn gọi là Eigenface) để tìm một không gian con (không gian khuôn mặt) trong
không gian ảnh. Các ảnh khuôn mặt được chiếu vào không gian con này và được
gom nhóm lại. Tương tự các ảnh không có khuôn mặt dùng để huấn luyện cũng
được chiếu vào cùng không gian con và gom nhóm lại. Các ảnh khi chiếu vào
không gian khuôn mặt thì không bị thay đổi tính chất cơ bản, trong khi chiếu các
ảnh không có khuôn mặt thì xuất hiện sự khác nhau cũng không ít. Xác định sự
có mặt của một khuôn mặt trong ảnh thông qua tất cả khoảng cách giữa các vị trí
trong ảnh và không gian ảnh. Khoảng cách này dùng để xem xét có hay không có
khuôn mặt người, kết quả khi tính toán các khoảng cách sẽ cho ta một bản đồ về
khuôn mặt. Có nhiều nghiên cứu về xác định khuôn mặt, nhận dạng, và trích đặc
Trang 14
15. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
trưng từ ý tưởng vector riêng, phân rã, và gom nhóm. Sau đó Kim phát triển cho
ảnh màu, bằng cách phân đoạn ảnh để không gian tìm kiếm giảm xuống. [4]
2.1.2 Nhận dạng khuôn mặt người dựa trên phương pháp LBP [5]
Mẫu nhị phân cục bộ (Local Binary Pattern - LBP) là phương pháp trích
chọn kết cấu của ảnh thành vector đặc trưng gọi là đặc trưng LBP. Ý tưởng ban
đầu của phương pháp này được tác giả Ojala và các đồng nghiệp giới thiệu, ban
đầu xử lý trên ảnh xám. Ví dụ với một điểm ảnh xét 8 điểm lân cận và sử dụng
chính giá trị của điểm ảnh tại trung tâm để phân ngưỡng 8 giá trị lân cận. Kết quả
tìm được một chuỗi bit nhị phân có chiều dài bằng 8 tương ứng với 8 điểm lân
cận được định nghĩa theo thứ tự nhất định. Chuỗi bit sẽ được chuyển sang hệ thập
phân và giá trị thập phân này thay thế giá trị ban đầu của điểm ảnh đang xét. Số
điểm lân cận có thể được thay đổi bằng đại lượng bán kính. Hình 2.1 mô tả quá
trình tính toán LBP cho bài toán nhận dạng mặt người.
Hình 1: Mô tả tính toán với bán kính 1 điểm ảnh và lấy mẫu 8 điểm lân cận
Ưu điểm của phương pháp LBP là có chi phí tính toán thấp, ổn định khi cường độ
thay đổi đơn điệu và dễ mở rộng lên không gian nhiều chiều như ảnh màu trong
hệ RGB. Tuy nhiên, nhược điểm của đặc trưng dựa trên gradient là:
- Đầu tiên, gradient phác họa cường độ phân phối xung quanh điểm ảnh một
cách khá thô do chỉ biểu thị bởi hai giá trị 0 và 1. Hai mức gradient giống
nhau có thể thuộc hai đối tượng cục bộ khác nhau, do đó không rõ ràng.
- Thứ hai, thông tin về gradient không đủ biểu diễn cho các đối tượng trong
trường hợp gặp môi trường phức tạp gây ra nhiễu.
Trang 15
16. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
2.1.3 Nhận dạng khuôn mặt dựa trên phương pháp haar like và thuật
toán Adaboost.
2.1.3.1 Đặc trưng Haar-like [6]
Đặc trưng Haar-like được sử dụng trong việc nhận dạng đối tượng trong
ảnh số được phát biểu bởi Viola và Jones gồm 4 đặc trưng cơ bản để xác định một
đối tượng trong ảnh. Mỗi đặc trưng Haar-like là sự kết hợp gồm 2 hoặc 3 khối chữ
nhật mang giá trị “đen” hoặc “trắng”. Những khối chữ nhật này thể hiện sự liên hệ
tương quan giữa các bộ phận trong ảnh mà bản thân từng giá trị pixel không thể
diễn đạt được.
Hình 2: Đặc trưng theo cạnh
Hình 3: Đặc trưng theo đường
Hình 4: Đặc trưng theo xung quanh tâm
Hình 5: Đặc trưng theo đường chéo
Trang 16
17. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Dựa theo các đặc trưng trên, giá trị của đặc trưng Haar-like được xây dựng
bởi độ chênh lệch giữa tổng các pixel của các vùng đen so với tổng các pixel của
các vùng trắng.
Dưới đây là công thức tính giá trị đặc trưng Haar-like:
f(x)= ) (2.1)
Như vậy để tính giá trị đặc trưng Haar-like cần phải thực hiện tính toán
tổng các vùng pixel trên ảnh. Điều này làm cho chi phí bài toán lớn không thể đáp
ứng các tính năng yêu cầu thời gian thực. Do vậy Viola và Jones [3] đã đề xuất ra
khái niệm “Integral Image” để giảm thiểu chi phí cho bài toán tính giá trị của đặc
trưng Haar-like để bài toán có thể xử lý với thời gian thực. Tính “Integral Image”
bằng cách sử dụng mảng 2 chiều với kích thước bằng kích thước của ảnh cần tính
giá trị đặc trưng Haar-like. Ảnh chia nhỏ ở vị trí (x, y) được tính bằng tổng các giá
trị pixel của vùng từ vị trí (0,0) đến vị trí (x-1, y-1). Việc tính toán đơn giản là
thực hiện phép cộng số nguyên nên tốc độ thực hiện được tối ưu hóa.
Hình 6: Cách tính Integral Image của ảnh
P(x, y) = (2.2)
Kết quả có được sau khi tính Integral Image, việc tính tổng giá trị pixel
trong vùng cần tính thực hiện như sau:
Gọi vùng cần tính tổng các giá trị pixel là vùng “A4”.
P1(x1, y1) = A1 (2.3)
P2(x2, y2) = A1 + A2 (2.4)
P3(x3, y3) = A1 + A3 (2.5)
P4(x4, y4) = A1 + A2 + A3 + A4 (2.6)
Ta được: A4 = P4 + P1 – P2 – P3 (2.7)
Trang 17
18. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Hình 7: Cách tính tổng giá trị pixel vùng cần tính
Hình 8: Hệ thống phát hiện khuôn mặt
Từ ảnh gốc ban đầu, hệ thống sẽ chia ảnh thành nhiều tỉ lệ rất nhỏ để tính
các đặc trưng qua các hàm đặc trưng cơ bản Haar-like. Sau khi tính toán được các
hàm đặc trưng, ta nhận được một số lượng rất lớn các đặc trưng. Để lựa chọn và
xác định có thể là khuôn mặt, ta dùng giải thuật Adaboost để lựa chọn và kết hợp
các vùng trọng số yếu thành trọng số mạnh. Cuối cùng, các vùng đã được lựa
chọn sẽ được đưa vào bộ phân loại “Cascade of classifier” để loại bỏ các vùng
Trang 18
19. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
không phải khuôn mặt và xác định vùng nào là khuôn mặt. Và đưa ra kết quả cuối
cùng.
2.1.3.2 Thuật toán Adaboost [6]
Adaboost là một cách trong hướng tiếp cận dựa trên diện mạo, Viola và
Jones dùng AdaBoost kết hợp cascade để xác định khuôn mặt người với các đặc
trưng dạng Haar wavelet-like. Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80%
trên ảnh xám. Adaboost là một bộ phân loại mạnh phi tuyến phức dựa trên tiếp
cận boosting được Freund và Schapire đưa ra vào năm 1995. Adaboost cũng hoạt
động dựa trên nguyên tắc kết hợp tuyến tính các “weak classifiers” để hình thành
một “strong classifier”. Là một cải tiến của của tiếp cận boosting. Adaboost sử
dụng thêm khái niệm trọng số (weight) để đánh dấu các mẫu khó nhận dạng.
Trong quá trình huấn luyện, cứ mỗi “weak classifiers” được xây dựng, thuật toán
sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng “weak classifier”
kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu
được nhận dạng đúng bởi các “weak classifier” vừa xây dựng. Bằng cách này
“weak classifier” sau có thể tập trung vào các mẫu mà các “weak classifier” trước
nó làm chưa tốt. Sau cùng, các “weak classifier” sẽ được kết hợp tùy theo mức độ
tốt của chúng để tạo nên “strong classifier”.
2.1.3.3 Khái quát Cascade of classifier [7]
Ta sẽ có một chuỗi các bộ phân lớp, trong đó mỗi bộ phân lớp được xây
dựng bằng thuật toán Adaboost. Bây giờ, ta đưa tất cả các cửa sổ con đi qua chuỗi
các bộ phân lớp này:
Bộ phân lớp đầu tiên sẽ loại bỏ phần lớn các cửa sổ không phải khuôn mặt
(nagative sub window) và cho đi qua các cửa sổ được cho là khuôn mặt
(positive sub window). Ở đây, bộ phân lớp này rất đơn giản và do đó, độ
phức tạp tính toán cũng rất thấp. Tất nhiên, vì rằng nó đơn giản nên trong
số các cửa sổ được nhận dạng là khuôn mặt sẽ có một số lượng lớn cửa sổ
bị nhận dạng sai (không phải là khuôn mặt).
Những cửa sổ được cho đi qua bởi bộ phân lớp đầu sẽ được xem xét bởi bộ
phân lớp sau đó: nếu bộ phân lớp cho rằng đó không phải là khuôn mặt thì
Trang 19
20. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
ta loại bỏ; nếu bộ phân lớp cho rằng đó là khuôn mặt thì ta lại cho đi qua
và chuyển đến bộ phân lớp phía sau.
Những bộ phân lớp càng về sau thì càng phức tạp hơn, đòi hỏi sự tính toán
nhiều hơn. Người ta gọi những cửa sổ con (mẫu) mà bộ phân lớp không
loại bỏ được là những mẫu khó nhận dạng. Những mẫu này càng đi sâu
vào trong chuỗi các bộ phân lớp thì càng khó nhận dạng. Chỉ những cửa sổ
đi qua được tất cả các bộ phân lớp thì ta mới quyết định đó là khuôn mặt.
Tóm lại, chuỗi các bộ phân lớp sẽ xử lý các mẫu (cửa sổ con) đi vào theo
nguyên tắc sau: nếu một bộ phân lớp nào đó cho rằng đó không phải là mặt người
thì ta loại bỏ ngay; còn nếu bộ phân lớp cho rằng đó là khuôn mặt thì ta chuyển
đến bộ phân lớp sau. Nếu một mẫu trót lọt hết tất cả các bộ phân lớp thì ta mới
quyết định đó là khuôn mặt.
Đây là một phương pháp cơ bản phù hợp cho những ai mới tham gia nghiên
cứu lĩnh vực nhận dạng khuôn mặt, đặc trưng Haar-like kết hợp với Adaboot được
cài sẵn trong bộ thư viện Opencv giúp chúng ta dễ dàng phát hiện khuôn mặt, tốc
độ phát hiện nhanh và hoạt động ổn định trong điều kiện đầy đủ sáng.
2.2 Mạng nơ-ron tích chập (Convolutional Neural Network)
2.2.1 Định nghĩa
Mạng nơ-ron tích chập là một trong những mô hình mạng học sâu phổ biến
nhất hiện nay, có khả năng nhận dạng và phân loại hình ảnh với độ chính xác rất
cao (khoảng 98%). Mô hình này đã và đang được phát triển, ứng dụng vào các hệ
thống xử lý ảnh lớn của Facebook, Google hay Amazon… cho các mục đích khác
nhau như các thuật toán gắn thẻ tự động, tìm kiếm ảnh hoặc drone giao hàng tự
động.
Sự ra đời của mạng nơ-ron tích chập là dựa trên ý tưởng cải tiến cách thức
các mạng nơ-ron nhân tạo truyền thống học thông tin trong ảnh. Do sử dụng các
liên kết đầy đủ giữa các điểm ảnh vào nút, các mạng nơ-ron nhân tạo truyền thẳng
bị hạn chế rất nhiều bởi kích thước của ảnh, ảnh càng lớn thì số lượng liên kết
Trang 20
21. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
càng tăng nhanh và kéo theo sự bùng nổ khối lượng tính toán. Ngoài ra sự liên kết
đầy đủ này cũng là sự dư thừa khi với mỗi bức ảnh, các thông tin chủ yếu thể hiện
qua sự phụ thuộc giữa các điểm ảnh với những điểm xung quanh nó mà không
quan tâm nhiều đến các điểm ảnh ở cách xa nhau. Mạng nơ-ron tích chập ra đời
với kiến trúc thay đổi, có khả năng xây dựng liên kết chỉ sử dụng một phần cục bộ
trong ảnh kết nối đến nút trong lớp tiếp theo thay vì toàn bộ ảnh như trong mạng
nơ-ron truyền thẳng.
Trong luận văn này, nhóm thực hiện sẽ trình bày về tích chập cũng như ý
tưởng của mô hình CNN áp dụng trong bài toán nhận diện cảm xúc trên khuôn
mặt.
2.2.2 Cấu trúc đơn giản của CNN [8]
Các lớp cơ bản trong một mạng nơ-ron tích chập bao gồm: lớp chập, lớp
gộp và lớp kết nối đầy đủ, được thay đổi về số lượng và cách sắp xếp để tạo ra các
mô hình huấn luyện phù hợp cho từng bài toán khác nhau.
Hình 9: Cấu trúc của mạng nơ-ron tích chập
- Lớp chập
Là lớp quan trọng nhất trong cấu trúc của mạng nơ-ron tích chập. Chập dựa
trên lý thuyết xử lý tín hiệu số, việc chập sẽ giúp trích xuất được những thông tin
quan trọng từ dữ liệu. Để dễ hình dung, có thể xem tích chập như một cửa sổ trượt
áp đặt lên một ma trận. Cơ chế của tích chập được minh họa qua Hình 2.10 bên
dưới.
Trang 21
22. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Hình 10: Minh họa chập với kernel 3x3
Từ Hình 2.10, ma trận bên trái là một bức ảnh đen trắng. Mỗi giá trị của
ma trận tương đương với một điểm ảnh, 0 là màu đen, 1 là màu trắng (nếu là ảnh
xám thì giá trị biến thiên từ 0 đến 255).
Cửa sổ trượt còn có tên gọi là kernel hay filter. Ở đây, ta dùng một ma trận
kernel 3×3 nhân từng thành phần tương ứng với ma trận ảnh bên trái. Giá trị đầu
ra do tích của các thành phần này cộng lại. Kết quả của tích chập là một ma trận
sinh ra từ việc trượt ma trận kernel và thực hiện tích chập cùng lúc lên toàn bộ ma
trận ảnh bên trái.
- Lớp gộp
Bản đồ đặc trưng được tạo ra thông qua việc tính toán của lớp chập, tuy
nhiên kích thước của nó so với kích thước đầu vào giảm không đáng kể. Nếu kích
thước không thay đổi, sẽ tạo nên một số lượng tính toán lớn và việc học tập cũng
trở nên rất khó khăn. Lớp gộp này sẽ giải quyết vấn đề về làm giảm kích thước và
số lượng tính toán của bản đồ đặc trưng.
Có nhiều toán tử gộp như Sum-Pooling, Max-Pooling, L_2-Pooling nhưng Max-
Pooling thường được sử dụng. Về mặt ý nghĩa thì Max-Pooling xác định vị trí cho
tín hiệu mạnh nhất khi áp dụng một loại kernel. Điều này cũng tương tự như là
một bộ lọc phát hiện vị trí đối tượng bằng kernel trong bài toán phát hiện đối
tượng trong ảnh.
Về mặt lý thuyết với ma trận đầu vào có kích thước a*b*c và thực hiện toán tử
gộp trên ma trận con của ma trận đầu vào có kích thước f*f với bước nhảy pixel s
thì ta được ma trận đầu ra a’*b’*c’ trong đó:
Trang 22
23. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
(2.4)
Hình 11: Phép toán sử dụng phép gộp
Hình 2.11 là ví dụ về sử dụng toán tử gộp. Trong đó miêu tả cách thức lớp gộp xử
lý đối với một đầu vào, kích thước của đầu vào là [224*224*64] được thực hiện
với các thông số f = 2 và s = 2 thì đầu ra có kích thước [112*112*64] được thể
hiện ở phía trái của Hình 2.11. Phía phải mô tả chi tiết cách thức hoạt động của
max-pooling trong đó f = 2 và s = 2 kết quả đầu ra ma trận tương ứng.
- Lớp ReLU
Chập là một phép biển đổi tuyến tính. Nếu tất cả các nơ-ron được tổng hợp
bởi các phép biến đổi tuyến tính thì một mạng nơ-ron đều có thể đưa về dưới dạng
một hàm tuyến tính. Do đó tại mỗi nơ-ron cần có một hàm truyền dưới dạng phi
tuyến.
Có nhiều dạng hàm phi tuyến được sử dụng trong quá trình này như sau:
Hình 12: Một số hàm phi tuyến.
Trang 23
24. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Các nghiên cứu gần đây chứng minh được việc sử dụng hàm ReLU cho kết quả
tốt hơn ở các khía cạnh: tính toán đơn giản, tạo ra tính thưa ở các nơ-ron ẩn (ví dụ
như sau bước khởi tạo ngẫu nhiên các trọng số, khoảng 50% các nơ-ron ẩn được
kích hoạt) và quá trình huấn luyện nhanh hơn ngay cả khi không phải trải qua
bước tiền huấn luyện.
- Lớp kết nối đủ
Cách kết nối các nơ-ron ở hai tầng với nhau trong đó tầng sau kết nối đẩy
đủ với các nơ-ron ở tầng trước nó. Đây cũng là dạng kết nối thường thấy ở mạng
nơ-ron nhân tạo, trong mạng nơ-ron tích chập tầng này thường được sử dụng ở
phía cuối của kiến trúc mạng.
Hiện nay có một số cấu trúc CNN đạt được kết quả khả quan như:
LeNet: Đây là mô hình CNN thành công đầu tiên, đặc biệt là trong
việc nhận dạng chữ số, kí tự trong văn bản. Được phát triển bởi
Yann Lecun vào cuối những năm 90.
AlexNet: Được phát triển bởi Alex Krizhevsky, Ilya Sutskever và
Geoff Hinton. Làn đầu được giới thiệu vào năm 2012 với cấu trúc
khá tương tự như LeNet nhưng với số lượng neuron, filter và layer
lớn hơn. Được coi là mạng neural đầu tiên phổ biến rộng rãi khả
năng của CNNs.
ZF Net: Là mạng CNNs tốt nhất năm 2013 được phát triển bởi
Matthew Zeiler và Rob Fergus (ZF là viết tắt của Zeiler và Fergus).
Mạng neural này được phát triển từ AlexNet với việc tinh chỉnh các
hyperparameter (filter size, stride, ...). Với những layer gần input
layer, filter size và stride nhỏ hơn.
GoogLeNet: Là mạng CNNs tốt nhất năm 2014 được phát triển bởi
Szegedy từ Google. Với một số thay đổi như giảm thiểu số lượng
tham số trong AlexNet từ 60 triệu xuống 4 triệu, sử dụng Average
Pooling thay cho FC-Layer.
Trang 24
25. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
VGGNet: Là mạng CNNs tốt nhất năm 2015 được phát triển bởi
Karen Simonyan và Andrew Ziserman. Sử dụng filter 3x3 và
pooling 2x2 từ đầu tới cuối mạng. Và vẫn còn được tiếp tục phát
triển cho đến nay.
2.3 Tìm hiểu về Face Detector - MTCNN:
MTCNN là viết tắt của Multi-task Cascaded Convolutional Networks
(Mạng đa năng xếp tầng đa tác vụ). Nó là bao gồm 3 mạng CNN xếp chồng và
đồng thời hoạt động khi detect khuôn mặt. Mỗi mạng có cấu trúc khác nhau và
đảm nhiệm vai trò khác nhau trong task. Đầu ra của MTCNN là vị trí khuôn mặt
và các điểm trên mặt: mắt, mũi, miệng…
MTCNN hoạt động theo 3 bước, mỗi bước có một mạng neural riêng lần
lượt là: P-Net, R-Net và O-net
Hình 13. Kiến trúc mạng MTCNN
Với mỗi bức ảnh đầu vào, nó sẽ tạo ra nhiều bản sao của hình ảnh đó với
các kích thước khác nhau.
Tại P-Net, thuật toán sử dụng 1 kernel 12x12 chạy qua mỗi bức hình để
tìm kiếm khuôn mặt.
Trang 25
Tải bản FULL (53 trang): https://bit.ly/3Od2tnY
Dự phòng: fb.com/TaiHo123doc.net
26. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Hình 14. Mạng neural P-Net
Sau lớp convolution thứ 3, mạng chia thành 2 lớp. Convolution 4-1 đưa ra
xác suất của một khuôn mặt nằm trong mỗi bounding boxes, và Convolution 4-2
cung cấp tọa độ của các bounding boxes.
R-Net có cấu trúc tương tự vói P-Net. Tuy nhiên sử dụng nhiều layer hơn.
Tại đây, network sẽ sử dụng các bounding boxes được cung cấp từ P-Net và tinh
chỉnh là tọa độ.
Trang 26
Tải bản FULL (53 trang): https://bit.ly/3Od2tnY
Dự phòng: fb.com/TaiHo123doc.net
27. XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: TS. NGUYỄN SĨ THÌN
Hình 15. Mạng neural R-Net
Tương tự R-Net chia ra làm 2 layers ở bước cuối, cung cấp 2 đầu ra đó là
tọa độ mới của các bounding boxes, cùng độ tin tưởng của nó.
O-Net lấy các bounding boxes từ R-Net làm đầu vào và đánh dấu các tọa
độ của các mốc trên khuôn mặt.
Trang 27
9752736