Tải bản đầy đủ (.docx) (45 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.04 MB, 45 trang )

ĐỒ ÁN 3

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

MỤC LỤC


DANH MỤC CÁC HÌNH VẼ


DANH MỤC CÁC TỪ VIẾT TẮT

RGB: Red Green Blue
OCR: Optical Character Recognition
CIE : Commision Internationaled Eclairage


ĐỒ ÁN 3
TRANG 4/42

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

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 5/42

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.
1.4.1 Mục tiêu:
Xây dựng hệ thống nhận dạng biển số xe tự động

1.4.2.Nội dung
Xác định vị trí biển số xe từ 1 hình ảnh bằng Matlab
Nhận dạng ký tự thông qua OCR

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 6/42

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ý.
 Phân tích ảnh: bao gồm nhiều công đoạn nhỏ:
Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 7/42

 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,...
2.2 LÝ THUYẾT VỀ ẢNH SỐ
2.2.1 Khái niệm ảnh số
Ảnh là tập hợp các điểm. Thông tin trong một ảnh là rất lớn. Bản chất các thông số
ảnh có tính vector.
Malab là một phần mềm dùng để tính toán trong kỹ thuật đạc biệt là các bài toán về ma
trận.Matlab còn cung cấp các toolboxes chuyên dụng để giải quyế những vấn đề cụ thể như xử
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”.

Hình 2.1.Ảnh xám

2.2.3 Ảnh nhị phân
Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 8/42

Ả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:
Red : λ (R) = 700nm.
Green : λ (G) = 546.1 nm.
Blue : λ (B) = 435.8 nm.
Cũng theo tổ chức quốc tế về chuẩn hóa màu CIE (Commision Internationaled
Eclairage ) đã đưa ra một số tiêu chuẩn để biểu diễn màu.


Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 9/42

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

Trích [1]

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 10/42

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

Trích [1]
2.3 Các phương pháp nhận dạng truyền thống
Hệ nhận dạng kí tự ( gọi tắt là OCR - Optical Character Recognition ). OCR làm
việc khá tốt với các trang văn bản rõ nét.
Nhận dạng ký tự quang học (dùng các kỹ thuật quang học chẳng hạn như gương và
ống kính) và nhận dạng ký tự số (sử dụng máy quét và các thuật toán máy tính) lúc đầu
được xem xét như hai lĩnh vực khác nhau. Bởi vì chỉ có rất ít các ứng dụng tồn tại với
các kỹ thuật quang học thực sự, bởi vậy thuật ngữ Nhận dạng ký tự quang học được mở
rộng và bao gồm luôn ý nghĩa nhận dạng ký tự số.
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.
Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 11/42

 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.

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 12/42

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.

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 13/42

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:

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 14/42

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.

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 15/42

Hình 3.3.Ảnh sáng và tối

Ảnh sau khi nhị phân hóa sẽ như sau:

Hình 3.4.Ảnh sau khi nhị phân

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 16/42

Đâ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


3.3 Xác định vùng chứa biển số
Ảnh nhận được sau khi nhị phân hóa sẽ có nhiều vùng màu trắng, và biển số sẽ
nằm trong vùng màu trắng thỏa điều kiện:
0.7 < chiều cao / chiều ngang < 0.8
15000 ≤ S_pixel_trắng ≤74200
≤ S_pixel_trắng / S_biển số ≤ 0.7
Với:
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 }
Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 17/42

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ố.

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 18/42

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ô

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 19/42

Ở đâ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ô

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 20/42

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
A( ρRadon:
cosθ − s sin θ , ρ sin θ + s cosθ )ds
R (θ , ρ ) = ∫
−∞
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 θ .

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 21/42

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.

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 22/42

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 .
Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3

TRANG 23/42

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.

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 24/42

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

Nhận Dạng Biền Số Xe Trong Ảnh


ĐỒ ÁN 3
TRANG 25/42

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

Nhận Dạng Biền Số Xe Trong Ảnh


×