1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nhận diện biển số xe máy

101 3 0

Đ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 101
Dung lượng 2,01 MB

Nội dung

TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI TP HỒ CHÍ MINH KHOA ĐIỆN - ĐIỆN TỬ VIỄN THÔNG LUẬN VĂN TỐT NGHIỆP NHẬN DIỆN BIỂN SỐ XE MÁY Ngành: KỸ THUẬT ĐIỆN TỬ, TRUYỀN THÔNG Chuyên ngành: ĐIỆN TỬ VIỄN THÔNG Giảng viên hướng dẫn: ThS Lê Anh Uyên Vũ Sinh viên thực hiện: Bùi Anh Tài TP Hồ Chí Minh, 2014 NHẬN DIỆN BIỂN SỐ XE MÁY MỤC LỤC LỜI GIỚI THIỆU CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE 1.1 Tổng quan xử lý ảnh 1.1.1 Xử lý ảnh gì? 1.1.1.1 Thu nhận ảnh .7 1.1.1.2 Tiền xử lý 1.1.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh 1.1.1.4 Nhận dạng ảnh 1.1.1.5 Cơ sở tri thức (Knowledge Base) 1.1.2 Một số khái niệm hệ thống xử lý ảnh 1.1.2.1 Điểm ảnh (Picture Element) 1.1.2.2 Độ phân giải ảnh .10 1.1.3 Phân loại ảnh 11 1.1.4 Quan hệ điểm ảnh 13 1.1.5 Nhiễu ảnh phương pháp giảm thiểu nhiễu 16 1.2 Tổng quan phương pháp nhận diện biển số xe 18 CHƯƠNG 2: TRÍCH CHỌN VÙNG BIỂN SỐ 20 2.1 Tổng quan trích chọn vùng biển số: .20 2.2 Trích chọn vùng chứa biển số 23 Trang NHẬN DIỆN BIỂN SỐ XE MÁY 2.2.1 Chuyển đổi ảnh xám 23 2.2.2 Tăng cường độ tương phản cho ảnh xám 24 2.2.3 Nhị phân hóa ảnh 26 2.2.4 Loại bỏ đối tượng xem biển số .27 2.2.5 Cắt biển số xác 28 2.3 Xử lý ảnh nghiêng xoay ảnh 32 2.3.1 Phương pháp tách biên Canny 33 2.3.2 Xử lý ảnh nghiêng phương pháp biến đổi Hough .35 2.3.2.1 Lý thuyết biến đổi Hough 35 2.3.2.2 Áp dụng phương pháp biển đổi Hough để xử lý ảnh nghiêng 38 CHƯƠNG 3: PHÂN VÙNG TRÍCH CHỌN TỪNG KÝ TỰ 45 3.1 Phân vùng trích chọn ký tự theo ngưỡng biên độ .45 3.1.1 Lý thuyết phương pháp phân vùng ảnh theo ngưỡng biên độ .45 3.1.2 Áp dụng phương pháp phân vùng ảnh dựa ngưỡng biên độ để phân vùng trích chọn ký tự 47 3.2 Phân vùng trích chọn ký tự dựa đặc điểm hình thái 49 3.2.1 Các phép tốn xử lý hình thái học 49 3.2.1.1 Phép co ảnh .49 3.2.1.2 Phép dãn ảnh 49 3.2.1.3 Phép mở ảnh 50 3.2.1.4 Phép đóng ảnh 50 3.2.1.5 Phép làm đầy đối tượng 50 3.2.1.6 Trích chọn thành phần liên thông .51 Trang NHẬN DIỆN BIỂN SỐ XE MÁY 3.2.2.Áp dụng phương pháp hình thái học để trích chọn ký tự 52 CHƯƠNG 4: NHẬN DIỆN KÝ TỰ 62 4.1 Tổng quan nhận dạng 62 4.1.1 Trích chọn đặc trưng sử dụng phương pháp PCA 63 4.1.2 Trích chọn đặc trưng phương pháp LDA 64 4.1.3 Trích chọn đặc trưng mạng neural nhân tạo 65 4.2 Nhận diện ký tự phương pháp so khớp mẫu 70 CHƯƠNG 5: MƠ PHỎNG CHƯƠNG TRÌNH NHẬN DIỆN BIỂN SỐ XE 75 5.1 Phần mềm Matlab version 7.11.0 (R2110b) .75 5.2 Giao diện chương trình mơ 77 KẾT LUẬN 82 TÀI LIỆU THAM KHẢO 88 PHỤ LỤC 91 Trang NHẬN DIỆN BIỂN SỐ XE MÁY DANH MỤC HÌNH VẼ Hình 1.1 Quá trình xử lý ảnh Hình 1.2: Các bước xử lý ảnh Hình 1.3 : Ảnh nhị phân có kích thước 8x8 .12 Hình 1.4: Các điểm ảnh lân cận 14 Hình 1.5: Sơ đồ tổng qt tốn nhận diện biển số 19 Hình 2.1: Sơ đồ tổng quát khối tách biển số .20 Hình 2.2: Lưu đồ trích chọn biển số 22 Hình 2.3: Ảnh sau chuyển mức xám .24 Hình 2.4 : Dãn độ tương phản 25 Hình 2.5: Ảnh sau nhị phân ngưỡng thích hợp 27 Hình 2.6: Biểu diễn trích vùng chứa biển số 29 Hình 2.7: Ảnh chứa biển số 30 Hình 2.9 : Ảnh sau tách biên .35 Hình 2.10: Đường thẳng Hough tọa độ cực 37 Hình 2.11: Ứng dụng biến đổi Hough phát góc 40 Hình 2.12: Lưu đồ xác định góc nghiêng xoay ảnh 42 Hình 3.1: Lược đồ phân bố điểm ảnh theo hàng cách chọn ngưỡng .46 Hình 3.2: Vị trí phân cách hàng hàng ảnh .47 Hình 3.3: Biển số sau cắt ngang 47 Hình 3.4: Xác định vị trí ký tự xuất .48 Hình 3.5: Ví dụ phép toán co ảnh nhị phân với phần tử cấu trúc phẳng .49 Hình 3.6: Ví dụ phép giãn nhị phân ảnh 50 Hình 3.7: Kết việc lấp đầy vùng ảnh 51 Trang NHẬN DIỆN BIỂN SỐ XE MÁY Hình 3.8: Hình dáng lân cận lân cận .52 Hình 3.9: Lưu đồ phân vùng trích chọn kí tự .53 Hình 3.10: Ảnh sau chuyển ảnh xám âm ảnh 54 Hình 3.11: Ảnh sau tách biên 54 Hình 3.12: Ảnh sau điền đầy đối tượng 55 Hình 3.13: Ảnh tổng quát biển số sau nhị phân 55 Hình 3.14: Ảnh chứa đối tượng đánh nhãn 56 Hình 3.15: Ảnh sau loại bỏ đối tượng chứa biên 57 Hình 3.16: Ảnh sau loại bỏ đối tượng có số hàng nhỏ số cột 58 Hình 3.17: Ảnh sau loại bỏ đối tượng có tỉ lệ khác 9:4 59 Hình 3.18: Ảnh sau thỏa điều kiện 60 Hình 3.19: Các ký tự sau trích chọn 61 Hình 4.1: Biễu diễu ảnh không gian ảnh 63 Hình 4.2: Biễu diễn ảnh khơng gian PCA 64 Hình 4.3: Biểu diễn liệu không gian LDA 65 Hình 4.4: Sơ đồ mạng nerual nhân tạo .66 Hình 4.5 : Mạng neural Perceptron 68 Hình 4.6 : Mạng neural Feedforward 68 Hình 4.7 : Mạng neural Hopfield .69 Hình 4.8: Tập ảnh mẫu cho ký tự số 70 Hình 4.9: Tập ảnh chữ mẫu 71 Hình 4.10: Lưu đồ nhận dạng ký tự phương pháp so khớp mẫu .73 Hình 4.11: Quá trình nhận diện ký tự 74 Hình 5.1: Giao diện chương trình Matlab 75 Hình 5.2: Giao diện chương trình mơ .77 Trang NHẬN DIỆN BIỂN SỐ XE MÁY Hình 5.3 Thư mục chứa ảnh có biển số xe 78 Hình 5.4: Giao diện sau trích chọn vùng biển số 79 Hình 5.5: Ảnh sau phân vùng trích chọn ký tự .80 Hình 5.6 :Kết sau mô 81 DANH MỤC BẢNG Bảng 2.1: Cách tính ngưỡng tự động .27 Bảng 2.2 : Minh họa phương pháp phân ngưỡng tự động 33 Bảng 2.3: Quá trình xử lý ảnh nghiêng xoay ảnh 45 Bảng kết sau kiểm tra thực nghiệm .83 Trang NHẬN DIỆN BIỂN SỐ XE MÁY LỜI GIỚI THIỆU Lý chọn đề tài: Cùng với phát triển khoa học kỹ thuật, nhu cầu lại người ngày tăng, lưu lượng giao thông ngày lớn Với số lượng phương tiện giao thông ngày lớn cịn khơng ngừng tăng việc quản lý phương tiện giao thông gặp nhiều khó khăn cần có hệ thống tự động Một hệ thống hệ thống nhận dạng biển số xe Đó hệ thống có khả “đọc” “hiểu” biển số xe cách tự động Một hệ thống sử dụng nhiều ứng dụng chẳng hạn : trạm cân rửa xe tự động hồn tồn, bãi giữ xe tự động, kiểm sốt lưu lượng giao thông hay ứng dụng an ninh nhờ tìm kiếm xe cắp… Như hệ thống tự động khác, hệ thống yêu cầu có phần cứng lẫn phần mềm Phần cứng có phần camera có tác dụng thu nhận hình ảnh cịn phần mềm có tác dụng xử lý hình ảnh Với phát triển kỹ thuật điện tử, camera dễ dàng có khả thu nhận hình ảnh mà vấn đề đặt vấn đề quan trọng hệ thống, định tính hiệu hệ thống xử lý ảnh phần mềm xử lý ảnh Với vai trị phân tích nghiên cứu tập trung vào giải vấn đề đặt xử lý ảnh để đưa xác biển số đăng ký xe Trong luận văn dừng lại mức xác định biển số xe (xác định kí tự biển số) từ ảnh chụp có sẵn Mục đích nghiên cứu Yêu cầu toán áp dụng thuật tốn thích hợp tìm vùng chứa biển số, trích vùng biển số, cách ly kí tự biển số, từ máy tính có khả Trang NHẬN DIỆN BIỂN SỐ XE MÁY xử lý nhận dạng Có thể tóm tắt yêu cầu toán theo sơ đồ sau: Ảnh đầu vào Phân đoạn trích chọn ký tự Trích chọn vùng biển số Xử lý ảnh nghiêng Nhận diện ký tự Kết biển số xe 54X1-7726  Trích chọn vùng biển số (Tách biển số): khối có chức tách biển số từ ảnh chụp phương pháp xử lý ảnh Kết khối ảnh màu RBG (Red Green Blue) cắt từ ảnh chụp Đây cơng việc khó khăn ta khơng biết vị trí xác biển số Ngồi ra, sau trích chọn vùng chứa biển số ta cần xử lý với số ảnh bị nghiêng  Phân đoạn trích chọn ký tự: sau tách biển số, bắt đầu phân đoạn ký tự Khối thực tách ký tự có biển số, tạo thành tập ảnh riêng biệt ký tự phục vụ việc nhận dạng ký tự Ảnh Trang NHẬN DIỆN BIỂN SỐ XE MÁY ký tự ảnh trắng đen  Nhận dạng ký tự: sau phân đoạn, tách ký tự biển số tạo thành chuỗi ký tự Chuỗi đưa vào khối nhận dạng dạng để tiến hành nhận dạng ký tự chuỗi Nhiệm vụ nghiên cứu  Tìm hiểu xử lý ảnh  Các hàm matlab xử lý ảnh  Bài toán nhận diện biển số xe  Phần mềm mô matlab Phương pháp nghiên cứu Trên sở mặt lý thuyết, em tìm hiểu xử lý ảnh.Sau áp dụng vào tốn nhận diện biển số xe Để làm rõ kết lý thuyết, em ứng dụng công cụ mô MATLAB xây dựng phân tích kết mơ q trình nhận diện bao gồm tách biển số, xử lý ảnh nghiêng, phân đoạn trích chọn ký tự cuối đưa vào nhận diện ký tự Giới hạn đề tài Việc có nhiều biển số xe với định dạng độ sáng khác gây khó khăn cho việc nhận dạng Do trình nhận dạng dựa vào phương pháp xử lý ảnh trích xuất biển số từ ảnh chụp nên độ sáng khác làm tăng độ phức tạp trình nhận dạng Do thời gian thực đề tài không cho phép nên em giới hạn biển số điều kiện sau:  Biển số có chữ đen, trắng, có hàng, số ký tự Trang NHẬN DIỆN BIỂN SỐ XE MÁY Hình 5.4: Giao diện sau trích chọn vùng biển số  Tiếp theo ký tự phân vùng trích chọn hiển thị vào axes  Axes đến axes hiển thị ký tự hàng biển số  Axes đến axes 11 hiển thị ký tự hàng biển số Trang NHẬN DIỆN BIỂN SỐ XE MÁY Hình 5.5: Ảnh sau phân vùng trích chọn ký tự  Sau trích chọn ký tự chương trình đưa vào nhận dạng ký tự dựa phương pháp so khớp mẫu Kết sau nhận diện hiển thị ô “Hien thi ket qua” Trang NHẬN DIỆN BIỂN SỐ XE MÁY Hình 5.6: Kết sau mơ  Nút CLOSE dùng để chương trình sau mô xong Trang NHẬN DIỆN BIỂN SỐ XE MÁY KẾT LUẬN Đánh giá kết đạt Độ xác tốn nhận dạng biển số xe máy phụ thuộc vào khâu chính: trích chọn vùng ảnh chứa biển số, phát ảnh nghiêng xoay ảnh, trích chọn ký tự nhận dạng ký tự Thực nghiệm kiểm tra ngẫu nhiên 20 ảnh chứa biển số ta có bảng kết sau: Phát Số lượng Tách biển biển số số ảnh Trích chọn nghiêng ký tự Nhận diện ký tự Tổng kết 90% 95% xoay ảnh Độ 95% 95% 100% xác Bảng kết sau kiểm tra thực nghiệm Từ kết thực nghiệm thu ta thấy độ xác khâu trích chọn vùng ảnh chứa biển số, khâu xoay ảnh khâu trích chọn ký tự cao, khâu nhận dạng có độ xác thấp khâu khác Hướng phát triển đề tài: Nâng cao độ xác nhận dạng cách thêm tập ảnh liệu Trang NHẬN DIỆN BIỂN SỐ XE MÁY Thay phương pháp nhận diện phương pháp so khớp mẫu phương pháp khác hiệu xác hơn: PCA, LDA, LBP, Neural Network… Áp dụng phương pháp tìm kiếm vùng ảnh chứa biển số nhanh phương pháp adaboost,… nhằm giảm thời gian xử lý Phát triển khả ứng dụng đề tài vào thực tiễn cách thêm chức thu nhận ảnh tự động từ Camera, giao tiếp với thiết bị ngoại vi khác đầu đầu thẻ từ, đầu đọc mã vạch… để tạo thành hệ thống nhận diện bảng số xe máy hoàn chỉnh tự động Trang NHẬN DIỆN BIỂN SỐ XE MÁY TÀI LIỆU THAM KHẢO [1] Amin Sarafraz (2004), “Detects lines in a binary image using common computer vision operation known as the Hough Transform”, University of Tehran, Iran [2] Chris Solomon, Toby Breckon, (2011) “Fundamentals of DigitalImage Processing” Wiley Blackwell, UK [3] Rafael C Gonzalez, Richard E Woods, Steven L Eddins, (2009) “Digital Image Processing Using MATLAB” Gatesmark Publishing, USA [4] Ths Lương Mạnh Bá, Pts Nguyễn Thanh Thủy (2003) “Nhập môn xử lý ảnh số” ĐH Bách Khoa, Hà Nội [5] Trương Quốc Bảo , Võ Văn Phúc (2013) “Giải thuật cho tốn định vị nhận dạng biển số xe tơ” Tạp chí khoa học ĐH Cần Thơ [6] Nguyễn Hồng Hải, Nguyễn Việt Anh (2007) “Lập trình Matlab ứng dụng”, NXB Khoa học kỹ thuật, Hà Nội [7] Nguyễn Phạm Anh Tuấn (2010) “Nhận diện biển số xe máy” Trường ĐH Lạc Hồng, Biên Hòa [8] Nguyễn Hoàng Hải, Nguyễn Trung Dũng, Nguyễn Khắc Điểm, Hà Trần Đức, (2003), “Lập Trình Matlab” NXB Khoa học kỹ thuật, Hà Nội [9] http://www.mathworks.com/help/ Trang NHẬN DIỆN BIỂN SỐ XE MÁY PHỤ LỤC CODE CỦA CHƯƠNG TRÌNH MATLAB Chương trình trích chọn biển số function y = inputanh(rgb) gray=rgb2gray(rgb); gray=imadjust(gray); [row,col]=size(gray); cp=[round(row/2),round(col/2)]; de=round(0.01*row); cm1=cp(1)-de:cp(1)+de; cm2=cp(2)-de:cp(2)+de; doituongnho=round(0.02*row*col); biensonho=[round(0.08*row),round(0.08*19*row/14)]; thresh=0; check=0; while check==0 thresh=thresh+0.01; if thresh==1 msgbox('Khong phat hien duoc bien so'); break; else bw=im2bw(gray,thresh); bw=bwareaopen(bw,doituongnho); bw=imfill(bw,'holes'); bw=imclearborder(bw,4); Trang NHẬN DIỆN BIỂN SỐ XE MÁY bw=imopen(bw,strel('rectangle',biensonho)); [L,n]=bwlabel(bw); if n>0 for i=1:n [row1,col1]=find(bw==i); a=sum(ismember(cm1,row1)); b=sum(ismember(cm2,col1)); stat=regionprops((L==i),'BoundingBox'); try mat=stat.BoundingBox; if a>0&&b>0&&mat(4)0.2*r&& c=9 ts=t(end-8:end,:); su=sum(ts(:,3))/9; for i=1:9 if ts(i,3)>0.2*su; count=count+1; ts1(count,:)=ts(i,:); end end else ts1=t; end Trang NHẬN DIỆN BIỂN SỐ XE MÁY ts1=sortrows(ts1,4); t1=ts1(1:4,:); t1=sortrows(t1,5); t2=ts1(5:end,:); t2=sortrows(t2,5); n1=size(t1,1); im1=cell(1,n1); n2=size(t2,1); im2=cell(1,n2); for i=1:n1 a=(stat(t1(i,2)).BoundingBox); b=imcrop(rgb,a); b=rgb2gray(b); b=imadjust(b); b=imadjust(b,[0 1],[1 0],2); b=im2bw(b); b=my_BwTrim(b); b=imopen(b,strel('disk',1)); im1{i}=b; end for i=1:n2 a=(stat(t2(i,2)).BoundingBox); b=imcrop(rgb,a); b=rgb2gray(b); Trang NHẬN DIỆN BIỂN SỐ XE MÁY b=imadjust(b); b=imadjust(b,[0 1],[1 0],2); b=im2bw(b); b=my_BwTrim(b); b=imopen(b,strel('disk',1)); im2{i}=b; end end Nhận diện ký tự function xu_ly(hObject,eventdata,handles) global data load data.mat set(gcf,'CurrentAxes',handles.axes2); imshow(imread('wait.jpg')); pause(0.15); [r,~]=size(data.rgb); if r>640 data.rgb=imresize(data.rgb,[640 NaN]); end y=inputanh(data.rgb); y=angle(y); set(gcf,'CurrentAxes',handles.axes2); imshow(y); Trang NHẬN DIỆN BIỂN SỐ XE MÁY [im1, im2]=tach1(y); n1=length(im1); if n1>0 S1=''; for i=1:n1 set(gcf,'CurrentAxes',handles.tren{i}); im1{i}=imresize(im1{i},[90,40]); imshow(im1{i}); switch i case [x,e]=my_num_recog(im1{i},numbers); S1=cat(2,S1,x); case [x,e]=my_num_recog(im1{i},numbers); S1=cat(2,S1,x); case [x,e]=my_num_recog(im1{i},chars); S1=cat(2,S1,x); case [x,e]=my_num_recog(im1{i},numbers); [x1,e1]=my_char_recog(im1{i},chars); if e>e1 S1=cat(2,S1,x1); else S1=cat(2,S1,x); Trang NHẬN DIỆN BIỂN SỐ XE MÁY end end end end n2=length(im2); if n2>0 S2=''; for i=1:n2 set(gcf,'CurrentAxes',handles.duoi{i}); im2{i}=imresize(im2{i},[90,40]); [x,e]=my_num_recog(im2{i},numbers); S2=cat(2,S2,x); imshow(im2{i}); end end set(handles.result_text,'string',sprintf('%s-%s',S1,S2)); pause(0.25); Trang

Ngày đăng: 18/07/2023, 13:30

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

TÀI LIỆU LIÊN QUAN

w