自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 山东大学项目实训十五——开源万能解码框架解决

开源万能解码框架解决1.ffmpeg多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。国内很多手机客户端都是集成这个开源框架http://www.oschina.net/p/ffmpeg/没有Android版本2.VLCVLC多媒体播放器(最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影音光盘及各类流式协议。它也能作为unicast或 multica

2022-05-27 22:20:36 264

原创 山东大学项目实训十六——可控音乐变压器Controllable Music Transformer

人脸验证与二分类-深度学习第四课《卷积神经网络》-S________________________________________人脸验证与二分类 (Face Verification and Binary Classification)Triplet loss是一个学习人脸识别卷积网络参数的好方法,还有其他学习参数的方法,让我们看看如何将人脸识别当成一个二分类问题。另一个训练神经网络的方法是选取一对神经网络,选取Siamese网络,使其同时计算这些嵌入,比如说128维的嵌入(编号1),或者更高维,

2022-05-27 22:19:05 607

原创 山东大学项目实训十四——FFmpeg(二)

上一篇https://editor.csdn.net/md/?articleId=12498063004.改变编码 上(编码,音频转码)(1)查看编解码器ffmpeg -codecs(2)网站常用编码MP4封装:H264视频编码+ACC音频编码WebM封装:VP8视频编码+Vorbis音频编码OGG封装:Theora视频编码+Vorbis音频编码(3)无损编码格式.flac转换编码ffmpeg -i music_flac.flac -acodec libmp3lame -ar 44100

2022-05-27 18:45:17 265 1

原创 山东大学项目实训十三——FFmpeg

笔记来源https://www.bilibili.com/video/av4014637401.下载,配置ffmpeg下载首先打开 ffmpeg官网下载或者用 百度云 下载(https://pan.baidu.com/share/init?surl=kDAv-tyc8LJ0wi1sCEPNCA 提取码:ff8o)然后点击 windows 对应的图标,再点击下面的”Windows EXE File”随便选一个点进去选择一个版本下载。输入ffmpeg -version检查是否安装成功02.简

2022-05-26 21:43:38 201

原创 山东大学项目实训十二——手机影音

媒体播放器状态迁移图VideoView的介绍VideoView继承SurfaceView,并且里面封装MediaPlayerMediaPlayer用于播放视频和音频控件解码-底层C代码-JNI1.可以用来播放视频2.用来播放音乐3.和底层打交道4.使用它和封装它要遵循机制VideoView封装了MediaPlayer继承SurfaceView,当封装MediaPlayer的时候,要按照MediaPlayer的状态机制去封装SurfaceViewSurfaceView默认使用双缓冲技术

2022-05-21 19:46:56 314

原创 山东大学项目实训十一——吴恩达深度学习笔记

为什么使用深层表示?(Why deep representations?)我们都知道深度神经网络能解决好多问题,其实并不需要很大的神经网络,但是得有深度,得有比较多的隐藏层,这是为什么呢?我们一起来看几个例子来帮助理解,为什么深度神经网络会很好用。首先,深度网络在计算什么?首先,深度网络究竟在计算什么?如果你在建一个人脸识别或是人脸检测系统,深度神经网络所做的事就是,当你输入一张脸部的照片,然后你可以把深度神经网络的第一层,当成一个特征探测器或者边缘探测器。在这个例子里,我会建一个大概有 2

2022-05-21 19:29:27 372

原创 山东大学项目实训十——Android开发环境搭建

Android开发环境搭建本章介绍了如何在个人电脑上搭建Android开发环境,主要包括:Android开发的发展历史是怎样的、Android Studio的开发环境是如何搭建的、如何创建并编译App工程、如何运行和调试App。1.1 Android开发简介本节介绍Android开发的历史沿革,包括Android的发展历程和Android Studio的发展历程两个方面。1.1.1 Android的发展历程安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操.

2022-05-21 19:12:45 1109

原创 山东大学项目实训九——HTTP服务器的工作流程和ServerSocket详解

1.什么是HTTP服务器能够监听服务,井且能够正确解析HTTP请求工并且能够按照HTTP响应给出正确响应的服务器就是HTTP服务器。2.HTTP服务器是如何工作的3. 搭建 HTTP 服务器这是一个简单的 HTTP web 服务器的示例:const http = require('http')const port = 3000const server = http.createServer((req, res) => { res.statusCode = 200 res.s

2022-05-12 08:44:49 390

原创 山东大学项目实训八——Android音乐播放器

音乐播放器说明1.音乐播放器的逻辑,音乐列表数据封装在Service里面Activity和Service进行交互–aidl(服务的代理类)-Handler BroadcastReceiver 和EventBus2.显示音乐播放时间,演唱者,点击上一个音乐,歌词同步等在Activity做。AIDL小案例1.定义一个服务```cpp public class MyService extends Service { private AIDLActivity callback; .

2022-05-11 22:12:41 253

原创 山东大学项目实训七——HTTP协议请求头和响应头

实现一个可以支持静态资源访问的HTTP服务器。基础编程语言: java语言。核心技术: HTTP请求,网络编程,多线程等。为何我们能访问网络上的网页HTTP协议的格式和内容HTTP 请求报文由3部分组成(请求行+请求头+请求体)HTTP请求报文1是请求方法,GET和POST是最常见的HTTP方法,初次以外还包括 DELETE、HEAD、OPTIONS、PUT、TRACE,不过现在大部分的浏览器只支持GET和POST2是请求对应的URL地址,他和报文头的Host属性,组合起来是一个完整的请

2022-05-11 20:33:14 108

原创 山东大学项目实训四——Face_Recognition 使用Opencv和Dlib实现基于视频的人脸识别

Who You Want To See “你想看谁”项目案例介绍开发语言:100% python代码。场景:将视频中目标人物的相关视频进行裁剪。项目配置1、软件Python 3.7PyTorch >= 1.5.1opencv-pythonmoviepyshutil相关项目1、脸部检测项目(yolo_v3)项目地址:https://codechina.csdn.net/EricLee/yolo_v3另外用户可以根据自己需求替换检测模型。2、人脸识别项目(Insi

2022-04-12 19:55:53 1935

原创 山东大学项目实训五——开源项目 - DpCas 镜头场景分割 Scene Segmentation

基于场景对视频进行划分首先我们希望将视频根据场景的特点划分成不同的片段,这样最终返回给用户的结果,是包含各个转场的关键视频片段,而非盲目地将剪辑出全部片段。关于进行划分的算法我们进行了初步的调研,预计主要借鉴论文” A Local-to-Global Approach to Multi-modal Movie Scene Segmentation”(Rao, A. , et al. IEEE 2020)。其基本思想是通过三个阶段执行场景分割:首先从多个效果中提取镜头表示,而后根据集成信息进行局部预测,最后

2022-04-12 19:37:23 737

原创 山东大学项目实训六——基于dlib进行人脸检测

基于dlib进行人脸检测Dlib是一个深度学习开源工具,基于C++开发,也支持Python开发接口。由于Dlib对于人脸特征提取支持很好,有很多训练好的人脸特征提取模型供开发者使用,所以Dlib人脸识别开发很适合做人脸项目开发。官网地址:http://dlib.netGithub 源码库:https://github.com/davisking/dlibHOG 方向梯度直方图(Histogram of Oriented Gradient)(1) HOG是一种特征描述子,通常用于从图

2022-03-26 19:57:04 5299

原创 23数据结构-笔记1

2023数据结构第一章 绪论数据结构在学习:如何用程序代码把现实世界的问题信息化如何用计算机高效处理这些信息从而创造价值硬件:CPU、内存、主板数据结构 基本概念知识总览同属于一个数据对象,但我的财富不属于富豪榜数据结构(数据元素之间成线性数据结构或网状)数据结构关注数据元素之间的关系(四种逻辑结构)和对这些数据元素的操作,而不关系具体数据项的内容。数据结构第一要素——逻辑结构1.集合结构橙色数据元素,圈数据对象2.线性结构3.树形结构4.图

2022-03-11 09:40:58 140

原创 山东大学项目实训小组一——基于深度学习的AI视频剪辑器“易剪”

技术要点:图像处理 计算机视觉 深度学习 多媒体前端一、项目研究背景:随着短视频热潮的兴起,越来越多的人投入精力到了视频剪辑视频制作之中。然而利用现有的视频剪辑工具,剪辑一段视频是非常麻烦的,尤其是视频剪辑前期阶段,查找素材、导入、粗剪辑,视频中庞大的内容资源难以检索,素材分散,查找难度大,重复性工作耗时费力,导致一系列问题,例如:降低了内容的精准度;增加了时间和人工成本;长视频资源堆积,导致很多优质内容埋没失去价值。尤其是针对缺乏专业人士助力的中小企业品宣部、个人视频剪辑爱好者,站在创作者的角度来看,

2022-03-07 22:21:55 2292

原创 山东大学项目实训三——python+opencv实现人脸识别2

上一篇1.检测多个人脸#导入cv模块import cv2 as cv#检测函数def face_detect_demo(): gary = cv.cvtColor(img,cv.COLOR_BGR2GRAY) face_detect = cv.CascadeClassifier('D:/Junior second/shixun/OPENCV(WIN)/opencv/sources/data/haarcascades/haarcascade_frontalface_default.x

2022-03-07 12:57:23 4447

原创 山东大学项目实训二——python+opencv实现人脸识别

python+opencv实现人脸识别安装OpenCV1.读取文件&灰度转换#导入cv模块import cv2 as cv#读取图片img = cv.imread('face1.jpg')#灰度转换gray_img = cv.cvtColor(img,cv.COLOR_BGR2GRAY)#显示灰度图片cv.imshow('gray',gray_img)#保存灰度图片cv.imwrite('gray_face1.jpg',gray_img)#显示图片cv.imshow(

2022-03-07 10:24:11 1009

原创 Netty 接受请求过程源码剖析 2021SC@SDUSC

Netty 接受请求过程源码剖析1 源码剖析目的服务器启动后肯定是要接受客户端请求并返回客户端想要的信息的,下面源码分析 Netty 在启动之后是如何接受客户端请求的在 io.netty.example 包 下2 源码剖析说明:从之前服务器启动的源码中,我们得知,服务器最终注册了一个 Accept 事件等待客户端的连接。我们也知道,NioServerSocketChannel 将自己注册到了 boss 单例线程池(reactor 线程)上,也就是 EventLoop 。先

2021-12-27 15:23:57 596

原创 山东大学Netty 启动过程源码剖析2021SC@SDUSC

2021SC@SDUSCNetty 核心源码剖析1基本说明只有看过 Netty 源码,才能说是真的掌握了 Netty 框架。在 io.netty.example 包下,有很多 Netty 源码案例,可以用来分析源码分析章节 是针对有 Java 项目经验,并且玩过框架源码的人员讲的,否则看起来会有相当的难度。2 Netty 启动过程源码剖析2.1 源码剖析目的用源码分析的方式走一下 Netty (服务器)的启动过程,更好的理解 Netty 的整体 设计和运行机制。2.2

2021-12-27 15:23:01 94

原创 <2021SC@SDUSC>山东大学Netty小组——Google Protobuf

Google Protobuf1 编码和解码的基本介绍编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码 [示意图]codec(编解码器) 的组成部分有两个:decoder(解码器)和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据2 Netty 本身的编码解码的机制和问题分析Netty 自身提供了一些 codec(编解码器)Netty 提供的

2021-12-20 07:55:13 106

原创 山东大学Netty 编解码器和 handler 的调用机制

2021SC@SDUSCNetty 编解码器和 handler 的调用机制1 基本说明netty 的组件设计:Netty 的主要组件有 Channel、EventLoop、ChannelFuture、ChannelHandler、ChannelPipe 等ChannelHandler 充当了处理入站和出站数据的应用程序逻辑的容器。例如,实现 ChannelInboundHandler 接口(或ChannelInboundHandlerAdapter),你就可以接收入站事件和数据,这些数据会被

2021-12-13 14:15:06 85

原创 <2021SC@SDUSC>Netty 应用实例-群聊系统

2021SC@SDUSCNetty 应用实例-群聊系统实例要求:编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务器端:可以监测用户上线,离线,并实现消息转发功能客户端:通过 channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息(有服务器转发得到)目的:进一步理解 Netty 非阻塞网络编程机制代码演示代码如下:GroupChatServerpackage com.shandonguniversity.ne

2021-12-06 08:00:23 84

原创 <2021SC@SDUSC>Netty 心跳检测机制案例

2021SC@SDUSCNetty 心跳检测机制案例实例要求:编写一个 Netty 心跳检测机制案例, 当服务器超过 3 秒没有读时,就提示读空闲当服务器超过 5 秒没有写操作时,就提示写空闲实现当服务器超过 7 秒没有读或者写操作时,就提示读写空闲代码如下:MyServerpackage com.shandonguniversity.netty.heartbeat;import io.netty.bootstrap.ServerBootstrap;import

2021-11-29 08:46:07 168

原创 山东大学Netty 心跳(heartbeat)服务源码剖析

2021SC@SDUSCNetty 心跳(heartbeat)服务源码剖析1 源码剖析目的Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一个服务——心跳机制 heartbeat。通过心跳检查对方是否有效(检查客户端和服务器端是否有效),这是 RPC 框架中是必不可少的功能。下面我们分析一下 Netty内部心跳服务源码实现。2 源码剖析说明Netty 提供了 IdleStateHandler ,ReadTimeoutHandler,WriteTime

2021-11-22 08:25:23 643

原创 <2021SC@SDUSC>Netty任务队列TaskQueue

2021SC@SDUSC左上NioEventGroup中除了Selector,还有一个很重要的TaskQueue任务队列,在整个事件循环的过程中,右下pipeline中会有一系列Handler对业务和数据进行处理,如果在某个Handler里有一个长时间的操作,势必造成pipeline有一定的阻塞,所以对某些任务可以提交到对应的TaskQueue中异步处理。任务队列中的 Task 有 3 种典型使用场景用户程序自定义的普通任务 [举例说明]用户自定义定时任务非当前 Reactor 线程调

2021-11-15 08:18:34 149

原创 Netty 模型 和 Netty 快速入门实例-TCP 服务

5.8Netty 模型5.8.1工作原理示意图 1-简单版Netty 主要基于主从 Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 Reactor5.8.2对上图说明1)BossGroup 线程维护 Selector , 只关注 Accecpt2)当接收到 Accept 事件,获取到对应的 SocketChannel, 封装成 NIOScoketChannel 并注册到Worker 线程(事件循环), 并进行维护3)当 Worker 线程监听

2021-11-08 14:30:58 136

原创 <2021SC@SDUSC>Netty核心模块组件

2021SC@SDUSCNetty 核心模块组件1 Bootstrap、ServerBootstrapBootstrap 意思是引导,一个 Netty 应用通常由一个 Bootstrap 开始,主要作用是配置整个 Netty 程序,串联各个组件,Netty 中 Bootstrap 类是客户端程序的启动引导类,ServerBootstrap 是服务端启动引导类常见的方法有 public ServerBootstrap group(EventLoopGroup parentGroup, E

2021-11-01 19:06:59 104

原创 山东大学Netty高性能架构设计Reactor 模式

Netty高性能架构设计5.1线程模型基本介绍1)不同的线程模式,对程序的性能有很大影响,为了搞清 Netty 线程模式,我们来系统的讲解下 各个线程模式, 最后看看 Netty 线程模型有什么优越性.2)目前存在的线程模型有: 传统阻塞 I/O 服务模型Reactor 模式3)根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现单 Reactor 单线程; 单 Reactor 多线程; 主从 Reactor 多线程4)Netty 线程模式(Netty 主要基

2021-10-25 18:46:19 133

原创 Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接<2021SC@SDUSC>

Netty 通过 WebSocket 编程实现服务器和客户端长连接实例要求:Http 协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接.要求:实现基于 webSocket 的长连接的全双工的交互改变 Http 协议多次请求的约束,实现长连接了, 服务器可以发送消息给浏览器客户端浏览器和服务器端会相互感知,比如服务器关闭了,浏览器会感知,同样浏览器关闭了,服务器会感知运行界面package com.shandonguniversity.netty.

2021-10-18 21:18:09 481

原创 山东大学Netty实验小组-NIO零拷贝案例 异步 同步 阻塞 非阻塞 的说明 2021SC@SDUSC

NIO 与零拷贝1.零拷贝基本介绍1)零拷贝是网络编程的关键,很多性能优化(比如文件传输)都离不开。2)在 Java 程序中,常用的零拷贝有 mmap(内存映射) 和 sendFile方法。那么,他们在 OS 里,到底是怎么样的一个的设计?我们分析 mmap 和 sendFile 这两个零拷贝3)另外我们看下 NIO 中如何使用零拷贝2.传统IO 数据读写Java 传统 IO 和 网络编程的一段代码3.传统IO 模型DMA: direct memory access 直接内存拷贝(不使用

2021-10-14 18:15:06 92

原创 山东大学Netty学习小组NIO网络编程应用实例-群聊系统与NIO 零拷贝 2021SC@SDUSC

2021SC@SDUSCSelectionKey1)SelectionKey,表示 Selector 和网络通道的注册关系, 共四种:int OP_ACCEPT:有新的网络连接可以 accept,值为 16 int OP_CONNECT:代表连接已经建立,值为 8int OP_READ:代表读操作,值为 1int OP_WRITE:代表写操作,值为 4源码中:public static final int OP_READ = 1 << 0; public static final

2021-10-04 12:44:52 165

原创 NIO 非阻塞 网络编程 2021SC@SDUSC

关于Buffer 和 Channel 的注意事项和细节ByteBuffer 支持类型化的 put 和 get, put 放入的是什么数据类型,get 就应该使用相应的数据类型来取出,否则可能有 BufferUnderflowException 异常。[举例说明]package com.shandonguniversity.nio;import java.nio.ByteBuffer;public class NIOByteBufferPutGet { public static vo

2021-10-01 14:41:34 97

原创 我的学习计划目录(任务+核心代码)2021SC@SDUSC

第 1 部分 JAVA BIO 编程I/O 模型 I/O 模型基本说明 BIO、NIO、AIO 适用场景分析 JAVA BIO 基本介绍 JAVA BIO 工作机制 JAVA BIO 应用实例 JAVA BIO 问题分析第 2 部分 JAVA NIO 编程JAVA NIO 基本介绍 NIO 和 BIO 的比较 NIO 三大核心原理示意图 Selector 、 Channel 和 Buffer 的关系图(简单版) 缓冲区(BUFFER) 基本介绍

2021-09-28 09:20:34 172

原创 Java NIO 编程2021SC@SDUSC

2021SC@SDUSCJava NIO 基本介绍Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.io 包中的很多类进行改写。【基本案例】NIO 有三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器)

2021-09-25 20:03:33 383 1

原创 山东大学Netty小组——Java BIO 编程

I/O 模型今天我们先介绍绿色部分Java BIO,也就是Java的原生IO,然后进行一个Java BIO的实例分析。I/O 模型基本说明I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能(Client和Sever之间通讯的通道,单通道还是双通道,有没有通道缓冲,异步还是同步,阻塞还是非阻塞)Java 共支持 3 种网络编程模型I/O 模式:BIO、NIO、AIO(原来程序小,网络的并发性要求不高,原生java BIO就可以满足,但随着网络大并

2021-09-20 09:36:33 248

原创 山东大学软件工程应用与实践Netty小组课题介绍

山东大学软件工程应用与实践Netty小组Netty项目介绍:Netty框架具备如下特点:Netty小组大致分工:Netty的学习参考资料Netty项目介绍:Netty是由JBOSS提供的一个Java开源框架,现为 Github上的独立项目。它利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架,提供异步的、事件驱动(客户端的行为、读写事件)的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 是基于NIO的客户、服

2021-09-19 18:56:51 302

2022最新Android基础教程,从开发入门到项目实战

配合B站视频https://www.bilibili.com/video/BV19U4y1R7zV?spm_id_from=333.337.search-card.all.click

2022-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除