1. Trang chủ
  2. » Tất cả

Xây dựng hệ thống nhận diện chữ viết tay

18 3 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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 1,27 MB

Nội dung

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH – VIỄN THƠNG BÁO CÁO CUỐI KÌ XÂY DỰNG HỆ THỐNG NHẬN DIỆN CHỮ VIẾT TAY NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH MỤC LỤC LỜI MỞ ĐẦU Chương GIỚI THIỆU ĐỀ TÀI I Giới thiệu nhận dạng chữ viết tay II Cách tiếp cận giải toán III Tổng quan phương pháp huấn luyện : Chương CƠ SỞ LÝ THUYẾT I Mạng nơron tích chập CNN II Lý thuyết tiền xử lí ảnh Chương MỤC TIÊU , NHỮNG KHĨ KHĂN VÀ PHƯƠNG PHÁP ỨNG DỤNG MƠ HÌNH CNN TRONG NHẬN DẠNG CHỮ VIẾT TAY 12 I Mục tiêu đề tài 12 II Những khó khăn đề tài 12 III Phương pháp giải đề 12 IV Ứng Dụng CNN nhận dạng chữ viết tay 13 V Cài đặt sử dụng phương pháp CNN 14 VI Lựa chọn thông số kết đạt 14 VII Phương pháp đánh giá dự kiến sử dụng 16 VIII Kết mơ hình 16 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 17 LỜI MỞ ĐẦU Nhận dạng toán xuất cách lâu thu hút nhiều quan tâm, nghiên cứu Đặc biệt vài thập niên gần đây, thúc đẩy q trình tin học hố lĩnh vực, tốn nhận dạng khơng cịn dừng lại mức độ nghiên cứu mà trở thành lĩnh vực để áp dụng vào thực tế Các toán nhận dạng ứng dụng thực tế tập trung vào nhận dạng mẫu, nhận dạng tiếng nói nhận dạng chữ Trong số này, nhận dạng chữ toán quan tâm nhiều đạt nhiều thành tựu rực rỡ Các ứng dụng có ý nghĩa thực tế lớn kể đến như: nhận dạng chữ in dùng trình lưu sách báo thư viện, nhận dạng chữ viết tay dùng việc phân loại thư bưu điện, toán tiền nhà băng lập thư viện sách cho người mù (ứng dụng có nghĩa: scan sách bình thường, sau cho máy tính nhận dạng trả dạng tài liệu mà người mù đọc được) Xuất phát từ yêu cầu thực tế, cần có nghiên cứu vấn đề Chính tơi chọn đề tài nhận dạng ký tự viết tay làm đồ án môn học với mong muốn phần áp dụng vào toán thực tế Bài toán đãđặt phải giải yêu cầu sau: ✓ Nhận dạng ký tự từ ảnh đầu vào ✓ Trích chọn đặc trưng ảnh ✓ Tiến hành nhận dạng với thuật toán CNN Với yêu cầu đặt trên, cấu trúc khóa luận bao gồm nội dung sau đây: ➢ Chương 1: Giới thiệu đề tài Giới thiệu toán nhận dạng chữ viết tay, tình hình nghiên cứu, quy trình chung để giải tốn phương pháp điển hình việc huấn luyện nhận dạng, phạm vi đề tài ➢ Chương 2:CƠ SỞ LÝ THUYẾT VỀ CNN Trình bày khái niệm bản, thuật tốn mơ hình CNN ➢ Chương 3: ỨNG DỤNG MƠ HÌNH CNN TRONG NHẬN DẠNG CHỮ VIẾT TAY Giới thiệu thuật toán nhận dạng Các bước cài đặt thuật tốn Những khó khăn giải pháp khắc phục Chương GIỚI THIỆU ĐỀ TÀI I Giới thiệu nhận dạng chữ viết tay Nhận dạng chữ in: giải gần trọn vẹn (sản phẩm FineReader 9.0 hãng ABBYY nhận dạng chữ in theo 192 ngôn ngữ khác nhau, phần mềm nhận dạng chữ Việt in VnDOCR 4.0 Viện Công nghệ Thơng tin Hà Nội nhận dạng tài liệu chứa hình ảnh, bảng văn với độ xác 98%) Nhận dạng chữ viết tay: vấn đề thách thức lớn nhà nghiên cứu Bài toàn chưa thể giải trọn vẹn hồn tồn phụ thuộc vào người viết biến đổi đa dạng cách viết Hướng tiếp cận nhóm nghiên cứu nhận dạng dựa thông tin tĩnh Dựa tảng giải thuật rút trích thơng tin theo chiều, tối ưu bước để đạt độ xác cao việc nhận dạng ký tự (khoảng 95%) Tuy nhiên sản phẩm chưa nhận dạng chữ viết tay tiếng Việt Như thấy nhận dạng chữ viết tay, đặc biệt chữ viết tay tiếng Việt hướng nghiên cứu quan tâm nhiều vấn đề cần phải hoàn thiện II Cách tiếp cận giải tốn ẢNH KÍ TỰ TIỀN XỬ LÍ TRÍCH CHỌN ĐẶC TRƯNG HUẤN LUYỆN KÍ TỰ ĐƯỢC NHẬN DẠNG HẬU XỬ LÍ NHẬN DẠNG Nhận dạng chữ viết tay thường bao gồm bốn giai đoạn: tiền xử lý (preprocessing), trích chọn đặc trưng(representation), huấn luyện nhận dạng (training and recognition), hậu xử lý (postprocessing) - Tiền xử lý: giảm nhiễu cho lỗi trình quét ảnh, hoạt động viết người, chuẩn hóa liệu nén liệu - Biểu diễn, rút trích đặc điểm: giai đoạn đóng vai trị quan trọng nhận dạng chữ viết tay Để tránh phức tạp chữ viết tay tăng cường độ xác, ta cần phải biểu diễn thông tin chữ viết dạng đặc biệt cô đọng hơn, rút trích đặc điểm riêng nhằm phân biệt ký tự khác - Huấn luyện nhận dạng: phương pháp điển hình so trùng mẫu, dùng thống kê, mạng nơ-ron,trí tuệ nhân tạo hay dùng phương pháp kết hợp phương pháp - Hậu xử lý: sử dụng thông tin ngữ cảnh để giúp tăng cường độ xác, dùng từ điển liệu III Tổng quan phương pháp huấn luyện : Để huấn luyện cho mơ hình nhận dạng chữ viết tay , có nhiều phương pháp , đa số phương pháp chung sở : Xử lí ảnh đầu vào , trích chọn đặc trưng ảnh, huấn luyện nhận dạng chữ viết Từ qua giai đoạn hậu xử lí , ta đưa đầu vào chữ viết tay , mơ hình nhận dạng cho kết chữ viết Các phương pháp phổ biến : Markov ẩn , KNN , Máy vector tựa ( SVM ), … Trong mơ hình , nhóm sử dụng phương pháp CNN để huấn luyện cho trình nhận dạng chữ viết tay ( hand writing detection ) Chương I CƠ SỞ LÝ THUYẾT Mạng nơron tích chập CNN Convolutional Neural Network (CNN – Mạng nơ-ron tích chập) mơ hình Deep Learning tiên tiến Nó giúp cho xây dựng hệ thống thông minh với độ xác cao CNN sử dụng nhiều toán nhận dạng object ảnh II Lý thuyết tiền xử lí ảnh Để tìm hiểu thuật tốn CNN sử dụng rộng rãi cho việc nhận dạng (detection), tìm hiểu thuật tốn Convolutional gì? Là cửa sổ trượt (Sliding Windows) ma trận mơ tả hình dưới: Các convolutional layer có parameter(kernel) học để tự điều chỉnh lấy thơng tin xác mà khơng cần chọn feature Trong hình ảnh ví dụ trên, ma trận bên trái hình ảnh trắng đen số hóa Ma trận có kích thước 5×5 điểm ảnh có giá trị giao điểm dòng cột Convolution hay tích chập nhân phần tử ma trận Sliding Window hay gọi kernel, filter feature detect ma trận có kích thước nhỏ ví dụ 3×3 Convolution hay tích chập nhân phần tử bên ma trận 3×3 với ma trận bên trái Kết ma trận gọi Convoled feature sinh từ việc nhận ma trận Filter với ma trận ảnh 5×5 bên trái Cấu trúc mạng CNN: Mạng CNN tập hợp lớp Convolution chồng lên sử dụng hàm nonlinear activation ReLU để kích hoạt trọng số node Mỗi lớp sau thông qua hàm kích hoạt tạo thơng tin trừu tượng cho lớp Mỗi lớp sau thơng qua hàm kích hoạt tạo thông tin trừu tượng cho lớp Trong mơ hình mạng truyền ngược (feedforward neural network) neural đầu vào (input node) cho neural đầu lớp Mơ hình gọi mạng kết nối đầy đủ (fully connected layer) hay mạng tồn vẹn (affine layer) Cịn mơ hình CNNs ngược lại Các layer liên kết với thông qua chế convolution Layer kết convolution từ layer trước đó, nhờ mà ta có kết nối cục Như neuron lớp sinh từ kết filter áp đặt lên vùng ảnh cục neuron trước Mỗi lớp sử dụng filter khác thơng thường có hàng trăm hàng nghìn filter kết hợp kết chúng lại Ngồi có số layer khác pooling/subsampling layer dùng để chắt lọc lại thông tin hữu ích (loại bỏ thơng tin nhiễu) Trong trình huấn luyện mạng (traning) CNN tự động học giá trị qua lớp filter dựa vào cách thức mà bạn thực Ví dụ tác vụ phân lớp ảnh, CNNs cố gắng tìm thông số tối ưu cho filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features Layer cuối dùng để phân lớp ảnh Trong mơ hình CNN có khía cạnh cần quan tâm tính bất biến (Location Invariance) tính kết hợp (Compositionality) Với đối tượng, đối tượng chiếu theo gốc độ khác (translation, rotation, scaling) độ xác thuật toán bị ảnh hưởng đáng kể Pooling layer cho bạn tính bất biến phép dịch chuyển (translation), phép quay (rotation) phép co giãn (scaling) Tính kết hợp cục cho ta cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao trừu tượng thông qua convolution từ filter Đó lý CNNs cho mơ hình với độ xác cao Cũng giống cách người nhận biết vật thể tự nhiên Mạng CNN sử dụng ý tưởng bản:  Các trường tiếp nhận cục (local receptive field)  Trọng số chia sẻ (shared weights)  Tổng hợp (pooling) Trường tiếp nhận cục (local receptive field) Đầu vào mạng CNN ảnh Ví dụ ảnh có kích thước 28×28 tương ứng đầu vào ma trận có 28×28 giá trị điểm ảnh ô ma trận Trong mơ hình mạng ANN truyền thống kết nối neuron đầu vào vào tầng ảnh Tuy nhiên CNN không làm mà kết nối vùng nhỏ neuron đầu vào filter có kích thước 5×5 tương ứng (28- + 1) 24 điểm ảnh đầu vào Mỗi kết nối học trọng số neuron ẩn học bias Mỗi vùng 5×5 gọi trường tiếp nhận cục Một cách tổng quan, ta tóm tắt bước tạo hidden layer cách sau: Tạo neuron ẩn lớp ẩn Dịch filter qua bên phải cột tạo neuron ẩn thứ với toán nhận dạng ảnh người ta thường gọi ma trận lớp đầu vào feature map, trọng số xác định đặc trương shared weight độ lệch xác định feature map shared bias Như đơn giản qua bước có feature map Tuy nhiên nhận dạng ảnh cần nhiều feature map Như vậy, local receptive field thích hợp cho việc phân tách liệu ảnh, giúp chọn vùng ảnh có giá trị cho việc đánh giá phân lớp Trọng số chia sẻ (shared weight and bias) Đầu tiên, trọng số cho filter (kernel) phải giống Tất nơ-ron lớp ẩn đầu phát xác feature tương tự vị trí khác hình ảnh đầu vào Chúng ta gọi việc map từ input layer sang hidden layer feature map Một convolutional layer bao gồm feature map khác Mỗi feature map giúp detect vài feature ảnh Lợi ích lớn trọng số chia sẻ giảm tối đa số lượng tham số mạng CNN Lớp tổng hợp (pooling layer) Lớp pooling thường sử dụng sau lớp convulational để đơn giản hóa thơng tin đầu để giảm bớt số lượng neuron 10 Thủ tục pooling phổ biến max-pooling, thủ tục chọn giá trị lớn vùng đầu vào 2×2 Như qua lớp Max Pooling số lượng neuron giảm phân nửa Trong mạng CNN có nhiều Feature Map nên Feature Map cho Max Pooling khác Chúng ta thấy Max Pooling cách hỏi xem đặc trưng đặc trưng đặc trưng Ngồi Max Pooling cịn có L2 Pooling Cuối ta đặt tất lớp lại với thành CNN với đầu gồm neuron với số lượng tùy toán lớp cuối kết nối mạng lớp đầy đủ kết nối (fully connected layer) Lớp nối nơron từ lớp max pooled tới nơron tầng 11 Cách chọn tham số cho CNN  Số convolution layer: nhiều convolution layer performance cải thiện Sau khoảng layer, tác động giảm cách đáng kể  Filter size: thường filter theo size 5×5 3×3  Pooling size: thường 2×2 4×4 cho ảnh đầu vào lớn  Cách cuối thực nhiều lần việc train test để chọn param tốt Chương MỤC TIÊU , NHỮNG KHĨ KHĂN VÀ PHƯƠNG PHÁP ỨNG DỤNG MƠ HÌNH CNN TRONG NHẬN DẠNG CHỮ VIẾT TAY Mục tiêu đề tài I Đề tài nhóm nhận dạng kí tự viết tay mạng nơron , mục tiêu đề : Nhận dạng hình ảnh kí tự viết tay từ ảnh đầu vào với độ xác cao (>95%) Những khó khăn đề tài II Để đáp ứng mục tiêu đặt đề tài ,sau triển khai thực , nhóm nhận thấy khó khăn toán sau :  Ảnh đầu vào kí tự bị đứt nét  Kích thước kí tự to nhỏ khác  Những kí tự gần giống Phương pháp giải đề III Để giải vấn đề , nhóm lên ý tưởng sau : - Đầu tiên vấn đề kí tự bị đứt nét kí tự gần giống , ví dụ : O D , E F Chúng ta sử dụng thuật tốn CNN xử lí, trích xuất đặc trưng ảnh , từ có đặc trưng kí tự qua việc xử lí hình ảnh Huấn luyện mơ hình với tập liệu đủ lớn với label cho kí tự , từ giúp mơ hình phân loại kí tự đầu vào - Thứ hai , với vấn đề kích thước kí tự to nhỏ khác phương pháp đặt tìm kiếm lượng liệu đủ lớn để train cho mơ hình , qua cải thiện độ xác 12 IV Ứng Dụng CNN nhận dạng chữ viết tay CNN sử dụng để trích xuất tính hình ảnh cách sử dụng nhiều lớp lọc Đầu tiên , đưa ảnh vào , đưa qua lọc Conv2D lấy tích chập , theo sau lớp Maxpool sử dụng để giảm số lượng đặc trưng trích xuất Cuối đầu lớp Maxpool lớp tích chập làm phẳng thành vectơ có chiều lớp Flatten cung cấp đầu vào cho lớp Dense Lớp Dense có nhiệm vụ đưa liệu đầu vào từ lớp Flatten thành 26 node tương ứng 26 class từ A – Z Sử dụng hàm softmax tính tốn xác xuất xảy từ liệu với class đưa lựa chọn với xác xuất cao Sau ta biên dịch làm cho phù hợp với mơ hình Biên dịch mơ hình, xác định hàm tối ưu hàm mát từ đem sử dụng để điều chỉnh cho mơ hình Hàm tối ưu hóa sử dụng Adam, kết hợp thuật tốn tối ưu hóa RMSprop & Adagram Với ảnh đầu vào có 784 liệu pixel , ta định hình dạng 28x28 Sau chuyển đổi hình ảnh từ BGR sang mức xám áp dụng ngưỡng cho để dự đốn, điều giữ cho hình ảnh mịn mà khơng có loại màu xám mờ hình ảnh , dẫn đến dự đoán sai 13 Bây đưa dự đốn cách sử dụng hình ảnh xử lý sử dụng hàm np.argmax () để lấy số lớp có xác suất dự đốn cao Cài đặt sử dụng phương pháp CNN V Các module thư viện sử dụng mơ hình bao gồm:  Python (3.8)  Anaconda  Spyder (4.1.5) Các module bắt buộc :  Numpy  cv2 (openCV)  Keras  Tensorflow (Keras sử dụng TensorFlow phụ trợ cho số xử lý hình ảnh)  Matplotlib  Pandas  Cùng tập liệu : Tập liệu cho mơ hình chứa 372450 hình ảnh bảng chữ có kích thước 28 × 28, tất hiển thị dạng tệp CSV Nguồn liệu từ : https://www.kaggle.com/sachinpatel21/az-handwritten-alphabets-incsv-format Tập liệu chia làm tập train, test Với tập train 70% ,tương ứng 260715 ảnh 30% test 111735 ảnh Tập train tiếp tục chia thành tập train validation với tỷ lệ 8:2 VI Lựa chọn thông số kết đạt Ở , nhóm sử dụng hàm EarlyStopping để dừng thuật toán trước hàm mát đạt giá trị nhỏ, giúp tránh overfitting Dựa vào , thuật tốn tự dừng lại train mơ hình với epoch = 10 để có kết tốt cho mơ hình 14 Ở , mơ hình train với epoch =10 batch size =200 Các kết đạt chạy mơ hình với tập test : 15 Ở mơ hình nhận diện kí tự viết tay với độ xác cao VII Phương pháp đánh giá dự kiến sử dụng Chúng sử dụng phương pháp đánh giá Confusion Matrix để đánh giá độ xác cho mơ hình Dựa cơng thức tính tốn Confusion Matrix , tính tốn để đánh giá độ xác cho mơ hình Kết đạt Score: 0.9954356289434824 , tương ứng với độ xác 99,54% đáp ứng mục tiêu đề cho mơ hình độ xác cao VIII Kết mơ hình Khi đưa ảnh kí tự viết tay vào mơ hình đưa dự đốn cho chữ 16 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Áp dụng phương pháp xử lí ảnh kết hợp phương pháp học máy , mơ hình nhóm xây dựng đáp ứng mục tiêu đề từ đầu : nhận diện kí tự viết tay với độ xác cao Tuy nhiên cịn số hạn chế nhận diện kí tự đơn lẻ chưa nhận diện chữ tiếng Việt Dựa vào đề tài mà nhóm làm , cần phát triển , tối ưu thuật toán để nhận diện chuỗi kí tự viết tay từ ảnh đầu vào Từ ứng dụng vào mơ hình dịch ngơn ngữ Để hồn thiện đề tài , nhóm xem tham khảo từ nguồn Internet Nguồn tham khảo : https://data-flair.training/blogs/handwritten-character-recognition-neural-network/ https://viblo.asia/p/nhan-dang-chu-cai-viet-tay-su-dung-deep-learning-GrLZDwNJKk0 https://www.kaggle.com/yairhadad1/cnn-for-handwritten-alphabets link file đính kèm: https://drive.google.com/file/d/1WDJAFkXJTi6fssT_rNIzKgyNUr56fE_8/view?usp=s haring 17 ... : nhận diện kí tự viết tay với độ xác cao Tuy nhiên số hạn chế nhận diện kí tự đơn lẻ chưa nhận diện chữ tiếng Việt Dựa vào đề tài mà nhóm làm , cần phát triển , tối ưu thuật tốn để nhận diện. .. ưu bước để đạt độ xác cao việc nhận dạng ký tự (khoảng 95%) Tuy nhiên sản phẩm chưa nhận dạng chữ viết tay tiếng Việt Như thấy nhận dạng chữ viết tay, đặc biệt chữ viết tay tiếng Việt hướng nghiên... TRONG NHẬN DẠNG CHỮ VIẾT TAY Giới thiệu thuật toán nhận dạng Các bước cài đặt thuật tốn Những khó khăn giải pháp khắc phục Chương GIỚI THIỆU ĐỀ TÀI I Giới thiệu nhận dạng chữ viết tay Nhận dạng chữ

Ngày đăng: 12/02/2023, 09:11

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

TÀI LIỆU LIÊN QUAN

w