Đồ Án Tốt Nghiệp: Thiết Kế Hệ Thống Điều Khiển Đèn Giao Thông Bằng Xử Lý Ảnh

Đồ án nghiên cứu 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, thiết kế chi tiết, tính toán kỹ thuật theo tiêu chuẩn, đánh giá tính

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2018

116
24
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN

1.1. Giới thiệu xử lý ảnh

1.2. Tổng quan về Matlab

1.3. Giới thiệu về lịch sử hình thành Arduino

1.4. Giới thiệu phần cứng

1.4.1. Kit Arduino Mega 2560

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

1.5. Quy trình xử lý ảnh

1.5.1. Xử lý ảnh là gì?

1.5.2. Quá trình thu nhận ảnh

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

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

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

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

1.5.7. Cơ sở tri thức

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

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

1.6.2. Nhị phân hóa ảnh

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

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

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

1.6.6. Phân vùng ảnh

1.6.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

1.6.7.1. Hàm rgb2gray()
1.6.7.2. 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()

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

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

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

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

3.1.1. Thiết kế sơ đồ khối hệ thống

3.1.2. Thiết kế các khối hệ thống

3.1.3. Thiết kế mô hình đèn giao thông

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

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

4.1. Thi công hệ thống

4.1.1. Thi công bo mạch

4.1.2. Lắp ráp và kiểm tra

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

4.2. Đóng gói và thi công mô hình

4.3. Lập trình hệ thống

4.3.1. Lập trình trên phần mềm Matlab

4.3.1.1. Lưu đồ tổng quát trên Matlab
4.3.1.2. Chi tiết về hệ thống

4.3.2. Lập trình trên kit Arduino Mega 2560

4.3.2.1. Lưu đồ tổng quát trên Arduino
4.3.2.2. Chương trình điều khiển trên Arduino

4.4. Viết tài liệu hướng dẫn sử dụng, thao tác

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

4.4.2. Quy trình thao tác trên giao diện

5. CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ

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

6.1. Kết luận

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

TÀI LIỆU THAM KHẢO

PHỤ LỤC

Tóm tắt

I. Giới thiệu về hệ thống điều khiển đèn giao thông thông qua xử lý ảnh

Hệ thống điều khiển đèn giao thông thông qua xử lý ảnh là một giải pháp hiện đại nhằm tối ưu hóa việc điều tiết giao thông tại các nút giao thông. Đề tài 'Thiết kế hệ thống điều khiển đèn giao thông thông qua xử lý ảnh - Đồ án tốt nghiệp' tập trung vào việc sử dụng công nghệ xử lý hình ảnh để đếm số lượng phương tiện giao thông và điều chỉnh thời gian đèn giao thông một cách tự động. Hệ thống này sử dụng MatlabArduino Mega 2560 để xử lý dữ liệu từ video đầu vào và điều khiển các module LED.

1.1. Mục tiêu của đề tài

Mục tiêu chính của đề tài là thiết kế hệ thống đếm phương tiện giao thông thông qua xử lý ảnh và điều khiển tín hiệu đèn giao thông dựa trên lưu lượng xe. Hệ thống sử dụng công nghệ xử lý ảnh để phân tích video đầu vào, đếm số lượng xe, và gửi dữ liệu xuống Arduino để điều khiển đèn giao thông. Điều này giúp giảm thiểu tình trạng ùn tắc và tăng hiệu quả giao thông.

1.2. Các thành phần chính của hệ thống

Hệ thống bao gồm các thành phần chính như Arduino Mega 2560, Module LED 7 đoạn, và Matlab để xử lý ảnh. Arduino đóng vai trò là bộ điều khiển trung tâm, nhận dữ liệu từ Matlab và điều khiển các đèn giao thông. Matlab được sử dụng để xử lý video đầu vào, áp dụng các thuật toán xử lý hình ảnh như chuyển đổi ảnh màu sang ảnh xám, nhị phân hóa ảnh, và đếm số lượng phương tiện.

II. Quy trình xử lý ảnh trong hệ thống

Quy trình xử lý ảnh trong hệ thống bao gồm các bước chính như thu nhận ảnh, tiền xử lý ảnh, phân đoạn ảnh, và đếm số lượng phương tiện. Xử lý ảnh trong giao thông là một phần quan trọng giúp hệ thống nhận diện và đếm chính xác số lượng xe trên đường. Các thuật toán như chuyển đổi ảnh màu sang ảnh xám, nhị phân hóa ảnh, và lọc nhiễu được áp dụng để cải thiện chất lượng ảnh đầu vào.

2.1. Thu nhận và tiền xử lý ảnh

Bước đầu tiên trong quy trình là thu nhận ảnh từ video đầu vào. Sau đó, ảnh được tiền xử lý bằng cách chuyển đổi sang ảnh xám và nhị phân hóa để loại bỏ nhiễu. Các hàm như rgb2gray()imbinarize() trong Matlab được sử dụng để thực hiện các bước này. Tiền xử lý ảnh giúp tăng độ chính xác của quá trình đếm phương tiện.

2.2. Phân đoạn và đếm phương tiện

Sau khi tiền xử lý, ảnh được phân đoạn để xác định các đối tượng (phương tiện giao thông). Các thuật toán như dán nhãn đối tượng và lọc nhiễu được áp dụng để đếm số lượng xe. Kết quả đếm được gửi xuống Arduino để điều khiển đèn giao thông. Quá trình này đảm bảo rằng hệ thống phản ứng kịp thời với sự thay đổi lưu lượng xe.

III. Thiết kế và thi công hệ thống

Thiết kế hệ thống bao gồm việc xây dựng sơ đồ khối, thiết kế phần cứng, và lập trình phần mềm. Hệ thống được thiết kế để hoạt động tự động, sử dụng ArduinoMatlab để xử lý dữ liệu và điều khiển đèn giao thông. Thi công hệ thống bao gồm lắp ráp các thành phần phần cứng và kiểm tra hoạt động của hệ thống.

3.1. Thiết kế phần cứng

Phần cứng của hệ thống bao gồm Arduino Mega 2560, Module LED 7 đoạn, và các đèn LED đơn. Arduino được kết nối với Matlab để nhận dữ liệu đếm phương tiện và điều khiển các đèn giao thông. Sơ đồ nguyên lý và kết nối các thành phần được thiết kế chi tiết để đảm bảo hệ thống hoạt động ổn định.

3.2. Lập trình phần mềm

Phần mềm được phát triển trên Matlab để xử lý ảnh và đếm phương tiện. Các hàm và thuật toán xử lý ảnh được tích hợp vào chương trình để đảm bảo độ chính xác. Arduino được lập trình để nhận dữ liệu từ Matlab và điều khiển đèn giao thông dựa trên lưu lượng xe. Quy trình lập trình được kiểm tra và hiệu chỉnh để đảm bảo hệ thống hoạt động hiệu quả.

IV. Kết quả và đánh giá hệ thống

Hệ thống được đánh giá dựa trên độ chính xác của việc đếm phương tiện và hiệu quả điều khiển đèn giao thông. Kết quả thử nghiệm cho thấy hệ thống hoạt động ổn định và có khả năng ứng dụng thực tế. Hệ thống giao thông thông minh này có thể giúp giảm thiểu tình trạng ùn tắc và tăng hiệu quả giao thông tại các nút giao thông.

4.1. Đánh giá độ chính xác

Hệ thống được thử nghiệm với các video đầu vào khác nhau để đánh giá độ chính xác của việc đếm phương tiện. Kết quả cho thấy hệ thống đạt độ chính xác cao trong việc nhận diện và đếm số lượng xe. Các thuật toán xử lý ảnh được áp dụng hiệu quả, giúp hệ thống hoạt động ổn định trong các điều kiện ánh sáng khác nhau.

4.2. Ứng dụng thực tế

Hệ thống có tiềm năng ứng dụng thực tế tại các nút giao thông đông đúc. Hệ thống giao thông tự động này có thể giúp giảm thiểu tình trạng ùn tắc và tăng hiệu quả điều tiết giao thông. Việc sử dụng công nghệ xử lý ảnhArduino giúp hệ thống có chi phí thấp và dễ dàng triển khai.

12/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1. TỔNG QUAN 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.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 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 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 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 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 quyết các vấn đề ma trận và mảng.

 Đại số tuyến tính.  Phương trình đại số.  Các hàm phi tuyến tính.  Số liệu thống kê.

 Phân tích dữ liệu.  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: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT  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.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 giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 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 Makerbot điều khiển bằng Arduino Mega 2560.

 Xe tự hành. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2. Xe tự hành.

Ambilight dùng Arduino uno.4 GIỚI THIỆU PHẦN CỨNG.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]. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10 CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT Hình 2. 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.  Điện áp hoạt động: 5V - DC.

 Tần số hoạt động: 16 MHz.  Dòng điện áp: 30 mA.  Điện áp giới hạn: 7-9V - DC.  Số chân Analog: 16.

 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. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11 CHƯƠNG 2. 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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Thiết kế hệ thống điều khiển đèn giao thông thông qua xử lý ảnh - Đồ án tốt nghiệp là một nghiên cứu chuyên sâu về việc ứng dụng công nghệ xử lý ảnh để tối ưu hóa hệ thống đèn giao thông. Bài viết tập trung vào việc phân tích hình ảnh từ camera để phát hiện mật độ phương tiện, từ đó điều chỉnh thời gian đèn giao thông một cách linh hoạt và hiệu quả. Điều này không chỉ giúp giảm ùn tắc giao thông mà còn tiết kiệm năng lượng và nâng cao an toàn cho người tham gia giao thông.

Để hiểu rõ hơn về các ứng dụng khác của xử lý ảnh trong thực tế, bạn có thể tham khảo Luận văn thạc sĩ khoa học máy tính thu thập thông số giao thông dựa trên hình ảnh, nghiên cứu này cung cấp góc nhìn sâu hơn về việc phân tích giao thông thông qua hình ảnh. Ngoài ra, Đồ án hcmute ứng dụng xử lí ảnh phát hiện người và báo động dùng sim900 cũng là một tài liệu thú vị, giúp bạn khám phá cách xử lý ảnh được áp dụng trong hệ thống an ninh. Cuối cùng, Đồ án hcmute ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm sẽ mở rộng kiến thức của bạn về việc sử dụng công nghệ này trong lĩnh vực công nghiệp.

Những bài viết này không chỉ bổ sung kiến thức mà còn giúp bạn có cái nhìn toàn diện hơn về tiềm năng của xử lý ảnh trong nhiều lĩnh vực khác nhau.