Cắt biển số xe bằng MATLABThực tập chuyên ngành

34 282 0
Cắt biển số xe bằng MATLABThực tập chuyên ngành

Đ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

Source code nhỏ về đề tài nhận dạng biển số xe, với input đầu vào là 1 biển số xe và output là số biển

1 LỜI NÓI ĐẦU Xử lý nhận dạng lĩnh vực từ lâu nhiều người quan tâm Nó ứng dụng vào nhiều lĩnh vực như: Trong y học, cải thiện ảnh X-quang nhận dạng đường biên mạch máu từ ảnh chụp tia X , ứng dụng vào xét nghiệm lâm sang phát nhận dạng u não, nội soi cắt lớp Trong thiên văn học, hệ thống chụp hình gắn tàu vũ trụ hạn chế kích thước trọng lượng, chất lượng hình ảnh nhận bị giảm chất lượng bị mờ, méo hình học nhiễu Các hình ảnh xử lý máy tính Trong lĩnh vực cơng nghiệp, người máy ngày đóng vai trò quan trọng Chúng thực cơng việc nguy hiểm, đòi hỏi có tốc độ độ xác cao vượt khả người Người máy trở nên tinh vi thị giác máy tính đóng vai trò quan trọng Người ta khơng đòi hỏi người máy phát nhận dạng phận công nghiệp mà phải “ hiểu ” chúng “ thấy ” đưa hành động phù hợp Xử lý ảnh tác động đến thị giác máy tính Ngồi ra, xử lý nhận dạng ứng dụng lĩnh vực khác nói đến Cơng an giao thơng thường hay chụp ảnh môi trường không thuận lợi, ảnh thường bị nhòe nên cần xử lý nhận dạng để nhìn thấy biển số xe Trong báo cáo người thực xin trình bày phần ứng dụng xử lý nhận dạng số CẮT BIỂN SỐ TRONG NHẬN DẠNG BIỂN SỐ XE LỜI CẢM ƠN! Em xin gửi lời cảm ơn chân thành tri ân sâu sắc tới thầy Đàm Thanh Phương nhiệt tình hướng dẫn em hồn thành tốt nhiệm vụ thời gian thực tập Trong trình thực tập, trình làm báo cáo thực tập, khó tránh khỏi sai sót mong thầy cô bỏ qua Đồng thời trình độ lý luận kinh nghiệm thực tiễn hạn chế nên báo cáo khơng thể tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp thầy, để em học thêm nhiều kinh nghiệm hoàn thành tốt báo cáo tốt nghiệp tới Em xin chân thành cảm ơn! NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Thái Nguyên, ngày tháng .năm 2019 Giáo viên hướng dẫn MỤC LỤC CHƯƠNG I – CƠ SỞ LÝ THUYẾT 1.1 Tổng quan ngơn ngữ lập trình MATLAB MATLAB ngơn ngữ lập trình MathWorks phát triển, cho phép người dùng xây dựng ma trận, vẽ đồ thị hàm số hay biểu đồ liệu, thực phép toán, tạo giao diện người dùng, liên kết chương trình máy tính viết nhiều ngơn ngữ khác nhau, bao gồm C, C++, Java, FORTRAN, phân tích liệu, phát triển thuật tốn, tạo mơ hình ứng dụng MATLAB tích hợp nhiều lệnh hàm tốn học, giúp người dùng thực tính tốn số, vẽ đồ thị thực phương pháp số 1.1.1 Các Phép Tính Tốn Của MATLAB MATLAB sử dụng rộng rãi khía cạnh tính tốn Dưới số phép tính tốn MATLAB sử dụng phổ biến nhất: - Giải vấn đề ma trận mảng - Đồ thị 2-D 3-D - Đại số tuyến tính - Phương trình đại số - Các hàm phi tuyến tính - Số liệu thống kê - Phân tích liệu - Giải tích phương trình vi phân - Tính tốn số - Tích phân - Chuyển đổi - Hồi quy - Các hàm đặc biệt khác 1.1.2 Các Tính Năng Của MATLAB Dưới tính MATLAB: - MATLAB ngơn ngữ lập trình cao cấp, cho phép tính tốn số, hình dung phát triển ứng dụng - Cung cấp môi trường tương tác để khảo sát, thiết kế giải vấn đề - Cung cấp thư viện lớn hàm toán học cho đại số tuyến tín, thống kê, phân tích Fourier, lọc, tối ưu hóa, tích phân giải phương trình vi phân bình thường - MATLAB cung cấp đồ thị tích hợp sẵn để hiển thị hình ảnh liệu cơng cụ để tạo đồ thị tùy chỉnh - Giao diện lập trình MATLAB cung cấp công cụ phát triển để nâng cao khả bảo trì chất lượng mã tối đa hóa hiệu suất - Cung cấp cơng cụ để xây dựng ứng dụng với giao diện đồ họa tùy chỉnh - Cung cấp hàm để tích hợp thuật tốn dựa MATLAB với ứng dụng bên ngồi ngơn ngữ khác C, Java, NET Microsoft Excel 1.1.3 Sử Dụng MATLAB MATLAB sử dụng rộng rãi cơng cụ tính toán lĩnh vực khoa học kỹ thuật, bao gồm lĩnh vực vật lý, hóa học, tốn học công nghệ MATLAB sử dụng loạt ứng dụng bao gồm: - Xử lý tín hiệu truyền thơng - Xử lý hình ảnh video - Hệ thống điều khiển - Kiểm tra đo lường - Tính tốn tài - Tính tốn sinh học 1.2 Các kiểu ảnh matlab Image Processing Toolbox MATLAB hỗ trợ bốn kiểu biểu diễn hình ảnh bản, gồm: ảnh số (indexed images), ảnh độ sáng (grayscale images), ảnh nhị phân (binary images), ảnh RGB (RGB images) 1.2.1 Ảnh Index Với cách biểu diễn ảnh này, ảnh biểu diễn hai ma trận, ma trận liệu ảnh X ma trận màu (còn gọi đồ màu) map Ma trận màu ma trận kích thước m x gồm phần tử kiểu double có giá trị khoảng [0, 1] Mỗi hàng ma trận xác định thành phần red, green, blue màu tổng số m màu sử dụng ảnh Ma trận liệu thuộc kiểu unit8, unit16 double Giá trị phần tử ma trận liệu cho biết màu điểm ảnh màu nằm hàng ma trận màu Nếu ma trận liệu thuộc kiểu double, giá trị thứ tương ứng với hàng thứ bảng màu, giá trị thứ hai tương ứng với màu hàng thứ hai, Nếu ma trận liệu thuộc kiểu unit8 unit16 giá trị ứng với hàng 1, giá trị ứng với hàng 2, Riêng với kiểu unit16 MATLAB không hỗ trợ đủ phép toán so với kiểu unit8 nên cần xử lý ta cần chuyển sang kiểu liệu uint8 double hàm imapprox im2double Hình 1.1 Minh họa cách biểu diễn ảnh theo số 1.2.2 Ảnh Grayscale Mỗi ảnh biểu diễn ma trận hai chiều, giá trị phần tử cho biết độ sáng (hay mức xám) điểm ảnh Ma trận kiểu uint8, uint16 double Ảnh biểu diễn theo kiểu gọi ảnh “trắng đen” Hình 1.2 Ma trận ảnh grayscale 1.2.3 Ảnh nhị phân Ảnh biểu diễn ma trận hai chiều thuộc kiểu logical Mỗi điểm ảnh nhận hai giá trị 0(đen) 1(trắng) Hình 1.3 Minh họa ma trận màu ảnh nhị phân 1.2.4 Ảnh RGB Ảnh RGB gọi ảnh “true color” tính trung thực Ảnh biểu diễn ma trận ba chiều kích thước m x n x 3, với m x n kích thước ảnh theo pixels Ma trận định nghĩa thành phần màu red, green, blue cho điểm ảnh, phần tử thuộc kiểu uint8, uint16 double Hình 1.5 Ma trận màu ảnh RGB 1.3 Các hàm xử lý ảnh MATLAB 1.3.1 Hàm đọc liệu ảnh “imread” Lệnh imread() đọc file ảnh thành ma trận Matlab trợ giúp nhiều định dạng đồ hoạ thông dụng chẳng hạn: BMP, GIF, JPEG, PNG, TIFF … Cú pháp: a = imread(‘filename.fmt’) đó: - filename tên ảnh - fmt định dạng ảnh Ví dụ: a = imread(‘sun-flower.jpg’); 10 12 h(i,j)=1; 13 end 14 end 15 end Ảnh lọc thơng thấp Ideal: Hình 2.5 Ảnh lọc thông thấp Ideal miền khơng gian Hình 2.6 Tần số ảnh trước (trái) sau (phải) lọc Ideal Nhận xét: Hình 2.6 cho thấy sau lọc, tần số ảnh kéo giãn ra, điều có nghĩa nhiều tần số cao kéo xuống 2.3.1.2 Lọc thông thấp Gauss Đặc trưng cho nhiễu hàm mật độ xác suất thể phân bố nhiễu Ta sử dụng hàm phân phối Gauss làm lọc nhằm làm mờ ảnh giảm nhiễu Trong trường hợp chiều, phân phối Gauss có cơng thức: 20 (CT 2.3) với độ lệch chuẩn phân phối, ta giả sử phân phối có trung bình Hình 2.7 Đồ thị phân phối Gauss Khi xử lý ảnh, ta sử dụng hàm phân phối Gauss cho chiều, hình thành tích hàm Gauss chiều x y (CT 2.4) Bộ lọc thông thấp Gauss có dạng: (CT 2.5) với D(u,v) khoảng cách từ điểm (u,v) đến tâm hình Ta xử lý ảnh sau với phép lọc thơng thấp Gauss Hình 2.8 Ảnh gốc 21 Input: ảnh cần lọc Output: ảnh sau dùng lọc thông thấp Gauss P = size(f,1); %tạo lọc có kích thước với ảnh Q = size(f,2); h = zeros(P,Q); sig = 10; %gán =10 a = 1/(2.*pi.*sig); b = 2.*sig.*sig; for i = 1:P 10 for j = 1:Q 11 D = (i-P./2/^2 + (j – Q./2).^2; %k/c (x,y)-> tâm hình 12 h(i,j)=a*exp(-D./b); 13 end 14 end Ảnh lọc thơng thấp Gauss 22 Hình 2.9 Ảnh qua lọc thơng thấp Gauss Hình 2.10 Tần số ảnh trước (trái) sau (phải) lọc Gauss Nhận xét: Độ biến thiên tần số ảnh sau lọc phương pháp Gauss ảnh gốc, đồng thời giá trị tần ảnh sau lọc cao ảnh gốc Phép lọc thông thấp Gauss cho ảnh mượt phép lọc thông thấp Ideal 2.3.1.3 Lọc thông thấp Butterworth Bộ lọc bao gồm tính chất lọc thơng thấp Ideal lọc thơng thấp Gauss Bộ lọc thơng thấp Butterworth có dạng sau: (CT 2.6) Trong đó: - D(u,v) khoảng cách từ tâm ảnh đến điểm (u,v) (giống lọc thông thấp Ideal) - tần số chặt cụt - n cấp lọc Từ dạng lọc, ta có tính chất sau - Với D(u,v) > , H - Với D(u,v) = , H = ½ 23 Bây giờ, ta sử dụng lọc để lọc ảnh sau: Hình 2.11 Ảnh gốc Khởi tạo lọc có kích thước PxQ (bằng kích thước hình ban đầu) Input: ảnh cần lọc Output: ảnh sau dùng lọc thông thấp Butterworth h = zeros(P,Q); D0 = 10; %Chọn tần số chặt cụt n = 5; %chọn cấp for i = 1:P for j = 1:Q u = sqrt((i-P/2)^2 + (j-Q/2)^2); h(i,j) = 1/(1+(u/D0).^(2.*n)); end 10 end 24 Khi đó, ta ảnh sau dùng lọc miền khơng gian miền tần số là: Hình 2.12 Bộ lọc Butterworth miền không gian (trái) chuyển sang miền tần số (phải) Sử dụng thuật toán (CT 2.6), ta tích chập ảnh gốc miền tần số lọc miền tần số, sau lấy chuyển đổi ngược Ta hình ảnh sau lọc là: Hình 2.13 Ảnh sau dùng lọc Butterworth 25 Hình 2.14 So sánh tần số ảnh trước (trái) sau (phải) lọc Butterworth Nhận xét: Với lọc này, ảnh sau lọc có độ biến thiên tần số hơn, khơng làm tăng giá trị tần số, hiệu ứng chuông ảnh hưởng không đáng kể 2.3.2 Ngưỡng (Threshold) Một đặc điểm chuyển đổi tạo ngưỡng Ngưỡng tạo hình ảnh nhị phân từ ảnh xám ảnh màu cách thiết lập giá trị điểm ảnh tùy thuộc vào việc giá trị giá trị ngưỡng Việc thường sử dụng để tách hay phân đoạn khu vực, đối tượng hình ảnh dựa giá trị điểm ảnh nó, thể hình đây: Hình 2.15 Ảnh trước (trái) sau (phải) tạo ngưỡng Ngưỡng tạo MATLAB sau: 26 Hình 2.16 Tạo ngưỡng Hoặc dùng hàm im2bw() để tạo ngưỡng phạm vi to Code matlab: Hình 2.17 Tạo ngưỡng im2bw() Kết Hình 2.18 Kết sau tạo ngưỡng im2bw() (trái) Hàm im2bw() chuyển đổi hình ảnh màu xám sang hình nhị phân Hay tạo ảnh nhị phân từ ảnh cường độ, ảnh số hay ảnh RGB sở ngưỡng ánh sáng Trong nhiều ứng dụng để dùng biến thể ngưỡng để phù hợp với yêu cầu: - Sử dụng hai ngưỡng để tách giá trị điểm ảnh phạm vi định; - Sử dụng nhiều ngưỡng cho kết hình ảnh gắn nhãn với phần nhãn đến N; - Giữ lại thông tin ban đầu điểm ảnh cho giá trị lựa chọn, giá trị khác set thành màu đen 2.4 Cắt biển số Sau áp dụng lọc tạo ngưỡng ta tiến hành tìm kiếm khu vực có khả chứa biển số Sau đó, kiểm tra khu vực khu vực phù hợp xóa vùng khỏi ảnh tìm vùng có khả cao ta cắt biển số 27 Dưới đồ trình tự cắt biển số: Hình 2.19 Cắt biển số 28 CHƯƠNG III – DEMO BÀI TỐN 3.1 Làm lỗng ảnh 3.1.1 Chuyển ảnh từ dạng RGB sang Grayscale Hình 3.1 Ảnh RGB 29 Hình 3.2 Ảnh Grayscale 3.1.2 Làm lỗng ảnh từ ảnh Grayscale Hình 3.3 Ảnh Grayscale 30 Hình 3.4 Ảnh làm loãng 3.2 Xử lý ngang dọc 3.2.1 Xử lý ngang Hình 3.5 Biểu đồ xử lý ngang áp dụng lọc thông thấp ngưỡng động 31 3.2.2 Xử lý dọc Hình 3.6 Biểu đồ xử lý dọc áp dụng lọc thông thấp ngưỡng động 3.3 Cắt biển số 3.3.1 Tìm khu vực có khả biển số Hình 3.7 Những vùng có khả chứa biển số 32 3.3.2 Cắt xác biển số Hình 3.8 Biển số cắt CHƯƠNG IV - TỔNG KẾT 4.1 Những điểm thực Trong trình thực đề tài thực tập chuyên ngành TIỀN XỬ LÝ ẢNH TRONG NHẬN DẠNG BIỂN SỐ XE (CẮT BIỂN SỐ) em tìm hiểu nghiên cứu được:  Tổng quan kiểu ảnh hàm xử lý ảnh MATLAB  Quá trình xử lý ảnh cắt biển số  Áp dụng hàm xử lý ảnh MATLAB để cắt biển số xe 4.2 Những giới hạn đề tài Việc có nhiều biển số xe với định dạng, độ sáng góc nghiê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 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 33  Hình chụp biển số khơng bị mờ, ký tự biển số phân biệt, nhận dạng trực quan  Không bị nhiễu ánh sáng làm ảnh chụp bị chói 34 ... giải thuật để cắt biển số xe khỏi ảnh cho Hình 2.1 Tổng quan bước tách biển số Việc định vị biển số xe dựa vào tính chất biển số như: hình dạng, màu sắc biển số so với Biển số xe có hình chữ... XỬ LÝ CẮT BIỂN SỐ 2.1 Tổng quan 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 Quá trình tách biển số xe chia làm giai đoạn chính:  Giai đoạn 1: Định vị vị trí biển số từ... vị biển số xe, tiến hành cắt biển số xe Phần tách biển số sử dụng giải thuật phương pháp xử lý ảnh số sơ đồ sau đây: 16 Làm loãng ảnh Hình 2.2 Sơ đồ bước cắt biển số xe 2.2 Làm lỗng ảnh Vì biển

Ngày đăng: 23/04/2019, 09:22

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • LỜI CẢM ƠN!

  • MỤC LỤC

  • CHƯƠNG I – CƠ SỞ LÝ THUYẾT

    • 1.1 Tổng quan về ngôn ngữ lập trình MATLAB

      • 1.1.1 Các Phép Tính Toán Của MATLAB

      • 1.1.2 Các Tính Năng Của MATLAB

      • 1.1.3 Sử Dụng MATLAB

      • 1.2 Các kiểu ảnh trong matlab

        • 1.2.1 Ảnh Index

        • 1.2.2 Ảnh Grayscale

        • 1.2.3 Ảnh nhị phân

        • 1.2.4 Ảnh RGB

        • 1.3 Các hàm xử lý ảnh cơ bản của MATLAB

          • 1.3.1 Hàm đọc dữ liệu ảnh “imread”

          • 1.3.2 Hàm hiển thị ảnh imshow() và imagesc()

          • 1.3.3 Hàm rgb2gray()

          • 1.3.4 Hiển thị các thành phần RGB riêng của hình ảnh

          • CHƯƠNG II – QUY TRÌNH XỬ LÝ CẮT BIỂN SỐ

            • 2.1 Tổng quan về tách biển số

            • 2.2 Làm loãng ảnh

            • 2.3 Xử lý ngang, dọc thông qua các bộ lọc và ngưỡng

              • 2.3.1 Bộ lọc thông thấp (Low Pass Filter)

              • 2.3.2 Ngưỡng (Threshold)

              • 2.4 Cắt biển số

              • CHƯƠNG III – DEMO BÀI TOÁN

                • 3.1 Làm loãng ảnh

                  • 3.1.1 Chuyển ảnh từ dạng RGB sang Grayscale

Tài liệu cùng người dùng

Tài liệu liên quan