Tiền xử lý xóa dấu đỏ trong văn bản

39 1 0
Tài liệu đã được kiểm tra trùng lặp
Tiền xử lý xóa dấu đỏ trong văn bản

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA TOÁN - CƠ - TIN HỌC

Trần Duy Tùng Lân - 21000390Ngô Hữu Hiếu - 21001547Đỗ Huy Hoàng - 21001551Cao Tuấn Anh - 21001530

Tiền xử lý xóa dấu đỏ trong văn bản

Tiểu luận khoa học

Ngành: Máy tính và khoa học thông tin(Chương trình đào tạo chuẩn)

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA TOÁN - CƠ - TIN HỌC

Trần Duy Tùng Lân - 21000390Ngô Hữu Hiếu - 21001547Đỗ Huy Hoàng - 21001551Cao Tuấn Anh - 21001530

Tiền xử lý xóa dấu đỏ trong văn bản

Tiểu luận khoa học

Ngành: Máy tính và khoa học thông tin(Chương trình đào tạo chuẩn)

Người hướng dẫn: TS Nguyễn Thị Bích Thủy

Trang 3

Lời cam đoan

Nhóm sinh viên chúng em xin giới thiệu với cô và mọi người đề tài ”Tiền xử lý dấu đỏ trong văn bản ” Chúng em chọn đề tài này vì sự thiếtthực và tính ứng dụng cao của phương pháp này cũng như để đưa ra cáckiến thức bổ ích trong học tập và trong môi trường làm việc với việc đọcvăn bản tự động trở nên thông dụng như hiện nay.

Trong quá trình thực hiện đề tài này tuy còn có nhiều thiếu sót do kiếnthức còn sơ sài nhưng những nội dung trình bày trong quyển báo cáo nàylà những biểu hiện kết quả của chúng em đạt được dưới sự hướng dẫn củaTiến sĩ Nguyễn Thị Bích Thủy.

Chúng em xin cam đoan rằng: Những nội dung trình bày trong quyển báo cáo tiểuluận môn Phương pháp nghiên cứu khoa học này không phải là bản sao chép từ bất kìtiểu luận nào có trước Nếu không đúng sự thật, chúng em xin chịu mọi trách nhiệmtrước cô.

Trang 4

Lời cảm ơn

Lời đầu tiên, nhóm em xin trân trọng cảm ơn giảng viên Nguyễn Thị BíchThủy - người đã trực tiếp chỉ bảo, hướng dẫn em trong quá trình hoàn thànhbài tiểu luận này.

Em cũng xin được gửi lời cảm ơn đến quý thầy, cô giáo trường Đại họcKhoa học Tự nhiên, đặc biệt là các thầy, cô khoa Toán - Cơ - Tin học, nhữngngười đã truyền lửa và giảng dạy kiến thức cho em suốt thời gian qua.

Mặc dù đã có những đầu tư nhất định trong quá trình làm bài song cũngkhó có thể tránh khỏi những sai sót, em kính mong nhận được ý kiến đónggóp của quý thầy cô để bài tiểu luận được hoàn thiện hơn.

Em xin chân thành cảm ơn!

Trang 5

Kết quả áp dụng thành công với các trường hợp tốt như ảnh đã scan, ảnh đầy đủánh sáng, ảnh có phần dấu đỏ không quá đậm Tuy nhiên vẫn còn tồn tại các văn bảnbị mất nét trong trường hợp xấu như ảnh có dấu đỏ quá đậm hay ảnh bị dính các vệtmực in.

Phương pháp có thể được áp dụng trong thực tế và cần được cải thiện trong việc xửlý các trường hợp chưa tốt.

Trang 6

Mục lục

1 Phân tích và lựa chọn phương pháp phù hợp 2

1.1 Phân tích bài toán 2

1.2 Các phương pháp xóa dấu đỏ 3

1.2.1 Xóa dấu đỏ thủ công sử dụng công cụ chỉnh sửa ảnh 3

1.2.2 Xử lý ảnh tự động 3

1.3 Lựa chọn phương pháp 8

2 Kiến thức nền tảng và lộ trình hoạt động 92.1 Kiến thức nền tảng 9

2.1.1 Dải màu HSV 9

2.1.2 thư viện OpenCV 11

2.1.3 Thuật toán K-means 13

Trang 7

3.2 Kết quả 22

3.2.1 Đối tượng xử lý của dự án 22

3.2.2 Kết quả chạy mẫu 23

Trang 8

Danh sách hình vẽ

1.1 Ảnh văn bẳn có dấu đỏ 2

1.2 Sử dụng Inpainting để xóa chữ đỏ 5

1.3 Ảnh sau khi đã xóa 5

1.4 Xóa dấu đỏ bằng Frequency sêpration 7

1.5 Ảnh sau khi xóa 7

2.1 Quy trình hoạt động của thuật toán K-means 14

Trang 9

Giới thiệu

Giới thiệu đề tài: Giả sử ta có một hình ảnh của một văn bản có dấu đỏ ( dấu giáplai ) khiến máy tính không đọc được thông tin những vùng bị đóng dấu đỏ Nhiệm vụcủa bài báo cáo này là tìm phương pháp và phát triển thuật toán nhằm xử lý văn bảnđó bằng cách xóa dấu đỏ để máy tính đọc được thông tin chính xác hơn.

Mục tiêu của đề tài: Xóa dấu đỏ ( dấu giáp lại ) khỏi văn bản mà không làm ảnhhưởng đến nội dung của văn bản

Cấu trúc báo cáo• Giới thiệu

• Chương 1: Phân tích và lựa chọn phương pháp phù hợp• Chương 2: Kiến thức nền tảng và lộ trình hoạt động• Chương 3: Thử nghiệm thuật toán và kết quả thực nghiệm• Kết luận

Trang 10

Chương 1

Phân tích và lựa chọn phương phápphù hợp

1.1 Phân tích bài toán

Bài toán mà chúng ta cần giải quyết trong luận văn này đã được mô tả ở phần giớithiệu Cụ thể: Ta có một ảnh quét văn bản và ta cần sử dụng OCR ( Optimal CharacterRecognition ) để chuyển ảnh quét văn bản thành chữ đánh máy Tuy nhiên, trong mộtgóc của văn bản có một hình ảnh dấu giáp lai ( dấu đỏ ) đè lên phần chữ ta cần máytính đọc Nhiệm vụ của chúng ta là loại bỏ dấu đỏ mà không được làm hư hại phầnchữ viết hoặc khôi phục phần chữ bị hỏng sau khi xóa dấu đỏ.

Hình 1.1: Ảnh văn bẳn có dấu đỏ

Trang 11

1.2 Các phương pháp xóa dấu đỏ

Các loại công nghệ có thể dùng để xóa dấu đỏ khỏi văn bản Việc xóa dấu đỏ khỏivăn bản có thể được thực hiện bằng nhiều phương pháp khác nhau, tùy thuộc vào loạivăn bản, chất lượng hình ảnh và mức độ phức tạp của dấu đỏ Dưới đây là một số loạicông nghệ phổ biến có thể được sử dụng:

1.2.1 Xóa dấu đỏ thủ công sử dụng công cụ chỉnh sửa ảnh

Các phần mềm chỉnh sửa ảnh như Photoshop, GIMP, Paint.NET có thể sử dụngcác công cụ như Clone Stamp, Healing Brush, Content-Aware Fill để xóa dấu đỏ mộtcách thủ công.

Ưu điểm: Phương pháp này giúp việc xóa dấu đỏ và chỉnh sửa phần chữ viết tỉ mỉ

và chính xác hơn do ta có thể tự nhìn hình và nhận biết được phần chữ bị che mờ đểsửa và không đòi hỏi trình độ chuyên môn cao trong việc lập trình.

Nhược điểm: phương pháp này đòi hỏi kỹ năng sử dụng phần mềm và có thể tốn

thời gian nếu dấu đỏ phức tạp, không thể thực hiện với lượng ảnh lớn và không thể tựđộng hóa quá trình xóa dấu đỏ.

1.2.2 Xử lý ảnh tự động

Sử dụng các thuật toán học máy và trí tuệ nhân tạo để tự động phát hiện và loại bỏdấu đỏ khỏi ảnh văn bản Các thuật toán này có thể xử lý nhiều ảnh cùng lúc và hiệuquả hơn so với phương pháp thủ công Tuy nhiên, độ chính xác của các thuật toán nàycó thể phụ thuộc vào chất lượng ảnh và mức độ phức tạp của dấu đỏ.

Nhận dạng và che lấp (Inpainting): Sử dụng mạng nơ-ron nhân tạo (AI): Huấn

luyện mạng nơ-ron để tự động phát hiện và loại bỏ dấu đỏ dựa trên các đặc điểm hìnhảnh Nguyên lý hoạt động của Inpainting có thể được tóm tắt như sau:

• Phân tích:Thuật toán AI đầu tiên sẽ phân tích ảnh để xác định vùng cần ing và các pixel xung quanh nó Thuật toán sẽ tìm kiếm các mẫu, kết cấu và màusắc trong các pixel xung quanh.

Trang 12

inpaint-• Tái tạo: Dựa trên thông tin thu thập được trong bước phân tích, thuật toán sẽ sửdụng các thuật toán AI để tái tạo nội dung mới cho vùng inpainting Việc tái tạocó thể được thực hiện bằng nhiều phương pháp khác nhau, chẳng hạn như:- Sao chép: Sao chép các pixel từ các khu vực xung quanh vào vùng inpainting.- Lọc: Sử dụng các bộ lọc để làm mịn các đường viền và tạo ra kết quả tự nhiênhơn.

- Tổng hợp: Sử dụng các thuật toán AI để tổng hợp nội dung mới từ các mẫu vàkết cấu được tìm thấy trong ảnh.

• Hòa hợp:Sau khi nội dung mới được tạo ra, thuật toán sẽ hòa hợp nó với phầncòn lại của ảnh Việc hòa hợp có thể được thực hiện bằng cách điều chỉnh độsáng, độ tương phản, màu sắc và các thuộc tính khác của nội dung mới để đảmbảo nó hòa hợp với phần còn lại của ảnh.

Trang 13

Hình 1.2: Sử dụng Inpainting để xóa chữ đỏ

Hình 1.3: Ảnh sau khi đã xóa

Trang 14

Phân tách ảnh thành các thành phần tần số ( Frequency seperation): một công

nghệ xóa watermark sử dụng biến đổi wavelet để phân tách ảnh thành các thành phầntần số khác nhau Các thành phần tần số thấp chứa thông tin về các chi tiết lớn củaảnh, trong khi các thành phần tần số cao chứa thông tin về các chi tiết nhỏ Công nghệnày hoạt động bằng cách loại bỏ thành phần tần số chứa dấu đỏ và ghép các thànhphần còn lại lại với nhau Nguyên lý hoạt động của Frequency Separation có thể đượctóm tắt như sau:

• Biến đổi wavelet

- Ảnh đầu tiên được biến đổi wavelet để phân tách nó thành các thành phần tầnsố khác nhau.

- Các thành phần tần số thấp (low-frequency components) chứa thông tin về cácchi tiết lớn của ảnh, chẳng hạn như đường viền, màu sắc và kết cấu tổng thể.- Các thành phần tần số cao (high-frequency components) chứa thông tin về cácchi tiết nhỏ của ảnh, chẳng hạn như nhiễu, hạt film và các chi tiết phức tạp.

• Xóa các thành phần có tần số không mong muốn

- Các thành phần tần số cao chứa thông tin về các chi tiết không mong muốn,chẳng hạn như dấu đỏ, logo hoặc các đối tượng bị hư hỏng Để xóa các chi tiếtnày, các thành phần tần số cao sẽ được loại bỏ hoặc sửa đổi.

- Việc loại bỏ hoặc sửa đổi các thành phần tần số cao có thể được thực hiện bằngnhiều phương pháp khác nhau, chẳng hạn như:

+ Chọn lọc: Loại bỏ các thành phần tần số cao nhất, có chứa nhiều chi tiết khôngmong muốn nhất.

+ Ngưỡng: Đặt ngưỡng cho các thành phần tần số cao và loại bỏ các giá trị caohơn ngưỡng này.

+ Phá hủy: Phá hủy các thành phần tần số cao hoàn toàn.

• Biến đổi ngược wavelet

- Sau khi các thành phần tần số cao được loại bỏ hoặc sửa đổi, các thành phần tầnsố thấp và cao còn lại sẽ được kết hợp lại bằng biến đổi wavelet ngược.

- Kết quả sẽ là một ảnh mới với các chi tiết không mong muốn đã được xóa.

Trang 15

Hình 1.4: Xóa dấu đỏ bằng Frequency sêpration

Hình 1.5: Ảnh sau khi xóa

Sử dụng các thuật toán và các hàm trong thư viện OpenCV: OpenCV là thư viện

nguồn mở hàng đầu cho Thị giác máy tính(Computer Vision) và học máy (MachineLearning), và hiện có thêm tính năng tăng tốc GPU cho các hoạt động theo real-time.

Trang 16

Nguyên lý hoạt động có thể được tóm tắt như sau:

• Khoanh vùng dấu đỏ để xử lý:- Xác định dải màu của con dấu - Tạo mask chứadải màu trên cho con dấu

• Tạo mảng contour:Tạo một mảng contour gồm các mask đã duyệt qua để xử lý

• Xử lý contour:Chia thành các grid để xử lý song songƯu điểm:

• Đơn giản và dễ triển khai• Hiểu quả với dấu đỏ đơn giản

• Có thể xử lý song song để tăng tốc độ xử lý

Nhược điểm:

• Khả năng nhận diện dấu đỏ không cao• Thời gian xử lý vẫn cần được cải thiển• Khả năng xử lý các dấu đỏ phức tạp thấp

1.3 Lựa chọn phương pháp

Bằng cách tổng quát hóa bài toán được đặt ra cũng như đi tìm các công nghệ cụthể, nhiều phương pháp đã được liệt kê cùng với điểm yếu và thế mạnh để được cănnhắc và lựa chọn Sau khi suy nghĩ và cân nhắc các yếu tố khác nhau, đề tài này sẽtập trung vào sử dụng phương pháp sử dụng các thuật toán và các hạm trong thư việnOpenCV để hoàn thành bài toán vì các lí do sau:

• Tính linh hoạt và dễ mở rộng: Phương pháp của bạn phân chia ảnh thành các gridnhỏ, giúp kiểm soát được vùng xử lý màu nền Điều này làm cho phương pháp dễdàng mở rộng và tùy chỉnh cho các trường hợp cụ thể.

• Tính song song: Việc sử dụng tính toán song song giúp tăng tốc độ xử lý, đặc biệtlà khi xử lý nhiều grid độc lập với nhau.

• Độ linh hoạt trong việc xử lý nhiều màu nền: Bằng cách kết hợp mask của nhiềumàu, bạn có thể xử lý được nhiều trường hợp màu nền khác nhau một cách linhhoạt.

Trang 17

Chương 2

Kiến thức nền tảng và lộ trình hoạtđộng

2.1 Kiến thức nền tảng

Để có thể hiểu và sử dụng phương pháp đã được lựa chọn ở chương 1, ta cần có cáckiến thức nền về các vấn đề liên quan đến thư viện OpenCV, về dải màu HSV được sửdụng trong thuật toán, các kiến thức cơ bản về thuật toán K-means trong học máy vàkỹ năng xử lý tính toán song song.

2.1.1 Dải màu HSV

Trong không gian màu HSV, màu sắc được biểu diễn bằng thông số Hue (màu sắcchính), giúp phân biệt các màu sắc một cách rõ ràng hơn so với không gian màu RGB.Trong trường hợp này, chúng ta quan tâm đến màu đỏ của dấu giáp lai, và thông số Huecho màu đỏ thường nằm trong khoảng gần 0 (hoặc 180 nếu bạn sử dụng OpenCV).

Trang 18

Dễ dàng xác định ngưỡng màu: Bằng cách sử dụng không gian màu HSV, chúng

ta có thể dễ dàng xác định các ngưỡng màu cho màu đỏ Thông số Saturation vàValue cũng có thể được sử dụng để điều chỉnh độ tương phản và độ sáng của màu sắc.lower-red = np.array([0, 50, 50]) upper-red = np.array([10, 255, 255])

Ít ảnh hưởng bởi ánh sáng: Thông số Value trong không gian màu HSV chỉ định

độ sáng của màu sắc, không phụ thuộc vào ánh sáng môi trường như trong không gianmàu RGB Điều này giúp giảm thiểu tác động của biến động ánh sáng đến việc xácđịnh màu đỏ của dấu giáp lai.

Hiệu quả tính toán: Khi xử lý hình ảnh, việc thực hiện các phép toán trong không

gian màu HSV có thể hiệu quả hơn so với không gian màu RGB, đặc biệt là khi bạncần phân biệt màu sắc.

Trang 19

2.1.2 thư viện OpenCV

Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky OpenCV viếttắt cho Open Source Computer Vision Library OpenCV là thư viện nguồn mở hàngđầu cho Computer Vision và Machine Learning, và hiện có thêm tính năng tăng tốcGPU cho các hoạt động theo real-time.

OpenCV được phát hành theo giấy phép BSD , do đó nó miễn phí cho cả học tập vàsử dụng với mục đích thương mại Nó có trên các giao diện C++, C, Python và Javavà hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để hỗtrợ hiệu quả về tính toán và chuyên dùng cho các ứng dụng real-time (thời gian thực).Nếu được viết trên C/C++ tối ưu, thư viện này có thể tận dụng được bộ xử lý đa lõi(multi-core processing).

Trang 20

• Robot và xe hơi tự lái• Phân tích hình ảnh y học

• Tìm kiếm và phục hồi hình ảnh/video• Phim – cấu trúc 3D từ chuyển động• Nghệ thuật sắp đặt tương tác

Tính năng của OpenCV:

Theo tính năng và ứng dụng của OpenCV, có thể chia thư viện này thánh các nhómtính năng và module tương ứng như sau:

• Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui)• Phát hiện các vật thể (objdetect, features2d, nonfree)

• Geometry-based monocular hoặc stereo computer vision (calib3d, stitching, videostab)• Computational photography (photo, video, superres)

• Machine learning and clustering (ml, flann) CUDA acceleration (gpu)

OpenCV hiện tại hỗ trợ nhiều ngôn ngữ, mỗi ngôn ngữ có thế mạnh riêng, vậy thìtùy theo nhu cầu mà chọn ngôn ngữ cho phù hợp.

Tùy theo nhu cầu và tính chất của công việc / dự án mà bạn hãy chọn ngôn ngữ phùhợp Ví dụ có thể xử lý hình ảnh bằng C++, thiết kế UX / UI thì ta có thể chuyển sangC# cho dễ thiết kế Riêng demo chương trình ta có thể chạy ngay bằng Python hoặcandroid Ngôn ngữ nào cũng có điểm cộng điểm trừ, hãy cân nhắc tuỳ project cho phùhợp.

Trang 21

2.1.3 Thuật toán K-means

Thuật toán K-means là gì ?

Thuật toán K-means là một thuật toán phân cụm dữ liệu không giám sát phổ biếnđược sử dụng để phân chia tập dữ liệu thành các nhóm (cụm) riêng biệt dựa trên tínhchất tương đồng của các điểm dữ liệu Thuật toán này hoạt động dựa trên nguyên tắctối thiểu hóa tổng phương sai bình phương giữa các điểm dữ liệu trong mỗi cụm vàtâm cụm tương ứng.

bình của tất cả các điểm dữ liệu đã được gán cho cụm đó.

• Bước 4: Lặp lại: Lặp lại bước 2 và bước 3 cho đến khi hội tụ, tức là vị trí của cáctâm cụm không thay đổi đáng kể sau mỗi lần lặp.

Trang 22

Hình 2.1: Quy trình hoạt động của thuật toán K-means

Ứng dụng của thuật toán K-means

• Phân tích thị trường: Phân chia khách hàng thành các nhóm dựa trên thói quenmua sắm.

• Xử lý ảnh: Phân chia hình ảnh thành các vùng có màu sắc hoặc kết cấu tương tự.• Phân tích sinh học: Phân chia các gen hoặc protein thành các nhóm chức năng.• Khai thác văn bản: Phân chia các tài liệu văn bản thành các chủ đề.

• Lọc thư rác: Phân chia email thành thư rác và thư mong muốn.

Trang 23

2.2 Lộ trình hoạt động

Để thực hiện quá trình tiền xử lý xóa dấu đỏ trong ảnh văn bản theo phương phápđã chọn, ta thực hiện tuần tự các bước sau:

2.2.1 Chuyển ảnh sang bộ màu HSV

Màu sắc có thể có các sắc độ khác nhau tùy thuộc vào tỉ lệ pha trộn màu Green trong hệ màu RGB Vì vậy hệ màu RGB khá phổ biến trong các thư viện xử lýảnh để đọc – ghi – xử lý ảnh Tuy nhiên, khi cần xác định 1 màu mà tạm thời chưaquan tâm đến độ đậm – nhạt của màu đó thì bộ màu RGB tỏ ra không được tối ưu.Khi đó, hệ màu HSV (Hue – Saturation– Value) tỏ ra hiệu quả hơn khi chỉ có giá trịHue đại diện cho màu sắc (dải màu đỏ - cam – vàng – lục – lam – chàm – tím) còn 2giá trị còn lại đại diện cho độ đậm nhạt (S) và độ sáng (V) của màu.

Ngày đăng: 19/05/2024, 16:33

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

Tài liệu liên quan