Xây dựng hệ thống nhận dạng biển số xe

14 1.3K 10
Xây dựng hệ thống nhận dạng biển số xe

Đ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

Xây dựng hệ thống nhận dạng biển số xe

A.Lời nói đầu Cùng với sự phát triển của nền kinh tế trên thế giới đó là sự phát triển của công nghệ khoa học kĩ thuật.Trong đó,kĩ thuật xử lý ảnh và nhận dạng ảnh đã có những bước tiến bộ không ngừng. Chúng ta có thể đã quá quen thuộc với những dòng máy ảnh được quảng bá là có tích hợp công nghệ nhận diện hình ảnh(nhận diện khuôn mặt, nụ cười, ánh mắt…), các dòng máy Laptop(máy tính xách tay) có tích hợp công nghệ nhận diện khuôn mặt, hay dấu vân tay nhằm phục vụ cho cơ chế bảo mật… Việc xử lý và nhận dạng biển số xe đóng góp vai trò to lớn và có nghĩa quan trọng trong công tác quản lý đường bộ nói chung cũng như trong việc xây dựng hệ thống giám sát tự động đối với các phương tiện giao thông. Do đó,nhóm em quyết định chọn “Xây dựng hệ thống nhận dạng biển số xe” làm đề tài đồ án của mình,với mục đích nghiên cứu trợ giúp cho công tác kiểm soát,quản lý phương tiện giao thông một cách hiệu quả.Qua đó,nhóm em xin chân thành cảm ơn thầy Vũ Song Tùng đã nhiệt tình giúp đỡ và hướng dẫn chúng em hoàn thành tốt đề tài này. Trong quá trình thực hiện đồ án môn học,mặc dù có nhiều cố gắng nhưng do thời gian và kinh nghiệm còn hạn chế khó tránh khỏi những thiếu sót.Nhóm em mong nhận được sự góp ý từ các thầy cô để có thể bổ sung và hoàn thiện đồ án trong những bước phát triển tiếp theo sau này. Nhóm chúng em xin chân thành cảm ơn! Nhóm thực hiện đề tài:Nhóm 1-KSTN-ĐTVT-K54 1 Chương 1:Tổng quan đề tài 1.1.Đặt vấn đề Đối với hệ thống giao thông quốc gia thì vấn đề quản lý là giám sát phương tiện giao thông là vấn đề cốt lõi nhất.Ở một nước vẫn là nền kinh tế nông nghiệp Việt Nam thì có đến 90% phương tiện lưu thông trên đường bộ là xe máy,do vậy việc quản lý xe máy là một điều cần thiết.Mỗi một xe máy lưu thông đều được cấp một biến số riêng biệt,do đó chỉ cần nhận dạng được biển số xe và đối chiếu với kho dữ liệu biển số là có thể biết được thông tin về chiếc xe đó,như chủ phương tiện,thời gian đăng kí,số lần vi phạm giao thông,… Như vậy,yêu cầu đặt ra là phải thiết kế một hệ thống nhận dạng biển số xe một cách nhanh chóng và chính xác nhất. 1.2.Mục tiêu đề tài Nhóm chỉ đặt ra mục tiêu là thiết kế hệ thống nhận dang biển số tĩnh ( phương tiện giao thông sẽ dừng lại ở một vị trí cố định như bãi gửi xe,bãi đỗ xe…) từ dữ liệu đưa vào là ảnh chụp từ camera giám sát.Sau đó,hệ thống sẽ xuất ra dãy chữ và số trên biển để lưu hoặc đối chiếu với kho dữ liệu.Để giải quyết vấn đề này,đồ án phải giải quyết 3 bài toán riêng rẽ:cắt và cách ly các kí tự,nhận dạng các kí tự và xuất ra dãy chữ,số.Sau khi hoàn thành bài toán cơ bản,nhóm sẽ nghiên cứu và phát triển thêm việc nhận dạng biển số xe động(xe đang lưu thông trên đường). 1.3.Tông quan báo cáo Trong báo cáo nhóm sẽ trình bày chi tiết về:  Cơ sở lý thuyết thực hiện đồ án.  Nêu ra các giải pháp và lựa chọn.  Thiết kế hệ thống.  Kết quả đạt được,kinh nghiệm rút ra.  Hạn chế còn tồn tại và hướng phát triển. 1.4.Mô tả công việc Công việc của toàn nhóm được phân chia rõ ràng,mỗi người thực hiện một công việc cụ thể, sau đó nhóm trưởng tổng hợp kết quả công việc của mỗi thành viên.Sau đó mọi 2 người trong nhóm sẽ nhóm họp lại để bổ sung, góp ý cho nhau. Các công việc cụ thể của các thành viên như sau:  Nguyễn Khắc Thái :trưởng nhóm,có nhiệm vụ phân chia công việc,tập hợp và chỉnh sửa lại code từng phần,và thiết kế giao diện người dùng GUI.  Nguyễn Đức Nam : Thực hiện công việc cắt ảnh kí tự.  Nguyễn Thị Thu Thúy:Thực hiện công việc viết báo cáo,nghiên cứu thêm phần cắt ảnh kí tự.  Đào Xuân Thùy : Thực hiện công việc nhận dạng kí tự  Nguyễn Văn Tùng:Thực hiện việc lọc nhiễu,và bổ sung nhận dạng kí tự. Chương 2.Cơ sở lý thuyết Giới thiệu chương Chương này sẽ đề cập đến cơ sở lý thuyết của các phần mềm sử dụng trong đồ án và các thuật toán liên quan đến việc nhận dạng biển số xe. 2.1.Giới thiệu phần mềm Matlab MATLAB – phần mềm nổi tiếng của công ty MathWorks, là ngôn ngữ lập trình cấp cao cho mục đích tính toán kỹ thuật, chương trình tích hợp tính toán, đồ hoạ và lập trình trong một môi trường dễ sử dụng nơi mà tất cả các vấn đề và lời giải được biểu diễn dưới dạng ghi chú toán học. MATLAB là một hệ thống tương tác mà tất cả các phần tử dữ liệu cơ bản là một mảng không yêu cầu về mặt kích thước. Đây là một thuận lợi cho phép người sử dụng giải quyết các bài toán trong kỹ thuật đặc biệt là các công thức được xây dựng từ ma trận hay vector. Ngoài MATLAB cơ bản với các khả năng rất phong phú, phần mềm MATLAB còn được trang bị thêm các ToolBox – các gói chương trình (thư viện) cho các lĩnh vực ứng dụng rất đa dạng như xử lý tín hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron, logic mờ, tài chính, tối ưu hóa, phương trình đạo hàm riêng, sinh tin học, Đây là các tập hợp mã nguồn viết bằng chính MATLAB dựa theo các thuật toán mới, hữu hiệu mà người dùng có thể chỉnh sửa hoặc bổ sung thêm các hàm mới. 3 2.1.2.Giới thiệu Image Processing ToolBox của Matlab Image Processing Toolbox là tật hợp các hàm của MATLAB có nhiệm vụ thu thập và xử lý hình ảnh số từ các thiết bị thu hình hoặc ảnh chụp có sẵn. Image Processing ToolBox chấp nhận các file ảnh dữ liệu đầu vào định dạng như: BMP ( Microsoft Windows Bitmap), JPG, JPEG( Joint Photographic Experts Group),PNG,TIFF,… MatLab coi ảnh như một ma trận hai chiều, mỗi phần tử là một phần tử hình pixel, do đó ta có thể xử lý hình như đối với ma trận, các phần tử ma trận có thể là double (64 bit), uint 16 (16 bit), uint 8 (8 bit). Ảnh index được biễu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu). Ma trận có thể là kiểu uint8, uint16, double. Ma trận màu là một ma trận kích thước m x 3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0 1]. Mỗi hàng của ma trận xác định thành phần red, green, blue của một màu trong tổng m màu được sử dụng trong ảnh. Gía trị của một phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận. Đôi khi ảnh bị mờ, không nét, bị nhiễu cần phải xử lý hoặc cần phải tách một chi tiết nào đó ra khỏi ảnh. Sau đây là một số hàm xử lý ảnh cho phép thực hiện các công việc này một cách dễ dàng. Chú ý là các hàm này chỉ thực hiện độc lập, còn muốn thực hiện thời gian thực cần phải dùng các ngôn ngữ lập trình như VB, Delphi, ta cũng có thể biến đổi các hàm xử lý ảnh .m ra hàm .c để giảm bớt thời gian lập trình, còn có một cách để xử lý thời gian thực là lập trình xử lý trong MATLAB, sau đó dùng Toolbox Com Builder biến chương trình thành COM Object rồi ghép vào các ngôn ngữ lập trình. Một số hàm xử lý ảnh : Đọc, ghi và hiển thị ảnh: - Imread: đọc ảnh - Imwrite: ghi ảnh. - Imshow: hiển thị ảnh - Imview: ảnh cho phép hiển thị ảnh trên các cửa sổ riêng. 4 Đổi màu và loại ảnh: rgb2gray: đổi ảnh màu RGB ra ảnh cường độ xám. gray2ind: đổi ảnh trắng đen (gray scale) thành ảnh indexed. im2bw: đổi sang ảnh nhị phân. Xử lý hình học: - Imcrop(A), imcrop(A.rec): xén ảnh A theo hình chữ nhật định bởi con chuột hay bởi thông số kèm theo trong hàm. - Imresize (A, m, mothod): thay đổi kích thước ảnh A theo tỉ lệ m và theo phương pháp nội suy method. - Imrotate (A, angle, method): quay ảnh A một góc angle và dùng phương pháp nội suy method. Lọc nhiễu: Các hàm lọc nhiễu dùng để tăng chất lượng ảnh. Có các phương pháp lọc tuyến tính, lọc trung vị và lọc thích nghi. - Lọc tuyến tính: pixel ảnh biến đổi là tổ hợp tuyến tính các pixel lân cận của pixel gốc, các hàm thường dùng là conv2 (tích chập), concn, filter2. - Lọc trung vị: là loại lọc phi tuyến, gồm các hàm medfilt2, ordfilt2. - Lọc thích nghi: wiener2. 2.1.2.Giới thiệu GUI của Matlab Giao diện người dùng (graphical user interface GUI) cho phép thực hiện các lệnh trong Matlab thông qua menu, nút nhấn tương tự như các ngôn ngữ Visual Basic Lập trình GUI được thực hiện nhờ công cụ GUIDE (GUI Development Environnment) hoặc bằng cách soạn một file M. 5 Cửa số GUIDE - Create New GUI: Tạo hộp thoại GUI mới theo một trong các loại sau: - Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển uicontrol nào cả. - GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button, … Chương trình có thể chạy ngay. - GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị. - Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No. - Open Existing GUI: mở một project có sẵn.Trong hướng dẫn này, các bạn tạo một project mới nên sẽ chọn Blank GUI. 2.2.Một số giải pháp sử dụng xử lý biển số xe 2.2.1.Thuật toán xác định vùng chứa biển số xe Mục đích của bước này là Từ bức ảnh chụp được trong bước thu nhận ảnh, áp dụng các thuật toán để trích ra vùng nhỏ nhất chứa biển số xe. 6 Các phương pháp: có nhiều phương pháp khác nhau để thực hiện nhiệm vụ này nhưng tất cả đều có thể qui về 3 phương pháp chính sau đây: - Phương pháp dùng chuyển đổi Hough: dựa vào đặc trưng cạnh biên trích được, áp dụng các phương pháp xác định đường thẳng nhờ phép biến đổi Hough để phát hiện các cặp đường thẳng gần song song ghép thành một ảnh biển số. - Phương pháp hình thái học: dựa vào đặc trưng hình thái của biển số xe như màu sắc, độ sáng, sự đối xứng… để xác định và trích ra ảnh biển số. - Phương pháp khớp mẫu: xem biển số là một đối tượng có khung nền riêng và sử dụng các cửa sổ dò để trích từng đối tượng đó qua mạng noron (neural network), trí tuệ nhân tạo (artificial intelligence) chẳng hạn để phân loại có phải là vùng biển số hay không. Phương pháp hình thái học Nội dung của phương pháp: Dựa vào đặc trưng quan trọng là biển số xe máy có độ sáng (tức mức xám khi chuyển bức ảnh về dạng xám) là tương đối khác so với các vùng khác trong bức ảnh, cũng như sự phân bố mức xám là khá đồng đều trên biển số và vì vậy khi được nhị phân hoá, vùng biển số là một đối tượng có đặc thù hình thái, có thể phân biệt được với các vùng khác . Nhờ vậy các bước thực hiện ở đây là: - Xác định ngưỡng xám. Thực chất là không có phương pháp nào chọn cho đúng ngưỡng xám để thực hiện. Thay vào đó, ngỡng xám sẽ được quét trong một khoảng nào đó. Thông qua lược đồ xám ta nhận thấy vùng biển số thường sẽ có độ sáng tương đối lớn (từ 130-200) vì vậy ta sẽ xác định lược đồ xám lớn nhất trong khoảng này và ngưỡng xám cần chọn sẽ thuộc vùng này nhờ đó ta sẽ giảm được thời gian lặp tìm ngưỡng xám. - Nhị phân hoá ảnh xám đầu vào với ngưỡng xám đã xác định. - Lọc các nhiễu (salt and pepper noise) gây ảnh hưởng xấu tới đối tượng biển số. - Gắn nhãn cho các đối tượng còn lại trong ảnh nhị phân thu được. - Trích ra các đối tượng ứng viên biển số theo tiêu chí cụ thể của biển số xe về chiều cao, chiều rộng, tỉ lệ các cạnh, diện tích, trọng tâm …Cụ thể nghiên cứu đã chọn: 7 7000 pixel ≤ diện tích ≤ 150000 pixel 0,68 ≤ chiều cao/chiều rộng ≤ 0,8 Ưu điểm: Phương pháp này có ưu điểm khá đơn giản,và dựa vào đặc điểm biển số sẽ có thể chọn chính xác được vùng chứa biển số. Nhược điểm:Cần một thời gian lớn(cỡ ~ 500 – 1000ms) để thực hiện . Phương pháp biến đổi Hough Các bước thực hiện: - Dò đặc trưng biên ngang, dọc: làm nổi bật các viền bao của tất cả các đối tượng trong ảnh trong đó có viền bao biển số. Phương pháp là sử dụng các bộ lọc gradient để trích được các đặc trưng cạnh biên này. Nghiên cứu này sử dụng bộ lọc Sobel để tiến hành dò. - Dùng chuyển đổi Hough tìm các đoạn thẳng ngang dọc trên cở sở của ảnh nhị phân biên cạnh thu được từ bước trên. Ở đây sẽ chọn các đường thẳng cách đều nhau 5 pixel để dò đường, và loại bỏ các đoạn thẳng nhỏ hơn ngưỡng, cụ thể là có ít hơn 30 pixel thuộc nó. - Tách các đoạn thẳng ngang, dọc có thể là cạnh của biển số. - Trích ứng viên biển số: thành lập các hình chữ nhật là ứng viên cho biển số với tiêu chí cụ thể là: các bộ 4 đoạn thẳng thu được sẽ qua đánh giá về kích thƣớc: 80< chiều rộng <400 63< chiều cao <350 0.63< chiều cao/ chiều rộng <0.8 Ưu điểm:Phương pháp này không phụ thuộc vào màu sắc của biển số xe Nhược điểm: Phương pháp này phụ thuộc rất lớn vào bước trích đặc trưng biên cạnh dẫn đến là các đoạn thẳng ứng viên thu được thường ngắn hơn nhiều so với chiều dọc cũng như chiều ngang của biển số. 2.2.1.Thuật toán cách ly kí tự 8 Mục đích của bước này là tách được các ảnh đơn chứa các kí tự số chuẩn bị cho bước nhận dạng. Cũng có nhiều phương pháp đê thực hiện bước cách ly như :tách tĩnh,lượng tử hóa vectơ(vector quantization), lược đồ chiếu ngang và dọc (vertical and horizontal projection), mạng noron (neural network), trí tuệ nhân tạo (AI), hình thái học (Morphology) Phương pháp hình thái học: mỗi 1 ký tự trên biển số sẽ là 1 đối tượng có đặc điểm hình thái học cụ thể như là chiều cao, chiều rộng, tỉ lệ 2 chiều…biến đổi tương đối ít (nếu ảnh biển số được đưa về cùng một kích cỡ) mà dựa vào đó ta có thể tách ra được cụ thể từng ký tự một.Từ đó ta có các bước thực hiện thuật toán tách kí tự từ ảnh xám biển số sau đây: - Đưa ảnh xám biển số về cùng độ phân giải 160x210 sau đó thực hiện xóa biên ảnh biển số. - Xác định ngưỡng xám để nhị phân bức ảnh biển số. Khâu này rất quan trọng quyết định tính chính xác của việc nhận dạng kí tự. Nghiên cứu đã chọn ngưỡng xám theo các bước sau: • Nâng cao tính tương phản của ảnh biển số bằng thuật toán cân bằng hóa lược đồ xám (histogram equalization). • Dùng thuật toán Otsu để xác định ngƣỡng xám của bức ảnh mới này, đây là ngưỡng xám cần tìm. - Lọc nhiễu để loại bỏ bớt các đối tượng và gán nhãn cho các đối tượng còn lại. - Tách ra các ký tự thông qua đặc tính về hình thái học, cụ thể là: 8 pixel ≤ chiều rộng ≤ 45 pixel 45 pixel ≤ chiều cao ≤ 85 pixel Ưu điểm: - Không phụ thuộc vào độ nghiêng của biển số. - Không phụ thuộc vào nhiễu. 9 - Biển số có thể không làm sạch được nhưng vẫn nhận dạng chính xác. Nhược điểm: - Phụ thuộc vào độ chính xác của ảnh nhị phân có lấy hết được ảnh ký tự từ ảnh xám. 2.2.2.Thuật toán nhận dạng kí tự Mục đích: đưa ra được kí tự chữ hoặc số từ file ảnh đơn cắt ở trên. Phương pháp phổ biến nhất để nhận dạng ký tự là sử dụng mạng noron,tức là huấn luyện cho máy tính để nhận dạng các ký tự. Phương pháp Hình thái học :các ký tự đều có những đặc điểm hình thái đặc biệt có thể phân biệt với nhau chẳng hạn như “O” có lỗ trống ở giữa, “8 có 2 lỗ trống hay “X” đối xứng 2 trục dọc và ngang…Đặc biệt khâu này được thực hiện trên cơ sở xây dựng cây nhị phân tối ưu của các đặc điểm hình thái nên đảm bảo tính khoa học và tính chính xác cao. Từ thực tế thực hiện, nghiên cứu đưa ra thuật toán của khâu này như sau: - Quan sát chọn ra các đặc tính phân biệt ký tự để xây dựng ma trận đặc tính. - Xây dựng cây nhị phân tối ưu từ ma trận đặc tính và tập ký tự thu được từ bước tách ký tự. - Quan sát cây nhị phân và kiểm tra xem số đặc tính như vậy đã đủ để nhận dạng chưa, thiếu (dư) thì phải bổ sung (bỏ đi) và quay lại bước đầu tiên. - Tiến hành nhận dạng các ký tự trên cơ sở cây nhị phân tốiưu tìm được. Qua tiến hành các bước của thuật toán trên, nghiên cứu đã sử dụng nhóm các đặc tính để phân biệt các ký tự là chữ số và các ký tự là chữ cái. Cụ thể đối với chữ số: số điểm cắt dọc 1/2, tục dọc, trục ngang, số lỗ tròn, vị trí lỗ tròn; đối với chữ cái: số lỗ tròn, mở trên hay đóng trên, mở dưới hay đóng dưới, trục dọc, trục ngang, số điểm cắt dọc 1/2 và số điểm cắt ngang 1/2. Ưu điểm: Tốc độ xử lý cao,rút gọn thời gian xử lý. Nhược điểm: Thuật toán khá phức tạp. 10 [...]... vùng chứa kí tự biển số xe chung,sau đó thực hiện nhận dạng kí tự theo phương pháp Hình thái học Chương 4.Kết quả đạt được và kinh nghiệm rút ra 4.1.Kết quả đạt được Nhóm đã hoàn thành sản phẩm theo đúng thời hạn đã định ra.Phần mềm nhận dạng được hầu hết(98%) biển số xe lưu thông ở trong địa bàn Hà Nội,và xuất ra đúng dãy kí tự biển số xe 11 Giao diện người dùng hệ thống nhận dạng biển số xe 4.2.Kinh... gây ra sai lệch khi nhận dạng - Để phần mềm có thể nhận dạng tốt biển sỗ xe, yêu cầu biển số phải được chụp một cách rõ nét,ít bụi bẩn và đặc biệt không bị lóa(do sẽ bị sai lệch khi chuyển sang ảnh nhị phân), hướng chụp ảnh nếu không nghiêng quá góc 45% - Với ảnh có kích thước nhỏ,sẽ khó nhận dạng hơn,yêu cầu biển số xe phải chiếm kích thước >40% diện tích của ảnh đưa vào - Với một số ảnh không rõ nét,thì... không rõ nét,thì có thể có sự nhận dạng sai giữa chữ“O” và số “0”,chữ “G” và số “6” hay chữ “I” và số “1” 5.2.Hướng phát triển của đề tài - Trong tương lai,nhóm hướng tới hoàn thiện hệ thống hơn như việc có thể chụp ảnh trực tiếp từ camera hay từ video ghi lại phương tiện giao thông trên đường thay vì phải đưa ảnh chụp sẵn vào - Sản phẩm sẽ được ứng dụng rộng rãi không chỉ với xe máy ,mà còn với ô tô ,xích... sát tốt hơn phương tiện giao thông.Cùng với đó,phát triển chương trình thành module phần cứng trên hệ vi xử lý dành riêng cho xử lý tín hiệu số để không còn phụ thuộc vào máy tính, giảm nhỏ kích thước đồng thời kết hợp giao tiếp với camera và các cảm biến để có thể trở thành một thiết bị nhận dạng biển số hoạt động độc lập có thể sử dụng cho các ứng dụng cụ thể đã nêu trên Trong quá trình làm việc đã... http://www.mathworks.fr/matlabcentral/answers/4183-code-for-locating-lisence- plate.Lần truy cập cuối 31/5/2012 2 Lê Dũng,“Lý thuyết xử lý và nhận dạng ảnh,mạng nơron và nhận dạng chữ viết”, Luận văn thạc sĩ chuyên ngành điện tử viễn thông, Đại học Bách Khoa Hà Nội,năm 2000 3 Nhập môn xử lý ảnh số Ths Lương Mạnh Bá, Pts Nguyễn Thanh Thủy Nxb KHKT 2003 4 Internet và một số tạp chí khoa học 14 . định ra.Phần mềm nhận dạng được hầu hết(98%) biển số xe lưu thông ở trong địa bàn Hà Nội,và xuất ra đúng dãy kí tự biển số xe. 11 Giao diện người dùng hệ thống nhận dạng biển số xe 4.2.Kinh nghiệm. biển số là có thể biết được thông tin về chiếc xe đó,như chủ phương tiện,thời gian đăng kí ,số lần vi phạm giao thông,… Như vậy,yêu cầu đặt ra là phải thiết kế một hệ thống nhận dạng biển số xe. là xe máy,do vậy việc quản lý xe máy là một điều cần thiết.Mỗi một xe máy lưu thông đều được cấp một biến số riêng biệt,do đó chỉ cần nhận dạng được biển số xe và đối chiếu với kho dữ liệu biển

Ngày đăng: 21/07/2015, 15:37

Từ khóa liên quan

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

Tài liệu liên quan