
10 thg 3, 2016
Ứng dụng nhận dạng danh thiếp tiếng Việt và cập nhật thông tin danh bạ trên android ( full soure code )
3.Đinh hướng giải pháp:
Hình 1 : Kiến trúc tổng quan ứng dụng.
Sinh viên thực hiện: Trần Đức Hải 20080886 Khóa 53 Lớp Công Nghệ Phần Mềm
11
Biểu đồ mô tả kiến trúc kiến trúc tổng quan, sự tương tác của ứng dụng với các
thành phần bên ngoài. Các ô chữ nhật có màu là các module bên trong hệ thống,
được xây dựng trong đồ án, còn các ô hình chữ nhật màu trắng là các thành phần
thư viện, module bên ngoài mà ứng dụng sử dụng.
Hệ thống xây dựng theo mô hình client-server. Client và server đều chứa các
module làm chức năng nhận dạng, trích rút thông tin. Ở Server còn chứa thêm
module tiền xử lý và hậu xử lý. Server sẽ cung cấp webservice nhận dạng và trích
rút thông tin liên lạc cho client.
• Preprocess: Đây là module tiền xử lý ảnh, đặt trên server.
• Postprocess: Đây là module xử lý chính tả Tiếng Việt
• ExtractInfomation: Đây là module trích rút thông tin liên lạc từ kết quả nhận
dạng.
Các thư viện và module bên ngoài ứng dụng sử dụng bao gồm:
• Camera Android API: bộ API cho phep lấy ảnh từ camera android.
• OpenCV: thư viện xử lý ảnh dùng để tiền xử lý ảnh cho OCR.
• Tesseract Engine: là một thư viện OCR.
• ContactProvider: cung cấp các thao tác xử lý với contact trong android.
3.1.Tiền xử lý ảnh với OpenCV:
Ảnh chụp từ camera thường có chất lượng không cao và chịu nhiều sự tác động của
môi trường đặc biệt là ánh sáng. Có rất nhiều các thuật toán xử lý nâng cao chất
lượng ảnh, nhưng việc tự cài đặt là mất thời gian. OpenCV là thư viện xử lý ảnh,
cung cấp rất nhiều hàm xử lý ảnh. Do đó ứng dụng sẽ sử dụng OpenCV là thư viện
để thực hiện quá trình tiền xử lý ảnh cho OCR.
3.2.Nhận dạng thông tin từ ảnh sử dụng Tesseract OCR Engine:
Người dùng sử dụng camera để chụp ảnh danh thiếp, từ ảnh này ứng dụng sẽ
nhận dạng thông tin trên đó. Ảnh chụp từ camera chất lượng càng cao, thì kết quả
nhận dạng càng chính xác. Android có nhiều phiên bản hệ điều hành khác nhau, các
dòng máy hỗ trợ khác nhau nên cần phải sử dụng API sao cho lấy được ảnh chất
lượng phù hợp nhất cho quá trình OCR. Một điều khó nữa là ảnh chụp các camera
của android hiện tại chất lượng không cao do đó cần tiền xử lý nâng cao chất lượng
ảnh trước khi đưa vào quá trình OCR.
OCR là công nghệ nhận dạng kí tự trên ảnh. Việc xây dựng OCR từ đầu là
phức tạp vì thế cần chọn lựa một bộ thư viện OCR cho quá trình lấy thông tin từ
ảnh. Tuy nhiên, các thư viện OCR hiện nay cho kết quả có độ chính xác tùy thuộc
vào chất lượng ảnh đầu vào, nên vẫn cần thông qua tiền xử lý ảnh.
Sinh viên thực hiện: Trần Đức Hải 20080886 Khóa 53 Lớp Công Nghệ Phần Mềm
12
3.3.Trích rút thông tin liên lạc:
Các thông tin thu được từ quá trình nhận dạng là các kí tự trên ảnh đầu vào. Từ các
thông tin này, ứng dụng sẽ trích rút các thông tin như số điện thoại, tên, địa chỉ,
email.
Hiện tại chưa có thư viện OCR nào đạt độ chính xác cao, do đó kết quả thu
từ quá trình nhận dạng có thể chứa lỗi chính tả nhiều. Để tối ưu kết quả nhận dạng
từ OCR cần bước chỉnh sửa lỗi kí tự nhận dạng được. Các lỗi này được xem như là
lỗi chính tả và cần phải sửa các lỗi chính tả này. Sau khi đã loại bỏ đi lỗi chính
tả,quá trình trích rút sẽ được thực thi.
3.4.Quản lý danh bạ:
Danh thiếp sau khi được trích rút thông tin sẽ được lưu vào contact của android.
Contact của android cho phép lưu đủ các thông tin của một danh thiếp. Đồng thời
contact của android có các API hỗ trợ quản lý contact như tìm kiếm, thêm, sửa, xóa.
4.Cơ sở lý thuyết:
4.1.Android:
Android là tên gọi của một hệ điều hành mã nguồn mở dựa trên nhân linux,
ban đầu được Google xây dựng dành cho các thiết bị di động nhưng hiện tại đã
vươn ra TV, HD Player, Tablet…).
4.1.1.Tổng quan:
Android thực thi ứng dụng thông qua máy ảo – tương tự JVM trên máy bàn –
gọi là Dalvik. Dalvik là một phần mềm mã nguồn mở được thiết kế và viết bởi Dan
Bornstein dựa trên JVM nhưng được cải tiến để có thể hoạt động hiệu quả trên các
thiết bị Android.
Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành Android.
Sinh viên thực hiện: Trần Đức Hải 20080886 Khóa 53 Lớp Công Nghệ Phần Mềm
13
Hình 2: Kiến trúc hệ điều hành android.
4.1.2.Contact Provider: [8]
Contact Provider là một thành phần của Android dùng để quản lý dữ liệu về con
người. Các dữ liệu này rất đa dạng, có thể định nghĩa khác nhau tùy vào nhu cầu
quản lý thông tin của con người. Contact Provider xây dựng cấu trúc dữ liệu để lưu
trữ thông tin về con người: Contact, RawContact và Data.
Hình 3: Cấu trúc contact trong android.
Row Contact biểu diễn thông tin về một người, được lấy từ một nguồn thông
tin. Một Contact có thể có nhiều Raw Contact, một Raw Contact tương ứng với một
Sinh viên thực hiện: Trần Đức Hải 20080886 Khóa 53 Lớp Công Nghệ Phần Mềm
14
nguồn dữ liệu lấy thông tin. Chính điều này giúp cho việc kết hợp thông tin một
người từ nhiều nguồn khác nhau.
Data chứa thông tin chi tiết về một Raw Contact, chẳng hạn như email, số
điện thoại, địa chỉ ... Một Raw Contact có thể có nhiều Data, điều này giúp cho một
Raw Contact liên kết tới nhiều số diện thoại, email, địa chỉ ... khác nhau.
Contact biểu diễn thông tin về con người, các thông tin này được kết hợp từ
các Row Contact. Contact Provider kết hợp nhiều Raw Contact từ tất cả các nguồn
thông tin vào chung một Contact. Điều này tạo điều kiện hiển thị và chỉnh sửa tất cả
các dữ liệu người dùng đã thu thập cho một người. Contact Provider quản lý việc
tạo ra các Raw Contact mới, và kết hợp với Raw Contact hiện có.
Một ứng dụng muốn sử dụng Contact Provider cần yêu cầu các quyền sau:
- Quyền truy cập tới Contact: READ_CONTACT.
- Quyền ghi tới Contact: WRITE_CONTACT.
4.1.3.Camera API: [ 9 ]
Camera được sử dụng để thiết lập các cài đặt chụp ảnh, bắt đầu / dừng hình
ảnh xem trước snap, và lấy khung hình để mã hóa cho video. Để truy cập vào
camera của điện thoại, bạn phải khai báo yêu cầu cho phép CAMERA trong
Manifest Android của bạn.
Các bước chung để sử dụng camera lấy ảnh:
• Phát hiện và truy cập Camera - kiểm tra sự tồn tại của camera và yêu cầu
truy cập.
• Tạo một Class Preview - Tạo một Class Preview mở rộng SurfaceView và
thực hiện các giao diện SurfaceHolder. Cho phép người dùng xem ảnh trước
khi chụp.
• Xây dựng một giao Preview – Tạo giao diện người dùng trên màn hình
Preview. Chẳng hạn trên giao diện có button chụp ảnh, chỉnh độ zoom ...
• Xây dựng lớp lắng nghe và xử lý sự kiện chụp ảnh.
• Chụp và lưu ảnh.
• Giải phóng camera - Sau khi sử dụng máy ảnh, ứng dụng cần giải phóng
camera. Máy ảnh phần cứng là một nguồn tài nguyên được chia sẻ phải được
quản lý một cách cẩn thận.
Sinh viên thực hiện: Trần Đức Hải 20080886 Khóa 53 Lớp Công Nghệ Phần Mềm
15
4.2.RESTful Webservice: [ 10 ]
REST định nghĩa các quy tắc kiến trúc để thiết kế Web services chú trọng vào tài
nguyên hệ thống, bao gồm các trạng thái tài nguyên được định dạng như thế nào và
được chuyển tải qua HTTP thông qua số lượng lớn người dùng và được viết bởi
những ngôn ngữ khác nhau. Nếu tính theo số dịch vụ mạng sử dụng, REST đã nổi
lên trong vài năm qua như là một mô hình thiết kế dịch vụ chiếm ưu thế. Trong thực
tế, REST đã có những ảnh hưởng lớn và gần như thay thế SOAP và WSDL vì nó
đơn giản và dễ sử dụng hơn rất nhiều.
REST yêu cầu các nhà phát triển sử dụng phương thức HTTP một cách rõ ràng theo
cách tương thích với giao thức chuẩn. Nguyên lý thiết kế REST cơ bản này thiết lập
một ánh xạ 1-1 giữa các hành động tạo, đọc, cập nhật và xoá (CRUD) các quá trình
vận hành và các phương thức HTTP. Theo cách ánh xạ này thì:
•
Để tạo một tài nguyên trên máy chủ, bạn cần sử dụng phương thức POST.
•
Để truy xuất một tài nguyên, sử dụng GET.
•
Để thay đổi trạng thái một tài nguyên hoặc để cập nhật nó, sử dụng PUT.
•
Để huỷ bỏ hoặc xoá một tài nguyên, sử dụng DELETE.
Hình 4 . RESTful Webservice
Dữ liệu được truyền trong RESTful có thể được đóng gói dưới nhiều khuôn dạng
khác nhau như XML, JSON, XHTML... Do đó, nó cho phép các dịch vụ trên nền
tảng khác nhau có thể dễ dàng đóng gói dữ liệu và thao tác.
4.3.Công nghệ OCR:
OCR là một công nghệ phức tạp có thể chuyển đổi hình ảnh với văn bản sang
định dạng có thể chỉnh sửa. OCR cho phép bạn xử lý sách quét, ảnh chụp màn hình
và hình ảnh với văn bản và văn bản có thể chỉnh sửa như TXT, DOC hoặc các tập
tin PDF. Công nghệ này được sử dụng rộng rãi trong nhiều lĩnh vực và tiên tiến
nhất OCR hệ thống có thể xử lý hầu như tất cả các loại hình ảnh, thậm chí phức tạp
như quét trang tạp chí với hình ảnh và cột hoặc hình ảnh từ một điện thoại di động.
Sinh viên thực hiện: Trần Đức Hải 20080886 Khóa 53 Lớp Công Nghệ Phần Mềm
16

Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét