Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
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
Nội dung
ĐẠ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 - SE122.L11.PMCL Đề tài: Tìm hiểu deep learning xây dựng ứng dụng minh họa điểm danh 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 LỜI CẢM ƠN Nhóm em xin phép gửi lời cảm ơn chân thành đến thầy Nguyễn Công Hoan tư vấn, hướng dẫn, hỗ trợ nhóm em thực đề tài Bên cạnh đó, xin chân thành cảm ơn anh, chị bạn nhiệt tình hỗ trợ nhóm với khó khăn, bỡ ngỡ phát sinh suốt trình thực đồ án làm việc với model tensorflow MỤC LỤC Contents Mục đích Machine learning ? Cách thức hoạt động máy học Các kiểu máy học 10 Reinforcement machine learning 12 Deep learning 13 Neural Network 14 Lịch sử phát triển 16 Ứng dụng 22 10 CONVOLUTIONAL NEURAL NETWORK 23 11 TỔNG QUAN VỀ BÀI TỐN NHẬN DIỆN KHN MẶT 29 12 Mô tả yêu cầu 34 13 Sơ đồ hoạt động ứng dụng 37 14 Sơ đồ use case 38 15 Sơ đồ lớp 40 16 Thiết kế API 41 17 Thiết kế CSDL 43 18 Thiết kế giao diện 44 19 Hướng dẫn cài đặt 55 20 Công nghệ sử dụng 57 21 Hướng phát triển 62 22 Tài liệu tham khảo 63 23 Bảng phân công công việc 64 Mục đích Trong thời kỳ cơng nghệ ngày phát triển mạnh mẽ, ngày nhiều nghiên cứu đời nhằm giải toán thực tiễn, phục vụ, xây dựng phát triển đời sống, xã hội người văn minh, đại Trong số phải kể đến cơng nghệ máy học, phát triển mạnh mẽ máy móc, thiết bị xử lý tính tốn Vận dụng lợi phát triển đó, máy học trở lại phát triển mạnh mẽ hết, trở thành xu hướng kỷ, mở nhiều ứng dụng, giải pháp mạnh mẽ, linh hoạt giúp ích cho người Nắm bắt phát triển đó, nhóm em mong muốn có hội tiếp xúc, tìm hiểu máy học Xây dựng đưa sản phẩm có ích, thiết thực cho đời sống Vì vậy, nhóm em đến ý tưởng thực 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 độ xác cao thích hợp để làm sản phẩm điểm danh nhận diện gương mặt lẽ phương pháp thay phương pháp sử dụng thẻ từ truyền thống dẫn đến tượng gian lận, hay ưu điểm phương pháp sử dụng vân tay điểm hạn chế tiếp xúc lên bề mặt, thời gian khủng hoảng đại dịch Machine learning ? 2.1/ Định nghĩa: Machine learning nhánh trí tuệ nhân tạo tập trung vào việc xây dựng, phát triển ứng dụng có khả tự học hỏi từ tri thức gia tăng độ xác theo thời gian Trong khoa học liệu, thuật toán chuỗi bước xử lý tính tốn thống kê Trong máy học, thuật tốn “huấn luyện” để tìm đặc trưng hay đặc điểm chung từ khối lượng liệu lớn để dựa vào đó, đưa định dự đốn dựa liệu Thuật toán xử lý nhiều liệu “thơng minh” định dự đoán đưa xác 2.2/ Biểu diễn Biểu diễn (tiếng Anh: representation) vấn đề quan trọng học máy Biểu diễn hiểu ghi mã (encode) thông tin giới thật giúp hoàn thành nhiệm vụ cách hiệu đầy đủ Thơng tin bao hàm thông tin liệu đầu vào, đầu hay trạng thái hệ thống; cách đánh giá hiệu chương trình Thơng thường, học máy người ta hay xây dựng mơ hình sử dụng biến cho việc biểu diễn liệu nội trạng thái hệ thống Ví dụ: dùng biến để biểu thị cho tính chất email spam (tương ứng giá trị 0) bình thường (tương ứng 1) Mối tương quan biến sử dụng ví dụ mơ hình xác suất dạng đồ thị để miêu tả Mặt khác, để đo hiệu dùng hàm thiệt hại (hay hàm tiện ích, tiếng Anh loss function utility function tương ứng) 2.3/ Tính phổ quát Một trọng tâm khác học máy đạt tính phổ quát (tiếng Anh: generalization), nói cách khác tính chất chương trình làm việc tốt với liệu mà chưa gặp (tiếng Anh: unseen data) Một chương trình hiệu với liệu gặp nhìn chung khơng có nhiều tính hữu dụng Lấy ví dụ xếp thư điện tử tự động, hệ thống tự động sau trải qua trình học từ liệu ("training") suy diễn số nguyên tắc riêng (chẳng hạn xem xét nội dung: thư viết tiếng Anh mà chứa số từ "porn", "sell", "good product" người gửi đến từ Somalia người nhận Hà Nội khơng thân quen nhau) để định xem có phải thư rác hay không Tuy nhiên, liệu giảng (training data) có ngơn ngữ khác thực tế (tiếng Việt thay tiếng Anh) chí khơng phải dạng văn (dạng ảnh khiến cho bóc tách nội dung khó khơng thể) máy dự báo khơng xác Một số chương trình tự động cập nhật thời gian thực (ví dụ người sử dụng có thư bị xếp sai danh mục) 2.4/ Tương tác với 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 người việc phân tích liệu, hệ thống khác hướng đến việc tăng cộng tác người máy Khơng thể loại bỏ hồn tồn tác động người nhà thiết kế hệ thống phải định cách biểu diễn liệu chế dùng để tìm kiếm đặc tính liệu Học máy xem nỗ lực để tự động hóa số phần phương pháp khoa học Một số nhà nghiên cứu học máy tạo phương pháp bên khuôn khổ thống kê Bayes 2.5/ Tương quan với Khai phá liệu Khai phá liệu học máy hai khái niệm hay bị nhầm lẫn Hai lĩnh vực nhìn chung gần với dùng chung nhiều phương pháp, công cụ khác biệt mục tiêu: Khai phá liệu: thường mục tiêu tìm kiếm thơng tin, tri thức hồn tồn tiềm có ích nguồn liệu Học máy: dự đoán số thơng tin liệu dựa đặc tính biết Cách thức hoạt động máy học Có bước để xây dựng model máy học 3.1/ Chọn lựa chuẩn bị liệu (dataset): Dữ liệu huấn luyện dataset, dùng để huấn luyện model giải tốn mà thiết kế để giải Dataset gồm loại: + Labeled dataset (dataset gán nhãn) + Unlabeled dataset (dataset không gán nhãn) Một dataset trước dùng cho huấn luyện model cần chuẩn bị kĩ càng, cẩn thận để tránh ảnh hưởng đến kết huấn luyện model Thông thường, dataset chia làm gồm training dataset (dữ liệu huấn luyện) evaluation dataset(dữ liệu đánh giá) 3.2/ Chọn thuật toán để chạy dataset Loại thuật toán cân nhắc, chọn lựa dựa yếu tố: + Loại dataset (được gán nhãn hay khơng) + Độ lớn dataset + Loại tốn cần giải Sau thuật toán phổ biến thường áp dụng với liệu gán nhãn: + Hồi quy tuyến tính (Linear regression): Được dùng để dự đoán giá trị yếu tố không độc lập dựa giá trị yếu tố tự Ví dụ, thuật tốn hồi quy tuyến tính huấn luyện để để dự đoán doanh số năm nhân viên bán hàng (biến số không độc lập) dựa mối quan hệ doanh số với cấp độ học thức số năm kinh nghiệm của người (các biến số tự do) + Cây định (Decision tree): Sử dụng liệu phân lớp để đưa đề nghị dựa tập hợp nguyên tắc định Ví dụ, định dùng để dự đốn nên đặt cược vào ngựa sử dụng liệu ngựa (tuổi, tỷ lệ thắng, phả hệ, …) áp dụng nguyên tắc vào số liệu để đưa định + Học tập dựa cá thể (Instance-based algorithms): Tiêu biểu K-Nearest neighbors hay gọi k-nn Nó dựa vào độ giống cá thể với k nhóm cá thể có tập tính gần khác để định xem cá thể thuộc nhóm Các thuật tốn áp dụng cho tập liệu không gắn nhãn: + Các thuật toán phân cụm (Clustering algorithms): Đại diện cho nhóm thuật tốn kể đến k-means, thuật tốn tiến hành gom nhóm cá thể có đặc điểm tương đồng + Các thuật toán học dựa quy tắc quan hệ (Association algorithms): Thuật tốn tìm điểm chung mối quan hệ liệu, “luật quan hệ” Tương tự với luật dùng khai thác liệu (data mining) 3.3/ Huấn luyện thuật tốn để tạo model: Đây q trình lặp, bao gồm việc cho chạy biến số qua thuật toán, so sánh kết tạo với kết đúng, điều chỉnh trọng số độ lệch kết tốt hơn, sau tiến hành chạy lại bước kết thu đủ tốt 3.4/ Sử dụng cải thiện model Bước cuối sử dụng model với liệu mới, trường hợp tốt nhất, model tự cải thiện độ xác qua thời gian Các liệu tùy thuộc vào tốn cần giải Ví dụ, model phát email spam nhận liệu email Các kiểu máy học Các kiểu máy học chia làm loại 4.1/ Supervised machine learning Cịn biết đến “học có giám sát”, phương pháp tự “train” dựa tập liệu gán nhãn Một tập liệu gán nhãn nghĩa liệu tập gán cho nhãn thông tin mà model xây dựng để xác định, phân loại Ví dụ, model xây dựng để nhận diện giống chó săn cừu Đức “trained” tập liệu ảnh giống chó khác gán nhãn tương ứng tên giống chó Phương pháp học cần liệu học trình học dễ dàng so với phương pháp học khác kết model đưa kiểm chứng cách so sánh với label thực tế liệu Tuy nhiên, có hạn chế việc chuẩn bị tập liệu đánh nhãn cách “đúng đắn” nhiều công sức, nỗ lực Ngồi cịn có nguy xảy “overfitting”, hay nói cách khác model bị học cách máy móc, hình thành “định kiến” dựa liệu cung cấp tập liệu nên gặp liệu mới, lạ model khơng xử lý tốt 4.2/ Unsupervised machine learning Còn gọi 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 tập liệu khơng gán nhãn sử dụng thuật tốn để trích xuất đặc trưng “mấu chốt” để đánh nhãn, phân loại xếp liệu theo thời gian thực mà không cần can thiệp từ người Học khơng giám sát thường dùng để tự động hóa việc đưa định dự đốn mà thay vào đó, chủ yếu để rút trích, phát điểm chung, mối quan hệ liệu mà người bỏ sót Ví dụ hệ thống phát “spam”, người sinh thư điện tử nhiều để nhóm “nhà khoa học liệu” đánh nhãn phân loại khoảng thời gian đời họ Sử dụng thuật toán học khơng giám sát, họ phân tích lượng lớn thư điện tử phát đặc trưng, hình mẫu thư spam (và chí cịn cải thiện khả đánh dấu thư spam qua thời gian) 4.3/ Semi-supervised learning Học bán giám sát phương pháp học trung hòa học có giám sát học khơng giám sát Trong q trình training, sử dụng tập liệu gán nhãn nhỏ để định hướng cho việc phân loại rút trích đặc trưng từ tập liệu lớn hơn, không đánh nhãn sẵn Học bán giám sát giải tốn mà khơng có đủ liệu đánh nhãn (hoặc khơng có khả thu thập đủ liệu gán nhãn) để huấn luyện model học có giám sát 49 - Màn hình điểm danh: 50 - Thông báo xác nhận thông tin sau ấn nút điểm danh: 51 - 52 19 Hướng dẫn cài đặt Để sử dụng chương trình, ta cần bước cài đặt sau: 19.1/ Cài đặt WorkTimeManagement back-end app: Trước hết máy cần cài đặt python Tiếp theo virtualenv, thư viện python cho phép tạo mơi trường ảo độc lập để làm việc dễ dàng với project B1: Clone repos https://github.com/n3w-us3r/WorkTime máy B2: Tạo môi trường ảo thư mục repos activate môi trường ảo để tiến hành thiết lập môi trường cho project: virtualenv -p /usr/bin/python3.8 venv source venv/bin/activate B3: Tất thư viện cần thiết liệt kê file requirements.txt Để tiến hành cài đặt, ta sử dụng lệnh sau: pip install -r requirements.txt B4: Sau cài đặt xong môi trường, tiến hành setup cho sở liệu lệnh sau: python manage.py makemigrations python manage.py migrate python manage.py shell < db_setup.py B5: Ta cần khởi tạo tài khoản với quyền quản trị cao cách: python manage.py createsuperuser B6: Thiết lập biến môi trường: export MAIL_USERNAME = ‘’ export MAIL_PASSWORD = ‘’ B7: Khởi chạy chương trình với lệnh: python manage.py runserver 53 19.2/ Cài đặt face recognition model back-end app B1: clone repos https://github.com/n3w-us3r/FaceRecognitionFlask 54 B2: Tải pretrained model https://drive.google.com/file/d/1MegWliwXx2J-xHYX6iETl7hXUtLRk2sC/view B3: Tạo môi trường ảo kích họat mơi trường ảo: virtualenv -p /usr/bin/python3.8 venv source venv/bin/activate B4: Thiết lập môi trường cách: pip install -r requirements.txt B5: Tổ chức cấu trúc thư mục hình sau: B6: Khởi chạy chương trình lệnh: python app.py 55 20 Công nghệ sử dụng Backend: Python, Django, Flask Frontend: iOS(Swift) Machine Learning: Tensorflow Database: Sqlite Với đặc điểm linh động, dễ sử dụng dễ phát triển, WorkTime app phát triển sử dụng framework Django, vừa phát triển app web cho trình duyệt vừa phát triển api dùng cho ứng dụng di động Tuy nhiên với FaceRecognition model app, ta sử dụng framework Flask Framework phát triển web cho python tương tự Django gọn nhẹ hơn, hỗ trợ hơn, thích hợp cho ứng dụng đơn giản., thời gian phát triển nhanh ● Trong đó, Tensorflow đóng vai trị vơ quan trọng việc xây dựng model máy học Tensorflow ● Được viết C++ thao tác interface Python nên phần performance TensorFlow tốt Đối tượng sử dụng đa dạng không kém: từ nhà nghiên cứu, nhà khoa học liệu dĩ nhiên thiếu lập trình viên Lịch sử đời TensorFlow ● Vài năm trước, phải xử lý lượng liệu khổng lồ, deep learning bắt đầu cho thấy hiệu vượt trội so với tất thuật toán machine learning khác Google sớm nhận tiềm nghĩ họ nên sử dụng deep neural network để cải thiện dịch vụ mình, có: ○ Gmail ○ Hình ảnh ○ Google search engine ● Từ TensorFlow để nhà nghiên cứu lập trình viên làm việc model A.I Khi phát triển scale hồn chỉnh, nhiều người sử dụng 56 ● Ra mắt lần đầu vào cuối năm 2015, phiên TensorFlow ổn định cuối xuất vào năm 2017 Là mã nguồn mở cho phép Apache Open Source, bạn sử dụng, điều chỉnh tái đóng góp phiên điều chỉnh đó, đổi lại khơng cần phải trả đồng cho Google Kiến trúc TensorFlow Kiến trúc TensorFlow hoạt động chia thành phần: ● Tiền xử lý liệu ● Dựng model ● Train ước tính model Giới thiệu Component TensorFlow Tensor tensor vector hay ma trận n-chiều không gian đại diện cho tất loại liệu Tất giá trị tensor chứa đựng loại liệu giống hệt với shape biết (hoặc biết phần) Shape liệu chiều ma trận hay mảng tensor bắt nguồn từ liệu input hay kết phép tính Trong TensorFlow, tất hoạt động tiến hành bên graph – biểu đồ Biểu đồ tập hợp tính tốn diễn liên tiếp Mỗi operation gọi op (operation node) kết nối với 57 Biểu đồ phát thảo op kết nối node Tuy nhiên, khơng hiển thị giá trị Phần edge node tensor, cách để nhập operation với liệu Graph TensorFlow sử dụng framework dạng biểu đồ Biểu đồ tập hợp mô tả tất chuỗi tính tốn thực q trình training Biểu đồ mang nhiều lợi thế: – Nó làm để chạy nhiều CPU hay GPU, hệ điều hành thiết bị điện thoại – Tính di động biểu đồ cho phép bảo tồn tính tốn để bạn sử dụng hay sau Biểu đồ lưu lại để thực thi tương lai – Tất tính tốn biểu đồ thực cách kết nối tensor lại với tensor có node edge Node mang operation toán học sản xuất output đầu cuối Các edge giải thích mối quan hệ input/output node Cách TensorFlow hoạt động ● TensorFlow cho phép lập trình viên tạo dataflow graph, cấu trúc mô tả làm liệu di chuyển qua biểu đồ, hay tập node xử lý Mỗi node đồ thị đại diện operation toán học, kết nối hay edge node mảng liệu đa chiều, hay gọi ‘tensor’ ● TensorFlow cung cấp tất điều cho lập trình viên theo phương thức ngơn ngữ Python Vì Python dễ học làm việc, ngồi cịn cung cấp nhiều cách tiện lợi để ta hiểu làm high-level abstractions kết hợp Node tensor TensorFlow đối tượng Python, ứng dụng TensorFlow thân chúng ứng dụng Python ● Các operation tốn học thực khơng thi hành Python Các thư viện biến đổi có sẵn thông qua TensorFlow viết binary C++ hiệu suất cao Python điều hướng lưu lượng phần cung cấp high-level abstraction lập trình để nối chúng lại với 58 Lợi ích từ TensorFlow ● Lợi ích dễ thấy quan trọng mà TensorFlow cung cấp cho việc lập trình machine learning abstraction Giờ bạn tập trung vào phần logic tổng thể ứng dụng TensorFlow chăm sóc phần nội dung cơng cụ thay cho bạn ● Ngồi TensorFlow cịn cung cấp tiện ích bổ sung cho lập trình viên cần debug giúp bạn tự suy xét ứng dụng TensorFlow Chế độ eager execution cho phép bạn đánh giá sửa đổi operation biểu đồ cách riêng biệt minh bạch, thay phải dựng toàn biểu đồ dạng đối tượng độc lập vốn mơ hồ hay phải đánh giá chung tổng thể Cuối cùng, tính độc đáo TensorFlow TensorBoard TensorBoard cho phép bạn quan sát cách trực quan TensorFlow làm ● Google tiếp lửa cho tiến độ nhanh chóng cho phát triển đằng sau dự án, mà tạo nhiều phục vụ độc đáo xung quanh TensorFlow để dễ dàng deploy sử dụng: silicon TPU nói để tăng tốc hiệu suất đám mây Google, online hub cho việc chia sẻ model tạo với framework, diện in-browser g ần gũi với mobile framework, nhiều nữa… 59 Django Django gì? Django khung ứng dụng web mã nguồn mở miễn phí, phụ trợ dựa Python - ngôn ngữ phát triển hàng đầu Khung web (Framework) tập hợp thành phần giúp bạn phát triển trang web nhanh dễ dàng Django có mơ hình xác thực người truy cập tuyệt vời, nhờ khả cấu hình user Điều khiến trở thành lựa chọn hàng đầu trang web, ứng dụng cần ưu tiên bảo mật Mục tiêu Django đơn giản hóa việc tạo website phức tạp có sử dụng sở liệu Django tập trung vào tính “có thể tái sử dụng” “có thể tự chạy” component, tính phát triển nhanh, khơng làm lại làm Một số website phổ biến xây dựng từ Django Pinterest, Instagram, Mozilla, Bitbucket Phương thức hoạt động Django sử dụng mô hình MVT (Model-View-Template) thay sử dụng mơ hình MVC (Model-View-Controller) 60 21 Hướng phát triển Trong tương lai, để phát triển ứng dụng Ứng dụng mở rộng với nhiều tính dành cho cấp bậc quản lý như: + Thống kê thời gian làm việc nhân viên + Thống kê nhân viên thường xuyên nghỉ làm, nghỉ số phép quy định năm + Tính xin nghỉ phép + Đặc biệt ứng dụng phần nhỏ tích hợp vào hệ thống nội quản lý doanh nghiệp + Tự động tính lương tháng dựa vào số cơng nhân viên Ngồi ra, bên cạnh việc sử dụng smartphone làm thiết bị phần cứng thu nhận ảnh, ứng dụng tương lai sử dụng loại phần cứng phổ biến, nhỏ gọn, dễ phát triển có giá thành rẻ smartphone máy tính nhúng raspberry pi zero w với chi phí chưa đến năm trăm nghìn Việt Nam đồng để tối ưu hóa tính tiện dụng tự động hóa 61 22 Tài liệu tham khảo [1]https://phamdinhkhanh.github.io/2020/05/31/CNNHistory.html#44-googlenet -i nception-v1-2014 [2]https://phamdinhkhanh.github.io/2019/08/22/convolutional-neural-network.html #132-ki%E1%BA%BFn-tr%C3%BAc-chung-c%E1%BB%A7a-m%E1%BA%A1n g-neural-t%C3%ADch-ch%E1%BA%ADp [3]https://topdev.vn/blog/tensorflow-la-gi/ [4]https://www.sciencedirect.com/science/article/pii/S1877050918321252?via%3Di hub [5]https://www.thalesgroup.com/en/markets/digital-identity-and-security/governme nt/inspired/history-of-facial-recognition [6]https://www.import.io/post/history-of-deep-learning/ [7]https://www.ibm.com/cloud/learn/machine-learning [8]https://www.nec.co.nz/market-leadership/publications-media/a-brief-history-of-f acial-recognition/ … 62 23 Bảng phân cơng cơng việc Tìm hiểu Tìm hiểu Thiết kế Xây sở dựng deep learning sử dụng liệu ứng model dụng di động Lê Đình Trọng Nghĩa x x Lý Hiền Phúc x x x Xây dựng ứng dụng back-end Tổng hợp thông tin x x Chuẩn bị báo cáo x x x 63 ... 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 độ xác cao thích hợp để làm sản phẩm điểm danh nhận diện gương mặt lẽ phương pháp thay phương pháp sử dụng. .. khn mặt Nó phải đảm bảo tính khuôn mặt Nhận dạng khuôn mặt (Face Recognition): Với hình ảnh đầu vào sau phát khn mặt, trích rút đặc trưng khuôn mặt đem so sánh đặc trưng với sở liệu khn mặt Bài... số tuyến tính vào toán nhận diện gương mặt Một hệ thống biết với tên Eigenface đặc trưng phân tích từ tập ảnh gương mặt tạo thành tập đặc trưng Ngoài để mã hóa xác hình ảnh gương mặt cần dùng