có sơ đồ nguyên lý, sơ đồ khối, sơ đồ thuật toán và hướng dẫn chi tiết về XỬ lý ẢNH NHẬN DIỆN BIỂN số XE dùng MATLAB ...................................................................................................................................................................................
Trang 1MỤC LỤC
DANH MỤC CÁC HÌNH VẼ VII
CHƯƠNG 1 GIƠI THIÊU CHƯƠNG TRÌNH 1
1.1 KHÁI QUÁT CHƯƠNG TRÌNH 1
1.2 SƠ ĐỒ QUÁ TRÌNH NHẬN DẠNG 1
CHƯƠNG 2 CÁC LOẠI ẢNH VÀ PHƯƠNG PHÁP XỬ LÝ ẢNH 3
2.1 CÁC LOẠI ẢNH TRONG MATLAB 3
2.1.1 Ảnh Grayscale 3
2.1.2 Ảnh nhị phân 3
2.1.3 Ảnh RGB 3
2.2 CÁC PHƯƠNG PHÁP XỬ LÍ ẢNH SỐ 4
2.2.1 Chuyển ảnh màu RGB thành ảnh mức xám 4
2.2.2 Phương pháp phân vùng ảnh 5
2.3 CÁC PHƯƠNG PHÁP NHẬN DẠNG TRUYỀN THỐNG 6
CHƯƠNG 3.CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ 8
3.1 KHÁI QUÁT CHƯƠNG TRÌNH 8
3.2 TRÍCH VÙNG BIỂN SỐ 9
Trang 23.5.2 Tiến hành nhận dạng các ký tự 16
CHƯƠNG 4 KẾT QUẢ MÔ PHỎNG 17
4.1 GIAO DIỆN CHƯƠNG TRÌNH 17
4.2 KẾT QUẢ NHẬN DẠNG 18
CHƯƠNG 5 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM 19
5.1 ƯU ĐIỂM CHƯƠNG TRÌNH 19
5.2 NHƯỢC ĐIỂM CHƯƠNG TRÌNH 19
5.3 HƯỚNG PHÁT TRIỂN CHƯƠNG TRÌNH 19
TÀI LIỆU THAM KHẢO 20
Trang 3YHÌNH 2.2: HÌNH ẢNH RGB 4
YHÌNH 2.3: ẢNH MỨC XÁM 5
HÌNH 2.4: GÁN NHÃN ĐỐI TƯỢNG 6
HÌNH 3.1: LƯU ĐỒ GIẢI THUẬT NHẬN DẠNG BIỂN SỐ XE 9
HÌNH 3.2: LƯU ĐỒ GIẢI THUẬT CẮT BIỂN SỐ XE 10
HÌNH 3.3: LƯU ĐỒ GIẢI THUẬT PHÂN ĐOẠN KÝ TỰ 14
HÌNH 4.1: GIAO DIỆN CHƯƠNG TRÌNH TRÊN GUIDE 17
HÌNH 4.2: KẾT QUẢ NHẬN DẠNG 18Y
Trang 4CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 Khái quát dề tài
Xử lý và nhận dạng ảnh là một khoa học còn tương đối mới so với nhiều ngànhkhoa học khác, một trong những lĩnh vực từ lâu được nhiều người quan tâm Nóliên quan đến nhiều ngành khoa học khác như hệ thống thông tin, lý thuyết thôngtin, lý thuyết thống kê, nhận dạng, dùng để nhận dạng các ký tự, chữ số, mặtngười, vân tay
Trong đề tài này,em sẽ làm phần nhận diện biển số xe để giúp cho việc quản lí cácbãi giữ xe hoặc giúp phát hiện xe bị đánh cắp,…
TÁCHBIỂN SỐ
Trang 5 Nhận dạng kí tự : sau khi phân đoạn kí tự trong biển số và tạo thành chuỗi kítự.Chuỗi này được đưa vào khối nhận dạng để tiến hành nhận dạng kí tự trong chuỗi
Kết quả nhận dạng : sau khi nhận dạng các kí tự trong biển số xe ta sẽ xuất kếtquả nhận dạng qua khối kết quả nhận dạng
CHƯƠNG 2 CÁC LOẠI ẢNH VÀ PHƯƠNG PHÁP XỬ LÝ ẢNH
1.3 Các loại ảnh trong matlab
1.1.1 Ả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 (hay mức xám) của điểm ảnh đó.Ma trận này có thể một trong cáckiểu uint8,uint16 hoặc double.Ảnh biểu diễn theo kiểu này còn gọi là ảnh “trắngđen”
Trang 61.1.2 Ảnh nhị phân
Ả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) hoặc 1 (trắng)
Hình 2.1: Hình ảnh nhị phân
1.1.3 Ả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ởimộ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 theopixels.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 phần tử của nó có thể thuộc kiểu uint8,uint16 hoặc double
Hình 2.2: Hình ảnh RGB
1.4 Các phương pháp xử lý ảnh số
Trang 71.1.4 Chuyển ảnh màu RGB thành ảnh mức xám (Gray Level)
Ảnh gốc thường là ảnh màu 24 bit màu nên khó nhận dạng ta cần phải chuyển vềảnh xám dữ liệu 8 bit để dễ nhận dạng hơn.Để thực hiện yêu cầu trên,ta sử dụngcông thức sau đây,áp dụng cho từng điểm ảnh [x,y]:
X= 0,299*Red + 0,587*Green + 0,114*Blue
Mỗi giá trị X hay còn gọi là cường độ sáng trong ảnh đa mức xám tính được là tổngtrọng số khác nhau của mỗi thành phần màu trong hệ màu RGB(Red-Green-Blue)Quá trình chuyển đổi mức xám tuy có làm mất đi một số thông tin nhưng cũng cóthể chấp nhận được
Hình 2.3: Ảnh mức xám
1.1.5 Phương pháp phân vùng ảnh
Có thể hiểu phân vùng là tiến trình chia ảnh thành nhiều vùng, mỗi vùng chứa mộtđối tượng hay nhóm đối tượng cùng kiểu.Ta có một số phương pháp phân vùng ảnhnhư sau:
Thuật toán gán nhãn thành ph ầ n liên thông:
Trang 8Kỹ thuật này gán cho mỗi thành phân liên thông của ảnh nhị phân một nhãn riêngbiệt Nhãn thường là các số tự nhiên bắt đầu từ một đến tổng số các thành phần liênthông có trong ảnh Giải thuật quét ảnh từ trái sang phải và từ trên xuống dưới.Ảnh được nhận về là ảnh nhị phân, trong đó có nhiều đối tượng khác nhau ta tiếnhành chọn ra đối tượng nào là đối tượng ta muốn chọn.Dựa vào thuật toán gắn nhãnliên tiếp các đối tượng, cụ thể như sau:
Thuật toán phân vùng ảnh dựa trên kỹ thuật đánh nhãn liên tiếp
_Mặt nạ ảnh với 4 điểm lân cận
_Mặt nạ ảnh với 8 điểm lân cận
_Mặt nạ với 4 điểm lân cận và 8 điểm lân cận
Quy ước khi quét ảnh:
Nếu điểm ảnh có giá trị là 0 thì gọi là điểm ảnh nền
Nếu điểm ảnh có giá trị là 1 thì gọi là điểm ảnh nổi
Ta chỉ đánh nhãn các điểm ảnh nổi
Quá trình đánh nhãn ảnh được thực hiện theo các bước sau:
Bước 1: Tiến hành quét lần lượt tất cả các điểm ảnh từ trái sang phải, từ trên xuống
dưới Nếu gặp điểm ảnh nền thì bỏ qua, nếu gặp điểm ảnh nổi thì tiến hành đánhnhãn Trước khi đánh nhãn cho mỗi điểm ảnh nổi, ta cần quan tâm đến giá trị củađiểm ảnh phía trên và điểm ảnh bên trái của điểm ảnh ta đang xét Nếu các điểm ảnhnày đã được đánh nhãn thì điểm ảnh đang xét được đánh nhãn trùng với điểm ảnhtrên hoặc điểm ảnh bên trái đó Nếu các điểm ảnh bên trên và điểm ảnh bên trái làcác điểm ảnh nền thì ta đánh nhãn mới cho điểm ảnh đang xét
Bước 2: Sau khi đánh nhãn tất cả các điểm ảnh nổi, ta cần nhóm các điểm ảnh ở
gần nhau nhưng lại được đánh nhãn khác nhau lại với nhau
Bước 3: Thực hiện quét lại và đánh nhãn mới cho các nhóm điểm ảnh vừa được
nhóm lại ở trên
Trang 9Hình 2.4: Gán nhãn dối tượng
1.5 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 ),nhận dạng kí
tự bằng quang học.Đây là công nghệ được áp dụng để nhận dạng ký tự trên mộtđịnh dạng file hình và chuyển nó thành định dạng file text.Nhiều hệ thống nhậndạng đã làm việc khá tốt,nhưng xét tổng thể thì vẫn còn khoảng cách khá lớn giữatính năng của các hệ nhận dạng và đòi hỏi thực tế
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ạngtheo 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 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 matrậ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 Có nhiều cách thức sosánh, chẳng hạn thông qua số lượng điểm khác biệt Tuy nhiên do sự khác biệt giữacác font chữ nhiều khi còn lớn hơn sự khác biệt giữa các con chữ cùng font ( chẳng
Trang 10hạn chữ b và chữ h - 2 chữ này trong cùng một font còn có vẻ gần nhau hơn so vớicùng chữ trong font ), vì vậy thông thường các mẫu được phân theo font Sau khi xử
lý một vài từ, hệ thống tự động xác định các con chữ hay dùng và định font chothích hợp
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 Hệ chuyên gia còn xem xét hình chiếudọc, ngang ( cộng với các điểm đen theo hàng/cột ) để xác định thêm các tham sốkhác Kiểu nhận dạng này dựa trên tư duy quen thuộc sau: chẳng hạn chữ t gồm mộtđường thẳng đứng cắt một vạch ngang, có thể có thêm các gạch chân Nếu nhậndạng theo mẫu phải lưu tất cả các mẫu khác nhau ( hệ ExperVision chứa tới 2100loại chữ ) Hệ OmniPage sẽ chỉ cho máy tính cách “đọc” từng con chữ, ví dụ chữ kgồm một vạch đứng và hai vạch chéo, còn các tham số khác chỉ là tham số phụ
CHƯƠNG 3 CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE
1.6 Khái quát chương trình
Mục đích của đề tài là xây dựng một chương trình đọc biển số xe tại một vị trí cốđịnh, ví dụ như ở lối vào của khu vực bãi đậu xe Hệ thống xây dựng dựa vào mộtmáy tính PC thông thường có giao tiếp với một máy ghi hình (camera hay webcam)nhằm đáp ứng trạng thái thực chụp lấy ảnh, hay một ảnh được chụp từ máy ảnh, đểtạo một ảnh ( ảnh gốc) được đưa vào máy tính PC Từ những hình ảnh thu được cóchứa biển số xe thì phần mền sẽ xử lý nhận dạng và kết quả đưa ra biển số xe Mộtkhi biển số xe được phát hiện (nhận dạng), các chữ số của nó được đọc và xuất ratrên giao diện người dùng và đối chiếu lại với cơ sở dữ liệu
Đối với xe 2 bánh ( xe gắn máy) biển số có 8 hoặc 9 kí tự và chia làm 2 hàng.Hàngtrên có 4 kí tự và hàng dưới có 4 hoặc 5 kí tự,theo qui định nhà nước hiện hành
Trang 11Lưu đồ giải thuật chương trình nhận dạng biển số xe:
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE SVTH: Phạm Trọng Phước
NHẬN DẠNG KÍ
TỰ
PHÂNĐOẠN
Trang 12Hình 3.1:Lưu đồ giải thuật chương trình nhận dạng biển số xe
1.7 Trích vùng biển số
Tách biển số là một bước rất quan trọng trong quá trình nhận dạng biển số xe.Khốitách biển số xe được chia thành 2 gia đoạn chính:
Gia đoạn 1: xác định vị trí biển số xe trong ảnh
Gia đoạn 2: dùng các giả thuật để cắt biển số xe ra khỏi ảnh
Lưu đồ giải thuật trích vùng biển số xe:
Trang 13Hình 3.2:Lưu đồ giải thuật cắt biển số
Ảnh chụp được thường là ảnh màu, vậy ngõ ra của khối ảnh gốc sẽ là ảnh màu(RGB).Sau đó ta sẽ chuyển thành ảnh xám sẽ giúp cho ta dễ dàng nhận dạng vùngbiển số.Ta sẽ đi xác định tâm của ảnh sau khi đã được chuyển thành ảnh xám,để ta
sẽ xác định được khoảng cộng trừ thỏa mãn theo hàng và theo cột theo tâmảnh.Việc xác định hai khoảng này sẽ giúp ta xác định được điều kiện để nhận biếtđược biển số xe ở giữa bức hình.Sau đó chúng ta sẽ đi tìm khích thước của biển sốnhỏ nhất mà chương trình có thể nhận dạng được.Kế tiếp là chúng ta sẽ xác địnhngưỡng xám,việc xác định ngưỡng xám rất quan trọng nó quyết định đến khả năngchọn đúng vùng biển số.Và ngưỡng xám này sẽ giúp ta chuyển từ ảnh xám về ảnhnhị phân khi ta đặt một ngưỡng thích hợp để so sánh.Mức xám của ảnh sẽ đượcdùng để so sánh với giá trị ngưỡng này.Biểu thức:
0 nếu u < T f(u) =
1 nếu u ≥ TSau khi nhị phân ảnh xong,ta sẽ loại bỏ các đối tượng nhỏ ra khỏi ảnh việc này sẽ
XÁC ĐỊNH HÌNHCHỮ NHẬT BAOQUANH
NHỊ PHÂN ẢNH
LOẠI BỎ ĐỐI
TƯỢNG NHỎ
CẮT BIỂN SỐ XE
Trang 14giúp ta tránh khỏi việc xác định vùng trắng sai.Tiếp theo ta sẽ loại bỏ các vùngtrắng có dính với biên đi qua đó chúng ta sẽ xác định được vùng trắng ở giữaảnh.Sau đó ta sẽ mở rộng biển số nhỏ đã có ở trên theo vùng trắng ta vừa tìmđược.Kế tiếp là ta sẽ đánh dấu nhãn cho vùng số đó và ta đem so sánh với khoảngcộng trừ.Nếu nhãn đó với 2 khoảng cộng trừ có điểm chung thì ta đã xác định đượcbiển số nằm giữa bức hình.Và ta sẽ xác định được hình chữ nhật bao quanh nhãnđó,và nếu hình chữ nhật đó thỏa mãn điều kiện chiều cao nhỏ hơn chiều dài thì ta đãxác định được vùng biển số.Sau đó ta sẽ cắt vùng biển số đó ra và chuyển lại thànhảnh màu RGB.
1.8 Chỉnh kích thước hình
Sau khi cắt được biển số xe trong ảnh gốc,thì sẽ xảy ra trường hợp hình cắt ra sẽnhỏ hay lớn quá chúng ta sẽ không phân đoạn kí tự và nhận dạng kí tự được.Khốichỉnh kích thước ảnh sẽ có nhiệm vụ là chỉnh kích thước ảnh sau khi cắt để chúng ta
có thể phân đoạn và nhận dạng.Và kích thước ảnh để có thể xử lí được là XP =380,YP = 250
Ma trận ảnh đầu vào sẽ có dạng:
Ma trận đầu ra sẽ có dạng:
Ma trận trung gian để chuyển P thành P’ sẽ có dạng:
x y 1
Trang 15Và ta sẽ có kết quả:P’=M.P
Tuy nhiên khi ta chuyển từ ảnh thật sang ảnh ảo,ảnh sẽ bị bể.Do đó để khắc phụcviệc này ta cần phải áp dụng thuật toán : Blackward Mapping.Thuật toán này sẽ đitìm vị trí của ảnh thật tương ứng với ảnh ảo,rồi lấy giá trị tại điểm vừa tìm của anhtthật gán lại cho vị trí tương ứng của ảnh ảo:
Trang 16CHUYỂNTHÀNHẢNH XÁM
LƯU CÁC KÍ TỰ
CHUẨN HÓAKÍCH THƯỚC
LỰA CHỌN CÁC ĐỐI TƯỢNG PHÙ HỢP KÍCH
PHÂN VÙNGẢNH
Trang 17Hình 3.3:Lưu đồ giải thuật phân đoạn kí tự
Tiến hành lần lượt với từng hàng biển số dùng kỹ thuật quét ảnh và phân vùng,sau
đó lựa chọn ra các đối tượng trong ảnh sao cho phù hợp với kích thước và diệntích.Chuẩn hóa kích thước các đối tượng sau đó lưu lại các đối tượng vào mộtmảng,theo thứ tự từ các đối tượng trong biển số từ trái qua phải và từ trên xuốngdưới
Việc trích chọn các đối tượng đặc trưng của đối tượng là việc lựa chọn ra các yếu tốhình học Sự biến đổi từng yếu tố riêng có thể làm thay đổi trật tự các đại lượng,điều này có thể làm ảnh hưởng đến việc phân lớp Vấn đề này thường được giảiquyết bằng một phép biến đổi tuyến tính thích hợp đối với các thành phần củavector đặc trưng
Phân lớp :
Trang 18Đây là bước quyết định trong quá trình nhận dạng Tất cả các bước trong quá trình
xử lý nhằm mục đích cho việc phân tách các mẫu thành công Quá trình phân lớp cóthể hiểu là quá trình chuyển đổi các số liệu đầu vào định lượng và các số liệu đầu rađịnh tính Đầu ra của phân lớp có thể là sự lựa chọn rời rạc một lớp trong số các lớp
đã được định nghĩa, hoặc có thể là một vector giá trị thực biểu diễn các giá trị có thểthừa nhận mẫu đó được hình thành từ các lớp tương ứng
1.1.7 Tiến hành nhận dạng các kí tự
Các ký tự sau khi đã cách ly ta mang chúng phân thành các lớp giống như cách tạo
ra các lớp mẫu Như vậy, ta lựa chọn các lớp ký tự này so sánh lần lượt với các lớp
có trong mẫu Kết quả của mỗi lần so sánh tìm ra hệ số tương quan sau đó tiến hànhlưu chúng cùng các lớp khác Sau khi hoàn tất xong ta tiếp tục chọn trong các lớpxem lớp nào có hệ số tương quan lớn nhất, lớp này có tên gì tương ứng với ký tựnào ta xuất ra màn hình ký tự đó
Phương pháp này đòi hởi cần phải có hai ảnh cùng kích thước
Công thức xác định hệ số tương quan:
Trong đó Amn là giá trị pixel tại cột m và hàng n, Bmn là giá trị pixel tại cột m vàhàng n và là giá trị trung bình của ma trận A và B
Trang 19CHƯƠNG 4 KẾT QUẢ MÔ PHỎNG1.11 Giao diện chương trình
Hinh 4.1:Giao diện chương trình trên Guide
Ảnh đầu vào sẽ lấy từ các hình lưu sẵn trên máy tính đưa vô khung ở trên
Sau đó,chương trình sẽ chạy phần cắt biển số để cắt biển số từ hình ra rồi đi phân đoạn kí tự.Tiếp theo sẽ lấy từng kí tự sau khi đã phân đoạn đem đi so sánh với các mẫu có sẵn.Rồi lưu vào trong mảng
Cuối cùng sẽ xuất các kí tự nhận dạng được ở khung kết quả
1.12 Kết quả nhận dang
Trang 20Hình 4.2: Kết quả nhận dạng
CHƯƠNG 5 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM
1.13 Ưu điểm chương trình
Đồ án thực hiện được các yêu cầu đặt ra,nhận dạng đúng biển số
Tốc độ xử lí tương đối
Kết quả nhận dạng ở mức chấp nhận được
Trang 211.14 Nhược điểm chương trình
Khả năng sai lớn nhất của chương trình trong quá trình chạy thử nghiệm là sai mấtmột kí tự trong các kí tự nhận được.Chính vì vậy,khả năng nhận dạng của chươngtrình không thể chính xác tuyệt đối
Các kí tự có độ chính xác không cao thường gặp như:
Số 8 sẽ cho ra chữ B
Khi nhận dạng ở trạng thái đáp ứng thực trong quá trình chụp ảnh nếu thu ảnhkhông rõ nét ( góc ảnh,ảnh bị nhiễu do ánh sáng chiếu vào) thì kết quả vẫn khôngđạt được mong muốn
Và ảnh đầu vào nếu số lượng pixel cao quá thì vẫn không đạt được mong muốnẢnh muốn xử lí được khi biển số phải nằm giữa khung hình,nếu không sẽ không cắtbiển số chính xác được
1.15 Hướng phát triển chương trình
Chương trình có khả năng ứng dụng cao trong thực tiễn, giúp việc xử lý hình ảnh và
dữ liệu trở nên đơn giản và cũng là tiền đề cho các hệ thống nhận dạng tự động.Việc ứng dụng các công nghệ bán dẫn cho các hệ thống nhận dạng tự động làm tăngkhả năng đáp ứng thời gian thực, đây cũng chính là hướng phát triển của đề tài.Kết hợp chương trình vào thực tế với việc quẹt thẻ tự động thu phí hoặc in xuất biển
số xe cho khách hàng Đồng thời ghi chú xe ra vào theo tháng