1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN ANDROID XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE MÁY VÀ Ô TÔ

31 43 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 1,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MỞ ĐẦUVấn đề nhận dạng nói chung và nhận dạng biển số xe nói riêng là bài toán thu hút được sự quan tâm nghiên cứu của nhiều nhà khoa học trên thế giới, đặc biệt là trong những

Trang 1

BÁO CÁO BÀI TẬP LỚN ANDROID ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ

XE MÁY VÀ XE Ô TÔ

Giảng viên hướng dẫn:Ts.Nguyễn Hồng Quang

Sinh viên thực hiện: Trần Văn Tâm

MSSV:20102124

Lớp: Điện tử 6-K55

TP.Hà Nội,tháng 12 năm 2014

Trang 2

MỞ ĐẦU

Vấn đề nhận dạng nói chung và nhận dạng biển số xe nói riêng là bài toán thu hút được sự quan tâm nghiên cứu của nhiều nhà khoa học trên thế giới, đặc biệt là trong những năm gần đây khi các thiết bị di động như điện thoại di động, máy tính bảng ra đời và phổ biến, công với nhu cầu thiết thực hỗ trợ giải quyết vấn đề trong đời sống như tự động hóa trong các bãi giữ xe,trạm cân, rửa xe hay kiểm soát lưu lượng, kiểm soát an ninh

Nội dung báo cáo trình bày về nhận dạng biển số xe sử dụng mô hình mạng neural với ứng dụngtrên hệ điều hành Android Hướng tiếp cận dựa trên diện mạo, dùng bộ phân loại mạnh

AdaBoots – là sự kết hợp của các bộ phân loại yếu dựa trên các đặc trưng Haar-like – để phát hiện vùng chứa biển số, phương pháp hình thái học để tiến hành thực hiện phân tách kí tự và nhận dạng kí tự bằng phương pháp được sử dụng phổ biến nhất là mạng neural (neural network) Hệ thống đã được thử nghiệm trên thực tế, trong môi trường đủ sáng, thiếu sáng với mẫu nhận dạng đứng yên bước đầu cho kết quả tốt

Từ khóa: neural network, android, automatic number plate recognition, ANPR, Kohonen

network

Trang 3

MỤC LỤC

I Hệ thống nhận dạng biển số ……….5

1.Phát hiện vùng chứa biển số xe………5

1.1 Đặc trưng Haar-like………6

1.2 AdaBoost………8

1.3 Hệ thống xác định vùng chứa biển số xe………10

1.4 Huấn luyện bộ phân loại……….11

2.Tách kí tự………14

2.1 Chuẩn hóa kích thước ảnh……… 14

2.2 Chuyển đổi ảnh màu về ảnh xám……….15

2.3 Tăng tính tương phản bằng thuật toán cân bằng hóa lược đồ xám………… 16

2.4 Xác định ngưỡng, nhị phân hóa ảnh………17

2.5 Tìm biên, xác định các đường viền (contour) của ảnh nhị phân……….18

2.6 Tách kí tự dựa trên đặc tính hình thái học……… 19

3 Nhận dạng kí tự……… 20

3.1 Mạng neural sinh học……… 20

3.2 Mạng neural nhân tạo……… 21

3.3 Mạng neural Kohonen……….22

3.4 Ánh xạ ma trận điểm ảnh vào ma trận giá trị……… 25

4 Tổng kết……….26

II.Hiện thực hệ thống nhận dạng biển số xe trên android smartphone……….27

1.Tính năng của ứng dụng……….27

Trang 4

2.Cấu trúc ứng dụng………28

2.1 Các lớp trong ứng dụng……….28

2.2 Chương trình huấn luyện mạng Kohonen……….29

2.3 Hiệu chỉnh kết quả dựa trên cú pháp……… 30

3.Tổng kết chương……… 30 Tài liệu tham khảo

Trang 5

I.Hệ thống nhận dạng biển số

Yêu cầu của hệ thống:

 Thu thập hình ảnh từ camera

 Thực hiện ghi mẫu biển số xe

 Nhận dạng biển số xe

Trong đó chức năng quan trọng nhất là nhận dạng biển số.Chức năng nhận dạng biển số thường được hiện thực bằng cách giải quyết riêng rẽ ba bài toán nhỏ hơn đó là phát hiện vùng chứa biển

số, tách kí tự và nhận dạng kí tự

1 Phát hiện vùng chứa biển số xe

Đây là bước đầu tiên và khó khăn nhất quyết định tới kết quả của toàn bộ hệ thống Mục đích củabước này là trích ra được vùng nhỏ nhất chứa biển số từ ảnh thu được từ camera của điện thoại

Có nhiều phương pháp tiếp cận để thực hiện được nhiệm vụ này nhưng tất cả đều có thể qui về 3 phương pháp chính sau đây:

 Phương pháp dùng chuyển đổi Hough: dựa vào đặc trưng cạnh biên, áp dụng các phương pháp xác định đường thẳng như phép biến đổi Hough để phát hiện các cặp đường thẳng gần song song ghép thành một ảnh biển số

 Phương pháp hình thái học: dựa vào đặc trưng hình thái của biển số xe như màu sắc, độ sang, sự đối xứng để xác định và trích ra ảnh biển số

 Phương pháp khớp mẫu: xem biển số là một đối tượng có khung nền riêng và sử dụng cáccửa sổ dò để trích từng đối tượng đưa qua mạng noron (neural network), trí tuệ nhân tạo (artificial intelligence) để phân loại có phải là vùng biển số hay không

Trong bài làm của mình em sử dụng hướng tiếp cận dựa trên diện mạo, dùng bộ phân loạimạnh AdaBoost - là sự kết hợp của các bộ phân loại yếu dựa trên các đặc trưng Haar-like - để phát hiện vùng chứa biển số Phương pháp này được đánh giá là khá đơn giản, nhưng mang lại kết quả phát hiện tương đối cao.Phương pháp được cài đặt dựa trên bộ thư viện mã nguồn mở openCV

Trang 6

1.1 Đặc trưng Haar-like

Do Viola và Jones công bố năm 2001 [16], gồm 4 đặc trưng cơ bản để xác định đối tượng Mỗi đặc trưng Haa-like là sự kết hợp của hai hay ba hình chữ nhật “trắng” hay “đen” Để sử dụng cácđặc trưng này vào việc xác định những đối tượng tương đối phức tạp, 4 đặc trưng Haar-like cơ bản được mở rộng thêm thành tập đặc trưng cơ bản sau:

Hình 1.1 Các dạng cơ bản của đặc trưng Haar-likeDùng các đặc trưng trên, ta có thể tính được giá trị của đặc trưng Haar-like là sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau:

Sử dụng giá trị này, so sánh với các giá trị của các giá trị pixel thô, các đặc trưng like có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên ngoài lớp khuôn mặt người), do đó sẽ làm cho bộ phân loại dễ hơn

Haar-Như vậy có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image, là một mảng 2 chiều

Trang 7

với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảngnày được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó Bắtđầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh.

đó trên ảnh thực hiện rất đơn giản theo cách sau:

Giả sử ta cần tính tổng các giá trị mức xám của vùng D như trong hình 3.3, ta có thể tính như sau:

D = A + B + C + D – (A + B) – (A + C ) + A (1.3)Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy A +

B là giá trị tại điểm P2, A + C là giá trị tại điểm P3, và A là giá trị tại điểm P1 Vậy ta có thể viết lại biểu thức tính D ở trên như sau:

Trang 8

Hình1.3Ví dụ cách tính nhanh các giá trị mức xám của vùng D trên ảnh

Tiếp theo, để chọn các đặc trưng Haar-like dùng cho việc thiết lập ngưỡng, Viola và Jones sử dụng một phương pháp máy học được gọi là AdaBoost AdaBoost sẽ kết hợp các bộ phân loại yếu để tạo thành một bộ phân loại mạnh Với bộ phân loại yếu chỉ cho ra câu trả lời chính xác chỉ hơn việc đoán một cách ngẫn nhiên một chút, còn bộ phân loại mạnh có thể đưa ra câu trả lời chính xác trên 60%

1.2 AdaBoost

AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm 1995 Adaboost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifiers để hình thành một strong classifier

Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng số (weight) để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi weak classifiers được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng weak classifier

kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifier vừa xây dựng Bằng cách này weak classifer sau có thể tập trung vào các mẫu mà các weak classifiers trước nó làm chưa tốt Sau cùng, các weak classifers sẽ được kết hợp tùy theo mức độ tốt của chúng để tạo nên strong classifier

Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trưng Haar-like theo mô hình phân tầng (cascade) như sau:

Trang 9

Hình 1.4 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ố

Trong đó, h k là các bộ phân loại yếu, được biểu diễn như sau:

h k = {1n ´ê u p k f k ( x )< p k θ k

0 ngư ´ơ c lai (3.5)

x: cửa sổ con cần xét

θ k: ngưỡng (θ = theta)

f k:giá trị của đặc trưng Haar-like

p k: hệ số quyết định chiều của phương trình

AdaBoost sẽ kết hợp các bộ phân loại yếu thành bộ phân loại mạnh như sau:

H(x) = sign ( a 1 h 1 (x) + a 2 h 2 (x) +…+ a n h n (x)) (a= alpha) (3.6)

với: a ≥ 0 là hệ số chuẩn hoá cho các bộ phân loại yếu

Hình 1.5 Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh

Trang 10

1.3 Hệ thống xác định vùng chứa biển số xe

Hình 1.6 Hệ thống xác định vùng chứa biển số xe

Như trong hình 1.6, từ ảnh gốc ban đầu, tính Integral Image, là mảng 2 chiều với phần tử (x; y)

sẽ được tính bằng tổng của các phần tử (x′; y′) với x′< x và y′< y, mục đích là để tính nhanh tổng của các giá trị mức xám của một vùng hình chữ nhật bất kỳ trên ảnh gốc Các vùng ảnh con này

sẽ được đưa qua các hàm Haar cơ bản để ước lượng đặc trưng, kết quả ước lượng sẽ được đưa qua bộ điều chỉnh AdaBoost để loại bỏ nhanh các đặc trưng không có khả năng là đặc trưng của biển số xe Chỉ có một tập nhỏ các đặc trưng mà bộ điều chỉnh AdaBoost cho là có khả năng là đặc trưng của biển số xe mới được chuyển sang cho bộ quyết định kết quả (là tập các bộ phân loại yếu có cấu trúc như trong hình 1.4) Bộ quyết định sẽ tổng hợp kết quả là biển số xe nếu kết quả của các bộ phân loại yếu trả về là biển số xe

Trang 11

Mỗi bộ phân loại yếu sẽ quyết định kết quả cho một đặc trưng Haar-like, được xác định ngưỡng

đủ nhỏ sao cho có thể vượt được tất cả các bộ dữ liệu mẫu trong tập dữ liệu huấn luyện (số lượngảnh biển số xe trong tập huấn luyện là rất lớn) Trong quá trình xác định vùng chứa biển số xe, mỗi vùng ảnh con sẽ được kiểm tra với các đặc trưng trong chuỗi các đặc trưng Haar-like, nếu cómột đặc trưng Haar-like nào cho ra kết quả là biển số xe thì các đặc trưng khác không cần xét nữa Thứ tự xét các đặc trưng trong chuỗi các đặc trưng Haar-like sẽ được dựa vào trọng số (weight) của đặc trưng đó do AdaBoost quyết định dựa vào số lần và thứ tự xuất hiện của các đặctrưng Haar-like

1.4 Huấn luyện bộ phân loại

Để có thể nhận dạng biển số xe theo phương pháp tiếp cận dựa trên diện mạo đã trình bày tại phần trên, trước hết cần thực hiện huấn luyện bộ phân loại dùng cho quá trình nhận dạng Nhiệm

vụ huấn luyện bộ phân loại thực sự là một thử thách bởi như đã đề cập tại phần trước quá trình này yêu cầu một tập dữ liệu mẫu rất lớn, nên tiêu tốn rất nhiều thời gian và công sức Có thể chiaquá trình huấn luyện bộ phân loại làm 2 bước chính:

ý không chứa đối tượng cần nhận dạng Tất cả những bức ảnh này được liệt kê trong một file miêu tả dưới dạng plain-text, ứng với mỗi dòng trong file miêu tả này sẽ là một bức ảnh

Em sử dụng 3000 file ảnh trích từ bộ phim Step Up Revolution làm tập mẫu Negative

Mẫu positive là tập những bức ảnh chứa đối tượng cần nhận dạng, một bức ảnh có thể chứa một hoặc nhiều đối tượng File miêu tả của tập mẫu positive cũng là một file plain-text, mỗi dòng sẽ chứa tương ứng với một file ảnh, tiếp sau đó là số lượng đối tượng cần nhận dạng có trong bức ảnh, tiếp sau đó là tọa độ x, y tương ứng của mỗi đối tượng đó Khóa luận sử dụng 2000 bức ảnh

Trang 12

chứa biển số làm tập mẫu positive Những bức ảnh này được được thu thập (quay và chụp) trong vòng 4 ngày tại nhiều địa điểm của thành phố Hồ Chí Minh, với những điều kiện, thời gian khác nhau.Bước tiếp theo sau khi đã có được file miêu tả của tập mẫu negative và positive là phải tạo bộ mẫu input cho quá trình huấn luyện Để thực hiện điều này, ta sử dụng tiện ích

opencv_createsamples được cung cấp sẵn trong thư viện nguồn mở OpenCV

Các tùy chọn của tiện ích opencv_createsamples:

Trang 13

opencv_createsamples.exe -info positive/ positive.txt -vec data/vector.vec -num 2000 -w 55-h 40-info positive/ positive.txt: đường dẫn file miêu tả của tập mẫu positive

-vec data/vector.vec: đường dẫn file output sẽ được tạo ra sau quá trình tạo mẫu

-num 2000: số lượng mẫu là 2000 như đã đề cập

-w 55 -h 40: kích thước của mỗi mẫu sẽ được tạo ra, theo đúng với tỷ lệ của biển số xe(140x190)Sau khi tạo ra file mẫu dưới dạng vector, mọi thứ đã sẵn sàng để chuyển qua bước kế tiếp đó là huấn luyện

Huấn luyện

Đây là bước cuối cùng của quá trình huấn luyện nhưng cũng là bước yêu cầu nhiều thời gian nhất Mất 6 ngày chạy liên tục để hoàn thành bước này trên một máy tính tương đối mạnh Trongsuốt quá trình thực thi, hiệu suất của CPU được tận dụng tối đa, luôn trong tình trạng 100% đang sử dụng Tiện ích opencv_traincascade được sử dụng trong bước này để hoàn tất quá trình huấn luyện Cú pháp sử dụng:

opencv_traincascade.exe -data data/cascade -vec data/vector.vec -bg negative/infofile.txt

numPos 2000 -numNeg 2999 -numStages 20 -mode ALL -w 55 -h 40

-data data/cascade: đường dẫn để lưu kết quả của quá trình huấn luyện

-vec data/vector.vec: đường dẫn file vector được tạo ra trong bước chuẩn bị mẫu từ tập mẫu positive

-bg negative/infofile.txt: đường dẫn file miêu tả của tập mẫu negative

-numPos 2000: số lượng file ảnh của tập mẫu positive

-numNeg 2999: số lượng file ảnh của tập mẫu negative

-numStages 20: số stage mong muốn

-mode ALL: chế độ ALL sẽ sử dụng tất cả các dạng (kể cả mở rộng) của đặc trưng Haar-like

Trang 14

-w 55 -h 40: kích thước của tập mẫu

Sau khi hoàn tất quá trình huấn luyện này, ta sẽ thu được bộ phân loại dưới dạng một file xml dành cho quá trình nhận dạng

2.Tách kí tự

Sau khi đã phát hiện được vùng chứa biển số, bài toán tiếp theo cần phải giải quyết là phân tách được từng kí tự trên vùng biển số đã thu được, điều này mang lại thuận lợi rất lớn cho bước cuối cùng của hệ thống, nhận dạng kí tự

Có rất nhiều phương pháp có thể áp dụng để thực hiện nhiệm vụ này Có thể kể ra ở đây như táchtĩnh, lượng tử hóa vector (vector quantization), lược đồ chiếu ngang và dọc (vertical and

horizontal projection), mạng noron (neural network), trí tuệ nhân tạo (AI), hình thái học

(morphology) Khóa luận này đã lựa chọn phương pháp hình thái học để tiến hành thực hiện phân tách kí tự

Mỗi một kí tự trên biển số sẽ là một đối tượng có đặc điểm hình thái học cụ thể như là chiều cao,chiều rộng, tỉ lệ 2 chiều biến đổi tương đối ít (nếu ảnh chứa vùng biển số đã được đưa về cùng một kích cỡ) mà dựa vào đó ta có thể tách ra được cụ thể từng kí tự riêng rẽ Từ đó ra có thuật toán tách kí tự từ ảnh chứa vùng biển số đã thu được như sau:

1 Chuẩn hóa kích thước ảnh

2 Chuyển đổi ảnh màu về ảnh xám

3 Tăng cao tính tương phản bằng thuật toán cân bằng lược đồ xám

4 Xác định ngưỡng, nhị phân hóa ảnh

5 Tìm biên, xác định các đường viền (contour) của ảnh nhị phân

6 Tách kí tự dựa trên đặc tính về hình thái học

2.1Chuẩn hóa kích thước ảnh

Đây là khâu đầu tiên và cũng là đơn giản nhất của thuật toán, chuẩn hóa kích thước ảnh khiến độ chênh lệch giữa kí tự trên các biển số khác nhau giảm xuống làm cho việc tách kí tự dựa trên đặctính hình thái học trở nên chính xác hơn Và việc chuẩn hóa kích thước ảnh ở đâu thực tế chỉ đơngiản là thực hiện thay đổi (resize), đưa ảnh về cùng một phân giải đã chọn trước,

Trang 15

chọn kích thước này là 680x492 (đây cũng chính là tỷ lệ của một biển số).

Có 5 phương thức chính để thực hiện việc thay đổi kích thước ảnh:

 INTER_NEAREST nearest-neighbor interpolation

 INTER_LINEAR bilinear interpolation

 INTER_AREA area interpolation

 INTER_CUBIC bicubic interpolation

 INTER_LANCZOS4 Lanczos interpolation

Hình 1.7Qua thực nghiệm, thấy rằng phương thức INTER_NEAREST là phương thức đơn giản và tốc độ thực thi nhanh nhất, nhưng không đảm bảo chất lượng ảnh Bốn phương thức còn lại mang lại kết quả tương đối tốt và khá giống nhau nên khóa luận quyết định chọn phương thức

INTER_LINEAR do nó đảm bảo được chất lượng ảnh sau khi resize và tốc độ nhanh hơn các phương thức còn lại (không kể INTER_NEAREST)

2.2 Chuyển đổi ảnh màu về ảnh xám

Do khâu xác định ngưỡng và nhị phân hóa ảnh chỉ thực hiện được đối với một bức ảnh đơn kênh (single channel) nên ở bước này của thuật toán, khóa luận lại thực hiện một bước biến đổi đơn

Ngày đăng: 01/07/2021, 07:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w