ĐỒ ÁN TÌM HIỂU MACHINE LEARNING VÀ ỨNG DỤNGVÀO NHẬN DẠNG ẢNH

16 41 0
ĐỒ ÁN TÌM HIỂU MACHINE LEARNING VÀ ỨNG DỤNGVÀO NHẬN DẠNG ẢNH

Đ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 QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO MÔN HỌC ĐỒ ÁN ĐỀ TÀI: TÌM HIỂU MACHINE LEARNING VÀ ỨNG DỤNG VÀO NHẬN DẠNG ẢNH Giảng viên hướng dẫn: Mai Trọng Khang Sinh viên thực hiện: Nguyễn Trần Hoàng Thanh 16521125 Lớp: SE121.L11.PMCL TP HỒ CHÍ MINH, 2021 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO MÔN HỌC ĐỒ ÁN ĐỀ TÀI: TÌM HIỂU MACHINE LEARNING VÀ ỨNG DỤNG VÀO NHẬN DẠNG ẢNH Giảng viên hướng dẫn: Mai Trọng Khang Sinh viên thực hiện: Nguyễn Trần Hồng Thanh 16521125 Lớp: SE121.L11.PMCL TP HỒ CHÍ MINH, 2020 LỜI CẢM ƠN Đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến tập thể quý thầy cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM quý thầy cô khoa Công nghệ phần mềm giúp cho chúng em có kiến thức làm tảng để thực đề tài Đặc biệt, nhóm tác giả xin gửi lời cảm ơn lòng biết ơn sâu sắc tới thầy Mai Trọng Khang, giảng viên môn Đồ án 1, Khoa Công nghệ phần mềm Thầy hướng dẫn tận tình, sửa chữa đóng góp nhiều ý kiến q báu giúp em hồn thành báo cáo mơn học Trong thời gian học đề tài, em vận dụng kiến thức tảng tích lũy đồng thời kết hợp với việc học hỏi nghiên cứu kiến thức Từ đó, em vận dụng tối đa thu thập để hoàn thành báo cáo đồ án tốt Tuy nhiên, q trình thực khơng tránh khỏi thiếu sót Chính vậy, em mong nhận góp ý từ phía thầy nhằm hoàn thiện kiến thức mà em học tập hành trang để em thực tiếp đề tài khác tương lai Xin chân thành cảm ơn Thầy! MỤC LỤC Mục lục 1 Tổng quan 1.1 Vài nét Machine Learning 1.1.1 Khái niệm 1.1.2 Phân loại thuật toán Machine Learning .2 1.2 Object Detection .2 1.2.1 Khái niệm 1.2.2 Một số phương pháp Object Detection 1.3 Một số toán liệu Object Detection .5 1.3.1 Phát chữ số viết tay 1.3.2 Phát người 1.3.3 Bộ liệu VOC2007 thực nghiệm .7 2.1 Google Colab 2.2 Nhận diện chữ số viết tay 2.3 Phát người .11 Kết luận hướng phát triển 13 3.1 Kết luận 13 3.1.1 Kết đạt 13 3.1.2 Hạn chế 13 3.2 Hướng phát triển .13 Tài liệu tham khảo 14 Trang | GVHD: Mai Trọng Khang TỔNG QUAN 1.1 Vài nét Machine Learning 1.1.1 Khái niệm Machine learning lĩnh vực Trí tuệ nhân tạo(Artificial Intelligence) sử dụng thuật tốn cho phép máy tính học từ liệu để thực công việc thay lập trình cách rõ ràng 1.1.2 Phân loại thuật tốn Machine Learning − Học có giám sát thuật toán học dự đoán đầu dựa liệu có từ trước thích thuộc tính định danh đầy đủ cho đối tượng − Học không giám sát thuật toán học dự đoán dựa liệu có sẵn, nhiên liệu khơng có thích hay định danh đầy đủ − Học bán giám sát thuật toán học dự đoán dựa liệu mà phần số thích có định danh đầy đủ − Học củng cố thuật toán tự học dự đoán đầu cho đạt kết tốt hồn cảnh 1.2 Object Detection 1.2.1 Khái niệm − Bài toán phát đối tượng (object detection) toán nhận diện định vị đối tượng Đầu vào toán ảnh video, đầu bao gồm tên vị trí đối tượng xuất ảnh − Hiện object detection áp dụng nhiều lĩnh vực hàng ngày nhận diện biển số xe, phát phương tiện giao thông, phát khn mặt người,…Mỗi lĩnh vực lại có thách thức phương pháp khác để giúp thuật toán object detection đạt hiệu tốt 1.2.2 Một số phương pháp Object Detection 1.2.2.1 Faster-RCNN Faster R-CNN phương pháp để giải toán phát đối tượng ảnh Trang | GVHD: Mai Trọng Khang Hình 1.1 Framework Faster R-CNN Trang | GVHD: Mai Trọng Khang − Đầu tiên, đầu vào Faster R-CNN hình ảnh Bức hình đưa vào deep Fully Convolutional Network (tương tự Fast R-CNN) để lấy feature maps hình − Sau feature maps đưa vào Region Proposal Network để tạo vùng đề xuất − Các vùng đề xuất ánh xạ lên feature maps để lấy features vùng Các đặc trưng đưa vào RoI Pooling Layer để tạo ma trận có kích thước − Từng ma trận đặc trưng đưa vào để phân lớp hồi quy bouding-box − Trong Faster R-CNN, mạng mạng RPN – Deep Fully Convolutional Network Mạng nhận đầu vào ảnh có kích thước Đầu tập hợp vùng đề xuất với điểm đánh giá chứa vật thể vùng Hình 1.2 RoI Pooling Layer − Khi lấy ma trận đặc trưng vùng đề xuất, ma trận khơng kích thước Để chuẩn hố liệu, ma trận đưa vào RoI pooling layer Faster R-CNN sử dụng max pooling layer − Khi có đầu vào ma trận đặc trưng RoI với độ lớn w×h vị trí hình cần đầu ma trận có độ lớn W×H Khi pooling area trung gian có kích thước h/H×w/W − Sau đó, với pooling area, ta chọn giá trị lớn đó, kết thu ma trận có kích thước mong muốn Trang | GVHD: Mai Trọng Khang 1.3 Một số toán liệu Object Detection 1.3.1 Phát chữ số viết tay − Phát chữ số viết tay xem tốn cho người tìm hiểu tốn Object Detection − Bài toán sử dụng liệu Mnist với đầu vào ảnh đầu chữ số với dự đoán tương ứng 1.3.2 Phát người − Phát người toán phổ biến lĩnh vực Object Detection, tốn cịn mở rộng với yêu cầu phát hành động người, phát phận người, phát khn mặt hay chí nhận diện cảm xúc khuôn mặt,… nhiên thiếu thốn mặt liệu nên nghiên cứu dừng mức nội cơng khai − Bài tốn thường có đầu vào ảnh video đầu vị trí người phát ảnh Hiện có nhiều liệu lớn có bao gồm nhận diện người VOC Trang | GVHD: Mai Trọng Khang 1.3.3 Bộ liệu VOC2007 − VOC2007 liệu công bố lần vào ngày 07/08/2007 − Bộ liệu gồm có 5011 ảnh huấn luyện 4952 ảnh kiểm tra với 20 lớp đối tượng: • Người: person • Động vật: bird, cat, cow, dog, horse, sheep • Phương tiện: aeroplane, bicycle, boat, bus, car, motorbike, train • Trong nhà: bottle, chair, dining table, potted plant, sofa, tv/monitor Bộ liệu sử dụng thi The PASCAL Visual Object Classes Challenge 2007 với số hạng mục như: • Classification • Detection Trang | GVHD: Mai Trọng Khang THỰC NGHIỆM 2.1 Google Colab Google Colab công cụ trực tuyến miễn phí vơ hữu ích dành cho người tìm hiểu Machine Learning muốn thực nghiệm kiến thức thân Google Colab công cụ trực tuyến Google cung cấp, cung cấp tùy chọn cần thiết cho người nghiên cứu Machine Learning: • Cơng cụ miễn phí: bạn khơng khoản phí sử dụng Google Colab trừ bạn muốn sử dụng cấu hình mạnh mẽ • Cung cấp mơi trường: máy ảo linux cho phép bạn cài đặt, upload, download tồn bạn cần bắt đầu huấn luyện liệu • Cho phép bạn kết nối Google Drive: bạn kết nối, lưu trữ truy cập trực tiếp đến tệp Google Drive • Cho phép bạn sử dụng GPU: GPU miễn phí mà Google cung cấp giúp bạn thực nghiệm hầu hết phương pháp với liệu vừa nhỏ Nếu muốn thao tác với liệu lớn hơn, bạn nên suy nghĩ việc trả phí để sử dụng GPU mạnh mẽ Trang | GVHD: Mai Trọng Khang 2.2 Nhận diện chữ số viết tay Nhận diện chữ số viết tay toán đơn giản có nhiều hướng dẫn mà dễ dàng thực với Google Colab: Đầu tiên, bạn cần thư viện thích hợp: import numpy as np import matplotlib.pyplot as plt from keras.models import Sequential from keras.layers import Dense, Dropout, Activation, Flatten from keras.layers import Conv2D, MaxPooling2D from keras.utils import np_utils from keras.datasets import mnist Tiếp theo upload liệu mnist, mnist có sẵn keras: (X_train, y_train), (X_test, y_test) = mnist.load_data() X_val, y_val = X_train[50000:60000,:], y_train[50000:60000] X_train, y_train = X_train[:50000,:], y_train[:50000] print(X_train.shape) Tiếp theo cần sửa đổi kích thước liệu cho phù hợp với đầu vào mạng sử dụng: X_train = X_train.reshape(X_train.shape[0], 28, 28, 1) X_val = X_val.reshape(X_val.shape[0], 28, 28, 1) X_test = X_test.reshape(X_test.shape[0], 28, 28, 1) Trang | GVHD: Mai Trọng Khang Sau khởi tạo model đơn giản dùng cho việc huấn luyện # Định nghĩa model model = Sequential() # Thêm Convolutional layer với 32 kernel, kích thước kernel 3*3 # dùng hàm sigmoid làm activation rõ input_shape cho layer model.add(Conv2D(32, (3, 3), activation='sigmoid', input_shape=(28,28, 1))) # Thêm Convolutional layer model.add(Conv2D(32, (3, 3), activation='sigmoid')) # Thêm Max pooling layer model.add(MaxPooling2D(pool_size=(2,2))) # Flatten layer chuyển từ tensor sang vector model.add(Flatten()) # Thêm Fully Connected layer với 128 nodes dùng hàm sigmoid model.add(Dense(128, activation='sigmoid')) # Output layer với 10 node dùng softmax function để chuyển sang xác xuất model.add(Dense(10, activation='softmax')) #!git clone https://github.com/titu1994/Keras-ResNeXt !cp "/content/drive/My Drive/LA/CODE/Mnist/resnext.py" "/content/" from keras.models import Model from keras import applications from resnext import ResNext model = ResNext(input_shape = (28,28,1) ) Trang | GVHD: Mai Trọng Khang Hoàn thành bước đến bước huấn luyện liệu, bạn cần khai báo thành phần tính tốn cần thiết sau bắt đầu huấn luyện model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) H = model.fit(X_train, Y_train, validation_data=(X_val, Y_val), batch_size=64, epochs=3, verbose=1) Khi xuất dòng sau có nghĩa model huấn luyện Train on 50000 samples, validate on 10000 samples Epoch 1/3 50000/50000 [==============================] - 1409s 28ms/step - loss: 1.8353 - acc: 0.9047 - val_loss: 1.0486 - val_acc: 0.8884 Epoch 2/3 50000/50000 [==============================] - 1406s 28ms/step - loss: 0.7904 - acc: 0.9385 - val_loss: 4.0462 - val_acc: 0.4705 Epoch 3/3 50000/50000 [==============================] - 1402s 28ms/step - loss: 0.6880 - acc: 0.9426 - val_loss: 2.8854 - val_acc: 0.6843 Sau huấn luyện kết thúc, dễ dàng kiểm tra kết cách cho model dự đoán ảnh: image = X_test[10] plt.imshow(image.reshape(28,28), cmap='gray') y_predict = model.predict(image.reshape(1,28,28,1)) print('Giá trị dự đoán: ', np.argmax(y_predict)) Ta kết sau: Trang | 10 GVHD: Mai Trọng Khang 2.3 Phát người Để phát thực nghiệm cho toán phát người, em sử dụng liệu VOC2007, framework mmdetection phương pháp Faster-RCNN Để cài đặt MMDetection Google Colab cần lệnh sau: !conda install pytorch torchvision -c pytorch #mmcv-full %cd /content/drive/MyDrive/LA/CODE/Thermal !git clone https://github.com/open-mmlab/mmcv.git %cd mmcv !MMCV_WITH_OPS=1 pip install -e #mmdet %cd /content/drive/MyDrive/LA/CODE/Thermal !git clone https://github.com/openmmlab/mmdetection.git %cd mmdetection !pip install -r requirements/build.txt !pip install -v -e #cài đặt thư viện cần thiết khác !pip install onnx !pip install onnxoptimizer !pip install onnxruntime Sau bước quan trọng khác chuẩn bị file config thích hợp để huấn luyện, cần ý thông số sau: Thay đổi num_classes cho phù hợp với số class liệu bbox_head=dict( type='Shared2FCBBoxHead', in_channels=256, fc_out_channels=1024, roi_feat_size=7, num_classes=15) Chọn thư mục lưu trữ model huấn luyện được: work_dir = '/VOC/work_dir/faster_r50_fpn_1x_VOC2007' Trang | 11 GVHD: Mai Trọng Khang Thay đổi đường dẫn đến bô liệu bạn: Các thơng số cịn lại lấy theo mặc định Kết nhận diện ảnh Tran g | 12 GVHD: Mai Trọng Khang KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 3.1 Kết luận 3.1.1 Kết đạt − Hiểu số kiến thức Machine Learning − Nắm cách huấn luyện model − Huấn luyện số model đơn giản 3.1.2 Hạn chế − Trong trình thực nghiệm xuất nhiều lỗi gặp nhiều khó khăn để giải − Trang thiết bị hạn chế dẫn đến việc nhiều thời gian để huấn luyện model 3.2 Hướng phát triển − Tìm hiểu phương pháp Object Detection khác − Áp dụng lại kiến thức đạt cho toán khác với thử thách cao Trang | 13 GVHD: Mai Trọng Khang TÀI LIỆU THAM KHẢO [1] http://host.robots.ox.ac.uk/pascal/VOC/voc2007/, [2] https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-3.1, [3] https://github.com/open-mmlab/mmdetection [4] Ren, Shaoqing, et al "Faster r-cnn: Towards real-time object detection with region proposal networks." IEEE transactions on pattern analysis and machine intelligence 39.6 (2016): 1137-1149 Trang | 14 ... R-CNN phương pháp để giải toán phát đối tượng ảnh Trang | GVHD: Mai Trọng Khang Hình 1.1 Framework Faster R-CNN Trang | GVHD: Mai Trọng Khang − Đầu tiên, đầu vào Faster R-CNN hình ảnh Bức hình đưa... '/VOC/work_dir/faster_r50_fpn_1x_VOC2007' Trang | 11 GVHD: Mai Trọng Khang Thay đổi đường dẫn đến bô liệu bạn: Các thơng số cịn lại lấy theo mặc định Kết nhận diện ảnh Tran g | 12 GVHD: Mai Trọng Khang KẾT LUẬN VÀ HƯỚNG PHÁT... 13 3.2 Hướng phát triển .13 Tài liệu tham khảo 14 Trang | GVHD: Mai Trọng Khang TỔNG QUAN 1.1 Vài nét Machine Learning 1.1.1 Khái niệm Machine learning lĩnh vực Trí

Ngày đăng: 18/12/2021, 22:09

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

Tài liệu liên quan