nhận dạng biển số xe với opencv và tesseract

40 2.2K 22
nhận dạng biển số xe với opencv và tesseract

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH: KHOA HỌC MÁY TÍNH – KHÓA 37 Đề tài NHẬN DẠNG BIỂN SỐ XE VỚI OPENCV VÀ TESSERACT Sinh viên: Võ Tấn Hƣng MSSV: 1111497 Khóa: K37 Cần Thơ, 5/2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH: KHOA HỌC MÁY TÍNH – KHÓA 37 Đề tài NHẬN DẠNG BIỂN SỐ XE VỚI OPENCV VÀ TESSERACT Giảng viên hướng dẫn: Sinh viên thực hiện: TS Phạm Nguyên Khang Võ Tấn Hưng MSSV: 1111497 Cần Thơ, 5/2015 LỜI CẢM ƠN Lời xin cảm ơn thầy Phạm Nguyên Khang nhiệt tình dẫn trình làm luận văn tốt nghiệp này! Tuy Thầy bận nhiều việc bỏ thời gian để nghe giải đáp thắc mắc nhiều lần Cảm ơn thầy! Cảm ơn quý thầy cô, thầy cố vấn học tập dạy bảo suốt thời gian năm Đại học! Thật dùng từ tả hết Những năm tháng dài đăng đẳng mà chớp mắt giấc mộng chứa nhiều kỷ niệm vui lẫn buồn Cảm ơn bạn lớp DI11Z6A1 chia sẻ với sống sinh viên Đại học! Thật khó nhọc tràn ngập niềm vui Cảm ơn tất bạn mà quen biết! Và cuối cảm ơn đến gia đình người thân tạo nhiều điều kiện cho học tập vui chơi môi trường Đại Học Cần Thơ! Kiến thức hạn hẹp chưa biết nhiều nên tài liệu luận vằn nhiều thiếu xót mong quý thầy cô bạn đọc giả đóng góp để tài liệu hoàn chỉnh Xin chân thành cảm ơn! I NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN  …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… II NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN  …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… III MỤC LỤC LỜI CẢM ƠN I NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN II NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN III MỤC LỤC IV DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT VI DANH MỤC HÌNH VII TÓM TẮT VIII ABSTRACT IX CHƢƠNG 1: GIỚI THIỆU 1.1 Hiện trạng vấn đề 1.2 Vì phải nhận dạng biển số xe? 1.3 Lịch sử giải vấn đề 1.4 Mục tiêu nội dung nghiên cứu 1.5 Phạm vi đề tài: CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Hƣớng tiếp cận nhận dạng biển số xe 2.1.1 Sử dụng ràng buộc hình học 2.1.2 Sử dụng máy học 2.2 Đặc trƣng Haar-like 2.3 AdaBoost 2.4 Xác định biển số nhờ giải thuật Cascade of Classifiers OpenCV 2.5 Nhận dạng chữ in với Tesseract OCR 2.5.1 Sơ lƣợc Tesseract 2.5.2 Cấu trúc Tesseract 10 2.6 Quy định biển số xe máy Việt Nam 11 CHƢƠNG 3: PHƢƠNG PHÁP NHẬN DẠNG BIỂN SỐ XE 12 3.1 Quy trình nhận dạng 12 3.2 Định vị biển số xe 12 3.2.1 Mô hình tổng thể 12 3.2.2 Thu thập liệu huấn luyện 13 3.2.3 Tạo tập tin vector cho ảnh dƣơng 14 3.2.4 Tạo tập tin mục cho ảnh âm 15 3.2.5 Huấn luyện liệu tạo tập tin xml 15 3.3 Hậu xử lý sau định vị 17 3.4 Nhận dạng ký tự với tesseract 18 CHƢƠNG 4: XÂY DỰNG CHƢƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE 20 4.1 Thiết kế giao diện 20 4.2 Mã nguồn chƣơng trình 21 4.2.1 Chức chọn ảnh 21 4.2.2 Chức định vị biển số xe 22 4.2.3 Chức hiển thị text 23 4.2.4 Định nghĩa hàm sử dụng liên quan 23 IV 4.3 Hƣớng dẫn sử dụng chƣơng trình 24 CHƢƠNG 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ 26 5.1 Môi trƣờng thực nghiệm 26 5.2 Thực nghiệm 26 5.3 Đánh giá 26 KẾT LUẬN 27 5.1 Kết đạt đƣợc 27 5.2 Một số hạn chế 27 5.3 Hƣớng khắc phục phát triển chƣơng trình 27 5.3.1 Khắc phục hạn chế 27 5.3.2 Hƣớng phát triển 28 TÀI LIỆU THAM KHẢO 29 V DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT Thuật ngữ từ viết tắt OpenCV AdaBoost SIFT Cascade Classifier Weak classifier Strong classifier SVM Feature Integral Image Run-time Cluster False alarm Positive Negative OCR Diễn giải Open Source Computer Vision Adaptive Boosting Scale-invariant feature transform Phân tầng Bộ phân loại Bộ phân loại yếu Bộ phân loại mạnh Máy học vector hỗ trợ Đặc trưng Tích phân ảnh Quá trình thực thi Cụm Tỷ lệ báo nhầm Dương Âm Optical Character Recognition Tesseract OCR MFC Công cụ nhận dạng chữ in Microsoft Foundation Class VI DANH MỤC HÌNH Hình 2.2 Bốn đặc trưng Haar-like Hình 2.2 Đặc trưng cạnh (edge features) Hình 2.2 Đặc trưng đường (line features) Hình 2.2 Đặc trưng xung quanh tâm (center-surround features) Hình 2.2 Cách tính Integral Image ảnh Hình 2.2 Vùng D ảnh Hình 2.3 Mô hình phân tần kết hợp phân loại yếu để xác định biển số xe Hình 2.3 Mô tả phân loại mạnh AdaBoost Hình 3.1 Quy trình nhận dạng 12 Hình 3.2.1 Mô hình định vị biển số xe 13 Hình 3.2.3 Công cụ Opject location 14 Hình 3.2.5 Huấn luyện tập tin bienso.xml 16 Hình 3.3 Hậu xử lý 17 Hình 3.4 Chạy tesseract 19 Hình 3.4 Kết chạy tesseract 19 Hình 4.1 Giao diện chương trình nhận dạng biển số xe 20 Hình 4.3 Chọn ảnh biển số xe 24 Hình 4.3 Định vị biển số xe 25 Hình 4.3 Nhận dạng ký tự biển số xe 25 VII TÓM TẮT Luận văn vào phần nhận dạng ký tự quang học với đề tài: “Nhận dạng biển số xe với OpenCV Tesseract” Tập trung nghiên cứu tìm hiểu hoạt động thư viện xử lý ảnh OpenCV công cụ nhận dạng Tesseract Để xây dựng ứng dụng trích xuất ký tự từ hình ảnh chứa biển số xe thành định dạng văn (text) Nhằm mục đích quản lý xe hiệu cung cấp nguồn liệu dồi cho công trình nghiên cứu khác Được lập trình công cụ Visual Studio 2010 Microsof sử dụng ngôn ngữ lập trình C++ với lập trình giao diện MFC (Microsoft Foundation Class) Chương trình nhận vào ảnh có chứa biển số xe Kết ký tự biển số xe nhận dạng chuyển thành định dạng văn Độ xác chương trình kiểm thử với 110 ảnh biển số xe kết sau:  Số lượng ảnh định vị là: 72/110  Số lượng ảnh định vị sai là: 38/110  Số lượng ảnh nhận dạng là: 30/110  Số lượng ảnh nhận dạng sai là: 80/110  Số lượng ký tự nhận dạng sai/biến số là: VIII Sau có tập tin mục location.txt tiến hành tạo file vec.vec công cụ createsample, cú pháp: opencv_createsamples –vec vec.vec –info location.txt –num 300 – w 40 –h 30 3.2.4 Tạo tập tin mục cho ảnh âm Dùng chương trình location để tạo tập tin mục bg.txt cho ảnh âm Nội dung tập tin có dạng: Anham1.jpg Anham2.jpg … Anhamn.jpg 3.2.5 Huấn luyện liệu tạo tập tin xml Đến giai đoạn quan trọng để trích đặc trưng biển số xe, cú pháp: opencv_traincascade –data bienso –vec vec.vec –bg bg.txt – numStages 15 –minHitRate 0.999 –maxFalseAlarmRate 0.5 –numPos 293 –numNeg 487 –w 40 –h 30 –mode ALL –precalcValBufSize 500 – precalcldxBufSize 250 Trong đó: -data bienso: đường dẫn đến thư mục ngõ chứa tầng huấn luyện cascade Khi huấn luyện xong tạo file bienso.xml -vec vec.vec: đường dẫn đến file vector ảnh dương -bg bg.txt: đường dẫn đến file mục ảnh âm -numStages 15: Số giai đoạn cascade đào tạo -minHitRate 0.999: tỉ lệ dự đoán tối thiểu -maxFalseAlarmRate 0.5: tỉ lệ dự đoán sai tối đa -numPos: số lượng ảnh dương -numNeg: số lượng ảnh âm -mode ALL: chọn đặc trưng Haar-like sử dụng đào tạo -precalcValBufSize 500: kích thước đệm cho giá trị 15 -precalcldxBufSize 250: kích thước đệm cho số -w 40 -h 30: phải giống với tập tin vec.vec tạo Hình 3.2.5 Huấn luyện tập tin bienso.xml Tập tin bienso.xml tạo kết trình huấn luyện dùng để định vị biển số chương trình Nội dung tập tin bienso.xml chứa bước nhận diện đặc trưng biển số xe Nhờ chương trình xác định biển số xe 16 3.3 Hậu xử lý sau định vị Sau định vị biển số xe cắt phân vùng Tuy nhiên ảnh chưa nhận dạng cần phải qua xử lý loại bỏ đường viền Chia ảnh thành ba phần thay đổi kích thước phù hợp tesseract nhận dạng tốt Loại bỏ đường viền Chia biển số thành phần Resize 100x30 Resize 100x30 Resize 200x30 Hình 3.3 Hậu xử lý Theo hình 3.3.1 để có ảnh không viền đen biển số cần áp dụng hàm tìm biên cung cấp thư viện OpenCV Sau tìm tất điểm thuộc biên vẽ hình chữ nhật màu đỏ sau loại bỏ lượng – 10 pixel Đến đây, ảnh loại bỏ viền đen Kế tiếp chia biển số thành ba phần Để chia thành ba phần phải chia làm hai phần trước Phần đầu nửa ảnh trên, phần cuối nửa ảnh Tiếp đến, từ nửa phần đầu ta chia dọc hai phần Vậy tất ba phần Vì phải chia vậy? 17 Do quy định biển số xe nên cần phải chia biển số để ràng buộc cho Tesseract nhận dạng tốt Ràng buộc sau: hai ký tự đầu bốn đến năm ký tự cuối kiểu số; hai ký tự lại số chữ Ngoài cần phải thay đổi kích thước ảnh Tesseract nhận dạng ký tự 3.4 Nhận dạng ký tự với tesseract Có thể nói giai đoạn cuối định ký tự nhận dạng Cú pháp: Tesseract filename outputfile –l lang –psm 0-10 Với: Filename tên ảnh cần nhận dạng ký tự Outputfile tập tin đầu chứa ký tự nhận dạng -l lang ngôn ngữ sử dụng nhận dạng -psm 0-10 lựa chọn loại mô hình nhận dạng Kích thước nhận dạng biển số xe tốt khoảng 200x60 pixel Ví dụ: Nhận dạng biển số với tên soso4.jpg Mở command prompt gõ vào sau: Tesseract soso4.jpg output.txt –psm 18 Hình 3.4 Chạy tesseract Không có –l, mặt định Tiếng Anh Kết nằm tập tin output.txt Hình 3.4 Kết chạy tesseract 19 CHƢƠNG 4: XÂY DỰNG CHƢƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE 4.1 Thiết kế giao diện Dùng Visual Studio 2010 tạo giao diện sau: Hình 4.1 Giao diện chương trình nhận dạng biển số xe Chú ý: chọn lập trình MFC 20 4.2 Mã nguồn chƣơng trình 4.2.1 Chức chọn ảnh Button thực gọi tiểu trình để chọn tập tin ảnh hàm load() MFC Sau chọn xong tập tin ảnh chương trình lưu đường dẫn vào biến path đọc hàm imread() OpenCV hiển thị lên hình nhờ hàm imshow() Nội dung button sau: void CND_BIEN_SO_XEDlg::OnBnClickedOk() { //Mo hop thoai load anh static CString Filter=_T("image files (*.bmp; *.jpg)|*.bmp; *.jpg|All Files (*.*)|*.*||"); CFileDialog Load(TRUE, _T("*.jpg"), NULL, OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_ HIDEREADONLY, Filter, NULL); Load.m_ofn.lpstrTitle=_T("Load Image"); if(Load.DoModal() == IDOK) { //Lay duong dan cua anh luu vao path path = Load.GetPathName(); std::string filename(path); src = cv::imread(filename,1);//Doc anh //Resize anh dung kich thuoc cua piture control va goi lenh hien thi cv::resize(src, dst, cv::Size(375,290), 0, 0, 1); Invalidate(); cv::imshow("Hien Thi Anh 1", dst); } } 21 4.2.2 Chức định vị biển số xe Button định vị biển số xe áp dụng tập tin bienso.xml tạo Vậy sử dụng tập tin nào? Để sử dụng cần tạo lớp casscadelassifer1 gồm phương thức như: loadcasscade() dùng cho đọc tập tin bienso.xml; detectAndDisplay() trả khung hình chữ nhật bao quanh biển số xe; xoavien() hậu xử lý sau định vị biển số xe Nội dung botton sau: void CND_BIEN_SO_XEDlg::OnBnClickedButton1() { //Khai bao bien ket qua cv::Mat frame; //Kiem tra anh dau vao if(dst.empty()) { this->MessageBox("Anh dau vao rong",0,MB_OK); } //Dinh vi bien so xe frame = src; Dinhdangkytu text1; Casscadelassifer1 truyvan; truyvan.loadcasscade(); if(!frame.empty()) { Invalidate(); truyvan.detectAndDisplay(frame); truyvan.xoavien(truyvan.trunggian);//xu ly vien anh } else { this->MessageBox("Anh frame rong", 0, MB_OK); } } 22 4.2.3 Chức hiển thị text Button hiển thị text đảm nhận gọi chương trình tesseract để thực nhận dạng ký tự Mã chương trình sau: void CND_BIEN_SO_XEDlg::OnBnClickedButton2() { //Goi ham nhan dang text CString str; CWnd* pWnd = GetDlgItem (IDC_EDIT1_TEXT); Dinhdangkytu text; Dinhdangkytu text1; Dinhdangkytu text2; cv::resize(toancuc1, text.image, cv::Size(100,30), 0, 0, 1); cv::resize(toancuc2, text1.image, cv::Size(100,30), 0, 0, 1); cv::resize(toancuc3, text2.image, cv::Size(200,30), 0, 0, 1); if(text.image.empty()||text1.image.empty()||text2.image.em pty()) { this->MessageBox("Anh vao rong", 0, MB_OK); } text.Hienthikytu(); text1.Hienthikytu1(); text2.Hienthikytu2(); str = text.strg + text1.strg + text2.strg; pWnd->SetWindowText(str); } 4.2.4 Định nghĩa hàm sử dụng liên quan Hàm detectAndDisplay(cv::Mat frame) thuộc lớp Casscadelassifier1 Trong hàm chủ yếu thực việc hiển thị khung hình chữ nhật màu đỏ có chứa biển số xe nhờ đặc trưng Haar-like thông qua hàm detectMultiScale() cắt vùng hiển thị lên hình Hàm loadcasscade() thuộc lớp Casscadelassifier1 Dùng để đọc tập tin đặc trưng biển số xe huấn luyện phần trước bienso.xml 23 Hàm xoavien(cv::Mat anh) thuộc lớp Casscadelassifier1 Hàm thực số công việc liên quan tới viền ảnh biển số xe, chia ảnh biển số xe thành hai phần thay đổi hai phần thành kích thước 200x30 Các hàm Hienthikytu() thuộc lớp Dinhdangkytu Hàm hoạt động nhờ vào công cụ tesseract cách kết hợp với số hàm tesseract Kết hàm chuỗi ký tự nhận dạng 4.3 Hƣớng dẫn sử dụng chƣơng trình Khi chọn button chương trình mở cửa sổ chọn tập tin ảnh có chứa biển số Ảnh hiển thị sau: Hình 4.3 Chọn ảnh biển số xe Sau chọn button chương trình thực định vị biển số xe đồng thời hậu xử lý sau định vị hiển thị kết lên sau: 24 Hình 4.3 Định vị biển số xe Cuối chọn Button chương trình gọi tesseract nhận dạng ký tự trả chuỗi ký tự Chuỗi ký tự thể sau: Hình 4.3 Nhận dạng ký tự biển số xe Chú ý: Trong trường hợp chưa chọn ảnh mà định vị biển số chương trình báo lỗi Nếu chưa chọn ảnh chưa định vị mà nhận dạng ký tự chương trình báo lỗi 25 CHƢƠNG 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ 5.1 Môi trƣờng thực nghiệm Thực nghiệm môi trường Windows Phiên Windows Utimate sử dụng chương trình thư viện OpenCV để huấn luyện mô hình nhận dạng biển số xe với việc sử dụng Tesseract để nhận dạng ký tự Chương trình thực Visual Studio 2010, ngôn ngữ lập trình C++ với thư viện hàm OpenCV hàm Tesseract như: opencv_core249.lib, opencv_highgui249.lib, opencv_imgptoc249.lib, opencv_objdetect249.lib, libtesseract302.lib 5.2 Thực nghiệm Chương trình qua lần chạy kiểm thử với 110 ảnh kết sau: Số lượng ảnh định vị là: 72/110 đạt 65,5% Số lượng ảnh định vị sai là: 38/110 đạt 34,5% Số lượng ảnh nhận dạng ký tự là: 30/110 đạt 27,3% Số lượng ảnh nhận dạng ký tự sai là: 80/110 đạt 72,7% Trung bình số ký tự đúng/biển số xe là: 5.3 Đánh giá Theo kết kiểm thử chương trình nhận dạng biển số xe chưa tốt Phần định vị biển số xe tương đối tốt Phần nhận dạng ký tự tính theo số lượng ký tự đúng/biển số trừ trường hợp định vị sai số lượng ảnh nhận dạng ký tự là: 30/72 đạt 41,7% Kết cho thấy có phần khả quan (Do trình kiểm thử ảnh định vị sai tính vào phần nhận dạng ký tự sai) 26 KẾT LUẬN 5.1 Kết đạt đƣợc Xây dựng chương trình nhận dạng biển số xe theo yêu cầu đề tài đặt Bao gồm việc định vị biển số nhận dạng ký tự Ứng dụng số hàm OpenCV Tesseract Cũng cố số kiến thức xử lý ảnh, lập trình C++ 5.2 Một số hạn chế Tuy hoàn thành đề tài tránh khỏi số sai sót Chương trình nhận dạng biển số chất lượng Xét phương diện định vị biển số chưa tốt, nhiều lỗi Dữ liệu đào tạo nhỏ nên vấn đề trích đặt trưng biển số chưa hoàn hảo dẫn đến định vị biển số xe kém, không xác Xét nhận dạng ký tự biển số xe không thực xác, số ký tự nhận dạng sai Vì không can thiệp trực tiếp vào nhận dạng ký tự mà dùng mặc định công cụ Kiến thức lập trình chưa tinh thông nên lập trình nhiều lỗi, chưa tiết kiệm RAM CPU Bắt lỗi chương trình có vấn đề thiếu sót 5.3 Hƣớng khắc phục phát triển chƣơng trình 5.3.1 Khắc phục hạn chế Cần thu thập thêm nhiều hình ảnh biển số xe khoảng 2000-3000 ảnh (nhớ rằng: ảnh âm gấp đôi ảnh dương nên khoảng 4000-6000 ảnh), huấn luyện lại tập tin cascade.xml Có thể trình trích đặt trưng tương đối lâu Về nhận dạng ký tự cần đào tạo lại tập tin eng.traindata Tesseract Với liệu ký tự có biển số xe tập ảnh dương Tốn nhiều thời gian cho công việc 27 Kiến thức lập trình cần trao dồi thêm Tham khảo lập trình viên giỏi khác để tìm lỗi cho chương trình cải thiện tốc độ xử lý 5.3.2 Hƣớng phát triển Về sau chương trình hoạt động tốt cần tích hợp thêm camera để thu nhận ảnh trực tiếp khổng phải mở tập tin ảnh lên nhận dạng Cần lưu ký tự nhận dạng vào sở liệu để có liệu đối chiếu Đưa hệ thống vào hệ thống giữ xe thông minh hay trạm kiểm soát 28 TÀI LIỆU THAM KHẢO [1] Võ Hùng vĩ, luận văn tốt nghiệp Đại Học: Xây dựng hệ thống hỗ trợ giữ xe thông minh [2] Lương Văn Đô, luận văn tốt nghiệp Đại Học: Nhận dạng ký tự Tesseract [3] Bùi Văn Thoảng, luận văn thạc sĩ công nghệ thông tin: Nhận dạng trích số xe [4] Rút trích văn từ tập tin hình ảnh với Tesseract “Trường ĐH Công nghiệp thực phẩm Tp HCM” [5] www.ieev.org/2010/03/adaboost-haar-features-face-detection.html [6] www.baogiaothong.vn/nhung-dieu -nen-biet-ve-bien-kiem-soat-xe-o-vietnam-d75308.html [7] http://en.wikipedia.org/wiki/Haar-like_features [8] http://www.comvisap.com/2012/01/datn2.html [9] http://opencv.org [10] http://code.google.com/p/tesseract-ocr 29 [...]... Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trưng Haar-like theo mô hình phân tầng (cascade) như sau: [5] 6 Vùng ảnh con cần xét Không là biển số xe h1 Là biển số xe Không là biển số xe h2 Là biển số xe Không là biển số xe Không là biển số xe h3 Không là biển số xe hn Là biển số xe Biển số xe Hình 2.3 1 Mô hình phân tần kết hợp các phân loại yếu để xác định biển số xe Trong... PHƢƠNG PHÁP NHẬN DẠNG BIỂN SỐ XE 3.1 Quy trình nhận dạng Ảnh chứa biển số xe Định vị biển số xe Hậu xử lý sau khi định vị Nhận dạng ký tự với tesseract Ký tự Hình 3.1 1 Quy trình nhận dạng Để giải quyết được vấn đề nhận dạng biển số xe cần phải lần lượt thực hiện các giai đoạn sau: Định vị biển số xe là giai đoạn quang trọng nhất giúp chương trình có thể xác định đúng vị trí của biển số xe trong một... bằng OpenCV  Nhận dạng ký tự thông qua Tesseract 1.5 Phạm vi đề tài: Nghiên cứu kỹ thuật nhận dạng biển số xe Lý thuyết giải thuật máy học Boosting (thuật toán AdaBoost), các đặc trưng Haar-like, mô hình cascade, công cụ nhận dạng chữ in Tesseract OCR Nhận dạng trên biển số xe máy ở Việt Nam Biển số xe máy là của doanh nghiệp hoặc cá nhân 2 CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Hƣớng tiếp cận nhận dạng biển số. .. hiện cho việc định vị biển số xe thông qua một mô hình: 12 Thu thập dữ liệu (ảnh biển số xe và ảnh nền) Mô hình (bienso.xml) Tách biển số, tạo chỉ mục (location.txt) Tách ảnh Ảnh nền, tạo chỉ mục (bg.txt) Học với opencv_ traincascade (trong OpenCV) Ghi Đọc Kết quả Chương trình Ảnh có chứa biển số xe Khoanh vùng biển số xe Hình 3.2.1 1 Mô hình định vị biển số xe Để định vị được biển số xe, trước tiên phải... cải tiến và tìm ra phương pháp mới cho việc nhận dạng biển số xe Chẳng hạn như đề tài “xây dựng hệ thống hỗ trợ giữ xe thông minh” của Võ Hùng Vĩ năm 2014, “ứng dụng xử lý ảnh trong thực tế với thư viện OpenCV phần tự động nhận dạng biển số xe của Nguyễn Văn Long 1.4 Mục tiêu và nội dung nghiên cứu Mục tiêu: Xây dựng hệ thống nhận dạng biển số xe tự động Nội dung:  Định vị được biển số xe từ một... đề xảy ra thì họ không biết nên kiểm tra từ đâu Hoặc với cách quản lý bằng việc chụp ảnh rồi lưu trữ thì gặp khó khăn về bộ nhớ Vì vậy nhằm cải thiện tình hình cần có một hệ thống hỗ trợ và đó là hệ thống nhận dạng biển số xe Cụ thể hơn chính là đề tài: Nhận dạng biển số xe với OpenCV và Tesseract 1 1.3 Lịch sử giải quyết vấn đề Nhận dạng biển số xe đã được các bậc anh chị khóa trước đã làm Không chỉ... ngôn ngữ sử dụng nhận dạng -psm 0-10 là lựa chọn một loại mô hình nhận dạng Kích thước nhận dạng biển số xe tốt nhất là khoảng 200x60 pixel Ví dụ: Nhận dạng biển số với tên soso4.jpg Mở command prompt và gõ vào như sau: Tesseract soso4.jpg output.txt –psm 6 18 Hình 3.4 1 Chạy tesseract Không có –l, mặt định là Tiếng Anh Kết quả nằm trong tập tin output.txt Hình 3.4 2 Kết quả chạy tesseract 19 CHƢƠNG... là kiểu số; hai ký tự còn lại là số và chữ Ngoài ra cũng cần phải thay đổi kích thước của ảnh thì Tesseract mới có thể nhận dạng đúng ký tự 3.4 Nhận dạng ký tự với tesseract Có thể nói đây là giai đoạn cuối cùng quyết định ký tự sẽ được nhận dạng Cú pháp: Tesseract filename outputfile –l lang –psm 0-10 Với: Filename là tên ảnh cần nhận dạng ký tự Outputfile là tập tin đầu ra chứa ký tự nhận dạng được... luyện và dùng để định vị biển số trong chương trình Nội dung tập tin bienso.xml chứa các bước nhận diện đặc trưng của biển số xe Nhờ đó chương trình có thể xác định được biển số xe 16 3.3 Hậu xử lý sau khi định vị Sau khi định vị được biển số xe và cắt phân vùng đó Tuy nhiên ảnh vẫn chưa nhận dạng được cần phải qua xử lý loại bỏ đường viền Chia ảnh thành ba phần và thay đổi kích thước phù hợp để cho tesseract. .. 1 Chọn ảnh biển số xe Sau đó chọn button chương trình thực hiện định vị biển số xe và đồng thời hậu xử lý sau khi định vị rồi hiển thị các kết quả lên màn hình như sau: 24 Hình 4.3 2 Định vị biển số xe Cuối cùng chọn Button chương trình gọi tesseract và nhận dạng ký tự rồi trả về một chuỗi ký tự Chuỗi ký tự được thể hiện trên màn hình như sau: Hình 4.3 3 Nhận dạng ký tự trên biển số xe Chú ý: Trong ... [5] Vùng ảnh cần xét Không biển số xe h1 Là biển số xe Không biển số xe h2 Là biển số xe Không biển số xe Không biển số xe h3 Không biển số xe hn Là biển số xe Biển số xe Hình 2.3 Mô hình phân... PHÁP NHẬN DẠNG BIỂN SỐ XE 3.1 Quy trình nhận dạng Ảnh chứa biển số xe Định vị biển số xe Hậu xử lý sau định vị Nhận dạng ký tự với tesseract Ký tự Hình 3.1 Quy trình nhận dạng Để giải vấn đề nhận. .. Định vị biển số xe 25 Hình 4.3 Nhận dạng ký tự biển số xe 25 VII TÓM TẮT Luận văn vào phần nhận dạng ký tự quang học với đề tài: Nhận dạng biển số xe với OpenCV Tesseract Tập

Ngày đăng: 12/01/2016, 19:56

Từ khóa liên quan

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

Tài liệu liên quan