监控视频中火焰检测算法

基于视频的火焰的检测

如果通过采集监控摄像头的画面,监控广大区域,发现着火区域,能够快速报警的话,就可以有效提高监控的效果,提早报警,大大减少财产损失和人员伤亡.
我们视觉上发现火灾的途径有2个:

  • 通过观察火焰,及时发现火灾.
  • 通过观察烟雾,及时发现火情.
    我们今天就对火焰的视觉检测做个简单的实验.
火焰

火焰检测的算法

一般情况下火焰的颜色都是明亮的红色.采用颜色过滤的方法,增加一个高低的过滤掩码层,就可以把火焰从图片中单独过滤出来,这个方法比简单,也适用于对特定颜色物体的跟踪.

一般是这样处理的:

  • 采集图像
  • 把BGR颜色空间转换成HSV空间
  • 定义高通和低通的滤波
  • 生产过滤的掩码与图像运算
  • 最终生成过滤后的火焰图像
fire0.gif
fire1.gif
import cv2
import numpy as np

video_file = "test.mov"
video = cv2.VideoCapture(video_file)


while True:
    (grabbed, frame) = video.read()
    if not grabbed:
        break

    blur = cv2.GaussianBlur(frame, (21, 21), 0)
    hsv = cv2.cvtColor(blur, cv2.COLOR_BGR2HSV)

    lower = [18, 50, 50]
    upper = [35, 255, 255]
    lower = np.array(lower, dtype="uint8")
    upper = np.array(upper, dtype="uint8")
    mask = cv2.inRange(hsv, lower, upper)

    output = cv2.bitwise_and(frame, hsv, mask=mask)
    cv2.imshow("output", output)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cv2.destroyAllWindows()

本次代码测试获得的图像只是过滤其他背景或火焰的图像,当然在理想条件下可以检测火焰.
可是在实际的过程中,灯光或火光的映射或其他橘红色的物体反射都可以透过过滤显示出来,使得火焰的检测准确性大大降低.
考虑的我们人类判断火焰的经验还是靠形状和颜色的特征来判断,所以最终的算法还是需要深度学习模型来处理,只是用上火焰的过滤算法,让火焰的特征更加明显,使得深度学习处理起来更加精确和快速.
下一步我们将把火焰的图像通过过滤后形成特征图像,作为训练集,真正做一个火焰检测模型.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、火灾探测器、手动火灾报警按钮和系统分类 (一)火灾探测器分类 1.根据探测火灾特征参数分类 (1)感温火灾探测...
    灰丫蛋阅读 4,662评论 0 0
  • 本篇文章十分的长,大概有2万7千字左右。 一、发展史 1、人脸识别的理解: 人脸识别(Face Recogniti...
    放飞人夜阅读 20,492评论 8 122
  • 这些年计算机视觉识别和搜索这个领域非常热闹,后期出现了很多的创业公司,大公司也在这方面也花了很多力气在做。做视觉搜...
    方弟阅读 6,756评论 6 24
  • 这样,当现实的世界轰然崩塌的时候,还有这个精神家园让我们回归; 当现实黑暗寒冷的时候,还有这座后花园阳光明媚四季如...
    二白啊阅读 155评论 0 0

友情链接更多精彩内容