1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

NHẬN DIỆN kí tự DÙNG MATLAB (có code)

40 466 7

Đ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 40
Dung lượng 1,33 MB

Nội dung

Trong số đó, ngành khoa học xử lí ảnh ngày càng phát triển với sự ra đời của hàng loạt các chương trình, ứng dụng phân tích, nhận diện ảnh.. Đề tài “Nhận diện kí tự dùng Matlab” là một t

Trang 1

ĐỒ ÁN TỐT NGHIỆP

NHẬN DIỆN KÍ TỰ DÙNG MATLAB

Trang 2

DANH MỤC CÁC TỪ VIẾT TẮT

BMP Microsoft Windows Bitmap

JPEG Joint Photographic Experts Group

PNG Portable Network Graphics

TIFF Tagged Image File Format

Trang 3

ĐỒ ÁN TỐT NGHIỆP Trang 1/35

Nhận Diện Kí Tự Dùng Matlab

Trang 4

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI

1.1 Giới thiệu:

Hiện nay, cuộc cách mạng công nghiệp 4.0 đang diễn ra khắp mọi nơi trên thế giới Cùng với sự phát triển chóng mặt của kỹ thuật số, các máy móc thiết bị được lập trình tự động qua phần mềm đang dần thay thế con người trong nhiều lĩnh vực của cuộc sống Trong số đó, ngành khoa học xử lí ảnh ngày càng phát triển với

sự ra đời của hàng loạt các chương trình, ứng dụng phân tích, nhận diện ảnh Đề tài

“Nhận diện kí tự dùng Matlab” là một trong những chương trình xử lý ảnh giúp

nhận diện các kí tự trong văn bản được sử dụng nhiều khá phổ biến hiện nay được thực hiện dựa trên phần mềm Matlab

1.2 Tổng quan xử lý ảnh:

Xử lí ảnh với tín hiệu xử lí là ảnh số, một phân ngành trong xử lí số tín hiệu Đây là ngành khoa học được xây dựng và nghiên cứu thông qua nhiều lĩnh vực và cần nhiều kiến thức cơ sở ngành khác Dựa trên kiến thức cơ bản của xử lí số tín hiệu, xử lí ảnh còn cần đến kiến thức đối với các phân ngành Toán học khác như Đại số tuyến tính, Xác suất thống kê, …

Các phương pháp xử lý ảnh được xây dựng bắt đầu từ nâng cao chất lượng ảnh và phân tích ảnh trước khi xử lí Tùy vào từng nhu cầu, mục đích của từng đối tượng sử dụng mà các phương pháp xử lý ảnh được thiết kế bằng nhiều phương pháp khác nhau Qua quá trình phân tích tổng hợp, một hệ thống xử lí ảnh có thể xây dựng từ các bước căn bản sau

Trang 5

Hình 1-1: Hệ thống xử lý ảnh.

1.3 Hướng nghiên cứu:

 Nghiên cứu phần mềm MATLAB

 Tìm hiểu các về ảnh số, các lệnh xử lí ảnh trên MATLAB

 Thiết kế một chương trình xử lý ảnh để nhận diện kí tự dùng phần mềm Matlab

 Thiết kế lại chương trình để nhận diện kí tự qua ảnh từ camera

 Mô phỏng, đánh giá kết quả và hướng phát triển tối ưu, kết luận ưu và nhượcđiểm của hệ thống

Trang 6

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 Phần mềm MATLAB:

2.1.1 Giới thiệu:

MATLAB (Matrix Laboratory) là phần mềm cho phép tính toán số và lập trình do công ty MathWorks thiết kế Được tích hợp tính toán số với ma trận, MATLAB giúp người dùng có thể thực hiện tính toán, lập trình các ứng dụng, vẽ đồthịhàm số hay biểu đồ, tạo các giao diện người dùng và liên kết với những ngôn ngữ lập trình khác Với hệ thống dữ liệu và thư viện được lập trình, người dùng có thể :

 Sử dụng các hàm có sẵn trong thư viện và các phép tính toán học thông thường.Tốc độ xử lí tương đối nhanh

 Lập trình ra ứng dụng mới tùy theo mục đích sử dụng

 Mô phỏng lại các mô hình có sẵn trong thực tế

 Phân tích, khảo sát dữ liệu và hiển thị chúng với phần mềm đồ họa

 Giao tiếp, liên kết với các mềm khác như C++, Fortran

MATLAB có rất nhiều ứng dụng được sử dụng rộng rãi trong các lĩnh vực khoa học và kĩ thuật ngày nay :

 Xử lí hình ảnh, video, âm thanh

 Hệ thống điều khiển tự động

 Tính toán tài chính, sinh học

 Kiểm tra, đo lường, thống kê

Trang 7

 Thư viện: nơi chứa các hàm toán học, phép toán từ đơn giản đến phức tạp, các kí tự, biểu tượng được có sẵn trong MATLAB.

 Ngôn ngữ: bao gồm các ngôn ngữ bậc cao về ma trận và mảng; các hàm, dòng lệnh để phục vụ cho việc lập trình của người dùng

 Đồ họa: gồm các hình ảnh, đồ họa trong môi trường 2D và 3D

 Giao tiếp,liên kết với các ngôn ngữ lập trình khác như C, Fortran, …

Trong đó, các cửa sổ đóng vai trò quan trọng trong quá trình thao tác khi sử dụng của người dùng

Trang 8

 Command Window: cửa sổ giao tiếp chính của Matlab, nơi nhập các biến, hiển thị giá trị, tính toán biểu thức, thực thi các hàm trong thư viện.

 Command History: các dữ liệu nhập vào cửa sổ Command Window được lưugiữ trong cửa sổ Command History, cho phép chúng ta sử dụng lại khi cần

 Workspace: cửa sổ thể hiện tên các biến được sử dụng cùng với kích thước vùng nhớ, kiểu dữ liệu Cho phép thay đổi giá trị khi sử dụng

 M-file: dùng để soạn thảo chương trình ứng dụng, thực thi chương trình

2.1.3 Cấu trúc dữ liệu:

MATLAB là một hệ thống tương giao, các phần tử dữ liệu được thể hiện dưới dạng ma trận, hoặc mảng MATLAB rất đa dạng về kiểu dữ liệu, bao gồm:

 Kiểu Single: đòi hỏi ít bộ nhớ dữ liệu nhưng độ chính xác kém

 Kiểu Dounle: sử dụng trong các phép tính số học

 Kiểu Spare, Char, Cell, Structure

 Kiểu Uint8, Uint16, Uint64,…

2.1.4 Giao diện GUIDE:

Giao diện người dùng GUI (Graphical User Interface) trong MATLAB là một giao diện đồ họa được điều khiển bởi nhiều thanh công cụ do người lập trình tạo sẵn, cho phép tương tác giữa người dùng và chương trình

Trang 9

Hình 2-2: Giao diện khởi tạo Guide.

GUI bao gồm đầy đủ các công cụ hỗ trợ như thực hiện các phép toán logic,

mô phỏng 2D, 3D, đọc và hiển thị dữ liệu thông qua thực thi các nút nhấn được người lập trình giao diện thiết lập

Trang 10

Hình 2-3: Giao diện chính của Guide.

Với các biểu tượng được hỗ trợ sẵn, GUI giúp người dùng đơn giản hóa thao tác trong quá trình xây dựng và sử dụng chương trình

Select: trả về con trỏ văn bản

Push Button: nút nhấn khi nhấn sẽ thực thi lệnh trong cấu trúc hàm callback được người dùng lập trình

Silder: thanh trượt cho phép người dùng di chuyển trượt để thực thi lệnh.Radio Button: được sử dụng để tạo sự lựa chọn duy nhất, chỉ được chọn một trong số nhiều nút

Trang 11

Check Box: dùng để đánh dấu tích chọn, có thể chọn nhiều ô để cùng thực thi lệnh.

Edit Text: nơi nhập các kí tự từ người dùng, nội dung các kí tự tại đây có thể thay đổi được

Static Text: nơi hiển thị các kí tự thông qua hàm callback hoặc dùng làm nhãn cho các biểu tượng, nội dung các kí tự tại đây không thể thay đổi

Pop-up Menu: tạo một danh sách các lựa chọn cho người dùng và chỉ được chọn một trong số nhiều lựa chọn

Listbox: hộp thoại chứa danh sách nhiều mục, cho phép chọn một hoặc nhiềumục cùng lúc

Toggle Button: khi nhấn lần đầu, nút nhấn được giữ và lệnh được thực thi, khi nhấn lần hai, nút nhấn được nhả và lệnh được hủy bỏ

Table: tạo ra bảng tương tự excel

Axes: giao diện đồ họa dùng hiển thị hình ảnh 2D hoặc 3D

Panel: tạo một mảng nhóm các đối tượng lại với nhau giúp dễ kiểm soát và thao tác khi di chuyển

Button Group: quản lý các sự lựa chọn của Radio Button

Active Control: quản lý một nhóm các nút hoặc các chương trình có liên quan với nhau trong hoạt động

2.2 Khái niệm ảnh số và xử lí ảnh:

2.2.1 Các khái niệm cơ bản về ảnh:

Trang 12

Điểm ảnh (Pixel - Picture Element) là một phần tử của ảnh số trong hệ trục toạ độ (x, y) với độ xám hoặc màu nhất định.

Mức xám là các giá trị có thể có của các điểm ảnh và chỉ mang giá trị nguyêndương.Thường mức xám có giá trị trong khoảng [0, 255] tuỳ thuộc vào giá trị mà mỗi điểm ảnh được biểu diễn Các thang giá trị mức xám: 16, 32, 64, 128, 256 Trong đó, mức thông dụng nhất là 256 Mức xám dùng 1 byte để biểu diễn: 2 8=256 mức, từ 0 đến 255

Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số và được phân bố theo trục x và y của hệ trục tọa độ hai chiều

Ví dụ: Bức ảnh số có độ phân giải 1366x768 nghĩa là chiều ngang có 1366 điểm ảnh (pixel), chiều dọc có 768 điểm ảnh và mỗi điểm ảnh được biểu diễn bằng một con số

Hình 2-4: Sơ đồ phân bố điểm ảnh.

Ảnh số là một tập hợp các điểm ảnh, sau khi số hóa ảnh thật, mỗi phần tử của

ma trận tương ứng với một điểm ảnh.Các điểm ảnh được gắn với với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của ảnh và làm cho bức ảnh trở nên chân thực và sắc nét hơn

2.2.2 Các loại ảnh số:

Ảnh nhị phân (Binary image) hay ảnh trắng đen có giá trị xám của tất cả các

Trang 13

điểm ảnh chỉ nhận giá trị 1 (đen) hoặc 0 (trắng), như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 bit.

Hình 2-5: Ảnh nhị phân

Ảnh xám (Gray image) là ảnh có giá trị xám của các điểm ảnh nằm trong khoảng [0, 255], mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 byte (8 bits) Khi xử lý ảnh trên máy tính thì người ta dùng ảnh xám để biểu diễn ảnh nhị phân và lúc này có 2 giá trị là 0 hoặc 255

Hình 2-6: Ảnh xám

Ảnh màu RGB (RGB image) còn được gọi là ảnh true-color, một pixel được biểu diễn bằng 3 giá trị (R, G, B) trong đó R (Red), G (Green), B (Blue) là một giá trị xám và được biểu biểu diễn bằng 1 byte Khi đó ta có một ảnh 24 bits

Trang 14

Hình 2-7: Ảnh màu

Ảnh RGB được biểu diễn bởi một ma trận ba chiều m x n x 3, trong đó m x n

là kích thước ảnh Ma trận này định nghĩa các thành phần màu Red, Green, Blue cho mỗi điểm ảnh

Trang 15

 Khảo sát đối tượng: xác định diểm khuyết, đo lường đối tượng, đo đạc khoảng cách từ đối tượng tới camera,

 Nhận diện: bao gồm nhận diện biển số xe, nhận diện mặt người, nhận diện vân tay, nhận diện kí tự,

 Phân loại: phân loại các đối tượng trong ảnh dựa trên màu sắc, kích cỡ,hình dạng, đặc điểm,…

 Tối ưu: nâng cao chất lượng hình ảnh Thường dùng các phương pháp như nâng độ tương phản, độ sắc nét, cân bằng trắng, giảm nhiễu, … Mục đích saucùng để có được ảnh đầu ra có chất lượng hiển thị tốt hơn ảnh đầu vào

Dựa vào từng mục đích sử dụng, ta có thể tổng hợp các bước của một quá trình xử lí ảnh cơ bản như sau:

Hình 2-9: Các bước xử lí ảnh.

Thu nhận ảnh là bước biến đổi thông tin hình ảnh về các cấu trúc để lưu trữ trong máy tính Ảnh có thể được thu từ nhiều nguồn khác nhau như máy ảnh,

camera, điện thoại,…

Tiền xử lý là quá trình nâng cao chất lượng ảnh thông qua sử dụng các phương pháp xử lí ảnh tùy theo mục đích sử dụng Một số phương pháp thông dụng

Trang 16

như điều chỉnh độ sáng, giảm nhiễu, điều chỉnh bộ lọc, chuẩn hóa kích thước ảnh,…Nhiệm vụ chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản giúp ảnh rõ nét hơn phục vụ quá trình xử lí.

Phân đoạn là quá trình tách ảnh đầu vào thành các vùng thành phần để phân tích, nhận diện ảnh Chức năng chính là nhằm phân chia các đối tượng cần xử lí ra khỏi ảnh, phân tách các đối tượng liên tiếp thành các đối tượng riêng biệt

Biểu diễn và mô tả là giai đoạn chọn các tính chất, đặc tính của ảnh để thể hiện theo từng nhu cầu sử dụng cụ thể, nhằm phục vụ cho nhận dạng và nội suy Việc chọn các tính chất của ảnh gọi là trích chọn đặc trưng gắn với việc tách các đặctính của ảnh làm cơ sở để phân biệt đối tượng này với đối tượng khác

Nhận dạng và nội suy là bước cuối trong quá trình xử lí ảnh Nhận dạng là quá trình xác định ảnh, dựa trên kết quả có được từ các bước trước đó, ảnh được phán đoán, xác định trên cơ sở nhận dạng Nội suy là bước phán đoán theo ý nghĩa dựa trên cơ sở nhận dạng

Do ảnh là một đối tượng phức tạp và đa dạng, trong nhiều khâu phân tích và

xử lý ảnh người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh bằng trí tuệ của con người Chính vì vậy tất cả các bước phân tích và xử lí đều đòi hỏi cơ sở tri thức của con người

2.3 Các hàm xử lí ảnh cơ bản trên MATLAB:

Trang 17

Cú pháp: imfinfo(filename)

imfinfo(filename,fmt)imfinfo(URL)

Ví dụ: imfinfo('tdt.png')

Kết quả:

Trang 19

Hàm imwrite: lưu ảnh được biễu diễn bằng một ma trận thành file ảnh dưới định dạng ảnh bất kỳ.

Trang 20

Hình 2-15: Hàm imresize.

Trang 21

Hàm imrotate: cho phép xoay ảnh theo góc cần xoay Gồm 2 thông số cơ bản

là ảnh và góc xoay

Cú pháp: imrotate(I,angle)

Ví dụ: a= imread('tdt.png')

b= imrotate(a,90)Kết quả:

Hình 2-16: Hàm imrotate.

Hàm imcrop: giúp cắt ảnh theo một phạm vi sau khi xác định vùng cắt

Cú pháp: imcrop(I,[xmin ymin width height])

Ví dụ: a= imread('tdt.png')

b= imcrop(a,[10 20 150 250])Kết quả:

Trang 22

Hình 2-17: Hàm imcrop.

2.3.3 Hàm toán số học trên ảnh:

Các phép toán số học trên ảnh bao gồm các phép cộng, trừ, nhân, chia MATLAB chỉ hổ trợ các phép toán này trên kiểu double nên cần chuyển đổi kiểu trước khi thực hiện

Hàm imadd: cộng hai ảnh hoặc cộng hằng số vào ảnh Các giá trị của kết quảkhông vượt quá 255

Cú pháp: imadd(X,Y)

Ví dụ: X= uint8([200 0;50 100]);

Y= uint8([0 100;50 200]);

Z= imadd(X,Y)Kết quả: Z = 200 100

Trang 23

2.3.4 Chuyển đổi kiểu dữ liệu:

MATLAB cung cấp hỗ trợ các định dạng ảnh sau:

 BMP (Microsoft Windows Bitmap)

 JPEG (Joint Photographic Experts Group)

 PNG (Portable Network Graphics)

 TIFF (Tagged Image File Format)

Tuy nhiên, trong quá trình thực hiện các phép tính toán trên ảnh, chúng ta cần chuyển về các kiểu dữ liệu sao cho thích hợp như: double, uint8, uint16

Để chuyển đổi ảnh sang các kiểu dữ liệu trên ta sử dụng các hàm sau:

im2double: chuyển ảnh về kiểu double

im2uint8: chuyển ảnh về kiểu uint8

im2uint16: chuyển ảnh về kiểu uint16

Trang 24

CHƯƠNG 3 GIẢI THUẬT3.1 Sơ đồ khối:

Trang 26

Xác định vùng chứa văn bản: tách lấy vùng chứa kí tự văn bản, loại bỏ các đối tượng nhiễu.

Dán nhãn và tách kí tự: các kí tự được tách biệt thành từng đối tượng để so sánh sau khi dán nhãn

Trích xuất kí tự: các mẫu kí tự được lưu sẵn được trích xuất một cách lần lượt để so sánh với kí tự văn bản

So sánh tương quan kí tự: so sánh mức độ tương quan giữa kí tự mẫu và kí tựvăn bản được xác định

Xuất kết quả: hiển thị kết quả kí tự được nhận diện dưới dạng chuỗi kí tự

3.2 Giải thuật:

3.2.1 Xác định vùng chứa văn bản:

Hình 3-2: Ảnh đầu vào.

Sau khi được nhị phân hóa, ảnh gồm hai thành phần điểm ảnh là 1 (kí tự) và

0 (vùng trống) Hàm find được dùng để xác định các điểm ảnh mang giá trị khác 0

mà ở đây là 1 Tất cả điểm ảnh được xác định sẽ được phân tích trên chiều ngang vàdọc của bức ảnh, nhằm tìm ra điểm ảnh đầu tiên và cuối cùng theo cả chiều ngang

Trang 27

và chiều dọc Sau đó dùng hàm imcrop để cắt vùng chứa tất cả điểm ảnh xác định được.

Hình 3-3: Ảnh sau khi xác định vùng chứa văn bản.

Tiếp theo, ta dùng phương pháp tượng tự kết hợp với vòng lặp được sử dụng

để xác định dòng văn bản, từ đó tìm được kí tự trên cùng một hàng

Hình 3-4: Phân dòng văn bản.

3.2.2 Tách kí tự:

Cuối cùng, các kí tự được tách biệt bằng phương pháp dán nhãn kí tự

Phương pháp này được xây dựng trên cơ sở xét tất cả các điểm lân cận của một điểm ảnh Tất cả điểm ảnh lân cận nhau có cùng giá trị điểm ảnh sẽ được xác định

Trang 28

thành một đối tượng và dán nhãn để phân biệt với các đối tượng còn lại Trong trường hợp này, mỗi đối tượng là một kí tự văn bản được xác định.

Trang 29

Hình 4-1: Giao diện bắt đầu.

Hình 4-2: Giao diện chính.

4.1 Ảnh được lưu từ máy:

Trang 30

Hình 4-3: Chọn ảnh đầu vào.

Hình 4-4: Hiển thị thông số ảnh.

Trang 31

Hình 4-5: Nhận diện kí tự.

4.2 Ảnh chụp qua camera:

Hình 4-6: Ảnh từ camera.

Trang 32

Hình 4-7: Hiển thị thông số ảnh.

Hình 4-8: Nhận diện kí tự.

Trang 33

Đối với ảnh từ máy tính, kết quả nhận diện phụ thuộc vào chất lượng của ảnh

và kiểu kí tự trong văn bản hiển thị

Đối với ảnh từ camera, kết quả nhận diện phụ thuộc vào chất lượng camera, khoảng cách và góc độ khi chụp

Trang 34

CHƯƠNG 5 KẾT LUẬN

5.1 Nhận xét:

5.1.1 Ưu điểm:

 Giao diện chương trình đơn giản, dễ làm quen và sử dụng

 Tốc độ xử lí tương đối nhanh

 Hiển thị được thông tin ảnh đầu vào

5.1.2 Khuyết điểm:

 Kết quả nhận diện phụ thuộc nhiều vào chất lượng của ảnh đầu vào

 Chưa đáp ứng được yêu cầu đa dạng về phông chữ, kiểu kí tự

 Đối với ảnh được chụp từ camera, kết quả nhận diện phụ thuộc nhiều vào khoảng cách và góc độ chụp

5.2 Hướng phát triển:

 Nâng cao độ chính xác của chương trình

 Xây dựng tính năng tự động nâng cao chất lượng ảnh nhằm phục vụ cho quá trình nhận diện

 Thiết kế thêm nhiều mẫu kí tự phục vụ cho việc nhận diện đối với nhiều phông chữ, kiểu kí tự khác nhau

Ngày đăng: 22/03/2019, 20:32

TỪ KHÓA LIÊN QUAN

w