ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

火焰识别的基本方法

2021-02-02 21:04:15  阅读:472  来源: 互联网

标签:decay Cb image 火焰 zeros np Cr 识别 方法


一、检测方式

1.1 传统方式

  • 基于颜色空间
    • RGB
    • HSV
    • YCbCr
  • 基于纹理
  • 高斯混合模型
  • 基于视频流的帧差法

1.2 机器学习

  • 支持向量机
  • 随即森林
  • 决策树

1.3 深度学习

  • 分类网络
    • mobileNet
    • squeezeNet
    • VGG16
    • AlexNet
  • 目标检测
    • yolo
    • Fast-RCNN
  • 语义分割
    • FCN
    • UNet
    • SegNet
    • DeepLab

二、检测方式介绍

由于时间有限,在这会主讲基于颜色空间的传统方式及深度学习方式。还有日后我研一论文的实现细节,现在暂时不做叙述。关注我别迷失哦

2.1 基于YCbCr颜色空间的火焰检测

1、实验环境

import cv2
import numpy as np

2、公式介绍
3、正常情况下我们通过opencv得到的是一张基于BGR颜色空间的图片。因此,我们第一步是将BGR图片转换成YCbCr颜色空间的图片。代码如下:

def BGRToYCbCr(image):
    """
    颜色空间转换
    :param image: 图像
    :return:
    """
    image_B, image_G, image_R = cv2.split(image)
    y = np.array(0.2568 * image_R + 0.5041 * image_G + 0.0979 * image_B, dtype=np.uint8) + 16
    cb = np.array(-0.1482 * image_R - 0.2910 * image_G + 0.4392 * image_B, dtype=np.uint8) + 128
    cr = np.array(0.4392 * image_R - 0.3678 * image_G - 0.0714 * image_B, dtype=np.uint8) + 128
    return y, cb, cr

4、第二步就是完成对论文中火焰区域的限制条件,也就是论文中所列公式的代码编写。
代码如下:注:X_decay为X的衰减系数是本人额外添加的。
具体公式以后再详细介绍

def detectFireByYCbCr(Y, Cb, Cr, Y_decay=1.15, Cb_decay=0.75, Cr_decay=1.15, threshold=40):
    """
    通过YCbCr颜色空间进行火焰识别,为Y, Cb, Cr添加对应的权值衰减
    """
    rows, cols = Y.shape
    # 像素的个数
    numPixs = rows * cols
    zeros = np.zeros((rows, cols))
    ones = np.ones((rows, cols))
    # 等式3
    YgtCb = np.where(Y > Cb, ones, zeros)
    # 等式4
    CrgtCb = np.where(Cr > Cb, ones, zeros)
    # 等式5
    Y_mean = cv2.integral(Y)[-1, -1] / numPixs * Y_decay
    Cb_mean = cv2.integral(Cb)[-1, -1] / numPixs * Cb_decay
    Cr_mean = cv2.integral(Cr)[-1, -1] / numPixs * Cr_decay
    F = np.where(Y > Y_mean, np.where(Cb < Cb_mean, np.where(Cr > Cr_mean, ones, zeros), zeros), zeros)
    # 等式6
    Ft = np.where(np.abs(Cb - Cr) > threshold, ones, zeros)
    return YgtCb * CrgtCb * F * Ft

3、实验结果
检测火焰区域

标签:decay,Cb,image,火焰,zeros,np,Cr,识别,方法
来源: https://blog.csdn.net/qq_38850266/article/details/113573220

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有