1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG ỨNG DỤNG NHẬN BIẾT THÔNG TIN SINH VIÊN VKU

34 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 1,31 MB

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

Nội dung

Và đối với một trường công nghệ thông tin thì việc áp dụng khoa học kĩ thuật để hỗ trợ quản lý trong trường hợp này là điều nên có.. Vì lẽ đó nhóm chúng em quyết định thực hiện đề tài “X

Trang 1

i

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &

TRUYỀN THÔNG VIỆT HÀN

Khoa Khoa Học Máy Tính

ĐỒ ÁN CHUYÊN NGÀNH 2

XÂY DỰNG ỨNG DỤNG NHẬN BIẾT

THÔNG TIN SINH VIÊN VKU

Sinh viên thực hiện: Nguyễn Bảo Minh Hoàng

Nguyễn Đình Trọng

Giảng viên hướng dẫn: PGS.TS Huỳnh Công Pháp

Đà Nẵng, tháng 05 năm 2021

Trang 2

ii

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &

TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính

ĐỒ ÁN CHUYÊN NGÀNH 2 XÂY DỰNG ỨNG DỤNG NHẬN BIẾT

THÔNG TIN SINH VIÊN VKU

Nguyễn Đình Trọng – 17IT112

Giảng viên hướng dẫn: PGS.TS Huỳnh Công Pháp

Đà Nẵng, tháng 05 năm 2021

Trang 3

iii

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Ký, ghi rõ họ tên

Trang 4

iv

LỜI CẢM ƠN

Trong xã hội loài người phát triển, trong thời đại đang diễn ra cuộc cách mạng công nghiệp lần thứ 4, con người đang đòi hỏi nhiều hơn từ sự trợ giúp của máy móc trong nhiều lĩnh vực như: y tế, kinh doanh, học tập, Và dưới sự phát triển của AI, thế giới đang có bước chuyển mình đột phá trong nhiều lĩnh vực, một trong số đó là giao thông với việc ra đời của xe tự lái Và để phát triển hoàn thiện xe tự lái thì không thể thiếu sự hiện diện của xử lý ảnh, thị giác máy tính trong việc xử lý các tín hiệu xung quanh, từ con người, vật cản, các biển báo, Chính vì lẽ đó nên chúng em quyết định chọn đề tài “Xây dựng ứng dụng nhận biết thông tin sinh viên VKU” để hiểu rõ hơn về các công nghệ áp dụng AI nói chung và xử lý ảnh nói riêng

Trong quá trình thực hiện đề tài vẫn còn những hạn chế về kiến thức và công nghệ, nếu có chỗ nào sai sót, mong quý thầy cô nhận xét để đề tài hoàn thiện hơn nữa trong tương lai

Đặc biệt em xin chân thành gửi lời cảm ơn sâu sắc đến thầy giáo PGS TS Huỳnh Công Pháp và ThS Nguyễn Anh Tuấn, người đã tận tình hướng dẫn, trực tiếp chỉ bảo và tạo mọi điều kiện giúp đỡ em trong suốt quá trình làm đồ án học phần Đồ

Trang 5

v

MỤC LỤC

DANH MỤC CÁC TỪ VIẾT TẮT VI DANH MỤC HÌNH VẼ VII

MỞ ĐẦU 1

1 GIỚI THIỆU 1

2 MỤC TIÊU CỦA ĐỀ TÀI 1

3 NỘI DUNG VÀ KẾ HOẠCH THỰC HIỆN 1

4 BỐ CỤC BÁO CÁO 2

CHƯƠNG 1 TỔNG QUAN VỀ LÝ THUYẾT 3

1 GIỚI THIỆU VỀ PYTHON 3

2 GIỚI THIỆU VỀ AI,MACHINE LEARNING VÀ DEEP LEARNING 4

3 GIỚI THIỆU VỀ KERAS 7

4 GIỚI THIỆU VỀ TRANSFER LEARNING 12

5 GIỚI THIỆU VỀ NHẬN DIỆN KHUÔN MẶT 14

6 GIỚI THIỆU VỀ MTCNN 15

7 GIỚI THIỆU VỀ VGG16 MODEL 15

8 GIỚI THIỆU VỀ PYQT5 15

9 KẾT CHƯƠNG 1 16

CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17

1 YÊU CẦU BÀI TOÁN 17

2 TRIỂN KHAI 17

3 KẾT CHƯƠNG 2 21

CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG 22

1 GIAO DIỆN 22

2 CHỨC NĂNG 23

3 KẾT CHƯƠNG 3 23

CHƯƠNG 4 KẾT LUẬN 24

1 KẾT QUẢ ĐẠT ĐƯỢC 24

2 HƯỚNG NGHIÊN CỨU 25

PHỤ LỤC 27

Trang 6

vi

DANH MỤC CÁC TỪ VIẾT TẮT

VIẾT TẮT NỘI DUNG

Trang 7

vii

DANH MỤC HÌNH VẼ

Hình 1-1 Mô hình CNN 6

Hình 1-2 Mối liên hệ giữa AI, ML và DL 7

Hình 1-3 So sánh mô hình ML truyền thống và Transfer Learning 13

Hình 1-4 Kiến trúc của mạng VGG16 15

Hình 2-1 Các bước thực hiện 17

Hình 3-1 Giao diện ứng dụng 1 22

Hình 3-2 Giao diện ứng dụng nhận dạng khuôn mặt 23

Hình 4-1 Biểu đồ loss 24

Hình 4-2 Biểu đồ accuracy 25

Trang 8

Và đối với một trường công nghệ thông tin thì việc áp dụng khoa học kĩ thuật

để hỗ trợ quản lý trong trường hợp này là điều nên có Với sự phát triển của AI, Machine Learning, Data Processing trong những năm gần đây chính là công cụ cần thiết để áp dụng vào bài toán lần này Vì lẽ đó nhóm chúng em quyết định thực hiện đề tài “Xây dựng ứng dụng nhận biết thông tin sinh viên VKU” với sự hỗ trợ của Deep Learning để nhận dạng khuôn mặt đối tượng và cho ra thông tin của đối tượng đó nhằm biết được một đối tượng có phải là sinh viên của trường VKU hay không

2 Mục tiêu của đề tài

Từ vấn đề đặt ra ở trên, mục tiêu của chúng em chính là tạo 1 sản phẩm ứng dụng nhằm kiểm soát hay theo dõi được quá trình ra/vào của các sinh viên(sau này có thể mở rộng ra gồm CBVC) trong trường

3 Nội dung và kế hoạch thực hiện

Đầu tiên phải tìm hiểu các phương pháp nhận biết/nhận dạng khuôn mặt phổ biến hiện nay Ưu và nhược điểm của mỗi loại Sau đó chọn phương pháp thích hợp, tối ưu nhất cho bài toán

Thực nghiệm trên máy tính cá nhân trước với số face ít Sau khi thu được kết quả tốt mới tăng số lượng data

Trang 9

2

Chương trình được viết hoàn toàn bằng ngôn ngữ lập trình Python Giao diện được xây dựng trên nền tảng PyQt5

4 Bố cục báo cáo

Sau phần Mở đầu, báo cáo được trình bày trong ba chương, cụ thể như sau:

Chương 1 Tổng quan về lý thuyết: Trong chương này, báo cáo trình bày các

khái niệm, đặc điểm,

Chương 2 Phân tích thiết kế hệ thống

Chương 3 Xây dựng ứng dụng

Cuối cùng là Kết luận, Tài liệu tham khảo và Phụ lục liên quan đến đề tài

Trang 10

3

Chương 1 TỔNG QUAN VỀ LÝ THUYẾT

1 Giới thiệu về Python

1.1 Khái niệm

Python là một ngôn ngữ lập trình thông dịch (interpreted), hướng đối tượng (object-oriented), và là một ngôn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic semantics) Python hỗ trợ các module và gói (packages), khuyến khích chương trình module hóa và tái sử dụng mã Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và

có thể được phân phối tự do

1.2 Đặc điểm

 Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình

Jython, hoặc Net cho IronPython)

1.3 Ưu điểm

và CORBA, Java… Python cũng được hỗ trợ bởi Internet Communications Engine (ICE) và nhiều công nghệ kết nối khác

Trang 11

4

những hệ điều hành khác Thậm chí có cả những phiên bản chạy trên NET, máy ảo Java, và điện thoại di động (Nokia Series 60) Với cùng một mã nguồn sẽ chạy giống nhau trên mọi nền tảng

mã nguồn mở được chia sẻ trên mạng

 Cài đặt Python dùng giấy phép nguồn mở nên được sử dụng và phân tối tự do, ngay cả trong việc thương mại Giấy phép Python được quản lý bởi Python Software Foundation

1.4 Nhược điểm

lặp do…while và switch….case

2 Giới thiệu về AI, Machine Learning và Deep Learning

Tuy nhiên hiện nay, công nghệ AI vẫn đang còn rất nhiều hạn chế Đơn cử như Alexa - một quản gia tuyệt vời, một trong những biểu tượng phổ biến nhất về ứng dụng của trí thông minh nhân tạo nhưng vẫn không thể vượt qua bài kiểm tra Turing

Trang 12

5

Tóm lại, những gì chúng ta đang thực hiện với AI hiện nay nằm trong khái niệm “AI hẹp” (Narrow AI) Công nghệ này có khả năng thực hiện các nhiệm vụ cụ thể một cách tương tự, hoặc tốt hơn con người Ví dụ về “AI hẹp” trong thực tế như công nghệ phân loại hình ảnh của Pinterest hay nhận diện khuôn mặt để tag bạn bè trên Facebook

2.2 Giới thiệu về Machine Learning

Machine Learning là một thuật ngữ rộng để chỉ hành động bạn dạy máy tính cải thiện một nhiệm vụ mà nó đang thực hiện Cụ thể hơn, machine learning đề cập tới bất

kỳ hệ thống mà hiệu suất của máy tính khi thực hiện một nhiệm vụ sẽ trở nên tốt hơn sau khi hoàn thành nhiệm vụ đó nhiều lần Hay nói cách khác, khả năng cơ bản nhất của machine learning là sử dụng thuật toán để phân tích những thông tin có sẵn, học hỏi từ nó rồi đưa ra quyết định hoặc dự đoán về một thứ gì đó có liên quan Thay vì tạo

ra một phần mềm với những hành động, hướng dẫn chi tiết để thực hiện một nhiệm vụ

cụ thể, máy tính được “huấn luyện” bằng cách sử dụng lượng dữ liệu và các thuật toán

Sau khi máy đã nhận được đủ dữ liệu cần thiết về mèo, nó phải biết cách tìm một con mèo trong một bức tranh - “Nếu trong hình ảnh có chứa các chi tiết X, Y, hoặc Z nào đó, thì 95% khả năng đó là một con mèo”

Trang 13

6

2.3 Giới thiệu về Deep Learning

Deep Learning là một phương pháp của Học máy Nó cho phép chúng ta huấn luyện một AI có thể dự đoán được các đầu ra dựa vào một tập các đầu vào Cả hai phương pháp có giám sát và không giám sát đều có thể sử dụng để huấn luyện

Mạng nơ ron

Cũng giống động vật, bộ não của AI cũng có các nơ ron Chúng được biểu diễn bằng các vòng tròn Các nơ ron này đều đã được liên kết

Hình 1-1 Mô hình CNN

Các nơ ron được nhóm vào 3 loại layer khác nhau:

trong việc tạo mạng nơ ron là quyết định số lượng các hidden layer này, cũng như số các nơ ron cho mỗi layer

Trang 14

7

Hình 1-2 Mối liên hệ giữa AI, ML và DL

3 Giới thiệu về Keras

Keras là một library được phát triển vào năm 2015 bởi François Chollet, là một

kỹ sư nghiên cứu deep learning tại google Nó là một open source cho neural network được viết bởi ngôn ngữ python keras là một API bậc cao có thể sử dụng chung với các thư viện deep learning nổi tiếng như Tensorflow(được phát triển bởi Google), CNTK(được phát triển bởi Microsoft), Theano(người phát triển chính Yoshua Bengio) Keras có một số ưu điểm như:

Xây dựng bộ xương cho model

Gồm 2 module nhỏ:

Models sub-module

Trang 15

8

Layers sub-module chứa các layers chuyên dụng để ta build các model như

CNN,RNN,GANs… Có rất nhiều layers nên ta chỉ quan tâm đến một số layer

thường sử dụng

thường Các tham số quan tâm

 units chiều output

 activation dùng để chọn activation

 input_dim chiều input nếu là layer đầu tiên

 use_bias có sử dụng bias ko,true or false

 kernel_initializer khởi tạo giá trị đầu cho tham số trong layer trừ bias

 bias_initializer khởi tạo giá trị đầu cho bias

 kernel_regularizer regularizer cho coeff

 bias_regularizer regularizer cho bias

 activity_regularizer có sử dụng regularizer cho output không?

 kernel_constraint,bias_constraint có ràng buộc về weight không?

activation thay thế)

overfiting Tham số cần chú ý :

o rate tỉ lệ dropout

Trang 16

9

image tham số cần chú ý:

 filters số filter của convolution layer

 kernel_size size window search trên image

 strides bước nhảy mỗi window search

 padding same là dùng padding, valid là không

 data_format format channel ở đầu hay cuối

o UpSampling1D, UpSampling2D: ngược lại với convolution layer size

o ZeroPadding1D,ZeroPadding2D dùng để padding trên image

max) và giúp giảm parameter khi training

 pool_size size pooling

o AveragePooling1D,AveragePooling2D giống như maxpooling nhưng dùng Average

o GlobalMaxPooling1D,GlobalMaxPooling2D

o LSTM Long Short-Term Memory layer

embbding sang một không gian mới có chiều nhỏ hơn và được learning from data thay cho one-hot lad hard code

layer như các vector

Trang 17

10

o Add: cộng các layers

o Subtract: trừ các layers

o Multiply: nhân các layer

o Average tính trung bình các layers

o Dot: Nhân matrix giữ 2 layers

muốn, gồm 3 method chúng ta cần chú ý là build,call và compute_output_shape Tiền xử lý dữ liệu

o TimeseriesGenerator dùng để tạo dữ liệu cho time series

o skipgrams tạo data trong model skip gram,kết quả trả về 2 tuple nếu word xuất hiện cùng nhau là 1 nếu ko là 0

documment

o text_to_word_sequence covert text thành sequence

Function trong bộ xương của model

o binary_crossentropy dùng trong classifier 2 class

thực nghiệm

Trang 18

11

class

o SGD Stochastic gradient descent optimizer

o RMSprop RMSProp optimizer

o Adam Adam optimizer

o linear như trong linear regression

o softmax dùng trong multi classifier

o tanh range (-1,1)

model để chạy lại thì callback giúp t làm điều này

categories, and 10,000 test images

o mnist data 70k image data hand written

o fashion_mnist Dataset of 70k 28x28 grayscale images of 10 fashion categories

o reuters 11,228 newswires from Reuters, labeled over 46 topics

Trang 19

12

tiếng.Xception,VGG16,VGG19,resnet50,inceptionv3,

InceptionResNetV2,MobileNet,DenseNet,NASNet cẩu trúc chung như sau :

pretraining

thì nó dùng những thư viện đã xây dựng sẵn rồi và dùng thôi Giúp tiết kiệm dc thời gian và chí phí Trong keras có hỗ trợ 3 backend là tensorflow,theano và CNTK

kernel_initializer and bias_initializer mặc định là glorot_uniform phân phối uniform với giá trị 1/căn(input+output)

thường dùng là L1 và L2

o plot_model giúp chúng ta plot model

o to_categorical covert class sang binary class matrix

4 Giới thiệu về Transfer Learning

Transfer learning là việc ứng dụng kỹ năng/tri thức mình học được từ vấn đề này, với ứng dụng này sang vấn đề khác với ứng dụng khác có liên quan

Transfer learning nhằm cải thiện việc học hàm cho ứng dụng

Trang 20

13

Hình 1-3 So sánh mô hình ML truyền thống và Transfer Learning

Trong Machine Learning và Deep Learning, thì transfer learning là kỹ thuật cho phép tận dụng những gì mình học được từ tập dữ liệu/ứng dụng/kiến trúc này sang tập

dữ liệu/ứng dụng/kiến trúc khác Khác với học máy thông thường, từng nhiệm vụ sẽ có một hệ thống học riêng như ở hình ví dụ trên

Tại sao nên dùng Transfer Learning?

Không đủ dữ liệu: DL cần rất nhiều dữ liệu, và ngốn rất nhiều tài nguyên để

học trên tập dữ liệu và ứng dụng đó và việc huấn luyện DL trên tập dữ liệu ít phần nhiều là không hiệu quả Vậy ngoài kỹ thuật data augmentation trước đó, transfer learning cũng là một giải pháp cho vấn đề này

Không đủ tài nguyên: Việc học trên tập dữ liệu lớn rất ngốn nhiều tài nguyên

Transfer learning sẽ góp phần giảm phần nào thời lượng training

Cải thiện chất lượng: Rất nhiều trường hợp transfer learning cải thiện chất

lượng dự đoán của Target Task so với việc train lại từ đầu Lý do có thể do Source Network được train với dữ liệu lớn và học được tính khái quát hóa tốt hơn, hay việc train với Target Task trong khi mạng vẫn có thông tin của Source Task cho tách động

của multi-task learning

Phương thức Transfer Learning

Trang 21

14

Transfer learning as a starting point: Dùng kết quả của mạng pre-trained như

VGG19, InceptionNet, ResNet101 làm kết quả dự đoán ban đầu Thiết kế thuật toán fusion kết quả của nhiều mạng pre-trained

Transfer learning for representation: Lấy đầu ra của layer gần cuối và coi như

là feature vector Trong bài toán nhận dạng vật thể, mạng neural network có thể coi như một thuật toán tự học cách biểu diễn dữ liệu cho bài toán nhận dạng (learned representation) với phần nhận dạng đơn giản (thường dùng Softmax và one-hot coding) Vector biểu diễn đó có thể đưa vô các thuật toán phân loại phức tạp hơn như SVM

Warm restart via fine tuning: Sử dụng mạng đã train từ tập dữ liệu lớn như

ImageNet, rồi train lại với dữ liệu khác ở learning rate nhỏ hơn

5 Giới thiệu về nhận diện khuôn mặt

Công nghệ AI nhận dạng khuôn mặt là công nghệ cho phép nhận dạng một người cụ thể từ ảnh hoặc 1 đoạn video Cách thức làm việc của công nghệ này là so sánh hình ảnh khuôn mặt với những hình ảnh sẵn có trong cơ sở dữ liệu để đưa ra kết quả

Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được

so sánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròng mắt

Quá trình mà sinh trắc học nhận diện khuôn mặt hoạt động bao gồm:

phải tách khuôn mặt ra khỏi khung cảnh còn lại trước đã

hệ thống nhận diện cũng vậy, nhưng nó thực hiện đánh giá các đặc điểm ở 1 mức độ cao hơn

nên các đặc điểm của khuôn mặt Các hệ thống nhận diện gương mặt định nghĩa những điểm này là những điểm nút

không

Ngày đăng: 19/05/2022, 15:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w