nhận diện số viết tay

59 0 0
Tài liệu đã được kiểm tra trùng lặp
nhận diện số viết tay

Đ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

Trang 1

Báo cáo

NHẬN DIỆN SỐ VIẾT TAY

Giảng viên hướng dẫnThS Nguyễn Nhựt Quỳnh

Trang 2

Đặng Hào PhúĐặng Tấn Phát

Bùi Nguyễn Khôi NguyênNguyễn Nhật Duy

Nguyễn Huỳnh Thiên Quốc

Thành viên nhóm

21001162101265 210008921000362100802

Trang 3

LÝ DO CHỌN ĐỀ TÀI

Báo cáo

Nhận diện số viết tay đóng vai trò quan trọng trong quá trình học và công việc của lập trình viên Việc này bắt nguồn từ sự kết nối sâu sắc giữa việc viết tay và lập trình Lập trình viên thường phải viết code, ghi chú và vẽ sơ đồ trước khi thực hiện công việc trên máy tính Tính cơ bản và cần thiết

của việc này là không thể phủ nhận, bởi nhận diện số viết tay giúp tự động hóa và tối ưu hóa quá trình chuyển đổi từ ý tưởng trên giấy thành mã

nguồn hoạt động trên máy tính Ngoài ra, công nghệ này còn có khả năng ứng dụng rộng rãi trong nhiều lĩnh vực lập trình, từ việc phát triển ứng dụng di động đến xử lý ngôn ngữ tự nhiên và học máy Việc nghiên cứu và phát triển trong lĩnh vực này cũng khơi dậy sự sáng tạo và đổi mới, mở ra cơ hội cho việc tạo ra các sản phẩm và dịch vụ công nghệ mới, mang lại lợi ích to lớn cho cả lập trình viên và cộng đồng người dùng

Trang 4

NỘI DUNG

MÔ HÌNH TỔNG QUÁT CỦA MỘT HỆ

NHẬN DẠNG SỐ VIẾT TAY

Phần 1

TỔNG QUAN VỀ TRÍCH CHỌN ĐẶC TRƯNG VÀ MỘT SỐ

PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC

TRƯNG TRONG NHẬN DẠNG CHỮ

Phần 2

MÔ HÌNH MẠNG NEURAL TÍCH CHẬP

Phần 3

NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI

MẠNG NƠ RON TÍCH CHẬP

Phần 4

Trang 5

Phần 1

Báo cáo

MÔ HÌNH TỔNG QUÁT CỦA

MỘT HỆ NHẬN DẠNG SỐ VIẾT TAY

Trang 6

Tiền xử lý:

Giai đoạn này góp phần làm tăng độ chính xác phân lớp của hệ thống nhận dạng, tuy nhiên nó cũng làm cho tốc độ nhận dạng của hệ thống chậm lại.

Khối tiền xử lý bao gồm một số chức năng: Nhị phân hóa ảnh, lọc nhiễu, chuẩn hóa kích thước ảnh, làm trơn biên chữ, làm đầy chữ, làm mảnh chữ và xoay văn bản.

Phần 1

Trang 7

Nhị phân hóa ảnh:

Nhị phân hóa ảnh là một kỹ thuật chuyển ảnh đa cấp xám sang ảnh nhị phân Trong bất kỳ bài toán phân tích hoặc nâng cao chất lượng ảnh nào, nó cũng cần thiết để xác định các đối tượng quan trọng.

Nhị phân hóa ảnh phân chia ảnh thành hai phần: phần nền và phần chữ

Phần 1

Nhị phân hóa ảnh

Trang 8

Lọc nhiễu:

Nhiễu là một tập các điểm sáng thừa trên ảnh Khử nhiễu là một vấn đề thường gặp trong nhận dạng, nhiễu có nhiều loại (nhiễu đốm, nhiễu vệt, nhiễu đứt nét ).

Để khử các nhiễu đốm (các nhiễu với kích thước nhỏ), có thể sử dụng các phương pháp lọc

Tuy nhiên, với các nhiễu vệt (hoặc các nhiễu có kích thước lớn) thì các phương pháp lọc tỏ ra kém hiệu quả, trong trường hợp này sử dụng phương pháp khử các vùng liên thông nhỏ tỏ ra có hiệu quả hơn.

Phần 1

Nhiễu đốm và nhiễu vệt.

Trang 9

Chuẩn hóa kích thước ảnh:

Việc chuẩn hóa kích thước ảnh dựa trên việc xác định trọng tâm ảnh, sau đó xác định khoảng cách lớn nhất từ tâm ảnh đến các cạnh trên, dưới, trái, phải.

Thông qua khoảng cách lớn nhất đó, có thể xác định được một tỷ lệ co, giãn của ảnh gốc so với kích thước đã xác định.

Thuật toán chuẩn hóa kích thước ảnh luôn luôn đảm bảo được tính cân bằng khi co giãn ảnh.

Phần 1

Chuẩn hóa kích thước ảnh các ký tự “A” và “P”

Trang 10

Làm trơn biên số:

Đôi khi do chất lượng quét ảnh quá xấu, các đường biên của chữ không còn giữ được dáng điệu trơn tru ban đầu mà hình thành các đường răng cưa giả tạo

Trong các trường hợp này, phải dùng các thuật toán làm trơn biên để khắc phục.

Phần 1

(a) Ảnh gốc

(b) Ảnh sau khi được làm trơn biên

Trang 11

Làm đầy số:

Chức năng này được áp dụng với các ký tự bị đứt nét một cách ngẫu nhiên Ảnh đứt nét gây khó khăn cho việc tách chữ, dễ bị nhầm hai phần liên thông của ký tự thành hai ký tự riêng biệt, tạo nên sai lầm trong quá trình nhận dạng.

Phần 1

Làm mảnh số:

Đây là một bước quan trọng nhằm phát hiện khung xương của ký tự bằng cách loại bỏ dần các điểm biên ngoài của các nét Tuy nhiên, quá trình làm mảnh chữ rất nhạy cảm với việc khử nhiễu.

Trang 12

Điều chỉnh độ nghiên của văn bản:

Do trang tài liệu quét vào không cẩn thận hoặc do sự cố in ấn, các hàng chữ bị lệch so với lề chuẩn một góc α, điều này gây khó khăn cho công đoạn tách chữ, đôi khi không thể tách được Trong những trường hợp như vậy, phải tính lại tọa độ điểm ảnh của các chữ bị sai lệch.

Trang 13

Khối tách số:

• Khối này có nhiệm vụ tách từng ký tự ra khỏi văn bản Chỉ khi nào văn bản được tách và cô lập đúng từng ký tự đơn ra khỏi tổng thể văn bản thì hệ thống mới có thể nhận dạng đúng ký tự đó

• Sau đây là một số phương pháp tách số thông dụng: Tách số theo chiều nằm ngang và thẳng đứng

Phần 1

Trang 14

Phần 2

Báo cáo

TỔNG QUAN VỀ TRÍCH CHỌN ĐẶC TRƯNG VÀ MỘT SỐ PHƯƠNG PHÁP TRÍCH CHỌN

ĐẶC TRƯNG TRONG NHẬN DẠNG SỐ VIẾT

Trang 15

Trích chọn đặc trưng:

 Sau đây là một số phương pháp biến đổi và khai triển chuỗi thường được áp dụng trong lĩnh vực nhận dạng số:

• Biến đổi Fourier• Biến đổi Wavelet

• Phương pháp mô men

• Khai triển Karhunent-LoevePhần 2

Một tín hiệu liên tục thường chứa nhiều thông tin và chúng có thể sử dụng làm các đặc trưng cho mục đích phân lớp.

Một số biến dạng khác như các phép dịch chuyển và phép quay là bất biến dưới các phép biến đổi toàn cục và khai triển chuỗi

0101

Trang 16

Đặc trưng thông kê

Phần 2

Đặc trưng hình học và hình tháiĐặc trưng bất biến

Trang 17

Trích chọn đặc trưng từ ảnh đa cấp xám

Phần 2

Trích chọn đặc trưng từ ảnh nhị phânTrích chọn đặc trưng từ biên

ảnhTrích chọn đặc trưng từ biểu diễn vecter

0106

Trang 18

Phần 3

Báo cáo

MÔ HÌNH MẠNG NEURAL TÍCH CHẬP

Trang 19

Phần 301

Mạng Neural nhân tạo

Mạng Neural tích chập (Convolutional Neural Networks - CNN)

Trang 20

Phần 3 - Mạng Neural tích chập (CNN) Khái niệm CNN

CNN là viết tắt của "Convolutional Neural Network", một loại mô hình máy học được thiết kế đặc biệt để xử lý và nhận diện dữ liệu không gian như ảnh và video Một số ứng dụng như nhận diện vật thể, nhận diện khuôn mặt, phân loại ảnh, và nhiều nhiệm vụ khác liên quan đến xử lý ảnh.

CNN chỉ đơn giản gồm một vài layer của convolution kết hợp với các hàm kích hoạt phi tuyến như ReLU hay tanh để tạo ra thông tin trừu tượng hơn cho các layer tiếp theo.

Trang 21

Mô hình phân lớp với CNN

Mô hình mạng neural truyền thống

Trang 22

Phần 3 - Mạng Neural tích chập (CNN) Cấu trúc mạng Neural tích chập

Mạng neural tích chập là một dạng của mạng neural đa tầng, mỗi tầng thuộc một trong 3 dạng: tầng tích chập (C - convolution), lấy mẫu con (S - subsampling), kết nối đầy đủ (F - full connection) như hình sau.

Trang 23

Phần 3 - Mạng Neural tích chập (CNN) Convolution tích chập

Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số (Signal processing) Nhờ vào nguyên lý biến đổi thông tin, các nhà khoa học đã áp dụng kĩ thuật này vào xử lý ảnh và video số Để dễ hình dung, ta có thể xem tích chập như một cửa sổ trượt (sliding window) áp đặt lên một ma trận Ta có thể theo dõi cơ chế của tích chập qua hình minh họa bên.

Minh họa tích chập

Trang 24

Ảnh được phát hiện biên sau khi chập

Ảnh mờ sau khi tích chập

Trang 25

Phần 3 - Mạng Neural tích chập (CNN) Phương Pháp Tích Chập

 Phương pháp SAME Phương pháp FULL Phương pháp VALID

Trang 26

Phần 3 - Mạng Neural tích chập (CNN) Phương pháp VALID

Trang 27

Phần 3 - Mạng Neural tích chập (CNN) Phương pháp SAME

Trang 28

Phần 3 - Mạng Neural tích chập (CNN) Phương pháp FULL

Trang 29

Phần 3 - Mạng Neural tích chập (CNN)

Một số phép tích chập thường trong xử lý ảnh Blur (làm mờ ảnh)

 Sharpen (làm ảnh trở nên sắc nét hơn) Outline

Trang 30

Phần 3 - Mạng Neural tích chập (CNN) Blur

Minh họa kết quả tích chập trong kỹ thuật blur

Trang 31

Phần 3 - Mạng Neural tích chập (CNN) Sharpen

Minh họa kết quả tích chập trong kỹ thuật Sharpen

Trang 32

Phần 3 - Mạng Neural tích chập (CNN) Outline

Minh họa kết quả tích chập trong kỹ thuật Outline

Trang 33

Phần 3

Mạng Neural nhân tạo

Huấn luyện mạng Neural

Mạng Neural tích chập (Convolutional Neural Networks - CNN)

Trang 34

Phần 3 - Mạng Neural nhân tạo

Sơ lược về Neural sinh học

- Qua quá trình nghiên cứu về bộ não: Bộ não con người bao gồm khoảng 1011 neuron tham gia vào khoảng 1015 kết nối trên các đường truyền.

- Những thành phần chính trong cấu trúc

của một neural trong bộ não con người:

Soma , Dendrite , Axon , Synapse.

Mô hình neural sinh học

Trang 35

Phần 3 - Mạng Neural nhân tạo Mạng Neural nhân tạo

Mạng Nơron nhân tạo được thiết kế giống một số tính chất của mạng nơron sinh học Để mô phỏng các tế bào thần kinh và các khớp nối thần kinh của bộ não con người, trong mạng nơron nhân tạo cũng có các thành phần có vai trò tương tự các thành phần trong nơron thần kinh

Hai thành phần chính cấu tạo nên mạng nơron nhân tạo là các nơron và các synapse.

Weight Wi

Mô hình Neural nhân tạo ở mức đơn giản

Trang 36

Phần 3 - Mạng Neural nhân tạo Kiến trúc mạng

Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản tựa như Neural thần kinh của não người, hoạt động song song và được nối với nhau bởi các liên kết Neural Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các Neural.

Trang 37

Phần 3 - Mạng Neural nhân tạo Mạng một tầng

Các Neural trong cùng một tầng có hàm chuyển là không giống nhau, ta có thể định nghĩa các Neural trong một tầng có hàm chuyển khác nhau bằng cách kết hợp song song hai mạng Neural giống ở trên Cả hai sẽ có đầu vào giống nhau và mỗi mạng sản xuất ra vài đầu ra.

Trang 38

Phần 3 - Mạng Neural nhân tạo Mạng một tầng

Ma trận trọng số cho các phần tử trong vector đầu vào W:

Mô hình mạng một tầng

Trang 39

Phần 3 - Mạng Neural nhân tạo

Trang 40

Mô hình mạng đa tầng

Trang 41

Phần 3

03Huấn luyện mạng Neural

Mạng Neural nhân tạo

Mạng Neural tích chập (Convolutional Neural Networks - CNN) Mạng Neural nhân tạo

Trang 42

Phần 3 - Huấn luyện mạng Neural Phương pháp học

Mạng Neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người, do vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học Trong trạng thái học thông tin được lan truyền theo hai chiều nhiều lần để học các trọng số Có 3 kiểu học chính, mỗi kiểu học tương ứng với một nhiệm vụ học trừu tượng Đó là học có giám sát (có mẫu), học không giám sát và học tăng cường

Trang 43

Phần 3 - Huấn luyện mạng Neural02Huấn luyện mạng Neural

 Học có giám sát

 Học không giám sát Học tăng cường

Trang 44

Phần 3 - Huấn luyện mạng Neural02Huấn luyện mạng Neural

 Học có giám sát

 Học không giám sát

 Học tăng cường

Trang 45

Phần 3 - Huấn luyện mạng Neural

02Huấn luyện mạng Neural

 Học có giám sát

 Học không giám sát

 Học tăng cường

Trang 46

Phần 3 - Huấn luyện mạng Neural Thuật toán huấn luyện mạng

Thuật toán lan truyền ngược Back Propagation:

Huấn luyện mạng Neural nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình:

+ Quá trình truyền tuyến tính+ Quá trình truyền ngược

Trang 47

Phần 3 - Huấn luyện mạng Neural

Thuật toán huấn luyện mạng

Những hạn chế của phương pháp lan truyền ngược:

Mạng liệt: Xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn

Giá trị hiệu chỉnh trọng số gần 0, và quá trình huấn luyện có thể đi đến một trạng thái dừng ảo.

Cực tiểu địa phương: Bởi vì sự hạ độ dốc, mạng có thể bị “mắc bẫy” tại một

cực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh 

Trang 48

Phần 4

Báo cáo

NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NEURAL TÍCH CHẬP

Trang 49

Phần 4

Xây dựng Phần trình thử nghiệm

Thông qua ngôn ngữ Python, ta sử dụng thư viện Tensorflow để xây dựng một mô hình mạng nơ-ron tích chập và áp dụng mô hình này để giải bài toán nhận dạng chữ số với tập dữ liệu MNIST.

Tập dữ liệu MNIST, tập hợp các bức ảnh nhị phân về các chữ số viết tay đã được chuẩn hoá và chuyển về kích cỡ 32x32 Dữ liệu được chia thành 60000 mẫu được đưa vào CNN để huấn luyện và 10000 mẫu để kiểm nghiệm độ chính xác của CNN MNIST là một trong những bộ dữ liệu phổ biến dùng để thử nghiệm các thuật toán về Machine Learning.

Tập dữ liệu MNIST:

Trang 50

Hình chiếu minh hoạ của tập dữ liệu trong

Trang 51

Phần 4

Convolutional Neural Network

Mô hình dự đoán sử dụng thuật toán Adam để huấn luyện là viết tắt của "adaptive moment estimation" để huấn luyện Thuật toán Adam kết hợp cả hai ý tưởng từ thuật toán tối ưu hóa gradient khác là RMSprop và momentum.

Trong quá trình huấn luyện, Adam tính toán các gradient của hàm mất mát theo các trọng số của mạng, sau đó cập nhật các trọng số dựa trên các giá trị gradient đó và một số siêu tham số như tốc độ học (learning rate), beta1, beta2 và epsilon.

Điều này làm cho quá trình huấn luyện nhanh chóng và hiệu quả hơn đối với nhiều loại mô hình và tập dữ liệu.

Trang 52

Phần 4

Convolutional Neural Network

Trong mô hình này, lớp Dense được sử dụng với hàm kích hoạt softmax để xác định xác suất của các lớp đầu ra

Thuật toán softmax là một phương pháp chuẩn hóa giá trị đầu ra thành một phân phối xác suất, đảm bảo rằng tổng các giá trị xác suất là 1 Cụ thể, softmax được sử dụng để chuyển đổi các giá trị đầu ra từ lớp kết nối đầy đủ thành xác suất tương ứng với mỗi lớp đầu ra.

Công thức tính toán của softmax cho một vector đầu vào là

Trang 53

Phần 4

Thuật toán Gradient Descent

Gradient Descent là một thuật toán hữu ích và phổ biến trong việc tìm cực trị phương của một hàm số Ý tưởng chính của thuật toán là thực hiện vòng lặp để xấp xỉ cực trị của bài toán, các điểm đang xét của Gradient Descent sẽ dần tiến đến các điểm cực trị địa phương của hàm số, thay vì phải tìm cách giải phương trình đạo hàm riêng.

Trang 54

Phần 4

Convolutional Neural Network

categorical_crossentropy được sử dụng để đo lường sự khác biệt giữa các phân phối xác suất dự đoán của mô hình và phân phối xác suất thực tế của các lớp Nó tính toán mất mát bằng cách tính tổng của các logarit của xác suất dự đoán đúng.

Trong trường hợp của bạn, dữ liệu đích đã được mã hóa one-hot, vì vậy bạn sử dụng categorical_crossentropy để đo lường sự tương đồng giữa các phân phối xác suất được dự đoán và thực tế.

Trang 55

Phần 4

Mô hình đầy đủ

Trang 56

Bước 3: Thu gọn ảnh về kích thước 28X28

Bước 4: So sánh với mẫu đã học để cho kết quả.

Trang 57

Phần 4

Nhận xét

Mô hình có hiệu suất là 99,84 % với tập huấn luyện và 99,08% với tập kiểm tra vì vậy ta thấy được mô hình có khả năng học tốt với tập dữ liệu mnist

Trang 58

LỜI KẾT:

Đầu tiên nhóm em xin cảm ơn cô Nguyễn Nhựt Quỳnh đã hướng dẫn nhóm em trong suốt quá trình học môn này.

Nhóm em hy vọng rằng kiến thức này sẽ là nền tảng tốt để nhóm em có thể áp dụng vào những dự án tương lai Mặc dù chỉ là một đề tài nhỏ, nhưng nó giúp nhóm em thấy được sự quan trọng của việc học và thử nghiệm trong lĩnh vực học máy Cảm ơn thầy/cô và các bạn đã hỗ trợ và giúp đỡ, và nhóm em hi vọng sẽ còn nhiều cơ hội học hỏi và thử thách mới trong tương lai.

Trang 59

Thank’s For Watching

Ngày đăng: 11/06/2024, 14:53

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

Tài liệu liên quan