火焰识别系统代码
时间: 2025-08-31 13:53:12 AIGC 浏览: 8
### 火焰识别系统的实现代码
以下是基于YOLOv8的目标检测框架实现火焰识别的功能代码。此代码利用了深度学习模型来完成火焰的实时检测任务。
```python
from ultralytics import YOLO
import cv2
# 加载预训练的YOLOv8模型
model = YOLO('yolov8n.pt') # 使用小型版本的YOLOv8模型[^1]
# 自定义类别:仅保留火焰类别的预测结果
model.names[0] = 'flame'
# 打开摄像头或读取视频文件
cap = cv2.VideoCapture(0) # 参数为0表示打开默认摄像头,也可以传入视频路径
while True:
ret, frame = cap.read() # 逐帧捕获视频
if not ret:
break
# 对当前帧进行推理
results = model(frame)[0] # 进行目标检测[^4]
# 遍历检测结果中的边界框
for box in results.boxes.cpu().numpy():
r = box.xyxy[0].astype(int) # 获取边界框坐标 (x1, y1, x2, y2)
conf = round(box.conf[0], 2) # 获取置信度分数
cls = int(box.cls[0]) # 获取类别索引
if cls == 0: # 假设类别0代表火焰
color = (0, 0, 255) # BGR颜色格式,红色表示火焰
label = f'Flame {conf}' # 显示标签和置信度
# 绘制矩形框和标签
cv2.rectangle(frame, r[:2], r[2:], color, 2) # 边界框
cv2.putText(frame, label, (r[0], r[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, color, 2) # 文本标注
# 展示处理后的帧
cv2.imshow("Flame Detection", frame)
# 按下键盘上的 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 清理资源
cap.release()
cv2.destroyAllWindows()
```
#### 说明
- 上述代码实现了基于YOLOv8的火焰检测功能,适用于实时视频流场景。
- `ultralytics` 是YOLOv8官方推荐使用的库,需提前安装:`pip install ultralytics`.
- 如果需要自定义数据集训练,则按照引用描述准备好火焰和非火焰的数据集。
- RGB颜色特征也可作为辅助手段增强火焰检测效果[^3]。
---
阅读全文
相关推荐


















