Trainieren Sie das YOLOv7-Modell und entwickeln Sie eine KI-Branderkennung

王林
Freigeben: 2023-05-11 13:43:06
nach vorne
927 Leute haben es durchsucht

1. Bereiten Sie den Datensatz vor

Der Datensatz verwendet Open-Source-Bilder, insgesamt 6.000 Feuerbilder, jeweils markiert mit ​Dichter Rauch​​​und​​Fire​Zwei Kategorien. ​浓烟​​​和​​火​​两类。

Trainieren Sie das YOLOv7-Modell und entwickeln Sie eine KI-Branderkennung

Trainieren Sie das YOLOv7-Modell und entwickeln Sie eine KI-Branderkennung

浓烟

项目采用​​YOLO​​​训练,我已经把数据转成​​YOLO​​​格式,并分好了训练集和验证集,见​​dataset​

YOLOv7-Modell trainieren und KI-Brandüberwachung entwickeln

Trainieren Sie das YOLOv7-Modell und entwickeln Sie eine KI-Branderkennung

YOLOv7-Modell trainieren und KI-Brandüberwachung entwickelnProjekt „Dense Smoke“

Mit ​​YOLO​ ​​Training, ich habe die Daten konvertiert in​​dataset​

2. Schulung

Trainieren Sie das YOLOv7-Modell und entwickeln Sie eine KI-BranderkennungInformationen zum Schulungsprozess finden Sie in der offiziellen Website-Dokumentation von YOLOv7.

Ändern Sie die Datei data/coco.yaml und konfigurieren Sie den Pfad und die Kategorie der Trainingsdaten.

Laden Sie das vorab trainierte Modell yolov7.pt herunter, und dann können Sie mit dem Training beginnen

3. Nach Abschluss des Trainings finden Sie die generierte Modelldatei – best.pt – im Laufverzeichnis unter yolov7-Verzeichnis.

Das von mir trainierte Modell wird im Quellcode-Gewichtsverzeichnis mit dem Namen fire.pt abgelegt und kann direkt verwendet werden.

Trainieren Sie das YOLOv7-Modell und entwickeln Sie eine KI-BranderkennungMit dem Modell entwickeln wir daraus ein Überwachungsprogramm.

Zuerst müssen Sie den yolov7-Quellcode für das aktuelle Projekt herunterladen.

Dann installieren Sie Pytorch und verwenden Sie Pytorch, um das trainierte Yolov7-Modell zu laden.

fire_detector = torch.hub.load('./yolov7', 'custom', './weights/fire.pt', source='local')
Nach dem Login kopieren

Der Quellcode enthält ein Feuervideo fire_video.mp4. Sie können opencv verwenden, um das Video zu lesen und den Erkennungseffekt zu testen.

ret, frame = cap.read()
results = self.fire_detector(img_cvt)
pd = results.pandas().xyxy[0]

# 绘制检测框
for obj in pd.to_numpy():
box_l, box_t = int(obj[0]), int(obj[1])
box_r, box_b = int(obj[2]), int(obj[3])
obj_name = obj[6]

if obj_name == 'smoke':
box_color = (0, 0, 255)
box_txt = '检测到浓烟'
else:
box_color = (0, 255, 0)
box_txt = '检测到大火'

frame = cv2.rectangle(frame, (box_l, box_t), (box_r, box_b), box_color, 2)
frame = cv2_add_chinese_text(frame, box_txt, (box_l, box_t-40), box_color, 25)
Nach dem Login kopieren

Nach erfolgreicher Ausführung ist der Effekt derselbe wie im Video am Anfang des Artikels.

Sie können das Projekt zur Echtzeiterkennung auf einer eingebetteten GPU wie Jetson Nano bereitstellen. Entwickeln Sie einen Cloud-Kommunikationsdienst, um im Brandfall die Polizei zu rufen.

Gleichzeitig können Sie auch eine APP entwickeln, um den Live-Videostream zurück an den Server zu übertragen. Die APP kann den Überwachungseffekt in Echtzeit sehen und bei der Entscheidungsfindung helfen.

4. Schwierigkeiten

Tatsächlich gibt es immer noch einige Schwierigkeiten bei der Verwendung der Zielerkennung zur Branderkennung. Beispielsweise gibt es viele Störproben, die leicht zu Fehlerkennungen führen können. Ein weiteres Beispiel: Eine inkonsistente Beschriftung verhindert eine effiziente Berechnung des mAP. 🎜🎜Also ist es am besten, wenn wir die Berechnungsmethode für Verlustfunktion und Genauigkeit anpassen können. Nehmen wir als Beispiel den Rückruf: Wenn wir auf dem Bild ein Feuer erkennen können, gilt dies als erfolgreich, es muss jedoch nicht unbedingt erkannt werden, wie viele Flammen und wie viel Rauch vorhanden sind. 🎜🎜Natürlich muss diese Art von Aufgabe nicht unbedingt durch Zielerkennung erledigt werden. Ein Freund hat mir die Verwendung von Klassifizierungsaufgaben und Segmentierungsaufgaben vorgeschlagen, und ich denke, ich kann beides ausprobieren. 🎜

Das obige ist der detaillierte Inhalt vonTrainieren Sie das YOLOv7-Modell und entwickeln Sie eine KI-Branderkennung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage