Đồ án tốt nghiệp: Bài toán nhận dạng biển số xe

91 118 1
Đồ án tốt nghiệp: Bài toán 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

Hiện nay, với sự phát triển kinh tế xã hội đã bùng nổ số lượng phương tiện giao thông. Gây ra những khó khăn trong công tác quản lý, xử lý vi phạm giao thông mà nguồn nhân lực con người khó có thể đảm đương được. Vì vậy vần để cần thiết là có một hệ thông quản lý, xử lý vi phạm giao thông tự động. Để xây dựng hệ thống quản lý giao thông tự động thì “ Bài toán nhận dạng biển số xe” là tiền đề để xây dựng những mô hình quản lý đó. Tuy nhiên, hiện nay ở Việt Nam nhưng hệ thống quản lý đó chưa nhiều và lĩnh vực nhận dạng còn đang phát triển.

Luận văn Đề tài: Bài toán nhận dạng biển số xe Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin MỤC LỤC MỞ ĐẦU CHƯƠNG Tổng quan nhận dạng 1.1 - Tính chất cần thiết toán nhận dang 1.1.1 Tính chất 1.1.2 Sự cần thiết 1.2 - Không gian biểu diễn đối tượng, không gian diễn dịch 10 1.2.1 Không gian biểu diễn đối tượng 10 1.2.2 Không gian diễn dịch 10 1.3 - Mơ hình chất trình nhận dạng 11 1.3.1 Mơ hình 11 1.3.2 Bản chất trình nhận dạng 12 CHƯƠNG Xử lý ảnh openCV 15 2.1 - Xử lý nhị phân 16 2.2 - Giảm nhiễu 18 2.2.1 Bộ lọc hộp thông thường (Normalized Box filter) 19 2.2.2 Bộ lọc gaussian (Gaussian Filter) 20 2.2.3 Bộ lọc Median (Median Filter): 21 2.2.4 Bộ lọc song phương (Bilateral filter) 22 2.2.5 Filter2D 23 2.3 - Biên phương pháp tìm biên 24 2.3.1 Khái niệm biên: 24 2.3.2 Phương pháp Gradient 24 2.3.3 Toán tử la bàn 29 2.3.4 Laplace 31 2.3.5 Tách sườn ảnh theo Canny 33 SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin 2.4 - Biến đổi Hough 35 2.5 - Một số hàm thư viện OpenCV 41 2.5.1 Tải ảnh hiển thị ảnh 41 2.5.2 Chuyển ảnh màu sang ảnh xám 42 2.5.3 Tìm đối tượng findContours 43 CHƯƠNG Bài toán nhận dạng biển số xe 45 3.1 - Khái niệm nhận dạng biển số xe 45 3.1.1 Khái niệm 45 3.1.2 Ứng dụng 47 3.1.3 Phân loại biển số xe 48 3.2 - Một số hướng giải toán nhận dạng biển số xe 52 3.2.1 Hướng tiếp cận phát triển vùng 52 3.2.2 Hướng tiếp cận dò biên biến đổi Hough 53 3.2.3 Phân ngưỡng tím vùng đối tượng (hướng tiếp cận đồ án) 54 3.3 - Hướng giải 54 3.4 - Phát vùng chứa biển số 56 3.4.1 Giai đoạn 1: Biến đối ảnh xám lọc ảnh 57 3.4.2 Giai đoạn 2: Tiến hành phân ngưỡng phát biên 57 3.4.3 Giai đoạn 3: Tìm đường bao đối đượng 58 3.4.4 Giai đoạn 4: Tách vùng biển số 59 3.5 - Tách riêng ký tự 60 3.5.1 Giai đoạn 1: Tiến hành phân ngưỡng 61 3.5.2 Giai đoạn 2: Tìm vùng đối tượng 61 3.5.3 Giai đoạn 3: Tìm tách vùng ký tự 61 3.6 - Nhận dạng ký tự quang học ( mạng nơron) 61 3.6.1 Mô hình nơron nhân tạo 62 3.6.2 Mạng nơron 63 SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin 3.6.3 Mạng Kohonen 66 3.6.4 Mạng nơron nhiều lớp lân truyền ngược sai số 71 CHƯƠNG Kết hướng phát triển toán nhận dạng biển số xe 74 4.1 - Kết hướng giải “phân ngưỡng tìm đối tượng” 74 4.1.1 Kết dùng với phương pháp tìm biên Canny kết hợp với tìm vùng đối tượng 75 4.1.2 Kết dùng với phương pháp phân ngưỡng kết hợp tìm vùng đối tượng 75 4.1.3 Kêt luận 76 4.2 - Hướng phát triển toán nhận dạng biền số xe 82 4.2.1 Nhận xét 82 4.2.2 Hướng phát triển toán 82 KẾT LUẬN 84 TÀI LIỆU THAM KHẢO 85 Phụ lục 86 SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin Danh mục hình vẽ Hình 1.1 Nhận dạng vân tay máy ATM Hình 1.2 Phiên dịch viên Jibbigo Hình 1.3 Sơ đồ tổng quan hệ nhận dạng 14 Hình 2.1 Quá trình xử lý ảnh 15 Hình 2.2 Các bước hệ thống xử lý ảnh 15 Hình 2.3 (a) ngưỡng 40,(b) ngưỡng 121 16 Hình 2.4 Sử dụng lọc hộp thơng thường 20 Hình 2.5 sử dụng lọc Gaussian 21 Hình 2.6 sử dụng lọc Median 22 Hình 2.7 sử dụng lọc song phương 23 Hình 2.8 filter2D nhân thay đổi tăng dần từ trái qua phải 24 Hình 2.9 Tìm biên chức Sobel OpenCV 29 Hình 2.10 Mặt nạ hướng theo Kirsh 29 Hình 2.11 Tìm biên Laplace 33 Hình 2.12 Tìm biên theo Canny 35 Hình 2.13 Trục tọa độ đề qua điểm 36 Hình 2.14 Trục tọa độ đề 36 Hình 2.15 Hệ tọa độ cực 37 Hình 2.16 Đường thẳngHough tọa độ cực 38 Hình 2.17 Kết hợp HoughLines với HoughCircles 40 Hình 2.18 Tìm thấy hình trịn mẫu có hình trịn 41 Hình 2.19 Tải ảnh vào cửa sổ windows 42 Hình 2.20 Chuyển ảnh màu sang ảnh xám 43 Hình 2.21 sử dụng findContours tìm đối tượng 44 Hình 3.1 Hệ thống tự động nhận dạng biển số xe 46 Hình 3.2 Biển số 52 SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Cơng Nghệ Thơng Tin Hình 3.3 Một số loại biển số xe thông dụng 54 Hình 3.4 (a) ảnh đầu vào (b) ảnh xử lý xám lọc song phương 57 Hình 3.5 ảnh sau tiến hành phân ngượng 58 Hình 3.6 Tìm đường bao đối tượng 59 Hình 3.7 Sau lọc dặc điểm biển số cắt riêng vùng biển số 60 Hình 3.8 Các ký tự cắt sau tìm thấy vùng biển số 61 Hình 3.9 Mơ hình nơron nhân tạo 62 Hình 3.10 Mạng nơron truyền thẳng nhiều lớp 64 Hình 3.11 Mạng nơron hồi quy 64 Hình 3.12 Học tham số có giám sát 66 Hình 3.13 Lưới nơron 67 Hình 3.14 Ánh xạ mặt cầu vào lưới nơron 15x15 71 Hình 3.15 Mạng nơron lớp 72 Hình 4.1 Biển khơng nhận dạng 77 Hình 4.2 Vùng biển số trình phân ngưỡng 80 Hình 4.3 Mức xám thấp làm vùng biển số bị trình phân ngưỡng 80 Hình 4.4 Những biển số khơng nhận đủ ký tự 82 SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin Danh mục bảng Bảng Tên bảng Trang Bảng Chi tiết tìm vùng biển số sử dụng dị biên Canny tìm vùng đối tượng 77 Bảng Chi tiết tìm vùng biển số sử dụng hướng phân ngưỡng tìm vùng đối tượng 78 Tìm vùng biển số khoảng ngưỡng khác Bảng tăng dần.(biển tìm thấy khoảng ngưỡng trước 79 đối tượng xét khoảng ngưỡng sau) Tìm vùng biển số ngưởng khác giảm dần Bảng (biển tìm thấy khoảng ngưỡng trước 80 đối tượng xét khoảng ngưỡng sau) Chi tiết khoảng ngưỡng phát biển số.( Bảng biển tách ly thành công khoảng ngưỡng trước không 82 tính cho khoảng ngưỡng sau) SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin MỞ ĐẦU Hiện nay, với phát triển kinh tế xã hội bùng nổ số lượng phương tiện giao thông Gây khó khăn cơng tác quản lý, xử lý vi phạm giao thông mà nguồn nhân lực người khó đảm đương Vì vần để cần thiết có hệ thơng quản lý, xử lý vi phạm giao thông tự động Để xây dựng hệ thống quản lý giao thơng tự động “ Bài toán nhận dạng biển số xe” tiền đề để xây dựng mơ hình quản lý Tuy nhiên, Việt Nam hệ thống quản lý chưa nhiều lĩnh vực nhận dạng cịn phát triển Từ thực tế đó, thời gian làm đố án tốt nghiệp em định lựa chọn tìm hiểu tốn “ nhận dạng” trọng vào việc nhận dạng biển số xe Để phục vụ cho bước đầu hệ thống quản lý phương tiện giao thông Việt Nam Trong điều kiện lực thời gian có hạn, nên báo cáo em khơng tránh khỏi sai sót Em kình mong thầy bạn đóng góp ý kiến để em chỉnh sửa bổ sung phần thiếu sót để em hồn thiện đề tài Em xin chân thành cảm ơn Thầy Vũ Anh Dũng bạn hết lòng giúp đỡ, bảo để em hồn thành tốt đồ án tốt nghiệp Trong báo cáo đồ án lần em trình bày thành chương sau Chương I: Tổng quan nhận dạng Chương II Xử lý ảnh OpenCV Chương III Bài toán nhận dạng biển số Chương IV Kết hướng phát triển toán nhận dạng biển số xe SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin CHƯƠNG Tổng quan nhận dạng 1.1 - Tính chất cần thiết tốn nhận dang 1.1.1 - Tính chất Nhận dạng q trình phân loại đối tượng biểu diễn theo mơ hình gán cho chúng vào lớp (gán đối tượng tên gọi) dựa theo quy luật mẫu chuẩn Quá trình nhận dạng dựa vào mẫu học biết trước gọi nhận dạng có thầy (supervised learning); trường hợp ngược lại gọi học không thầy (non supervised learning) - Nhận dạng toán quan trọng ngành thị giác máy tính 1.1.2 Sự cần thiết - Cùng với phát triển không ngừng kinh tế xã hội ngành kỹ thuật Đòi hỏi quản lý xử lý thơng tin xác mà vượt q sức người Vì cần có máy móc động làm giảm tải thay cơng việc nặng nhọc, địi hỏi xác cao nhàm chán cho người Việc giúp máy móc nhận dang (thu thập , phân loại thơng tin) cịn người giúp máy móc hoạt động hiệu giống người với độ xác cao nhiếu - Một số ứng dụng toán nhận dạng Nhận dạng dấu vân tay: Việt Nam sử dụng việc chấm cơng, điểm danh làm khóa an tồn cho loại cửa sắt, máy tính xách tay… Nó tạo tiện dụng an toàn SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp Khoa Cơng Nghệ Thơng Tin Hình 1.1 Nhận dạng vân tay máy ATM Thay phải nhập mã pin máy ATM bạn việc đặt ngón tay trỏ lên giao dịch bắt đầu Nhận dạng giọng nói: ứng dụng tích hợp nhiều sản phẩm, bạn điều khiển thiết bị qua giọng nói thay phải thao tác trực tiếp tay, mơ hình nhà thơng minh, điện thoại… Ví dụ : ứng dụng Jibbigo điện thoại động , Ứng dụng dịch tiếng nói người sử dụng với ngôn ngữ khác tiếng Anh, Pháp, Đức, Nhật, Hàn Quốc, Philipin, Tây Ban Nha, Trung Quốc Hình 1.2 Phiên dịch viên Jibbigo Nhận dạng biển số xe: giới thiệu Chương III SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 76 Khoa Công Nghệ Thơng Tin Bảng 2: Chi tiết tìm vùng biển số sử dụng hướng phân ngưỡng tìm vùng đối tượng Loại biển Số biển mẫu Số biển bị lỗi Tỉ lệ tìm Biển số trắng chữ đen 57 98,3% Biển số xanh chữ trắng 10 90% Biển số đỏ chữ trắng 20% Tổng: 72 91,6% Nhận xét: Kết nhận dạng vùng ngưỡng tốt chưa nhận dạng tốt biển đỏ Tuy nhiên ngưỡng rộng làm chậm q trình tính tốn Nên cần tìm ngưỡng phù hợp Trong mục (2 3) b Tách ly ký tự Trong 72 biển có 11 biển khơng cách ly toàn ký tự Tỉ lệ thành công đạt 84.7% 4.1.3 Kêt luận Từ kết mục 4.1.1 mục 4.1.2 ta thấy tỷ lệ thành cơng theo hướng tiếp cận “ phân ngưỡng tìm vùng đối tượng” cao hướng tiếp cận “dò biên tìm vùng đối tượng” Sau em tiến hành tìm ngưỡng quét hợp lý SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 77 Khoa Cơng Nghệ Thơng Tin Hình 4.1 Biển khơng nhận dạng b Tìm vùng biển số với khoảng ngưỡng rộng 10 ngưỡng (tăng dần) Trong phần tìm xem biển phát vùng ngưỡng khác Và xét vùng phát bảng Nhằm phát vùng ngưỡng không phát ngưỡng biển để loại bỏ SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 78 Khoa Cơng Nghệ Thơng Tin Bảng 3: Tìm vùng biển số khoảng ngưỡng khác tăng dần.(biển tìm thấy khoảng ngưỡng trước khơng phải đối tượng xét khoảng ngưỡng sau) Khoảng ngưỡng Biển trắng chữ đen (biển) Biển xanh chữ trắng (biển) Biển đỏ chữ trắng (biển) 100-110 30 110-120 0 120-130 0 130-140 0 140-150 0 150-160 0 160-170 170-180 180-190 0 190-200 0 200-210 0 210-220 0 Nhận xét: Như với khoảng không phát biển ta loại bỏ để tiếp tục tìm vùng quét hợp lý Tìm vùng biển số vùng ngưỡng rộng 10 giảm dần loại bỏ phần theo nhận xét mục a c Ở mục với mục đích ta tìm vùng ngưỡng mà vùng phát biển khơng cần thiết vùng biển số tìm thấy vùng ngưỡng khác Bảng SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 79 Khoa Cơng Nghệ Thơng Tin Bảng 4: Tìm vùng biển số ngưởng khác giảm dần (biển tìm thấy khoảng ngưỡng trước đối tượng xét khoảng ngưỡng sau) Khoảng ngưỡng Biển trắng chữ đen (biển) Biển xanh chữ trắng (biển) Biển đỏ chữ trắng (biển) 210-200 28 0 200-190 0 190-180 1 180-170 170-160 0 150-140 130-120 0 120-110 110-100 0 Nhận xét: Khơng có phần loại bỏ  Nhận xét: Từ mục (2) (3) ta thấy khoảng ngưỡng cần quét là: 100-130 140-150 160-210 tỉ lệ tìm vùng biển thành cơng khơng giảm thấy chưa tìm vùng ngưỡng hợp lý để nhận dạng biển đỏ Ngun nhân gây lỗi: Từ ảnh khơng thể tìm thấy vùng biển số hình 4.1 ta đưa nguyên nhân sau: SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 80 Khoa Công Nghệ Thông Tin Vùng biển số có độ tương phản thấp với ảnh Trong hình 4.2 thấy vùng biển số sau phân ngưỡng (hình bên trái) chưa làm bật vùng biển số khiến trình tìm vùng biển số ( hình bên phải ) khơng thể nhận thấy vùng biển số Hình 4.2 Vùng biển số trình phân ngưỡng Vùng biển số có ngưỡng thấp 100 ( mức đặt chương trình) Khi vùng biển có mức ngưỡng ( mức xám ) thấp ngưỡng chương trình đặt bị trình phân ngưỡng loại bỏ hình 4.3 làm trình tìm vùng biển số khơng thể phát Hình 4.3 Mức xám thấp làm vùng biển số bị trình phân ngưỡng SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp d 81 Khoa Cơng Nghệ Thơng Tin Tìm ngưỡng cho giai đoạn cách ly ký tự Bảng Chi tiết khoảng ngưỡng phát biển số.( biển tách ly thành công khoảng ngưỡng trước không tính cho khoảng ngưỡng sau) Ngưỡng Cach ly biển thành công Ngưỡng Cách ly biển thành công 100-110 32 160-170 110-120 170-180 120-130 180-190 130-140 190-200 140-150 200-210 150-160 Nhận xét: Khoảng ngưỡng cần quét là: 100-170 200-210 Lý lỗi Bị che phần nhỏ Hình 4.4 (a) làm phần ký tự ký tự dích liền với đường viền biển làm trình tìm đối tượng nhầm chữ số viền biển đối tượng Ký tự không rõ Hình 4.4 (b) bóng sáng ký tự bị mờ phần làm cho trình tìm đối tượng phát nhiều đối tượng mà không phát vùng chữ số - Chữ bị bóng kính lắp bị đèn chiếu Hình 4.4 (c) Ảnh có nhiều nhiễu khơng rõ hình 4.4 (d) nhiều nhiễu làm ký tự gần tính gần đối tượng SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 82 Khoa Công Nghệ Thông Tin Hình 4.4 Những biển số khơng nhận đủ ký tự 4.2 - Hướng phát triển toán nhận dạng biền số xe 4.2.1 Nhận xét Từ kết thu (phần 4.1) em thấy giải toán nhận dạng biển số xe theo hướng “ phân ngưỡng tìm đối tượng” có ưu điểm sau: Ưu điểm: Thuật tốn cài đặt nhanh, tìm vùng biển số cách ly ký tự với tỉ lệ thành công cao ( biển số thơng thường), tìm ảnh tự nhiên, vùng biển số bị nghiêng Nhược điểm: Nhận dạng với biển số có tương phản với ảnh thấp biển đỏ, bị mờ, biển số có đường viền mảnh, biển số có lắp thiết bị trang trí, biển bị bóng lóa ánh sáng, biển có phần chữ số khơng rõ ràng Vì vậy, để tốn phát huy hiệu tốt thiết bị quan sát cần đặt vị trí phù hợp Để thu ảnh khơng có bóng sáng thị toàn biển số xe Phương pháp xử lý ảnh dùng vào việc quan sát quản lý giao thông 4.2.2 Hướng phát triển toán - Nâng cao hiệu chương trình, tách ly kí tự biển số trường hợp biển số bị nhiều nhiễu, mát thông tin nhiễu từ điều kiện môi trường, tìm vùng biển số ảnh có độ tương phản biển số thấp Đặc biệt biển xe có màu đỏ chữ trắng - Phát triển chương trình thành module phần cứng Có khả tương thích với thiết bị quan sát camera SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp - 83 Khoa Công Nghệ Thơng Tin Kết hợp chương trình với chương trình nhận dạng khác để hỗ trợ tốt cho việc quản lý phương tiện giao thơng Ví dụ: kết hợp với chương trình nhận dạng chữ viết để đưa biển số dạng ký tự máy tính giúp công việc quản lý bến bãi… - Nghiên cứu theo hướng ứng dụng cụ thể : giám sát phương tiện giao thông, xử lý vi phạm giao thông, quản lý xe bãi giữ xe, kho vật tư… SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 84 Khoa Công Nghệ Thông Tin KẾT LUẬN Sự phát triển cơng nghệ thơng tin có tác động tích cực đến nhiều mặt đời sống xã hội phải kể tới lĩnh vực giám sát tự động Trong giám sát tự động, việc giám sát phương tiện giao thông vần đề trội Nhiều phủ, thành phố giớ xây dựng hệ thống giám sát tự động phương tiện giao thơng Và hệ thống giám sát lấy biển số xe mục tiêu giám sát Ở nước ta, hệ thống giám sát tự động nói cung hệ thống nhận dạng biển số xe nói riêng trọng nhiên cịn lĩnh vực cần nhiều cơng sức đầu tư để cải thiện phương pháp tỷ lệ tìm biển thành cơng Đa phần cơng tác quản lý, xử lý phương tiện giao thông cần nhân lực người Báo cáo nhằm mục đích tìm hiểu tốn nhận dạng “Biển số xe” với mục đích để quản lý, giám sát phương tiện giao thơng Với mục đích phát vùng biển số thời gian có hạn nên em chưa cài đặt nhận dạng ký tự quang học ứng dụng Em tương lai khơng xa, hệ thống nhận dạng biển số xe nói riêng nhận dạng nói chung sử dụng rộng rãi với độ xác cao phục vụ cho nhiều lĩnh vực sống để giám sát, quản lý công việc thay cho người SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 85 Khoa Công Nghệ Thông Tin TÀI LIỆU THAM KHẢO Tiếng việt [1] Nhận môn xử lý ảnh số Ths Lương Mạnh Bá, Pts Nguyễn Thanh Thủy NXB KHKT 2003 [2] Đồ án tốt nghiệp chị Phạm Thị Thanh Thủy trường Đại học Dân Lập Hải Phòng năm 2009 Tiếng anh [3] learing OpenCV_ computer vission whit the OpenCV Library_ Gary Breadki & Kaebler [4]http://docs.opencv.org [5]http://code.gurusvn.com [6] http://vi.wikipedia.org SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 86 Khoa Công Nghệ Thông Tin Phụ lục Hướng dẫn cài đặt cấu hình OpenCV OpenCV (Open Source Computer Vision) thư viện chức lập trình cho ngành thị giác máy tính OpenCV phát hành theo BSD license miễn phí cho hai học thuật thương mại OpenCV dùng với ngôn ngữ C++, C, Python Java(Android) hỗ trợ hệ điều hành Windows, Liniux, Android Mac OS Trong thư viện OpenCV có 2500 thuật tốn tối ưu Việc cấu hình OpenCV với Microsoft Visual Studio 2010 tương đối khó khăn cho người sử dụng Sau em xin hướng dẫn cài đặt cấu hình OpenCV phiên 2.4 với Microsoft Visual Studio 2010 32 bit Hướng dẫn cài đặt OpenCV Tải cài đặt Tải OpenCV 2.4 trang chủ http://opencv.org Cài đặt thực chất giải nén Bạn nên giải nén thu mục đơn giản ví dụ : hướng dẫn tối giải nén thành D:\opencv Tải vẻ cài đặt Cmake Tải Cmake trang chủ http://www.cmake.org tiến hành cài đặt bình thường Chạy cmake_gui Trong mục “where is the source code” chọn thư mục (D:\opencv) Trong mục “where to build the binarines” chọn D:\opencv\builds ( tự tạo thư mục này) Click Configure chọn hình sau: I Một bạn tùy chọn bạn click “Generate” SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 87 Khoa Công Nghệ Thông Tin Mở OpeCV.sln lên Visual Studio 2010 để tiến hành thiết lập Chọn “Debug” Solution configuration Và tiến hành biên dịch Tương tự cho thiết lập “Release” Thêm vào đường dẫn vào environment variavles: D:\opencv\builds\bin\Release D:\opencv\builds\bin\Debug Control Panel  System  Advanced System Settings  Environment variables thêm thực mục vào biến "path" II Hướng dẫn cấu hình OpCV với Microsoft Visual Studio 2010 Tạo dự án “ win 32 console applicationg” Microsoft Visual Studio 2010 Trong Solution Explprer, chọn chuột phải vào project chọn properties a Chọn VC++ Directories - Trong mục Include Diretories thêm hai thư mục: D:\opencv\build\include D:\opencv\build\include\opencv - Trong mục Library Directories, thêm hai mục sau: D:\opencv\builds\lib\Debug D:\opencv\builds\lib\Release b Chọn Linkerinput Trong Additional Dependencies bạn chép toàn danh sách file lib thư mục D:\opencv\builds\lib\Debug D:\opencv\builds\lib\Release Cách tiến hành cấu hình em hướng dẫn video http://www.youtube.com/watch?v=wc2PQGznhhc&feature=g-upl SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 88 Khoa Công Nghệ Thông Tin Một số hàm quan trọng Biến đổi ảnh xám lọc ảnh song phương: Code: void gray_filter() { Mat src_gray; cvtColor(src,src_gray,CV_BGR2GRAY); bilateralFilter(src_gray,src_gray_filter,10,20,5); } Hàm phân ngưỡng tìm biên canny Code: void threshold_canny() { Canny(src_gray_filter,dst_canny,120,360,3); threshold(src_gray_filter,dst_threshold,100,200,THRESH_BINARY); } Tìm vùng biển số Code : void vungBienSo() { vector int_vung; vector contours; vector hierarchy; /// Find contours findContours( dst_threshold, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) ); vector contours_poly( contours.size() ); vector boundRect; for( size_t i = 0; i < contours.size(); i++ ) { approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true ); boundRect.push_back(boundingRect( Mat(contours_poly[i]) )); } for ( size_t i = 0; i < boundRect.size(); i++) { double x = boundRect[i].width*1.0; double y = boundRect[i].height*1.0; double a = x/y; if( a>=3.5 && a=0.8 && adepth,src1>nChannels); for( size_t i = 0; i < int_vung.size();i++) { int area = boundRect[int_vung[i]].width*boundRect[int_vung[i]].height; if (area >= 1500 && area depth,src1>nChannels); cvCopy(src1,tam,NULL); vung_bien.push_back(tam); cvResetImageROI(src1); drawImageInside(tam, cropped_img ,i+1 ,0); } } Mat drawing = Mat::zeros( dst_threshold.size(), CV_8UC3 ); for( size_t i = 0; i< int_vung.size(); i++ ) { Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); drawContours( drawing, contours_poly, (int)i, color, 1, 8, vector(), 0, Point() ); rectangle( drawing, boundRect[int_vung[i]].tl(), boundRect[int_vung[i]].br(), color, 2, 8, ); } } Cách ly vùng ký tự Code: void crop_so() { for(size_t i = 0; i< vung_bien.size(); i++) { IplImage* src1 = new IplImage(vung_bien[i]); IplImage* a = new IplImage(src); Mat src_gray; cvtColor(vung_bien[i],src_gray,CV_BGR2GRAY); bilateralFilter(src_gray,src_gray_filter,10,20,5); threshold(src_gray_filter,dst_threshold,153,200,THRESH_BINARY); IplImage* cropped_img = cvCreateImage( cvGetSize(a),a->depth,a>nChannels); vector int_vung; vector contours; vector hierarchy; findContours( dst_threshold, contours, hierarchy, CV_RETR_TREE, SV: Phạm Thế Tài – Lớp S11-50TH GVHD: Th.S Vũ Anh Dũng Đồ Án Tốt Nghiệp 90 Khoa Công Nghệ Thông Tin CV_CHAIN_APPROX_SIMPLE, Point(0, 0) ); vector contours_poly( contours.size() ); vector boundRect; for( size_t i = 0; i < contours.size(); i++ ) { approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true ); boundRect.push_back(boundingRect( Mat(contours_poly[i]) )); } for (size_t i =0 ; i< boundRect.size();i++) { if(boundRect[i].area() >=100 && boundRect[i].area() depth,src1->nChannels); cvCopy(src1,tam,NULL); ky_tu.push_back(tam); cvNamedWindow("aaa"); cvShowImage("aaa",tam); cvWaitKey(0); cvResetImageROI(src1); drawImageInside(tam, cropped_img ,i*15 ,0); } } cvShowImage("cac ky tu",cropped_img ); cvWaitKey(0); if(ky_tu.size() >=6 && ky_tu.size()

Ngày đăng: 18/08/2020, 11:14

Từ khóa liên quan

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

Tài liệu liên quan