Đặt vấn đề Hiện nay để phát hiện lửa có rất nhiều phương pháp, ví dụ như: quan sát bằng mắt thường của con người, hệ thống vệ tinh, cảm biến không khí MQ-135, hệ thống xử lý hình ảnh,… Quan sát bằng mắt thường là một trong những phương pháp truyền thống, tuy nhiên không thiết thực khi có hỏa hoạn xảy ra. Hệ thống vệ tinh cần thời gian quét dài và không thể cung cấp hình ảnh đám cháy theo thời gian thực. Cảm biến MQ-135 mang lại sự nhầm lẫn giữa khói bụi từ môi trường bình thường và khói của đám cháy, hơn nữa việc phân biến số lượng cảm biến lớn ngoài tự nhiên không phù hợp với tính chất tiết kiệm chi phí. Từ các phương pháp này ta có thể thấy, kỹ thuật xử lý hình ảnh đem lại ưu điểm vượt trội, chỉ cần một máy quay chất lượng cao, người dùng có thể giám sát một cánh rừng vài hecta, đồng thời phương pháp này còn cung cấp chi tiết về ba yếu tố của đám cháy là màu sắc, chuyển động và kết cấu.
Trong đề tài này, nhóm đã đánh giá hiệu năng khi xây dụng mô hình Deep Learning phát hiện lửa của ba phiên bản mô hình nhận diện vật thể Yolo. Sau khi lựa chọn được mô hình có hiệu suất cao nhất, một bước tối ưu hóa nữa sẽ được thực hiện, mô hình ban đầu sẽ hoạt động dưới định dạng TensorRT- một định dạng hỗ trợ tốt cho các thiết bị của hãng Nvdia. Yolo là mô hình phát hiện vật thể nổi tiếng và khá phổ biến với khả năng xử lý hình ảnh trong thời gian thực, nhưng đối với vật thể nhỏ, nó luôn có tỷ lệ phát hiện chính xác thấp hơn. Tuy nhiên ở đề tài này, nhóm đã có khắc phục nhược điểm này bằng cách đưa hình ảnh ngọn lửa có kích thước nhỏ vào tệp huấn luyện, điều chỉnh các thông số về kích thước, độ lọc ảnh.
Ngoài ra, việc tối ưu mô hình mang đến hiệu quả đáng kể trong việc tiết kiệm tài nguyên máy tính nhúng. 2 Downloaded by Nguynhavy Ha Vy (Ntkphuong205@gmail.com) lOMoARcPSD|16911414 Đối với thiết bị Jetson Nano bản 2Gb được sử dụng trong đề tài, với bộ nhớ ít cho nên việc chạy các mô hình trong một thời gian dài là bất khả thi. Việc ra đời các mô hình rút gọn, được biết với cái tên là tiny mang lại hiệu quả cao, rút ngắn thời gian đào tạo và có khả năng chạy trên các thiết bị cấu hình thấp. Các thực nghiệm trên thiết bị Jetson Nano là các mô hình YOLOv3-tiny, YOLOv4-tiny, YOLOv5s và các bản tối ưu từ YOLOv4-tiny sang phiên bản Tflite và TensorRT.
Đồng thời, để có khả năng phát triển lên quy mô lớn hơn, nhóm đã tích hợp Flask (thư viện của ngôn ngữ Python) để có thể đưa hình ảnh từ camera stream lên Web Server và quản lý qua ThingsBoard (một phần mềm mã nguồn mở giúp quản lý các thiết bị IoT).2 Mục tiêu của đề tài Đề tài thực hiện xây dựng úng dụng nhận dạng và phát hiện lửa, giải quyết phương pháp bằng thuật toán học sâu. Ứng dụng được xây dựng dựa trên mô hình được huấn luyện từ tập dữ liệu phổ biến được cung cấp từ nhiều nguồn tin cậy. Khi camera hoạt động, sẽ nhận diện được các ngọn lửa đang cháy. Trong đề tài này, nhóm nhóm sẽ phân tích và đánh giá các mô hình nhận diện lửa đang phổ biến hiện nay.
Từ đó, lựa chọn mô hình có hiệu suất cao và đáng tin cậy để tối ưu hóa và thực hiện trên thiết bị nhúng.3 Đối tượng nghiên cứu và kết quả mong muốn Đối tượng nghiên cứu: Mô hình Deep Learning, thiết bị nhúng Jetson Nano và camera Kết quả mong muốn đạt được: Giải quyết được bài toán nhận diện lửa trên các máy tính có cấu hình thấp. Tối ưu hóa mô hình một cách hoàn thiện nhất để tiết kiệm tài nguyên máy tính. Mô hình có khả năng phát hiện lửa trong thời gian thực. 3 Downloaded by Nguynhavy Ha Vy (Ntkphuong205@gmail.4 Các đề tài liên quan đến nghiến cứu Đề tài “Fire Detection CNN” của tác giả Toby Breakon sử dụng mạng CNN hay còn được biết đến với tên gọi “mạng nơ-ron tính chập”, đây là một mô hình sử dụng bài toán Classification.
Đề tài này dựa vào bản Tensorflow 1.5, với cách cài đặt và triển khai dễ dàng. Mô hình này chỉ có thể nhân diện trong khung ảnh là có lửa hay không có lửa và không thể xác định vị trí ngọn lửa trong khung ảnh. Nguồn: https://github.com/tobybreckon/fire-detection-cnn Đề tài “Fire Net” của tác giả Olafenwa Moses sử dụng mô hình YOLOv3 trên nền tảng Keras, các tập tin sau khi được huấn luyện sẽ lưu dưới định dạng. Mô hình được chạy bằng các câu lệnh trong thư viên Python là ImageAI cũng do tác giả tạo ra, điều này giúp người dùng chỉ cần chạy mô hình với 6 dòng code.
Nhược điểm của mô hình là mô hình không đạt được yêu cầu phát hiện vật thể trong thời gian thực, thường xảy ra độ trễ giữa khả năng phát hiện vật thể và khung hình Camera đang trình chiếu trực tiếp. Nguồn: https://github.com/OlafenwaMoses/FireNET 4 Downloaded by Nguynhavy Ha Vy (Ntkphuong205@gmail.com) lOMoARcPSD|16911414 CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT 2.1 Các khái niệm về thị giác máy tính và máy học 2.1 Bài toán phát hiện vật thể (Object Detection) 2.1 Giới thiệu về thị giác máy tính Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo (Artificial Intelligence) là thị giác máy tính (Computer Vision). Thị giác máy tính là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình ảnh và nhiều hơn vậy. Object Detection có lẽ là khía cạnh sâu sắc nhất của thị giác máy tính do tính chất hiệu quả có khả năng triển khai trong thực tế.
Object Detection đề cập đến khả năng của hệ thống máy tính và phần mềm để định vị các đối tượng trong một hình ảnh và xác định từng đối tượng. Object Detection đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái và các hệ thống phục vụ cho mục đích cảnh báo sớm từ xa. Bắt đầu sử dụng các phương pháp nhận diện đối tượng hiện đại trong các ứng dụng và hệ thống, cũng như xây dựng các ứng dụng mới dựa trên các phương pháp này.Việc triển nhận diện đối tượng sớm liên quan đến việc sử dụng các thuật toán cổ điển, giống như các thuật toán được hỗ trợ trong OpenCV - thư viện Computer Vision phổ biến nhất hiện nay. Tuy nhiên, các thuật toán cổ điển này không thể đạt được hiệu suất đủ để làm việc trong các điều kiện khác nhau.
Việc áp dụng đột phát và nhanh chóng của deep learning vào năm 2012 đã đưa vào sự tồn tại các thuật toán và phương pháp phát hiện đối tượng hiện đại và chính xác cao như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet và nhanh hơn nhưng rất chính xác như SSD và YOLO. Sử dụng các phương pháp và thuật toán này, dựa trên deep learning và cũng dựa trên việc học máy đòi hỏi rất nhiều kiến thức về toán học và việc học sâu. 5 Downloaded by Nguynhavy Ha Vy (Ntkphuong205@gmail.2 Định nghĩa Object Detection Nhận dạng đối tượng là một thuật ngữ chung để mô tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc xác định các đối tượng trong khung ảnh kỹ thuật số. Phân loại hình ảnh liên quan đến việc dự đoán lớp của một đối tượng trong một hình ảnh.
Định vị vật thể đề cập đến việc xác định vị trí của một hoặc nhiều đối tượng trong một hình ảnh và vẽ bounding box xung quanh chúng. Phát hiện đối tượng kết hợp hai nhiệm vụ trên và thực hiện cho một hoặc nhiều đối tượng trong hình ảnh. Chúng ta có thể phân biệt giữa ba nhiệm vụ thị giác máy tính cơ bản trên thông qua input và output của chúng như sau: Phân loại hình ảnh (Image Classification): Dự đoán nhãn của một đối tượng trong một hình ảnh. o Input: Một hình ảnh với một đối tượng, chẳng hạn như một bức ảnh.
o Output: Nhãn hình ảnh. Định vị đối tượng (Object Localization): Xác định vị trí hiện diện của các đối tượng trong ảnh và cho biết vị trí của chúng bằng bounding box. o Input: Một hình ảnh có một hoặc nhiều đối tượng, chẳng hạn như một bức ảnh. o Output: Một hoặc nhiều bounding box được xác định bởi tọa độ tâm, chiều rộng và chiều cao.
Phát hiện đối tượng (Object Detection): Xác định vị trí hiện diện của các đối tượng trong bounding box và nhãn của các đối tượng nằm trong một hình ảnh. o Input: Một hình ảnh có một hoặc nhiều đối tượng, chẳng hạn như một bức ảnh. o Output: Một hoặc nhiều bounding box và nhãn cho mỗi bounding box. 6 Downloaded by Nguynhavy Ha Vy (Ntkphuong205@gmail.com) lOMoARcPSD|16911414 Hình 2.1 Sơ đồ tác vụ thị giác máy tính 2.2 Khái niệm về Deep Learning và Machine Learning 2.1 Machine Learning (Máy học) Machine Learning (Máy học) là phương pháp AI tự tìm kiếm phương pháp giải quyết các bài toàn được đặt ra sau khi đã được lập trình viên huấn luyện nhằm phục vụ một số công việc cụ thể.
Bài toán machine learning thường được chia làm hai loại là dự đoán (prediction) và phân loại (classification): Dự đoán (Prediction): Phục vụ giải quyết cho các vấn đề dự đoán sự biến động của một thông số cụ thể. Ví dụ, từ tập dữ liệu chỉ số chứng khoán qua các phiên giao dịch, máy tính có thể dự đoán giá trị cổ phiếu tại phiên giao dịch tiếp theo. Phân loại (Classification): Các bài toán phân loại được áp dụng nhiều trong lĩnh vực thị giác máy tính, dùng để lọc các loại vật thể. Machine Learning hoạt động theo luồng như sau: 7 Downloaded by Nguynhavy Ha Vy (Ntkphuong205@gmail.com) lOMoARcPSD|16911414 Hình 2.2 Luồng hoạt động của Machine Learning 1.
Data collection – thu thập dữ liệu: máy tính chỉ có khả năng học tập khi được cung cấp đầy đủ các dữ liệu đầu vào ( dataset ), các dữ liệu đầu vào phải đảm bảo các yêu tố: chính xác và sát với nhu cầu giải quyết vấn đề của mô hình, không trộn lẫn với các dữ liệu sai, được gán nhãn một cách cẩn thận. Mô hình có đủ thông minh hay không phụ thuộc vào độ tin cậy của dữ liệu đầu vào. Preprocessing – tiền xử lý: bước này dùng để chuẩn hóa dữ liệu, loại bỏ các thuộc tính không cần thiết, gán nhãn dữ liệu, mã hóa một số đặc trưng, trích xuất đặc trưng, rút gọn dữ liệu nhưng vẫn đảm bảo kết quả… Bước này tốn thời gian nhất tỉ lệ thuận với số lượng dữ liệu đưa vào.