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

Đồ án tốt nghiệp: Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh

116 76 0

Đ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 116
Dung lượng 4,01 MB

Nội dung

Nghiên cứu này nhằm mục tiêu phát triển giải thuật điều khiển hệ thống đèn giao thông cho một giao lộ, với chu kỳ đèn tín hiệu tùy thuộc vào tình trạng xe lưu thông trên hai tuyến đường quan sát được bởi 2 camera. Giải thuật đếm số lưu lượng xe trên đường được xây dựng để quyết định thời gian của chu kỳ đèn xanh kế tiếp cho tuyến đường tương ứng. Hình ảnh thu được từ camera sẽ được phần mềm mô phỏng giả lập để kiểm chứng giải thuật điều khiển. Kết quả mô phỏng cho thấy tuyến đường nào có lưu lương xe lớn hơn thì chu kỳ đèn xanh của tuyến đường đó dài hơn và ngược lại.

Trang 1

I TÊN ĐỀ TÀI: THIẾT KẾ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN TÍN HIỆU

ĐÈN GIAO THÔNG THÔNG QUA XỬ LÝ ẢNH

II NHIỆM VỤ

1 Các số liệu ban đầu:

- Video đầu vào: 6 video, 2 video khi đường ít xe, 2 video khi làn nhiều xe

- Matlab phiên bản 2017a

- Kit điều khiển chính: Arduino Mega 2560, 2 Module Led 7 đoạn đôi, 6 led đơn (2 đỏ, 2 vàng, 2 xanh)

2 Nội dung thực hiện:

Đề tài thực hiện nội dung xây dựng hệ thống đếm đối tượng qua hình ảnh với đầu vào là từ video là ảnh chứa các đối tượng (phương tiện giao thông) Kết quả đếm được sẽ được gửi xuống kit Arduino để điều khiển 2 cặp module led 7 đoạn và led đơn Nhóm sẽ thực hiện các nội dung như sau:

 Tìm hiểu về kit Arduino Mega 2560

 Tìm hiểu về phần mềm matlab

 Cài đặt nguồn thư viện cho kit Arduino, cách kết nối Arduino với Matlab

 Tìm hiểu các thuật toán phát hiện phương tiện giao thông

 Xây dựng quá trình xử lý ảnh đầu vào

 Xây dựng hệ thống đếm phương tiện trong ảnh, lập trình giao diện sử dụng để

mô phỏng quá trình thu thập dữ liệu và gửi dữ liệu xuống kit Arduino

 Xây dựng chương trình điều khiển điều tín hiệu đèn giao thông trên kit Arduino

Trang 2

III NGÀY GIAO NHIỆM VỤ: 21/03/2018

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/07/2018

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Võ Đức Dũng

CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

Trang 3

Bộ Môn Điện Tử Công Nghiệp – Y Sinh

Tp Hồ Chí Minh, ngày 12 tháng 07 năm 2018

- Cài đặt Matlab, Arduino

- Lập trình Arduino với các chân I/O để nhúng

dữ liệu

4

(9/4-15/4)

- Tìm hiểu các thuật toán xử lý ảnh đầu vào

- Các hàm cơ bản xử dụng cho việc sử lý ảnh đầu vào

Trang 4

7

(30/4-6/5)

- Viết lưu đồ chương trình đèn giao thông

- Tiến hành viết chương trình và hiệu chỉnh chương trình

8

(7/5-13/5)

- Tìm hiểu cách kết nối giữa matlab và adruino

- Tiến hành gửi dữ liệu từ Matlab sang arduino

- Hoàn thiện, chỉnh sửa báo cáo gửi cho GVHD

để xem xét góp ý lần cuối trước khi in báo cáo

12

(4/6-10/6) - Nộp quyển báo cáo và làm Slide báo cáo

GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)

Trang 5

Chúng tôi cam đoan đồ án tốt nghiệp là công trình nghiên cứu của bản thân chúng tôi dưới sự hướng dẫn của thạc sĩ Võ Đức Dũng

Các kết quả công bố trong đồ án tốt nghiệp “Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh” là trung thực và không sao

chép từ công trình nào khác

Người thực hiện đề tài

Nguyễn Thái Dương Duy

Trang 6

Trong quá trình làm đồ án tốt nghiệp, chúng em đã nhận được rất nhiều sự ủng hộ, giúp đỡ đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè

Chúng em xin gửi lời cảm ơn chân thành đến Th.S Võ Đức Dũng - Trường

Đại học Sư phạm Kỹ thuật Tp.HCM đã tận tình hướng dẫn chỉ bảo trong suốt thời gian làm luận án tốt nghiệp Thầy đã tạo nhiều điều kiện và cho những lời khuyên quý báu giúp chúng em hoàn thành tốt khóa luận

Xin chân thành cảm ơn thầy cô giáo trong Trường Đại học Sư phạm Kỹ thuật Tp.HCM nói chung, các thầy cô trong Bộ môn Điện tử Công Nghiệp – Y Sinh nói riêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức quý báu và tạo điều kiện giúp đỡ trong suốt quá trình học tập trong những năm học vừa qua, giúp chúng em có được cơ sở lý thuyết vững vàng

Cuối cùng, chúng em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, ủng hộ, giúp đỡ, động viên chúng em trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp

Chúng em xin chân thành cảm ơn!

Người thực hiện đề tài

Nguyễn Thái Dương Duy

Trang 7

Trang bìa i

Nhiệm vụ đồ án ii

Lịch trình iv

Cam đoan vi

Lời cảm ơn vii

Mục lục viii

Liệt kê hình vẽ xi

Liệt kê bảng vẽ xiv

Tóm tắt xv

CHƯƠNG 1 TỔNG QUAN 1

1.1 Đặt vấn đề 1

1.2 Mục tiêu 3

1.3 Nội dung nghiên cứu 3

1.4 Giới hạn 3

1.5 Bố cục 4

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 6

2.1 Giới thiệu xử lý ảnh 6

2.2 Tổng quan về Matlab 7

2.3 Giới thiệu về lịch xử hình thành Arduino 8

2.4 Giới thiệu phần cứng 10

2.4.1 Kit arduino mega 2560 10

2.4.2 Led quét 7 đoạn loại 2 digit 13

2.4.2.1 Led 7 đoạn 13

2.4.2.2 Led quét 7 đoạn loại 2 digit 14

2.4.3 Led đơn 15

2.5 Quy trình xử lý ảnh 15

2.5.1 Xử lý ảnh là gì? 15

2.5.2 Quá trình thu nhận ảnh 16

2.5.3 Quá trình tiền xử lý ảnh 16

2.5.4 Quá trình phân đoạn ảnh 16

Trang 8

2.5.6 Nhận dạng và nội suy ảnh 17

2.5.7 Cơ sở tri thức 18

2.6 Các phương pháp xử lý cơ bản với một đối tượng ảnh đầu vào 18

2.6.1 Chuyển đổi ảnh màu sang ảnh màu xám 18

2.6.2 Nhị phân hóa ảnh 20

2.6.3 Các phương pháp lọc nhiễu ảnh nhằm cải thiện ảnh 21

2.6.4 Làm trơn nhiễu bằng lọc tuyến tính 21

2.6.5 Làm trơn nhiễu bằng lọc phi tuyến 24

2.6.6 Phân vùng ảnh 24

2.7 Các hàm cơ bản được sử dụng trong quá trình phát hiện và đếm số lượng phương tiện trong đề tài 25

2.7.1 Hàm imread() 25

2.7.2 Hàm imshow() và imagesc() 25

2.7.3 Hàm rgb2gray() 26

2.7.4 Hàm imadjust() 27

2.7.5 Hàm tự tính ngưỡng để chuyển sang ảnh nhị phân graythresh(), và hàm chuyển đổi ảnh nhị phân imbinarize() 28

2.7.6 Hàm imdilate() 28

2.7.7 Hàm imerode() 29

2.7.8 Hàm bwareaopen() 30

2.7.9 Hàm bwlable 31

CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 32

3.1 Giới thiệu 32

3.2 Tính toán và thiết kế hệ thống 32

3.2.1 Thiết kế sơ đồ khối hệ thống 32

3.2.2 Thiết kế các khối hệ thống 33

3.2.3 Thiết kế mô hình đèn giao thông 40

3.2.4 Sơ đồ nguyên lý của toàn mạch 41

CHƯƠNG 4 THI CÔNG HỆ THỐNG 43

4.1 Giới thiệu 43

4.2 Thi công hệ thống 43

4.2.1 Thi công bo mạch 43

4.2.2 Lắp ráp và kiểm tra 44

Trang 9

4.2.3 Thiết kế giao diện cho người điều khiển 45

4.3 Đóng gói và thi công mô hình 45

4.4 Lập trình hệ thống 46

4.4.1 Lập trình trên phần mềm matlab 46

4.4.1.1 Lưu đồ tổng quát trên matlab 46

4.4.1.2 Chi tiết về hệ thống 46

4.4.2 Lập trình trên kit arduino mega 2560 53

4.4.2.1 Lưu đồ tổng quát trên arduino 53

4.4.2.2 Chương trình điều khiển trên arduino 54

4.5 Viết tài liệu hướng dẫn sử dụng, tháo tác 60

4.5.1 Viết tài liệu hướng dẫn sử dụng 60

4.5.2 Quy trình thao tác trên giao diện 60

CHƯƠNG 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 61

5.1 Kết quả 61

5.2 Nhận xét 72

5.3 Đánh giá 73

CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 74

6.1 Kết luận 74

6.2 Hướng phát triển 74

TÀI LIỆU THAM KHẢO PHỤ LỤC

Trang 10

Hình Trang

Hình 2.1 Máy in 3D Makerbot điều khiển bằng Arduino Mega 2560 9

Hình 2.2: Xe tự hành 10

Hình 2.3: Ambilight dùng Arduino uno 10

Hình 2.4: Sơ đồ và chức năng chân Arduino Mega 2560 11

Hình 2.5: Giao tiếp 2 hệ thống dùng chuẩn UART 13

Hình 2.6: Nguyên lý hoạt động chuẩn UART 13

Hình 2.7 Sơ đồ chân LED 7 thanh Anode 14

Hình 2.8: Cấu tạo thanh led 7 đoạn 2 digit 14

Hình 2.9: Sơ đồ chân Led 7 đoạn loại 2 digit 15

Hình 2.10: Led đơn sắc 15

Hình 2.11: Sơ đồ chân led đơn sắc 15

Hình 2.12: Kết quả đầu ra của quá trình xử lý ảnh 16

Hình 2.13: Sơ đồ quá trình xử lý ảnh 16

Hình 2.14: Chuyển ảnh màu thành ảnh xám 19

Hình 2.15: Lược đồ xám 20

Hình 2.16: Ảnh xám và ảnh nhị phân 20

Hình 2.17: Ví dụ bộ lọc trung bình 22

Hình 2.18: Hiển thị ảnh bằng hàm imshow() 26

Hình 2.19: Hiển thị ảnh bằng hàm imagesc() 26

Hình 2.20: Chuyển đổi ảnh màu thành ảnh xám 27

Hình 2.21: Tăng cường độ tương phản của anh bằng hàm imadjust() 27

Hình 2.22: Chuyển đổi ảnh xám sang ảnh nhị phân 28

Hình 2.23: Ảnh đầu vào 29

Hình 2.24: Ảnh sau khi giản nở 29

Hình 2.25: Ảnh đầu vào 30

Hình 2.26: Ảnh sau khi xói mòn 30

Hình 2.27: So sánh ảnh gốc và ảnh sau khi xử lý bằng hàm bwareaopen() 31

Hình 3.1: Sơ đồ khối hệ thống 32

Hình 3.2: Sơ đồ nối dây vi điều khiển trong Broad Arduino Mega 34

Hình 3.3: Sơ đồ nối dây mạch nạp trong Arduino Mega 35

Trang 11

Hình 3.4: Sơ đồ nguyên lý led 7 đoạn 2 digit anode chung 36

Hình 3.5: Led 7 đoạn 2 digit thực tế 36

Hình 3.6: Led đơn màu xanh, đỏ, vàng thực tế 38

Hình 3.7 Sơ đồ kết nối led đơn với điện trở 38

Hình 3.8 Sơ đồ kết nối led 7 đoạn với điện trở 38

Hình 3.9: Mặt trên của mô hình sau khi thiết kế 40

Hình 3.10: Mặt dưới của mô hình sau khi thiết kế 41

Hình 3.11: Sơ đồ nguyên lý toàn mạch 42

Hình 4.1 Mô hình sau khi thi công 43

Hình 4.2 Hỉnh ảnh thực tế sau khi thi công 44

Hình 4.3 Giao diện điều khiển chính trên PC 45

Hình 4.4 Mô hình sau khi thi công 46

Hình 4.5 Sơ đồ khối tổng quát chính của hệ thống đếm đối tượng trên matlab 46

Hình 4.6 Lưu đồ xử lý ảnh đầu vào 48

Hình 4.7 Ảnh đầu vào 49

Hình 4.8 Ảnh nền 49

Hình 4.9 Ảnh được nhị phân 50

Hình 4.10 Ảnh sau khi giản nở điểm ảnh 51

Hình 4.11 Ảnh sau khi lấp lỗ trống 51

Hình 4.12 Ảnh sau khi sói mòn 52

Hình 4.13 Ảnh sau xóa các đối tượng nhỏ 52

Hình 4.14 Kết quả sau khi xử lý 53

Hình 4.15 Sơ đồ khối chương trình nhận dữ liệu từ Matlab sang Aruduino 53

Hình 4.16 Lưu đồ chương trình điều khiển ứng dụng trên Arduino 54

Hình 4.17 Quy trình thao tác với thuật toán đếm số lượng phương tiện 60

Hình 5.1 Giao diện điều khiển chính 61

Hình 5.2 Giao diện lựu chọn lưu lượng phương tiện để quan sát 61

Hình 5.3 Kết quả quan sát trên giao diện làn 1 khi ít xe 62

Hình 5.4 Kết quả quan sát trên mô hình làn 1 khi ít xe 63

Hình 5.5 Kết quả quan sát trên giao diện làn 2 khi ít xe 63

Hình 5.6 Kết quả quan sát trên mô hình làn 2 khi ít xe 64

Hình 5.7 Kết quả quan sát trên giao diện làn 1 khi vừa xe 65

Hình 5.8 Kết quả quan sát trên mô hình làn 1 khi vừa xe 66

Trang 12

Hình 5.9 Kết quả quan sát trên giao diện khi làn 2 vừa xe 66

Hình 5.10 Kết quả quan sát trên mô hình khi làn 2 vừa xe 67

Hình 5.11 Kết quả quan sát trên giao diện làn 1 khi đông xe 68

Hình 5.12 Kết quả quan sát trên mô hình làn 1 khi đông xe 69

Hình 5.13 Kết quả quan sát trên giao diện làn 2 khi đông xe 69

Hình 5.14 Kết quả quan sát trên mô hình làn 2 khi đông xe 70

Hình 5.15 Kết quả điều khiển bằng tay làn 1 71

Hình 5.16 Kết quả điều khiển bằng tay làn 2 71

Trang 13

Bảng Trang

Bảng 3.1: Mã hiển thị từ 0 – 9 loại anode chung .37

Bảng 3.2 Số giây đèn xanh ứng với số xe đếm được 39

Bảng 3.3 Liệt kê điện áp và dòng các linh kiện sử dụng trong mạch 39

Bảng 4.1 Danh sách các linh kiện 47

Bảng 5.1 Kết quả đếm xe làn 1 khi ít xe 64

Bảng 5.2 Kết quả đếm xe làn 2 khi ít xe 65

Bảng 5.3 Thống kê kết quả đếm xe làn 1 khi vừa xe 67

Bảng 5.4 Thống kê kết quả đếm xe làn 2 khi vừa xe 68

Bảng 5.5 Kết quả đếm xe làn 1 khi đông xe 70

Bảng 5.6 Kết quả đếm xe làn 2 khi đông xe 71

Trang 14

Sự phát triển nhanh chóng của nền kinh tế và lượng dân cư đông đúc Nhu cầu đi lại, vận chuyển cũng tăng lên nhanh chóng đi kèm theo nó là bài toán tắc nghẽn ùn tắc giao thông Ùn tắc giao thông gây thiệt hại không nhỏ cho sự phát triển kinh tế quốc gia, giảm hiệu suất lao động và tăng các chi phí không cần thiết trong quá trình sản xuất Trong bối cảnh kinh tế lạm phát và khó khăn như hiện nay, lãng phí trong giao thông lại đặt thêm một gánh nặng đối với đời sống kinh tế của người dân Nguyên nhân của vấn đề này một phần là do cơ sở hạ tầng chưa đáp ứng được nhu cầu lưu thông hiện nay, một phần là do việc phân chia, định thời gian của hệ thống đèn giao thông hiện tại ở các giao lộ chưa hợp lý khiến cho số lượng phương tiện giao thông bị ùn tắc theo thời gian rồi dẫn đến tắc nghẽn giao thông Qua thực trạng đó, nhóm muốn xây dựng một hệ thống điều thiết giao thông tự động, phân luồng trực tiếp và hiệu quả hơn phần nào đó giảm bớt tình trạng ùn tắc giao thông Đồng thời tiêu tiếp cận, bổ sung các kiến thức mới, cũng như củng cố lại những kỹ năng kiến thức trong suốt quá trình học tập tại trường

Do đó, nhóm thực hiện đồ án chọn đề tài: “Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh”

Nghiên cứu này nhằm mục tiêu phát triển giải thuật điều khiển hệ thống đèn giao thông cho một giao lộ, với chu kỳ đèn tín hiệu tùy thuộc vào tình trạng

xe lưu thông trên hai tuyến đường quan sát được bởi 2 camera Giải thuật đếm số lưu lượng xe trên đường được xây dựng để quyết định thời gian của chu kỳ đèn xanh kế tiếp cho tuyến đường tương ứng Hình ảnh thu được từ camera sẽ được phần mềm mô phỏng giả lập để kiểm chứng giải thuật điều khiển Kết quả mô phỏng cho thấy tuyến đường nào có lưu lương xe lớn hơn thì chu kỳ đèn xanh của tuyến đường đó dài hơn và ngược lại

Người thực hiện đề tài

Nguyễn Thái Dương Duy

Trang 16

Chương 1 TỔNG QUAN

1.1 ĐẶT VẤN ĐỀ.

Trong những năm gần đây, mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghệ nhưng xử lý ảnh đang được nghiên cứu và phát triển với tốc độ nhanh chóng bởi các trung tâm nghiên cứu, trường đại học và học viện… với rất nhiều ứng dụng trên các lĩnh vực khác nhau [1] Việc áp dụng công nghệ xử lý ảnh để tạo ra các thiết bị điện tử tự động hóa, phần nào đó thay thế được số lượng các cảm biến cần sử dụng giúp nhà đầu tư và người sử dụng vừa tiết kiệm được chi phí và nâng cao hiệu suất làm việc Trên thực tế các có rất nhiều bài toán đa dạng về các lĩnh vực công nghiệp, nông nghiệp, an ninh thậm chí là y tế được

giải quyết nhờ việc áp dụng công nghệ xử lý ảnh

Hiện nay với sự phát triển nhanh chóng của nền kinh tế nước nhà và lượng dân cư đông đúc Nhu cầu đi lại, vận chuyển cũng tăng lên nhanh chóng đi kèm theo nó là bài toán tắc nghẽn ùn tắc giao thông Ùn tắc giao thông gây thiệt hại không nhỏ cho sự phát triển kinh tế quốc gia, giảm hiệu suất lao động và tăng các chi phí không cần thiết trong quá trình sản xuất Trong bối cảnh kinh tế giảm phát và khó khăn như hiện nay, lãng phí trong giao thông lại đặt thêm một gánh nặng đối với đời sống kinh tế của người dân Nguyên nhân của vấn đề này một phần là do cơ sở hạ tầng chưa đáp ứng được nhu cầu lưu thông hiện nay, một phần là do việc phân chia, định thời gian của hệ thống đèn giao thông hiện tại ở các nút giao thông chưa hợp lý khiến cho số lượng phương tiện giao thông bị ùn tắc theo thời gian rồi dẫn đến tắc nghẽn giao thông Hiện tại có rất nhiều giải pháp để nâng cao hiểu phia chia thời gian các làn đường ở các nút giao thông trọng điểm Như lập trình bộ điều khiển tín hiệu theo khung giờ cao điểm, hay trực tiếp phân luồng bởi con người Tuy vậy các giải pháp chỉ mang tính tương đối và tốn tài nguyên về con nguời

Ở các quốc gia tiên tiến, giải pháp đưa ra là lắp đặt các hệ thống camera để

tự động điều tiết giao thông tại các giao lộ trọng yếu Trong quá trình phát triển

hệ thống kiểm soát giao thông, đã có rất nhiều công bố về việc nghiên cứu thông

Trang 17

qua mô phỏng và thực nghiệm nhằm tối ưu hóa các bộ điều khiển đèn tín hiệu Trong đó, các nghiên cứu điển hình về việc sử dụng kỹ thuật xử lý ảnh kết hợp với điều khiển mờ (fuzzy control) đèn tín hiệu đã được áp dụng thành công [6-9] Các hệ thống này có giá rất cao, ví dụ một hệ thống đèn giao thông thông minh thương mại sử dụng máy tính công nghiệp và các camera giám sát được giới thiệu bởi AdvanTech lên đến hàng tỉ đồng cho mỗi chốt giao thông[10]

Ở nước ta, hầu hết các hệ thống đèn giao thông hiện đại đều được nhập khẩu với giá thành cao và kèm theo hàng loạt các vấn đề cần khắc phục, do chúng ta chưa làm chủ được công nghệ Chẳng hạn, để lắp đặt 121 trụ đèn giao thông do Tây Ban Nha sản xuất, trong dự án “Tăng cường năng lực giao thông thành phố Hồ Chí Minh”, cần đến 3,5 triệu USD Tuy nhiên, chưa đầy một năm

sử dụng, chúng ta đã “phơi nắng” số tiền khổng lồ này, do các trụ đèn giao thông trên không hoạt động được[11] Năm 2007, Sở Giao Thông Công Chánh thành phố Hồ Chí Minh triển khai lắp đặt 48 chốt đèn gắn cảm biến để điều tiết giao thông tự động, bằng nguồn vốn ODA[12] Tuy vậy, mới sau một thời gian ngắn sử dụng, các chốt đèn giao thông này đã bị bệnh “nan y” Ủy Ban Nhân Dân thành phố Hồ Chí Minh phải chi hơn 8.456USD để mời chuyên gia nước ngoài “chẩn bệnh”[13] Rõ ràng làm chủ công nghệ đèn giao thông là nhu cầu thiết thực mà xã hội đã và đang đặt ra

Nghiên cứu này hướng tới việc kiểm chứng giải pháp thiết kế đèn giao thông có thể thay đổi được số giây đèn xanh cho mỗi làn đường để điều tiết lưu lương cho hợp lý dựa trên công nghệ xử lý ảnh Hệ thống dùng 2 camera hồng ngoại để quan sát 2 tuyến đường của 1 giao lộ Tuyến đường nào có lưu lượng

xe cao hơn thì chu kì đèn xanh tương ứng cho tuyến đường đó sẽ dài hơn tuyến đường còn lại

Do đó, nhóm thực hiện đồ án chọn đề tài: “Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh” Nhằm góp phần vào việc

xây dựng một phương pháp điều khiển đèn tín hiệu giao thông một cách hợp lý hơn, giúp tình trạng giao thông tại các ngã tư ở nước ta được ổn định hơn

Trang 18

1.2 MỤC TIÊU

Mục tiêu của đề tài là xây dựng hệ thống đếm đối tượng (phương tiện) qua

hình ảnh với đầu vào là ảnh có chứa đối tượng cần đếm từ ảnh chụp Thông qua

quá trình xử lý ảnh sẽ cho ra kết quả là số lượng phương tiện của mỗi làn đường

từ đó sẽ gửi dữ liệu xuống kít điều khiển arduino để điều khiển tín hiệu đèn giao

thông điều tiết giao thông

1.3 NỘI DUNG NGHIÊN CỨU

Mục tiêu xây dựng đề tài: “Thiết kế thi công hệ thống điều khiển tín hiệu

đèn giao thông thông qua xử lý ảnh” nhóm sẽ thực hiện những nội dung như

sau:

 NỘI DUNG 1: Tìm hiểu về kit Arduino Mega 2560

 NỘI DUNG 2: Tìm hiểu về phần mềm matlab

 NỘI DUNG 3: Cài đặt thư viện cho kit Arduino, cách kết nối Arduino với Matlab

 NỘI DUNG 4: Tìm hiểu các thuật phát hiện phương tiện giao thông,

nguyên lý hoạt động của đèn giao thông ở ngoài thực tế

 NỘI DUNG 5: Xây dựng quá trình xử lý ảnh đầu vào

 NỘI DUNG 6: Xây dựng hệ thống đếm phương tiện trong ảnh, lập trình

giao diện sử dụng để mô phỏng quá trình thu thập dữ liệu và gửi dữ liệu

xuống kit Arduino

 NỘI DUNG 7: Xây dựng chương trình điều khiển điều tín hiệu đèn giao

thông trên kit Arduino

 NỘI DUNG 8: Đánh giá kết quả thực hiện

1.4 GIỚI HẠN

 Mô hình gồm có kit Arduino Mega 2560, 2 Module led 7 đoạn loại 2

digit, 6 led đơn hiển thị đèn đỏ, xanh, vàng, máy tính laptop để thực hiện

hệ thống đếm đối tượng qua hình ảnh trên phần mềm Matlab sau đó gửi

dữ liệu xuống kit Arduino điêu khiển mô hình đèn giao thông

Trang 19

 Hệ thống đếm đối tượng ảnh đầu vào với ngõ vào là ảnh chụp từ camera, sau đó được xử lý bằng các phương pháp tiền xử lý ảnh đầu vào, thuật toán dán nhãn đối tượng, phát hiện và đếm số lương phương tiện có trong ảnh

Do điều kiện phải đặt camera ở trên cột đèn giao thông ngoài thực tế, điều

đó là bất khả thi với nhóm thực hiện đề tài Nên trong đề tài này nhóm thực hiện sẽ quay video của 2 làn đường ngoài thực tế bằng điện thoại Với mật

độ vừa phải trong điều kiện ánh sáng, thời tiết tốt vào ban ngày, sau đó nhúng vào Matlab được cài đặt trên PC để mô phỏng camera quay 2 làn đường

1.5 BỐ CỤC

Đồ án tốt nghiệp: “Ứng dụng xử lý ảnh thiết kế thi công hệ thống hệ thống điều khiển đèn tín hiệu giao thông” trình bày trong 6 chương với bố cục như sau:

 Chương 1: Tổng quan

Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án

 Chương 2: Cơ sở lý thuyết

Giới thiệu về phần Matlab, giới thiệu về Arduino, giới thiệu về xử lý ảnh Giới thiệu về kit Arduino, Module led 7 đoạn đôi

Giới thiệu về các phương pháp trong quá trình xử lý ảnh đầu vào Giới

thiệu về thuật toán phát hiện và đếm số lượng phương tiện

 Chương 3: Thiết kế và tính toán

Phân tích, xây dựng sơ đồ khối, sơ đồ phần cứng, thiết kế chương trình cho hệ thống đếm phương tiện qua hình ảnh được viết trên phần mềm Matlab Thiết kế giao diện mô phỏng quá trình thực hiện việc lấy ảnh và gửi dữ liệu qua Arduino Thiết kế chương trình nhận dữ liệu và điều khiển

hệ thống đèn giao thông trên Arduino

 Chương 4: Thi công hệ thống

Trang 20

Xây dựng chương trình hoàn chỉnh cho toàn hệ thống, các hàm, các lưu

đồ, các chương trình được sử dụng Lắp ráp và chạy chương trình Viết tài liệu hướng dẫn sử dụng, quy trình thao tác

 Chương 5: Kết quả, nhận xét và đánh giá

Nêu các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh giá kết quả thực thi được

 Chương 6: Kết luận và hướng phát triển

Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai

Trang 21

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 GIỚI THIỆU XỬ LÝ ẢNH.

Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt

là máy tính chuyên dụng riêng cho nó

Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ

sở khác Đầu tiên phải kể đến xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công cụ toán như đại số tuyến tính, xác xuất, thống kê Một số kiến thứ cần thiết như trí tuệ nhân tao, mạng nơron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh

Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân đôn đến New York từ những năm

1920 Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955 Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh sô thuận lợi Năm

1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và

vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng Các phương pháp tri thức nhân tạo như mạng nơ ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan[1]

Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như camera, máy chụp ảnh) Trước đây, ảnh thu qua camera là các ảnh tương tự (loại camera ống

Trang 22

kiểu CCIR) Gần đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo Máy ảnh số hiện nay là một thí dụ gần gũi Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằng máy quét ảnh

2.2 TỔNG QUAN VỀ MATLAB

MATLAB là viết tắt của "matrix laboratory", là ngôn ngữ lập trình cao cấp thế hệ thứ 4 của Mathworks MATLAB cung cấp môi trường tương tác để thực hiện tính toán và lập trình[3], …

MATLAB là ngôn ngữ lập trình do MathWorks phát triển, cho phép người dùng xây dựng ma trận, vẽ đồ thị hàm số hay biểu đồ dữ liệu, thực hiện các phép toán, tạo các giao diện người dùng, liên kết các chương trình máy tính được viết trên nhiều ngôn ngữ khác nhau, bao gồm cả C, C++, Java, và FORTRAN, phân tích dữ liệu, phát triển các thuật toán, tạo ra các mô hình và ứng dụng

MATLAB được tích hợp nhiều lệnh và các hàm toán học, giúp người dùng thực hiện tính toán các con số, vẽ đồ thị và thực hiện các phương pháp số

MATLAB được sử dụng rộng rãi trong mọi khía cạnh tính toán Dưới đây

là một số phép tính toán MATLAB được sử dụng phổ biến nhất:

 Giải tích và phương trình vi phân

 Tính toán số, tích phân, chuyển đổi, hồi quy, các hàm đặc biệt khác

Hệ thống Matlab gồm 5 phần chính:

Trang 23

 Ngôn ngữ Matlab: Cho phép lập trình từ các ứng dụng nhỏ đến phức tạp

Đó là các ngôn ngữ cao về ma trận và mảng, các dòng lệnh, các hàm, cấu trúc

dữ liệu vào

 Môi trường làm việc: Bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập dữ liệu Nó cũng bao gồm các công cụ phát triển, quản lý, gỡ rối và định hình M-file

 Xử lý đồ họa: Bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và

ba chiều, xử lý ảnh, ảnh động Cung cấp các giao diện tương tác giữa người sử dụng và máy tính

 Thư viện toán học: Các hàm cơ bản như cộng, trừ, nhân, chia, sin, cos,

…và các hàm phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library

 Giao diện người dùng (Application Program Interface): Cho phép viết chương trình tương tác với các ngôn ngữ khác C, Fortran,

Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các hệ thống động phi tuyến, mô phỏng mạch

2.3 GIỚI THIỆU LỊCH SỬ HÌNH THÀNH ARDUINO

Arduino là một bo mạch vi xử lý được dung để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít

am hiểu về điện tử và lập trình và điều hiển làm nên hiện tượng Arduino chính

là mức giá thấy với tính chấ nguồn mở từ phần cứng tới phần mềm chỉ với khoảng $30, người dung đã có thể sở hữu board Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị

Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduino, Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của

Trang 24

Interaction Design Instistute Ivrea (IDII) Mặt dù hầu như không được tiếp thị gì

cả, tin tức về arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nói đã sản sinh ra Arduino

Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây Ngay cả những sinh viên và nhà nghiên cứu tại các trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng; hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK dùng để phát triển các ứng dụng Android tương tác với cảm biến và các thiết bị khác

Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Sau đây là một số ứng dụng nổi bật của Arduino[4]

 Máy in 3D

Hình 2.1 Máy in 3D Makerbot điều khiển bằng Arduino Mega 2560

 Xe tự hành

Trang 25

Hình 2.2 Xe tự hành

 Ambilight

Hình 2.3 Ambilight dùng Arduino uno

2.4 GIỚI THIỆU PHẦN CỨNG

2.4.1 Kit Arduino Mega 2560

Trong mô hình này, những người thực hiện dùng Board Arduino Mega

2560 được tích hợp sẵn Vi điều khiển Atmega2560 cho số ngoại vi, các chuẩn giao tiếp và số chân nhiều nhất, bộ nhớ rất lớn (256KB), dễ dàng kết nối với Module Arduino Motor Shield, nếu có những ứng dụng cần mở rộng thêm nhiều chân, nhiều ngoại vi thì đây là một sự lựa chọn đáng giá, board hoàn toàn có cấu trúc chân tương thích với các board như Uno và chạy điện áp 5VDC Tất cả các Shield của Arduino Uno đều chạy được với Arduino Mega và Adruino Mega không dùng được thư viện SoftwareSerial vì đã có sẵn 4 bộ UART[4]

Trang 26

Hình 2.4 Sơ đồ và chức năng chân Arduino Mega 2560

 Một vài thông số của Arduino Mega:

 Arduino Mega sử dụng vi điều khiển Atmega2560

 Số chân Digital: 54 (15 chân PWM)

 Giao tiếp UART: 4 bộ UART

 Giao tiếp SPI: 1 bộ (chân 50 -> 53) dùng với thư viện SPI của Arduino

 Giao tiếp I2C: 1 bộ

 Ngắt ngoài: 6 chân

 Dòng tối đa trên mỗi chân I/O: 30 mA

 Các chân năng lượng:

 GND (Ground): cực âm của nguồn điện cấp cho Arduino Mega

 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA

Trang 27

 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA

 Vin (Voltage Input): để cấp nguồn ngoài cho Arduino Mega

 Bộ nhớ của Arduino mega 2560:

 256KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong

bộ nhớ Flash của vi điều khiển Sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng thường thì ít khi nào phải sử dụng quá 20kb bộ nhớ này

 8KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập trình sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM

 Chú ý: khi mất điện, dữ liệu trên SRAM sẽ bị mất

 4KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): tương tự như một chiếc ổ cứng mini – nơi có thể đọc và ghi

dữ liệu vào đây mà không phải lo bị mất khi mất điện giống như dữ liệu trên SRAM

Giao tiếp UART trong Arduino Mega:

Khái niệm giao tiếp UART: UART là chuẩn truyền thông nối tiếp bất đồng bộ (Universal Asynchronous Receiver – Transmitter) dùng để truyền nhận

dữ liệu giữa 2 hệ thống và không có phân biết chủ- tớ, giữa các hệ thống là ngang cấp nhau

Chuẩn UART gồm một đường phát dữ liệu và một đường nhận dữ liệu Để truyền dữ liệu giữa 2 hệ thống với nhau thì cả hai hệ thống phải tự tạo xung clock (CK) có cùng tần số (Tốc độ baud)

Trang 28

Hình 2.5 Giao tiếp 2 hệ thống dùng chuẩn UART

Nguyên lý hoạt động: Khi ở trạng thái chờ, mức điện áp của thiết bị truyền

ở mức 1 (high) Khi bắt đầu truyền dữ liệu, START bit sẽ chuyển từ 1 xuống 0

để báo hiệu cho thiết bị nhận là quá trình truyền dữ liệu sắp xảy ra Sau START bit là đến các bit dữ liệu D0-D7 Sau khi truyền hết dữ liệu thì đến Bit Parity để

bộ nhận kiểm tra tính đúng đắn của dữ liệu truyền Cuối cùng là STOP bit là 1 báo cho thiết bị nhận rằng các bit đã được gửi xong Thiết bị nhận sẽ tiến hành kiểm tra khung truyền (Frame) nhằm đảm báo tính đúng đắn của dữ liệu

Hình 2.6 Nguyên lý hoạt động chuẩn UART

Giao tiếp UART trong Arduino Mega: Trên Arduino Mega có hổ trợ một chuẩn giao tiếp UART đó là 4 chân D0 (RX) dùng để nhận dữ liệu chuẩn TTL

và D1(TX) dùng để truyền dữ liệu chuẩn TTL

2.4.2 Led quét 7 đoạn loại 2 digit

2.4.2.1 Led 7 đoạn

LED 7 đoạn hay LED 7 thanh là 1 linh kiện rất phổ dụng, được dùng như

là 1 công cụ hiển thị đơn giản nhất Trong LED 7 đoạn bao gồm ít nhất là 7 con LED mắc lại với nhau, vì vậy mà có tên là LED 7 đoạn là vậy, 7 LED đơn được

Trang 29

mắc sao cho nó có thể hiển thị được các số từ 0 - 9, và 1 vài chữ cái thông dụng,

để phân cách thì người ta còn dùng thêm 1 led đơn để hiển thị dấu chấm (dot)

 Led 7 thanh có 2 loại chính là:

- Chân Anode chung (chân + các led mắc chung lại với nhau.)

- Chân Catode chung (Chân - các led được mắc chung với nhau.)

 Thông số làm việc hoạt động ổn định điện áp 2.2VDC và dòng cấp 10 mA

Hình 2.7 Sơ đồ chân LED 7 thanh Anode

2.4.2.2 Led quét 7 đoạn loại 2 digit

Gồm 2 Led 7 đoạn được ghép chung các đường tín hiệu với nhau nhưng khác chân điều khiển

Hình 2.8 Cấu tạo thanh led 7 đoạn 2 digit

Trang 30

Hình 2.9 Sơ đồ chân Led 7 đoạn loại 2 digit

2.4.3 Led đơn

Gồm 3 led có màu khác nhau lục, vàng, đỏ để mô phỏng đền tín hiệu giao thông

Đối với led màu đỏ và vàng VF = 1.9-2.2 V, IF = 15-25mA

Đối với led màu lục VF = 3.0 -3.4 V, IF=15-25mA

Hình 2.10 Led đơn sắc

Hình 2.11 Sơ đồ chân led đơn sắc

2.5 QUY TRÌNH XỬ LÝ ẢNH

2.5.1 Xử lý ảnh là gì?

Trang 31

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

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

“tốt hơn” hoặc một kết luận

Hình 2.12 Kết quả đầu ra của quá trình xử lý ảnh

2.5.3 Quá trình tiền xử lý ảnh

Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn

2.5.4 Quá trình phân đoạn ảnh

Biểu diễn và

mô tả

Nhận diện và nội suy

Cơ sở tri thức

Kết luận

Trang 32

Để phân biệt các đối tượng trong ảnh, chúng ta cần phân biệt các đối tượng cần quan tâm với phần còn lại của ảnh, hay còn gọi là nền ảnh Những đối tượng này có thể này có thể phát hiện nhờ kỹ thuật phân đoạn ảnh Mỗi đối tượng trong ảnh được gọi là một vùng hay miền, đường bao quanh đối tượng gọi là đường biên Mỗi một vùng ảnh phải có một đặc tính đồng nhất Hình dáng của một đối tượng có thể được miêu tả hoặc bởi các tham số của đường biên hoặc các tham số của vùng mà nó chiếm giữ Có thể thấy kỹ thuật phát hiện biên và phân vùng ảnh là hai bài toán đối ngẫu của nhau Dò biên để phân vùng được ảnh và ngược lại phân vùng được ảnh ta có thể phát hiện được biên Có rất nhiều

kỹ thuật phân đoạn ảnh, nhìn chung ta có thể chia thành ba lớp khác nhau: Các

kỹ thuật cục bộ dựa vào các thuôc tính cục bộ của điểm ảnh và điểm láng giềng của nó Các kỹ thuật toàn thể: phân loại ảnh dựa trên thông tin chung của toàn

bộ ảnh (ví dụ sử dụng lược đồ xám của ảnh) Các kỹ thuật tách (split), hợp (merge) và growing sử dụng các khái niệm đồng nhất và gần về hình học Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này

2.5.5 Biểu diễn và mô tả

Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm

cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được

2.5.6 Nhận dạng và nội suy ảnh

Nhận dạng ảnh là quá trình xác định ảnh Quá trình thường thu được bằng cách so sánh với mẫu chuẩn đã được lọc hoặc lưu từ trước

Trang 33

Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng Có nhiều cách phân loại khác nhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toán học

về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:

và xử lý ảnh theo cách của con người Trong các bước đó, nhiều khâu hiện nay

đã xử lý theo các phương pháp trí tuệ con người Vì vây, ở đây các cơ sở tri thưc được phát huy

2.6 CÁC PHƯƠNG PHÁP XỬ LÝ CƠ BẢN VỚI MỘT ĐỐI TƯỢNG ẢNH ĐẦU VÀO

2.6.1 Chuyển đổi ảnh màu sang ảnh xám

Thông thường ảnh được thu về trước khi qua quá trình xử lý là những ảnh màu Đa số ảnh màu được tao ra bằng việc sử dụng các tổ hợp thích hợp của các cường độ ánh sáng đỏ (RED), xanh lục GREEN) và xanh lam (BLUE) Mỗi điểm ảnh được biểu thị bởi 24bit thông tin (trong tiếng Anh thông thường được

biết đến như bits per pixel hay bpp) Nó tương ứng với mỗi 8 bit cho màu đỏ,

xanh lá cây và xanh lam, tạo thành một tổ hợp 256 các giá trị có thể, hay 256 mức cường độ cho mỗi màu Với hệ thống như thế, khoảng 16,7 triệu màu rời rạc có thể tái tạo

Như vậy tương ứng với một bức khung có độ phân giải HD sẽ chứ 1280 x

720 x 24 = 22.118.400 bit điều này sẽ gây độ phức tạp rất lớn cho việc xử lý Vì vậy, ta cần giảm số bit thông tin biểu diễn 1 pixel để việc xử lý thuận tiện hơn bằng cách chuyển đổi từ ảnh màu sang ảnh xám[5]

Trang 34

Trong ảnh xám, mỗi pixel có giá trị 8 bits thông tin Ở mức này, cấu trúc ảnh vẫn giữ nguyên, giá trị ma trận ảnh đơn giản rất nhiều Phù hợp với quá trình xử lý chỉ quan tâm đến cấu trúc ảnh mà không cần đến màu sắc ảnh Công thức tổng quát được sử dụng phổ biến đổi ảnh màu thành ảnh xám là:

P = aCr + bCb + cCg (2.1)

Trên thực tế trong tài liệu phần mềm matlab cung cấp là hàm chuyển đổi ảnh màu sang ảnh xám rbg2gray() có định nghĩa sẵn các trọng số a, b, c cụ thể trong công thức dưới đây:

P = 0.299 * Cr + 0.587 * Cg + 0.114 * Cb (2.2)[14]

Trong đó: Cr, Cb, Cg là các giá trị mức màu R, B, G Tùy theo mức độ thu nhận ảnh màu gốc hoặc tùy theo các thiết bị thu nhận mà hệ số a, b, c có các giá trị khác nhau sao cho (a+b+c) <=1

Trên thực tế thường sử dụng 2 công thức dưới đây để chuyển đổi ảnh màu sang ảnh xám

Hình 2.14 Chuyển ảnh màu thành ảnh xám

Do ảnh đôi khi được chụp ở nơi quá sáng hay quá tối sẽ làm cấu trúc ảnh sau khi chuyển đổi thành ảnh xám sẽ không rõ ràng, để có thể làm nổi bật cấu trúc ảnh lên Ta có thể dựa vào lược đồ xám để điều chỉnh đô tương phản giúp ảnh rõ hơn Vậy là lược đồ xám là gì?

Trang 35

Lược đồ xám: Là một biểu đồ với trục tung là mức xám, trục hoành là các pixel Lược đồ này biểu diễn tần suất xuất hiện của các mức xám trên ảnh

Để nhị phân hóa ảnh, ta dựa vào ngưỡng xám trung bình, nếu lớn hơn thì đưa giá trị về 1, nhỏ hơn thì đưa về 0 (thực chất là mức 0 và 255 thể hiện 2 màu đen

và trắng)

Hình 2.16 Ảnh xám và ảnh nhị phân

Trang 36

2.6.3 Các phương pháp lọc nhiễu ảnh nhằm cải thiện ảnh

Hình ảnh sau khi thu nhận cần qua một bước tiền xử lý và lọc ảnh, đây là công đoạn gần như bắt buộc bởi ảnh nhận được hầu hết đều có nhiễu, mờ nên cần loại bỏ nhiễu và làm rõ nét hơn để cho ảnh có chất lượng tốt để đem sử dụng Các kỹ thuật tăng cường ảnh được phân nhóm theo công dụng: làm trơn nhiễu, nổi biên Để làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyến tính (lọc trung bình, thông thấp) hay lọc phi tuyến (trung vị, giả trung vị, lọc đồng hình) Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ

cơ sở lý thuyết lọc là: bộ lọc chỉ cho tín hiệu có tần số nào đó thông qua do đó,

để lọc nhiễu người ta thường dùng lọc thông thấp (theo quan điểm tần số không gian) hay lấy tổ hợp tuyến tính để san bằng (lọc trung bình) Để làm nổi cạnh (ứng với tần số cao), người ta dùng các bộ lọc thông cao, lọc Laplace

Trên thực tế tồn tại nhiều loại nhiễu; tuy nhiên người ta thường xem xét 3 loại nhiễu chính: nhiễu cộng, nhiễu nhân và nhiễu xung:

 Nhiễu cộng thường phân bố khắp ảnh Nếu gọi ảnh quan sát (ảnh thu được) là Xqs, ảnh gốc là Xgốc, nhiễu là η, ảnh thu được có thể biểu diễn bởi:

Xqs = Xgốc + η (2.3)

 Nhiễu nhân thường phân bố khắp ảnh và ảnh thu được sẽ biểu diễn với công thức:

Xqs = Xgốc * η (2.4)

 Nhiễu xung thường gây đột biến tại một số điểm ảnh

2.6.4 Làm trơn nhiễu bằng lọc tuyến tính

Do có nhiều loại nhiễu can thiệp vào quá trình xử lý ảnh nên cần có nhiều

bộ lọc thích hợp Với nhiễu cộng và nhiễu nhân ta dùng các bộ lọc thông thấp, trung bình và lọc đồng hình (Homomorphie); với nhiễu xung ta dùng lọc trung

bị, giả trung vị, lọc ngoài (Outlier)

a) Lọc trung bình không gian

Lọc trung bình là kĩ thuật lọc tuyến tính, hoạt động như một bộ lọc thông

Trang 37

lọc (ma trận 3x3) quét qua lần lượt từng điểm ảnh của ảnh đầu vào input Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3x3 của ảnh gốc "lấp" vào ma trận lọc Giá trị điểm ảnh của ảnh đầu ra là giá trị trung bình của tất cả các điểm ảnh trong cửa sổ lọc Việc tính toán này khá đơn giản với hai bước gồm tính tổng các thành phần trong cửa sổ lọc và sau đó chia tổng này cho

số các phần tử của cửa sổ lọc

Với lọc trung bình, mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận và được mô tả theo công thức sau:

v(m,n) = ∑ ∑( , ) ( − , − ) (2.5) Với: y(m, n): ảnh đầu vào

 Nó có thể được thực hiện với một mặt nạ cuộn trong đó tất cả các hệ số

đều bằng 1/N Bộ lọc này sẽ có khuynh hướng làm nhèo ảnh trong khi

làm giảm bớt hiệu ứng của nhiễu

Trang 38

 Có thể thấy rằng kích thước mặt nạ càng lớn, thì hiệu ứng nhòe càng rõ

rệt

 Kiểu bộ lọc này làm việc tốt nhất với các loại nhiễu Gauss và nhiễu phân

bố đều

b) Lọc thông thấp

Lọc thông thấp thường được sử dụng để làm trơn nhiễu Về nguyên lý của

bộ lọc thông thấp giống như đã trình bày trên Trong kỹ thuật này người ta hay

Ta dễ dàng nhận thấy khi b =1, Hb chính là nhân chập Ht1 (lọc trung

bình) Để hiểu rõ hơn bản chát khử nhiễu cộng của các bộ lọc này, ta viết lại

phương trình thu nhận ảnh dưới dạng:

Kỹ thuật lọc này hiệu quả với ảnh có nhiễu nhân Thực tế, ảnh quan sát

được gồm ảnh gốc nhân với một hệ số nhiễu Gọi X (m, n) là ảnh thu được,

X(m, n) là ảnh gốc và η(m, n) là nhiễu, như vậy:

X(m, n) = X (m, n) * η(m, n ) (2.8)

Lọc đồng hình thực hiện lấy logarit của ảnh quan sát Do vậy ta có kết

quả sau:

Trang 39

Rõ ràng, nhiễu nhân có trong ảnh sẽ bị giảm Sau quá trình lọc tuyến tính,

ta chuyển về ảnh cũ bằng phép biến đổi hàm e mũ

2.6.5 Làm trơn nhiễu bằng lọc phi tuyến

Các bộ lọc phi tuyến cũng hay đượ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ị, giả trung vị, lọc ngoài Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểm ảnh còn lọc giả trung vị sẽ dùng trung bình cộng của 2 giá trị “trung vị” (trung bình cộng của max và min)

d) Lọc trung vị

Trung vị được viết với công thức:

V(m, n) = Trungvi( ) y(m – k, n – l) với {k, l} ∈W (2.10)

Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong cửa sổ phải xếp theo thứ tự tăng hay giảm dần so với giá trị trung vị Kích thước cửa số thường được chọn sao cho số điểm ảnh trong cửa số là lẻ Các cửa sổ hay dùng là cửa sổ có kích

thước 3x3, hay 5x5 hay 7x7

 Tính chất của lọc trung vị:

 Lọc trung vị là loại lọc phi tuyến Điều này dẽ nhận thấy từ:

Trungvi(x(m)+y(m)) ≠ Trungvi(x(m)) + Trungvi(y(m)) (2.11)

 Có lợi cho việc loại bỏ các điểm ảnh hay các 24ang mà vẫn bảo toàn độ phân giải

Hiệu quả giảm khi số điểm trong cửa sổ lớn hay bằng một nửa số điểm trong cửa sổ

Điều này dễ giải thích vì trung vị là (Nw+1)/2 giá trị lớn nhất nếu Nw lẻ

Lọc trung vị cho trường hợp 2 chiều coi như lọc trung vị tách được theo từng chiều

2.6.6 Phân vùng ảnh:

Phân vùng ảnh là một quá trình chia một bức ảnh số thành nhiều phần khác nhau (tập hợp các điểm ảnh, hay có thể gọi là superpixels) Mục tiêu của phân vùng ảnh là để đơn giản hóa và hoặc thay đổi biểu diễn của một tấm ảnh vào

Trang 40

sử dụng để xác định vị trí các đối tượng, đường biên (đường thẳng, cong, …) Hay nói cách khác phân vùng ảnh là một quá trình gán nhãn (assigning a lablel) cho mỗi điểm ảnh trong một bức ảnh, các điểm ảnh trong cùng một nhãn sẽ có

những đặc tính giống nhau về màu sắc, cường độ hoặc kết cấu của ảnh

Kết quả của việc phân vùng ảnh là tập hợp các phân đoạn (segments) bao gồm có thể là toàn bộ bức ảnh hoặc tập hợp các đường biên chiết xuất từ hình ảnh Các điểm ảnh trong cùng một vùng có đặc tính tương tự nhau về màu sắc, cường độ hoặc kết cấu Các vùng lân cận thì khác nhau đáng kể về các đặc trưng trên

Phân vùng ảnh là một bước quan trọng trong nhiều lĩnh vực khác nhau như lĩnh vực hình ảnh y tế (medical imaging), phát hiện và nhận dạng đối tượng, hệ thống camera giám sát, hệ thống điều khiển giao thông, … Kỹ thuật này là bước tiền xử lý quan trọng trong hầu hết các hệ thống xử lý ảnh, kết phân vùng tốt sẽ giúp cho quá trình xử lý về sau đạt hiệu quả cao hơn nhằm tiết kiệm về chi phí tính toán, thời gian cũng như tăng độ chính xác của các ứng dụng trên

2.7 CÁC HÀM CƠ BẢN ĐƯỢC SỬ DỤNG TRONG QUA TRÌNH PHÁT HIỆN VÀ ĐẾM SỐ LƯỢNG PHƯƠNG TIỆN TRONG ĐỀ TÀI[3]

2.7.1 Hàm imread()

Lệnh imread() sẽ đọc một file thành một ma trận Matlab trợ giúp rất nhiều

định dạng đồ hoạ thông dụng chẳng hạn: BMP, GIF, JPEG, PNG, TIFF … Để biết thêm các kiểu gọi hàm và tham số truyền vào, xem trợ giúp online của

Matlab Kết quả trả về của hàm imread() là một ma trận có cùng kích thước với

ảnh đầu vào

2.7.2 Hàm imshow() và imagesc()

Để hiển thị hình ảnh trong matlab ta dùng 2 lệnh sau imshow() và imagesc() Lệnh imshow () cho chúng ta một hình ảnh trong định dạng tiêu chuẩn là 8-bit, giống như trong một trình duyệt web Lệnh imagesc () hiển thị các hình ảnh trên các trục đồ thị với giá trị min là màu đen và giá trị tối đa là màu trắng

Ngày đăng: 08/01/2020, 16:04

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w