Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 79 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
79
Dung lượng
4,97 MB
Nội dung
1 LỜI CẢM ƠN Sau thời gian tìm hiểu đề tài “Xây dựng ứng dụng nhận diện biển số đăng ký xe” em hoàn thành tiến độ dự kiến Để đạt kết này, em nỗ lực thực đồng thời nhận nhiều giúp đỡ, quan tâm, ủng hộ thầy cơ, bạn bè gia đình Em xin chân thành gửi lời cảm ơn giáo viên hướng dẫn: Thầy giáo, Ths Nguyễn Đình Dũng - Bộ mơn Mạng Truyền Thông – Khoa công nghệ thông tin – Đại học công nghệ thông tin truyền thông – Đại học Thái Ngun tận tình giúp đỡ em hồn thành đồ án tốt nghiệp Em xin chân thành cảm ơn thầy, cô giáo thuộc môn Mạng Truyền Thông trang bị cho em kiến thức chun ngành hữu ích để em hồn thành đề tài phục vụ cho công việc em sau Do thời gian có hạn nên đề tài em khơng thể tránh khỏi thiếu sót, em mong đóng góp ý kiến từ phía thầy cô bạn Em xin chân thành cảm ơn! Thái Nguyên, tháng 06 năm 2012 Sinh viên Lê Văn Thành LỜI CAM ĐOAN Đồ án hồn thành sau thời gian nghiên cứu, tìm hiểu nguồn tài liệu, sách báo chuyên ngành thơng tin mạng mà theo em hồn tồn tin cậy Nội dung đồ án em tổng hợp lại từ tài liệu tham khảo, không chép tồn đồ án cơng trình nghiên cứu tác giả khác Em xin chịu trách nhiệm nội dung đồ án Thái Nguyên, tháng năm 2012 Sinh Viên Lê Văn Thành MỤC LỤC MỤC HÌNH ẢNH DANH MỤC TỪ VIẾT TẮT FFT Fast Fourier Transform LPR License Plate Recognition NN Neural Network SVM Support Vector Machine GIF Graphics Interchanger Format JPGE Joint Photographic Expert Group RLE Run Length Encoded ORC Optical character recognition MIT Massachurehs Insritute of Technology ANN Artificial Neural Network BPNN Back Propagation Neural Network LỜI NĨI ĐẦU Ngày nay, cơng nghệ thông tin ngành khoa học mũi nhọn tồn giới Những ứng dụng cơng nghệ thông tin rộng khắp tất lĩnh vực khoa học như: giáo dục, y tế, kinh tế, văn hóa,…nó góp phần giúp đời sống người ngày đại, giảm công việc nặng nhọc đời sống ngày Nhận dạng xử lý ảnh chuyên ngành tin học có tầm ứng dụng to lớn Có thể kể hàng loạt lĩnh vực áp dụng kỹ thuật nhận dạng ảnh như: xử lý ảnh chụp vệ tinh, dự báo thời tiết, điều khiển giao thông cơng cộng, nhận dạng chữ viết tay, phân tích chữ ký, nhận dạng vân tay, nhận dạng mặt người,… Bài toán nhận dạng biển số xe tốn hay khơng phần hóc búa lĩnh vực nhận dạng Bài toán mang tầm quan trọng tính thiết thực cao sống, giúp giải vấn đề trông giữ xe bãi gửi xe trở nên dễ dàng, an toàn nhanh chóng hết Nắm tầm quan trọng đó, đề tài em trình bày phương pháp nhận dạng xe mô tô hai bánh thông qua liệu đầu vào ảnh chụp phần đuôi xe, sau qua q trình xử lý ảnh, tách ký tự, nhận dạng ký tự ta nhận kết biển số xe Đây đề tài nhiều quan nước quan tâm xe mô tô phương tiện lại chủ yếu người dân Dưới báo cáo chi tiết q trình xây dựng hồn thiện ứng dụng Nội dung báo cáo bao gồm chương sau: Chương 1: Cơ sở lý thuyết Nêu tổng quan sở lý thuyết vận dụng việc xây dựng ứng dụng bao gồm tổng quan lý thuyết xử lý ảnh, lý thuyết nhận dạng ảnh dựa mạng nơron nhân tạo Chương 2: Khảo sát phân tích tốn Nêu q trình phân tích tốn, thuật tốn sử dụng trình xây dựng chương trình Chương 3: Xây dựng ứng dụng Nêu q trình xây dựng hồn thiện kiểm thử chương trình Do kiến thức cịn nhiều thiếu sót, nên kết cịn hạn chế, mong nhận đóng góp, đánh giá nhận xét thầy để em hồn thiện kiến thức kết đề tài Em xin chân thành cảm ơn! Thái Nguyên, tháng 06 năm 2012 Sinh viên thực Lê Văn Thành CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu tổng quan 1.1.1 Đặt vấn đề Thực tế nay, bãi giữ xe mô tô bánh nước ta quản lí cách thức thủ cơng đơn giản bãi giữ xe có người: người đọc biển số, người khác ghi biển số xe vào thẻ giữ xe, sau bấm vào xe phần vé xe, phần cịn lại đưa cho chủ xe giữ Sau xe bãi nhiều người trông chừng tùy theo bãi xe rộng hay hẹp, có nhiều hay góc khuất,… Ưu điểm phương pháp thủ cơng đơn giản không cần thiết bị phức tạp Tuy nhiên phương pháp tồn nhiều nhược điểm Thứ lãng phí nguồn nhân lực, phương pháp phải cần nhiều người để quản lý tốt tồn bãi giữ xe Thứ hai độ xác khơng đảm bảo, việc đọc, ghi biển số xe người thực nên khơng thể tránh khỏi sai sót Thứ ba độ an toàn thấp, dùng nhiều người nên việc quản lí người phức tạp, hay việc giám sát người nên khó bao qt tốt tồn bãi xe Và đa số vé xe đơn giản dễ nhầm lẫn , việc đối chiếu lúc xe người (dễ bị ảnh hưởng yếu tố chủ quan , nhầm lẫn) nên kẻ gian tráo vé , sửa đổi vé làm vé giả để qua mặt nhân viên giữ xe…Thứ tư tốc độ công việc không cao, thực việc xe vào qua nhiều khâu đọc biển số, ghi vé, bấm vé,…Và cuối nhược điểm phương pháp khơng có chứng để lưu giữ thông tin xe vào bãi, thời gian khỏi bãi, … Do cố xảy (mất xe, vé xe,…) khơng có thơng tin để kiểm tra, đối chiếu Khơng có khả thống kê, tính tốn lượng xe ra, vào … Tóm lại nhược điểm phương pháp tốc độ hiệu thấp, khả quản lý, kiểm soát Rất dễ xảy mát tài sản Xuất phát từ nhược điểm trên, phương pháp sử dụng làm tăng hiệu việc quản lý giữ xe, đặt camera vị trí cổng giữ xe, có xe vào camera chụp ảnh biển số Sau phân tích xử lý ảnh chương trình máy tính lưu giữ lại biển số xe in phần vé cho người gửi xe Phương pháp khắc phục nhược điểm phương pháp thủ công, giai đoạn xử lý, nhận dạng ký tự biển số nội dung đề tài nhận dạng trực tuyến xe mô tô hai bánh mà em trình bày 1.1.2 Phát biểu tốn Trong đề tài em giải vấn đề cách phân rã thành ba toán liên quan lẫn nhau, kết tốn trước đầu vào tốn sau: Trích biển số ảnh đơn: • Đầu vào: ảnh chụp có phức tạp • Đầu ra: ảnh biển số trích từ ảnh Tách ký tự ảnh biển số: • Đầu vào: ảnh biển số, kết tốn trích biển số • Đầu ra: ảnh ký tự rời rạc biển số Nhận dạng ký tự đơn biển số: • Đầu vào: ảnh ký tự đơn biển số, kết toán tách ảnh ký tự • Đầu ra: chuỗi kết ghi nhận lại giá trị ký tự biển số xe dạng text hiển thị kết Mục tiêu Đây toán nhận dạng xử lý ảnh, đồ án này, em xin tập trung nghiên cứu giải thuật trích biển số xe thơng qua ảnh chụp, tách ký tự biển số nhận dạng kí tự biển số xe Ngôn ngữ sử dụng để xây dựng chương trình CSharp 1.1.3 Phạm vi giải đề tài Do điều kiện khả thời gian hạn chế nên đề tài tập trung nghiên cứu nhận dạng ảnh chụp xe mô tô bánh 10 Đề tài tập trung nghiên cứu thuật toán nhằm giải tốn nhận dạng trực tuyến xe mơ tơ hai bánh ảnh đơn chụp từ thiết bị camera phạm vi vấn đề sau: • Ảnh có phức tạp, với điều kiện sáng tối • Các loại biển số xe mô tô qui định theo luật biển số công an giao thơng màu sắc, phơng chữ, chất liệu,… • Đối với hệ thống cài đặt cụ thể, điều kiện vị trí, khoảng cách đặt camera chụp dùng làm tham số để tăng hiệu nhận dạng 1.1.4 Tìm hiểu hệ thống nhận dạng biển số xe Hệ thống nhận dạng biển số xe mô tô bao gồm bước phát biển số xe, chụp lại ảnh, trích ảnh chứa vùng văn dùng thuật tốn thích hợp nhận dạng ký tự biển số thành ký tự dạng TEXT để máy tính lưu trữ xử lý Như hệ thống nhận dạng bao gồm: phận cảm biến phát chuyển động, camera trực tuyến dùng để chụp ảnh xe, chương trình trích biển số, chương trình tách ký tự hình biển số, chương trình nhận dạng ký tự biển số Ở mức độ đề tài, em tập trung xây dựng phần quan trọng tồn hệ thống xây dựng chương trình nhận dạng biển số xe dựa vào liệu đầu vào ảnh chụp phần đuôi xe liệu đầu cần đạt ký tự chữ số dạng TEXT Các phương pháp trích biển số xe ảnh: Đây bước thiếu tốn nhận dạng biển số xe, có nhiều hướng giải tốn Cụ thể, có số hướng tiếp cận như: dựa vào đặc trưng cạnh biên trích ta áp dụng thuật toán xác định đường thẳng phép biến đổi Hough để phát cặp đoạn thẳng gần song song ghép thành ảnh ứng viên biển số, biển số xe mô tô nước ta khơng có đường bao hay thời gian đường bao bị mờ nên ta dùng phương pháp này; hay tiếp cận theo hướng hình thái học, trọng vào đặc trưng màu sắc, độ sáng, đối xứng, góc,…; tiếp cận 10 65 2.5 Nhận dạng ký tự đơn biển số mạng Nơron nhân tạo 2.5.1 Mơ hình mạng Mơ hình mạng Nơron nhân tạo sử dụng để huấn luyện mạng tiến đa mức lan truyền ngược sai số ( Back – Propagation Neural Network) với lớp: lớp vào, lớp ẩn lớp Ký tự tách từ bảng số, chuẩn hóa kích thước thành 20 x 10, sau ta chuyển thành mảng chiều 200 x 1, tương ứng với 200 pixel với giá trị Vậy mạng Nơron thiết kế với 200 nút lớp vào ( tương ứng 200 pixel) 100 nút lớp ẩn, 10 nút lớp mạng nhận dạng số 21 nút mạng nhận dạng chữ Hàm kích hoạt: (Bipolar) Chọn α = 0.05 Qui tắc hiệu chỉnh trọng số: áp dụng phương pháp giảm Gradiant với qui tắc học thích nghi Chọn k=5, φ=0.5, τ=0.7 2.5.2 Huấn luyện mạng Quá trình huấn luyện mạng trình xác định trọng số mạng để xấp xỉ hàm đích cho trước Đầu tiên mạng huấn luyện với ảnh mẫu chuẩn với sai số khoảng 10-7 Sau đó, mạng tiếp tục huấn luyện với ảnh mẫu có nhiễu với sai số lớn ( khoảng 10-5) để trọng số không ảnh hưởng nhiều đến việc nhận dạng ảnh mẫu chuẩn Sau huấn luyện mạng với ảnh nhiễu này, ta cần phải huấn luyện lại mạng với ảnh chuẩn ban đầu để đảm bảo chất lượng mạng Nếu thu thập nhiều mẫu ký tự để huấn luyện cho 65 66 mạng khả nhận dạng tăng Tuy nhiên đưa mẫu có chất lượng q thấp mạng khơng nhận dạng Khi cần thơng báo cho hậu xử lý hay đánh dấu để người sử dụng khắc phục Hình 2.15 Huấn luyện chữ 66 67 Hình 2.16 Huấn luyện số 67 68 CHƯƠNG III: XÂY DỰNG ỨNG DỤNG 3.1 Môi trường cơng cụ thực Chương trình xây dựng kiểm thử hệ điều hành Window 32 bit Quá trình xây dựng chương trình sử dụng công cụ Visual Studio 2008 Ngôn ngữ sử dụng để xây dựng chương trình: C# Ngồi cịn ứng dụng thư viện Aforge trình xử lý ảnh 3.1.1 Thư viện Aforge AForge.NET framework mã nguồn mở C # thiết kế cho nhà phát triển nhà nghiên cứu lĩnh vực trí tuệ nhân tạo - xử lý hình ảnh, mạng nơron, thuật tốn di truyền, logic mờ, robot, … Sử dụng số chức thư viện: Mở ảnh định dạng ảnh // Tải ảnh bitmap System.Drawing.Bitmap image = (Bitmap) Bitmap.FromFile( fileName ); // Định dạng ảnh AForge.Imaging.Image.FormatImage( ref image ); Cách sử dụng lọc thư viện: // Tải ảnh System.Drawing.Bitmap image = (Bitmap) Bitmap.FromFile( fileName ); // Khởi tạo lọc AForge.Imaging.Filters.Median filter = new AForge.Imaging.Filters.Median( ); // Áp dụng lọc cho ảnh System.Drawing.Bitmap newImage = filter.Apply( image ); 68 69 Nếu cần tác động nhiều chức lọc ảnh, khai bao tập hợp chức lọc FiltersSequence, sau thêm vào filter chức lọc cần áp dụng cho hình Và sau ta cần áp dụng chức lọc lần: // Khởi tạo Filters Sequence: filter = new AForge.Imaging.Filters.FiltersSequence( ); // Thêm lọc cần thiết: filter.Add( new AForge.Imaging.Filters.Sepia( ) ); filter.Add( new AForge.Imaging.Filters.RotateBilinear( 45) ); filter.Add( new AForge.Imaging.Filters.ResizeBilinear( 320, 240 ) ); filter.Add( new AForge.Imaging.Filters.Pixellate( )); filter.Add( new AForge.Imaging.Filters.Jitter( ) ); filter.Add( new AForge.Imaging.Filters.Blur( ) ); // Áp dụng cho ảnh: System.Drawing.Bitmap newImage = filter.Apply( image ); Một số chức thư viện AForge áp dụng cho ứng dụng nhận dạng: Khởi tạo lại kích thước chuẩn cho ảnh: IFilter filt = new ResizeBilinear(512, 256); img = filt.Apply(img); 69 70 Chuyển ảnh sang ảnh mức xám: IFilter way_filt= new GrayscaleY(); img = way_filt.Apply(img); Phân ngưỡng ảnh: way_filt = new Threshold(200); img = way_filt.Apply(img); Đảo màu ảnh: way_filt = new Invert(); img = way_filt.Apply(img); Bộ lọc Median: way_filt = new Median(); img = way_filt.Apply(img); Bộ lọc BlobsFiltering: BlobsFiltering filter = new BlobsFiltering(); filter.MinHeight = 30; filter.MinWidth = 15; filter.MaxHeight = 100; filter.ApplyInPlace(process_image); Bộ lọc BlobsCounter: BlobCounter blobs = new BlobCounter(imgArr[i]); Blob[] words = blobs.GetObjects(imgArr[i]); foreach (Blob word in words) imgArr[i] = word.Image; 3.2 Xây dựng ứng dụng 3.2.1 Một số class chương trình Class clsTachBienSo: Class thực chức xử lý, tách lọc biển số từ ảnh đầu vào 70 71 Các thành phần: • IMAGE: chứa hình ảnh chụp từ camera • PLATE: chứa hình ảnh biển số trích từ IMAGE thông qua phương thức Get_Plate() Các phương thức chính: • Get_Plate(): trích biển số hình IMAGE lưu vào đối tượng PLATE • fft(Bitmap img): Thực biến đổi Fourier ảnh đầu vào sau tính giá trị trung bình biên độ phổ từ xác định khu vực biển số nhờ q trình: Phân tích giá trị trung bình biên độ phổ theo chiều ngang theo chiều dọc Kết cuối phương thức trả ảnh biển số trích xuất từ ảnh ban đầu nhờ phương thức trích xuất ảnh get_plate mơ tả • get_plate(Bitmap img, int top, int bottom, int left, int right): Thực trích xuất ảnh đầu vào img với tham số truyền vào: top, bottom,left right Các giá trị đầu vào xác định xác vị trí cần tách ảnh đầu vào image_input Class clsTachAnhKyTu: Từ ảnh biển số tách trên, class giúp phân tách nhỏ thành phần ảnh ký tự biển số, tạo tiền đề cho trình nhận dạng Các thành phần: • PLATE: chứa hình biển số lấy từ property PLATE clsTachAnhBienSo • IMAGEARR: chứa mảng ký tự biển số PLATE thông qua phương thức Split() Các phương thức chính: • Split(): tách ký tự đơn biển số từ PLATE lưu vào IMAGEARR 71 72 • define_line(Bitmap img, int thres) define_pos(Bitmap img, int thres) thực xác định vị trí xác dịng ký tự vị trí ký tự từ ảnh biển số đầu vào Class clsNhanDang: Có chức nhận dạng ảnh ký tự số đầu vào tách từ biển số thành cách ký tự dạng TEXT sau hiển thị kết cho người sử dụng đồng thời lưu kết vào CSDL nhờ vài class phụ khác Các thành phần: • IMAGEARR: chứa mảng ký tự lấy từ IMAGEARR class clsTachAnhKyTu • LICENSETEXT: chứa ký tự dạng TEXT tương ứng với ảnh ký tự có mảng ảnh IMAGEARR thơng qua phương thức recognition Các phương thức chính: • LoadNetworkNum(): mở file huấn luyện mạng ký tự số huấn luyện mạng Nơron • LoadNetworkChar(): mở file huấn luyện mạng ký tự chữ huấn luyện mạng Nơron • recognition(): dùng để nhận dạng ký tự mảng IMAGEARR thành giá trị ký tự dạng TEXT lưu vào mảng xâu ký tự LICENSETEXT Class clsData clsBLL: Có chức thực cơng việc chính: lưu giá trị nhận dạng từ chương trình vào sở liệu lấy giá trị lưu trước từ csdl hiển thị qua list view dựa vào việc chọn ngày nhận dạng 72 73 3.2.2 Một số hình ảnh ứng dụng Giao diện ứng dụng: Ứng dụng có giao diện đơn giản gồm thành phần chính: • Một picture box chứa hình ảnh tải lên để nhận dạng • Một picture box khác nhỏ chứa hình ảnh biển xe tách từ ảnh gốc • Vùng hiển thị liệu nhận dạng listview chứa sở liệu biển số nhận dạng với ngày, nhận dạng • Vùng kết xuất ảnh ký tự, chứa ảnh ký tự tách từ ảnh biển số • Kết nhận dạng: chứa thông tin nhận dạng thời dạng TEXT • Các button menu ứng dụng gồm có: “mở ảnh” để mở ảnh mới; ”nhận dạng” để nhận dạng ảnh đó; “Tải mạng nơ ron” để tải mạng nơron huấn luyện phục vụ cho trình nhận dạng; “lưu ảnh” để lưu lại biển số nhận dạng Ngồi ra, chương trình cịn có số form phụ about help 73 74 Các thành phần ứng dụng: 74 75 Hình 3.1 Giao diện chương trình 75 76 Giao diện chương trình tải ảnh xe: Hình 3.2 Giao diện chương trình tải ảnh xe 76 77 Sau bấm nhận dạng, chương trình thực nhận dạng ảnh biển số xe cho kết hình ảnh biển số chi tiết vào khung hình hiển thị ảnh xe đồng thời cho kết nhận dạng lưu vào sở liệu Giao diện chương trình sau nhận dạng: 77 78 Hình 3.3 Giao diện chương trình sau nhận dạng Hình 3.4 Một vài hình ảnh khác chương trình 78 79 3.2.3 Đánh giá kết Với kết nhận sau trình thử nghiệm chương trình, số nhận xét khả trình thực nhận dạng: • Trích biển số: Thứ nhất, khoảng cách chụp ảnh ảnh hưởng đến kết toán nhiều Trong tập ảnh chụp, có số ảnh chụp q xa hay q gần khơng trích vị trí biển số Thứ hai tính chất thuật toán quét hết tất điểm hình nhận nên tốc độ xử lý khơng cao Và thuật toán giảm số dòng đầu cuối hay trái phải ảnh ( ảnh biển số thường chụp vị trí nằm hình) việc góp phần làm tăng tốc độ xử lý ảnh • Tách ký tự: kết tách ký tự đạt tỷ lệ chưa cao chương trình chưa xử lý hết nhiễu ảnh Một số biển số nhiễu đinh ốc, dơ, bùn đất, …làm ảnh hưởng đến việc tách ký tự làm giảm hiệu nhận dạng Một số trường hợp nhiễu nhiều nên lọc nhiễu làm hay tăng thêm số ký tự biển số gây khó khăn cho việc nhận dạng Và vấn đề nan giải cho thuật tốn • Nhận dạng ký tự: giai đoạn nhận dạng ký tự phụ thuộc nhiều vào giai đoạn trích biển số tách ký tự Nếu trích biển số tách ký tự tốt kết nhận dạng tốt Tuy nhiên ảnh ký tự bị nhiễu nhiều dẫn đến việc nhận dạng ký tự bị lỗi Ngoài số ký tự chữ thu thập biển số (mỗi biển số có ký tự chữ) nên việc huấn luyện cho ký tự chữ chưa hồn chỉnh việc nhận dạng chưa có kết tốt Đối với ký tự số thu thập nhiều, nhiên trình nhận dạng ký tự dễ bị nhầm lẫn ký tự 8, 7, hay Để giải trường hợp thuật toán nhận dạng đưa vào hàm dùng để phân biệt số 0-8, 2-7, 5-6 Với việc hỗ trợ phân biệt kết nhận dạng ký tự kết 79 ... chương trình tách ký tự hình biển số, chương trình nhận dạng ký tự biển số Ở mức độ đề tài, em tập trung xây dựng phần quan trọng tồn hệ thống xây dựng chương trình nhận dạng biển số xe dựa vào liệu... số Nhận dạng ký tự đơn biển số: • Đầu vào: ảnh ký tự đơn biển số, kết tốn tách ảnh ký tự • Đầu ra: chuỗi kết ghi nhận lại giá trị ký tự biển số xe dạng text hiển thị kết Mục tiêu Đây toán nhận. .. Trích biển số ảnh đơn: • Đầu vào: ảnh chụp có phức tạp • Đầu ra: ảnh biển số trích từ ảnh Tách ký tự ảnh biển số: • Đầu vào: ảnh biển số, kết tốn trích biển số • Đầu ra: ảnh ký tự rời rạc biển số