2026/5/14 0:55:29
网站建设
项目流程
南阳做网站费用,iis怎么设置网站,南京外贸网站建设公司排名,网站都是用什么编写的火焰识别#xff0c;火焰检测#xff0c;火灾检测#xff0c;基于yolov5的火焰检测#xff0c;可以检测视频和图片#xff0c;也可视频实时检测#xff0c;检测准确率高#xff0c;帧率很高#xff0c;有标注好的训练数据集可以自己重新训练。
可以将训练好的模型部署…火焰识别火焰检测火灾检测基于yolov5的火焰检测可以检测视频和图片也可视频实时检测检测准确率高帧率很高有标注好的训练数据集可以自己重新训练。可以将训练好的模型部署到英伟达边缘计算设备nano nx或实际场景中如监控摄像头、无人机、消防设备等实时检测火灾并发出警报以提高消防安全性。1以下是基于 YOLOv5 的高精度、高帧率火焰检测系统的完整解决方案包含✅ 标注好的火焰数据集说明✅ 详细训练代码支持自定义训练✅ 视频/图片/摄像头实时检测✅ 模型导出与NVIDIA Jetson Nano/NX 部署脚本✅ 报警触发逻辑声音/日志/推流✅ UI 可选命令行 OpenCV 可视化 一、火焰检测数据集说明可直接训练项目内容类别fire火焰、smoke烟雾——2 类可扩展图像数量5,000 张含白天/黑夜、室内/室外、不同火源标注格式YOLO.txt格式LabelImg 标注目录结构fire_dataset/ ├── images/train/ # ~4000 张 ├── images/val/ ├── labels/train/ ├── labels/val/ └── fire.yaml|fire.yaml|train:./images/trainval:./images/valnc:2names:[fire,smoke] 若你已有自己的数据集只需按此结构组织即可。 二、环境准备训练端# 克隆 YOLOv5 官方仓库gitclone https://github.com/ultralytics/yolov5cdyolov5# 安装依赖Python ≥3.8pipinstall-r requirements.txt torch torchvision▶️ 三、详细训练代码YOLOv51. 启动训练命令行python train.py\--img640\--batch16\--epochs100\--data /path/to/fire_dataset/fire.yaml\--weights yolov5s.pt\--name fire_yolov5s\--cacheram\--workers42. Python 脚本训练train_fire.py# train_fire.pyimporttorchfromyolov5importtrainif__name____main__:train.run(imgsz640,batch_size16,epochs100,data/path/to/fire_dataset/fire.yaml,weightsyolov5s.pt,namefire_yolov5s,cacheram,workers4,device0# GPU ID)✅ 训练完成后最佳模型保存在runs/train/fire_yolov5s/weights/best.pt 四、火焰检测推理系统支持图片/视频/摄像头将以下代码保存为fire_detection.py# fire_detection.pyimportcv2importtorchimportnumpyasnpimportargparseimporttimeimportosfrompathlibimportPath# 报警函数可替换为短信/邮件/声光报警deftrigger_alarm(frame,save_diralarms):os.makedirs(save_dir,exist_okTrue)timestamptime.strftime(%Y%m%d_%H%M%S)cv2.imwrite(f{save_dir}/alarm_{timestamp}.jpg,frame)print(f 火灾警报已保存截图:{save_dir}/alarm_{timestamp}.jpg)# 可添加播放警报音、发送 HTTP 请求等defdetect(source,weights,conf_thres0.5,alarm_threshold1): :param source: 图片路径 / 视频路径 / 0摄像头 :param weights: 模型路径.pt :param conf_thres: 置信度阈值 :param alarm_threshold: 触发报警的最小火焰数量 modeltorch.hub.load(ultralytics/yolov5,custom,pathweights,force_reloadTrue)model.confconf_thres# 判断输入类型is_camerasource0is_videosource.endswith((.mp4,.avi))ifis_cameraoris_video:capcv2.VideoCapture(0ifis_cameraelsesource)fpscap.get(cv2.CAP_PROP_FPS)or30frame_time1.0/fpswhileTrue:ret,framecap.read()ifnotret:breakstart_timetime.time()resultsmodel(frame)detectionsresults.xyxy[0].cpu().numpy()fire_count0for*xyxy,conf,clsindetections:ifint(cls)0:# class 0 firefire_count1x1,y1,x2,y2map(int,xyxy)cv2.rectangle(frame,(x1,y1),(x2,y2),(0,0,255),2)cv2.putText(frame,fFire{conf:.2f},(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,0.6,(0,0,255),2)# 报警逻辑iffire_countalarm_threshold:trigger_alarm(frame)# 显示状态status DANGER!iffire_countalarm_thresholdelse✅ SAFEcv2.putText(frame,fStatus:{status}| Fire:{fire_count},(10,30),cv2.FONT_HERSHEY_SIMPLEX,0.8,(0,255,0),2)# 控制帧率elapsedtime.time()-start_time delaymax(1,int((frame_time-elapsed)*1000))cv2.imshow(Fire Detection,frame)ifcv2.waitKey(delay)0xFFord(q):breakcap.release()cv2.destroyAllWindows()else:# 单张图片检测imgcv2.imread(source)resultsmodel(img)results.render()cv2.imshow(Result,results.ims[0])cv2.waitKey(0)cv2.destroyAllWindows()if__name____main__:parserargparse.ArgumentParser()parser.add_argument(--source,typestr,default0,helpimage/video/camera)parser.add_argument(--weights,typestr,defaultbest.pt,helpmodel path)parser.add_argument(--conf,typefloat,default0.5,helpconfidence threshold)argsparser.parse_args()detect(args.source,args.weights,args.conf)运行示例# 摄像头实时检测python fire_detection.py --source0--weights runs/train/fire_yolov5s/weights/best.pt# 视频检测python fire_detection.py --source test.mp4 --weights best.pt# 图片检测python fire_detection.py --source test.jpg --weights best.pt 五、部署到 NVIDIA Jetson Nano/NX步骤 1在 Jetson 上安装依赖# 安装 JetPack含 CUDA/TensorRT# 安装 OpenCV通常已预装sudoaptinstallpython3-opencv# 安装 PyTorchJetson 版本wgethttps://nvidia.box.com/shared/static/...# 从 NVIDIA 官网下载 wheelpip3installtorch-*.whl步骤 2导出为 TensorRT加速推理# export_to_trt.pyfromyolov5.models.experimentalimportattempt_loadfromyolov5.utils.torch_utilsimportselect_deviceimporttorch deviceselect_device(0)modelattempt_load(best.pt,map_locationdevice)model.eval()# 导出 ONNXdummy_inputtorch.randn(1,3,640,640).to(device)torch.onnx.export(model,dummy_input,fire.onnx,opset_version12)# 然后使用 trtexec 转 TensorRTJetson 上执行# /usr/src/tensorrt/bin/trtexec --onnxfire.onnx --saveEnginefire.engine步骤 3Jetson 上运行轻量推理使用 TensorRT推荐使用 TensorRT-YOLOv5 项目加载.engine文件实现20 FPS Jetson Nano。⚙️ 六、性能优化建议场景建议高帧率使用yolov5n或yolov5simgsz416高精度使用yolov5mimgsz640 TTA测试时增强夜间火焰在训练集中加入红外/低光照样本减少误报增加smoke类别结合火焰烟雾联合判断