1. Trang chủ
  2. » Tất cả

TieuLuanXLA-BSX (1)

29 0 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

Cấu trúc

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

  • Slide 21

  • Slide 22

  • Slide 23

  • Slide 24

  • Slide 25

  • Slide 26

  • Slide 27

  • Slide 28

  • Slide 29

Nội dung

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN KỸ THUẬT VIỄN THÔNG TIỂU LUẬN CUỐI KỲ XỬ LÝ ÂM THANH VÀ HÌNH ẢNH TÊN ĐỀ TÀI ĐỌC BIỂN SỐ XE Giáo viên hướng dẫn: Nhóm sinh viên thực hiện: TS.Phan Như Quân Nguyễn Mạnh Khang Phan Quốc Khánh Trần Đăng Khoa Phạm Ngọc Huy Mục Lục GIỚI THIỆU VỀ ĐỀ TÀI CHỤP ẢNH BẰNG WEBCAM TÁCH BIỂN SỐ PHÂN ĐOẠN KÝ TỰ NHẬN DẠNG KÝ TỰ KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC CODE MATLAB GIỚI THIỆU VỀ ĐỀ TÀI 1.1 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 người thực 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ự Biển số phải cịn ngun vẹn, khơng bị tróc sơn hay rỉ sét, khơng bị che khuất Góc nghiêng biển số không 450 so với phương ngang Không bị nhiễu ánh sáng làm ảnh chụp bị chói GIỚI THIỆU VỀ ĐỀ TÀI 1.2 Mục tiêu đề tài Trong đề tài này, nhóm em đặt mục tiêu sau: • • Hạn chế vấn đề bất cập bãi giữ xe Xây dựng mơ hình hệ thống quản lý bãi giữ xe tự động Để đạt mục tiêu trên, em tiến hành công việc sau: • • Tìm hiểu q trình xử lý nhận dạng ảnh Tìm hiểu hệ thống bãi giữ xe áp dụng Việt Nam CHỤP ẢNH BẰNG WEBCAM Đây khâu quan trọng hệ thống ảnh chụp bị mờ hay nhiễu đưa vào nhận dạng khơng Để chụp ảnh ta sử dụng camera WebCam Khi lựa chọn thiết bị ta cần quan tâm tới thông số định tới chất lượng ảnh như: • • • Độ phân giải (resolution) Số điểm ảnh ( CCD Total Pixels ) Điều kiện hoạt động thiết bị - Cường độ ánh sáng nhỏ ( Minimum Illumination ):Thường tính Lux - Nguồn cung cấp (Power Supply): Hiện đa số WebCam sử dụng nguồn máy tính (Laptop),Camera quan sát dùng loại nguồn 12VDC, số Camera dùng nguồn khác Vì mục tiêu đề tài xây dựng mơ hình hệ thống giữ xe nên thực đề tài, người thực chọn Webcam làm thiết bị chụp ảnh Hình 2.1 Ảnh chụp Webcam CHỤP ẢNH BẰNG WEBCAM Ta có code: \obj = videoinput('winvideo', 1,'YUY2_640x480'); set(obj,'ReturnedColorSpace','rgb'); src_obj = getselectedsource(obj); get(src_obj); vidRes = get(obj, 'VideoResolution'); nBands = get(obj, 'NumberOfBands'); hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); preview(obj, hImage); pause(2); x=getsnapshot(obj); x=imresize(x,[480 640]); imwrite(x,'Number Plate Detection\Number Plate Images\x.jpg','Quality', 100); TÁCH BIỂN SỐ Tách biển số bước quan trọng trình nhận dạng biển số xe Khối tách biển số xe chia làm giai đoạn chính: Hình 3.1 Sơ đồ tổng quát khối tách biển số TÁCH BIỂN SỐ Phần tách biển số sử dụng nhiều giải thuật phương pháp xử lý ảnh số sơ đồ sau đây: Hình 3.2 Sơ đồ chi tiết khối tách biển số PHÂN ĐOẠN KÝ TỰ 4.1 Tổng quan phân đoạn ký tự Kết khối tách biển số ảnh màu RBG có chứa biển số xe Để nhận dạng ký tự biển số, ta tiến hành phân đoạn ký tự biển số Phân đoạn ký tự việc cắt ký tự biển số xe Hình 4.1 Sơ đồ phân đoạn ký tự PHÂN ĐOẠN KÝ TỰ 4.1 Chia đôi biển số Sau có hình Resize the Bounded Box, ta tiến hành chia đơi biển số thành hai dịng số hình Hình 4.2 Tách biển số thành hai dịng KẾT LUẬN Độ xác chương trình nhận dạng biển số xe phụ thuộc vào ánh sáng môi trường Tuy nhiên yếu tố ta điều chỉnh Việc nhận dạng ký tự cịn nhiều sai sót khơng có tập mẫu hồn chỉnh Chương trình viết MATLAB giải toán nhận dạng với dung lượng lớn thực tế, qua giải yêu cầu đề tài Để giải khó khăn đề tài, người thực xin đề xuất số ý kiến sau đây: o o o o Sử dụng camera chuyên dụng Thiết lập môi trường ổn định xung quanh để làm tăng độ xác ảnh chụp (xác định vị trí cố định để chụp ảnh) Thu thập nhiều mẫu ký tự để tăng tập mẫu qua tăng độ xác chương trình Sử dụng thẻ mã vạch để làm vé giữ xe 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] [Beal72] Beale, E M L., "A derivation of conjugate gradients," in F A Lootsma, ed., Numerical methods for nonlinear optimization, London: Academic Press, 1972 [3] [Caud89] Caudill, M., Neural Networks Primer, San Francisco, CA: Miller Freeman Publications, 1989 [4] [Cabu92] Caudill, M., and C.Butler, Understanding Neural Networks: Computer Explorations, vols and 2, cambridge, ma: the mit press, 1992 [5] Ondrej martinsky, “Algorithmic and mathematical principles of automatic number plate recognition systems ”, brno 2007 [6] Otsu, N (1979), “A Threshold Selection Method from Gray-Level Histograms”, IEEE Transactions on Systems, Man, and Cybernetics, Vol 9, No 1, pp 62-66 [7] www.Mathworks.com PHỤ LỤC CODE MATLAB Trước tiên, chúng em xin nói sơ qua khái niệm chúng tơi sử dụng để phát biển số. Có ba chương trình tệp '.m' cho dự án Tạo Mẫu ( template_creation.m ) - Điều sử dụng để gọi hình ảnh lưu chữ số sau lưu chúng dạng mẫu nhớ MATLAB File Apla chứa hình ảnh để so sánh %CREATE TEMPLATES %Alphabets A=imread('alpha/A.bmp');B=imread('alpha/B.bmp');C=imread('alpha/C.bmp'); D=imread('alpha/D.bmp');E=imread('alpha/E.bmp');F=imread('alpha/F.bmp'); G=imread('alpha/G.bmp');H=imread('alpha/H.bmp');I=imread('alpha/I.bmp'); J=imread('alpha/J.bmp');K=imread('alpha/K.bmp');L=imread('alpha/L.bmp'); M=imread('alpha/M.bmp');N=imread('alpha/N.bmp');O=imread('alpha/O.bmp'); P=imread('alpha/P.bmp');Q=imread('alpha/Q.bmp');R=imread('alpha/R.bmp'); S=imread('alpha/S.bmp');T=imread('alpha/T.bmp');U=imread('alpha/U.bmp'); V=imread('alpha/V.bmp');W=imread('alpha/W.bmp');X=imread('alpha/X.bmp'); Y=imread('alpha/Y.bmp');Z=imread('alpha/Z.bmp'); PHỤ LỤC CODE MATLAB %Natural Numbers one=imread('alpha/1.bmp');two=imread('alpha/2.bmp'); three=imread('alpha/3.bmp');four=imread('alpha/4.bmp'); five=imread('alpha/5.bmp'); six=imread('alpha/6.bmp'); seven=imread('alpha/7.bmp');eight=imread('alpha/8.bmp'); nine=imread('alpha/9.bmp'); zero=imread('alpha/0.bmp'); %Creating Array for Alphabets letter=[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]; %Creating Array for Numbers number=[one two three four five six seven eight nine zero]; NewTemplates=[letter number]; save ('NewTemplates','NewTemplates') clear all PHỤ LỤC CODE MATLAB  Phát chữ (Letter_detection.m) - Đọc ký tự từ hình ảnh đầu vào tm chữ số tương ứng phù hợp cao function letter=readLetter(snap) % Alphabets listings if ind==1 || ind==2 load NewTemplates snap=imresize(snap,[42 24]); rec=[ ]; letter='A'; elseif ind==3 || ind==4 letter='B'; elseif ind==5 for n=1:length(NewTemplates) cor=corr2(NewTemplates{1,n},snap); rec=[rec cor]; letter='C'; elseif ind==6 || ind==7 letter='D'; end elseif ind==8 ind=find(rec==max(rec)); elseif ind==9 letter='E'; display(ind); letter='F'; elseif ind==10 letter='G'; elseif ind==11 letter='H'; elseif ind==12 letter='I'; elseif ind==13 letter='J'; elseif ind==14 letter='K'; elseif ind==15 letter='L'; elseif ind==16 letter='M'; elseif ind==17 letter='N'; elseif ind==18 || ind==19 letter='O'; elseif ind==20 || ind==21 letter='P'; elseif ind==22 || ind==23 letter='Q'; elseif ind==24 || ind==25 letter='R'; elseif ind==26 letter='S'; elseif ind==27 elseif ind==36 letter='T'; elseif ind==28 letter='3'; elseif ind==37 || ind==38 letter='U'; elseif ind==29 letter='4'; elseif ind==39 letter='V'; elseif ind==30 letter='5'; elseif ind==40 || ind==41 || ind==42 letter='W'; elseif ind==31 letter='6'; elseif ind==43 letter='X'; elseif ind==32 letter='7'; elseif ind==44 || ind==45 letter='Y'; elseif ind==33 letter='8'; elseif ind==46 || ind==47 || ind==48 letter='Z'; %*-*-*-*-* letter='9'; else % Numerals listings elseif ind==34 letter='1'; elseif ind==35 letter='2'; letter='0'; end end PHỤ LỤC CODE MATLAB Trong đoạn mã trên, tạo hàm có tên là ký tự cung cấp cho đầu chữ số hình ảnh đầu vào từ lớp ' alpha ' cách sử dụng lệnh 'readLetter()'. Và sau tải mẫu lưu cách sử dụng lệnh tải 'NewTemplates’ Sau đó, chúng em đã thay đổi kích thước hình ảnh đầu vào để so sánh với hình ảnh mẫu bằng cách sử dụng lệnh 'imresize (tên tệp, kích thước)'. Sau đó, vịng lặp for được sử dụng để so sánh hình ảnh đầu vào với hình ảnh mẫu để có phù hợp Một ma trận 'rec' tạo để ghi lại giá trị tương quan cho mẫu chữ số với mẫu ký tự từ hình ảnh đầu vào, hiển thị đoạn mã đây,   Sau đó, lệnh 'find ()' được sử dụng để tìm mục tương ứng với ký tự so khớp cao nhất. Sau đó, theo mục đó, ký tự tương ứng in bằng câu lệnh 'if-else' Bây giờ, sau hoàn thành việc này, mở cửa sổ soạn thảo để bắt đầu mã cho chương trình PHỤ LỤC CODE MATLAB  Phát mảng ( Plate_detection.m ) - Xử lý hình ảnh sau gọi hai tệp m để phát số close all; clear all; im = imread('Number Plate Images/ss.jpg'); im = imresize(im, [480 NaN]); subplot(4,4,1),imshow(im),title('Resized Image') im = imrotate(im,-10,'bilinear'); subplot(4,4,2),imshow(im),title('Rotate image') imgray = rgb2gray(im); subplot(4,4,3),imshow(imgray),title('Gray scale Image') imbin = imbinarize(imgray); subplot(4,4,4),imshow(imbin),title('Binary Image') im = edge(imgray, 'sobel'); subplot(4,4,5),imshow(im),title('Edge Detection') im = imdilate(im, strel('diamond', 2)); subplot(4,4,6),imshow(im),title('Dilated Image') im = imfill(im, 'holes'); subplot(4,4,7),imshow(im),title('After filling holes') im = imerode(im, strel('diamond', 10)); subplot(4,4,8),imshow(im),title('Eroded Image') Iprops=regionprops(im,'BoundingBox','Area', 'Image'); PHỤ LỤC CODE MATLAB area = Iprops.Area; count = numel(Iprops); maxa= area; boundingBox = Iprops.BoundingBox; for i=1:count if maxa

Ngày đăng: 01/03/2022, 07:53

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w