- 博客(34)
- 收藏
- 关注
原创 项目实训(九)---视频人脸检测代码上传至服务器运行
2021SC@SDUSC这一部分主要记录将视频人脸检测代码上传到服务器运行的过程。服务器是指导我们实验的学长借给我们的。目录工具:过程:1.将代码上传到服务器2.配置环境2.配置运行环境3.配置相关文件结构4.运行代码测试5.结果保存工具:Xshell过程:1.将代码上传到服务器2.配置环境1.创建虚拟环境并激活创建:conda create -n WYQ python=3.8激活:conda activate
2022-05-01 14:16:50
324
原创 项目实训(八)---封装后端视频人脸检测相关代码
这一部分主要进行的工作是把视频中人脸识别部分代码进行封装,对外提供接口。目录代码完善:文件存储结构:对外接口:测试:结果规范:代码完善:1.这里设计了存储结构,规范了结果保存形式。2.从单个视频处理,改进成文件夹下遍历处理gif3.判断处理单个或者多个人物,进行不同的处理4.抽取代码中散落的各种地址,以传参形式,进行统一处理文件存储结构:我们商讨的文件存储结构如图:Resources下的文件结构是我这部分的,结构如下:对外接口:
2022-04-24 16:07:49
3882
原创 项目实训(补充)---提取视频关键帧用于视频内容分析
这一部分是我在学习过程中发现的一个比较不错的idea,想到可以用来可以作为我们功能的一个拓展。目录一.功能和实现思路简单介绍1. 背景介绍2.存在问题3.解决思路二.关键代码1.程序输入输出描述2.代码结构和代码三.效果展示1.输入视频2.提取出来的关键帧3.存在问题一.功能和实现思路简单介绍1. 背景介绍目前短视频越来越火,所以视频的内容分析也变得跟文本的内容分析一样重要。2.存在问题然而,如果每个分析者都要看每个视频,太花时间了,.
2022-04-18 11:31:01
1399
3
原创 项目实训(七)---多个人物关系建立
2021SC@SDUSC这里在和老师商讨后,在完成对一个视频目标任务检测计数后,老师建议我们可以加上对多个人关系的建立,主要表现在要统计一个视频中,多个人物出现的时间点的记录。根据每个人物出现的时间点可以判断在哪个时间点前后这些人物同时出现了。这部分完成后,关于人脸识别这里关键的算法已经完成,关于输入输出,视频文件遍历和保存等,在和后端整合到一起时,再来规范。目录一.关键代码二.效果2.1人脸库建立2.2人物关系生成一.关键代码声明资源:import dlib,os
2022-04-18 11:08:44
2836
原创 项目实训(六)---视频中单个目标对象逐帧检查
2021SC@SDUSC这部分我主要实现了对视频中指定人物出现次数逐帧(每6帧)进行检查。利用前面生成的人脸库,对视频中的人物进行逐帧的检查,如果人物出现则计数加一。最终返回计数值更大的gif给用户。一.代码视频中人脸检测关键代码:使用的库:import dlib,os,glob,timeimport cv2import numpy as npimport pandas as pd加载模型:#人脸特征提取器detector = dlib.get_frontal_
2022-04-15 20:34:38
4271
原创 项目实训(五)--- 对上传图片进行人脸判断
2021SC@SDUSC这部分是与前端同学商量,需要对用户上传的人脸图片进行一个预先判断,即判断用户上传的是否是人脸照片,如果不是则让用户重新上传,如果是人脸照片,则进行后续的算法操作。这部分代码是使用python的opencv进行实现的,因为我们的后端是使用java语言编写的,因此这部分代码要在java中进行一个调用。我们先来看这部分python代码对于功能的实现。目录一.代码实现二.测试效果一.代码实现首先引入需要的库:# 人脸检测import cv2impo.
2022-04-11 16:48:23
4019
原创 项目实训(四)---人脸库建立
后台部分在前期主要完成与前端文件上传和下载的工作。这部分记录对于处理完的视频提供的后台文件下载接口。流程:前端上传视频到后端 ——> 后端处理视频,处理完成的gif保存在一个文件夹,并给前端返回消息true 和 Gif数量 ——>前端收到true后,向后端发起下载请求,参数为原视频文件名后台文件的下载接口按理说不难写,但是开始也走了一些弯路:@RequestMapping(value = "/downFile") public HttpServletRespons.
2022-04-04 13:02:44
692
原创 项目实训(三)---后端文件下载接口
2021SC@SDUSC因为项目要求服务器有GPU,因此需要将项目部署到云服务器。这次记录将初步项目部署到云服务器的过程。
2022-03-26 13:32:00
758
原创 Netty源码分析总结
2021SC@SDUSC目录博客综述总结博客综述到目前为止,我们的Netty源码分析工作就结束了。我的分析主要分成两个部分,一是核心的组件,二是通信协议和私有协议的开发。在分析基础组件的时候其实还是比较枯燥的,尽管知道局部的调用的逻辑(这是我个人比较关注的地方,比较喜欢搞清楚一个事情发生的前后的逻辑关系,调用关系),但是还不清楚怎么应用,怎么体现出的高效性。在后面的协议的开发的源码中,我发现处处都是我前面分析的组件,Netty的责任链模式更是发挥了一个很大的用处,真的减少了很多要操心
2021-12-28 19:09:29
250
原创 Netty之私有协议栈开发(五)
2021SC@SDUSC今天的这一篇博客主要对我们上次留下的部分,也就是可靠性设计,进行详细解释。这里主要涉及下面这几个方面:握手和安全认证 心跳机制 重连机制 消息缓存重发机制这几个方面其实还是比较大的,因为其中包括心跳机制其实是由一位组员专门进行源码分析的。这一部分的内容我还是主要参考老师推荐的《Netty权威指南》这本书,来进行学习分析。握手和安全认证首先来看握手和安全认证。握手的发起是在客户端和服务端TCP链路建立成功通道激活时,握手消息的接入和安全认证在服务端处理。
2021-12-28 17:22:23
486
原创 Netty之通信协议和私有协议栈开发(二)
2021SC@SDUSC1. 核心组件 EventLoop 和 EventLoopGroup(已分析) ChannelPipeline(ChannelPipeline中已分析) ChannelHandler(ChannelPipeline中已分析) ChannelHandlerContext(已分析) Channel(已分析) ChannelFut...
2021-12-10 22:50:28
644
原创 Netty之通信协议和私有协议栈开发(一)
2021SC@SDUSC1. 核心组件 EventLoop 和 EventLoopGroup(已分析) ChannelPipeline(ChannelPipeline中已分析) ChannelHandler(ChannelPipeline中已分析) ChannelHandlerContext(已分析) Channel(已分析) Channel(已分...
2021-12-03 17:51:22
508
原创 Netty之责任链模式的过滤链实现源码分析(二)
2021SC@SDUSC下面分析一下出站数据传播的细节。我们从ChannelOutboundHandlerAdapter的write方法开始分析: public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { ctx.write(msg, promise); }如果想要实现自己的业务处理逻辑,需要继承ChannelOutb
2021-11-19 23:54:15
507
原创 Netty核心组件之ChannelPipeline源码分析
2021SC@SDUSC因为经过了第一个部分的分析之后,发现组内同学的代码分析是有重复的地方。因此我又在现有的认知下重新梳理了自己的分析内容:基础组件的分析 ChannelHandler责任链模式的过滤链 通信协议和私有协议栈开发在进行新的部分之前,我们还是先看一下netty服务端的示例代码:EventLoopGroup bossGroup = new NioEventLoopGroup(); // (1)EventLoopGroup workerGroup = new NioEvent
2021-11-05 23:59:25
414
原创 Netty核心组件之EventLoop和EventLoopGroup源码分析(三)
2021SC@SDUSC我们这一篇博客接着上次的博客,主要分析run()方法以及四个重要方法: selectStrategy.calculateStrategy(selectNowSupplier, hasTasks()) select(boolean oldWakenUp) processSelectedKeys() runAllTasks()目录run()一、selectStrategy.calculateStrategy(selectNowSuppli
2021-10-29 23:59:19
503
原创 Netty核心组件之EventLoop和EventLoopGroup源码分析(二)
这次博客主要继续上次的博客进行EventLoop的分析。我们继续从上次的NioEventLoopGroup中的newChild方法开始进行分析。newChild():protected EventLoop newChild(Executor executor, Object... args) throws Exception { SelectorProvider selectorProvider = (SelectorProvider) args[0]; Sel
2021-10-22 22:36:49
367
原创 Netty核心组件之EventLoop和EventLoopGroup源码分析(一)
在这篇博客中,我着重介绍netty最为核心的组件EventLoopGroup和EventLoop。netty 提供了大量的 demo 供用户使用和测试,我们今天就先从一个netty提供的demo出发,研究
2021-10-15 23:38:15
425
原创 netty初使用及核心组件介绍
2021SC@SDUSC一个netty应用例子:package test.MavenProject;import io.netty.bootstrap.Bootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.socket.nio.NioSo
2021-10-08 17:24:07
374
原创 Netty初了解及环境安装配置
1.Netty核心模块组件2.Google Protobuf3.Netty编解码器和handler(处理器:如何做处理和拦截)的调用机制4.TCP粘包和拆包及解决方案(编码器+自定义协议)5.源码分析:(1)Netty服务器启动过程源码分析(2)Netty请求过程源码剖析(3)FastThreadLocal源码分析(4)Pipleline Handler HandlerContext源码分析(5)ChannelPipeline...
2021-09-30 14:33:10
2584
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人