Maison >Périphériques technologiques >IA >Former le modèle YOLOv7 et développer la détection d'incendie par IA
L'ensemble de données utilise des images open source, un total de 6 000 images de feu, chacune marquée avec Fumée dense
etFeu
Deux catégories. 浓烟
和火
两类。
火
浓烟
项目采用YOLO
训练,我已经把数据转成YOLO
格式,并分好了训练集和验证集,见dataset
fire
Projet Dense Smoke
Utilisation de YOLO
Formation, j'ai converti les données enYOLO
Format, et divisé en ensemble d'entraînement et ensemble de vérification, voirdataset
répertoire.
2. Formation
Modifiez le fichier data/coco.yaml et configurez le chemin et la catégorie des données d'entraînement.
Téléchargez le modèle pré-entraîné yolov7.pt, puis vous pourrez commencer la formation
3. Surveillance des incendiesUne fois la formation terminée, recherchez le fichier de modèle généré - best.pt dans le répertoire d'exécution sous le. répertoire yolov7 .
Le modèle que j'ai formé est placé dans le répertoire des poids du code source, nommé fire.pt, et vous pouvez l'utiliser directement.
Avec le modèle, nous l'utilisons pour développer un programme de surveillance.
Tout d'abord, vous devez télécharger le code source de yolov7 sur le projet en cours.
Ensuite, installez pytorch et utilisez pytorch pour charger le modèle yolov7 entraîné.fire_detector = torch.hub.load('./yolov7', 'custom', './weights/fire.pt', source='local')
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)Après une exécution réussie, l'effet sera le même que la vidéo au début de l'article. Vous pouvez déployer le projet sur un GPU intégré, tel que Jetson Nano, pour une détection en temps réel. Développer un service de communication cloud pour appeler la police en cas d'incendie. En même temps, vous pouvez également développer une application pour transmettre le flux vidéo en direct au serveur. L'application peut voir l'effet de surveillance en temps réel et aider à prendre des décisions. 🎜🎜4. Difficultés🎜🎜En fait, il existe encore quelques difficultés dans l'utilisation de la détection de cible pour la détection d'incendie. Par exemple, il existe de nombreux échantillons interférents, ce qui peut facilement conduire à de fausses détections. Pour un autre exemple, un étiquetage incohérent empêche un calcul efficace du mAP. 🎜🎜Il est donc préférable que nous puissions personnaliser la méthode de calcul de la fonction de perte et de la précision. En prenant le rappel comme exemple, si nous pouvons détecter un incendie sur l'image, il sera considéré comme réussi, mais il ne doit pas nécessairement détecter combien de flammes et combien de fumées. 🎜🎜Bien entendu, ce type de tâche ne doit pas nécessairement être effectué via la détection de cibles. Un ami m'a suggéré d'utiliser des tâches de classification et des tâches de segmentation, et je pense que je peux essayer les deux. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!