HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH ĐẶNG VĂN HÙNG – 10520070 NGÔ THANH TUẤN – 10520456 KHÓA LUẬN TỐT NGHIỆP NHẬN DẠNG BIỂN SỐ XE MÁY TRÊN KIT FRIEND
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
ĐẶNG VĂN HÙNG – 10520070
NGÔ THANH TUẤN – 10520456
KHÓA LUẬN TỐT NGHIỆP
NHẬN DẠNG BIỂN SỐ XE MÁY TRÊN KIT FRIENDLY
ARM TINY210 VƠI HỆ ĐIỀU HÀNH ANDROID
KỸ SƯ KỸ THUẬT MÁY TÍNH
GIẢNG VIÊN HƯỚNG DẪN THS LÊ HOÀI NGHĨA
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
ĐẶNG VĂN HÙNG – 10520070
NGÔ THANH TUẤN - 10520456
KHÓA LUẬN TỐT NGHIỆP
NHẬN DẠNG BIỂN SỐ XE MÁY TRÊN KIT FRIENDLY
ARM TINY210 VƠI HỆ ĐIỀU HÀNH ANDROID
KỸ SƯ KỸ THUẬT MÁY TÍNH
GIẢNG VIÊN HƯỚNG DẪN THS LÊ HOÀI NGHĨA
Trang 3DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin
1 ……… – Chủ tịch
2 ……… – Thư ký
3 ……… – Ủy viên
4 ……… – Ủy viên
Trang 4NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày… tháng… năm……
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
Tên khóa luận:
NHẬN DẠNG BIỂN SỐ XE MÁY TRÊN KIT FRIENDLY ARM TINY210
VƠI HỆ ĐIỀU HÀNH ANDROID Nhóm SV thực hiện: Cán bộ hướng dẫn/phản biện:
Đặng Văn Hùng 10520070 Ths Lê Hoài Nghĩa
Ngô Thanh Tuấn 10520456
Đánh giá Khóa luận
1 Về cuốn báo cáo:
Số trang _ Số chương _
Số bảng số liệu _ Số hình vẽ _
Số tài liệu tham khảo _ Sản phẩm _
Một số nhận xét về hình thức cuốn báo cáo:
Trang 52 Về nội dung nghiên cứu:
Trang 6NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày… tháng… năm……
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
Tên khóa luận:
NHẬN DẠNG BIỂN SỐ XE MÁY TRÊN KIT FRIENDLY ARM TINY210
VƠI HỆ ĐIỀU HÀNH ANDROID Nhóm SV thực hiện: Cán bộ hướng dẫn/phản biện:
Đặng Văn Hùng 10520070 Ths Lê Hoài Nghĩa
Ngô Thanh Tuấn 10520456
Đánh giá Khóa luận
1 Về cuốn báo cáo:
Số trang _ Số chương _
Số bảng số liệu _ Số hình vẽ _
Số tài liệu tham khảo _ Sản phẩm _
Một số nhận xét về hình thức cuốn báo cáo:
Trang 72 Về nội dung nghiên cứu:
Trang 8Chúng em xin cảm ơn khoa Kỹ Thuật Máy Tính trường Đại Học Công Nghệ Thông Tin – ĐHQGTPHCM, cảm ơn các thầy cô trong khoa đã tận tình giảng dạy, truyền đạt kiến thức quý báu trong những năm học vừa qua, giúp chúng em có một nền tảng kiến thức vững chắc để thực hiện khóa luận cũng như nghiên cứu học tập sau này
TP Hồ Chí Minh, tháng 12 năm 2014
Đặng Văn Hùng Ngô Thanh Tuấn
Trang 9Mục lục
CHƯƠNG 1 : MỞ ĐẦU 1
1.1 Tên khóa luận 1
1.2 Lí Do Và Mục Đích Chọn Đề Tài 1
1.3 Đối Tượng Và Phạm Vi Nghiên Cứu 2
CHƯƠNG 2:TỔNG QUAN VỀ ĐỀ TÀI 3
Lịch Sử Phát Triển 3
2.1 Trên Thế Giới 3
2.2 Trong nước 5
2.3 Tổng kết chương 8
2.4 CHƯƠNG 3 : XÂY DỰNG HỆ ĐIỀU HÀNH ANDROID TRÊN KIT FRIENDLY ARM 10
3.1 Giới thiệu KIT Friendly Arm Tiny 210 10
3.2 Hệ điều hành nhúng Linux 12
3.3 Cài đặt Android trên KIT Friendly Arm Tiny210 V2 15
3.3.1 Sơ lược hệ điều hành Android 15
3.3.2 Tải Superboot vào SD Card 17
3.3.3 Restore TF Card 23
3.3.4 Cấu hình file FriendlyARM.ini 24
CHƯƠNG 4: HỆ THỐNG NHẬN DIỆN BIỂN SỐ VÀ THÔNG TIN NGƯỜI DÙNG TRÊN ANDROID 28
4.1 Phát Hiện Và Định Vị Vùng Chứa Biển Số Xe 28
4.1.1 Đặc Trưng Haar Like 28
4.1.2 Thuật toán AdaBoost 31
Trang 104.1.3 Mô hình phân tầng Cascade 32
4.1.4 Hệ thống xác định vùng chứa biển số xe 34
4.1.5 Huấn luyện bộ phân loại 35
4.2 Tách Ký Tự 39
4.2.1 Tiền Xử Lý Vùng Ảnh Chứa Biển Số 40
4.2.2 Xác Định Ngưởng, Nhị phân hóa ảnh 41
4.2.3 Tách kí tự dựa trên đặc tính hình thái học 43
4.3 Nhận Dạng Ký Tự 45
4.3.1 Lịch sử phát triển mạng neural 45
4.3.2 Sơ lược về neural sinh học 48
4.3.3 So sánh mạng neural với máy tính truyền thống 50
4.3.4 Mạng Neural Nhân Tạo 50
4.3.5 Mạng neural Kohonen 55
4.3.6 Huấn Luyện Nhận Dạng Ký Tự 60
CHƯƠNG 5 : HIỆN THỰC HỆ THỐNG TRÊN KIT FRIENDLY ARM 64
5.1 Tính năng của ứng dụng 64
5.2 Cấu trúc ứng dụng 65
5.2.1 Phần Java Error! Bookmark not defined. 5.2.2 Phần thư viện 66
5.2.3 Phần máy chủ - web service Error! Bookmark not defined. 5.3 Các lớp trong ứng dụng 66 5.4 Chương trình huấn luyện mạng Kohonen Error! Bookmark not defined.
5.5 Hiệu chỉnh két quả dựa trên cú pháp Error! Bookmark not defined.
Trang 115.7 Tổng kết chương 71
CHƯƠNG 6 : TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN KHÓA LUẬN 73
6.1 Tổng kết 73
6.2 Những kết quả đạt được 73
6.3 Hướng phát triển 74
TÀI LIỆU THAM KHẢO 75
Trang 12Danh mục hình ảnh
Hình 2.1 Cụm Closed-circuit television cameras dùng cho hệ thống nhận diện biển
số cố định ở úc 4
Hình 2.2 Hệ thống nhận dạng trên xe tuần tra New South Wales Police Force Highway Patrol 4
Hình 2.3 Hệ Thống Nhận Diện Biển Số Xe Được Trang Bị Cho Xe Cảnh Sát Ở Hoa Kỳ 5
Hình 2.4 Ứng dụng nhận dạng của Biển Bạc ANPR 6
Hình 2.5 Ứng dụng nhận dạng trên máy bắn tốc độ 7
Hình 2.6 Giao diện của ứng dụng MT-BSX 8
Hình 3.1 : KIT Friendly Arm Tiny210 11
Hình 3.2 : Quá trình boot hệ thống linux trên PC 14
Hình 3.3 : Quá trình boot hệ thống Linux nhúng 15
Hình 3.4 : File SD-Flasher.exe 17
Hình 3.5 : Hộp thoại “Select your Machine” 18
Hình 3.6 : Giao diện của SD-Flasher.exe 18
Hình 3.7 : Đường dẫn file superboot 19
Hình 3.8 : Trạng thái Available “No” 20
Hình 3.9 : Relayout 20
Hình 3.10 : Scan Card 21
Hình 3.11 : Fuse superboot 22
Hình 3.12 : Restore TF Card 23
Hình 3.13 : Restore hoàn thành 24
Hình 3.14 : Chi tiết file FriendlyARM.ini 25
Hình 4.1 : Đặc trưng haar like cơ bản 29
Hình 4.2 Đặc Trưng haar like, đặc trưng cạnh 29
Hình 4.3 Đặc Trưng Haar like, đặc trưng đường 29
Hình 4.4 Đặc trưng Haar like, đặc trưng xung quanh tâm 29
Hình 4.5 Tính giá trị ảnh tích phân tại điểm có tọa độ (x, y) 30
Hình 4.6 Ví dụ cách tính nhanh các giá trị mức xám của vùng D trên ảnh 30
Hình 4.7: Mô hình phân tầng kết hợp các bộ phân loại yếu để xác định biển số 33
Hình 4.8 Kết hợp các bộ phận phân loại yếu thành bộ phân loại mạnh 34
Hình 4.9 Hệ thống xác định vùng chứa biển số xe 34
Hình 4.10: File miêu tả mẫu negative 36
Hình 4.11: File miêu tả mẫu positive 37
Hình 4.12: Cú pháp tạo file vector plate_vector.vec 37
Trang 13Hình 4.10 Chuyển ảnh màu sang ảnh trắng đen 41
Hình 4.11 Tăng tính tương phản bằng phương pháp lọc trung vị 41
Hình 4.12 Cách xác định ngưỡng động 42
Hình 4.13 Nhị phân hóa ảnh bằng phương pháp tìm ngưỡng 43
Hình 4.14 Tìm Đường Viền Trong Ảnh 44
Hình 4.15 các ký tự đã được tách riêng rẽ 45
Hình 4.16 Dữ liệu ảnh ký tự thu được 45
Hình 4.17 Cấu trúc của một neural sinh học điển hình 49
Hình 4.18 Biểu diễn một neural nhân tạo 53
Hình 4.19 Một dạng mạng neural Kohonen 57
Hình 4.21 Sơ đồ khối biểu diễn huấn luyện mạng neural Kohonen 63
Hình 5.1 : Giao diện Login của ứng dụng 64
Hình 5.2 : Phát hiện vùng chứa biển số xe 65
Hình 5.3 : Trích xuất thông tin vùng miền và người dùng 65
Hình 5.4 Kiểm tra trạng thái kết nối của thiết bị 67
Hình 5.5: Sơ đồ lớp loginActivity và các lớp liên quan 67
Hình 5.6: Sơ đồ lớp MainActivity và các lớp liên quan 69
Hình 5.7: sơ đồ các lớp của mạng kohonen 70
Trang 14DANH MỤC BẢNG
Bảng 3.1: Thông số kỹ thuật của KIT Friendly ARM Tiny210 12
Bảng 3.3: Kiến trúc hệ điều hành Linux 13
Bảng 3.4 : Giải thích các đối tƣợng trong file 27
Bảng 4.1 Mẫu đầu vào của mạng Kohonen 57
Bảng 4.2 Trọng số kết nối giữa các neuron trong mạng 57
Bảng 5.1: Kết quả thử nghiệm 1 71
Trang 15CHƯƠNG 1 : MỞ ĐẦU
1.1 Tên khóa luận
Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên KIT FRIENDLY TINY210
1.2 Lí Do Và Mục Đích Chọn Đề Tài
Ngày nay trên thế giới bên cạnh việc tăng trưởng kinh tế là sự phát triển của các ngành khoa học kỹ thuật nói chung, mà trong đó ngành công nghiệp sản xuất các phương tiện giao thông lại là một trong những ngành có tốc độ phát triển cực nhanh
Sự phát triển ấy, được thể hiện rõ ràng nhất thông qua hình ảnh các phương tiện giao thông trên thế giới ngày một tăng cao và đa dạng Tuy nhiên,điều đó lại gây ra một áp lực đối với những người và cơ quan các cấp quản lý,làm cho công tác quản
lý và giám sát sẽ khó khăn hơn, Và đây cũng là một trong những vấn nạn ở Việt Nam Công tác quản lý phương tiện giao thông nói chung và quản lý ôtô, xe máy là
vô cùng phức tạp cũng như công tác phát hiện, xử phạt các hành vi vi phạm giao thông, chống trộm, sẽ tốn nhiều thời gian và công sức hơn Để làm giảm lượng nhân lực trong việc công tác quản lý, kiểm soát phương tiện giao thông, trên thế giới đã nhanh chóng xây dựng hệ thống giám đối với các phương tiện giao thông Một yêu cầu đặt ra các hệ thống này phải tự động giám sát Một trong những hệ thống tự động như vậy là hệ thống tự động nhận dạng biển số xe, đặc trưng của nó là có khả năng thu nhận hình ảnh cũng như đọc và hiểu các biển số xe một cách tự động
Hệ thống như vậy có thể được sử dụng trong rất nhiều ứng dụng như trạm cân trạm kiểm tra an ninh của cơ quan hay trạm kiểm dịch của các xe chở thực phẩm khi vào trung tâm thành phố, các bãi giữ xe tự động, các hệ thống kiểm soát vi phạm giao thông hay trong các ứng dụng về an ninh như tìm kiếm xe mất cắp
Hiện nay với việc bùng nổ các thiết bị di dộng thông minh cũng như sức mạnh phần cứng hổ trợ trên nó và sự phổ cập của internet tốc độ cao tại việt nam (wifi miễn phí
đã có mặt trên 5 thành phố lớn của cả nước) Kit tiny friend arm là 1 kit nhúng được
Trang 16hỗ trợ các đặc tính tương tự như một điện thoại thông minh, kit có khả năng chạy được 3 hệ điều hành WINCE, LINUX và android
Qua những tìm hiểu trên nhóm đã hướng tới nghiên cứu và phát triển phần mềm nhận dạng biển số xe trên KIT Friendly Arm Tiny210 với hệ điều hành Android
1.3 Đối Tượng Và Phạm Vi Nghiên Cứu
Việc nhận dạng kí tự trên thiết bị di động không phải mới, nhiều ứng dụng hoạt động rất tốt,có độ chính xác cao ở trong và ngoài nước Nhiều mã nguồn mở hỗ trợ mạnh mẽ trong việc xử lý hình ảnh cũng như nhận dạng Nhưng việc nhận dạng mới thực hiện trên văn bản, chưa xuất hiện nhận dạng trên biển số xe Đặc biệt các kí tự trên biển số khác so với các kí tự trênvăn bản, nên muốn nhận dạng được ta phải làm cho ứng dụng hiểu được các kí tự này
Khóa luận sử dụng sự hỗ trợ khá mạnh trong việc xử lí hình ảnh của mã nguồn OpenCV để nhận dạng vùng biển số cũng như thao tác trên nó, trong giai đoạn nhận dạng kí tự có sử dụng mạng neural network cơ bản Kohonen để nhận dạng Việc kết hợp này bước đầu giúp quá trình phát triển ứng dụng linh hoạt hơn, mang lại hiệu quả khá cao
Khóa luận sẽ làm những việc sau:
1 Tổng hợp dữ liệu cho quá trình huấn luyện hệ thống
2 Tiền xử lý ảnh thu được từ Camera của thiết bị
3 Huấn luyện hệ thống nhằm phát hiện vùng chứa biển số
4 Tách các kí tự có trên biển số
5 Nhận dạng các kí tự
6 Xây dựng database và webservice để lưu trữ thông tin biển số
Trang 17CHƯƠNG 2:TỔNG QUAN VỀ ĐỀ TÀI
Lịch Sử Phát Triển
2.1
Kỹ thuật nhận dạng biển số (Automatic number plate recognition) đã được nghiên cứu từ năm 1976 tại chi nhánh phát triển khoa học Cảnh sát ở Anh Hệ thống kiểm thử lần đầu tiên vào năm 1979 Ca phát hiện trộm xe đầu tiên sử dụng hệ thống này
là vào 1981.Các hệ thống thử nghiệm ban đầu được triển khai trên các đường A1 và
ở Dartford Tunnel Hệ thống này đã được áp dụng để hỗ trợ kiểm soát lưu lượng, thu thập thông tin, xử lí vi phạm cho cảnh sát giao thông Hệ thống thu thập hình ảnh đòi hỏi phải có tầm nhìn rộng, thu nhận ảnh nhanh và cho chất lượng ảnh tốt Tuy nhiên do còn nhiều mặt giới hạn về công nghệ hệ thống này còn chưa được sử dụng rộng rãi cho đến những năm 1990
Kỹ Thuật này phát triển trên khía cạnh phần mềm của hệ thống máy tính Sử dụng các kỹ thuật sử lý ảnh sơ khai đầu tiên để nhận dạng ký tự các chử cái và biển số
Hệ thống được triển khai bằng phương pháp tiếp cận cơ bản Toàn bộ quá trình được thực hiện tại vị trí nhận dữ liệu ảnh hay truyền dữ liệu về một máy tính từ xa
Trang 18Hình 2.1 Cụm Closed-circuit television cameras dùng cho hệ thống nhận diện biển
số cố định ở úc
Đến năm 2009 họ có 1 bước tiến trong công ngệ nhận diện biển số đó là sử dụng hệ thống nhận diện di động được trang bị 3 máy ảnh hồng ngoại hệ thống này có chức năng xác định xe không đăng ký, đánh cắp cũng như điểu khiển xe cá nhân khi bị mất cắp
Hình 2.2 Hệ thống nhận dạng trên xe tuần tra New South Wales Police Force
Highway Patrol
United States
Trang 19Tại hoa kỳ hệ thống nhận diện biển số xe di dộng phổ biến trong các cơ quan thực thi pháp luật của nước này theo báo cáo của diễn đàn Police Executive khoảng xấp
xỉ 71% tất cả các sở cảnh sát của Hoa Kỳ sử dụng hệ thống này Hệ thống nhận diện biển số xe đang trở thành 1 phần quan trọng của chiến lược bảo an các thành phố lớn của mỹ thu thập các thông tin tình báo Phát hiện tội phạm, các xe nhập lậu không đăng ký, truy tìm xe bị mất cắp, và phát hiện các lỗi vi phạm giao thông Vì được giám sát 24/24 nên ý thức giao thông của người dân của các quốc gia sử dụng công nghệ này rất cao Vì nếu họ vi phạm thì sẽ có giấy phạt được gũi tới họ vào hàng tháng Theo dõi giám sát các nghi phạm, phát hiện khủng bố, toàn bộ thông tin
về thời gian, tốc độ, vị trí (tọa độ GPS) được lưu trữ lại không giới hạn phục vụ cho việc sữ dụng làm bằng chứng sau này
Hình 2.3 Hệ Thống Nhận Diện Biển Số Xe Được Trang Bị Cho Xe Cảnh Sát Ở Hoa
Trang 20Ứng dụng của Biển Bạc ANPR dựa trên mã nguồn mở OpenCV,thu nhận ảnh thông qua các Camera có chất lượng cao, được đặt cố định Quá trình nhận dạng được xử
lí trên máy tính.Nhận dạng các kí tự nhanh, cho kết quả trong thời gian ngắn
Hình 2.4 Ứng dụng nhận dạng của Biển Bạc ANPR
MT-ATGT2012 nhận dạng biển số xe từ ảnh chụp của máy bắn tốc độ
Trong hệ thống giám sát trật tự an toàn giao thông, một yêu cầu chức năng không thể thiếu đó là việc truy tìm và chặn bắt một phương tiện vi phạm luật giao thông Mỗi phương tiện vi phạm luật giao thông bị phát hiện bởi các thiết bị (máy bắn tốc
độ, camera giám sát lỗi vi phạm…) sẽ được thiết lập thành một hồ sơ xe vi phạm dưới dạng một bản ghi cơ sở dữ liệu (CSDL) gửi về máy chủ đặt tại trung tâm chỉ huy Từ trung tâm chỉ huy, để biết các xe vi phạm hiện tại đang lưu thông tại địa điểm nào, có thể thiết lập một danh sách xe vi phạm (gọi là “danh sách đen”) và gửi yêu cầu cho một số camera lắp đặt ở các địa điểm khác nhau nhằm phát hiện xe vi phạm có đi qua điểm đặt camera đó hay không Một khi camera nào phát hiện được
xe vi phạm đang đi qua thì ngay lập tức sẽ báo về trung tâm và đến trạm kiểm soát gần nhất để lực lượng CSGT kịp thời chặn bắt xe vi phạm đó
Các loại máy bắn tốc độ của CSGT đều đã được trang bị chức năng ghi lại hình ảnh
Trang 21chuyển, vận tốc,vận tốc giới hạn trên đoạn đường đó (để so sánh) và làn đường chiếc xe đang chạy đều được hiển thị trên hình ảnh máy bắn tốc độ thu nhận được Vấn đề nhận dạng biển số được tích hợp trên máy giải quyết vấn đề nhận dạng biển
số xe vi phạm, khoanh vùng xác định chính xác xe bị bắn tốc độ Hình ảnh xe vi phạm vượt tốc độ sau khi đã được nhận dạng biển số và khoanh vùng phương tiện, được thiết lập thành bản ghi cơ sở dữ liệu xe vi phạm vượt tốc độ.Khảo sát độ chính xác của phần mềm với các ảnh bắn tốc độ kích thước 4008x3092 (pixels) tốc độ nhận dạng biển số trung bình của Mắt Thần là 1-2 giây (trên cấu hình máy tính thông thường), hiệu suất nhận dạng biển số đạt đến 98%
Hình 2.5 Ứng dụng nhận dạng trên máy bắn tốc độ
MT-BSX3.5 ứng dụng nhận dạng biển số thông qua camera ghi hình và xử lý nhận dạng trên máy tính tại các điểm giữ xe
Trang 22Phiên bản mới nhất của ứng dụng này có nhiều cải tiến theo chiều hướng tích cực, chức năng nâng cao chất lượng hình ảnh biển số, cắt vùng biển số nâng cao và chồng hình ảnh biển số lên hình ảnh camera thu nhận được, cho phép nhân viên trông giữ xe dễ dàng quan sát được cảnh biển số và thao tác nhanh hơn và tính an ninh hơn Hiệu suất nhận dạng biển số xe máy được cải thiện Trong phiên bản này,
độ chính xác nhận dạng biển số được cải thiện, các tình huống độ sáng của các ký tự trên biển số phân bố không đều, các ký tự hàng trên bị bắn đinh ốc, hàng ký tự dính mép biển số đều được xử lý triệt để
Hình 2.6 Giao diện của ứng dụng MT-BSX
Tổng kết chương
2.4
Qua khảo sát ở trên về nhận diện biển số xe, thì các quốc gia trên thế giới đã gần như là hoàn thiện về tốc độ nhận diện, tính cơ động Riêng ở việt nam các ứng dụng này còn dừng lại ở mức là camera chỉ đặt cố định Tức là không trang bị cho xe cảnh sát, có thể là do cơ sở vật chất trang bị cho cảnh sát giao thông còn thua kém, rồi vấn đề về kinh phí khi lắp đặt camera cho xe moto cảnh sát, bảo trì, điều kiện khí hậu nhưng vần đề về tài chính là quan trọng hơn cả
Trang 23Nhận thấy điều này, hệ thống chúng tôi phát triển các thiết bị giá rẽ, có sự kết hợp giữa OpenCV, hỗ trợ tốt trong việc xử lí hình ảnh, nhận diện các vùng chứa biển số
và tách kí tự Nhận diện kí tự áp dụng mô hình mạng neural nhân tạo để cải thiện kết quả nhận dạng Ứng dụng phát triển trên KIT Friendly Arm sử dụng hệ điều hành Android qua module camera cho thấy đƣợc tính linh hoạt trong quá trình nhận dạng
Trang 24CHƯƠNG 3 : XÂY DỰNG HỆ ĐIỀU HÀNH ANDROID TRÊN KIT
FRIENDLY ARM
3.1 Giới thiệu KIT Friendly Arm Tiny 210
Friendly Arm Tiny 210 với bộ vi xử lý 1GHz Samsung S5PV210 ARM Cortex-A8
Trang 25Hình 3.1 : KIT Friendly Arm Tiny210
1 USB Slave Type B
1 giao tiếp SD Card
1 Stereo Audio out, 1Micro out
1 20-pin JTAG (kết nối với mạch nạp debug)
4 đèn LED đơn xanh
1 đèn nguồn đỏ
9 nút bấm
1 còi điều khiển sử dụng PWM
1 biến trở sử dụng kiểm tra bộ chuyển đổi số/tương
tự (A/D converter)
1 EEPROM giao tiếp chuẩn I2C
1 giao tiếp với cảm biến ảnh (20-chân)
1 pin cho đồng hồ thời gian thực
Nguồn 5V
Trang 27Bảng 3.3: Kiến trúc hệ điều hành Linux
Đặc trưng của hệ điều hành nhúng:
o Tăng tính tin cậy (reliability)
o Tăng tính khả chuyển (portability)
o Khả năng tương thích mềm: dễ dàng nâng cấp hay thu gọn để tương thích với nền tảng hệ thống
o Thu gọn, đòi hỏi ít bộ nhớ hơn Có thể hỗ trợ khởi động từ bộ nhớ ROM, Flash (hệ thống không có ổ cứng)
o Cung cấp các cơ chế lập lích (scheduler) hỗ trợ thời gian thực (Realtime OS - RTOS)
o Hệ thống thời gian thực (Realtime): các phần mềm, phần cứng hoạt động thỏa mãn các ràng buộc về thời gian
o Phân loại:
Hard Realtime: không đáp ứng deadline -> lỗi hệ thống
Soft Realtime: không đáp dứng deadline -> giảm chất lượng dịch vụ (QoS)
Một số thư mục quan trọng
o /home: thư mục người dùng
Trang 28o /dev: chứa các file thiết bị
o /bin: chứa các file thực thi của hệ thống
o /etc: chứa các file cấu hình
o /var: chứa các file log
o /opt: chứa các gói chương trình cài đặt thêm
o /proc: chưa thông tin về các tiến trình, các thành phần phần cứng, phần
mềm đang chạy trong hệ thống
o /usr: chứa các file thực thi, tài liệu liên quan tới người dùng
Hỗ trợ rất nhiều kiến trúc vi xử lý (cả 32 bit và 64 bit)
o Intel X86, ARM, PowerPC, MIPS, AVR32, …
Không hỗ trợ các vi điều khiển hiệu năng thấp
Hỗ trợ cả kiến trúc có và không có khối quản lý bộ nhớ (MMU)
Các hệ thống có thể dùng chung toolchains, bootloader và kernel, các thành phần khác phải riêng biệt và tương thích với từng hệ thống
Hình 3.2 : Quá trình boot hệ thống linux trên PC
Trang 29Hình 3.3 : Quá trình boot hệ thống Linux nhúng
Boot loader: chương trình đầu tiên thực hiện kiểm tra phần cứng hệ thống và nạp nhân (kernel) của hệ điều hành
Kernel: nhân hệ điều hành, chứa các thành phần cơ bản nhất
Root file system: hệ thống file, chứa các modules bổ sung và các phần mềm ứng dụng
3.3 Cài đặt Android trên KIT Friendly Arm Tiny210 V2
3.3.1 Sơ lược hệ điều hành Android
Android là hệ điều hành điện thoại di động mã nguồn mở miễn phí do Google phát triển dựa trên nền tảng của Linux Nó bao gồm một hệ điều hành, midware và một số ứng dụng chủ đạo Bộ công cụ Android SDK bao gồm các công cụ riêng lẻ như debugger, các thư viện,trình giả lập điện thoại Android, các tài liệu hỗ trợ, code mẫu, các hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình java
Trang 30Hiện Android cung cấp bộ công cụ này trên nhiều nền tảng hệ điều hành khác nhau (Win-dows, Linux, Mac, ), miễn có sẵn Java Development Kit, Apache Ant
và Python2.2 trở lên
Những tính năng mà nền tảng Android hỗ trợ
Application framework: Cho phép tái sử dụng và thay thế các thành phần sẵn
có củaAndroid
Dalvik virtual macine: Máy ảo java được tối ưu hóa cho thiết bị di động
Intergrated browser: Trình duyệt web tích hợp được xây dựng dựa trên WebKit engine
Optimized graphics: Hổ trợ bộ thư viện 2D và 3D dự vào đặc tả OpenGL ES 1.0
SQLite: DBMS dùng để lưu trữ dữ liệu có cấu trúc
Hỗ trợ các định dạng media phổ biến như MPEG4, H.264, MP3, AAC, ARM, JPG, PNG, GIF
Hỗ trợ thoại trên nền tảng GSM (Phụ thuộc vài phần cứng thiết bị)
Bluetooth, EDGE, 3G và WiFi (Phụ thuộc vài phần cứng thiết bị)
Camera, GPS, la bàn và cảm biến (Phụ thuộc vài phần cứng thiết bị)
Bộ công cụ phát triển ứng dụng mạnh mẽ
Ngôn ngữ lập trình chính thức của Android là Java Dựa trên máy ảo Java của Sun, Google đãtinh chỉnh và phát triển nên máy ảo Dalvik để biên dịch mã Java với tốc độ biên dịch nhanh hơn và nhẹ hơn Các ứng dụng của Android sử dụng SQLite
để quản lý cơ sở dữ liệu
Bằng cách sử dụng các frameworks của hãng thứ ba (VD PhoneGap, Titanium, ), các nhà lập trình web cũng có thể phát triển ứng dụng Android một cách dễ dàng bằng các ngôn ngữ web phổ dụng như HTML, CSS, Javascript
Trang 31sản xuất có thể tùy biến lại những trải nghiệm Android cho khách hàng của riêng mình
Về phần cứng, Android hiện là hệ điều hành xuất hiện trên nhiều thiết bị nhất, người dùng có thêm nhiều lựa chọn để sở hữu một chiếc điện thoại hợp với túi tiền
và nhu cầu sử dụngcủa bản thân Hầu như tất cả những Smartphone sử dụng hệ điều hành android đều rất dễ sử dụng, khả năng tùy biến nhanh chóng, ứng dụng hỗ trợ phong phú, tương thích với đa cấu hình phần cứng của các nhà xản xuất
Qua tìm hiểu, nhận thấy tính linh hoạt và khả năng hỗ trợ cao từ cộng đồng, thiết bị đa dạng, chi phí hợp lý Khóa luận đã quyết định phát triển ứng dụng nhận dạng biển số xe máy trên KIT Friendly ARM sử dụng hệ điều hành Android
3.3.2 Tải Superboot vào SD Card
Trong phần này, chúng ta thực hiện các bước trên Windown 8.1 Lưu ý, nếu đầu đọc thẻ SD tích hợp sẵn ở một số Laptop không thể burn ra thẻ hoặc đọc thẻ thì các bạn nên thử một đầu đọc thẻ thông thường SD-Flasher.exe định dạng 130M cho bootloader và phần còn lại là lưu dữ liệu cài đặt chương trình Không nên sử dụng thẻ SD ít hơn 256M và nên sử dụng bộ nhớ ít nhất là 4Gb
Bước 1: chạy SD-Flasher.exe trong thư mục Tool đã được cung cấp kèm theo Lưu
ý, chúng ta nên chạy chương trình dưới chế độ “administrator”
Hình 3.4 : File SD-Flasher.exe
Khi chương trình chạy sẽ hiện ra một hộp thoại “Select your Machine ”, chúng ta chọn “Mini210/Tiny210”:
Trang 32Hình 3.5 : Hộp thoại “Select your Machine”
Bấm Nextvà sẽ tiếp tục hiện ra hộp thoại phía dưới để bắt đầu Lưu ý, Nút
“ReLayout” để enable và format SD card
Hình 3.6 : Giao diện của SD-Flasher.exe
Trang 33Bước 2: Click vào để chọn đường dẫn tới file Superboot
Hình 3.7 : Đường dẫn file superboot
Bước 3: Cắm thẻ FAT32 vào máy tính, sao lưu dữ liệu trong thẻ SD và click vào
“Scan”, tất cả các thẻ SD tìm thấy sẽ được hiện ra trong danh sách bên cạnh Chúng
ta để ý cột “Available” đang ở trạng thái là “No” (vòng tròn màu đỏ hình dưới)
Trang 34Hình 3.8 : Trạng thái Available “No”
Bước 4: Click vào “ReLayout” để định dạng lại thẻ nhớ SD Lưu ý, tất cả dữ liệu sẽ
bị mất Sau đó chúng ta click vào “Yes”
Hình 3.9 : Relayout
Sau khi Format xong sẽ tự động chuyển hướng vè menu chính Click vào “Scan”, chúng ta sẽ thấy trong cột “Label” tên “FriendlyARM” và “Avaiable” là “Yes”
Trang 35Hình 3.10 : Scan Card
Bước 5: Click vào “Fuse”, Superboot sẽ được tải vào SD Card Chúng ta có thể
hoàn toàn làm điều này trên những hệ điều hành khác
Trang 36Hình 3.11 : Fuse superboot
Superboot trong thẻ nhớ thì sẽ không thể nhìn thấy được Để kiểm tra Superboot đã được chèn vào thẻ SD hay chưa? Chúng ta cắm thẻ SD vào khe thẻ nhớ của KIT Friendly Arm, chuyển Switch S2 sang chế độ “SDBOOT”, khởi động KIT và nếu đèn Flash LED1 sáng thì đã có Supberboot trong SD Card của mình
Nếu bạn không thấy LED1 sáng hoặc bất kỳ đầu ra nào từ cổng SD Card thì có thể bạn chưa tải Superboot vào thẻ nhớ thành công Chúng ta có thể giải quyết trường hợp này như sau
1 Nếu bạn đang sử dụng laptop và có thể đầu đọc thẻ nhớ của laptop không sử dụng đươc Bạn hãy thử với đầu đọc thẻ USB
2 Thẻ nhớ của bạn không được tốt Bạn nên sử dụng thẻ có dụng lượng lớn hơn 4GB hoặc SDHC
Trang 373 Bạn có thể sử dụng thẻ microSD/TF và sử dụng chuẩn thẻ SD để kết nối trực tiếp tới đầu đọc thẻ
3.3.3 Restore TF Card
Nếu trong một thời gian dài bạn không cần sử dụng TF Card để cài hệ điều hành thì bạn sử dụng SD-Flasher.exe để hoàn lại 130MB bộ nhớ mà mình đã tạo cho Superboot Bạn nhấn chuột phải vào SD-Flasher.exe chạy dưới chế độ “Run as administrator” sau đó sẽ hiện ra hình như bên dưới và click vào “Scan” và click vào
“ReFormat”
Hình 3.12 : Restore TF Card
Click vào “Yes” Chờ một lúc bạn click lại nút “Scan”, bạn sẽ thấy trong cột Avaiable là “No” Khi đó SD-Card đã restore thành công
Trang 38Hình 3.13 : Restore hoàn thành
3.3.4 Cấu hình file FriendlyARM.ini
Khi cài đặt hệ điều hành, chúng ta sẽ sử dụng file “FriendlyARM.ini”
Trang 39Hình 3.14 : Chi tiết file FriendlyARM.ini
Action Thiết lập hành động: Install/Run/Null
Install – Cài đặt từ NAND Flash Run – Chạy từ TF Card
Null – Không làm gì hết
Mặc định là “Install”
OS Hệ điều hành đƣợc tải lên từ
Trang 40LowFormat Thực hiện fomat trên NAND Flash với level thấp
StatusType Đèn báo “LED”, “Beeper” hoặc cả 2 sẽ hoạt động khi
đang cài hệ điều hành
Android-RootFs-InstallImage
File system image sử dụng để install – hiện tại chỉ có hệ thống yaffs2