1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) 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 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

Nội dung

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 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 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 tố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 * 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,… 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 để hồn thành project Trong bao gồm kiến thức mạng nơ-ron nhiều lớp, thuật toán lan truyền ngược, mơ hình mạng tích chập Và phương pháp giải toá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 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) 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ó - 12 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ự đố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: 13 - Ảnh load từ thiết bị: - Chuyển ảnh từ ảnh màu qua ảnh xám 14 - 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 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 - 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 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ị hồn tồ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 - 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ự đoá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 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 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 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 22 Đề xuất phát triển V - 23 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 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 ... 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 tốn ứng dụng nhận diện biển số xe,

Ngày đăng: 03/12/2022, 09:04

HÌNH ẢNH LIÊN QUAN

ÁP DỤNG MƠ HÌNH CNN - (TIỂU LUẬN) 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
ÁP DỤNG MƠ HÌNH CNN (Trang 1)
Hình 1: Kiến trúc một mạng nơ-ron đơn giản. - (TIỂU LUẬN) 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
Hình 1 Kiến trúc một mạng nơ-ron đơn giản (Trang 4)
Hoạt động tính tốn tại mỗi node được minh họa thơng qua một mơ hình đơn giản Perceptron dưới đây: - (TIỂU LUẬN) 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
o ạt động tính tốn tại mỗi node được minh họa thơng qua một mơ hình đơn giản Perceptron dưới đây: (Trang 7)
Lan truyền ngược cho phép mơ hình mạng có thể cập nhậ tw và b để giảm giá trị của hàm C - (TIỂU LUẬN) 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
an truyền ngược cho phép mơ hình mạng có thể cập nhậ tw và b để giảm giá trị của hàm C (Trang 8)
1.2. Mơ hình CNN - (TIỂU LUẬN) 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
1.2. Mơ hình CNN (Trang 11)
Trong mơ hình mạng nơ-ron ở trên, mỗi node của lớp sau sẽ được kết nối toàn bộ với các node của lớp trước - (TIỂU LUẬN) 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
rong mơ hình mạng nơ-ron ở trên, mỗi node của lớp sau sẽ được kết nối toàn bộ với các node của lớp trước (Trang 11)
Từ Hình 5 ta thấy output của Conv Layer có kích thước dài-rộng khác với của input (nó bị thu nhỏ lại) - (TIỂU LUẬN) 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
Hình 5 ta thấy output của Conv Layer có kích thước dài-rộng khác với của input (nó bị thu nhỏ lại) (Trang 12)
Việc sử dụng BatchNormalization có ưu điểm đó là, khi mơ hình thực hiện lan truyền ngược, việc cập nhật trọng số của các lớp trước sẽ không ảnh hưởng nhiều đến kết quả của  lớp thực hiện Batch Normalization và từ đó cũng khơng ảnh hưởng nhiều đến việc cập - (TIỂU LUẬN) 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
i ệc sử dụng BatchNormalization có ưu điểm đó là, khi mơ hình thực hiện lan truyền ngược, việc cập nhật trọng số của các lớp trước sẽ không ảnh hưởng nhiều đến kết quả của lớp thực hiện Batch Normalization và từ đó cũng khơng ảnh hưởng nhiều đến việc cập (Trang 13)
Chức năng của Dropout là giúp mơ hình giảm khả năng bị overfitting. Đồng thời huấn luyện một mơ hình sử dụng Dropout nhiều lần sẽ cho ra kết quả mỗi lần khác nhau, điều này cũng giống như việc thử nghiệm nhiều mơ hình. - (TIỂU LUẬN) 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
h ức năng của Dropout là giúp mơ hình giảm khả năng bị overfitting. Đồng thời huấn luyện một mơ hình sử dụng Dropout nhiều lần sẽ cho ra kết quả mỗi lần khác nhau, điều này cũng giống như việc thử nghiệm nhiều mơ hình (Trang 14)
2.3. Mơ hình mạng CNN - (TIỂU LUẬN) 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
2.3. Mơ hình mạng CNN (Trang 17)
Ở trong mơ hình này, chúng em cũng sử dụng kết hợp hàm cross-entropy kết hợp với hàm softmax - (TIỂU LUẬN) 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
trong mơ hình này, chúng em cũng sử dụng kết hợp hàm cross-entropy kết hợp với hàm softmax (Trang 20)
Từ thử nghiệm, chúng em chọn thuật toán tối ưu cho mơ hình là thuật tốn Adam. Đây cũng là một thuật toán được sử dụng nhiều hiện nay. - (TIỂU LUẬN) 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
th ử nghiệm, chúng em chọn thuật toán tối ưu cho mơ hình là thuật tốn Adam. Đây cũng là một thuật toán được sử dụng nhiều hiện nay (Trang 21)
- Huấn luyện mô hình, chúng em sử dụng thêm các thư viện sau: pandas, sklearn, typing. - (TIỂU LUẬN) 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
u ấn luyện mô hình, chúng em sử dụng thêm các thư viện sau: pandas, sklearn, typing (Trang 23)

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

TÀI LIỆU LIÊN QUAN

w