SCIENCE - TECHNOLOGY Số 13.2023 Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 137
NGHIÊN CỨU MẠNG NƠ-RON TÍCH CHẬP VÀ ỨNG DỤNG XÂY DỰNG HỆ THỐNG HỖ TRỢ COI THI ONLINE CỦA TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
RESEARCH ON CONTINUOUS NEURAL NETWORK AND APPLICATION TO BUILDING AN ONLINE EXAMINATION SUPPORT SYSTEM OF HANOI UNIVERSITY OF INDUSTRY Nguyễn Duy Sơn1,*, Trần Tuấn Anh1, Trần Anh Tuấn2, Ngô Thị Thanh Hoà 3 TÓM TẮT Hệ thống coi thi trc tuyến một ng ngh giám t và ki
ểm tra kỹ
thuật s đưc s dng trong quá trình t
chc thi trc tuyến, giúp đm bảo
nh trung thc và ng bằng ca q trình ki
ểm tra. Công việc xây dng h
thống coi thi trực tuyến là mt d án phc tạp, yêu c
ầu kiến thc v công
ngh thông tin, bảo mật, giao diện ngưi dùng, tích hp h thống, và nhi
ều
yếu tố khác. Công vic y thbao gm c tính năng như vi
ệc c thực
danh tính ca thí sinh, giám sát hình nh hoc video của thí sinh trong su
ốt
quá trình thi, theo i hot đng trên y tính c
hiệu gian lận hoặc vi phm quy đnh thi, và bảo mật dữ liu ca bài thi. Đ
y dng đề tài này chúngi nghiên c
ứu mt số thut toán nhận dạng khuôn
mặt và cài đặt chương trình nhận dạng khuôn mặt trên ảnh thẻ sinh vi
ên cùng
vi sinh viên đang cm th, dùng thuật toán CNN vi s giúp đ ca t vi
ện
Keras và ngôn ngữ lp trình Python. Từ khóa: Hệ thống nhận dạng khuôn mặt, mạng neural nhân tạo. ABSTRACT The online
proctoring system is a digital monitoring and testing
technology used in the process of organizing online exams, ensuring the
integrity and fairness of the assessment process. Building an online proctoring
system is a complex project that requires knowledg
e of information
technology, security, user interface design, system integration and various
other factors. This task may include features such as authenticating the identity
of candidates, monitoring candidates’ image or videos throughout the
examination
process, tracking activities on candidates computers to detect
signs of cheating or violations of examination regulations and securing the
exam data. To build this project, we researched several face recognition
algorithms and implemented a face recogniti
on program on student ID card
images using the CNN algorithm with the help of the Keras library and the
Python programming language. Keywords: Face recognition system, artificial neural network. 1Lớp Kỹ thuật phần mềm 01- K16, Khoa CNTT, Trường Đại học Công nghiệp Hà N
ội
2Lớp Kỹ thuật phần mềm 01- K14, Khoa CNTT, Trường Đại học Công nghiệp Hà Nội3Khoa CNTT, Trường Đại học Công nghiệp Hà Nội *Email: nguyenduyson28072003@gmail.com 1. GIỚI THIỆU Hệ thống coi thi trực tuyến một giải pháp số dùng để tổ chức thi trực tuyến nhằm giám t và xác thực tính trung thực của quá trình kiểm tra. Hệ thống này sử dụng các công nghệ khác nhau như nhận dạng khuôn mặt, giám sát video, chia smàn hình theo dõi hoạt động trên máy tính của thí sinh để phát hiện bất kỳ dấu hiệu gian lận hoặc vi phạm quy định thi nào. Một số tính năng chính của hệ thống coi thi trực tuyến thể bao gồm: Xác thực danh tính sử dụng nhận dạng khuôn mặt, quét thẻ ID hoặc các phương pháp khác để xác thực danh tính của thí sinh trước khi bắt đầu thi. nhiều nghiên cứu liên quan đến hệ thống coi thi trực tuyến, trong đó tập trung o các lĩnh vực như nhận dạng khuôn mặt, giám sát video, giám sát hành vi của thí sinh, chia sẻ màn hình, bảo mật dữ liệu các công nghệ khác liên quan đến quá trình tổ chức thi trực tuyến. Ngoài ra, còn nhiều nghiên cứu khác liên quan đến hệ thống coi thi trực tuyến trong các lĩnh vực khác như bảo mật dữ liệu, giao diện người dùng, tích hợp hệ thống, và các yếu tố khác. 2. PHƯƠNG PHÁP 2.1. Tổng quan về mạng neural nhân tạo - Khái niệm mạng neural nhân Mạng neural nhân tạo (Artificial Neural Network - ANN) một hình tính toán được lấy cảm hứng từ cấu trúc hoạt động của hệ thần kinh sinh học. được sử dụng đphỏng và giải quyết các bài toán phức tạp trong lĩnh vực trí tuệ nhân tạo. Một mạng neural nhân tạo bao gồm một số lượng lớn các đơn vị tính toán gọi neuron, được tổ chức thành các lớp. Các lớp gồm lớp đầu vào (input layer), các lớp ẩn (hidden layers), lớp đầu ra (output layer). Mỗi neuron trong lớp nhận đầu vào từ các neuron trong lớp trước đó, tính toán truyền kết quả đến các neuron trong lớp tiếp theo. Quá trình huấn luyện mạng neural nhân tạo thường bao gồm hai giai đoạn chính: forward propagation backward
CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 13.2023
138
KHOA H
ỌC
propagation. Trong giai đoạn forward propagation, dữ liệu được đưa vào mạng truyền qua các lớp, kết qudự đoán được tính toán lớp đầu ra. Trong giai đoạn backward propagation, sai số giữa đầu ra dự đoán đầu ra thực tế được tính toán truyền ngược lại qua mạng để điều chỉnh các trọng số liên kết giữa các neuron. Quá trình này được thực hiện thông qua thuật toán lan truyền ngược (backpropagation), với mục tiêu tối thiểu hóa hàm mất mát (loss function) để tăng độ chính xác của mạng. Hình 1. Cấu tạo cơ bản của neural nhân tạo Đầu ra ŷ của Mạng nơ ron 2 lớp đơn giản như sau: Hình 2. Biểu đồ quá trình huấn luyện 2.2. Tổng quan về tích chập và mạng neural ch chập CNN Tích chập (Convolution) một phép toán toán học trong đại số tuyến tính, được sử dụng rộng rãi trong xử lý tín hiệu và thị giác máy tính. Khi áp dụng tích chập lên các dữ liệu đa chiều, khả năng trích xuất thông tin cục bộ tạo ra các biểu diễn đặc trưng. Mạng neural tích chập (Convolutional Neural Network - CNN) là một loại kiến trúc mạng neural được thiết kế đặc biệt cho việc xử dữ liệu có cấu trúc, như hình ảnh video. CNN sử dụng lớp tích chập để tự động học các bộ lọc hoặc kernel nhằm trích xuất các đặc trưng từ dữ liệu đầu vào. Cấu trúc chính của một CNN bao gồm các lớp sau: - Lớp đầu vào (Input layer): Nhận dữ liệu đầu vào, thường là các hình ảnh. - Lớp tích chập (Convolutional layer): Áp dụng các bộ lọc (kernel) để tạo ra các feature map, mỗi feature map tương ứng với một đặc trưng cụ thể trong dữ liệu. - Lớp pooling (Pooling layer): Thực hiện downsampling (thu nhỏ kích thước) của feature map để giảm số lượng thông tin, giúp giảm chi phí tính toán làm giảm overfitting. - Lớp kích hoạt (Activation layer): Áp dụng một hàm kích hoạt phi tuyến tính (thường là ReLU) lên feature map để tạo độ phi tuyến tính và khả năng học các đặc trưng phức tạp. - Lớp đầy đủ kết nối (Fully Connected layer): Một hoặc nhiều lớp kết nối đầy đủ được sử dụng để kết hợp các đặc trưng đã trích xuất và thực hiện phân loại. - Lớp đầu ra (Output layer): Lớp cuối cùng thực hiện phân loại hoặc dự đoán kết quả dựa trên đầu vào đã được xử lý. Hình 3. Cấu trúc chính của một CNN Trong quá trình huấn luyện, CNN sử dụng thuật toán lan truyền ngược (backpropagation) để điều chỉnh các trọng số của mạng và tối thiểu hóa hàm mất mát. CNN đã đạt được thành công đáng kể trong nhiều nhiệm vụ thị giác máy tính, bao gồm nhận dạng vật thể trong hình ảnh, nhận dạng khuôn mặt 3. THỰC NGHIỆM 3.1. Thu thập ảnh đầu vào Mỗi người dùng sẽ cần sử dụng hệ thống thu thập khuôn mặt, sau khi đưa vào camera qua các góc nhìn khác nhau, hệ thống tự động thu thập hình ảnh là các khuôn mặt của người dùng (chính diện, bên trái, bên phải, nhìn lên, nhìn xuống) để được các đặc trưng khác nhau c hình ảnh này được chuyển vào database của hệ thống. 3.2. Tối ưu lỗi và huấn luyện dữ liệu giai đoạn này hệ thống sẽ được tối ưu hoá. Sử dụng model Sequential(). Trong model Sequential cũng sẵn hàm tối ưu sử dụng các phương thức tối ưu. Thiết lập Early Stopping, lớp này sẽ giúp ngừng huấn luyện khi tỉ lệ nhận dạng sai không còn cải thiện. Thiết lập Reduce IROn Plateau, lớp này sẽ giúp giảm tỷ lệ học tập khi sự cải thiện là không đáng kể. Gọi hàm fit() để bắt đầu huấn luyện với dữ liệu train train generator, test val generator. Tập dữ liệu này được tạo bằng cách sử dụng lớp ImageDataGenerator đã được thêm ở phần trước.
SCIENCE - TECHNOLOGY Số 13.2023 Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 139
3.3. Thiết kế mạng neural 3.3.1. Quy trình lựa chọn tham số cho mạng neural Để lựa chọn tham số cho mạng neural, thông thường ta sẽ thực hiện quá trình khảo sát các yếu tố sau: - Sử dụng bao nhiêu lớp tích chập? - Kích thước của lớp fully connected là bao nhiêu? - Dropout bao nhiêu phần trăm là phù hợp? - Sử dụng optimizer nào là tốt nhất? Qua quá trình khảo sát hết các yếu tố đã đưa ra thì ta sẽ chọn được bộ tham số đạt thời gian tối ưu độ chính xác tốt nhất cho cấu trúc nhận dạng khuôn mặt. 3.3.2. Thực thi quá trình lựa chọn tham số Quá trình lựa chọn cấu trúc của mạng neural tích chập CNN trong khuôn khổ luận văn này được thực hiện theo cách xác định số lượng feature trong mạng CNN khảo sát 3 trường hợp với giá trị khác nhau 32, 64 128. Các tham số còn lại được lựa chọn ban đầu theo thông sốới đây và bộ optimizer được sử dụng là Adam. 3.3.3. Khảo sát lựa chọn tham số giai đoạn này chúng ta sẽ khảo sát từng tham đã lựa chọn: number_ of_ features, batch_size, dropout CNN, dropout Dense, bộ optimizer. Ta được kết qutổng hợp sau khi khảo sát giá trị của number_of_features ở bảng 1. Bảng 1. Tổng hợp các lần khảo sát của number_of_features Lượt thực hiện number_of_featuresSố lần epochs ms/step Độ chính xác xác thực 1 32 30 218ms/step 0,9807 2 64 38 218ms/step 0,9841 3 128 30 331ms/step 0,9811 Sau quá trình khảo sát huấn luyện ta chọn ra được giá trị tốt nhất của number_of_features 32 với thời gian nhỏ nhất 218, số lần epochs 30 giá trị chính xác đạt tốt nhất là 0,9807. Bảng 2. Tổng hợp số lượng khảo sát của batch_size Lượt thực hiện batch_size Số lần epochs ms/step Độ chính xác
xác thực 1 32 30 218ms/step 0,9807 2 64 68 152ms/step 0,9870 3 128 50 307ms/step 0,9880 Ở lần khảo sát quá trình huấn luyện này ta chọn ra được giá trị tốt nhất của batch_size bằng 32 với thời gian nhở nhất, số lần epochs ít nhất và giá trị chính xác đạt tốt nhất. Bảng 3. Tổng hợp số lượng khảo sát của drop_out_CNN Lượt thực hiện drop_out_CNN Số lần epochs ms/step Độ chính xác xác thực 1 0,2 43 163ms/step 0,9762 2 0,3 69 99ms/step 0,9793 3 0,4 69 111ms/step 0,9651 Cuối cùng khi khảo sát hết tất cả các giá trị của drop_out_CNN đã lựa chọn thì giá trị đạt 0,3 đưa ra được kết quả tối ưu nhất Bảng 4. Tổng hợp số lượng khảo sát của drop_out_Dense Lượt thực hiện drop_out_Dense
Số lần epochs ms/step Độ chính xác xác thực 1 0,3 57 102ms/step 0,9850 2 0,4 57 74ms/step 0,9772 3 0,5 63 67ms/step 0,9739 Thực hiện quá trình huấn luyện giữ nguyên các tham skhác, chi thay đổi tham số của droput_Dense ta được kết quả như bảng 4.4. Sau khi khảo sát giá trị của dropout_Dense đạt 0,3 đưa ra kết quả thời gian tối ưu độ chính xác tốt nhất Bảng 5. Tổng hợp số lượng khảo sát của bộ optimizer ợt thực hiện Optimizer Số lần epochs ms/step Độ chính xác xác thực 1 sgd 90 69ms/step 0,9783 2 Adam 57 102ms/step 0,9850 Sau khi khảo sát giá trị của boptimizer, optimizer được chọn cho mạng CNN Adam với số lần epochs ít nhất, độ chính xác tốt nhất. Nhóm nghiên cứu tiến hành quá trình khảo sát để chọn ra bộ tham số tốt nhất cho ứng dụng nhận dạng khuôn mặt người trên Keras - một trong các thư viện của ngôn ngữ lập trình Python. Từ quá trình khảo sát lựa chọn tham số tới quy trình thực hiện lựa chọn tham số nhằm đạt được yêu cầu đưa ra. Kết quả cho thấy, đã chọn ra được bộ tham số tốt nhất với các giá trị nums_feature bằng 32, batch_size bằng 32, giá trị của dropout_CNN bằng 0,3, dropout_Dense bằng 0,3 optimizer Adam với các điều kiện ràng buộc đưa ra được thời gian huấn luyện ngắn nhất đạt được 102ms/step độ chính xác tốt nhất trên 98% đã được theo yêu cầu đã đặt ra. Hình 4. Kết quả mô hình Với sự lựa chọn các tham số, số epochs để tốt nhất là khi accuracy validation_accuracy gtrị xấp xỉ bằng nhau. Training data đang tăng nhưng validation data tăng
CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 13.2023
140
KHOA H
ỌC
lên một mức rồi không tăng tiếp chứng tỏ hình đã lựa chọn chưa thực sự hình tối ưu. Để lựa chọn hình tối ưu thì về nguyên tắc trong đồ thị của kết qukhảo sát đường accuracy của dữ liệu train accuracy của dữ liệu validation phải luôn bám t nhau cũng ng lên đỏ mới hình chuẩn nhưng để khảo sát đưa ra được hình chuẩn ta cần phải thay đổi rất nhiều về cấu trúc. Nhóm nghiên cứu đã lựa chọn bộ tham số đã lựa chọn trên được kết quả như hình 4. 4. KẾT LUẬN Mạng neural tích chập CNN là một mô hình mạng neural được sử dụng nhiều sở thuyết. Chúng tôi đã xây dựng được quy trình để lựa chọn được cấu trúc của mạng neural, đã triển khai được một mạng neural thử nghiệm đạt được độ chính xác nhận diện trung bình trên 99%. Kết quả rất khả thi trong việc ứng dụng và phòng tránh gian lận thi cử trong “hệ thống thi online Trường Đại học Công nghiệp Nội”. trong tương lai, nhóm tác giả sẽ phát triển hệ thống lớn hơn phục vụ cho hiệu quả cao nhất, thích nghi với mọi sự thay đổi của xã hội. TÀI LIỆU THAM KHẢO [1]. Nguyễn Phương Nga, Trần Hùng Cường, 2021. Giáo trình Trí tuệ nhân tạo. Nhà xuất bản Thống kê. [2]. Nguyễn Thị Len, 2014. Đề xuất phương pháp nhận dạng mặt người và ứng dụng chống gian lận trong thi cử. Luận văn thạc sĩ, Học viện Công nghệ Bưu chính Viễn thông. [3]. M. S. V. Ashwini B. Akkawar, 2015. Review And Comparative Study of Face Recognition Using Different Neural Networking algorithm. International Journal of Engineering Research and General Science, 3, 2, Part 2, 479-484. [4]. Ostawal Prachi Satish, P.G.Salunke, 2014. A Survey on Face Recognition and Facial Expression Identification. International Journal Of Engineering And Computer Science, 3, 12 9524-9527 [5]. Joshi Practeek, 2017. Artificial intelligence with python a comprehensive guide to building intelligence apps for python beginners and developers. Packt Publishing. [6]. Stuart Russell, Peter Norvig, 2020. Artificial Intelligence: A Modern Approach. 4th Edition, Pearson. [7]. M. G. Kresimir Delac, 2007. PCA and LDA based Neural Networks for Human Face Recognition. in Face Recognition, Vienna, Austria, I-Tech, 94-106