Tải bản đầy đủ (.docx) (14 trang)

Báo Cáo + Full Code Xây Dựng hệ thống xử lý, nhận dạng và chuyển đổi văn bản scan thành text

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (357.48 KB, 14 trang )

TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ

BÁO CÁO ĐỒ ÁN HỌC PHẦN
PHÁT TRIỂN ỨNG DỤNG VỚI MÃ NGUỒN MỞ
Đề tài:
HỆ THỐNG NHẬN DIỆN VĂN BẢN SCAN THÀNH
TEXT

Giảng viên hướng dẫn: TS. Trần Xuân Sang
Sinh viên thực hiện:
Hồ Văn Cường - 18574802010178
Trần Văn Khải - 18574802010118
Nguyễn Đức Thành - 185748020
Hồ Sỹ Dũng - 18574802010033
Phùng Quốc Tiến - 18574802010146

Nghệ An - 2021
MỤC LỤC
1


LỜI CẢM ƠN
Lời đầu tiên, nhóm 6 chúng em xin cảm ơn Thầy Cô trong Viện Kỹ thuật và
Công nghệ - Trường Đại học Vinh đã tận tình truyền đạt những kiến thức quan trọng
trong quá trình học tập ở nhà trường.
Đặc biệt, em xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới giảng viên
TS. Trần Xuân Sang – người trực tiếp hướng dẫn, đóng góp ý kiến quý báu và động
viên em trong quá trình làm đề tài và hoàn thành đề tài này. Bên cạnh đó, nhờ sự quan
tâm động viên của gia đình và bạn bè đã tạo điều kiện và tinh thần cho chúng em
trong quá trình học tập và thực hiện đề tài.


Do thời gian, kiến thức và kinh nghiệm còn hạn chế của bản thân nên bài báo
cáo này không thể tránh khỏi nhiều sai sót. Chúng em rất mong nhận được sự chỉ bảo,
lời nhận xét, góp ý của các thầy cơ giúp em có điều kiện bổ sung, nâng cao ý thức của
mình, phục vụ tốt hơn cho cơng việc thực tế sau này.
Chúng em kính chúc q Thầy cơ trong Viện Kỹ thuật và Cơng nghệ nói chung
và Thầy cơ Ngành Cơng nghệ thơng tin nói riêng lời chúc sức khỏe, thành công trong
công việc.
Chúng em xin chân thành cảm ơn!
Nghệ An, ngày 10 tháng 1 năm 2022
Nhóm sinh viên thực hiện
Nhóm 6

2


CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

Cùng với sự phát triển của khoa học kỹ thuật và nhu cầu, đời sống của người
dân tăng cao, kéo theo nhiều hoạt động, dịch vụ ra đời, song song với đó là số lượng
văn bản được in ra ngày càng nhiều khiến việc số hóa, lưu trữ dữ liệu gặp nhiều khó
khăn đã làm nảy sinh nhiều vấn đề trong việc sao lưu cũng như quản lý, truy xuất các
tài liệu, hồ sơ, các văn bản, chứng từ, bằng khen, giấy khen,... Để giải quyết vấn đề
này nhu cầu đặt ra là áp dụng các hệ thống tự động.
Ngày nay, với sự phát triển thần tốc của cơng nghệ, thế giới đã hồn tồn thay
đổi theo một hướng hồn tồn khác. Việc tích hợp một hệ thống áp dụng được nhiều
trong công ty, doanh nghiệp trong việc sao lưu tài liệu, nhận diện thông tin, hay chỉ là
chuyển đổi các scan thành văn bản đánh máy để tối ưu hóa thời gian nhập dữ liệu.
Chính vì lý do đó, để giúp doanh nghiệp có thể dễ dàng đăng tải sản phẩm, một phần
mềm tiên tiến chính là giải pháp mà tất cả những người kinh doanh đang tìm kiếm.
Hơm nay, nhóm 6 xin giới thiệu phần mềm “ Xây Dựng hệ thống chuyển đổi văn bản

scan thành text”.

3


CHƯƠNG 2: KIẾN THỨC LIÊN QUAN
2.1 Giới thiệu về Python
Python là một ngơn ngữ lập trình thơng dịch (interpreted), hướng đối tượng
(object-oriented), và là một ngôn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic
semantics).

Python hỗ trợ các module và gói (packages), khuyến khích chương trình
module hóa và tái sử dụng mã. Trình thơng dịch Python và thư viện chuẩn mở rộng có
sẵn dưới dạng mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và
có thể được phân phối tự do.
Hiện nay ngôn ngữ Python được xếp hạng thứ 3 trong Top 10 các ngôn ngữ lập
trình phổ biến nhất đang được thế giới sử dụng sau C và Java.
Các đặc điểm của Python:
-

Ngữ pháp đơn giản, dễ đọc.

-

Vừa hướng thủ tục (procedural - oriented), vừa hướng đối tượng (object oriented)
4


-


Hỗ trợ module và hỗ trợ gói (package).
+

Xử lý lỗi bằng ngoại lệ (Exception).

+

Kiểu dữ liệu động ở mức cao.

+

Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu
cầu lập trình.

+

Có khả năng tương tác với các module khác viết trên C/C++ (Hoặc Java
cho Jython, hoặc .Net cho IronPython).

+

Có thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting
interface).

2.2 Giới thiệu OpenCV và Tesseract OCR
2.2.1 OpenCV
OpenCV là tên viết tắt của open source computer vision library – có thể được
hiểu là một thư viện nguồn mở cho máy tính. Cụ thể hơn OpenCV là kho lưu trữ các
mã nguồn mở được dùng để xử lý hình ảnh, phát triển các ứng dụng đồ họa trong thời
gian thực.

OpenCV cho phép cải thiện tốc độ của CPU khi thực hiện các hoạt động real
time. Nó cịn cung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị
giác máy tính hay các learning machine khác.
Thư viện OpenCV được phát hành với giấy phép BDS. Do đó các dịch vụ nó
cung cấp là hồn tồn miễn phí và được hạn chế tối đa các rào cản thông thường. Cụ
thể, bạn được phép sử dụng phần mềm này cho cả hoạt động thương mại lẫn phi
thương mại. OpenCV sở hữu giao diện thiên thiện với mọi loại ngơn ngữ lập trình, ví
dụ như C++, C, Python hay Java… Ngồi ra, nó cũng dễ dàng tương thích với các hệ
điều hành khác nhau, bao gồm từ Windows, Linux, Mac OS, iOS cho đến cả Android.
Kể từ lần đầu xuất hiện từ năm 1999, giờ đây OpenCV đã sở hữu đội ngũ
người dùng hùng hậu, con số ước tính có thể lên tới 47.000 người. Tất cả là nhờ
những ưu điểm vượt trội của OpenCV.
2.2.2 Tesseract OCR

5


OCR là tạo một bản sao kỹ thuật số của các ký tự viết tay, in hoặc đánh máy đã
được quét. Kỹ thuật này được sử dụng rộng rãi để nhập dữ liệu, đặc biệt đối với các
loại dữ liệu khác nhau được thu thập trên giấy, có thể là hóa đơn, hộ chiếu, tài liệu,
danh thiếp, thư hoặc bản in.

Khi văn bản được số hóa, tìm kiếm và chỉnh sửa văn bản có thể được thực hiện
bằng điện tử. Thêm vào đó, bộ lưu trữ nhỏ gọn hơn và các tài liệu có thể được hiển thị
trực tuyến.
Với cơng nghệ OCR này, công ty công nghệ hàng đầu thế giới Google cũng
cho ra phần mềm nguồn mở từ năm 2006 với cái tên Tesseract OCR với giấy phép của
Apache.

6



Khi một trang in hoặc viết tay được quét, nó được lưu dưới dạng tệp ánh xạ bit
có định dạng TIF. Chúng ta có thể đọc hình ảnh này khi nó được hiển thị trên màn
hình. Tuy nhiên, với máy tính, nó chỉ là một loạt các dấu chấm màu trắng và đen. Nó
nhìn vào từng dịng của hình ảnh và xác định xem chuỗi các chấm có khớp với một số
hoặc chữ cái cụ thể không.

7


2.3 Phân tích về nhận diện văn bản
2.3.1 Phân tích đề bài
Xây Dựng ứng dụng phần mềm hệ thống thông minh, tối ưu hóa việc chuyển
đổi văn bản scan thành text. Nhận diện tốt các font chữ phổ biến trong các doanh
nghiệp là cơng việc quan trọng, địi hỏi bộ phận nhân viên phải tiến hành nhiều nghiệp
vụ phức tạp.
Việc ứng dụng CNTT đã mang lại bước đột phá mới cho công tác Xây Dựng
ứng dụng phần mềm hệ thống thơng minh, tối ưu hóa việc chuyển đổi văn bản scan
thành text, giúp doanh nghiệp sao chép, lưu trữ, nắm bắt thơng tin... một cách chính
xác và kịp thời. Từ đó người quản lý có thể đưa ra các kế hoạch và quyết định đúng
đắn, tối ưu, nhanh chóng, tiết kiệm thời gian, chi phí Hệ thống chạy được đa nền tảng.
2.3.2 Nhận dạng chuyển đổi văn bản là gì?
Nhận dạng văn bản là ứng dụng công nghệ chuyên dùng để đọc text ở file ảnh.
Được biết đến là một công cụ scan kỹ thuật số chuyên nhận dạng các ký tự, chữ viết
tay, hay chữ đánh máy, công nghệ này chuyên dùng để truyền tải, nhập liệu dữ liệu.
Đặc biệt, có khả năng kỹ thuật số nhiều dưới nhiều dạng tài liệu khác nhau: hóa đơn,
hộ chiếu, danh thiếp, tài liệu…
2.3.3 Vai trò của hệ thống nhận dạng chuyển đổi văn bản
a. Đối với hệ thống chuyển đổi văn bản công ty

-

Bằng công nghệ kỹ thuật số hiện đại hệ thống nhận dạng văn bản chuyển đổi
tệp hình ảnh thành text giúp thu thập và liên kết dữ liệu nhanh chóng. Hệ
thống có thể tự động ghi lại thơng tin được hiển thị trên văn bản một cách chi
tiết, chính xác, đầy đủ và nhanh chóng chuyển đổi chúng thành văn bản - text
phục vụ tốt các yêu cầu đặt ra

8


-

Giúp người dùng truy xuất thông tin nhanh, khảo lại khi cần thiết hơn là . Giúp
người dùng quản lý làm việc nhanh chóng nhờ tính năng nhận dạng chuyển đổi
văn bản scan thành text.

b. Đối với đời sống
-

Giúp cho con người sao lưu văn bản dễ dàng.

-

Giảm bớt nhân công làm việc đánh máy, ghi chép,

-

Tiết kiệm được thời gian, chi phí, tinh gọn các bước sao lưu.


2.3.4 Hạn chế nhận dạng chuyển đổi văn bản
Ngoài những điểm ưu việt mà hệ thống nhận dạng chuyển đổi văn bản scan
thành text mang lại, nó cịn có một số hạn chế sau :
-

Độ phân giải hình ảnh kém dẫn tới khó khăn hơn khi nhận diện ký tự tiếng việt
và chuyển văn bản thành text .

-

Ảnh hưởng từ các yếu tố như : ánh sáng. Ví dụ văn bản được ép plastic, bọc
nilon khi chụp ảnh sẽ bị lóa.

-

Giấy tờ có thể bị mục nát trong q trình bảo quản, gây ra khó đọc, nhận diện
sai.

-

Một số từ lạ, khù khoằm, gây rắc rối cho hệ thống

-

Bề mặt sạch chỉ có nền và văn bản cần nhận dạng, nếu bề mặt phức tạp cịn
chưa xử lý được.

2.4 Quy trình nhận dạng văn bản tiếng việt
Quy trình nhận dạng văn bản tiếng việt được thực hiện qua quá trình 6 bước
sau:


9


2.5 Những hạn chế của hệ thống nhận dạng văn bản
Có một số hạn chế về nhận diện văn bản tiếng việt như sau:
-

Lỗi thường bị bởi do lẫn lộn chữ hoa và chữ thường (upper and lower) — ví
dụ: hOa, nhắC — có thể dễ dàng sửa chữa sử dụng các chương trình Unicode
text editor.

-

Lỗi do sự xử lý khơng chính xác, gây ra các lỗi như thiếu sót dấu, lầm với ký tự
có hình dáng tương tự, v.v… — huu – hưu, mang – marg, h0a – hoa, la – 1a,
chìu – nhìn, nhiều - nhiễ, dịch - địch, in – ĩn, nhiều - nhiễu, khó – khơ, nãy –
nây, lưu – lưa, truy – trny, là – lã, hồ - hỗ, thống - thống thần – thâu, các – cáo,
ưu – ưn, đó – đõ, thể - thẻ, nhóm – nhõm, xin – xùn….
10


-

Lỗi khó phát hiện hơn bởi chúng liên quan đến ngữ nghĩa, semantics, có nghĩa
là những chữ đánh vần đúng (tức là mục từ có trong tự điển), nhưng sai nghĩa
trong ngữ cảnh (context) — ví dụ: tinh – tình, vân – vấn.

-


Lỗi do dữ liệu đầu vào chất lượng kém dính các ký tự dẫn đến nhầm lẫn

2.6 Mơ hình Training
Để huấn luyện mơ hình nhóm sử dụng Tesseract OCR, thư viện OpenCV
-

Bước 1: Đọc ảnh đầu vào chuyển về ảnh xám
Để đơn giản ta sẽ đọc ảnh từ một file có sẵn thay cho camera của điện thoại
Phần đọc này thì hồn tồn thuần OpenCV với lệnh imread và cvtColor

11


-

Bước 2: Kiểm tra sử dụng tiền xử lý ảnh
Nếu phân tách ảnh đen trắng:
if args["preprocess"] == "thresh":
gray = cv2.threshold(gray, 0, 255,
cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

Nếu làm mờ ảnh:
elif args["preprocess"] == "blur":
gray = cv2.medianBlur(gray, 3)
-

Bước 3: Load ảnh và apply nhận dạng bằng Tesseract OCR
text = pytesseract.image_to_string(Image.open(filename), lang='vie')

-


Bước 4: In dòng chữ nhận dạng ra được:

12


CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM
3.1 Kết quả nghiên cứu
Mặc dù gặp một số khó khăn trong q trình nghiên cứu đề tài như là trình độ
về deep learning cịn hạn chế, thành viên trong nhóm khơng đồng đều về năng lực,
teamwork chưa nhịp nhàng giữa các khâu,… nhóm đã thực hiện đạt được kết quả đề
ra ban đầu như sau:
-

Nghiên cứu được giải pháp chuyển ảnh thành chữ

-

Hiểu rõ quy trình nhận diện hệ thống tự động

3.2 Kết luận
-

Kết luận về kết quả đã nghiên cứu, thí nghiệm.

Do hạn chế về kiến thức, thời gian, công nghệ mới lạ nên chưa đạt được kết quả tối ưu
nhất, Hệ thống nhận diện tốt khi các chữ rõ nét, một số chữ bị mờ, nhịe, mất nét hệ
thống gặp nhiều khó khăn trong việc nhận diện. Trong tương lai nhóm sẽ cố gắng
nghiên cứu, khắc phục và hoàn thiện hệ thống tối ưu hơn


13


TÀI LIỆU THAM KHẢO

1. />
number-plate-recognition-anpr-with-python/
2. Transactions on Intelligent Transportation Systems (Sei Wang Chen - National

Taiwan Normal University)
3. />
21441.html
4. a/p/tim-hieu-ve-ocr-xay-dung-chuc-nang-extract-text-tu-hinh-

anh-su-dung-php-JQVkVBwMkyd
5. />6. />7. />
14



×