BÁO cáo NHẬP môn TRÍ TUỆ NHÂN tạo đề tài NHẬN DIỆN kí tự VIẾT TAY áp DỤNG mô HÌNH CNN

26 8 0
BÁO cáo NHẬP môn TRÍ TUỆ NHÂN tạo đề tài  NHẬN DIỆN kí tự VIẾT TAY áp DỤNG mô HÌNH CNN

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ********** BÁO CÁO NHẬP MÔN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI : NHẬN DIỆN KÍ TỰ VIẾT TAY ÁP DỤNG MƠ HÌNH CNN Giáo viên hướng dẫn : ThS.Ngô Văn Linh Sinh viên thực : Nhóm 04- 118596 Họ tên MSSV Nguyễn Thị Thắm 20183984 Trần Thị Hồng Nhung 20183965 Vũ Thị Ngọc Lan 20183939 Hà Nội-2020 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Mục lục Mục lục I Giới thiệu đề tài II Mơ tả tốn III Cơ sở lý thuyết phương pháp giải Cơ sở lý thuyết 1.1 Mạng noron giải thuật lan truyền ngược 1.2 Mơ hình CNN 1.3 Xử lý ảnh Phương pháp giải 2.1 Chuẩn bị liệu huấn luyện 2.2 Xử lí ảnh trích chọn đặc trư 2.3 Mơ hình mạng CNN 2.4 Đánh giá mơ hình IV Xây dựng ứng dụụ̣ng nhận dạng V Đề xuất phát triển Mã nguồn tài liệu tham khảo TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I Giới thiệu đề tài Hiện nay, thông tin, tri thức chuyển thành liệu lưu trữ thiết bị máy tính, laptop, hay tảng trực tuyến Đối với liệu mới, việc đưa liệu vào kho lưu trữ thực dễ dàng cách nhập trực tiếp Tuy nhiên, có nhiều tài liệu cũ viết tay cần lưu trữ vào máy mà việc nhập trục tiếp gây tốn thời gian không hiệu Bài toán nhận dạng chữ viết tay đặt để giải vấn đề Bài toán nghiên cứu nhiều đạt kết đáng kể với nhiều phương pháp khác Trong đó, phương pháp sử dụng mạng noron tích chập sử dụng phổ biến đem lại hiệu tốt Do đó, nhóm em chọn đề tài: “ Nhận diện kí tự viết tay áp dụng mơ hình CNN “ để tìm hiểu xây dựng mơ hình giải tốn II Mơ tả tốn Tên đề tài: Nhận diện kí tự viết tay áp dụng mơ hình CNN * Mục đích: Nhận diện kí tự viết tay (số chữ Latin), từ ảnh đầu chụp đầu vào đưa kết kí tự dạng UNICODE * Yêu cầu: • Ảnh đầu vào ảnh chụp kí tự cần nhận diện, rõ nét, khơng bị khuyết thiếu • Ứng dụng đưa kết với độ xác cao, nhanh chóng, lỗi • Sử dụng mạng noron * Ứng dụng: Kết tốn ứng dụng nhận diện biển số xe, chấm thi trắc nghiệm,… TIEU LUAN MOI download : skknchat123@gmail.com moi nhat III Cơ sở lý thuyết phương pháp giải Trong phần chúng em xin trình bày qua kiến thức mà chúng em áp dụng vào để hoàn thành project Trong bao gồm kiến thức mạng nơ-ron nhiều lớp, thuật tốn lan truyền ngược, mơ hình mạng tích chập Và phương pháp giải tốn áp dụng bao gồm phương pháp xử lý ảnh xây dựng mơ hình nhận diện Cơ sở lý thuyết 1.1 Mạng noron giải thuật lan truyền ngược Ý tưởng mạng nơ-ron Một mạng nơ-ron đơn giản có cấu trúc sau: Cấu tạo mạng nơ ron bao gồm: - Các node: node thực phép tính tốn - Các kết nối: thực việc truyền tín hiệu từ node đến node khác Thông tin kết nối trọng số (weight) để mức độ tín hiệu mạnh hay yếu Dữ liệu đầu vào qua lớp mạng tính tốn đầu phù hợp Hình 1: Kiến trúc mạng nơ-ron đơn giản Nguồn: Mạng nơ-ron nhiều lớp Trong thực tế áp dụng, người ta thường dùng mạng nơ-ron bao gồm nhiều lớp kề nhau.Các node hai lớp kề liên kết với Đầu lớp trước trở thành đầu vào lớp Những lớp mạng (tức trừ input output) gọi chung hidden layers TIEU LUAN MOI download : skknchat123@gmail.com moi nhat TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Hinh 2: Cấu trúc mạng nơ-ron nhiều lớp Nguồn: Natural Language In Action.Hobson Lane, Cole Howard, Hannes Max Hapke (2019) TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Hàm kích hoạt Hoạt động tính tốn node minh họa thơng qua mơ hình đơn giản Perceptron đây: -Vector trọng số Từ sơ đồ Hình 3, ta có: kết nối đặc w = [w0, w1, w2, …,wn] -Đầu vào vector Mỗi thuộc tính đầu vào xi gắn với trưng trọng số wi Hinh 3: Mơ hình Perceptron Nguồn: Natural Language In Action Hobson Lane, Cole Howard, Hannes Max Hapke (2019) Mỗi node thực tính tốnwxT Sau tích vơ hướng đưa vào hàm kích hoạt f(x)f.xHàm kích hoạtnếuởđâywxsẽTbiến>t dạng wxT chuyển đổi ảnh màu ảnh xám (grayscale converting) Tương tự ảnh màu, ảnh xám có kích thước 800 pixel * 600 pixel, biểu diễn dạng ma trận kích thước 600 * 800 (số hàng*số cột) Tuy nhiên pixel ảnh xám biểu diễn cần giá trị nguyên khoảng [0;255] thay (r,g,b) ảnh màu Giá trị màu đen, 255 màu trắng giá trị pixel gần tối gần 255 sáng - Để giữ lại chi tiết loại bỏ chi tiết thừa ảnh =>biến đổi ảnh dạng nhị phân – đen trắng (binary) - Ảnh đen trắng ảnh biểu diễn ma trận chiều, phần tử của ma trận có giá trị – màu đen 255 – màu trắng - Để chuyển ảnh sang dạng nhị phân ta chọn ngưỡng (threshold) để xác định đâu điểm ảnh đen đâu điểm ảnh trắng Nếu giá trị ảnh xám lớn ngưỡng threshold, điểm ảnh trắng ngược lại Gọi ảnh xám Gray, ảnh đen trắng cần xác định BW, tọa độ pixel hình (x,y), ta có - BW(x,y) = 255 Gray(x,y) => threshold - BW(x,y) = Gray(x,y) Mục tiêu: Ảnh đầu vào ứng dụng ảnh kĩ thuật số (digital image), sau q trình xử lí ảnh, ảnh có dạng giống dạng ảnh EMNIST để tăng tối đa tính tương đồng độ phân giải, cường độ màu sắc => tăng độ xác cho dự đoán Để thực việc chúng em sử dụng thư viện cv2 numpy Python để thực bước xử lý Các bước xử lí ảnh trích chọn đặc trưng: - Ảnh load từ thiết bị: - Chuyển ảnh từ ảnh màu qua ảnh xám 13 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat - Làm sắc nét ảnh, loại bỏ thành phần tần số cao nhiễu hay làm trơn ảnh, chuyển ảnh dạng binary dạng đen chữ trắng - Tìm nét làm đậm nét - Xác định vùng chứa kí tự : Xác định số lượng kí tự có ảnh, sau tìm lọc contours - Cắt Resize lại ảnh crop 28pixel*28pixel 14 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 2.3 Mô hình mạng CNN Cấu trúc mơ hình Mơ hình gồm: - Phần trích chọn đặc trưng: (Conv – Max Pooling – Batch Normalization) Trong đó, bộ: Conv: có sử dụng zero padding, kernel: 32x3x3, stride = 1, activation function: ReLU Max Pooling: kích thước cửa sổ: 2x2, stride = BatchNormalization: sử dụng tham số mặc định Keras - Phần dự đoán: (Flatten – Dense – Dropout – Dense - Dense) Dense: sử dụng activation function: ReLU Dropout: xác suất loại bỏ = 0.5 Hinh Mơ hình CNN để nhận diện Q trình xây dựng mơ hình 15 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat - Lựa chọn số cặp (Conv-Maxpooling): Lựa chọn hàm kích hoạt: Ở chúng em có xét hàm kích hoạt ReLU, LeakyReLU, Do hàm có ưu nhược điểm riêng nên chúng em chọn cách thử nghiệm để chọn hàm cho kết tốt Ở cho thấy, hàm ReLU cho kết tốt (xấp xỉ hàm LeakyReLU cao hẳn hàm tanh) Hàm ReLU có cơng thức f(x)như sau:=max(0, x) 16 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Hinh 8: Hàm ReLU Nguồn: https://www.mygreatlearning.com/blog/relu-activation-function/ Ưu điểm ReLU tính tốn nhanh hàm kích hoạt khác Hơn nữa, ReLU biến đầu lớp sử dụng thành vector có nhiều phần tử (thưa) Điều giúp mơ hình giảm khả overfitting loại bỏ nhiễu Và ReLU không gây tượng gradient ( vanishing gradient problem) hàm sigmoid khơng thu hẹp khoảng giá trị đầu vào Tuy nhiên, hàm ReLU có hạn chế bùng nổ gradient Nó khiến mơ hình phải cập nhật trọng số đáng kể sau lần lan truyền ngược Điều khiến mơ hình tính ổn định Ngồi ra, mơ hình sử dụng ReLU gặp phải tình trạng chết Một nút bị hoàn toàn tác dụng đầu âm LeakyReLU khắc phục điều nhiên thử nghiệm thấy ReLU cho kết tốt 17 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat - Hàm mát: Cross-entropy Chúng em sử dụng hàm mát cross-entropy Cơng thức sau: t Trong đó: nhãn x i, ngư i C i xác suất để s : Tập nhãn Ưu điểm hàm cross -entropy trừng phạt/thưởng dựa xác suất nhãn xác liệu, không bị ảnh hưởng xác suất dự đốn nhãn mà liệu khơng thuộc vào Ngồi ra, sử dụng hàm logarit, nên trừng phạt nặng mơ hình dự đốn xác suất vào nhãn thực tế bé Ở mơ hình này, chúng em sử dụng kết hợp hàm cross-entropy kết hợp với hàm softmax Việc kết hợp thường sử dụng mơ hình mạng CNN hàm softmax giúp biến kết tính tốn từ mạng dạng xác suất Hàm softmax tính sau: Hàm softmax giúp đưa kết tính tốn từ lớp mạng trở giá trị thuộc khoảng (0, 1) Tổng đầu tính tốn nhãn Do đó, kết softmax xem xác suất để ảnh rơii=pvào,từng ký tự Với liệu đầu vào có nhãn thực tế hàm mát cross entropy sử dụng kết hợp với hàm softmax tính sau: - Lựa chọn thuật toán tối ưu: 18 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Từ thử nghiệm, chúng em chọn thuật tốn tối ưu cho mơ hình thuật toán Adam Đây thuật toán sử dụng nhiều Adam thuật toán tối ưu có khả thay đổi learning rate cho tham số q trình tối ưu Nó kết hợp thuật toán tối ưu: RMSprop Stochastic Gradient Descent sử dụng momemtum Hinh 9.Thuật toán Adam Nguồn:MỗiAdam:epochA MethodsẽthựcforhiệnStochastictích Optimization.lũynhưsau:Diederik P Kingma, Jimmy Ba(2015) Trong đó, m tích lũy giúp cho q trình tối ưu thoát khỏi điểm cực tiểu địa phương (hoặc điểm dạng yên ngựa) t tích lũy để điều chỉnh learning rate cho bướct cập nhật nhỏ phù hợpv với gradient lớn (càng dốc) phải cập nhật bước nhỏ m v Tuy nhiên khởi tạo vector nên bước đầu giá trị tích lũy t nhỏ thơng số tích lũy scale sau: Từ đó, learning rate cập nhật sau: 19 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 2.4 Đánh giá mơ hình Mơ hình có số lượng tham số là: 754,735 Độ xác tập test gồm 18800 ảnh : 0.8893 Giá trị hàm mát: 0.3877 Ngồi chúng em cịn thực test tập gồm 100 ảnh thực tế có dạng ma trận chữ để kiểm tra kết hợp hiệu khâu xử lý ảnh khâu dự đoán Cách thức chúng em đánh giá score= tổng số ký tự dự đoán đúngthứ tự tổng số ký tự 100 ảnh Kết cho độ xác 72,4% 20 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat IV Xây dựng ứng dụụ̣ng nhận dạng Ứng dụng viết Python chạy tảng Python 3.8.6, sử dụng thư viện sau: - Để chạy ứng dụng nhận diện cần cài đặt thư viện sau: PyQt5, tensorflow, keras, cv2, numpy, typing - Huấn luyện mơ hình, chúng em sử dụng thêm thư viện sau: pandas, sklearn, typing Để sử dụng ứng dụng trước tiên cần cài đặt môi trường chạy Python: https://www.python.org/ftp/python/3.9.1/python-3.9.1amd64.exe thư viện sử dụng cmd: pip install Ứng dụng không cần cài đặt, cần chạy file gui.py Giao diện ứng dụng: Để sử dụng người dùng load file ảnh cần nhận dạng từ thiết bị nút Open, nhấn Run để nhận dạng Kết hiển thị phần RESULT 21 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 22 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat V Đề xuất phát triển - Sử dụng thuật tốn object-detection để tìm kiếm vùng chứa kí tự - Cải tiến mơ hình nhận dạng từ, đoạn văn - Điều chỉnh mơ hình để nâng cao độ xác tốc độ nhận dạng 23 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Mã nguồn tài liệu tham khảo [1]Lý thuyết Convolutional Layer, Max Pooling Layer: Fei-Fei Li(2020) CS231n: Convolutional Neural Networks for Visual Recognition | Spring 2020 | Convolutional Neural Networks (CNNs / ConvNets), [Online Course] Standford University [2]Lý thuyết Batch Normalization Layer: Sergey Ioffe, Christian Szegedy(2015) Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift [Paper] Retrieved from: https://arxiv.org/abs/1502.03167 [3] Lý thuyết thuật toán Adam: Diederik P Kingma, Jimmy Ba(2015) Adam: A Method for Stochastic Optimization [Paper] Retrieved from https://arxiv.org/abs/1412.6980 [4] Lý thuyết thuật toán lan truyền ngược: Casper Hansen (2019) Neural Networks: Feedforward and Backpropagation Explained & Optimization [Blog post] Retrieved from https://mlfromscratch.com/neural-networks-explained/#/ [5] Cách thức thử nghiệm mơ hình: Chris Deotte (2019) How to choose CNN Architecture MNIST [Online] Retrieved from https://www.kaggle.com/cdeotte/how-tochoose-cnn-architecture-mnist [6] Bộ liệu EMNIST: Chris Crawford(2017) EMNIST (Extended MNIST) [Online] Retrieved from https://www.kaggle.com/crawford/emnist -HẾT - 24 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat ... xây dựng mơ hình giải tốn II Mơ tả tốn Tên đề tài: Nhận diện kí tự viết tay áp dụng mơ hình CNN * Mục đích: Nhận diện kí tự viết tay (số chữ Latin), từ ảnh đầu chụp đầu vào đưa kết kí tự dạng UNICODE... nhiều phương pháp khác Trong đó, phương pháp sử dụng mạng noron tích chập sử dụng phổ biến đem lại hiệu tốt Do đó, nhóm em chọn đề tài: “ Nhận diện kí tự viết tay áp dụng mơ hình CNN “ để tìm hiểu... đầu vào ảnh chụp kí tự cần nhận diện, rõ nét, khơng bị khuyết thiếu • Ứng dụng đưa kết với độ xác cao, nhanh chóng, lỗi • Sử dụng mạng noron * Ứng dụng: Kết toán ứng dụng nhận diện biển số xe,

Ngày đăng: 27/10/2022, 09:02

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

Tài liệu liên quan