Ảnh chụp màn hình của ứng dụng đang chạy

Một phần của tài liệu Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên android smartphone (Trang 53 - 55)

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

4.1Ảnh chụp màn hình của ứng dụng đang chạy

Hình 4.1: Ảnh chụp màn hình của ứng dụng đang chạy.

4.3 Cấu trúc ứng dụng

Về cơ bản, do ứng dụng sử dụng bộ thư viện nguồn mở được chia làm hai phần chính đó là Java và các thư viện.

4.3.1 Phần Java

Thành phần đầu tiên của UIT-ANPR là phần Java, phần này thực hiện hầu hết những công việc quan trọng của ứng dung. Nó xử lý gần như tất cả những tác vụ liên quan tới việc xử dụng tài nguyên của hệ điều hành, như mở/tắt camare, thu nhận hình ảnh, hiển thị hình ảnh lên màn hình xem trước, cập nhật kết quả từ quá trình nhận dạng . . .

4.3.2 Phần thư viện

UIT-ANPR sử dụng bộ thư viện nguồn mở OpenCV cho quá trình nhận biết vùng biển số và xử lý hình ảnh, nhưng OpenCV lại được viết trên C, nên để cho thuận tiện, khóa luận sử dụng lại bộ thư viện JavaCV. JavaCV là một JNA (Java Native Access) wrapper cho OpenCV API được phát triển bởi cộng đồng nguồn mở từ khá lâu, JavaCV cung cấp lại tất cả những lớp, hàm tương tự OpenCV trên Java, nên có thể dễ dàng dùng trên ứng dụng Android.

4.4 Các lớp trong ứng dụng

Phần này sẽ trình bày cái nhìn tổng quan về các lớp được hiện thực, từ các lớp chính thực hiện những chức năng của ứng dụng đến các lớp xây dựng mô hình mạng neural Kohonen.

MainActivity:activity là một trong bốn thành phần chính của ứng dụng android, được dùng để hiển thị một màn hình mà tại đó người dùng có thể tương tác với chương trình. Trong UIT-ANPR, MainActivity là activity chính, được thực hiện ngay khi ứng dụng bắt đầu. MainActivity được dùng để khởi tạo các thành phần của ứng dụng như CameraPreview (hiển thị hình ảnh từ camera), PlateView (hiển thị kết quả từ quá trình nhận dạng). Bên cạnh đó, MainActivity đảm nhận việc lấy dữ liệu từ bộ nhận dạng kí tự đã được huấn luyện trước đó vào ứng dụng.

CameraPreview: thực hiện chức năng hiển thị hình ảnh thu được từ camera ra màn hình theo thời gian thực, đồng thời truyền tải hình ảnh này qua cho PlateView xử lý việc nhận dạng dưới dạng một mảng byte.

PlateView: nạp bộ phân loại dưới dạng file xml thu được từ quá trình huấn luyện tại mục 3.3 vào bộ nhận dạng vùng chứa biển số của ứng dụng. Sau đó, khi nhận được dữ liệu hình ảnh dưới dạng mảng byte từ CameraPreview, PlateView xử lý hình ảnh này, đưa qua cho nhận dạng vùng chứa biển số. Sau khi bộ nhận dạng vùng biển số phát hiện có biển số, PlateView nhận dữ liệu này (dưới dạng tọa độ) và thực hiện công việc chính của mình là vẽ một hình chữ nhật bao quanh vùng chứa biển số hiển thị trên màn

Chương 4. Hiện thực hệ thống nhận dạng biển số xe trên android smartphone

Một phần của tài liệu Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên android smartphone (Trang 53 - 55)