deteksi kebakaran-dari-gambar
Tujuan dari repo ini adalah untuk mendemonstrasikan model jaringan saraf pendeteksi kebakaran. Dalam penggunaan model ini akan menempatkan kotak pembatas di sekitar api apa pun dalam sebuah gambar.
Hasil terbaik
Deteksi objek: Setelah bereksperimen dengan berbagai arsitektur model, saya memilih model Yolov5 pytorch (lihat pytorch/object-detection/yolov5/experiment1/best.pt
). Setelah beberapa jam bereksperimen, saya menghasilkan model [email protected]
sebesar 0,657, Presisi 0,6, Recall 0,7, dilatih pada 1155 gambar (337 gambar dasar + augmentasi).
Klasifikasi: Saya belum melatih model saya sendiri, tetapi akurasi 95% dilaporkan menggunakan ResNet50
Segmentasi: memerlukan anotasi
Motivasi dan tantangan
Detektor asap tradisional bekerja dengan mendeteksi keberadaan fisik partikel asap. Namun alat ini rentan terhadap deteksi palsu (misalnya dari pemanggang roti) dan tidak dapat melokalisasi api dengan baik. Dalam situasi ini, solusi kamera dapat melengkapi detektor tradisional, untuk meningkatkan waktu respons atau memberikan metrik tambahan seperti ukuran dan lokasi kebakaran. Dengan mengetahui lokasi dan sifat kebakaran, intervensi otomatis dapat dilakukan, misalnya melalui sistem sprinkler atau drone. Data juga dapat dikirim ke layanan pemadam kebakaran untuk memberikan kesadaran situasional yang tidak ada. Lokasi tertentu yang saya minati adalah: dapur & ruang tamu, garasi dan bangunan luar, serta area di mana api mungkin sudah ada namun menyebar ke luar zona yang diinginkan, misalnya lubang api.
Ada beberapa tantangan signifikan & pertanyaan terbuka:
- Untuk model fast edge, arsitektur apa yang 'terbaik'? Yolo3 sangat populer untuk aplikasi komersial dan dapat diimplementasikan dalam keras atau pytorch, Yolov5 dasar seperti saat ini SOTA dan memiliki panduan penerapan ke Jetson.
- Bisakah arsitekturnya dioptimalkan karena kami hanya mendeteksi satu kelas?
- Deteksi objek dasar, tetapi apakah ada manfaat pengklasifikasi atau segmentasi? Model Obj dilatih menggunakan metrik MAP dan Recall, tetapi untuk aplikasi kita, akurasi kotak pembatas mungkin bukan prioritas utama? Namun model klasifikasi bekerja paling baik pada bidikan bagus yang hanya berisi objek target, namun dalam skenario kebakaran di kehidupan nyata, pemandangannya tidak akan sesederhana skenario ini.
- Tensorflow + ekosistem google atau Pytorch + NVIDIA/MS? Tensorflow menderita warisan tf1
- Apakah satu model 'super' lebih disukai, atau beberapa model khusus? Kategori api yang umum termasuk nyala lilin, dalam/luar ruangan, kendaraan
- Mengumpulkan atau menemukan kumpulan data pelatihan yang komprehensif, representatif, dan seimbang
- Menangani sudut pandang yang berbeda, produsen dan pengaturan kamera yang berbeda, serta kondisi pencahayaan sekitar yang berbeda.
- Karena api sangat terang sehingga seringkali mengaburkan gambar dan menyebabkan gangguan optik lainnya, bagaimana cara mengatasi hal ini?
- Karena kita memperkirakan model tersebut akan memiliki keterbatasan, bagaimana kita membuat hasil model dapat diinterpretasikan?
- Kebakaran bisa bermacam-macam ukurannya, mulai dari nyala lilin hingga melalap seluruh hutan - apakah ini masalah benda kecil & benda besar? Memisahkan kumpulan data berdasarkan kelas kebakaran dan model pelatihan untuk setiap kelas dapat memberikan hasil yang lebih baik? Perlakukan sebagai masalah segmentasi semantik (memerlukan anotasi ulang kumpulan data)?
Ide:
- Memproses gambar terlebih dahulu, misalnya untuk menghapus latar belakang atau menerapkan filter
- Mengklasifikasikan video berurutan pendek, karena pergerakan api cukup khas
- Data simulasi, identifikasi perangkat lunak apa pun yang dapat menghasilkan kebakaran realistis dan menambah kumpulan data yang ada
- Augmentasi untuk mensimulasikan efek kamera dan pengaturan eksposur yang berbeda
- Identifikasi panduan/perundang-undangan yang relevan mengenai keakuratan teknik deteksi kebakaran yang diperlukan
- Kombinasikan RGB + termal untuk menekan positif palsu? misalnya menggunakan https://openmv.io/blogs/news/introducing-the-openmv-cam-pure-thermal atau grideye atau melexsis yang lebih murah
Pendekatan & Perkakas
- Frame akan dimasukkan melalui jaringan saraf. Pada deteksi positif metrik kebakaran diekstraksi. Abaikan asap untuk MVP. Cobalah berbagai arsitektur & parameter untuk membuat model dasar yang 'baik'.
- Kembangkan model dengan akurasi lebih rendah namun cepat yang ditargetkan pada RPi dan seluler, dan model dengan akurasi tinggi yang ditargetkan pada perangkat GPU seperti Jetson. Yolo menghadirkan kedua opsi tersebut, yolo4 lite untuk seluler dan yolo5 untuk GPU. Alternatifnya ada mobilenet dan tf-object-detection-api. Model GPU dengan akurasi lebih tinggi adalah prioritas.
- Gunakan Google Colab untuk pelatihan
Artikel & repo
- Fire_Detection -> Sistem deteksi kebakaran dan asap menggunakan Jetson nano & Yolov5 dengan dataset gambar dari gettyimages
- Deteksi Asap Kebakaran Hutan YOLOv5 dengan Roboflow dan Bobot & Bias
- Yolov5-Fire-Detection -> model terdokumentasi dengan baik yang dilatih pada data kaggle
- Deteksi kebakaran dan asap dengan Keras dan Deep Learning oleh pyimagesearch - kumpulan data yang dikumpulkan dengan menggores gambar Google (menyediakan tautan ke kumpulan data dengan 1315 gambar api), klasifikasi Api/Non-api biner dengan tf2 & keras CNN sekuensial, mencapai akurasi 92%, menyimpulkan bahwa diperlukan kumpulan data yang lebih baik
- Deteksi Kebakaran dari awal menggunakan YOLOv3 - membahas anotasi menggunakan LabelImg, menggunakan Google drive dan Colab, penerapan melalui Heroku dan yaitu menggunakan Streamlit di sini. Karya Devdarshan Mishra
- deteksi api dan senjata -> Deteksi api dan senjata menggunakan yolov3 dalam video dan gambar. Kode pelatihan, kumpulan data, dan file bobot terlatih tersedia.
- YOLOv3-Cloud-Based-Fire-Detection -> Deteksi Objek Kustom menggunakan YOLOv3 di cloud. Ia dilatih untuk mendeteksi Api dalam bingkai tertentu. Ini sebagian besar dapat digunakan untuk Kebakaran Hutan, kecelakaan kebakaran, dll.
- fire-detect-yolov4 -> pelatihan model Yolo v4
- midasklr/FireSmokeDetectionByEfficientNet - Klasifikasi dan deteksi api dan asap menggunakan efisiennet, Python 3.7、PyTorch1.3, memvisualisasikan peta aktivasi, termasuk skrip kereta dan inferensi
- arpit-jadon/FireNet-LightWeight-Network-for-Fire-Detection - Model Deteksi Api & Asap Ringan Khusus untuk Aplikasi IoT Real-Time (misalnya pada RPi), akurasi sekitar. 95%. Makalah https://arxiv.org/abs/1905.11922v2
- tobybreckon/fire-detection-cnn - tautan ke beberapa kumpulan data
- EmergencyNet - mengidentifikasi kebakaran dan keadaan darurat lainnya dari drone
- Deteksi Kebakaran menggunakan gambar CCTV — Aplikasi Perpustakaan Biksu - pengklasifikasi keras pada kumpulan data kaggle, mobilenet-v2, densitas121 dan densitasnet201
- fire-detection-cnn - deteksi otomatis wilayah piksel api dalam citra video (atau gambar diam) dalam batas waktu nyata. akurasi maksimal 0,93 untuk deteksi kebakaran biner seluruh gambar (1), dengan akurasi 0,89 dalam kerangka lokalisasi superpiksel kami dapat dicapai
- Sistem deteksi Kebakaran Awal menggunakan pembelajaran mendalam dan OpenCV - arsitektur InceptionV3 dan CNN yang disesuaikan untuk deteksi kebakaran di dalam dan luar ruangan. 980 gambar untuk pelatihan dan 239 gambar untuk validasi, akurasi pelatihan 98,04 dan akurasi validasi 96,43, openCV digunakan untuk deteksi langsung di webcam - kode dan kumpulan data (sudah direferensikan di sini) di https://github.com/jackfrost1411/fire- deteksi
- Deteksi Asap-menggunakan-Tensorflow 2.2 - EfficientDet-D0, 733 gambar asap beranotasi, disebutkan di blog Roboflow
- Kumpulan data Citra Udara untuk deteksi kebakaran: klasifikasi dan segmentasi menggunakan Kendaraan Udara Tak Berawak (UAV) - pengklasifikasi biner, akurasi 76% pada set pengujian
- Sistem Deteksi Kebakaran Hutan Berdasarkan Pembelajaran Ensemble -> Pertama, dua pembelajar Yolov5 dan EfficientDet diintegrasikan untuk menyelesaikan proses deteksi kebakaran. Kedua, pembelajar individu lainnya, EfficientNet, bertanggung jawab untuk mempelajari informasi global untuk menghindari kesalahan positif
- Sistem Peringatan Kebakaran dengan Model Klasifikasi Multi-Label Dijelaskan oleh GradCAM -> gunakan CAM untuk memvisualisasikan wilayah gambar mana yang bertanggung jawab untuk prediksi, dan menggunakan data sintetis untuk mengisi kelas yang kurang agar distribusi kelas seimbang
- Melatih model fast.ai dan menerapkannya melalui aplikasi gradio
- Deepfire -> melakukan pengenalan kebakaran hutan pada UAV menggunakan ResNet50 dan EfficientNetB7
- Wildfire-Smoke-Detection -> Model jaringan saraf konvolusional berdasarkan arsitektur Faster-RCNN untuk deteksi asap kebakaran hutan
- FireNet-LightWeight-Network-for-Fire-Detection -> Model Deteksi Api & Asap Ringan Khusus untuk Aplikasi IoT Real-Time dengan kertas ArXiv
- penelitian deteksi asap kebakaran hutan -> deteksi asap kebakaran hutan secara dini, dengan kertas
Kumpulan data
- FireNET - kira-kira. 500 gambar api dengan kotak pembatas dalam format XML pascal voc. Repo berisi model Yolo3 terlatih yang dilatih menggunakan imageai, kinerjanya tidak diketahui. Betapapun kecilnya gambar, rata-rata berukuran 275x183 piksel, berarti lebih sedikit fitur tekstur yang dapat dipelajari jaringan.
- Deteksi Kebakaran dari CCTV di Kaggle - gambar dan video, gambar diekstraksi dari video, kumpulan data relatif kecil dengan semua gambar hanya diambil dari 3-4 video. Cukup relevan dengan tugas saat ini karena memiliki video untuk diuji. Kumpulan data diatur untuk tugas klasifikasi normal/asap/api, tanpa anotasi kotak pembatas
- cair/Fire-Detection-Image-Dataset - Kumpulan data ini berisi banyak gambar normal dan 111 gambar dengan api. Kumpulan data sangat tidak seimbang dengan situasi dunia nyata. Gambar berukuran layak tetapi tidak diberi anotasi.
- Kumpulan Data Deteksi Kebakaran mivia - kira-kira. 30 video
- Deteksi asap USTC - tautan ke berbagai sumber yang menyediakan video asap
- dataset api/tidak-api di artikel pyimagesearch dapat diunduh. Perhatikan bahwa ada banyak gambar adegan kebakaran yang tidak berisi api sebenarnya, melainkan rumah yang terbakar misalnya.
- Kumpulan Data KEBAKARAN di Kaggle - 755 gambar api luar ruangan dan 244 gambar non-api. Gambar berukuran layak tetapi tidak diberi anotasi
- Kumpulan Data Gambar Api untuk studi Dunnings 2018 - Kumpulan gambar diam PNG
- Kumpulan Data Gambar Superpiksel Api untuk studi Samarth 2019 - Kumpulan gambar diam PNG
- Kumpulan Data Asap Kebakaran Hutan - 737 gambar beranotasi (kotak pembatas).
- Kumpulan data oleh jackfrost1411 -> beberapa ratus gambar diurutkan menjadi api/netral untuk tugas klasifikasi. Tidak ada anotasi kotak pembatas
- kumpulan data api-dan-asap di Kaggle -> 7000+ gambar, terdiri dari 691 gambar hanya api, 3721 gambar hanya asap, dan 4207 gambar api {nyala & asap}
- Kumpulan Data Kebakaran dan Asap Domestik -> Kira-kira. 5000 gambar unik, 2 kelas (api dan asap), anotasi kotak pembatas, format COCO, PASCAL VOC dan YOLO
- kumpulan data api-dan-senjata kaggle
- Deteksi Kebakaran Hutan -> kumpulan data oleh PerceptiLabs, gambar 250x250 piksel yang menggambarkan pemandangan normal dan pemandangan yang mengandung api. Dengan artikel. Ini adalah kumpulan data dari kaggle
- DFireDataset -> kumpulan data gambar untuk deteksi kebakaran dan asap
Referensi keselamatan kebakaran
- Temukan referensi yang mencakup berbagai jenis kebakaran di rumah, skenario & intervensi umum
- Standar keamanan/akurasi untuk detektor kebakaran, termasuk karakteristik ROC
Kebakaran di rumah
- Penyebab umum termasuk rokok yang masih membara, lilin, matinya listrik, kebakaran panci chip
- Sejumlah besar faktor mempengaruhi sifat api, terutama bahan bakar dan oksigenasi, tetapi juga lokasi kebakaran, bagian tengah ruangan/di dinding, kapasitas termal ruangan, dinding, suhu lingkungan, kelembaban, kontaminan pada api. bahannya (debu, produk berbahan dasar minyak, emolien, dll)
- Untuk memadamkan api, sejumlah bahan penghambat dipertimbangkan - air (bukan pada panci listrik atau panci chip), busa, CO2, bubuk kering
- Jika terjadi kebakaran listrik, pasokan listrik harus diisolasi terlebih dahulu
- Mengurangi ventilasi, misalnya dengan menutup pintu, akan membatasi kebakaran
- Asap sendiri merupakan indikator kuat sifat api
- Baca https://en.m.wikipedia.org/wiki/Fire_triangle dan https://en.m.wikipedia.org/wiki/Combustion
Penyebaran tepi
Tujuan akhir penerapan kami ke perangkat edge (RPi, jetson nano, android, atau ios) akan memengaruhi keputusan tentang arsitektur dan konsekuensi lainnya.
- Terapkan YOLOv5 ke Jetson Xavier NX pada 30FPS - inferensi pada 30 FPS
- Cara Melatih YOLOv5 Pada Kumpulan Data Khusus
- Latih YOLOv4-tiny tentang Data Khusus - Deteksi Objek Secepat Kilat
- Cara Melatih Model Deteksi Objek TensorFlow Lite Kustom - notebook colab, MobileNetSSDv2, diterapkan ke RPi
- Cara Melatih Model Deteksi Objek Seluler Khusus dengan YOLOv4 Tiny dan TensorFlow Lite - latih YOLOv4 tiny Darknet dan konversikan ke tflite, demo di android, lebih banyak langkah daripada pelatihan langsung untuk tflite
- AI untuk AG: Pembelajaran mesin produksi untuk pertanian - alur kerja lengkap mulai dari pelatihan hingga penerapan
- Pytorch sekarang secara resmi mendukung RPihttps://pytorch.org/blog/prototype-features-now-available-apis-for-hardware-accelerated-mobile-and-arm64-builds/
- Hermes merupakan sistem pendeteksi kebakaran hutan yang memanfaatkan Computer Vision dan dipercepat menggunakan NVIDIA Deepstream
Penyebaran awan
Kami menginginkan solusi yang juga dapat diterapkan ke cloud, dengan sedikit perubahan dibandingkan penerapan edge. Beberapa pilihan:
- Terapkan sebagai fungsi lambda - menurut pengalaman saya, waktu responsnya lama, hingga 45 detik
- Terapkan pada VM dengan kode khusus untuk menangani antrian permintaan
- Gunakan torchserve di sagemaker, berjalan pada instance EC2. Didokumentasikan dengan baik tetapi spesifik untuk AWS.
- Gunakan salah satu penyedia cloud, misalnya AWS Rekognition akan mengidentifikasi api
Pemrosesan awal dan augmentasi gambar
Roboflow memungkinkan hingga 3 jenis augmentasi per kumpulan data, selain pemangkasan dasar. Jika kami ingin bereksperimen dengan lebih banyak augmentasi, kami dapat memeriksa https://imgaug.readthedocs.io/en/latest/
- Mengapa Pemrosesan Awal dan Augmentasi Gambar Penting
- Pentingnya Blur sebagai Teknik Augmentasi Gambar
- Kapan Menggunakan Kontras sebagai Langkah Pemrosesan Awal
- Augmentasi Data di YOLOv4
- Mengapa Menambahkan Kebisingan pada Gambar untuk Pembelajaran Mesin
- Mengapa dan Bagaimana Menerapkan Augmentasi Data Tanaman Acak
- Kapan Menggunakan Grayscale sebagai Langkah Pra-pemrosesan
Metrik ML
-
Precision
adalah keakuratan prediksi, dihitung sebagai precision = TP/(TP+FP)
atau "berapa % prediksi yang benar?" -
Recall
adalah tingkat positif sebenarnya (TPR), dihitung sebagai recall = TP/(TP+FN)
atau "berapa % positif sebenarnya yang ditangkap model?" -
F1 score
(juga disebut skor F atau ukuran F) adalah rata-rata harmonik dari presisi dan perolehan, dihitung sebagai F1 = 2*(precision * recall)/(precision + recall)
. Ini menyampaikan keseimbangan antara presisi dan penarikan kembali. Ref - Tingkat positif palsu (FPR), yang dihitung sebagai
FPR = FP/(FP+TN)
sering kali diplot terhadap penarikan kembali/TPR dalam kurva ROC yang menunjukkan bagaimana tradeoff TPR/FPR bervariasi menurut ambang klasifikasi. Menurunkan ambang klasifikasi akan menghasilkan lebih banyak positif sebenarnya, tetapi juga lebih banyak positif palsu - peta, IoU, presisi, dan perolehan semuanya dijelaskan dengan baik di sini dan di sini
- IceVision mengembalikan COCOMetric, khususnya
AP at IoU=.50:.05:.95 (primary challenge metric)
, dari sini, biasanya disebut sebagai "rata-rata presisi rata-rata" (mAP) -
[email protected]
: rata-rata Presisi atau kebenaran rata-rata setiap label dengan mempertimbangkan semua label. @0.5
menetapkan ambang batas berapa banyak kotak pembatas yang diprediksi tumpang tindih dengan anotasi asli, yaitu "50% tumpang tindih"
Komentar
- Firenet adalah nama yang SANGAT umum untuk model, jangan gunakan
Diskusi
- Thread Saya sudah mulai di forum fast.ai
Demo
Model berperforma terbaik dapat digunakan dengan menjalankan aplikasi demo yang dibuat dengan Gradio. Lihat direktori demo