NGHIÊN cứu, ỨNG DỤNG CÔNG NGHỆ xử lý ẢNH TRONG NHẬN DIỆN BIỂN số XE

82 15 0
NGHIÊN cứu, ỨNG DỤNG CÔNG NGHỆ xử lý ẢNH TRONG NHẬN DIỆN 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

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CƠ – ĐIỆN  ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ XỬ LÝ ẢNH TRONG NHẬN DIỆN BIỂN SỐ XE Giáo viên hướng dẫn : Sinh viên thực hiện : Mã Sinh Viên : Lớp : K60­TĐH Chuyên ngành : TỰ ĐỘNG HÓA Hà Nội – 2021 LỜI CAM ĐOAN Để hoàn thành đề tài em có tham khảo số tài liệu liên quan nhận diện biển số xe công nghệ xử lý ảnh Em xin cam đoan đồ án em thực hiện, số liệu kết nghiên cứu đề tài trung thực Mọi giúp đỡ cho báo cáo cảm ơn thơng tin trích dẫn báo cáo ghi nguồn gốc rõ ràng Hà Nội, ngày 15 tháng năm 2021 Tác giả đồ án LỜI CẢM ƠN Em xin chân thành cảm ơn chân thành tới Ban giám đốc Học viện Nông nghiệp Việt Nam, Ban chủ nhiệm khoa Cơ-Điện toàn thể thầy, giáo tận tình dạy dỗ, giúp đỡ em thời suốt trình học tập trường Học viện Nông nghiệp Việt Nam Xin cảm ơn thầy cô trực tiếp giảng dạy em thầy cô gián tiếp giúp đỡ em trình tìm kiếm tài liệu cho việc thực đồ án tốt nghiệp Đặc biệt em xin trân trọng cảm ơn cô Th.S Đặng Thị Thúy Huyền - người tận tình hướng dẫn, cung cấp tài liệu truyền đạt nhiều ý kiến thiết thực suốt trình thực đồ án Những kinh nghiệm quý báu mà cô truyền đạt hành trang vững giúp em tự tin nghề nghiệp sau Xin cảm ơn gia đình bạn bè ủng hộ, động viên, giúp đỡ em vượt qua khó khăn suốt thời gian vừa qua để em hoàn thành nhiệm vụ học tập đồ án tốt nghiệp cách tốt Mặc dù có nhiều cố gắng với kiến thức hạn hẹp thời gian tiếp xúc với thực tế chưa nhiều, báo cáo đồ án em khơng thể tránh khỏi nhiều thiếu sót Em mong có ý kiến đóng góp chân thành thầy cô bạn kiến thức báo cáo hoàn thiện Em xin chân thành cảm ơn! Hà nội, ngày 15 tháng năm 2021 Sinh viên MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH ẢNH .6 DANH MỤC BẢNG MỞ ĐẦU ĐẶT VẤN DỀ MỤC ĐÍCH NGHIÊN CỨU CỦA ĐỀ TÀI .9 ĐỐI TƯỢNG NGHIÊN CỨU NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU .10 4.1 NỘI DUNG .10 4.2 PHƯƠNG PHÁP NGHIÊN CỨU 10 Giới hạn đề tài 10 Thời gian địa điểm thực .10 CHƯƠNG TỔNG QUAN ĐỀ TÀI 11 1.1 Nghiên cứu tổng quan công nghệ xử lý ảnh 11 1.1.1 Ảnh số điểm ảnh 11 1.1.2 Độ phân giải ảnh .13 1.1.3 Các định dạng phổ biến ảnh 13 1.1.4 Thu nhận ảnh 13 1.1.5 Một số ví dụ ảnh số 14 1.1.6 Xử lý ảnh 15 1.1.7 Các chức xử lý ảnh 16 1.2 Một số phương pháp xác định biển số .20 1.2.1 Phương pháp truyền thống sử dụng người 20 1.2.2 Một số phần mềm quản lý trạm cân ô tô camera nhận diện biển số .20 1.3 Kết luận chương .25 CHƯƠNG NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 26 2.1 Đối tượng nhận diện 26 2.2 Các bước xử lý ảnh nhận diện biển báo .28 2.3 Thu nhận ảnh 29 2.4 Tiền xử lý ảnh 29 2.4.1 Chuyển ảnh sang dạng ảnh xám .29 2.4.2 Xử lý nhiễu .31 2.4.3 Chuyển ảnh xám dạng nhị phân 32 2.5 Chương trình tìm góc nghiêng 34 2.5.1 Biến đổi radon 34 2.5.2 Tìm góc nghiêng xoay 36 2.6 Trích xuất vùng biển số 37 2.7 Tổng quan phương pháp nhận dạng ký tự 41 2.7.1 Phương pháp so khớp mẫu (template matching) 41 2.7.2 Phương pháp hình thái học (morphology) 42 2.7.3 Phương pháp mạng nơron (neuron network) 42 2.8 Phương pháp đối sánh mẫu dựa đặc trưng .43 2.8.1 Tạo mẫu 43 2.9 Tiến hành nhận dạng ký tự 44 2.10 Thư viện ngơn ngữ lập trình sử dụng hệ thống nhận dạng biển số 48 2.10.1 Giới thiệu thư viện OpenCV .48 2.10.2 Ngơn ngữ lập trình .49 2.11 Kết luận chương 50 CHƯƠNG KẾT QUẢ VÀ THẢO LUẬN 51 3.1 Kết đánh giá hệ thống .51 3.1.1 Kết 51 3.1.2 Đánh giá .53 3.1.3 Một số kí tự nhận dạng dễ bị nhầm lẫn 54 3.2 Kết đạt 55 3.3 Kết chưa đạt .56 3.4 Kết luận chương .56 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 57 DANH MỤC HÌNH ẢNH Hình 1 Phân tích ảnh trắng đen Hình Phân tích ảnh màu 10 Hình Phân tích ảnh theo điểm ảnh 10 Hình Độ phân giải ảnh .11 Hình Màu ảnh 11 Hình Các bước thu nhận ảnh 12 Hình Một số ví dụ ảnh số 13 Hình Xử lý ảnh .13 Hình Giảm nhiễu 14 Hình 10 Điều chỉnh độ tương phản 15 Hình 11 Tìm cạnh 16 Hình 12 Nén ảnh 16 Hình 13 Phân vùng 17 Hình 14 Khơi phục ảnh 17 Hình 15 Phương pháp truyền thống 18 Hình Biển trắng .27 Hình 2 Kích thước biển trước tô .27 Hình Kích thước biển sau tơ 27 Hình Kích thước biển sau mơ tơ .28 Hình Sơ đồ trình nhận dạng biển số xe 28 Hình Ảnh đầu vào 30 Hình Ảnh chuyển mức xám .31 Hình Lọc trung vị 32 Hình Ảnh nhị phân 34 Hình 10 Phương pháp biến đổi Radon .35 Hình 11 Hình chiếu đơn giản theo góc θ 35 Hình 12 Lưu đồ giải thuật phần xoay ảnh 37 Hình 13 Ảnh xám đầu vào – Lược đồ xám ảnh xám 38 Hình 14 Lưu đồ cắt biển số thành hai hàng .40 Hình 15 Lưu đồ giải thuật cắt kí tự 41 Hình 16 Kí tự đưa dạng ma trận 42x24 44 Hình 17 Thuật tốn đối sánh mẫu dựa đặc trưng 45 Hình 18 Kết nhận dạng chương trình phương pháp đối sánh mẫu dựa đặc trưng 47 Hình 19 Thư viện Open CV .48 Hình 20 Ngơn ngữ lập trình C# 49 Hình Biển số xe 52 Hình Biển số bị bóng, mờ .53 Hình 3 Biển số bị tối 53 Hình Biển số bị che phần kí tự 53 Hình E bị nhầm sang F 55 Hình B bị nhầm sang D 55 Hình bị nhầm sang 55 DANH MỤC BẢNG Bảng Kết thử nghiệm .51 Bảng Phân tích mẫu không nhận dạng .51 Bảng 3 Kết biển số bị bóng, mờ 52 Bảng Kết biển số bị tối 52 Bảng Kết biển số bị khuyết, che khuất phần kí tự .53 Bảng Kết số ký tự nhận dạng điều kiện tốt 53 Bảng Kết số ký tự nhận dạng điều kiện phức tạp 54 MỞ ĐẦU Đặt vấn dề Công phát triển khoa học công nghệ ngày diễn mạnh mẽ tự động hóa phần thiết yếu tương lai Hiện việc người sử dụng phương tiện giao thông ô tô, xe máy khơng ngừng gia tăng Theo thống kê cho thấy, nước ta có 3,7 triệu tơ 57 triệu xe máy đăng ký, ngày lại có thêm 850 tơ 9000 xe máy đăng ký Đây thực số ấn tượng, cho thấy việc cần kiểm soát chặt chẽ phương tiện giao thông cần thiết hết Mỗi xe sở hữu cho biển số riêng, nhiên việc quản lý chúng khu vực tập trung nhiều xe bãi đỗ xe, trạm cân, quản lý phương tiện lưu thông đường Việt Nam đa phần sử dụng người kết hợp với loại vé ghi tay vé quét điện tử Cả hai cách cho thấy hạn chế mặt cần có nhân cơng xử lý địa điểm đó, dễ xảy sai sót, xử lý chậm chạp, khơng linh hoạt Theo tìm hiểu, em thấy giới người ta sử dụng hệ thống nhận dạng, kiểm soát biển số xe tự động phổ biến Một phương pháp hiệu ứng dụng việc sử dụng cơng nghệ xử lý hình ảnh Cùng với tò mò, hào hứng với vấn đề nhận thấy công nghệ nhận diện biển số xe tự động Việt Nam có tiềm nên em chọn nghiên cứu đề tài “Nghiên cứu, ứng dụng công nghệ xử lý ảnh nhận diện biển số xe” làm đề tài nghiên cứu tốt nghiệp Mục đích nghiên cứu đề tài  Tìm hiểu phương pháp xác định nhận diện biển số xe ứng dụng thư viện OpenCV  Xây dựng hệ thống trích xuất thơng tin biển số xe xác Đối tượng nghiên cứu  Công nghệ xử lý ảnh nhận diện ký tự  Các phương pháp, thuật toán phục vụ cho việc nhận diện biển số xe } #endregion #region Asigning output processedColor = color.ToBitmap(); processedGray = grayImage.ToBitmap(); list = listR; #endregion return count; } } public void ProcessImage(Image _image) { try { PlateImagesList.Clear(); PlateTextList.Clear(); FindLicensePlate(_image.ToBitmap(), out Plate_Draw); } catch(Exception ex) { MessageBox.Show("Khong tim thay bien so"); } } public static Bitmap RotateImage(Image image, 67 float angle) { if (image == null) throw new ArgumentNullException("image"); PointF offset = new PointF((float)image.Width / 2, (float)image.Height / 2); //create a new empty bitmap to hold rotated image Bitmap rotatedBmp = new Bitmap(image.Width, image.Height); rotatedBmp.SetResolution(image.HorizontalResolution, image.VerticalResolution); //make a graphics object from the empty bitmap Graphics g = Graphics.FromImage(rotatedBmp); //Put the rotation point in the center of the image g.TranslateTransform(offset.X, offset.Y); //rotate the image g.RotateTransform(angle); //move the image back g.TranslateTransform(-offset.X, 68 -offset.Y); //draw passed in image onto graphics object g.DrawImage(image, new PointF(0, 0)); return rotatedBmp; } private string Ocr(Bitmap image_s, bool isFull, bool isNum = false) { string temp = ""; Image src = image_s.ToImage(); double ratio = 1; while (true) { ratio = (double)CvInvoke.CountNonZero(src) / (src.Width * src.Height); if (ratio > 0.5) break; src = src.Dilate(3); } Bitmap image = src.ToBitmap(); Emgu.CV.OCR.Tesseract ocr; if (isFull) ocr = full_tesseract; else if (isNum) ocr = num_tesseract; else 69 ocr = ch_tesseract; int cou = 0; ocr.SetImage(image.ToMat()); temp = ocr.GetUTF8Text(); while (temp.Length > 3) { Image temp2 = image.ToImage(); temp2 = temp2.Erode(3); image = temp2.ToBitmap(); ocr.SetImage(image.ToMat()); temp = ocr.GetUTF8Text(); cou++; if (cou > 10) { temp = ""; break; } } return temp; } public void FindLicensePlate(Bitmap image, out Image plateDraw) { plateDraw = null; Image frame; bool isface = false; 70 Bitmap src; Image dst = image; CascadeClassifier haar = new CascadeClassifier(Application.StartupPath + "\\outputhv-33-x25.xml"); for (float i = 0; i 3) { a = a.Erode(2); full_tesseract.SetImage(a); temp = full_tesseract.GetUTF8Text(); cou++; if (cou > 10) { listRect.RemoveAt(i); i ; di = 0; break; } di = cou; } } // Doc cac ky tu bien so dua vao thuat toan OCR - Teresact // Chia cac ky tu hang up va down de xu ly ap dung cho bien so dong for (int i = 0; i < listRect.Count; i+ +) { for (int j = i; j < listRect.Count; j++) { if (listRect[i].Y > listRect[j].Y + 100) { flag_up = true; up_y = listRect[j].Y; dow_y = listRect[i].Y; 75 break; } else if (listRect[j].Y > listRect[i].Y + 100) { flag_up = true; up_y = listRect[i].Y; dow_y = listRect[j].Y; break; } if (flag_up == true) break; } } for (int i = 0; i < listRect.Count; i+ +) { if (listRect[i].Y < up_y + 50 && listRect[i].Y > up_y - 50) { up.Add(listRect[i]); } else if (listRect[i].Y < dow_y + 50 && listRect[i].Y > dow_y - 50) { dow.Add(listRect[i]); } } if (flag_up == false) dow = listRect; for (int i = 0; i < up.Count; i++) 76 { for (int j = i; j < up.Count; j++) { if (up[i].X > up[j].X) { Rectangle w = up[i]; up[i] = up[j]; up[j] = w; } } } for (int i = 0; i < dow.Count; i++) { for (int j = i; j < dow.Count; j+ +) { if (dow[i].X > dow[j].X) { Rectangle w = dow[i]; dow[i] = dow[j]; dow[j] = w; } } } int x = 12; int c_x = 0; for (int i = 0; i < up.Count; i++) { Bitmap ch = grayframe.Clone(up[i], grayframe.PixelFormat); 77 Bitmap o = ch; string temp; if (i < || i > 2) { temp = Ocr(ch, false, true); // nhan dien so } else { temp = Ocr(ch, false, false);// nhan dien chu } zz += temp; c_x++; } zz += "\r\n"; for (int i = 0; i < dow.Count; i++) { Bitmap ch = grayframe.Clone(dow[i], grayframe.PixelFormat); //ch = con.Erodetion(ch); string temp = Ocr(ch, false, true); // nhan dien so zz += temp; } bienso = zz.Replace("\n", ""); bienso = bienso.Replace("\r", ""); } } #endregion Xu ly 78 private void btnOpenImg_Click(object sender, EventArgs e) { try { if (m_camera != null) m_camera.Dispose(); // Dong camera string imgPath; OpenFileDialog fp = new OpenFileDialog(); fp.Filter = "Image (*.bmp;*.jpg;*.png)|*.bmp;*.jpg;*.png"; if (fp.ShowDialog() == DialogResult.OK) { imgPath = fp.FileName; ptMainImg.Image = new Bitmap(imgPath); m_iMainImage = new Image(imgPath); btnDetect.Enabled = true; } } catch (Exception ex) { MessageBox.Show("Loi khong the mo file \nError:" + ex.Message); } } private void btnOpenCamera_Click(object 79 sender, EventArgs e) { if (m_camera == null) { m_camera = new VideoCapture(1); } m_mFrame = new Mat(); m_camera.ImageGrabbed += ProcessFrame; m_camera.Start(); btnDetect.Enabled = true; } private void ProcessFrame(object sender, EventArgs e) { try { m_camera.Retrieve(m_mFrame, 0); m_iMainImage = m_mFrame.ToImage(); ptMainImg.Image = m_iMainImage.AsBitmap(); if (m_bDetectLPT == true) { updateMainImageCallBack _mainImage = new updateMainImageCallBack(DetectLPT); this.Invoke(_mainImage, new object[] { m_iMainImage }); } } catch (Exception ex) { 80 Console.WriteLine("Khong the mo camera, kiem tra lai.\n Loi:" + ex.Message); } } } 81 ... ? ?Nghiên cứu, ứng dụng công nghệ xử lý ảnh nhận diện biển số xe? ?? làm đề tài nghiên cứu tốt nghiệp Mục đích nghiên cứu đề tài  Tìm hiểu phương pháp xác định nhận diện biển số xe ứng dụng thư viện... hiệu ứng dụng việc sử dụng cơng nghệ xử lý hình ảnh Cùng với tò mò, hào hứng với vấn đề nhận thấy công nghệ nhận diện biển số xe tự động Việt Nam có tiềm nên em chọn nghiên cứu đề tài ? ?Nghiên cứu,. .. trình nhận dạng biển số xe Trong đồ án này, em xin phát triển hệ thống nhận dạng biển số xe với số giới hạn: - Biển số biển số Việt Nam hệ thống sử dụng phạm vi nước - Hệ thống xử lý ảnh có chứa biển

Ngày đăng: 18/03/2022, 15:32

Từ khóa liên quan

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

Tài liệu liên quan