Đang tải... (xem toàn văn)
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 3LÝ 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 4NỘ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 5Phầ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 6Tiề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 7Nhị 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 8Lọ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 9Chuẩ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 10Là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 11Là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 13Khố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 14Phầ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 15Trí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 17Trí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 18Phần 3
Báo cáo
MÔ HÌNH MẠNG NEURAL TÍCH CHẬP
Trang 19Phần 301
Mạng Neural nhân tạo
Mạng Neural tích chập (Convolutional Neural Networks - CNN)
Trang 20Phầ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 21Mô hình phân lớp với CNN
Mô hình mạng neural truyền thống
Trang 22Phầ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 23Phầ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 25Phầ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 26Phần 3 - Mạng Neural tích chập (CNN) Phương pháp VALID
Trang 27Phần 3 - Mạng Neural tích chập (CNN) Phương pháp SAME
Trang 28Phần 3 - Mạng Neural tích chập (CNN) Phương pháp FULL
Trang 29Phầ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 30Phầ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 31Phầ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 32Phầ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 33Phầ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 34Phầ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 35Phầ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 36Phầ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 37Phầ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 38Phầ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 39Phần 3 - Mạng Neural nhân tạo
Trang 40Mô hình mạng đa tầng
Trang 41Phầ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 42Phầ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 43Phầ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 44Phầ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 45Phầ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 46Phầ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 47Phầ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 48Phầ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 49Phầ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 50Hình chiếu minh hoạ của tập dữ liệu trong
Trang 51Phầ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 52Phầ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 53Phầ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 54Phầ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 55Phần 4
Mô hình đầy đủ
Trang 56Bướ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 57Phầ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 58LỜ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 59Thank’s For Watching