Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 88 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
88
Dung lượng
2,75 MB
Nội dung
MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii LIỆT KÊ HÌNH viii LIỆT KÊ BẢNG xi TÓM TẮT xii Chương 1.TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT 2.1 QUY TRÌNH XỬ LÝ ẢNH 2.1.1 Tổng quan xử lý ảnh 2.1.2 Các trình xử lý ảnh a Thu nhận ảnh b Tiền xử lý c Phân đoạn d Tách đặc tính e Nhận dạng giải thích 2.1.3 a Ảnh biễu diễn ảnh Khái niệm ảnh đen trắng, ảnh màu, ảnh đa cấp xám iii Biểu diễn ảnh: b 2.1.4 Phạm vi ứng dụng xử lý ảnh 10 2.1.5 Các kiểu định dạng xử lý ảnh 11 2.1.6 Thư viện OpenCV 11 2.1.7 Quy trình xác định tốc độ xe 11 2.2 QUY TRÌNH XỬ LÝ DỮ LIỆU 13 2.2.1 Mơ tả q trình truyền nhận liệu 13 a Tìm hiểu webserver 13 b Giới thiệu Google spreadsheet 13 c Q trình truyền nhận liệu thơng qua Webserver 13 2.2.2 2.3 Hiển thị liệu 13 GIỚI THIỆU PHẦN CỨNG 14 2.3.1 Kit Raspberry Pi 14 a Giới thiệu sơ lược Raspberry Pi 14 b Thông số kỹ thuật 16 c Chức 17 2.3.2 ESP8266 Node MCU 17 a Giới thiệu sơ lược ESP8266 NodeMCU 17 b Thông số kỹ thuật 17 c Chức 18 2.3.3 Arduino UNO R3 18 a Cấu tạo 18 b Thông số kỹ thuật 19 c Chức 19 2.3.4 a Camera Raspberry Pi V1 5MP 19 Cấu tạo 19 iv b Thông số kỹ thuật 20 c Chức 20 2.3.5 Led matrix trời P10 20 a Cấu tạo 20 b Thông số kỹ thuật 21 c Chức 21 Chương TÍNH TỐN VÀ THIẾT KẾ 22 3.1 GIỚI THIỆU 22 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 22 3.2.1 Tính tốn thiết kế 22 a Phương pháp luồng quang lượng 22 b Phương pháp Lucas- Kanade 24 c Xác định tốc độ xe 26 3.2.2 Thiết kế sơ đồ khối hệ thống 26 3.2.3 Sơ đồ nguyên lý hệ thống 28 Chương THI CÔNG HỆ THỐNG 29 4.1 GIỚI THIỆU 29 4.2 PHẦN CỨNG HỆ THỐNG 29 4.2.1 Mạch điều khiển đèn tín hiệu giao thơng 29 a Giới thiệu sơ lược hệ thống đèn tín hiệu giao thơng 29 b Thi cơng mạch tín hiệu giao thông 29 4.2.2 Lắp ráp module xử lý ảnh đo tốc độ 30 a Lắp đặt module nguồn 30 b Lắp đặt module Pi camera 30 c Lắp đặt module Pi 32 4.2.3 Lắp đặt module điều khiển hiển thị thông tin 32 v a Module nguồn 32 b Module ESP8266 NodeMCU 33 c Lắp đặt module quang báo 33 4.3 PHẦN MỀM HỆ THỐNG 33 4.3.1 Phần mềm lập trình 44 4.3.1.1 Python IDLE 44 a Giới thiệu phần mềm lập trình 44 b Các bước tạo project 45 c Các câu lệnh python 46 d Viết chương trình hệ thống 47 4.3.1.2 Arduino IDE 51 a Giới thiệu phần mềm lập trình 51 b Cài đặt sử dụng Arduino IDE 51 c Viết chương trình cho hệ thống 54 4.3.2 Lập trình Google Spreadsheet Google Script 58 4.3.2.1 Google Spreadsheet 58 a Giới thiệu Google Spreadsheet 58 b Tạo sử dụng Spreadsheet 59 4.3.2.2 4.4 Google Script 60 a Giới thiệu Google Script 60 b Tạo dự án Google Script 61 c Viết chương trình cho Google Script 63 TÀI LIỆU HƯỚNG DẪN THAO TÁC SỬ DỤNG 63 Chương KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ 67 5.1 KẾT QUẢ THU ĐƯỢC BẰNG HÌNH ẢNH 69 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71 vi 6.1 KẾT LUẬN 71 6.2 HƯỚNG PHÁT TRIỂN 71 TÀI LIỆU THAM KHẢO 72 PHỤ LỤC 73 vii LIỆT KÊ HÌNH Hình Trang Hình 2.1: Q trình xử lý ảnh Hình 2.2: Mơ tả cấu tạo ảnh số Hình 2.3:Kết cho hình ảnh nhị phân Hình 2.4: kết hình ảnh cho ảnh màu Hình 2.5: kết hình ảnh cho ảnh xám Hình 2.6: Vùng lân cận điểm ảnh 10 Hình 2.7: quy trình hệ thống 12 Hình 2.8: Giới thiệu Raspberry Pi chân kết nối 14 Hình 2.9: Chân giao tiếp Raspberry Pi 16 Hình 2.10: Hình ảnh module ESP8266 NodeMCU 17 Hình 2.11: Hình ảnh thực tế board Arrduino UNO R3 18 Hình 2.12: Module camera Raspberry Pi V1 20 Hình 2.13: Mặt trước, sau led matrix P10 20 Hình 3.1: trình hình thành luồng quang 23 Hình 3.2: hình thành luồng quang có chuyển động 23 Hình 3.3: thay đổi vị trì luồng quang ứng với thời điểm 24 Hình 3.4: Biểu diễn ba trường hợp I 25 Hình 3.5: Sơ đồ khối tổng quan hệ thống 27 Hình 3.6: Sơ đồ tổng qt mơ hình 28 Hình 4.1: mạch in hệ thống đèn tín hiệu giao thơng 29 Hình4.2: Thơng số apdapter nguồn cung cấp 30 Hình4.3: Pi camera dây bus kết nối 30 Hình4.4: Kết nối module Pi camera với kít Raspberry 31 Hình4.5: Hình ảnh quan sát từ camera xuống lịng đường 31 viii Hình 4.6: Vị trí lắp đặt board Pi camera 32 Hình 4.7: Lắp đặt module quang báo mơ hình 33 Hình 4.8: Lưu đồ hệ thống 34 Hình 4.9: Lưu đồ chương trình đo tốc độ xử lý liệu 35 Hình 4.10: Lưu đồ chương trình gởi liệu lên webserver 37 Hình 4.11: chương trình truy xuất liệu từ webserver 39 Hình 4.12: chương trình nhận liệu từ Web Server 40 Hình4.13 điều khiển đèn giao thông theo liệu Web Server 41 Hình 4.14: Lưu đồ hiển thị bảng quang báo 42 Hình4.15: Lưu đồ chương trình ngắt timer điều khiển bảng quang báo 43 Hình 4.16: Khởi động python IDLE 44 Hình 4.17: Ví dụ REPL 44 Hình 4.18: Tạo file định dạng với định dạng Python 45 Hình 4.19: Đặt tên cho file 45 Hình4.20: Mở file Khoa.py 45 Hình 4.21: Viết chương trình 46 Hình 4.22: Giao diện chạy chương trình 46 Hình 4.23: Thụt đầu dịng lệnh for 46 Hình 4.24: Sử dụng biến 47 Hình 4.25: Ghi python 47 Hình 4.26: Giao diện Arduino IDE 52 Hình 4.27: File menu 52 Hình 4.28: Ví dụ mẫu 53 Hình 4.29: Edit menu 53 Hình 4.30: Chọn board 54 Hình 4.31: Giao diện bảng Spreadsheet 59 ix Hình 4.32: Đăng nhập vào tài khoản Gmail 59 Hình 4.33: Tạo google sheets 60 Hình 4.34: Tạo google sheets 60 Hình 4.35: Logo Google Script 61 Hình 4.36: Giao diện lập trình Google Script 62 Hình 4.37: Click vào Publish → Chọn Deploy as web app… 62 Hình 4.38: Cấp quyền truy cập 63 Hình4.39: Đăng nhập vào wifi 64 Hình4.40: Mở Terminal 64 Hình4.41: Tập tin chương trình 65 Hình4.42: Điền thơng tin mạng wifi 65 Hình4.43: Nạp chương trình cho module 66 Hình 5.1: Mơ trình truyền liệu lên webserver 68 Hình 5.2: Kết liệu gởi lên google spreadsheet 68 Hình 5.3: Kết liệu nhận ESP8266 68 Hình 5.4: Kết liệu nhận Uno thơng qua ESP8266 69 Hình 5.5: Giai đoạn chuẩn bị 69 Hình 5.6: Mơ hình hồn chỉnh 70 x LIỆT KÊ BẢNG Bảng Trang Bảng 2.1 thông số kỹ thuật Raspberry pi 16 Bảng 2.2: thông số kỹ thuật ESP8266 NodeMCU 17 Bảng 2.3: thông số kỹ thuật Arduino Uno R3 19 Bảng 2.4: thông số kỹ thuật camera Pi 20 Bảng 2.5: thông số kỹ thuật module led matrix P10 21 xi TÓM TẮT Sau nhận gợi ý đề tài từ ThS Trương Quang Phúc, nhóm tiến hành tìm hiểu tài liệu liên quan đến nội dung để tài Thông qua thống ý kiến, tham khảo lời khuyên GVHD, dựa theo yêu cầu hạn chế đồ án trước kết hợp với lượng kiến thức học Bắt đầu từ việc tìm hiểu tài liệu liên quan tới xử lý ảnh, ứng dụng thực tế xử lý ảnh Các khái niệm như: numpy, scipy…Thư viện OpenCV việc nhận dạng, xử lý ảnh Module camera gắn kit Raspberry có nhiệm vụ quay video, Raspberry có nhiệm vụ xử lý ảnh thơng qua tính tốn tìm tốc độ Sau liệu truyền lưu webserver ESP8266 NodeMCU có nhiệm vụ truy cập vào webserver lấy liệu Raspberry gởi lên lưu webserver lưu nhớ EPROM thơng qua tín hiệu wifi Sau ESP8266 gởi liệu vừa nhận qua cho Arduino Uno R3 theo chuẩn giao tiếp UART Arduino có nhiệm vụ hiển thị liệu lên module led matrix P10 để hiển thị Từ có lời khuyên để người tham gia giao thông lựa chọn lộ trình phù hợp Đồng thời điều khiển họat động hệ thống đèn tín hiệu giao thơng giúp giảm thiểu tình trạng kẹt xe Nhóm xây dựng mơ hình chạy thử mơ hình với điều kiện thực tế Vì đề tài mang tính chất mơ hình nên cịn vài hạn chế xii CHƯƠNG THI CƠNG HỆ THỐNG Hình4.39: Đăng nhập vào wifi Bước 3: Mở Terminal cách nhấn vào nút Menu hình Desktop Hình4.40: Mở Terminal Bước 4: Trong Terminal, gõ lệnh Sudo –i nhấn Enter để lấy quyền truy cập root - Gõ lệnh cd /home/pi/Downloads/ nhấn Enter để truy cập tới thư mục tập tin python - Gõ lệnh Python xulyanh.py nhấn Enter để chạy ứng dụng python Bước 5: Thực kết nối Module ESP8266 vào máy tính cổng kết nối micro USB Việc làm tương tự cấp nguồn cho ESP8266 hoạt động BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 64 CHƯƠNG THI CƠNG HỆ THỐNG Hình4.41: Tập tin chương trình Bước 6: Trên máy tính, thực mở tập tin ESP8266.ino nhấp đúp chuột vào tập trên; tập tin kèm với sản phẩm Lưu ý, việc thao tác yêu cầu người dùng phải cài phần mềm ARDUINO, cấu hình driver, cấu hình board Bước 7: Trong chương trình ARDUINO, người dùng điền tên wifi mật đăng nhập vào mạng wifi hình bên Cần ý người dùng không nên thay đổi nội dung khác, việc làm hệ thống không hoạt động tính liên quan khối lớn Hình4.42: Điền thơng tin mạng wifi Bước 8: Nhấn vào dấu mũi tên công cụ để nạp chương trình vào module ESP8266 Nếu việc nạp chương trình thất bại, người dùng cần phải thao tác lại bước thức BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 65 CHƯƠNG THI CƠNG HỆ THỐNG Hình4.43: Nạp chương trình cho module BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 66 CHƯƠNG KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Chương KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Sau khoảng thời gian 16 tuần, kể từ lúc xác nhận đề tài, việc xác định hướng cho đề tài đến việc xác định linh kiện, thiết bị phụ vụ cho đề tài Chúng tiến hành bắt tay, tập trung cao độ việc nghiên cứu, tìm cách giải vấn đề mà đề tài đặt Đầu tiên việc nghiên cứu để sử dụng module camera Raspberry Pi 3, module có ba thơng số cho chất lượng hình ảnh video (1080p 30, 720p 60, VGA 90) Tuy nhiên để sử dụng thơng số module phải thiết lập chúng Cơng việc khó khăn phần xử lý ảnh, khái niệm hoàn toàn mẻ với chúng tơi nên việc nghiên cứu thứ tạo thêm động lực thúc đẩy trình nghiên cứu nhóm, khái niệm như: thuật tốn luồng quang lượng, phương pháp LucasKanade, thuật toán trừ nền, thư viện OpenCV, phương pháp theo dõi (track) Tiếp theo việc tìm cơng vụ lưu trữ liệu cho đơn giản, tiện lợi mà lại đáp ứng yêu cầu mà đề tài đặt Vận dụng kiến thức từ đồ án mơn học IoT nên chúng em lựa chọn google spreadsheet, kết hợp việc sử dụng module ESP8266 NodeMCU Dùng vùng nhớ EPROM để lưu trữ liệu tạm thời Tìm hiểu thêm board Arduino UNO R3 cách kết nối sử dụng thư viện Arduino để xuất liệu led matrix P10 Qua trình làm đề tài học thêm ngôn ngữ lập trình (python) sử dụng phổ biến xử lý ảnh Đồng thời qua nắm cách cài đặt sử dụng thư viện numpy, scipy, OpenCV [8] Một khái niệm quen thuộc khơng đề cập tới làm liên quan tới xử lý ảnh, thư viện cung cấp nhiều giải pháp cho xử lý ảnh như: nhận diện khuôn mặt, theo dõi đối tượng, nhận diện biển số xe….Được biết thêm hoạt động kiến thức thuộc hệ thống nhúng (embedded system) Biết thêm cách lưu trữ liệu tiện lợi, đơn giản, gọn nhẹ truy xuất cách nhanh chóng mà sử dụng tồn thứ có sẵn Để thực việc giao tiếp ESP8266 với google spreadsheet cần phải trải qua nhiều công đoạn như: tạo sẵn trước sheet, sau lưu trữ lại địa googlesheet, địa liên kết sheet vừa tạo với app google script, tạo liên kết ESP8266 với goole spread sheet, dùng phương thức GET/POST API để truyền liệu [9] Sau hình ảnh minh chứng kết mô liệu mà q trình thực đề tài nhóm làm BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 67 CHƯƠNG KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Hình 5.1: Mơ q trình truyền liệu lên webserver Mơ q trình truyền liệu giao diện GUI sử dụng ngơn ngữ lập trình python, giả sử liệu xử lý xong bao gồm: place, speed, count Khi nhấn Send liệu gởi lên webserver Hình 5.2: Kết liệu gởi lên google spreadsheet Hình 5.3: Kết liệu nhận ESP8266 Dữ liệu sau gởi lên webserver hình 5.2 ESP8266 có nhiệm vụ truy cập vào sở liệu lấy liệu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 68 CHƯƠNG KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Tiếp theo liệu lưu vào vùng nhớ EPROM hình Hình 5.4: Kết liệu nhận Uno thơng qua ESP8266 Dữ liệu sau ESP8266 lưu vào nhớ EPROM sau liệu truyền qua Uno theo chuẩn giao tiếp Uart (chuẩn truyền liệu nối tiếp ) Sau thời gian thực đề tài, với hợp tác tích cực thành viên nhóm, tính tốn, phân chia khối lượng kiến thức, công việc phù hợp tâm, trí thành viên nhóm Bên cạnh dẫn, gợi ý tư vấn nhắc nhở, kinh nghiệm, tài liệu quý báu từ thầy hướng dẫn Nhóm thực đề tài cách thành cơng, cịn nhiều hạn chế, với đề nhóm hồn thành cách tuyệt với đề tài Những giá trị, số liệu, kết cho sai số hoàn toàn phạm vi chấp nhận 5.1 KẾT QUẢ THU ĐƯỢC BẰNG HÌNH ẢNH Hình 5.5: Giai đoạn chuẩn bị BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 69 CHƯƠNG KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Hình 5.6: Mơ hình hồn chỉnh BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 70 TÀI LIỆU THAM KHẢO Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Qua trình thực đồ án phần giúp ôn lại, nắm kỹ hiểu kiến thức mơn học có liên quan đến đề tài, khả tư tìm kiếm tài liệu kỹ office nâng cao Biết phân chia công việc, nhiệm vụ cách hợp lý thành viên nhóm Đã thi cơng mơ hình giám sát giao thơng áp dụng kiến thức xử lý ảnh để phân tích, tính toán tốc độ Biết quản lý sử dụng liệu cách hợp lý Áp dụng thư viện OpenCV vào cho mục đích sử dụng Được biết thêm ngơn ngữ lập trình vận dụng chúng cách hợp lý Nghiên cứu đọc hiểu tài liệu liên quan tới xử lý ảnh, đưa phương pháp giám sát tốc độ phương tiện tham gia giao thông thông qua việc phân tích liệu từ video quay Xây dựng quy trình , lưu đồ giải thuật để làm sáng rõ vấn đề xử lý ảnh quản lý liệu 6.2 HƯỚNG PHÁT TRIỂN Phát triển hệ thống cho việc theo dõi, giám sát tốc độ đối tượng lại tham gia giao thông xe máy, xe mô tô Nghiên cứu thêm mã nguồn mở OpenCV để viết ứng dụng OpenCV để so sánh xuất xuống kit nhúng, mà kit nhúng phát triển cho việc thực thi chương trình phần mềm Có thể phát triển thêm, tối đa thuật toán, đảm bảo xử lý theo thời gian thực Khắc phục khuyết điểm độ xác tốc độ, xử lý tốc độ với tốc độ video quay, phát triển nghiên cứu đối tượng vào buổi tối (thiếu sáng) Phát triển phần cứng cho hệ thống BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 71 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Đình Phú, “Giáo trình vi xử lý”, BM Điện Tử Công Nghiệp, ĐH SPKT Tp.HCM, 2014 [2] Lê Tiến Sĩ, “Ước lượng tốc độ xe ô tô ứng dụng xử lý ảnh Matlab”, BM KTMTVT, ĐH SPKT Tp.HCM, 2016 [3] Nguyễn Cao Vĩnh Khang, “Điều khiển thiết bị Arduino UNO kết hợp ESP8266 qua smartphone”, Bộ Môn Điện Tử Công Nghiệp, ĐH SPKT Tp.HCM, 2016 [4] Minhthomson, “Lập trình base shell linux ( phần 3)”, 2011 [5] Henry, Tuple, “List Dictionary Python”, 2015 [6] Pelegri, J., Alberola, J., Llario, V., E.F., “Vehicle detection and car speed monitoring systems using GMR magnetic sensors”, in Proc.IEEE 2002 28th Annual Conf Industrial Electronics Society, 2002 [7] Alexandre M Savio, “Access Google Spreadsheets using gspread and OAuth2Client”, 2015 [8] Adrian Rosebrock, “How to install OpenCV on Raspbian Jessie”, 2015 [9] Jhon Control, “ESP8266 Direct Connection to Google Spreadsheets (Google Docs)”, 2016 [10] Wen L, Fumio Y, “Speed detection of moving vehicles from one scene of Quick Bird images”, Urban Remote Sensing Joint Event, 2009 [11] Andrews Sobral, “vehicle_detection_haarcascades”, 2016 [12] Stephen Henson, “openssl”, 2016 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 72 PHỤ LỤC PHỤ LỤC Code chương trình ESP8266 NodeMCU void kt() { char s[]={}; String a,b,c; String gui=dl+"*"; for(i=0;i