1.一种基于局域网内不同主机数据源共享卷积神经网络的方法,其特征在于,包括以下步骤:步骤S1:使用Qt布局数据源推流拉流上位机界面;
步骤S2:搭建多个局域网推流数据源的客户端与唯一拉流数据源的接收客户端,使用Nginx作为数据源局域网转发服务器;
步骤S3:卷积神经网络训练深度学习模型;
步骤S4:使用模型进行数据源人脸分类识别,实现对图片或者视频人脸识别与姓名标注;
所述步骤S1进一步包括:
步骤S11:数据源推流上位机界面,实现不同主机选择数据源与推流到服务器功能;
步骤S12:数据源拉流上位机界面,实现拉流功能与识别完成后数据源展示;
所述步骤S2进一步包括:
步骤S21:设置推流数据源客户端,实现不同主机推流到同一个转发服务器;首先判断数据源是图片或者视频,如果是视频直接推流,如果是图片进行转化成视频帧在进行推流;
把数据源解码成原始数据帧,再进行编码成可以在网络中传播的格式;调用FFmpeg实现对视频源进行解编码以及把帧数据发送到同一局域网的数据转发服务器;
步骤S22:搭建视频转发服务器,在局域网内任选一个主机搭建转发服务器,使用Nginx代理服务器确定服务器IP地址与端口号,采用rtmp协议进行数据传输,Nginx用于接收多个推流端以实现多对一传输的功能,后端识别模型接收的数据相当于来自于一个主机从而实现共享;
步骤S23:设置唯一拉流数据源客户端,调用FFmpeg实现从转发服务器的IP地址与端口号拉取数据流,并将数据解码成本地图片格式供卷积网络使用,通过卷积神经网络模型把识别后图像显示在上位机上或者可以选择保存到本地;
所述步骤S3进一步包括:
步骤S31:图像源的获得;
步骤S32:构建卷积神经网络;
步骤S33:对于多分类计算softmax归一化后使用交叉熵损失函数对损失函数进行多次迭代,通过随机批次梯度下降不断更新参数直到损失函数收敛;
步骤S34:避免过拟合进行dropout以及交叉验证来提高模型的精度;计算识别准确率和召回率,如果识别准确率和召回率满足准确率阈值和召回率阈值就认为分类正确。
2.根据权利要求1所述的基于局域网内不同主机数据源共享卷积神经网络的方法,其特征在于,所述步骤S31进一步包括:步骤S311:对于卷积神经网络这里使用的数据源是选择影视明星知名度取前100位,对
100位分别获得50张人脸图片进行卷积训练并且通过图像增强提高识别的准确率;
步骤S312:对于数据源图片按一定分辨率裁剪,进行图像灰度处理,像素点归一化,标签是对应的人名然后对人名进行one-hot编码;
所述步骤S32进一步包括:
步骤S321:卷积神经网络通过对于AlexNet模型进行修改,改变卷积层与池化层,对于最后的全连接层符合分类的种类数。
3.根据权利要求1所述的基于局域网内不同主机数据源共享卷积神经网络的方法,其特征在于,所述步骤S4进一步包括:步骤S41:调用OpenCV确定人脸位置,并作出矩形框标记;
步骤S42;调用卷积神经网络保存的模型进行分类,把名字在矩形框显示,如果未识别成功或者不在人脸库就标注“识别失败”。