Hệ thống này sử dụng mạng YOLO để nhận dạng vàđịnh vị các đối tượng trong hình ảnh từ camera webcam, và sử dụng Arduino đểđiều khiển bộ đèn LED và còi để phát ra tín hiệu cảnh báo khi ph
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐIỆN - ĐIỆN TỬ
Trang 2Hà Nội, ngày 26 tháng 02 năm 2023 Nhóm sinh viên thực hiện
Trang 3TÓM TẮT ĐỒ ÁN
Đồ án này tập trung vào việc xây dựng một hệ thống báo cháy tự động sửdụng công nghệ xử lý ảnh Hệ thống này sử dụng mạng YOLO để nhận dạng vàđịnh vị các đối tượng trong hình ảnh từ camera webcam, và sử dụng Arduino đểđiều khiển bộ đèn LED và còi để phát ra tín hiệu cảnh báo khi phát hiện ra nguy cơcháy nổ
Phần lớn công việc của đồ án tập trung vào quá trình huấn luyện và tinh chỉnhmạng YOLO để đạt được độ chính xác cao nhất có thể trong việc phát hiện các đốitượng, đồng thời cũng tối ưu hóa hệ thống để đảm bảo hoạt động ổn định và nhanhchóng
Kết quả cho thấy hệ thống báo cháy tự động này có thể phát hiện và cảnh báosớm khi phát hiện ra nguy cơ cháy nổ, giúp người dùng có thể đưa ra biện pháp kịpthời để tránh nguy hiểm Hệ thống có tính ứng dụng và tiềm năng trong thực tế
Trang 4MỤC LỤC
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu và phạm vi của đề tài 1
1.2.1 Mục tiêu 1
1.2.2 Phạm vi đề tài 1
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ XỬ LÍ ẢNH 2 2.1 Cơ sở lý thuyết công nghệ xử lí ảnh 2
2.1.1 Công nghệ xử lí biên, xử lí màu sắc, xử lí hình dạng 2
2.1.2 Công nghệ mạng nơ-ron tích chập 3
CHƯƠNG 3 THIẾT KẾ TỔNG QUAN HỆ THỐNG BÁO CHÁY TỰ ĐỘNG 6 3.1 Hệ thống báo cháy tự động 6
3.2 Phần cứng sử dụng 6
CHƯƠNG 4 THIẾT KẾ PHẦN MỀM 8 4.1 Thiết kế giao diện 8
4.2 Nhận diện cháy bằng YOLOV5 8
4.2.1 Quá trình training 9
4.2.2 Quá trình nhận dạng 10
4.3 Quá trình detect 12
4.4 Cảnh báo khi phát hiện cháy 13
4.4.1 Gửi tin nhắn cảnh báo 13
4.4.2 Truyền thông phát hiện cháy xuống cho Arduino 14
CHƯƠNG 5 MÔ PHỎNG VÀ KẾT QUẢ 16 5.1 Đánh giá độ chính xác 16
5.2 Kết quả cảnh báo 16
Trang 5KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18
Trang 6DANH MỤC HÌNH VẼ
Hình 2.1 Kiến trúc mạng YOLO 4
Hình 2.2 Mô hình hoạt động của mạng YOLO 4
Hình 3.1 Sơ đồ khối tổng quan 6
Hình 4.1 Giao diện hệ thống 8
Hình 4.2 Hiển thị dữ liệu 8
Hình 4.3 Quá trình training 9
Hình 4.4 File ảnh 9
Hình 4.5 Gán nhãn xác định vị trí bằng Makesense.AI 10
Hình 4.6 Train trên Google Colab 10
Hình 4.7 Quá trình nhận dạng 11
Hình 4.8 Lưu đồ thuật toán 11
Hình 4.9 Quá trình detect 13
Hình 4.10 Gửi tin nhắn cảnh báo 14
Hình 4.11 Serial 14
Hình 4.12 Vòng loop cho arduino 15
Hình 5.1 Kết quả nhận diện 16
Hình 5.2 Kết quả nhận diện 16
Hình 5.3 Cảnh báo 17
Trang 7DANH MỤC BẢNG BIỂU
Bảng 4.1 Cấu hình các tham số nhận dạng 12
Trang 8Do đó, nhóm chúng em đã quyết định lựa chọn đề tài "Nghiên cứu thiết kế hệthống báo cháy tự động sử dụng công nghệ xử lý ảnh" để nghiên cứu và thiết kế một
hệ thống báo cháy tự động tiên tiến, có tính ổn định và đáp ứng được các yêu cầucủa người sử dụng
Công nghệ xử lí ảnh là yếu tố then chốt, giúp quá trình phát hiện sự cố chínhxác và đặc biệt là tự động hóa quá trình phát hiện Đối với đề tài này, chúng em đặt
ra các mục tiêu cụ thể như sau:
• Nghiên cứu các phương pháp xử lí ảnh nhanh chóng và chính xác
• Hệ thống cấu trúc đơn giản, đáp ứng được yêu cầu kĩ thuật
• Kiểm tra, đánh giá hiệu quả hệ thống với nhiều tình huống khác nhau
1.2 Mục tiêu và phạm vi của đề tài
Trang 9CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ XỬ LÍ ẢNH
Trong phần này, nhóm sẽ trình bày các lý thuyết cơ bản về công nghệ xử líảnh bao gồm các khái niệm cơ bản, các phương pháp phổ biến và kỹ thuật phát hiệncháy mà hệ thống sử dụng
2.1 Cơ sở lý thuyết công nghệ xử lí ảnh
Mục này sẽ tập trung trình bày về các công nghệ xử lí ảnh được sử dụng trong
hệ thống báo cháy tự động Các phương pháp xử lí ảnh truyền thống như xử lí biên,
xử lí màu sắc và xử lí hình dạng sẽ được giới thiệu cùng với mạng nơ-ron tích chập.Trong đó, phương pháp YOLO sử dụng công nghệ xử lí ảnh là mạng nơ-ron tíchchập sẽ được giới thiệu với chi tiết về nguyên lý hoạt động cũng như các thành phầncủa nó Các ưu nhược điểm của từng công nghệ cũng sẽ được đánh giá để có thểđưa ra lựa chọn phù hợp nhất cho hệ thống báo cháy tự động
2.1.1 Công nghệ xử lí biên, xử lí màu sắc, xử lí hình dạng
2.1.1.1 Công nghệ xử lí biên
Công nghệ xử lí biên (edge detection) là một kỹ thuật xử lý ảnh được sử dụng
để tìm ra các ranh giới giữa các vật thể khác nhau trong ảnh Trong quá trình xử lý,các đường biên của các vật thể trong ảnh được phát hiện bằng cách tìm kiếm sự thayđổi đột ngột về màu sắc hoặc độ sáng giữa các điểm ảnh liên tiếp
Các phương pháp xử lý biên thông thường bao gồm phương pháp Sobel, phươngpháp Canny, phương pháp Laplacian và phương pháp Robert Các phương pháp nàyđều dựa trên việc tìm kiếm sự thay đổi đột ngột về màu sắc hoặc độ sáng giữa cácđiểm ảnh liên tiếp để tạo ra các đường biên trong ảnh
Tuy nhiên, công nghệ xử lý biên còn tồn tại một số hạn chế, bao gồm khókhăn trong việc xác định ngưỡng phù hợp để phát hiện các đường biên và khả năng
bị ảnh hưởng bởi nhiễu và các yếu tố khác trong ảnh Các nguồn tài liệu tham khảochính là sách, bài báo trong các tạp chí, bài báo trong các hội nghị khoa học và cáctài liệu tham khảo khác trên internet
2.1.1.2 Công nghệ xử lí màu sắc
Công nghệ xử lý màu sắc trong xử lý ảnh được sử dụng để thay đổi, tăngcường, phân tích và phát hiện thông tin màu sắc của ảnh Một số kỹ thuật xử lý màusắc phổ biến trong xử lý ảnh bao gồm: chuyển đổi không gian màu, cân bằnghistogram, tách ngưỡng, lọc màu, phân đoạn màu sắc
Các kỹ thuật này thường được sử dụng trong các ứng dụng xử lý ảnh như nhậndạng khuôn mặt, phát hiện bất thường, xử lý ảnh y khoa, trích xuất đặc trưng củađối tượng, v.v Công nghệ xử lý biên (Edge Detection) và công nghệ xử lý màu sắc
là hai kỹ thuật xử lý ảnh hoàn toàn khác nhau
Trang 102.1.1.3 Công nghệ xử lí hình dạng
Công nghệ xử lý hình dạng tập trung vào việc phân tích và nhận dạng các hìnhdạng khác nhau trong hình ảnh, từ các hình dạng đơn giản như đường thẳng, đườngcong, các hình học cơ bản cho đến các hình dạng phức tạp hơn như khuôn mặt, đốitượng trong ảnh
So với công nghệ biên và xử lý màu, công nghệ xử lý hình dạng tập trung vàoviệc phân tích các đặc trưng hình học của hình ảnh thay vì chỉ tập trung vào việcphát hiện biên và màu sắc Công nghệ xử lý hình dạng thường được sử dụng đểnhận dạng và phân loại các đối tượng trong hình ảnh, trong khi công nghệ biên và
xử lý màu thường được sử dụng để phát hiện và nhận dạng các biên và đối tượngtrong hình ảnh
2.1.2 Công nghệ mạng nơ-ron tích chập
Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là một loại mạngnơ-ron nhân tạo được ứng dụng rộng rãi trong xử lý ảnh và video Điểm mạnh củaCNN là khả năng xác định được các đặc trưng của ảnh một cách tự động thông quaviệc học từ dữ liệu
YOLO là một kiến trúc mạng CNN được sử dụng trong phát hiện, nhận dạng
và phân loại đối tượng Đối bài toán phân loại (Classification) chỉ có khả năng phânloại đối tượng bằng các dự đoán nhãn thì YOLO giải quyết bài toán phát hiện đốitượng (Object Detection), không chỉ có thể phát hiện nhiều đối tượng với nhiềunhãn khác nhau mà còn có thể xác định vị trí cụ thể của các đối tượng trong cùngmột hình ảnh bằng các khung bao quanh đối tượng hình chữ nhật (Bounding Box).YOLO là viết tắt của cụm từ “You only look once” nói nên khả năng về tốc độnhận dạng của mô hình này, YOLO được đánh giá là mô hình cho tốc độ nhận dạngnhanh nhất có khả năng nhận dạng theo thời gian thực Kiến trúc YOLO được xâydựng từ các lớp tích chập (Convolution layers) để trích xuất ra các đặc trưng của đốitượng và các lớp kết nối đầy đủ (full connected layer) để dự đoán nhãn và vị trí củađối tượng Dữ liệu đầu vào là các hình ảnh, mô hình sẽ dự đoán vị trí, kích thước vànhãn của các Bounding Box
Trang 11Bounding Box bao
Trang 12Hình 2.2 Mô hình hoạt động của mạng YOLO
2.1.2.2 Nguyên lí hoạt động của mạng YOLO
Mô hình này hoạt động dựa trên nguyên lý chia ảnh đầu vào thành lưới ôvuông và dự đoán một bộ phận bounding box và lớp cho mỗi ô vuông
Cụ thể, YOLO sử dụng một mạng CNN để xử lý ảnh đầu vào và tạo ra một đạidiện ma trận cho các đối tượng trong ảnh Sau đó, một mạng CNN khác được sửdụng để tạo ra một ma trận các bounding box và các xác suất đối tượng tương ứngtrong từng ô vuông của lưới Việc sử dụng lưới ô vuông giúp YOLO có thể pháthiện và nhận dạng các đối tượng với độ chính xác cao hơn so với các mô hình khác.Bounding box là một khung hình chữ nhật, có tọa độ (x, y) của điểm góc trêncùng bên trái và (w, h) là chiều rộng và chiều cao của khung Bounding box được sửdụng để định vị và giới hạn đối tượng trong ảnh
Trang 13Mạng YOLO chia ảnh đầu vào thành một lưới ô vuông có kích thước cố định.Mỗi ô vuông của lưới sẽ chịu trách nhiệm dự đoán một tập hợp các bounding box
và xác suất đối tượng cho các đối tượng có thể xuất hiện trong ô vuông đó.Mỗi ô vuông trong lưới có thể dự đoán nhiều bounding box, nhưng chỉ có mộtbounding box tốt nhất sẽ được sử dụng để đại diện cho đối tượng trong ô vuông đó.Việc chọn bounding box tốt nhất được thực hiện thông qua hàm kích hoạt(activation function) và một ngưỡng xác suất Nếu xác suất đối tượng được dự đoán bởibounding box đó vượt quá ngưỡng xác suất, bounding box đó sẽ được chọn làmbounding box tốt nhất và đại diện cho đối tượng
Với cách tiếp cận này, mạng YOLO có thể giảm số lượng bounding box cần phải
xử lý mà vẫn đảm bảo độ chính xác Điều này giúp tăng tốc độ phát hiện đối tượng
và đưa ra kết quả nhận dạng chính xác hơn
Trang 14CHƯƠNG 3 THIẾT KẾ TỔNG QUAN HỆ THỐNG BÁO CHÁY TỰ ĐỘNG
Chương 3 của báo cáo sẽ trình bày về thiết kế tổng quan toàn bộ hệ thống báocháy tự động sử dụng công nghệ xử lý ảnh Đây là một phần rất quan trọng trongbáo cáo, mô tả cách hệ thống hoạt động và cách các thành phần phần cứng và phầnmềm liên kết với nhau để tạo thành một hệ thống hoàn chỉnh
3.1 Hệ thống báo cháy tự động
Sơ đồ tổng quát của toàn bộ hệ thống:
Hình 3.1 Sơ đồ khối tổng quanPhần mềm nhận diện lửa và khói được cài đặt trên máy tính Dữ liệu hình ảnh
từ webcam sẽ truyền tới khối nhận dạng dữ liệu Khi phát hiện được lửa hoặc khói,YoLo sẽ gửi cảnh báo đến khối Telegram, đồng thời cũng truyền uart tín hiệu điềukhiển xuống khối MCU, để điều khiển các cơ cấu chấp hành
• Máy tính: Máy tính được sử dụng để chạy phần mềm YOLO để phát hiện và phânloại đối tượng trên ảnh Máy tính cũng đóng vai trò quan trọng trong quá trìnhlưu trữ dữ liệu và điều khiển các thiết bị phần cứng khác trong hệ thống
• Arduino: Arduino được sử dụng để nhận tín hiệu từ phần mềm YOLO để xácđịnh xem có đối tượng nào bị phát hiện hay không Nếu có, Arduino sẽ kíchhoạt bộ đèn LED và còi để cảnh báo cho người dùng biết có sự cố báo cháyxảy ra
• Bộ đèn LED và còi: Bộ đèn LED và còi sẽ được kích hoạt bởi Arduino khi cóđối tượng bị phát hiện Các thiết bị này đóng vai trò quan trọng trong việc cảnh
Trang 15báo cho người dùng và đảm bảo rằng sự cố báo cháy được phát hiện và xử lý kịp thời.
Trang 16CHƯƠNG 4 THIẾT KẾ PHẦN MỀM 4.1 Thiết kế giao diện
4.2 Nhận diện cháy bằng YOLOV5
YOLO là một mô hình nhận dạng đối tượng thời gian thực và có thể được sửdụng để phát hiện các đối tượng trong hình ảnh và video Trong báo cáo này, nhóm
em sẽ trình bày về thiết kế phần mềm YOLO, bao gồm quá trình training và quátrình nhận dạng
Trang 174.2.1 Quá trình training
Trong quá trình huấn luyện mạng nơ ron sẽ tính toán lần lượt tất cả các ảnhcủa tệp dữ liệu đầu vào và sử dụng lặp lại các ảnh này nhiều lần, mục đích để tối ưuhàm mất mát Quá trình tối ưu này sẽ giúp cho mạng nơ-ron tìm được bộ trọng sốtốt nhất, giúp cho quá trình nhận dạng được chính xác nhất Mô hình sau khi huấnluyện thành công bộ trọng số sẽ được lưu trữ trong file kết quả có định dạng “.pt”
Hình 4.3 Quá trình training
Bộ dữ liệu dataset gồm hơn 500 file ảnh được chia thành 2 tập dữ liệu baogồm tập huấn luyện(training) và tập xác minh (validate) Các hình ảnh sau đóđược tiến
Hình 4.4 File ảnhhành gán nhãn xác định vị trí các ngọn lửa Tiến hành cấu hình các thông số cho Model, sử dụng tập dữ liệu huấn luyện và tập validate để huấn luyện cho mô hình
Trang 18Hình 4.6 Train trên Google Colab
Mô hình sau khi được huấn luyện thành công bộ trọng số được lưu dưới địnhdạng “best.pt” Mô hình huấn luyện được sử dụng cho chương trình thực thi nhậndạng ngọn lửa với dữ liệu đầu vào lấy từ các hình ảnh, videos, camera Kết quả quátrình nhận dạng phần mềm sẽ hiển thị trực tiếp kết quả phân loại “fire” và vị trí củangọn lửa trên màn hình đồng thời lưu lại hình ảnh hoặc video nhận dạng
4.2.2 Quá trình nhận dạng
Mô hình huấn luyện được sử dụng cho chương trình thực thi nhận dạng ngọnlửa với dữ liệu đầu vào lấy từ các hình ảnh, videos, camera Kết quả quá trình nhậndạng phần mềm sẽ hiển thị trực tiếp kết quả phân loại “fire” và vị trí của ngọn lửatrên màn hình đồng thời lưu lại hình ảnh hoặc video nhận dạng
4.2.2.1 Lưu đồ thuật toán
Giải thuật của hệ thống nhận dạng lửa như hình dưới Phần mềm cho phépthực hiện nhận dạng với tùy chọn dữ liệu đầu vào bao gồm file ảnh, file video hoặchình ảnh trực tiếp từ camera Với dữ liệu đầu vào là hình ảnh cần cung cấp đường dẫntuyệt đối của file ảnh, kết quả nhận dạng là hình ảnh được lưu lại trên đó chỉ ra vị tríngọn
Trang 19Hình 4.7 Quá trình nhận dạng
Hình 4.8 Lưu đồ thuật toánlửa và độ tin cậy của dự đoán Thiết lập các tham số cho quá trình nhận dạng như bảng
Trang 20Bảng 4.1 Cấu hình các tham số nhận dạng
Tên tham số Giá trị tham số Ý nghĩa tham số
theo pixcelsource 0 Nguồn dữ liệu đầu vào chọn "0" với dữ liệu
nhận dạng từ camera
cậy dự đoán
weight best.pt Lựa chọn bộ trọngsố tốt nhất của kết
quảtrainingdevice 0 training, chọn CPU nếuLựa chọn GPU
không có GPU
IoU threshold: là một ngưỡng được sử dụng để xác định mức độ khớp giữa dựđoán và thực tế Nếu IoU lớn hơn ngưỡng này, thì dự đoán được coi là chính xác.Ngưỡng IoU này thường được thiết lập là 0,4 hoặc 0,7 tùy thuộc vào ứng dụng cụthể
Confidence threshold: là một ngưỡng được sử dụng để loại bỏ các dự đoán có
độ tin cậy thấp Mỗi khi phát hiện được một đối tượng, mô hình YOLO sẽ đưa ramột confidence score (điểm số độ tin cậy) để cho biết độ chắc chắn của việc pháthiện đối tượng đó Nếu điểm số này nhỏ hơn ngưỡng confidence threshold, thì dựđoán sẽ bị loại bỏ
4.3 Quá trình detect
YOLO sẽ phân chia hình ảnh thành các ô vuông dạng lưới (grid) và xác định xemtrong mỗi ô vuông liệu có tâm của vật thể cần xác định hay không Nếu có, mô hìnhYOLO sẽ khoanh vùng đối tượng bằng hộp mốc (Anchor Box), sau khi có kết quảlọc chính xác thì sẽ xuất ra bounding box Thuật toán sử dụng một mạng nơ ron đơnvới đặc trưng có được từ các feature map của các lớp tích chập để dự đoán boundingbox ở mỗi ô và xác suất loại đối tượng nào đang được chứa bên trong Sau cùng, ta
sẽ có rất nhiều bounding box được thuật toán đưa ra với kích thước khác nhau Sửdụng thuật toán Non-Maxima Suppresstion (NMS) ta có thể loại được các hầu hếtcác bounding box là miền bao của cùng một đối tượng, có tỉ lệ thấp và giữ lại cácbounding box có tỉ lệ khớp cao
Đầu ra của YOLO khi dự đoán 1 Bounding Box là một vector gồm các thành