Tải bản đầy đủ (.doc) (32 trang)

BÁO CÁO ĐỒ ÁN CƠ SỞ - ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHỈNH SỬA ẢNH

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 (1.67 MB, 32 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN

Khoa Khoa Học Máy Tính

BÁO CÁO ĐỒ ÁN CƠ SỞ 5

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHỈNH

SỬA ẢNH

Sinh viên thực hiện : Huỳnh Văn Niên – 18IT2
Giảng viên hướng dẫn: TS. Nguyễn Đức Hiển

Đà Nẵng, tháng 5 năm 2021


TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN

Khoa Khoa Học Máy Tính

ĐỒ ÁN CƠ SỞ 5

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHỈNH
SỬA ẢNH


Đà Nẵng, tháng 5 năm 2021



Lời mở đầu
Cùng với sự phát triển không ngừng của công nghệ thông tin, các sản phẩm điện thoại
thông minh ra đời, các thiết bị di động như điện thoại, máy tính bảng, máy nghe nhạc,
selfie... ngày càng phát triển mạnh mẽ, tạo nên cuộc cạnh tranh giữa các hãng phát
triển di động. Ngày càng nhiều sản phẩm di động thông minh ra đời được nâng cấp và
cải thiện rất lớn về hiệu suất cũng như cấu hình cao đáp ứng nhu cầu của người sử
dụng.
Bên cạnh những chức năng quan trọng của một chiếc smartphone, một chức
năng cũng không thể thiếu đó là chiếc camera chụp ảnh, để lưu trữ lại những kỷ niệm
đẹp, những khoảnh khắc ý nghĩa... Những chiếc smartphone ngày càng được cải thiện
cả về tính năng lẫn chất lượng phần cứng, camera trên điện thoại cũng ngày một hồn
thiện hơn, áp dụng những cơng nghệ xử lý ảnh tiên tiến để cho ra những bức ảnh đẹp
và trân thực nhất, đáp ứng nhu cầu chụp ảnh, selfie với chất lượng hình ảnh cao.
Tuy nhiên, những chiếc camera mặc định của điện thoại thường chỉ cho ra
những hình ảnh thơ và khơng làm hài lịng người sử dụng, đôi khi họ muốn biến
những bức ảnh kém nổi bật sau khi chụp trở nên lung linh và sắc nét hơn, với những
hiệu ứng biến đổi màu sắc, hiệu ứng khung ảnh, làm cho bức ảnh trở nên khác biệt. Và
họ cần một ứng dụng khác biệt có thể thay thế ứng dụng mặc định mà hệ điều hành
cung cấp có thể tùy chỉnh bức ảnh sau khi chụp theo sở thích của mỗi người.
Bởi vậy trước nhu cầu và lợi thế đó, em quyết định nghiên cứu và xây dựng ứng dụng:
“Xây dựng ứng dụng chỉnh sửa ảnh”.
Ứng dụng có thể cho phép mọi người chỉnh sửa các hiệu ứng, biển đổi tăng
sáng tối cho bức ảnh, có thể tạo style, thêm text hoặc các sticker ngộ nghĩnh cho bức
ảnh. Bên cạnh đó sau khi xử lý ảnh xong, người dùng có thể sử dụng các tính năng
như phát hiện và dịch chữ trên ảnh, thêm ảnh vào cho sinh động.

Đồ án cơ sở 5

Huỳnh Văn Niên - 18IT2



Lời cảm ơn
Để hoàn thành tốt đề tài đồ án lần này, ngoài sự nỗ lực của bản thân, em còn nhận
được sự quan tâm giúp đỡ của nhiều tập thể và cá nhân.
Trước hết, em xin gửi tới toàn thể các thầy, cô giáo trong Đại học Công nghệ thông
tin và Truyền thông – Đại học Đà Nẵng lời cảm ơn chân thành nhất. Đặc biệt, em xin
bày tỏ lòng biết ơn sâu sắc tới Giáo viên hướng dẫn – TS. Nguyễn Đức Hiển đã tận
tâm hướng dẫn em trong suốt q trình thực tập và hồn thiện đề tài.
Qua đây, em xin chân thành cảm ơn ban lãnh đạo và thầy giáo hướng dẫn cùng bạn bè
đã tạo mọi điều kiện thuận lợi có được những kiến thức thực tế cần thiết.
Cuối cùng em kính chúc quý thầy, cô dồi dào sức khỏe và thành công trong sự
nghiệp, đạt được nhiều thành công tốt đẹp

Đồ án cơ sở 5

Huỳnh Văn Niên - 18IT2


MỤC LỤC
Chương 1
1.1
1.2
1.3

Giới thiệu..............................................................1

Tổng quan........................................................................................................1
Mục tiêu...........................................................................................................1
Các chức năng dự kiến:....................................................................................1


Chương 2

Cơ sở lý thuyết và công cụ....................................4

2.1 Tổng quan về xử lý ảnh....................................................................................4
2.1.1 Xử lý ảnh là gì?.........................................................................................4
2.1.2 Một số định nghĩa liên quan......................................................................5
2.1.3 Bộ lọc (Image Filtering) trên android........................................................5
2.2 Nhận diện ký tự (OCR)....................................................................................7
2.2.1 Định nghĩa.................................................................................................7
2.2.2 Cách thức nhận diện ký tự.........................................................................8
2.2.3 Tesseract OCR...........................................................................................8
2.3 Firebase ML Kit.............................................................................................10
2.3.1 Firebase ML Kit là gì?.............................................................................10
2.3.2 Các tính năng của ML Kit.......................................................................10
2.3.3 Firebase Translation API.........................................................................10
2.4 IDE và ngơn ngữ lập trình..............................................................................11

Chương 3

Phân tích thiết kế hệ thống...................................12

3.1 Phân tích bài tốn...........................................................................................12
3.1.1 u cầu chức năng của ứng dụng............................................................12
3.1.2 Yêu cầu phi chức năng............................................................................12
3.1.3 Phương pháp............................................................................................12
3.2 Phân tích thiết kế hệ thống.............................................................................13
3.2.1 Biều đồ Usecase tổng quan......................................................................13
3.2.2 Biểu đồ hoạt động....................................................................................13


Chương 4

Kết quả xây dựng ứng dụng.................................16

4.1 Triển khai thư viện.........................................................................................16
4.2 Giao diện màn hình chính..............................................................................17
4.3 Chức năng của ứng dụng................................................................................18
4.3.1 Chức năng filter.......................................................................................18
4.3.2 Chức năng Edit:.......................................................................................19
4.3.3 Chức năng Crop.......................................................................................20
4.3.4 Chức năng nhận diện và dịch chữ............................................................20
4.3.5 Các chức năng khác.................................................................................21

Chương 5
5.1
5.2
5.3

Kết luận và hướng phát triển................................22

Ưu điểm.........................................................................................................22
Hạn chế..........................................................................................................22
Hướng phát triển............................................................................................22

Tài liệu tham khảo...................................................................23

Đồ án cơ sở 5

Huỳnh Văn Niên - 18IT2



DANH MỤC CÁC BIỂU ĐỒ

Biểu đồ 1: Biểu đồ usecase.........................................................................................13
Biểu đồ 2: Biểu đồ hoạt động chọn ảnh......................................................................14
Biểu đồ 3: Biểu đồ hoạt động của bộ lọc....................................................................14
Biểu đồ 4: Biểu đồ hoạt động của chức năng dịch......................................................15

Đồ án cơ sở 5

Huỳnh Văn Niên - 18IT2


DANH MỤC HÌNH
Hình 1 Q trình xử lý ảnh...........................................................................................4
Hình 2 Một số định nghĩa liên quan về ảnh số..............................................................5
Hình 3 Nguyên tắc hoạt động của bộ lọc......................................................................6
Hình 4 Cách thức hoạt động củaTesseract OCR...........................................................9
Hình 5 Bố cục giao diện màn hình chính....................................................................17
Hình 6 Chức năng filter..............................................................................................18
Hình 7 Chức năng điều chỉnh thuộc tính ảnh..............................................................19
Hình 8 Chức năng Crop..............................................................................................20
Hình 9 Chức năng nhận diện và dịch chữ...................................................................20
Hình 10 Chức năng khác............................................................................................21

Đồ án cơ sở 5

Huỳnh Văn Niên - 18IT2



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

Cụm từ

Viết tắt

1

Artificial intelligence (Trí tuệ nhân tạo)

AI

2

Optical Character Recognition (Nhận diện

3

ký tự quang học)
Hệ màu (red, green, blue)
Application Programming Interface

4

(Phương thức trung gian kết nối các ứng

5

dụng và thư viện khác nhau.)

Software Development Kit (nền tảng

Đồ án cơ sở 5

phát triển ứng dụng)

OCR
RGB
API

SDK

Huỳnh Văn Niên - 18IT2


Chương 1

Giới thiệu

1.1 Tổng quan
Ngày nay, khi chất lượng cuộc sống ngày được cải thiện thì người ta quan tâm nhiều
đến giá trị tinh thần hơn. Vì vậy những khoảnh khắc vui tươi hạnh phúc, những hình
ảnh ấn tượng hằng ngày luôn khiến chúng ta luôn mong muốn giữ lại. Bên cạnh đó, sự
phát triển của Internet thì các mạng xã hội như Facebook, Twitter, Instagram là nơi để
mọi người trao đổi chia sẻ những suy nghĩ cũng như những điều họ thấy trong cuộc
sống và hình ảnh trở thành một thứ tuyệt vời để thể hiện những hoạt động đó.
Cùng với đó là sự ra đời của các dịng điện thoại thông minh với camera ngày
càng tân tiến đã thúc đẩy mạnh mẽ các nhà phát triển ứng dụng ngày càng tập trung
nhiều vào việc sáng tạo các ứng dụng chỉnh sửa ảnh.
Trên cơ sở trên, đồ án lần này em sẽ xây dựng một ứng dụng chỉnh sửa ảnh trên

android nhằm cụ thể hóa các chức năng để mang lại những hình ảnh đẹp cho người sử
dụng. Đồng thời tích hợp với khả năng nhận diện phát hiện chữ trên ảnh đồng thời
dịch ngơn ngữ đó sang ngơn ngữ dịch.

1.2 Mục tiêu
Xây dựng thành công ứng dụng giúp cho người sử dụng có thể dễ dàng sử dụng các
chức năng để làm các bức ảnh trở nên đẹp và sống động hơn.

1.3 Các chức năng dự kiến:
-

Đọc và lưu ảnh

-

Đảo chiều hình ảnh

-

Thay đổi độ tương phản, sáng tối

-

Thay đổi kích thước

-

Cắt ảnh

-


Tạo các lớp phủ cho hình ảnh

-

Ghép ảnh

-

Bổ sung các chức năng khác:
 Tải ảnh từ thư viện hoặc chụp ảnh trực tiếp từ camera để dịch chữ
Tiếng anh (nếu có) trong hình ảnh thành tiếng Việt
 Thêm sticker, biểu tượng vào hình ảnh…

Ứng dụng chỉnh sửa ảnh

1


1.4 Kế hoạch thực hiện:
Thời gian

Nội dung thực hiện

Tuần thứ 34

Tìm hiểu đề tài, cơng cụ lập trình, ngơn ngữ lập trình

từ 22/03/2021 đến
Viết đề cương chi tiết, báo cáo với giảng viên hướng dẫn


28/03/2021
Tuần thứ 35

Tìm hiểu kĩ thuật xử lý hình ảnh, tham khảo các tài liệu và cấu

từ 29/03/2021 đến

trúc định hướng chương trình

4/04/2021

Báo cáo tiến độ đồ án với giảng viên hướng dẫn
Chương trình demo nhỏ cho từng chức năng để kiểm tra khả

Tuần thứ 36

năng hoạt động và có biện pháp thay đổi cấu trúc, chức năng

từ 05/04/2021 đến

chương trình hợp lý.

11/04/2021
Báo cáo tiến độ đồ án với giảng viên hướng dẫn
Tuần thứ 37

Xây dựng giao diện cho ứng dụng

từ 12/04/2021 đến

Báo cáo tiến độ đồ án với giảng viên hướng dẫn

18/04/2021
Tuần thứ 38, 39

Xây dựng chức năng trên chương trình

từ 19/04/2021 đến
Báo cáo tiến độ đồ án với giảng viên hướng dẫn

2/05/2021
Tuần
từ

thứ

40,41

3/05/2021

16/05/2021

Tiếp tục xây dựng các chức năng, tìm và phát hiện các lỗi

đến
Báo cáo tiến độ đồ án với giảng viên

Tuần thứ 42

Kiểm tra sự hoạt động tổng quan của chương trình và viết báo


từ 17/05/2021 đến

cáo

23/05/2021

Báo cáo tiến độ đồ án với giảng viên

Tuần thứ 43
từ 18/05/2021 đến
30/05/2021

Hoàn thành báo báo đồ án và nộp lên hệ thống. Nhận được đồng
ý cho bảo vệ của giảng viên hướng dẫn

1.5 Cấu trúc báo cáo:
Cấu trúc đồ án bao gồm 5 chương:
-

Chương 1: Giới thiệu

Ứng dụng chỉnh sửa ảnh

2


Mô tả tổng quan về lý do chọn đề tài, các mục tiêu, chức năng dự kiến, kế
hoạch thực hiện
-


Chương 2: Cơ sở lý thuyết
Trong chương này trình bày các lý thuyết hỗ trợ liên quan trực tiếp đến đồ án
bao gồm về định nghĩa, cách thức hoạt động cũng như về các thư viện đi kèm

-

Chương 3: Phân tích thiết kế hệ thống
Phân tích bài tốn, giới thiệu các chức năng và phi chức năng, phương pháp
thực hiện, và các biểu đồ

-

Chương 4: Kết quả xây dựng ứng dụng
Trình bày về tính ứng dụng của sản phẩm, cụ thể là các chức năng

-

Chương 5: Kết luận và hướng phát triển
Đưa ra đánh giá về ưu, khuyết điểm trong đồ án lần này, đồng thời định ra
hướng phát triển trong tương lai

Ứng dụng chỉnh sửa ảnh

3


Chương 2

Cơ sở lý thuyết và công cụ


2.1 Tổng quan về xử lý ảnh
2.1.1 Xử lý ảnh là gì?
Xử lý ảnh là một lĩnh vực mang tính khoa học và cơng nghệ. Nó là một ngành khoa
học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất
nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên
dụng riêng cho nó.
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh
và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo
được truyền qua cáp từ Luân đôn đến New York từ những năm 1920. Việc nâng cao
chất lượng ảnh được phát triển vào khoảng những năm 1955. Điều này có thể giải
thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá
trình xử lý ảnh số thuận lợi. Năm 1964, máy tính đã có khả năng xử lý và nâng cao
chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên,
lưu ảnh. Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng
ảnh phát triển không ngừng. Các phương pháp tri thức nhân tạo như mạng nơron nhân
tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp
dụng rộng rãi và thu nhiều kết quả khả quan.
Quá trình xử lý nhận dạng ảnh là một quá trình gồm các thao tác nhằm biến đổi một
ảnh đầu và để cho ra một kết quả hoặc một kết luận.

Hình 1 Quá trình xử lý ảnh

Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như
Camera, máy chụp ảnh). Sau đó, qua Xử lý ảnh thì ảnh được chuyển trực tiếp thành
ảnh số tạo thuận lợi cho xử lý tiếp theo. Kết quả của xử lý ảnh có thể là: cho ra một
ảnh tốt hơn theo mong muốn của người dùng; Phân tích ảnh để thu được thơng tin để
phân loại
ảnh và nhận biết ảnh; Rút ra những nhận xét, kết luận .v.v…
Ứng dụng chỉnh sửa ảnh


4


2.1.2

Một số định nghĩa liên quan

Ảnh số: " một hình ảnh có thể được định nghĩa là hàm hai chiều, f (x, y), trong đó x và
y là tọa độ không gian (mặt phẳng) và biên độ của f tại bất kỳ cặp tọa độ (x, y) nào
được gọi là cường độ hoặc mức độ màu xám của hình ảnh tại điểm đó. Khi x, y và các
giá trị cường độ của f đều là các đại lượng hữu hạn, rời rạc, chúng ta gọi hình ảnh là
hình ảnh kỹ thuật số".

Hình 2 Một số định nghĩa liên quan về ảnh số

Điểm ảnh: "hình ảnh kỹ thuật số chứa một số lượng hữu hạn các hàng và cột của các
phần tử. Mỗi phần tử được gọi là pixel "
Độ phân giải: "độ phân giải là thước đo của chi tiết rõ ràng nhỏ nhất trong ảnh, được
tính là số điểm (pixel) trên một đơn vị khoảng cách ( dpi)"
Các định dạng phổ biển của ảnh số bao gồm:
 1 giá trị trên điểm/pixel ( B&W hay Grayscale)
 3 giá trị trên điểm/pixel (Red, Green, Blue)
 4 giá trị trị trên điểm/pixel ( Red, Green, Blue, + “Alpha” or Opacity)
Trong đồ án lần này các bức ảnh được xử lý trên định dạng RGB
2.1.3 Bộ lọc (Image Filtering) trên android
Định nghĩa
Bộ lọc là hệ thống dùng để làm biến dạng sự phân bố tần số của các thành phần tín
hiệu theo các chỉ tiêu gọi đã cho được gọi là bộ lọc số.
Bộ lọc ảnh số (Filter) có ý nghĩa quan trọng trong việc tạo ra các hiệu ứng trong ảnh, 1

số hiệu ứng nhờ sử dụng các bộ lọc làm mờ (Blur), làm trơn (Smooth),...
Ứng dụng chỉnh sửa ảnh

5


Nguyên tắc chung của các phương pháp lọc là cho ma trận ảnh nhân chập với 1 ma
trận lọc (Kernel) hay cịn được gọi là các phép tính nhân chập trên ảnh. Ma trận lọc
lọc (Kernel) cịn có thể được gọi là cửa số chập, cửa sổ lọc, mặt nạ,...

Hình 3 Nguyên tắc hoạt động của bộ lọc

Bộ lọc hình ảnh cho phép thêm các hiệu ứng khác nhau trên hình ảnh phục vụ cho hai
mục đích của xử lý hình ảnh:
 Hiểu hình ảnh (Image Understanding): Hiểu hình ảnh là quá trình thực sự diễn
giải các vùng / đối tượng đó để tìm ra điều gì đang thực sự xảy ra trong hình
ảnh. Nó được sử dụng để xác định nội dung của hình ảnh, hình ảnh thời tiết có
khn mặt người, vật thể (xe bt, xe lửa, v.v.), đo kích thước của vật thể, v.v.
OpenCV (Open Source Computer Vision Library) là một trong những thư viện
chính được sử dụng để hiểu hình ảnh.
 Làm đẹp hình ảnh (Image Beautify): Nó được sử dụng để làm đẹp hình ảnh
bằng cách thêm các bộ lọc khác nhau, điều chỉnh màu sắc, điều chỉnh độ tương
phản, v.v.

Ứng dụng chỉnh sửa ảnh

6


Trong đồ án này, các bộ lọc làm đẹp hình ảnh được sử dụng trong ứng dụng:

-

ToneCurveSubfilter : Với bộ lọc này, có thể thay đổi các kênh RGB của bất kỳ
hình ảnh nào để tạo ra kết quả mong đợi.

-

SaturationSubfitler : Được sử dụng để thay đổi độ bão hịa màu của hình ảnh.

-

ColorOverlaySubfilter : overlay bất kỳ hình ảnh nào với màu sắc mà bạn chọn.

-

ContrastSubfilter : Được sử dụng để thay đổi giá trị tương phản của hình ảnh.

-

BrightnessSubfilter : Để thay đổi mức độ sáng.

-

VignetteSubfilter : Để áp dụng hiệu ứng làm mờ nét ảnh trên hình ảnh.

2.2 Nhận diện ký tự (OCR)
2.2.1 Định nghĩa
OCR là thuật ngữ được viết tắt bởi cụm từ Optical Character Recognition (dịch là:
nhận dạng ký tự quang học). Đây là công nghệ chuyên dùng để đọc ký tự ở 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, ở OCR 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…
Nhận dạng ký tự quang học (OCR) là một dạng công nghệ xác định các ký tự - như số
và chữ cái - có trong hình ảnh. Đơi khi được gọi là Nhận dạng Văn bản, OCR cũng
nhận dạng các mẫu và phân loại thơng tin để Trí tuệ nhân tạo (AI) sử dụng.
OCR được hình thành từ một lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ nhận tạo
và machine vision. Mặc dù công việc nghiên cứu học thuật vẫn tiếp tục, một phần
công việc của OCR đã chuyển sang ứng dụng trong thực tế với các kỹ thuật đã được
chứng minh.
Nhận dạng ký tự quang học (dùng các kỹ thuật quang học chẳng hạn như gương và
ống kính) và nhận dạng ký tự số (sử dụng máy quét và các thuật tốn máy tính) lúc
đầu được xem xét như hai lĩnh vực khác nhau. Bởi vì chỉ có rất ít các ứng dụng tồn tại
với các kỹ thuật quang học thực sự, bởi vậy thuật ngữ Nhận dạng ký tự quang học
được mở rộng và bao gồm luôn ý nghĩa nhận dạng ký tự số

Ứng dụng chỉnh sửa ảnh

7


2.2.2 Cách thức nhận diện ký tự
-

Công nghệ này bắt đầu với phần quét vật lý lên tài liệu. Khi tất cả các trang
được quét, phần mềm OCR sẽ chuyển đổi tài liệu thành phiên bản hai màu hoặc
đen trắng.

-


Hình ảnh được quét hoặc bitmap được phân tích và các vùng sáng và tối được
xác định. Ở đây vùng tối được xác định là các ký tự và vùng sáng được xác
định là nền.

-

Bây giờ các vùng tối được xử lý thêm để tìm chữ cái hoặc chữ số trong bảng
chữ cái. Các chương trình OCR có thể khác nhau về công nghệ của chúng
nhưng liên quan đến việc nhắm mục tiêu một ký tự, từ hoặc khối văn bản tại
một thời điểm. Sau khi xác định các ký tự, chương trình sử dụng một trong hai
thuật tốn:
 Nhận dạng mẫu: Tại đây Chương trình OCR được cung cấp với các ví
dụ khác nhau về văn bản ở nhiều phơng chữ và định dạng khác nhau. Nó
giúp các chương trình so sánh, nhận dạng và giúp xác định các ký tự
trong tài liệu được quét.
 Tính năng phát hiện: Trong loại thuật toán này, các quy tắc khác nhau
được áp dụng. Theo các tính năng của một chữ cái hoặc số cụ thể để xác
định các ký tự trong tài liệu. Các tính năng có thể bao gồm các hình
dạng khác nhau như số lượng góc, đường thẳng, đường chéo hoặc đường
cong trong ký tự để so sánh. Ví dụ, trong chữ “H” hai đường dọc và một
đường ngang ở giữa chúng ở giữa.

-

Khi một ký tự được xác định, nó sẽ được chuyển đổi thành mã ASCII
(American Standard Code for Information Interchange) mà hệ thống máy tính
có thể sử dụng để xử lý các thao tác tiếp theo.

2.2.3 Tesseract OCR
Tesseract OCR là gì ?

Tesseract OCR là một cơng cụ đọc ký tự quang học được phát triển bởi các phịng thí
nghiệm của HP vào năm 1985 và có nguồn mở vào năm 2005. Kể từ năm 2006, nó
được phát triển bởi Google.

Ứng dụng chỉnh sửa ảnh

8


Tesseract có hỗ trợ Unicode (UTF-8) và có thể nhận ra hơn 100 ngơn ngữ “độc
lập” và do đó có thể được sử dụng để xây dựng các phần mềm quét ngôn ngữ khác
nhau. Phiên bản Tesseract mới nhất là Tesseract 4 . Nó bổ sung một cơng cụ OCR dựa
trên mạng thần kinh (LSTM) mới tập trung vào nhận dạng dịng nhưng vẫn hỗ trợ
cơng cụ Tesseract OCR kế thừa hoạt động bằng cách nhận dạng các mẫu ký tự.

Cách thức hoạt động của Tesseract OCR
Để đi từ hình ảnh đến hoàn thành, OCR trải qua một loạt các bước:
1. Xử lý trước dữ liệu hình ảnh, ví dụ: chuyển đổi sang thang màu xám, làm mịn,
khử lệch, lọc.
2. Phát hiện dòng, từ và ký tự.
3. Đưa ra danh sách các ký tự ứng cử viên được xếp hạng dựa trên tập dữ liệu
được đào tạo (ở đây phương thức setDataPath () được sử dụng để thiết lập
đường dẫn của dữ liệu huấn luyện)
4. Đăng ký tự được nhận dạng trong quy trình, chọn ký tự tốt nhất dựa trên độ tin
cậy từ dữ liệu ngôn ngữ. Dữ liệu ngôn ngữ bao gồm từ điển, quy tắc ngữ pháp,
v.v.
5. Vào cuối quá trình OCR, các ký tự được chuyển đổi thành ASCII hoặc các mã
tương tự. Trong hệ thống này, mỗi chữ cái được biểu diễn bằng một số nhị phân
7 bit khác nhau


Hình 4 Cách thức hoạt động củaTesseract OCR

Ứng dụng chỉnh sửa ảnh

9


Q trình OCR tuy nhiều bước như phân tích cấu trúc văn bản, tách dạng, tách kí tự,
kiểm tra ngữ nghĩa để tăng độ chính xác… nhưng bước cơ sở mà bất kỳ chương trình
OCR nào cũng phải thực hiện là nhận dạng kí tự (đơn lẻ). Trong thời gian hạn hẹp của
đồ án môn học em sử dụng model đã được train bởi trí tuệ nhân tạo nhằm phân tích kí
tự

2.3 Firebase ML Kit
2.3.1 Firebase ML Kit là gì?
Firebase ML Kit là SDK di động cho phép các nhà phát triển ứng dụng Android và
iOS. Nó bao gồm các công nghệ ML của Google, chẳng hạn như API Google Cloud
Vision, TensorFlow Lite và API mạng thần kinh Android cùng nhau trong một SDK
duy nhất cho phép bạn áp dụng các kỹ thuật ML cho ứng dụng của mình một cách dễ
dàng.
Các API này có thể chạy trên thiết bị hoặc trên đám mây. API trên thiết bị của nó
xử lý dữ liệu của bạn một cách nhanh chóng và hoạt động ngay cả khi khơng có kết
nối mạng. Các API dựa trên đám mây của nó tận dụng sức mạnh của công nghệ
machine learning của Google Cloud Platform để mang đến cho bạn mức độ chính xác
cao
2.3.2 Các tính năng của ML Kit
Hiện tại ML Kit đang cung cấp 5 API cơ sở và custom model support
-

Text recognition (nhận dạng văn bản)


-

Image labeling (ghi nhãn hình ảnh)

-

Barcode scanning (quét mã vạch)

-

Face detection (nhận diện khuôn mặt)

-

Landmark recognition (nhận diện mốc)

Trong tương lai gần, ML Kit sẽ cho ra mắt thêm API rất đáng mong đợi là High
density contour và Smart reply API -> cung cấp cho ta đoạn văn bản phù hợp với ngữ
cảnh
2.3.3 Firebase Translation API
Với ML Kit sử dụng API translation , bạn có thể dịch động văn bản giữa hơn 50 ngơn
ngữ.
Các khả năng chính:
Ứng dụng chỉnh sửa ảnh

10


-


Hỗ trợ ngôn ngữ rộng: dịch giữa hơn 50 ngôn ngữ khác nhau.

-

Các model translation đã được chứng nhận: hỗ trợ bởi các mơ hình tương tự
được sử dụng bởi chế độ ngoại tuyến của ứng dụng Google Dịch.

-

Quản lý mơ hình động: giữ cho u cầu lưu trữ trên thiết bị ở mức thấp bằng
cách tải xuống và quản lý động các gói ngơn ngữ.

-

Chạy trên thiết bị: bản dịch được thực hiện nhanh chóng và khơng u cầu bạn
gửi văn bản của người dùng đến máy chủ từ xa.

2.4 IDE và ngơn ngữ lập trình
-

Android Studio: là một phần mềm bao gồm các bộ công cụ khác nhau dùng để
phát triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các
loại điện thoại smartphone, các tablet... Android Studio phù hợp với việc phát
triển các ứng dụng dành cho người mới.

-

Ngôn ngữ Java: Sử dụng Java trong việc phát triển giao diện và các chức năng
cho một ứng dụng


Ứng dụng chỉnh sửa ảnh

11


Chương 3
3.1

Phân tích thiết kế hệ thống

Phân tích bài tốn

Ứng dụng chỉnh sửa ảnh là một dạng ứng dụng phổ biến trên nền tảng di động. Ứng
dụng cho phép người dùng chỉnh sửa các thuộc tính của hình ảnh như kích thước, cắt
ảnh, xoay ảnh, chèn ảnh ... Nói một cách đơn giản, ứng dụng cho phép biến đổi một
bức ảnh thành một bức ảnh đẹp hơn thông qua các bộ lọc được tích hợp trong thư viện
3.1.1 Yêu cầu chức năng của ứng dụng
Xây dựng được ứng dụng cho phép người dùng tải ảnh lên để thao tác các chức năng
trên ảnh:
-

Bộ lọc làm đẹp ảnh

-

Điều chỉnh độ tương phản, sáng tối và độ bão hòa màu sắc

-


Cho phép tô màu brush trên ảnh

-

Thêm chữ, biểu tượng emoji hay ảnh

-

Điều chỉnh kích thước

-

Tính năng bổ sung: Nhận diện chữ Tiếng anh trên ảnh và dịch sang tiếng Việt

3.1.2 Yêu cầu phi chức năng
-

Bố cục giao diện của ứng dụng rõ ràng, tương thích với các thiết bị di động
khác nhau
Các chức năng hiển thị trực quan, dễ thao tác

-

Có thể hoạt động ngoại tuyến

-

Ít lỗi, tránh hiện tượng ứng dụng crash

3.1.3 Phương pháp

-

Tìm hiểu về các thuật tốn xử lí ảnh

-

Tìm hiểu các IDE, ngơn ngữ sử dụng

-

Tìm hiểu và tham khảo một số ứng dụng có cùng chức năng đã có sẵn

-

Thiết kế hệ thống chương trình

-

Xây dựng giao diện ứng dụng

-

Xây dựng các chức năng

-

Kiểm thử các chức năng

Ứng dụng chỉnh sửa ảnh


12


3.2

Phân tích thiết kế hệ thống

3.2.1 Biều đồ Usecase tổng quan

Biểu đồ 1: Biểu đồ usecase

3.2.2 Biểu đồ hoạt động

Ứng dụng chỉnh sửa ảnh

13


Biểu đồ 2: Biểu đồ hoạt động chọn ảnh

Biểu đồ 3: Biểu đồ hoạt động của bộ lọc

Ứng dụng chỉnh sửa ảnh

14


Biểu đồ 4: Biểu đồ hoạt động của chức năng dịch

Ứng dụng chỉnh sửa ảnh


15


Chương 4

Kết quả xây dựng ứng dụng

4.1 Triển khai thư viện
Triển khai các thư viện cần thiết:
-

Thư viện chỉnh sửa ảnh Photoeditor
 implementation 'com.burhanrashid52:photoeditor:0.4.0'

-

Thư viện Tesseract chứa các tess-two module để thực hiện nhận diện kí tự,
đồng thời tải các file dữ liệu đã được xử lý của các ngôn ngữ:
/> implementation 'com.rmtheis:tess-two:9.1.0'

-

Thư viện dịch văn bản
 implementation 'com.google.firebase:firebase-ml-natural- language:22.0.0'
 implementation 'com.google.firebase:firebase-ml-natural-language-translatemodel:20.0.8'

Ứng dụng chỉnh sửa ảnh

16



×