考生作弊行为分析系统利用python yolo系列网络模型算法框架,考生作弊行为分析算法利用图像处理和智能算法对考生的行为进行分析和识别,经过算法服务器的复杂计算和逻辑判断,算法将根据考生行为的特征和规律,判定是否存在作弊行为。考生作弊行为分析算法模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个bounding box。我们将其理解为98个预测区,很粗略的覆盖了图片的整个区域,就在这98个预测区中进行目标检测。
考生作弊行为分析算法是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码行表达思想,而不会降低可读性。与C / C 等语言相比,Python速度较慢。也就是说,Python可以使用C / C 轻松扩展,这使考生作弊行为分析算法可以在C / C 中编写计算密集型代码,并创建可用作Python模块的Python包装器。这给我们带来了两个好处:首先,代码与原始C / C 代码一样快(因为它是在后台工作的实际C 代码),其次,在Python中编写代码比使用C / C 更容易。
代码语言:javascript复制......................................................
for k = 1:length(setA1)-2
k
image3 = rgb2gray(imread(NAME1));
tmps3 = im2bw(imread(NAME2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%时空特征提取特征
image1b = image1;
image2b = image2;
image3b = image3;
%时空特征提取特征
image1b = image1;
image2b = image2;
image3b = image3;
[R,C] = size(tmps1);
for i = 1:R
for j = 1:C
if tmps1(i,j)==1
image1b(i,j) = image1(i,j);
else
image1b(i,j) = 0;
end
if tmps2(i,j)==1
image2b(i,j) = image2(i,j);
else
image2b(i,j) = 0;
end
if tmps3(i,j)==1
image3b(i,j) = image3(i,j);
else
image3b(i,j) = 0;
end
end
end
�D神经网络模型来提取图像帧中人群的时空特征, 时间维度3
y = func_feature1(image1b,image2b,image3b);
type = sim(net,y');
%容错处理
TYPE1(k)=type;
if k <= 16
TYPE2(k)=round(mean(TYPE1(1:k)));
else
TYPE2(k)=round(mean(TYPE1(k-16:k)));
end
[R,C]=size(tmps1);
frame2 = imread(NAME1);
for i = 1:R
for j = 1:C
if tmps1(i,j)==1;
frame2(i,j,1)=0;
frame2(i,j,2)=255;
frame2(i,j,3)=0;
end
end
end
%轮廓显示
YY = func_position(tmps3,imread(NAME1),80,TYPE2(k));
end
05_059_m
考生作弊行为分析算法目标检测架构分为两种,一种是two-stage,一种是one-stage,区别就在于 two-stage 有region proposal过程,类似于一种海选过程,网络会根据候选区域生成位置和类别,而one-stage直接从图片生成位置和类别。考生作弊行为分析算法的结构非常简单,就是单纯的卷积、池化最后加了两层全连接,从网络结构上看,与前面介绍的CNN分类网络没有本质的区别,最大的差异是输出层用线性函数做激活函数,因为需要预测bounding box的位置(数值型),而不仅仅是对象的概率。
代码语言:javascript复制function y2 = func_feature1(I1,I2,I3);
FX_Number = 9; %9个方向
Angle = 180;%角度
CellSize = 8; %分割大小8X8
FilterSize = 0; %高斯低通滤波器大小
FilterDelta = 0; %标准偏差
move_pixel = 8; %移动像素
=卷积核得到空时间特征,输入前后两帧视频信息
Images(:,:,1)=I1;
Images(:,:,2)=I2;
Images(:,:,3)=I3;
%但是硬核特征计算,替换为hog法,效果更好
=卷积核进行卷积
%获得每一帧的特征
%input—>H1
y1 = [func_HOG_Feature(I1,move_pixel,FX_Number,Angle,CellSize,FilterSize,FilterDelta,32)]';
y2 = [func_HOG_Feature(I2,move_pixel,FX_Number,Angle,CellSize,FilterSize,FilterDelta,32)]';
y3 = [func_HOG_Feature(I3,move_pixel,FX_Number,Angle,CellSize,FilterSize,FilterDelta,32)]';
%H1—>C2
y1th = tanh(y1);
y2th = tanh(y2);
y3th = tanh(y3);
�—>S3
y1th2 = y1th(1:2:end);
y2th2 = y2th(1:2:end);
y3th2 = y3th(1:2:end);
%out
G1 = conv(y1th2,y2th2,'same');
G2 = conv(y1th2,y3th2,'same');
G3 = conv(y2th2,y3th2,'same');
G = G1 G2 G3;
y = [G];