目录
- clc;
- clear;
- close all;
- warning off;
- addpath(genpath(pwd));
- rng('default')
-
- load FRCNN.mat
- In_layer_Size = [224 224 3];
- imgPath = 'smoke_train/'; % 图像库路径
- imgDir = dir([imgPath '*.jpg']); % 遍历所有jpg格式文件
- cnt = 0;
- for i = 1:length(imgDir) % 遍历结构体就可以一一处理图片了
- i
- if mod(i,12)==1
- figure
- end
- cnt = cnt+1;
- subplot(3,4,cnt);
- img = imread([imgPath imgDir(i).name]); %读取每张图片
- I = imresize(img,In_layer_Size(1:2));
- [bboxes,scores] = detect(detector,I);
- [Vs,Is] = max(scores);
- if isempty(bboxes)==0
- I1 = insertObjectAnnotation(I,'rectangle',bboxes(Is,:),Vs);
-
- else
- I1 = I;
- Vs = 0;
- end
- imshow(I1)
- title(['检测置信度:',num2str(Vs)]);
- if cnt==12
- cnt=0;
- end
- end
- 0056
基于Faster R-CNN深度学习网络的人员吸烟行为检测算法是一种利用深度学习技术进行人员吸烟行为检测的方法。该算法主要基于Faster R-CNN网络结构,通过对视频或图像序列中的人员进行目标检测和特征提取,实现吸烟行为的检测。
该算法的原理主要分为三个步骤:区域提议、特征提取和目标分类。
(1)区域提议
在区域提议阶段,算法通过区域生成网络(Region Proposal Network,RPN)产生一系列的目标区域。RPN是一种基于卷积神经网络(CNN)的神经网络结构,通过对输入图像进行卷积操作,提取出图像的特征图,并根据预设的规则生成一系列的目标区域。这些目标区域可能包含人脸、烟支等目标,但不包含背景信息。
(2)特征提取
在特征提取阶段,算法将提取出的目标区域输入到卷积神经网络(CNN)中进行特征提取。CNN是一种深度学习网络结构,通过对输入数据进行卷积操作,提取出数据的特征。通过对目标区域进行卷积操作,可以得到目标区域的特征图。
(3)目标分类
在目标分类阶段,算法将提取出的特征图输入到全连接层(FC)中进行分类和边框修正。FC是一种深度学习网络结构,用于将输入数据映射到目标标签空间。通过对特征图进行全连接操作,可以得到目标区域的分类结果和边框信息。
该算法的主要公式包括卷积神经网络(CNN)的公式、RPN的公式和FC的公式。
(1)卷积神经网络(CNN)的公式
CNN是一种常用的深度学习网络结构,主要用于图像特征的提取。它的基本结构包括多个卷积层、池化层和全连接层。其中,卷积层用于对输入图像进行卷积操作,提取出图像的特征;池化层用于对特征图进行降采样,减少网络的参数数量;全连接层用于将特征图映射到目标标签空间,进行分类和回归等任务。
CNN的公式如下:
(2)RPN的公式
RPN是一种基于CNN的目标区域生成网络,用于产生一系列的目标区域。它的基本结构与CNN相似,但在最后一层卷积层之后增加了两个全连接层,用于生成目标区域的边框信息和置信度信息。RPN的公式如下:
(3)FC的公式
FC是一种深度学习网络结构,用于将输入数据映射到目标标签空间。它的基本结构是一个全连接层,每个节点都与前一层的所有节点相连。
FC的公式如下:
OOOOO
OOO
O