1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

NHẬN DẠNG BIỂN số XE TRONG ẢNH dùng MATLAB ( code chạy bao ok )

45 1,7K 15

Đ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 45
Dung lượng 1,38 MB

Nội dung

có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật và code đầy đủ cho NHẬN DẠNG BIỂN số XE TRONG ẢNH dùng MATLAB ...............................................................................................................................................................

Trang 1

NHẬN DẠNG BIỂN SỐ XE

TRONG ẢNH

MỤC LỤC

Trang 3

RGB: Red Green Blue

OCR: Optical Character Recognition

CIE : Commision Internationaled Eclairage

Trang 4

CHƯƠNG 1: GIỚI THIỆU VỀ ĐỀ TÀI

1.1.Lý do chọn đề tài:

Cùng với sự phát triển của khoa học kỹ thuật,nhu cầu đi lại ngày càng lớn,khiến lưu lượng giao thông ngày càng tăng cao,với tình trạng như trên việc quản lý các phương tiện giao thông gặp rất nhiều khó khăn do đó cần nhanh chóng xây dựng các hệ thống tự động.Một trong các hệ thống đó là hệ thống nhận dạng biển số xe.Đó là một hệ thống có khả năng “đọc” và hiểu các biển số xe một cách tự động

Với yêu cầu thiết thực trên tôi chọn đề tài Nhận Dạng Biển Số Xe Trong Ảnh trên giao diện MATLAB để có thể áp dụng vào các ứng dụng của đời sống….như Hệ thống bãi giữ xe.Ứng dụng trong an toàn giao thông…vv

1.2 Nôi dung đề tài

Quá trình xử lý và nhận dạng biển số xe được thực hiện qua những bước như sau:

 Tách biển số: Viêc tách biển số từ ảnh chụp bằng phương pháp xử lý số là hết sức khó khăn vì không thể biết được vị trí của biển số và nó còn phụ thuộc vào độ sáng của ảnh Kết quả đạt được là ảnh biển số dạng RGB(Red Green Blue) được cắt ra từ ảnh chụp

 Phân đoạn ký tự: Sau khi tiến hành tách biển số việc tiếp theo là phân đoạn ký tự.Chuỗi ký tự của biển số sẽ được tách thành từng ký tự riêng lẽ và tạo thành tập ảnh riêng biệt, phục vụ cho việc nhận dạng ký tự.Ảnh của mỗi ký tự sẽ là ảnh trắng đen

 Nhận dạng Ký tự: Sau khi các ký tự trong biển số được tách thành từng ký tự riêng biệt,và tạo thành từng chuỗi ký tự thì chuỗi này được đưa vào khối nhận dạng ,để tiến hành nhận dạng từng ký tự trong chuỗi

Trang 5

1.3 Giới hạn đề tài

Việc có quá nhiều biển số xe với định dạng và biển số khác nhau gây khó khăn trong việc nhận dạng.Do quá trình nhận dạng dựa vào phương pháp xử lý ảnh và trích xuất biển số từ ảnh nên độ sáng khác nhau làm tăng độ phức tạp trong quá trình nhận dạng

Do thời gian thực hiện đề tài không cho phép, nên đề tài cần được giới hạn với những điều kiện sau:

 Biển số có nền trắng chử đen,có 2 hàng và 8 ký tự

 Biển số còn nguyên vẹn,không bị tróc sơn hay rỉ sét,không bị che khuất

 Góc nghiêng của biển số không quá 45 độ so với phương ngang

 Không bị nhiễu bởi ánh sáng,làm biển số bị chói

 Biển số rỏ ràng.nhìn được bằng trực quan

1.4 Mục tiêu và nội dung

Trang 6

CHƯƠNG 2: TỔNG QUAN VỀ NHẬN DẠNG ẢNH

2.1 Khái niệm

Xử lý và nhận dạng ảnh là một lĩnh vực còn tương đối mới chưa được áp dụng rộng rãi như những lĩnh vực khoa học khác Nó còn có mối quan hệ mật thiết với nhiều nghành khoa học khác như lý thuyết thông tin, lý thuyết thống kê, nhận dạng, dùng để nhận dạng chữ số, ký tự, vân tay.mặt người

Xử lý ảnh số có rất nhiều công đoạn cần phải giải quyết như: khôi phục ảnh, thu nhận ảnh, tăng cường ảnh, phân tích ảnh , biến đổi ảnh các quá trình này cần phải thực hiện nhiều bởi thuật toán khác nhau

Nhận dạng là thực hiện phân loại các đối tượng được biểu diễn theo một mô hình nào đó và chúng được gán vào 1 lớp dựa theo những mẫu chuẩn và quy luật của nó Quá trình xử lý và nhận dạng ảnh số tùy thuộc vào điều kiện ứng dụng thực tế mà có nhiều cách áp dụng các thuật toán khác nhau tuy vậy việc xử lý và nhận dạng đều quy

về một cách thể hiện như sau

Hình 1.1.Sơ đồ nhận dạng ảnh tổng quát

 Thu nhận ảnh: Thu nhận ảnh từ ảnh có sẵn Ảnh thu được là tín hiệu tương tự.

 Mã hóa: là quá trình biến đổi tín hiệu tương tự sang tín hiệu rời rạc.Sau đó số hóa

bằng lượng tử hóa trước khi chuyển sang giai đoạn xử lý

Trang 7

 Trước hết nâng cao chất lượng ảnh, do chất lượng ảnh thu được không đạt yêu cầu với nhiều nguyên nhân khác nhau.Sau đó khôi phục ảnh để làm nổi bật một

số đặc tính chính của ảnh, hay làm cho ảnh giống nhất với trạng thái gốc

 Kế tiếp là phát hiện các đặc tính như: biên, phân vùng ảnh, trích chọn các đặc tính,

lý ảnh,mô phỏng,neural,xử lý số tín hiệu…

Matlab còn cung cấp Image Processing toobox,chuyên về xử lý ảnh

Matlab có một tài nguyên vô cùng lớn,có thể nói Matlab là một phần mềm vô cùng lợi hại giúp cho việc thực hiện các giải thuật xử lý nhanh chóng và dễ hiểu

2.2.2.Ảnh grayscale

Mỗi ảnh được biểu diễn bởi một ma trận hai chiều,trong đó giá trị của mỗi phần tử cho biết độ sáng(mức xám) của điểm ảnh đó.Ma trận này được thể hiện dưới dạng uint8,uint16,double.Ảnh biểu diễn theo kiểu này còn được gọi là ảnh ‘Trắng Đen”

Trang 8

Ảnh được biểu diễn bởi một ma trận hai chiều thuộc kiểu logical.Mỗi điểm ảnh chỉ có thể nhận một trong hai giá trị là 0(đen) và 1(trắng).

Hình 2.2.Ảnh nhị phân

2.2.4 Ảnh RGB

Ảnh RGB(Red Green Blue) còn gọi là ảnh “truecolor” do tính trung thực của nó Ảnh này được biểu diễn bởi một ma trận ba chiều kích thước m x n x 3, với m x n là kích thước ảnh theo pixels Ma trận này định nghĩa các thành phần màu red, green, blue cho mỗi điểm ảnh, các thành phần của nó có thể thuộc kiểu uint8, uint16, hoặc double.Theo lý thuyết màu do Thomas đưa ra mọi màu đều có thể tổ hợp từ 3 màu cơ bản sau:

Trang 9

Hình 2.3: Mô hình màu RGB

Trích [1]

Trang 10

Hình 2.4: Minh họa ảnh màu sau khi mã hóa

Hệ nhận dạng ký tự OCR cần có một lưu ý đó là sự khác nhau giửa trang văn bản và hình ảnh Đa số các hệ nhận dạng dùng các tham số thống kê để phân biệt chữ và hình ảnh ( đối với văn bản, màu trắng và đen phân bố với nhịp điệu chuẩn, còn trong hình ảnh thì các pattern đen trắng phân bố không đều Có nhiều phương pháp nhận dạng, nhưng nói chung được quy về 2 kiểu: nhận dạng theo mẫu ( template-base ) và nhận dạng theo tính chất ( feature - base)

 Phương pháp nhận dạng theo mẫu là so sánh với các mẫu chữ lưu sẵn

Trang 11

 Nhận dạng theo tính chất thì quy ô mực thành các tính chất quy định cách thức viết nên con chữ.

Phương pháp nhận dạng theo mẫu thuộc loại cổ điển quy mỗi ô mực thành một ma trận điểm 10 x 10 Các con chữ có thể có kích cỡ khác nhau nhưng đều quy thành ma trận 10 x 10 và so sánh với mẫu để chọn mẫu gần nhất

Trang 12

Nhận dạng theo tính chất, trong hệ có 100 “ hệ chuyên gia” khác nhau, thực chất là các thuật toán nhận dạng 100 con chữ ( từ A Z, a z, số, các dấu ) Các con chữ được nhận dạng theo các tính chất như gạch nghiêng, đứng, nghiêng, điểm uốn, phản xạ,

chiều dài và hướng các dấu gạch Giải thuật nhận dạng

Hình 1.2: Sơ đồ nhận dạng biển số xe

Từ lưu đồ trên ta thấy hệ thống nhận dạng biển số xe này có thể chia thành ba giai đoạn chính: trích biển số, tách ký tự và nhận dạng các ký tự như sau:

 Tiền xử lý ảnh: Tại đây các phép tiền xử lý ảnh như: chuyển đổi không gian

màu,, cân bằng sáng được tiến hành nhằm chuẩn bị dữ liệu tốt, phù hợp tùy theo yêu cầu của các thuật toán xử lý ở mức cao hơn

 Xử lý trích xuất vùng biển số xe: Những ảnh chụp từ máy chụp ảnh sau khi đưa

vào máy tính làm cơ sở dữ liệu, ta dựa vào một số đặc điểm cơ bản của biển số

xe so với các vật thể khác trong ảnh, áp dụng các thuật toán trích ra được vùng ảnh nhỏ nhất chứa biển số

 Phân đoạn ký tự: Tách thành 8 hoặc 9 ký tự trong biển số xe, công đoạn này cũng thực hiện giống như trích biển số

 Nhận diện các ký tự: Nhận dạng các ký tự từ các ký tự đã được tách ra.

Trang 13

CHƯƠNG 3: TRÍCH XUẤT BIỂN SỐ XE

3.1 Tìm hiểu phương pháp

Trích xuất biển số xe là một bước rất quan trọng trong quá trình nhận dạng biển số

xe Khối này được chia làm 2 giai đoạn chính

 Giai đoạn 1: Định vị trí của biển số trong ảnh

 Giai đoạn 2: Dùng các giải thuật để cắt biển số xe ra khỏi ảnh chụp và xoay biển số

xe về phương ngang

Hình 3.1 Sơ đồ tổng quát của khối trích xuất biển số

Việc định vị trí biển số xe dựa vào các tính chất của biển số như: hình dạng,màu sắc của biển số so với nền Biển số xe có hình chữ nhật với kích thước chiều dài

và rộng không thay đổi Từ đó chúng ta có thể tìm các vùng có hình tứ giác trong hình, tính tỉ lệ giữa hai chiều của hình so với khoảng giá trị cho trước để xem thử vùng đó có chứa biển số hay không Ngoài ra, định vị biển số còn dựa trên màu sắc của biển số Hầu hết các biển số xe Việt Nam đều nền trắng, chữ đen Kết hợp hai tính chất trên, chúng ta xác định được vùng chứa biển số

Sau khi định vị biển số xe, chúng ta tiến hành cắt biển số xe Biển số xe được cắt theo 2 bước Bước đầu tiên là cắt vùng rộng hơn vùng chứa biển số Sau

đó tìm góc nghiêng của biển số và thực hiện xoay biển số về phương thẳng đứng Bước hai là cắt biển số ra khỏi vùng trên

Việc tách biển số sử dụng rất nhiều giải thuật và phương pháp xử lý ảnh số như sơ đồ sau đây:

Trang 14

Hình 3.2.Sơ đồ chi tiết của khối tách biển số

3.2 Tìm vùng màu trắng

Vì biển số màu trắng,nên nhị phân hóa ảnh bằng cách gắn giá trị cho các pixel trắng là 1, còn ngược lại là 0 Đầu tiên, ảnh gốc được biến đổi thành ảnh xám (có mức sáng từ 0 đến 255), sau đó nhị phân hóa với một ngưỡng thích hợp Nếu ảnh được chụp vào ban đêm hay ban ngày nhưng ít ánh sáng thì mức ngưỡng sẽ là 120 Còn ban ngày, nhiều ánh sáng là 190

Nếu tần số xuất hiện các pixel có giá trị <64 thì đó là ảnh tối, ngược lại là ảnh sáng

Trang 16

Đây là sơ đồ thuật giải của bước tìm và tách vùng màu trắng:

Hình 3.5 Sơ đồ thuật giải tìm và tách vùng màu trắng

Chiều cao là H { H = start(i).Boundingbox(4) }

Chiều ngang là W { W = start(i).Boundingbox(3) }

Diện tích vùng trắng là S_pixel_trắng { S_pixel_trắng = start(i).Area }

Trang 17

Diện tích biển số là S_biển số { S_biển số = W × H }

Tỉ số 2 kích thước của biển số là 0.7 nhưng khi bị nghiêng thì là 0.8

Hinh 3.6 Hình dạng biển số khi bị nghiêng

Sau điều kiện thứ nhất, sẽ có những vùng trắng không chứa biển số nhưng có tỉ

số giữa chiều cao và chiều ngang phù hợp thì vẫn được chọn Ta sẽ loại bỏ

những vùng này bằng điều kiện thứ hai – diện tích vùng trắng

Đối với điều kiện thứ ba, nếu biển số nằm ngay ngắn thì tỉ số là 0.7 còn

nếu biển số bị nghiêng, sẽ xuất hiện pixel đen nên tỉ số này giảm còn 0.38

Hình 3.7 Biển số sau khi nhị phân

3.4 Cắt vùng chứa biển số

Sau khi xác định được vùng nào chứa biển số,ta tiến hành cắt biển số trên ảnh màu RGB.do sự tương đồng của ảnh nhị phân và ảnh màu RGB nên tọa độ 1 pixcel trên ảnh tương ứng tọa độ trên ảnh màu RGB.Do đó khi xác định được tọa độ trên ảnh nhị phân.Ta dùng tọa độ này để cắt ảnh RGB

Khi ta cắt biển số ra khỏi ảnh mà biển số bị nghiêng thì ta tiến hành cắt theo hình chữ nhật lớn hơn hình chữ nhật lớn thực sự một lượng biên an toàn để tránh việc mất thông tin biển số

Trang 18

Hình 3.8 Hình thể hiện vùng ảnh cần tách ra với biên an toàn

Trong chương trình, ta chọn vùng biên an toàn là 100 pixel

Trong bước này, ta không cắt biển số ra khỏi ảnh ngay mà chỉ cắt vùng chứa biển số Việc cắt này có thể xem như là cắt thô

Hình 3.9: Ảnh chụp ban đầu

Hình 3.10: Ảnh sau khi cắt thô

Trang 19

Ở đây, chúng ta có thể thấy các điều kiện trên chưa chặt chẽ, vì vậy ta lưu tất cảcác thông số “ x, y, W, H ” của vùng chứa biển số vào biến “ r ”.

Và sau đây là thuật giải của bước xác định vùng chứa biển số và cắt thô:

Hình 3.11: Sơ đồ thuật giải của bước xác định vùng chứa biển số và cắt thô

Trang 20

3.5 Tìm góc nghiêng và xoay:

3.5.1 Biến đổi Radon:

3.5.1.1 Tổng quan về biến đổi Radon:

Dùng để biến đổi các ảnh trong không gian 2 chiều với các đường thẳng thành miền Radon, trong đó mỗi đường thẳng trong ảnh sẽ cho 1 điểm trong miền Radon

Công thức toán học của biến đổi Radon:

A(ρcosθ sinθ,ρsinθ cosθ)

Phương trình trên biểu diễn việc lấy tích phân dọc theo đường thẳng s trên

ảnh, trong đó ρ là khoảng cách của đường thẳng so với gốc tọa đô O, và θ là góc

lệch so với

phương ngang

Hình 3.12: Phương pháp biến đổi Radon

Trong xử lý ảnh số, biến đổi Radon tính toán hình chiếu của ma trận ảnh dọc theo 1 hướng xác định Hình chiếu của 1 hàm số 2 chiều là f(x,y) la tập hợp các tích phân đường Hàm Radon tính toán tích phân đường dọc theo các tia song song theo các phương khác nhau ( bằng cách xoay hệ trục tọa độ xung quanh O

theo các giá trị θ khác nhau ), chiều rộng của các tia là 1 pixel Hình dưới đây biểu diễn 1 hình chiếu đơn giản theo 1 giá trị của góc θ

Trang 21

Hình 3.13: Hình chiếu đơn giản theo góc θ

Công thức tổng quát trên có thể viết lại

như sau:

Hình sau sẽ biễu diễn phương pháp biến đổi Radon dưới dạng hình học:

Hình 3.13: Phương pháp biến đổi Radon dưới dạng hình học

3.5.1.2 Các bước thực hiện:

b Biến đổi ảnh về ảnh nhị phân

Trang 22

b Thực hiện biến đổi Radon trên ảnh biên với θ = 0:179

Giá R của biến đổi Radon được biểu diễn như sau:

c Tìm giá trị lớn nhất của R trong biến đổi Radon

Vị trí các giá trị lớn nhất này tương ứng với các giá trị của đường thẳng trongảnh ban đầu

3.5.2 Tìm góc nghiêng và xoay:

Biển số được chụp với nhiều góc nghiêng khác nhau, do đó ta phải tìm góc nghiêng và xoay về phương thẳng Đây là việc rất quan trọng, vì nếu không quay về phương thẳng thì khi cắt biển số sẽ bị phạm vào biển số Chúng ta xác định góc nghiêng bằng phương pháp biến đổi Radon

Trước khi biến đổi Radon, ảnh chứa biển số được biến đổi thành ảnh được tách biên nhị phân

Trang 23

Hình 3.14: Ảnh được tách biên biên

Sau đó, ta tiến hành biến đổi Radon để tìm góc xoay Thực hiện biến đổi

Radon với góc θ chạy trong khoảng 0: 180, ta sẽ được một ma trận với các điểm R(θ) với từng góc θ và tọa độ pixel tương ứng.

Sau khi biến đổi Radon, chúng ta xác định được góc Rmax, ứng với Rmax thì ta

có được θ max và góc lệch là 90o - θ max Sau đó ta sử dụng hàm Rotate trong MATLAB để xoay ảnh với góc lệch tìm được

Hình 3.15: Ảnh biển số sau khi xoay về phương thẳng đứng.

Trang 24

Và đây là thuật giải của bước này:

Hình 3.16: Thuật giải tìm góc nghiêng biển số

3.6.Cắt biển số chính xác

Sau khi xoay biển số về phương thẳng đứng ta thực hiện việc cắt biển số Đây là một việc rất quan trọng, kết quả của nó quyết định tới kết quả của hệ thống nhận dạng biển số

Ta thực hiện lại việc chọn vùng biển số nhưng với biên là 0 pixel và 3 điều kiện chính xác hơn:

1600 < diện tích vùng trắng < 6100

0.73 < width/height < 0.77

0.6 < số pixel trắng / số pixel đen < 0.7

Hình 3.17: Biển số sau khi cắt hoàn chỉnh

Trang 25

Dưới đây là giải thuật :

Hình 3.18: Thuật giải cắt biển số chính xác

Trang 26

CHƯƠNG 4:PHÂN ĐOẠN VÀ NHẬN DẠNG KÝ TỰ

4.1 Tổng quan về phân đoạn ký tự:

Kết quả của trích biển số là một ảnh màu RBG có chứa biển số xe Để nhận dạng các ký tự trong biển số, ta tiến hành phân đoạn ký tự trong biển số Phân đoạn ký tự là việc cắt các ký tự trong biển số xe

Sau khi nhận kết quả, khối phân đoạn ký tự bắt đầu tiến hành tách từng ký tự trong biển số Trước khi phân đoạn ký tự, ảnh của biển số được chuyển thành ảnh nhị phân Ảnh nhị phân được chuẩn hóa về kích chuẩn, sau đó tiến hành cắt các ký tự Kết quả của quá trình phân đoạn là một ma trận chứa các ảnh đen trắng của ký tự

Hình 4.1: Sơ đồ khối phân đoạn ký

tự

4.2 Nhị phân biển số xe:

Đây là bước quan trọng để nhận dạng biển số xe Bước này sẽ tìm mức ngưỡng tối ưu, sau đó tiến hành nhị phân hóa ảnh với ngưỡng vừa tìm được

Trang 27

Hình 4.2: Ảnh sau khi được nhị phân.

Hình 4.3: Giải thuật nhị phân biển số

4.3 Chuẩn hóa biển số

Biển số được chuẩn hóa về kích thước [50 150], sau đó được lấy bù

Hình 4.4: Ảnh biển số sau khi được chuẩn hóa

Trang 28

Hình 4.5: Thuật giải chuẩn hóa biển số

4.4.Phân đoạn ký tự:

Ma trận nhị phân của biển số, chính là ngõ vào của chương trình phân vùng

ký tự Trước khi phân vùng ký tự, ta chia ma trận ảnh biển số thành từng hàng và lần lượt đưa từng hàng vào chương trình phân vùng Tuy nhiên, ở đây, chỉ tiến hành nhận dạng ký tự của hàng 2 nên ta chỉ ngỏ vào của chương trình phân vùng ký tự là ma trận của hàng 2

Để phân chia thành nhiều ma trận ký tự từ ma trận biển số, ta dựa vào tổng sốpixel mức 1 (mức 1 là màu trắng, mức 0 là màu đen).Với ma trận của hàng 2 sau khi đã chia đôi, giữa 2 ký tự có rất ít pixel có mức 1 Như vậy khi cộng giá trị các pixel theo từng cột, như hình sau, ta thấy gía trị tại các vùng giữa 2 ký tự rất thấp ( đây cũng là tổng số pixel mức 1) Từ đó, giải thuật phân vùng sẽ những vùng này dựa vào giá trị của nó nhỏ hơn những vùng lân cận và sẽ phân chia thành từng vùng

Ở đây, ta sẽ tìm 4 phân vùng tương ứng với 4 ký tự

Ngày đăng: 11/03/2017, 20:14

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w