Nghiên cứu phát hiện giới tính qua hình ảnh ứng dụng cho công tác quản lý học sinh nội trú của trường phổ thông dân tộc nội trú tỉnh quảng ninh

71 13 0
Nghiên cứu phát hiện giới tính qua hình ảnh ứng dụng cho công tác quản lý học sinh nội trú của trường phổ thông dân tộc nội trú tỉnh quảng ninh

Đ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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VŨ VĂN DƯƠNG NGHIÊN CỨU PHÁT HIỆN GIỚI TÍNH QUA HÌNH ẢNH ỨNG DỤNG CHO CƠNG TÁC QUẢN LÝ HỌC SINH NỘI TRÚ CỦA TRƯỜNG PHỔ THÔNG DÂN TỘC NỘI TRÚ TỈNH QUẢNG NINH LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên, 2020 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VŨ VĂN DƯƠNG NGHIÊN CỨU PHÁT HIỆN GIỚI TÍNH QUA HÌNH ẢNH ỨNG DỤNG CHO CƠNG TÁC QUẢN LÝ HỌC SINH NỘI TRÚ CỦA TRƯỜNG PHỔ THÔNG DÂN TỘC NỘI TRÚ TỈNH QUẢNG NINH Chuyên ngành: Khoa học máy tính Mã số: 48 0101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: PGS TS Đỗ Năng Toàn Thái Nguyên, 2020 i LỜI CAM ĐOAN Tên là: Vũ Văn Dương Sinh ngày: 10/01/1985 Học viên lớp cao học CK17B - Trường Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên Hiện công tác tại: Sở Giáo dục Đào tạo tỉnh Quảng Ninh Xin cam đoan: Đề tài “Nghiên cứu phát giới tính qua hình ảnh Ứng dụng cho cơng tác quản lý học sinh nội trú Trường Phổ Thông DTNT tỉnh Quảng Ninh.” PGS TS Đỗ Năng Toàn hướng dẫn cơng trình nghiên cứu riêng tơi Tất tài liệu tham khảo có nguồn gốc, xuất xứ rõ ràng Tác giả xin cam đoan tất nội dung luận văn nội dung đề cương yêu cầu thầy giáo hướng dẫn Nếu sai tơi hồn tồn chịu trách nhiệm trước hội đồng khoa học trước pháp luật Thái Nguyên, ngày 16 tháng năm 2020 Tác giả luận văn Vũ Văn Dương ii LỜI CẢM ƠN Sau thời gian nghiên cứu làm việc nghiêm túc, động viên, giúp đỡ hướng dẫn tận tình Thầy giáo hướng dẫn PGS TS Đỗ Năng Toàn, luận văn với Đề tài “Nghiên cứu phát giới tính qua hình ảnh - Ứng dụng cho công tác quản lý học sinh nội trú Trường Phổ Thông DTNT tỉnh Quảng Ninh” Xin bày tỏ lòng biết ơn sâu sắc đến thầy PGS TS Đỗ Năng Tồn tận tình dẫn, giúp đỡ tơi hồn thành luận văn Phịng đào tạo Sau đại học Trường Đại học CNTT Truyền thơng giúp đỡ tơi q trình học tập thực luận văn Sở Giáo dục Đào tạo tỉnh Quảng Ninh nơi công tác tạo điều kiện tối đa cho thực khóa học Tơi xin chân thành cảm ơn bạn bè, đồng nghiệp gia đình động viên, khích lệ, tạo điều kiện giúp đỡ suốt trình học tập, thực hồn thành luận văn Thái Nguyên, ngày 16 tháng năm 2020 Tác giả luận văn Vũ Văn Dương iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC TỪ VIẾT TẮT v DANH MỤC HÌNH ẢNH vi PHẦN MỞ ĐẦU Chương 1: KHÁI QUÁT VỀ QUẢN LÝ HỌC SINH NỘI TRÚ VÀ BÀI TỐN PHÁT HIỆN GIỚI TÍNH HỌC SINH 1.1 Khái quát quản lý học sinh nội trú; 1.1.1 Khái niệm quản lý giáo dục 1.1.2 Những đặc trưng quản lý giáo dục 1.1.3 Quản lý nhà trường 1.1.4 Biện pháp quản lý học sinh nội trú 1.2 Bài tốn phát giới tính học sinh; 11 1.2.1 Giới tính 11 1.2.2 Phát giới tính học sinh: 11 Chương 2: 13 NHẬN DẠNG MẶT NGƯỜI VÀ PHÁT HIỆN GIỚI TÍNH TỪ HÌNH ẢNH MẶT NGƯỜI 13 2.1 Cơ sở lý thuyết toán nhận dạng mặt người; 13 2.1.1 Bài toán nhận dạng mặt người .13 2.1.2 Hệ thống nhận dạng mặt tự động 14 iv 2.1.3 Những thách thức nhận dạng mặt người 15 2.1.4 Các cách tiếp cận cho toán nhận dạng mặt người 16 2.2 Phát giới tính từ ảnh mặt người 17 2.1.1 Chuẩn hóa ánh sáng với lọc Retinal filter 20 2.2.2 Đặc trưng HOG phát mặt người 23 2.2.3 Trích chọn đặc trưng LPQ 30 2.2.4 Bộ phân lớp k-NN 33 2.3 Kỹ thuật phát giới tính tự động sử dụng mạng CNN 35 2.3.1 Thuật toán CNN - Convolutional Neural Network 35 2.3.2 Cấu trúc mạng CNN 35 2.3.3 Các lớp mạng CNN 36 Chương 3: 42 CHƯƠNG TRÌNH THỬ NGHIỆM 42 3.1 Phân tích u cầu tốn 42 3.2 Phân tích lựa chọn cơng cụ 43 3.2.1 Ngôn ngữ Python 43 3.2.2 Thư viện Tensorflow 44 3.2.3 Thư viện Skearn 45 3.3 Quá trình phát triển xây dựng chương trình 46 3.3.1 Chương trình huấn luyện 46 3.3.2 Chương trình phát giới tính 47 3.3.3 Kết sau chạy liệu thử nghiệm 48 PHẦN KẾT LUẬN 51 TÀI LIỆU THAM KHẢO 53 PHỤ LỤC 54 Chương trình huấn luyện 54 Chương trình phát giới tính 60 v DANH MỤC CÁC TỪ VIẾT TẮT Từ Tiếng Anh viết tắt CGA Color Graphic Adaptor CNN Convolutional Neural Network HOG Histogram of Oriented Gradient LBP Local Binary Pattern LDA Linear Discriminant Analysis LQP Local Phase Quantization PCA Principal Components Analysis vi DANH MỤC HÌNH ẢNH Hình 2.1 Mơ hình tổng quan tốn Face recognition 14 Hình 2.2 Sơ đồ tổng quan hệ thống nhận dạng giới tính 18 Hình 2.3 Các bước hệ thống phát mặt tự động LPQ 19 Hình 2.4 Các bước lọc Retinal filter 20 Hình 2.5 Kết việc tiền xử lý với lọc Retina filter 22 Hình 2.7 Một số ảnh LPQ thu từ toán tử LPQ 32 Hình 2.8 Các bước tính vector LPQ ảnh mặt người 33 Hình 2.9 Minh họa phân lớp kNN 34 Hình 2.10 Minh họa cấu trúc mạng CNN 35 Hình 2.11 Minh họa filter tầng convolutonal 37 Hình 2.12 Minh họa thông số Padding 37 Hình 2.13 Minh họa phát đặc trưng feature detector 38 Hình 2.14 Hàm ReLU 39 Hình 2.15 Max Pooling 39 Hình 2.16 Average Pooling 40 Hình 2.17 Hình minh họa lớp Fully connected 40 Hình 2.18 Hình minh kết sau tầng Fully connected 41 Hình 3.1 Trường phổ thông dân tộc nội trú tỉnh Quảng Ninh 42 Hình 3.2 Đồ thị biểu diễn giá trị loss, train 46 Hình 3.3 Bảng số liệu kết thử nghiệm 48 Hình 3.4 Hình ảnh kết chạy thử nghiệm thực tế 49 Hình 3.5 Hình ảnh kết chạy thử nghiệm thực tế 50 vii DANH MỤC BẢNG BIỂU Hình 3.1: Bảng số liệu kết thử nghiệm 50 PHẦN MỞ ĐẦU Tính khoa học cấp thiết đề tài Ngày nay, với phát triển mạnh mẽ khoa học công nghệ, phần cứng máy tính thiết bị liên quan có tiến vượt bậc tốc độ tính tốn, dung lượng chứa, khả xử lý, cơng nghệ xử lý, nhận dạng ảnh số trở nên thông dụng với hầu hết lĩnh vực xã hội Việc phân tích trích xuất thơng tin có từ ảnh nhà khoa học nghiên cứu từ đầu năm 90 kỷ trước Điều có nhiều thơng tin có ích khai thác từ ảnh khn mặt, ví dụ danh tính, giới tính, cảm xúc, cử tương tác, dân tộc, tình trạng sức khỏe,… Trong số thơng tin suy từ ảnh, giới tính thuộc tính quan trọng có nhiều ứng dụng thực tế, ví dụ quảng cáo có định hướng, thống kê dân số, công tác quản lý dân cư, quản lý học sinh khu nội trú trường học… Công tác quản lý người công việc phức tạp công tác quản lý Đối với Trường phổ thông dân tộc nội trú tỉnh Quảng Ninh, công tác quản lý học sinh nội trú ln địi hỏi nhiều thời gian công sức Đối tượng học sinh nhà trường sinh hoạt học tập 100% nội trú trường, khu nội trú nhà trường chia làm hai khu riêng biệt phân cách rào ngăn cách Nhà trường xây dựng nội quy riêng cho khu vực nam nữ khác nhau, học sinh nam không sang khu vực học sinh nữ ngược lại Để quản lý học sinh khu vực việc xây dựng nội qui, qui định phổ biến tới học sinh cần nguồn nhân lực kiểm tra việc thực nội qui này, việc kiểm tra phải diễn thường xuyên, liên tục khó khăn lớn cho cơng tác quản lý 48 Bước 3: - Lặp lại trình phát khn mặt frame ảnh; - Cắt hình ảnh khuôn mặt làm liệu so sánh với lớp xây đựng trình huấn luyện Bước 4: - Gán nhãn cho khuôn mặt (Nam hoặc nữ) tỉ lệ phát 3.3.3 Kết sau chạy dữ liệu thử nghiệm Hình 3.3 Bảng số liệu kết thử nghiệm Số Khối lượng Nhận Số lượng Nhận sai Nam Nữ Số > Nữ >Nam lượng % % Khối 10 105 98 93,33% 6,67% Khối 11 102 97 95,10% 4,90% Khối 12 98 97 98,98% 1 1,02% Tổng 305 292 95,74% 10 13 4,26% Như với liệu chạy thử nghiệm phát giới tính 305 học sinh Trường phổ thông dân tộc nội trú tỉnh Quảng Ninh điều kiện đủ ánh sáng, kết phát giới tính cao, với khối lớp 10 tỉ lệ phát giới tính 93,33%; khối lớp 11 95,10%; khối lớp 12 đạt 98,98%; tỉ lệ chung toàn trường đạt 95,74% tỉ lệ tốt Các trường hợp phát sai thường góc nhìn nghiêng hoặc liệu chưa đủ số lượng giới tính nữ bị phát nhầm thành giới tính nam nhiều so với giới tính nam phát nhầm thành giới tính nữ 49 Hình 3.4 Hình ảnh kết chạy thử nghiệm thực tế 50 Hình 3.5 Hình ảnh kết chạy thử nghiệm thực tế 51 PHẦN KẾT LUẬN Sau tìm hiểu công tác quản lý học sinh khu ký túc xá Trường phổ thông dân tộc nội trú tỉnh Quảng Ninh cho thấy công tác quản lý học sinh tạị khu ký túc xá trường công tác quản lý phức tạp, phải dành nhiều thời gian, nhân lực hiệu cơng tác cịn thấp, thực việc ứng ụng công nghệ thông tin công tác quản lý giúp giảm thiểu thời gian nhân lực, nâng cao chất lượng công tác quản lý Bài tốn phát giới tính từ hình ảnh mặt người tốn cịn có nhiều thách thức, ngồi yếu tố thuật tốn đặc biệt điều kiện ảnh mặt bị tác động yếu tố ánh sáng, thời gian, hướng làm sai lệch kết nhận diện Trong luận văn này, tơi tìm hiểu, phân tích tốn phát giới tính thông qua đặc điểm khuôn mặt thông qua kỹ thuật LPQ CNN, hệ thống phát mặt tự động đề xuất, xây dựng đánh giá hiệu Hệ thống đề xuất sử dụng thuật toán CNN (Convolutional neural network) huấn luyện từ 1173 ảnh khn mặt giới tính nam 1134 ảnh khn mặt giới tính nữ, chương trình sử dụng thuật toán trích rút đặc điểm 1173 ảnh khn mặt giới tính nam 1134 ảnh khn mặt giới tính nữ để khởi tạo mơ hình phân loại mơ hình huấn luyện cho máy sau lưu vào hệ thống, sau chương trình phát giới tính từ hình ảnh khn mặt phát hình ảnh khn mặt trích xuất từ camera đối chiếu với đặc điểm hệ thống trích rút từ tập mơ hình huấn luyện sau vào tỉ lệ đối sánh mơ hình rút kết luận hình ảnh thu nhận giới tính nam hay giới tính nữ hiển thị thơng báo phản hồi hình ảnh camera 52 Qua kết cho thấy điều kiện đủ ánh sáng, góc nhìn thẳng, khn mặt khơng bị che khuất kết phát đạt tỷ lệ cao (95,74%), đặc biệt hệ thống phát cho kết xác có tỉ lệ thấp bạn lớp 10 tăng độ chính xác học sinh lớp 11 12 Chương trình thử nghiệm đưa phát giới tính điều kiện tiêu chuẩn nhiều hạn chế chưa kết nối với thiết bị ghi nhận cảnh báo cho người quản lý, điều kiện thiếu sáng hoặc bị che khuất tỷ lệ phát cịn thấp, Vì vậy, theo quan điểm học viên, đề tài cịn có số hướng phát triển sau: + Tăng khả phát chính xác điều kiện khác + Kết nối thiết bị để ghi nhận, cảnh báo cho người quản lý; + Thiết kế biểu mẫu thống kê báo cáo phù hợp với yêu cầu thực tế Do giới hạn thời gian nghiên cứu kiến thức thân, luận văn khó tránh khỏi số sai sót định Học viên mong nhận đóng góp ý kiến thầy cô, bạn đọc quan tâm để luận văn hoàn thiện Một lần học viên xin cảm ơn Thầy PGS TS Đỗ Năng Toàn tận tình giúp đỡ, hướng dẫn thời gian thực đề tài, cảm ơn giúp đỡ gia đình, bạn bè đồng nghiệp thời gian qua Thái Nguyên ngày 16 tháng năm 2020 Người thực Vũ Văn Dương 53 TÀI LIỆU THAM KHẢO I Tài liệu tiếng Việt [1] Tài Liệu Xử Lý Ảnh PGS TS Đỗ Năng Toàn Và TS Phạm Việt Bình trường Đại Học Thái Nguyên biên soạn [2] Nguyen Huu Tuan “Towards buiding an automatic gender classification system using LPQ” The international conference on marine science and technology 2016 [3] Phung Thi Thu Trang, Ma Thi Hong Thu “a lightweight deep learning moder for age and gender indentity problem using the CNN network” [4] Thông tư 01/2016/TT-BGDĐT ngày 15/01/2016 Bộ Giáo dục Đào tạo ban hành quy chế tổ chức hoạt động trường phổ thông dân tộc nội trú II Tài liệu tiếng Anh [5] Allen Downey, Think Python, How to Think Like a Computer Scientist, Green Tea Press Washburn Ave Needham MA 02492 2015 [6] M Duan, K Li, C Yang, and K Li, “A hybrid deep learning cnn– elm for age and gender classification”, Neurocomputing, Vol 275, pp 448–461, 2018 54 PHỤ LỤC Chương trình huấn luyện //import thư viện from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.optimizers import Adam from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.utils import to_categorical, plot_model from tensorflow.keras.models import Sequential from tensorflow.keras.layers import BatchNormalization, Conv2D, MaxPooling2D, Activation, Flatten, Dropout, Dense from tensorflow.keras import backend as K from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt import numpy as np import random import cv2 import os import glob # Thiết lập thông số ban đầu epochs = 100 lr = 1e-3 55 batch_size = 64 img_dims = (96,96,3) data = [] labels = [] # Tải tệp hình ảnh từ tập liệu image_files = [f for f in glob.glob (r'C:\Files\gender_dataset_face' + "/**/*", recursive=True) if not os.path.isdir(f)] random.shuffle(image_files) # chuyển đổi hình ảnh gắn nhãn for img in image_files: image = cv2.imread(img) image = cv2.resize(image, (img_dims[0],img_dims[1])) image = img_to_array(image) data.append(image) label = img.split(os.path.sep)[-2] # C:\Files\gender_dataset_face\woman\face_1162.jpg if label == "woman": label = else: label = 56 labels.append([label]) # [[1], [0], [0], ] # Gắn nhãn vào mảng data = np.array(data, dtype="float") / 255.0 labels = np.array(labels) # Chia nhỏ tập liệu để train (trainX, testX, trainY, testY) = train_test_split(data, labels, test_size=0.2, random_state=42) trainY = to_categorical(trainY, num_classes=2) # [[1, 0], [0, 1], [0, 1], ] testY = to_categorical(testY, num_classes=2) # Tăng cường độ xác aug = ImageDataGenerator(rotation_range=25, width_shift_range=0.1, height_shift_range=0.1, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode="nearest") # Định nghĩa kiểu def build(width, height, depth, classes): model = Sequential() inputShape = (height, width, depth) chanDim = -1 57 if K.image_data_format() == "channels_first": #Returns a string, either 'channels_first' or 'channels_last' inputShape = (depth, height, width) chanDim = # (Cài đặt thuật tốn CNN) chuẩn hóa sau lớp Conv2D với data_format="channels_first", # Gắn trục = BatchNormalization model.add(Conv2D(32, (3,3), padding="same", input_shape=inputShape)) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(MaxPooling2D(pool_size=(3,3))) model.add(Dropout(0.25)) model.add(Conv2D(64, (3,3), padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(Conv2D(64, (3,3), padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Dropout(0.25)) model.add(Conv2D(128, (3,3), padding="same")) model.add(Activation("relu")) 58 model.add(BatchNormalization(axis=chanDim)) model.add(Conv2D(128, (3,3), padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(1024)) model.add(Activation("relu")) model.add(BatchNormalization()) model.add(Dropout(0.5)) model.add(Dense(classes)) model.add(Activation("sigmoid")) return model # Xây dựng kiểu model = build(width=img_dims[0], height=img_dims[1], depth=img_dims[2], classes=2) # Biên dịch kiểu opt = Adam(lr=lr, decay=lr/epochs) model.compile(loss="binary_crossentropy", optimizer=opt, metrics=["accuracy"]) 59 # Train kiểu H = model.fit_generator(aug.flow(trainX, trainY, batch_size=batch_size), validation_data=(testX,testY), steps_per_epoch=len(trainX) // batch_size, epochs=epochs, verbose=1) # Lưu kiểu model.save('gender_detection.model') # Lập đồ thị plt.style.use("ggplot") plt.figure() N = epochs plt.plot(np.arange(0,N),H.history["loss"],label="train_los s") plt.plot(np.arange(0,N),H.history["val_loss"],label="val_l oss")++++++ plt.plot(np.arange(0,N), H.history["acc"], label="train_acc") plt.plot(np.arange(0,N), H.history["val_acc"], label="val_acc") plt.title("Training Loss and Accuracy") plt.xlabel("Epoch #") plt.ylabel("Loss/Accuracy") plt.legend(loc="upper right") 60 # Ghi đồ thị đĩa plt.savefig('plot.png') Chương trình phát giới tính from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.models import load_model import numpy as np import cv2 import os import cvlib as cv # load kiểu model = load_model('gender_detection.model') # Mở webcam webcam = cv2.VideoCapture(0) classes = ['Nam','Nu'] # Tạo khung while webcam.isOpened(): # Đọc khung từ webcam status, frame = webcam.read() # Áp dụng nhận diện khuôn mặt face, confidence = cv.detect_face(frame) for idx, f in enumerate(face): # Lấy điểm góc mặt hình chữ nhật 61 (startX, startY) = f[0], f[1] (endX, endY) = f[2], f[3] # Vẽ hình chữ nhật mặt cv2.rectangle(frame, (startX,startY), (endX,endY), (0,255,0), 2) # Cắt vùng khuôn mặt phát face_crop = np.copy(frame[startY:endY,startX:endX]) if (face_crop.shape[0]) 10 else startY + 10 62 # Hiển thị nhãn độ xác khung nhận diện cv2.putText(frame, label, (startX, Y), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2) # Hiển thị liệu cv2.imshow("gender detection", frame) # Nhấn phíp (Q) để if cv2.waitKey(1) & 0xFF == ord('q'): break webcam.release() cv2.destroyAllWindows() ...ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VŨ VĂN DƯƠNG NGHIÊN CỨU PHÁT HIỆN GIỚI TÍNH QUA HÌNH ẢNH ỨNG DỤNG CHO CƠNG TÁC QUẢN LÝ HỌC SINH NỘI TRÚ CỦA TRƯỜNG PHỔ THÔNG... thông dân tộc nội trú tỉnh Quảng Ninh, công tác quản lý học sinh nội trú ln địi hỏi nhiều thời gian công sức Đối tượng học sinh nhà trường sinh hoạt học tập 100% nội trú trường, khu nội trú nhà trường. .. Đề tài ? ?Nghiên cứu phát giới tính qua hình ảnh Ứng dụng cho cơng tác quản lý học sinh nội trú Trường Phổ Thông DTNT tỉnh Quảng Ninh. ” PGS TS Đỗ Năng Toàn hướng dẫn cơng trình nghiên cứu riêng

Ngày đăng: 09/04/2021, 11:36

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan