1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn: Bài toán nhận dạng biển số xe

91 2,4K 49

Đ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

Thông tin cơ bản

Định dạng
Số trang 91
Dung lượng 2,83 MB

Nội dung

MỤC LỤC MỞ ĐẦU .................................................................................................................. 7 CHƯƠNG 1. Tổng quan về nhận dạng. ................................................................... 8 1.1 Tính chất và sự cần thiết của bài toán nhận dang. ................................................ 8 1.1.1 Tính chất ...................................................................................................... 8 1.1.2 Sự cần thiết. ................................................................................................. 8 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 và bản chất của quá trình nhận dạng. ................................................... 11 1.3.1 Mô hình. ..................................................................................................... 11 1.3.2 Bản chất của quá trình nhận dạng. ............................................................. 12 CHƯƠNG 2. Xử lý ảnh và 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 và các phương pháp tìm biên. .................................................................... 24 2.3.1 Khái niệm về 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 Đồ Án Tốt Nghiệp 2 Khoa Công Nghệ Thông Tin SV: Phạm Thế Tài – Lớp S1150 TH GVHD: Th.S Vũ Anh Dũng 2.4 Biến đổi Hough .................................................................................................. 35 2.5 Một số hàm cơ bản trong thư viện OpenCV ...................................................... 41 2.5.1 Tải một ảnh và 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 bằng findContours ............................................................ 43 CHƯƠNG 3. Bài toán nhận dạng biển số xe. ....................................................... 45 3.1 Khái niệm về 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 quyết bà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 và biến đổi Hough. .............................................. 53 3.2.3 Phân ngưỡng và tím vùng đối tượng (hướng tiếp cận của đồ án). ............ 54 3.3 Hướng giải quyết. ............................................................................................... 54 3.4 Phát hiện vùng chứa biển số. .............................................................................. 56 3.4.1 Giai đoạn 1: Biến đối ảnh xám và lọc ảnh ................................................. 57 3.4.2 Giai đoạn 2: Tiến hành phân ngưỡng hoặc phát hiện 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 từ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 và 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 Đồ Án Tốt Nghiệp 3 Khoa Công Nghệ Thông Tin SV: Phạm Thế Tài – Lớp S1150 TH GVHD: Th.S Vũ Anh Dũng 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 4. Kết quả và hướng phát triển của bài toán nhận dạng biển số xe. .... 74 4.1 Kết quả hướng giải quyết “phân ngưỡng và tìm đối tượng”. ............................. 74 4.1.1 Kết quả 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 quả 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 của bài 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 của bài toán. ................................................................... 82 KẾT LUẬN. ........................................................................................................... 84 TÀI LIỆU THAM KHẢO ...................................................................................... 85 Phụ lục. ................................................................................................................... 86

Trang 1

Luận văn

Đề tài: Bài toán nhận dạng

biển số xe

Trang 2

MỤC LỤC

MỞ ĐẦU 7

CHƯƠNG 1 Tổng quan về nhận dạng 8

1.1 - Tính chất và sự cần thiết của bài toán nhận dang 8

1.1.1 Tính chất 8

1.1.2 Sự cần thiết .8

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 và bản chất của quá trình nhận dạng 11

1.3.1 Mô hình .11

1.3.2 Bản chất của quá trình nhận dạng .12

CHƯƠNG 2 Xử lý ảnh và 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 và các phương pháp tìm biên .24

2.3.1 Khái niệm về 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

Trang 3

2.4 - Biến đổi Hough 35

2.5 - Một số hàm cơ bản trong thư viện OpenCV 41

2.5.1 Tải một ảnh và 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 bằng findContours 43

CHƯƠNG 3 Bài toán nhận dạng biển số xe 45

3.1 - Khái niệm về 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 quyết bà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 và biến đổi Hough .53

3.2.3 Phân ngưỡng và tím vùng đối tượng (hướng tiếp cận của đồ án) .54

3.3 - Hướng giải quyết .54

3.4 - Phát hiện vùng chứa biển số .56

3.4.1 Giai đoạn 1: Biến đối ảnh xám và lọc ảnh 57

3.4.2 Giai đoạn 2: Tiến hành phân ngưỡng hoặc phát hiện 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 từ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 và 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

Trang 4

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 4 Kết quả và hướng phát triển của bài toán nhận dạng biển số xe 74

4.1 - Kết quả hướng giải quyết “phân ngưỡng và tìm đối tượng” .74

4.1.1 Kết quả 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 quả 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 của bài 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 của bài toán 82

KẾT LUẬN 84

TÀI LIỆU THAM KHẢO 85

Phụ lục 86

Trang 5

Danh mục các hình vẽ

Hình 1.1 Nhận dạng vân tay trên máy ATM 9

Hình 1.2 Phiên dịch viên Jibbigo 9

Hình 1.3 Sơ đồ tổng quan một 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 cơ bản trong 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 bộ lọc hộp thông thường 20

Hình 2.5 sử dụng bộ lọc Gaussian 21

Hình 2.6 sử dụng bộ lọc Median 22

Hình 2.7 sử dụng bộ 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 bằng chức năng Sobel trong OpenCV 29

Hình 2.10 Mặt nạ 8 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 độ đề các đi qua 2 điểm 36

Hình 2.14 Trục tọa độ đề các 36

Hình 2.15 Hệ tọa độ cực 37

Hình 2.16 Đường thẳngHough trong tọa độ cực 38

Hình 2.17 Kết hợp giữa HoughLines với HoughCircles 40

Hình 2.18 Tìm thấy hình tròn trong mẫu có hình tròn 41

Hình 2.19 Tải một ả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

Trang 6

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 và lọc song phương 57

Hình 3.5 ảnh sau khi tiến hành phân ngượng 58

Hình 3.6 Tìm đường bao các đối tượng 59

Hình 3.7 Sau khi lọc bằng dặc điểm biển số và cắt riêng vùng biển số 60

Hình 3.8 Các ký tự được cắt sau khi 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 và 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 các 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 2 lớp 72

Hình 4.1 Biển không nhận dạng được 77

Hình 4.2 Vùng biển số trong quá 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ị mất trong quá trình phân ngưỡng 80

Hình 4.4 Những biển số không nhận đủ ký tự 82

Trang 7

Bảng 4

Tìm vùng biển số trong các ngưởng khác nhau giảm dần

(biển được tìm thấy ở khoảng ngưỡng trước sẽ không phải

là đối tượng xét ở các khoảng ngưỡng sau)

Trang 8

MỞ ĐẦ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

Từ những thực tế đó, trong thời gian làm đố án tốt nghiệp em đã quyết định lựa chọn tìm hiểu về bài toán “ nhận dạng” trong đó chú trọng vào việc nhận dạng biển số

xe Để phục vụ cho bước đầu trong hệ thống quản lý phương tiện giao thông tại Việt Nam Trong điều kiện năng lực và thời gian có hạn, nên báo cáo của em không tránh khỏi những sai sót Em kình mong thầy cô và các bạn đóng góp những ý kiến để em có thể chỉnh sửa và bổ sung những phần thiếu sót để em hoàn thiện đề tài của mình

Em xin chân thành cảm ơn Thầy Vũ Anh Dũng và các bạn đã hết lòng giúp đỡ, chỉ bảo để em có thể hoàn thành tốt đồ án tốt nghiệp này

Trong báo cáo đồ án lần này em trình bày thành 4 chương như sau

Chương I: Tổng quan về nhận dạng

Chương II Xử lý ảnh và OpenCV

Chương III Bài toán nhận dạng biển số

Chương IV Kết quả và hướng phát triển của bài toán nhận dạng biển số xe

Trang 9

CHƯƠNG 1 Tổng quan về nhận dạng

- Nhận dạng là quá trình phân loại các đối tượng được biểu diễn theo một mô

hình nào đó và gán cho chúng vào một lớp (gán đối tượng một tên gọi) dựa theo những quy luật và các mẫu chuẩn Quá trình nhận dạng dựa vào những mẫu học biết trước gọi

là nhận dạng có thầy (supervised learning); trong trường hợp ngược lại gọi là học không thầy (non supervised learning)

- Nhận dạng là một bài toán quan trọng trong ngành thị giác máy tính

- Cùng với sự phát triển không ngừng của kinh tế xã hội và các ngành kỹ thuật

hiện nay Đòi hỏi sự quản lý và xử lý thông tin chính xác mà nó vượt quá sức của con người Vì vậy chúng ta cần có máy móc hoặc động làm giảm tải hoặc thay thế công việc nặng nhọc, đòi hỏi sự chính xác cao và nhàm chán cho con người Việc giúp máy móc nhận dang (thu thập , phân loại thông tin) như còn người sẽ giúp máy móc hoạt động hiệu quả giống như con người với độ chính xác cao hơn rất nhiếu

- Một số ứng dụng của bài toán nhận dạng

Nhận dạng dấu vân tay: ở Việt Nam đã được sử dụng trong việc chấm công, điểm danh và làm khóa an toàn cho các loại cửa sắt, máy tính xách tay… Nó tạo sự tiện dụng và rất an toàn

Trang 10

Hình 1.1 Nhận dạng vân tay trên máy ATM

Thay vì phải nhập mã pin trên máy ATM thì bạn chỉ việc đặt ngón tay trỏ của mình lên và giao dịch sẽ bắt đầu

Nhận dạng giọng nói: ứng dụng này được tích hợp trên nhiều sản phẩm, bạn sẽ điều khiển các thiết bị qua giọng nói của mình thay vì phải thao tác trực tiếp bằng tay, như trong mô hình nhà thông minh, trên điện thoại… Ví dụ : ứng dụng Jibbigo trên điện thoại đi động , Ứng dụng này có thể dịch được tiếng nói của người sử dụng với 8 ngôn ngữ khác nhau như 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

Trang 11

1.2 - Không gian biểu diễn đối tượng, không gian diễn dịch

Các đối tượng khi quan sát hay thu nhập được thường được biểu diễn bởi tập các đặc trưng hay đặc tính Như trong trường hợp xử lý ảnh, ảnh sau khi được tăng cường để nâng cao chất lượng, phân vùng và trích chọn đặc tính, được biểu diễn bởi các đặc trưng như biên , miền đồng nhất… Người ta thường phân các đặc trưng này theo các loại như: đặc trưng tô pô (tập điểm), đặc trưng hình học và đặc trưng chức năng Việc biểu diễn ảnh theo đặc trưng nào còn phụ thuộc vào ứng dựng tiếp theo

Ví dụ : giả sử đối tường X (ảnh, chữ viết, dấu vân tay,…) được biểu diễn bởi n

thành phần đặc trưng: X={x1,x2….,xn}; mỗi xi biểu diễn một đặc tính Không gian biểu

diễn đối tượng thường gọi tắt là không gian đối tượng A được định nghĩa:

A={X1,X2……,Xm} Trong đó mỗi Xi biểu diễn một đối tượng Không gian này có thể là vô hạn nhưng để tiện xem xét thì ta chỉ xét tập hữu hạn

Không gian diễn dịch là tập các tên gọi của đối tượng Kết thúc quá trình nhận dạng ta xác định được tên gọi cho các đối tượng trong tập không gian đối tượng hay nói là đã nhận dạng được đối tượng

Một hình thức gọi là Ω là tập tên đối tượng:

Ω ={ w1 ,w2,….wk} với wi, i= 1,2,….k là tên các đối tượng Quá trình nhận dạng đối tượng f là một ánh xa f: A Ω với f là tập các quy luật

để định một phần tử trong A ứng với một phần tử trong Ω Nếu tập các quy luật và tập tên các đối tượng là biết trước như trong nhận dạng chữ viết có ( có 26 lớp từ AZ),

Trang 12

người ta gọi là nhận dạng có thầy Trường hợp hai là nhận dạng không có thày ( trường hợp này khó khăn hơn)

Việc chọn lựa một quá trình nhận dạng có liên quan mật thiết đến kiểu mô tả mà người ta sử dụng để đặc tả đối tượng Trong nhận dạng, người ta phân chia theo hai họ lớp:

- Họ mô tả theo tham số

- Họ mô tả theo cấu trúc

Cách mô tả được lựa chọn sẽ xác định mô hình của đối tượng Như vậy, chúng

sẽ có 2 loại mô hình: mô hình theo tham số và mô hình cấu trúc

Mô hình tham số sử dụng một vector để đặc đối tương Mỗi phần tử củavector

mô tả một đặc tính của đối tượng Vì dụ: như trong các đặc trưng chức năng, người ta

sử dụng các hàm cơ sở trực giao để biểu diện Và như vậy ảnh sẽ được biểu diễn bởi một chuổi các hàm trực giao Giả sử C là đường bao của ảnh C(i,j) là điểm thứ i trên đường bao, i= 1,2…,n ( đường bao gồm n điểm)

Giả sử

x0= ∑ y0= ∑

là tọa độ điểm Như vậy, moment trung tâm bậc p,q của đường bao là :

Trang 13

vector tham số trong trường hợp này chính là các moment µij với i=1,2,….,p và j = 1,2,…,q Còn trong số các đặc trưng hình học, người ta hay sử dụng chu tuyến, đường bao, diện tích và tỉ lệ T=4πS/p2 với S là diện tích, p là chu tuyến

Việc chọn phương pháp biểu diễn sẽ làm đơn giản cách xây dựng Tuy nhiên, việc lựa chọn đặc trưng nào là hoàn toàn phụ thuộc vào ứng dụng

Cách tiếp cận của mô hình này dựa vào việc mô tả đối tượng nhờ một số khái niệm biểu thị các đối tượng cơ sở trong ngôn ngữ tự nhiên Để mô tả đối tượng, người ta dùng một số dạng nguyên thủy như đoạn thẳng, cung … Chẳng hạn một hình chữ nhật được định nghĩa gồm 4 đoạng thẳng vuông góc với nhau từng đôi một Trong mô hình này người ta sử dụng một bộ kí hiệu kết thúc Vt, một bộ kí hiệu không kết thúc gọi là

Vn Ngoài ra còn dùng một tập các luật sản xuất để mô tả cách xây dựng các đối tượng phù hợp dựa trên các đối tượng đơn giản hơn hoặc đối tượng nguyên thủy Trong cách tiếp cận này, ta chấp nhận một khẳng định là: cấu trúc là kết quả của việc áp dụng luật sản xuất theo những nguyên tắc xác định bắt đầu từ một dạng gốc bắt đầu Một cách hình thức, ta có thể coi mô hình này tương đương một văn phạm G=(Vt,Vn,P,S) với :

Quá trình nhận dạng gồm 3 giai đoạn chính:

- Lựa chọn mô hình biểu diễn đối tượng

Trang 14

- Lựa chọn luật ra quyết định (phương pháp nhận dạng) và suy diễn quá trình học

- Học nhận dạng

Khi mô hình biểu diễn đối tượng đã được xác định, có thể là định lượng ( mô hình tham số) hay định tính ( mô hình cấu trúc), quá trình nhận dạng chuyển sang giai đoạn học Học là giai đoạn quan trọng Thao tác học nhằm cải thiện, điểu chỉnh việc phân hoạch tập đối tượng thành lớp

Việc nhận dạng chính là tìm ra quy luật và các thuật toán để có thể gán đối tượng vào một lớp hay nói một cách khác gán cho đối tượng một tên

Kỹ thuật phân loại nhờ kiến thức biết trước gọi là học có thầy Đặc điểm cơ bản của

kỹ thuật này là người ta có một thư viện các mẫu chuẩn Mẫu cần nhận dạng sẽ được đem so sánh với mẫu chuẩn để xem nó thuộc loại nào Ví dụ như trong một ảnh viễn thám, người ta muốn phân biệt một cách đồng lúa, một cánh rừng hay một vùng đất hoang mà đã có miêu tả về đối tượng đó Vấn đề chủ yếu là thiết kế một hệ thống để có thể đối sánh đối tượng trong ảnh với mẫu chuẩn và quyết định gán cho chúng vào một

lớp Việc đối sánh nhờ vào các thủ tục ra quyết định dựa trên một công cụ gọi là hàm

phân lớp hay hàm ra quyết định

Kỹ thuật này phải tự định ra cách lớp khác nhau và xác định các tham số đặc trưng cho từng lớp Học không có thầy khó khăn hơn Một mặt, do số lớp không được biết trước, mặt khác những đặc trưng của lớp cũng không biết trước Kỹ thuật này nhằm tiến hành mọi cách gộp nhóm có thể và chọn lựa cách tốt nhất Bắt đầu từ tập dữ liệu, nhiều thủ tực xử lý khác nhau nhằm phân lớp và nâng cấp dần để đạt được một

Trang 15

Nhin chung, một hệ thống nhận dạng có thể tóm tắt sơ đồ sau

Hình 1.3 Sơ đồ tổng quan một hệ nhận dạng

Trang 16

CHƯƠNG 2 Xử lý ảnh và openCV

Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho

ra kết quả mong muốn kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh

“tốt hơn” (theo ý muốn) hoặc một kết luận

Hình 2.1 Quá trình xử lý ảnh

Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong không gian và có thể xem như hàm n biến Do đó ảnh trong xử lý ảnh có thể xem như ảnh n chiều

Sơ đồ tổng quát của hệ thống xử lý ảnh:

Hình 2.2 Các bước cơ bản trong hệ thống xử lý ảnh

Và ở chương này chung ta sẽ được biết OpenCV hỗ trợ gì cho những bước xử lý ảnh Tiếp sau em sẽ giới thiệu các bước xử lý và OpenCV hỗ trợ xử lý ảnh như thế nào

Trang 17

Tiền xử lý

Các thao tác xử lý trên ảnh để chuẩn bị cho những bước phân tích tiếp theo Chẳng hạn như các thao tác: chọn ngưỡng để chuyển ảnh đa cấp xám, ảnh màu về dạng nhị phân, giảm nhiễu để loại bỏ những dữ diệu không liên quan, phân đoạn để phân tách cách thành phần trong ảnh và cuối cùng là làm mảnh hay dò biên để đễ dàng xác định các vùng, các đặc trưng thích hợp và đối tượng cần quan tâm

Mức xám là giá trị có thể có của điểm ảnh

Với những ảnh đa cấp xám các thông tin đã sẵn ở dạng nhị phân chẳng hạn như các chuỗi văn bản hay các đối tượng ảnh, thì phương pháp nhị phân thông thường sẽ được thực hiện trước Mục đích của phương pháp này sẽ tự động chọn một ngưỡng cần thiết

để tách ảnh ra làm hai phần: thông tin ảnh và thông tin nền Việc chọn ngưỡng tốt (ngưỡng mà có thể tách ảnh thành hai phần: phần ảnh, phần nền một cách chính xác) luôn là một quá trình khó và dễ gây ra lỗi

(a) (b)

Hình 2.3 (a) ngưỡng 40,(b) ngưỡng 121

Kết quả này sẽ gặp khó khăn khi độ tương phản giữa nền và các giá trị điểm ảnh là thấp (chẳng hạn như xe màu xám nền mầu trắng), nét của văn bản mỏng hoặc dữ liệu

Trang 18

Để thực hiện việc tách ngưỡng này thì OpenCV cung cấp chức năng threshold

threshold( src_gray, dst, threshold_value, max_BINARY_value,threshold_type );

 src_gray: hình ảnh đầu vào

 dst: hình ảnh đầu ra

 threshold_value: giá trị thực hiện tách ngưỡng

 max_BINARY_value: giá trị thực hiện tách ngưỡng nhị phân

 threshold_type: một trong 5 ngưỡng hoạt động

5 ngưỡng hoạt động OpenCV cung cấp:

a Threshold Binary: nếu giá trị các điểm ảnh cao hơn giá trị ngưỡng thì được thiết

lập giá trị mới là giá trị cao nhất (255), thấp hơn giá trị các điểm ảnh về mức 0;

b Threshold binaru, inverted: ngược với Threshold Binary

c Truncate: giá trị các điểm ảnh cao hơn giá trị ngượng sẽ bị thay đổi bằng giá trị

ngưỡng, thấp hơn giữ nguyên

Trang 19

d Threshold to Zero: giá trị các điểm ảnh cao hơn giá trị ngưỡng sẽ được giữ lại

còn các điểm ảnh có giá trị thấp hơn giá trị ngưỡng sẽ đưa về giá trị 0

e Threshold to Zero, inverted : Ngược lại với Threshold to Zero

Nhiễu trong ảnh là do nhiều nguyên nhân bao gồm: sự thoái hóa theo thời gian, quá trình sao chép Một số kỹ thuật xử lý ảnh sẽ được áp dụng để loại bỏ nhiễu Sau khi được nhị phân hóa, ảnh sẽ được lọc để giảm nhiễu Trên thực thế tồn tại nhiều loại nhiễu, tuy nhiên người ta thường xem xét 3 loại chính: nhiễu cộng, nhiễu nhân

và nhiễu xung Chúng xuất hiện những điểm ảnh khác biệt so với vùng xung quanh Bản chất của nhiễu là thường tương ứng với tần số cao và cơ sở lý thuyết của các

bộ lọc là chỉ cho những tín hiệu có tần số nào đó thông qua, do đó để lọc nhiệu người ta thường sử dụng bộ lọc thông thấp hay trung bình Với nhiễu cộng và nhiễu

Trang 20

sẽ được thay bởi tổ hợp các điểm lân cận chập với mặt nạ Lọc thông thấp thường dùng để làm trơn nhiễu

Các bộ lọc phi tuyến cũng được dùng trong kỹ thuật tăng cường ảnh Trong kỹ thuật này người ta dùng bộ lọc trung vị, bộ lọc giả trung vị Với bộ lọc trung vị các điểm ảnh sẽ được thay thế bởi trung vị các điệm ảnh, bộ lọc giả trung vị thì các điểm ảnh được thay thế bỏi trung bình cộng của giá trị “trung vi.”

Sau đây là một số bộ lọc thường dùng

Đây là bộ lọc đơn giản nhất

Mỗi điểm đầu ra là trung bình của các điểm láng giềng hạt nhân của mình (tất cả các

điểm xung quanh đóng góp với trọng lượng bằng nhau

Trang 21

rộng w pixel và chiều cao h pixels

 Point(-1,-1) chỉ các điểm có vị trí hàng xóm

Hình 2.4 Sử dụng bộ lọc hộp thông thường

Đây là bộ lọc hữu ích nhất (mặc dù không phải là nhanh nhất)

Nó được thực hiện bởi chức năng GaussianBlur trong OpenCV

gaussianBlur(src,dst,size(i,i),0,0)

 src: hình ảnh nguồn

 dst: hình ảnh đầu ra

 size(w,h) kích thước của hạt nhân sẽ được sử dụng w và h phải là số

lẻ và tích cự nếu không kích thước sẽ được tính bằng cách sử dụng đối

số σx và σy

 σx độ lệch chuẩn trong x Viết 0 ngụ ý rằng độ lệch được tính bằng các

sử dụng kích thước hạt nhân

Trang 22

 σy độ lệch chuẩn y

Hình 2.5 sử dụng bộ lọc Gaussian

Các bộ lọc trung bình chạy qua từng phần tử của tín hiệu và thay thế mỗi điểm ảnh với trung bình của các điểm anh lân cận nó

Bộ lọc này được cung cấp bởi các chức năng medianBlur trong thư viện OpenCV

medianBlur (src,dst,i);

 src: ảnh nguồn

 dst: ảnh đầu ra ( có kích thước giống như src)

 i: kích thước của hạt nhân ( i phải lẻ)

Trang 23

Hình 2.6 sử dụng bộ lọc Median

Hầu hết các bộ lọc có mục tiêu chính là làm mịn hình ảnh đầu vào Tuy nhiên các bộ lọc không chỉ giảm nhiễu mà còn làm mờ các cạnh Để tránh điếu này chúng ta

xử dụng bộ lọc song phương Và OpenCV cung cấp chức năng bilateralFilter

bilateralFilter(src,dst,i,i*2,i/2);

 src: ảnh nguồn

 dst: ảnh đầu ra

 d: đường kính của vùng lân cận điểm ảnh

 σcolor: độ lệch chuẩn trong không gian màu

 σSpace: độ lệch chuẩn trong khoảng tọa độ

Trang 24

Hình 2.7 sử dụng bộ lọc song phương

Ngoài những bộ lọc thông dụng như trên thì thư viện OpenCV còn cung cấp bộ lọc mà

chúng ta có thể thay đổi kích thước hạt nhân Đó là filter2D

Filter2D(src, dst, ddepth, kernel, anchor, delta, BORDER_DEFAULT)

 Src: ảnh nguồn

 Dst: ảnh đầu ra

 Ddepth: độ sâu của dst Giá trị -1 là chỉ ra độ sâu như nguồn,

 Kernel: hạt nhân

 Anchor: vị trí liên quan đến hạt nhân của nó

 Delta: giá trị được thêm vào mỗi điểm ảnh Mặc định bằng 0

 BORDER_DEFAULT: giá trị mặc định

Trang 25

Hình 2.8 filter2D nhân thay đổi tăng dần từ trái qua phải

Biên là một vấn đề chủ yếu trong phân tích ảnh vì kỹ thuật phân đoạn chủ yếu dựa vào biên Một điểm ảnh có thể coi là điểm biên nếu có sự thay đổi đột ngột và mức xám hay biên là điểm có cấp xám có giái trị khác hẳn các điểm xung quanh, tập hợp các điểm biên tạo thành biên hay đường bao của ảnh

Sau đây tôi sẽ giới thiệu một số phương pháp tìm biên mà thư viện OpenCV hỗ trợ rất tốt

Trang 26

Gradient trong gốc tọa độ (r,θ), với r là vector, θ là góc

Trang 27

Toán tử Sobel được Duda và Hart đặt ra vào năm 1973 với các mặt nạ tương

tự như của Robert nhưng cấu hình khác như sau:

Trang 28

Hướng ngang (x) Hướng dọc (y)

e Toán tử 4-lân cận (4-Neighbour Operator)

Toán tử 4-lân cận được Chaudhuri và Chandor (1984) nêu ra trong đó mặt nạ

có kích thước 3x3 được thay thế cho mặt nạ 2x2 của toán tử Robert Mặt nạ 4- lân cận được cho như sau:

Theo hướng x Theo hướng y

Các mặt nạ của toán tử trên có kích thước 2x2 hoặc 3x3 chiều Các mặt nạ có số chiều lớn hơn cũng được sử dụng Ví dụ trong kỹ thuật phát hiện biên người ta dùng

Trang 29

Cho kết quả tốt hơn so với Sobel theo chức năng tiêu chuẩn

Mat grad_x, grad_y;

Mat abs_grad_x, abs_grad_y;

/// Gradient X

Sobel( src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT ); /// Gradient Y

Sobel( src_gray, grad_y, ddepth, 0, 1, 3, scale, delta, BORDER_DEFAULT );

 Src_gray: hình ảnh đầu vào

 Grad_x/ grad_y, ảnh đầu ra

 Ddepth Độ sâu của hình ảnh đầu ra

 X_order: thứ tự của các phát sinh theo hướng x,

 Y_order: thứ tự của các phát sinh theo hướng y,

Trang 30

Hình 2.9 Tìm biên bằng chức năng Sobel trong OpenCV

Kirsh đã đề xuất mặt nạ 8 hướng như 8 hướng la bàn Hình 2.10 là mô hình 8 hướng và được đặt tên theo hướng địa lý và theo chiều kim đồng hồ: Đông, Đông- Nam, Nam, Tây-Nam, Tây, Tây-Bắc, Bắc, Đông-Bắc; mỗi hướng lệch nhau 45 độ

Hình 2.10 Mặt nạ 8 hướng theo Kirsh

b Toán tử la bàn Krish:

Trang 31

Ký hiệu Ai ; i= 1,2,….,8 là Gradient theo 8 hướng như 8 mặt nạ kể trên, khi đó biên

độ Gradient tại điểm (x,y) được tính theo

A(x,y) = Max(|gi(x,y)|) i= 1,2,….,8

Nếu lấy đạo hàm bậc hai của ảnh: ta có phương pháp Laplace

Hai phương pháp này gọi chung là phương pháp dò biên cục bộ

c Toán tử la bàn khác:

Ngoài toàn tử la bàn Kirsh, một số toán tử la bàn khác sử dụng bộ mặt nạ tám hướng khác như:

Trang 33

Để thấy rõ việc xấp xỉ đạo hàm riêng bậc 2 trong không gian 2 chiều với mặt nạ H1 làm

Trang 34

Laplacian( src_gray,dst,ddepth,kernel_size,scale,delta, BORDER_DEFAULT );

 Src_gray: ảnh đầu vào

 Dst: ảnh đầu ra

 Ddepth: độ sâu của ảnh

 Kernel_size: kích thước hạt nhân

 Scale, delta and BORDER_DEFAULT: những giá trị mặc định

Kết quả : hình 2.11

Hình 2.11 Tìm biên Laplace

Bộ tách sường ảnh theo Canny (1986) dựa trên cặp đạo hàm riêng bậc nhất với việc làm sạch nhiễu Mục này được để riêng vì đây là phương pháp tách đường biên khá phổ biến được biết đến như là phương pháp dò tối ưu, nó đáp ứng được ba tiêu chí sau:

 Tỷ lệ lội thấp: phát hiện tốt các cạnh

 Phân vùng tốt: Khoảng cách giữa các điểm ảnh cạnh phát hiện và pixel thực

Trang 35

 Đáp ứng tối thiểu: có cách dò cho mỗi cạnh

Các bước làm theo Canny:

a Giảm nhiễu: Để thực hiện việc giảm nhiễu bộ lọc Gaussian được sử dụng Một

hạt nhân Gaussian có cỡ bằng 5 có thể được sử dụng dưới đây:

Hướng được làm tròn đến một trong bốn góc có thể ( cụ thể là 0,45,90 hay 135)

c Ức chế tối đa Sử dụng để loại bỏ các điểm ảnh không được coi là một phần của

một cạnh

d Trễ ở đây Canny sử dụng hai ngưỡng cao và thấp

 Nếu một pixel cao hơn ngưỡng trên (cao), điểm ảnh được chấp nhận là một cạnh

 Nếu một pixel thấp hơn ngưỡng thấp nó sẽ bị từ chối

 Nếu ở giữa hai ngưỡng Nó sẽ được chấp nhận khi nó gần với một pixel ở trên ngưỡng cao

Trang 36

Tỉ lệ đề nghị cao/thấp giữa 2/1 và 3/1

Hình 2.12 Tìm biên theo Canny

Biến đổi Hough là phương pháp dùng để xác định đường thẳng ( đường tròn elip) gần đúng đi qua một tập hợp điểm

Với (x, y) là một điểm y=mx+c  c =-mx + y

Như vậy nếu có N điểm nằm trên một đường thẳng

Thay vì tìm N điểm trên đường thẳng, người ta xét tất cả các điểm, xem điểm nào

có nhiều dường thẳng đi qua nhất

Trang 37

Hình 2.13 Trục tọa độ đề các đi qua 2 điểm

Trang 39

Hình 2.16 Đường thẳngHough trong tọa độ cực

Biến đổi Hough ánh xạ N điểm thành N đường sin trong tọa độ cức các đường này đều đi qua điểm (ri, 𝛅i) Giao điểm (ri, 𝛅i) của N đường sin sẽ xác định một đường thẳng trong hệ tọa độ đề các Như vậy, những đường thằng đi qua điểm (ri, yi) sẽ có bấy nhiêu cặp giá trị (ri, 𝛅i) Mục đích tìm ra cắp (r,𝛅) sao cho số đường hình sin đi qua nhiều nhất, và cặp đó chính là cặp tham số cho đường thẳng

Hough với OpenCv

Để thuận tiện cho việc dùng Hough để tìm đường thẳng và đường tròn trong ảnh thì

OpenCv cung cấp chức năng HoughLines, HoughLinesP và HoughCircles

a Tìm đường thẳng với HoughLines và HoughLinesP Hình 2.17

HoughLines

vector<Vec2f> lines;

HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 );

 Dst: đầu ra ( là ảnh xám)

 Lines: một vector lưu trữ thông số (r,θ) của các dòng được phát hiện

 Rho: độ phân giải của tham số r theo Pixel Thường sử dụng 1 pixel

 Theta: độ phân giải của tham số θ theo radian Thường sử dụng 1 độ

Trang 40

 Rho: độ phân giải của tham số r theo pixel ( thường sử dụng 1 pixel)

 Theta: độ phân giải của tham số θ theo radian (thường sử dụng là 1 độ CV_PI/180)

 Threshold: số lượng tối thiểu nút

 MinhLinLength: số lượng tối thiểu của các điểm có thể tạo thành một đường nếu ít hơn sẽ bị bỏ qua

 maxLinegap: khoảng các tối đa giữa hai điểm được xem xét trong cùng một dòng

Ngày đăng: 11/06/2014, 16:33

HÌNH ẢNH LIÊN QUAN

Bảng Tên bảng Trang - Luận văn: Bài toán nhận dạng  biển số xe
ng Tên bảng Trang (Trang 7)
Hình 1.1  Nhận dạng vân tay trên máy ATM. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 1.1 Nhận dạng vân tay trên máy ATM (Trang 10)
Hình 1.2 Phiên dịch viên Jibbigo - Luận văn: Bài toán nhận dạng  biển số xe
Hình 1.2 Phiên dịch viên Jibbigo (Trang 10)
Hình 1.3  Sơ đồ tổng quan một hệ nhận dạng. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 1.3 Sơ đồ tổng quan một hệ nhận dạng (Trang 15)
Hình 2.3 (a) ngưỡng 40,(b) ngưỡng 121 - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.3 (a) ngưỡng 40,(b) ngưỡng 121 (Trang 17)
Hình 2.4 Sử dụng bộ lọc hộp thông thường. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.4 Sử dụng bộ lọc hộp thông thường (Trang 21)
Hình 2.5 sử dụng bộ lọc Gaussian - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.5 sử dụng bộ lọc Gaussian (Trang 22)
Hình 2.6 sử dụng bộ lọc Median - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.6 sử dụng bộ lọc Median (Trang 23)
Hình 2.7 sử dụng bộ lọc song phương  2.3.5   Filter2D - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.7 sử dụng bộ lọc song phương 2.3.5 Filter2D (Trang 24)
Hình 2.9 Tìm biên bằng chức năng Sobel trong OpenCV  2.4.3   Toán tử la bàn. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.9 Tìm biên bằng chức năng Sobel trong OpenCV 2.4.3 Toán tử la bàn (Trang 30)
Hình 2.12 Tìm biên theo Canny  2.5 -   Biến đổi Hough - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.12 Tìm biên theo Canny 2.5 - Biến đổi Hough (Trang 36)
Hình 2.16 Đường thẳngHough trong tọa độ cực. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.16 Đường thẳngHough trong tọa độ cực (Trang 39)
Hình 2.17 Kết hợp giữa HoughLines với HoughCircles - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.17 Kết hợp giữa HoughLines với HoughCircles (Trang 41)
Hình 2.18         Tìm thấy hình tròn trong mẫu có hình tròn. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.18 Tìm thấy hình tròn trong mẫu có hình tròn (Trang 42)
Hình 2.20         Chuyển ảnh màu sang ảnh xám. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 2.20 Chuyển ảnh màu sang ảnh xám (Trang 44)
Hình 3.1 Hệ thống tự động nhận dạng biển số xe. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 3.1 Hệ thống tự động nhận dạng biển số xe (Trang 47)
Sơ đồ các bước phát hiện vùng chứa biển số xe. - Luận văn: Bài toán nhận dạng  biển số xe
Sơ đồ c ác bước phát hiện vùng chứa biển số xe (Trang 57)
Hình 3.4 (a) ảnh đầu vào (b) ảnh xử lý xám và lọc song phương. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 3.4 (a) ảnh đầu vào (b) ảnh xử lý xám và lọc song phương (Trang 58)
Hình 3.5 ảnh sau khi tiến hành phân ngượng - Luận văn: Bài toán nhận dạng  biển số xe
Hình 3.5 ảnh sau khi tiến hành phân ngượng (Trang 59)
Hình 3.6 Tìm đường bao các đối tượng - Luận văn: Bài toán nhận dạng  biển số xe
Hình 3.6 Tìm đường bao các đối tượng (Trang 60)
Hình 3.7 Sau khi lọc bằng dặc điểm biển số và cắt riêng vùng biển số - Luận văn: Bài toán nhận dạng  biển số xe
Hình 3.7 Sau khi lọc bằng dặc điểm biển số và cắt riêng vùng biển số (Trang 61)
Hình 3.9 Mô hình nơron nhân tạo. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 3.9 Mô hình nơron nhân tạo (Trang 63)
Hình 3.14  Ánh xạ mặt cầu vào lưới nơron 15x15 - Luận văn: Bài toán nhận dạng  biển số xe
Hình 3.14 Ánh xạ mặt cầu vào lưới nơron 15x15 (Trang 72)
Bảng 1. Chi tiết tìm vùng biển số sử dụng dò biên Canny và tìm vùng đối  tượng. - Luận văn: Bài toán nhận dạng  biển số xe
Bảng 1. Chi tiết tìm vùng biển số sử dụng dò biên Canny và tìm vùng đối tượng (Trang 76)
Bảng 4: Tìm vùng biển số trong các ngưởng khác nhau giảm dần. (biển được tìm thấy - Luận văn: Bài toán nhận dạng  biển số xe
Bảng 4 Tìm vùng biển số trong các ngưởng khác nhau giảm dần. (biển được tìm thấy (Trang 80)
Hình 4.3 Mức xám thấp làm vùng biển số bị mất trong quá trình phân ngưỡng - Luận văn: Bài toán nhận dạng  biển số xe
Hình 4.3 Mức xám thấp làm vùng biển số bị mất trong quá trình phân ngưỡng (Trang 81)
Hình 4.2 Vùng biển số trong quá trình phân ngưỡng. - Luận văn: Bài toán nhận dạng  biển số xe
Hình 4.2 Vùng biển số trong quá trình phân ngưỡng (Trang 81)
Bảng 5. Chi tiết các khoảng ngưỡng phát hiện những biển số.( các biển tách ly thành - Luận văn: Bài toán nhận dạng  biển số xe
Bảng 5. Chi tiết các khoảng ngưỡng phát hiện những biển số.( các biển tách ly thành (Trang 82)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w