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

Không có nhận xét nào:

Đăng nhận xét