自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(286)
  • 资源 (1)
  • 问答 (7)
  • 收藏
  • 关注

原创 光流估计(三) PWC-Net 模型介绍

PWC-Net 的网络模型在由提出,发表文章为与FlowNet2.0模型相比,PWCNet的大小缩小了17倍,训练成本更低且精确度稳定。此外,它在Sintel数据集(1024×436)图像上的运行速度大约为35 fps,是光流估计深度学习中非常基础且具有重要意义的一个网络模型。FlowNet2.0 的提出证明了组织多个子网络结构构建更大型更复杂的光流估计网络可以提高光流估计的质量,但是这样做的后果就是使得训练复杂度和学习参数量成倍增加,并且容易出现过拟合问题。PWC-Net的。

2023-01-29 15:28:09 63

原创 光流估计(二) FlowNet 系列文章解读

在上篇文章中,我们学习并解了光流(Optical Flow)的一些基本概念和基本操作,但是传统的光流估计方法计算比较复杂、成本较高。近些年来随着CNN卷积神经网络的不断发展和成熟,其在各种计算机视觉任务中取得了巨大成功(多用于识别相关任务)。于是,将光流估计与CNN深度学习相结合提出了FlowNet系列文章,首次将CNN运用到光流预测上,使网络能从一对图片中预测光流场,每秒达到5到10帧率,并且准确率也达到了业界标准。

2023-01-26 11:28:34 304

原创 光流估计(一) 光流的简介与操作

光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,也有人将二维平面图像内特定像素点的灰度/亮度的瞬时变化率定义为光流(`Optical flow can also be defined as the distribution of apparent velocities of movement of brightness pattern in an image.`)

2023-01-20 21:20:37 884

原创 点云配准(四) Sparse Point Registration 算法浅析

所谓稀疏点云就是点数稀少的点云模型,有时我们需要用到一些物体上的关键点来和目标模型进行配准,计算一些关键指标。而传统的点云配准算法要求待配准的两片点云数量级相当,并且还包括粗配准和精配准两个阶段。经实验可得,传统点云配准算法在稀疏点云配准上表现较差,因此稀疏点云配准十分关键。

2022-11-20 22:13:39 261

原创 WPF(七) Prism框架基本特性

在之前的文章中,为了能在MVVM框架中为前端View提供逻辑/数据绑定支持,使得后端数据具备通知UI数据变更的能力,我们手动实现了INotifyPropertyChanged 接口并将其封装为 **ViewModelBase** 基类。在Prism框架中,Prism扩充了WPF的绑定通知功能。提供了已经实现INotifyPropertyChanged接口并封装好的基类 **BindableBase** 。并使用 CallerMemberName 特性自动获取属性名称,解决了属性改变事件调用繁琐的问题,同

2022-10-28 17:58:35 450

原创 WPF(六) Command 命令模型源码分析

在之前 [WPF(三) WPF命令中我们已经分析过了 WPF 的命令系统,包括WPF默认的 RoutedCommand 以及我们自定义的 ICommand 命令实现。但是上篇文章主要侧重于命令的使用,而一些命令工作原理和流程细节还存在一些疑问,比如 ICommand 的 CanExecuteChanged 事件是如何实现订阅的?关联

2022-10-12 18:06:39 892

原创 点云配准(四) 四元数与旋转变换

​ 四元数(Quaternions)是由爱尔兰数学家哈密顿(William Rowan Hamilton)在1843年引入的数学概念,可以看作是一种新的数值类型。四元数与复数的联系比较密切,可以视为是一种复数的拓展(复数是实数的复数,四元数是复数的复数)。四元数的定义和复数非常类似,唯一的区别就是四元数一共有三个虚部,而复数只有一个。所有的四元数qqqq=a+bi+cj+dk,(a,b,c,d∈R)q=a+bi+cj+dk,(

2022-09-18 21:10:33 576

原创 Java 微信公众号每日自动给女朋友推送问候

近期网上又出现一股给女朋友做微信公众号推送的潮流,那么别人有的我女朋友也得有不是O.o 简单研究了一下做微信公众号推送的原理,简单来说就是后台服务器做个定时任务,然后定时调用微信公众平台提供的Web API接口(HTTP),发送模板消息(JSON数据)即可。

2022-09-04 21:06:40 4853 5

原创 Spring-Web(一) RestTemplate使用与源码浅析

​ RestTemplate 继承自 HttpAccessor,该类可以理解为一个用于接触/访问HTTP底层客户端的抽象基类,其源码如下。可以看出,该类中的 ClientHttpRequestFactory 工厂(或者说客户端请求。

2022-09-03 12:17:40 235

原创 WPF(五) MVVM模式

MVVM是Model-View-ViewModel的简写,MVVM是一种设计模式,类似于比较流行的MVC。这种模式引入的主要的目的就是将前端UI视图(View)和后端逻辑数据(Model)进行分离,从而降低前后端的耦合,提高项目的开发效率和可维护性、可拓展性。......

2022-08-25 17:49:44 711

原创 WPF(四) WPF 模板

在WPF中,控件只是一个数据和算法行为的载体,是个抽象的概念。至于控件本身的外观和行为、控件数据的呈现方式都是靠 Template 来具体定义的,通过引入模板(Template)微软将数据和算法的“内容”与“形式”解耦了,我们可以轻松的创造、修改、调整控件长什么样、有什么行为、数据如何展示等。这就是为什么默认情况下 Button 或 TextBox 形状是矩形的,因为它是在其默认模板中定义(正是模板决定了TextBox是方方正正的输入框,可以输入数据)。深入到控件内部,每个控件本身是一棵 UI元素树,其内部

2022-08-19 17:24:45 499

原创 WPF(三) WPF 命令

WPF 区别于 WinForm,在继承WinForm熟悉的事件和委托技术之上,还提供了一套完善的命令(Command)系统。简单来说,命令是一个任务的完整封装,例如保存,复制,剪切这些操作都可以理解为一个个独立的命令。乍一看,命令和传统的事件机制似乎很相似,都是执行一些目的/行为,但命令和事件并不冲突,命令和事件的区别就在于命令是具有约束力的。

2022-08-19 17:14:39 784 1

原创 WPF(二) WPF核心进阶

控件模型:WPF 提供三个用于创建控件的常规模型,每个模型都提供不同的功能集和灵活度。 三个模型的基类是UserControl、Control 和 FrameworkElement 。其中UserControl称为用户控件继承自ContentControl,提供类似于Window窗口的简单布局控件创建方式(实现组合控件)。而Control 和 FrameworkElement 称为自定义控件,自定义控件比用户控件更低级别,得到的控制越多,但继承的功能就越少。用户控件和自定义控件之间的主要区别之一:自定义控件

2022-08-19 17:06:33 577

原创 WPF(一) WPF基本控件与布局

WPF(Windows Presentation Foundation)是微软推出的基于Windows的用户界面框架,中文译为“Windows呈现基础”,属于.NET Framework 3.0的一部分。WPF类似于WinForm技术框架,但是相比于WinForm,WPF对大部分基础功能进行了更加强大的拓展,并且引入了XAML标记语言,真正实现了开发人员和设计人员的前后端分离,并且衍生出了一套MVVM开发框架。

2022-08-19 16:39:15 1690

原创 C#(二) C#高级进阶

​ C# 中的委托(Delegate)类似于 C 或 C++ 中的函数指针,是一种引用类型,表示对具有特定参数列表和返回值类型的。简单来说,委托是一种方法的代理/中介,委托指向某个方法来实现具体的功能。委托是方法的抽象,它存储的就是一系列具有相同参数和返回值类型的方法的地址。委托的使用包括定义声明委托、实例化委托以及调用委托三个阶段,在实例化委托时,必须将委托的实例与具有相同返回值类型以及参数列表的方法相关联,这样就可以通过委托来调用方法。另外,使用委托还可以将方法作为参数传递给其他方法。.........

2022-08-14 21:05:51 2224

原创 Git(一) Git 底层原理浅述

​该命令可将任意数据保存于目录(即),并返回指向该数据对象的唯一的键(HashValue),唯一键的格式为40个字符的校验和,这是一个校验得到的SHA-1哈希值。​该命令用于提供存储库指定对象的内容或类型和大小等信息。​该命令用于提供当前暂存区index中的数据对象信息。​该命令用于查看存储目录文件列表。这就是Git存储内容的方式一个文件对应一条内容,以该内容加上特定头部信息一起的SHA-1校验和为文件命名。校验和的前两个字符用于命名子目录,余下的38个字符则用作文件名。..................

2022-07-21 11:32:31 329

原创 Git(二) Git基础入门与实践

直接记录快照而非差异比较。​Git是一个免费、开源的分布式版本控制系统。版本控制(VensionControl)是一种在开发的过程中用于管理/记录相关文件、目录或工程等内容变化/修订情况,以便于团队/开发者查看变更记录、备份/恢复版本内容的软件工程技术。版本控制常用于管理多人协同开发项目,能够方便的帮我们实现跨区域多人协同并行开发、追踪项目生命周期及开发过程、控制项目代码的一致性、提高开发效率等,同时也是进行CI/CD的基础。对于分布式版本控制系统来说,所有文件的版本信息仓库直接全部同步到每个开发者。...

2022-07-16 11:08:13 257

原创 自动化集成(一) GitLab服务器搭建

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。相比GitHub、Gitee来说,GitLab除了可以提供远程仓库访问,其还支持自行搭建/自定义GitLab服务器,从而灵活实现远程仓库控制的内部使用/私有化,一般企业、学校等团队使用较多。.........

2022-07-12 11:18:29 288

原创 自动化集成(二) GitLab+Jenkins实现CI/CD

Jenkins作为一个第三方独立的CI/CD系统,具有开源、简单、可视化web管理、跨平台部署(Windows/Linux/Docker)、功能/插件丰富等优势(注意Jenkins本身是不具备任何功能的,只提供CI/CD管理环境,Jenkins中所有的功能全部来自于插件)。另一个比较流行的CI/CD工具是GitLab Runner.........

2022-07-11 11:45:52 849

原创 Vue(六) Nginx项目部署

一.Nginx快速入门1.Nginx 概述(1)Nginx 介绍Nginx 是一个轻量级、高性能的HTTP和反向代理web服务器(2)Nginx 功能2.Nginx 安装与控制(1)Nginx Linux安装(2)Nginx 控制指令3.Nginx 目录结构分析与配置说明(1)Nginx 文件目录结构分析(2)Nginx 配置说明4.Nginx 功能实现解决方案二.Vue项目部署(Nginx).....................

2022-05-26 18:12:40 946

原创 点云配准(三) 传统点云配准算法概述

一.点云配准介绍1.点云配准的概念 图像配准是图像处理研究领域中的一个典型问题和技术难点,其目的在于比较或融合针对同一对象在不同条件下获取的图像,例如图像会来自不同的采集设备,取自不同的时间,不同的拍摄视角等等,有时也需要用到针对不同对象的图像配准问题。具体地说,对于一组图像数据集中的两幅图像,通过寻找一种空间变换把一幅图像映射到另一幅图像,使得两图中对应于空间同一位置的点一一对应起来,从而达到信息融合的目的。 一个经典的应用是场景的重建,比如说一张茶几上摆了很多杯具,用深度摄像机进......

2022-05-23 17:07:58 10650 3

原创 点云配准(一) 线性代数基础

点云配准(一) 线性代数基础线性代数基础速通一.行列式1.行列式的概念2.行列式的对角线法则3.行列式的代数余子式定义(1)余子式(2)代数余子式(3)n阶行列式的展开/定义4.特殊行列式的计算5.行列式的性质6.克莱姆法则二.矩阵1.矩阵的概念2.特殊的矩阵(1)方阵(2)零矩阵(3)对角矩阵(4)单位矩阵(5)梯形阵(6)对称矩阵(7)反对称矩阵(8)正交矩阵3.矩阵的基础运算(1)矩阵乘法(2)方阵的幂运算(3)矩阵的转置(4)方阵的行列式(5)矩阵的秩(6)矩阵的迹4.伴随矩阵5.矩阵初等变换6.逆

2022-05-15 11:44:01 539

原创 点云配准(二) 三维刚体变换

一.欧式变换基础 刚体是指在理想状态下形状和大小都保持不变的物体。欧氏变换则是指保持了向量的长度和夹角都不发生改变的变换过程。刚体的欧式变换就相当于我们把一个刚体原封不动地进行了运动,而不改变它自身的形态,该变换过程可以由旋转和平移组合描述。1.旋转变换推导2.平移变换推导二.齐次坐标变换三.旋转变换的多种表示1.欧拉角表示旋转2.旋转向量表示旋转四.其他变换介绍......

2022-05-07 21:48:51 721

原创 个人博客项目开发总结(二) 项目前端开发

前端使用Vue2.9.6框架开发,开发IDE为WebStorm。其中,前端开发使用Axios作为前后端异步通信工具,结合Vuetify+ElementUI快速搭建前端页面,并使用Vuex作为数据存储媒介,VueRouter控制前端跳转路由。除此之外,还引入了很多第三方的插件,比如animated动画渲染、InfiniteLoading无限加载、highlight.js代码高亮、mavonEditor 编辑插件等。下面将简单展示前端项目的界面布局。注意:下面的展示仅表示界面架构设计和布局...

2022-05-01 14:54:00 369

原创 MyBatis(三) MyBatis复杂嵌套查询

一.association(多对一、一对一嵌套) 在MyBatis查询过程中,有时会出现多对一、一对一的复杂嵌套查询,比如查询学生及其对应的班级、查询学生及其所在学校、查询评论及其发布用户等。对于这种查询需求,最简单的就是分多次查询,那么如何在一次查询处理中查询所需要的所有结果呢?这里就需要associatio 字段的应用。1.实体类关联关系2.方式一:association+resultMap嵌套association属性字段中,如果实体类属性字段名与查询...

2022-05-01 14:02:36 854

原创 Swagger(全) SpringBoot整合与使用

一.Swagger概述尤其在当前前后端分离的大趋势下,编写和维护开发接口的文档是每个程序员必要的职责。Swagger 首先是一个规范、完整和统一的接口文档维护规范/标准。在这个标准下,Swagger官方提供了很多基于该标准的自动化接口维护工具,用于生成、描述、调用和可视化接口文档的Web 服务。该工具主要包括以下三个部分:Swagger Codegen:通过Codegen 可以将描述文件生成html格式和cwiki形式的接口文档,同时也能生成多种语言的服务端和客户端的代码。支...

2022-04-22 17:43:29 1185

原创 个人博客项目开发总结(一) 项目架构及后端开发

一.项目架构1.技术栈介绍(1)后端SpringBoot2:后端服务开发框架 MyBatis:数据库交互与管理 Redis:数据缓存 Shiro:身份与权限管理 JWT:前后端分离令牌 Quartz:定时任务调度 MD5:数据加密 Qiniu:七牛云做图床/对象存储 PageHelper:数据分页查询(2)前端Vue2:前端服务开发框架 VueX:数据持久化 Axios:异步通信 elementUI+Vuetify:前端样式组件 其他第三方插件:mavo..

2022-04-20 11:09:31 2786 3

原创 深度学习(五) 生成对抗网络入门与实践

一.生成对抗网络基本概念1.发展背景 自然界中人类的特性可以概括两大特殊能力,分别是认识和创造。那么在深度学习-神经网络中,我们之前所学习的全连接神经网络、卷积神经网络等,它们都有一个共同的特点就是只实现了认识的功能,或者说是分类。那么如何让网络能够具有创造力,能根据我们的需求去自主地创造呢?这就是生成对抗网络的由来。生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,它在2014年由Ian Goodfe......

2022-03-08 17:54:49 3488

原创 深度学习(四) 图像语义分割问题概述与实践

一.图像语义分割问题概述图像语义分割(Semantic Segmentation) 是图像处理和机器学习视觉技术中关于图像理解的重要一环,也是 AI 领域中一个重要的分支。图像语义分割问题就是对图像中的不同物体打上语义标签(用不同的颜色代表不同类别的物体),其本质即是对图像中每一个像素点进行分类,确定每个点的类别(如属于背景、人或车等),从而进行区域划分。目前,语义分割已经被广泛应用于自动驾驶、无人机落点判定等场景中。其实,图像语义分割问题相对于传统的神经网络分类就是将概率分类问题扩展......

2022-03-03 16:48:29 5213 3

原创 深度学习(三) 卷积神经网络入门与实践

一.全卷积神经网络的弊端 在上章学习完神经网络基础后,几乎所有问题的输入都能够Resize处理一下后扔进全卷积神经网络中进行训练。在图像学习任务中,图像(多通道)这类(N*C*W*H)多维输入格式数据需要通过Resize展为(N*M)的M维数据送入全连接神经网络,这种做法非常的简单粗暴直接,当然也带来了一些问题:忽视了图像数据的结构信息:直接Resize的做法没有考虑图像数据中的结构信息,因为图象是多维的,存在着结构上的关系。比如图像中一般都存在着颜色过渡,相邻结构之间颜色域应该是相....

2022-02-28 16:19:43 3420

原创 深度学习(二) 神经网络基础算法推导与实践

深度学习的核心就是各种不同的神经网络模型(CNN、RNN、GCN、GNN等)的学习和训练过程。这些神经网络模型的共同点都是一个“黑盒子”,通过一定的学习算法将大量数据交给模型训练,不断缩小模型预测值与真实值之间的误差,最终将精度达到一定阈值的模型应用到实际场景当中。所以,整个深度学习可以概括为:一个 大数据整理-模型搭建-网络训练-数据预测 的过程。一.BP神经网络算法理论推导 那么看完深度学习的本质之后,我们继续来探究神经网络的本质。由上述可以看到神经网络模型构...

2022-02-21 14:53:21 2005

原创 深度学习(一) Python基本科学计算库

一.NumpyNumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。其基本运算对象是一个N维数组对象 ndarray。- 导入Numpy:import numpy as np1.numpy核心数组初始化方法(1)直接构建 - 用法:arr = np.array([[1,2],[3,4]],dtype=np.int32)(2)arange构建 ...

2021-12-24 13:16:40 1432

原创 WinForm(二) WinForm进阶与复杂控件使用

一.复合控件1.控件的使用综述:在WinForm中使用控件主要包括以下几种情况(1)标准控件:直接使用winform自带的控件,比如button、textBox等。我们只需要修改属性,添加事件即可。(2)复合控件:将一些标准控件组合起来,实现复杂功能。需要定义 class YourControl:UserControl{ }(3)扩展控件:拓展或者改变一些标准控件的功能。需要继承于标准控件,class YourButton:Button { }(4)自定义控件:完全自定义一个控件,定义属性、方法、样式

2021-12-13 12:06:08 2758 9

原创 WinForm(一) WinForm入门与基本控件使用

一.Winform入门WinForm 是 Windows Form 的简称,是基于 .NETFramework 平台的客户端(PC软件)开发技术,一般使用C#编程。在VS2019中,C# WinForm 编程需要创建「Windows窗体应用程序」项目。Windows 窗体应用程序是 C# 语言中的一个重要应用,也是 C# 语言最常见的应用。使用 C# 语言编写的 Windows 应用程序与 Windows 操作系统的界面类似,每个界面都是由窗体构成的,并且能通过鼠标单击、键盘输入...

2021-12-10 21:56:20 39028 9

原创 C#(一) C# 基础语法一文通

C# 是由微软(Microsoft)开发的,基于C和C++的一种面向对象的编程语言,其语法规则十分类似于Java,常用于快速开发Windows桌面应用。本文将对C# 的一些基础语法知识进行快速学习,快速上手。一.C# 程序结构using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ...

2021-12-09 14:54:50 1097

原创 C++(一) 进阶知识(类、结构体、预处理命令)一文通

一.类的基本概念 类是一些列属性数据和事务行为的封装,是C++面向对象的核心基础。类是对象的抽象,对象是类的具体化;类的基本内容包括事物的属性(静态数据字段)和行为(动态函数方法),类中通过 private(私有,仅类内部可访问)、public(公有,任意位置可访问)、protected(保护,仅类内部和所有子类内部可访问)标记访问区域,成员和类的默认访问修饰符是 private。1. 构造函数与析构函数一.构造函数:构造函数是类的一种特殊的成员函数,它会在每次创建类的新对...

2021-12-08 11:11:37 307

原创 Vue(五) Vue整合第三方工具

一.Vue整合elementUI快速开发 elementUI是饿了么团队开发的一套开源的基于Vue的前端框架,提供了很多现成可复用的组件库、布局库、动画库,方便我们使用Vue快速集成,快速开发一个完整、好看的前端页面。1.安装elementUI推荐使用 npm 的方式安装,它能更好地和webpack打包工具配合使用。elementUI组件会被安装到当前项目依赖库下。npm i element-ui -S...

2021-11-24 23:34:10 545

原创 SpringBoot(八) SpringBoot中的事务

一.事务的特性事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序 执行逻辑单元(Unit)。事务具有四个特征,分别是原子性(Atomicity )、一致性(Consistency )、隔离性(Isolation) 和持久性(Durability),简称为事务的ACID特性。原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency):事务执行前后数据的完整性必须......

2021-11-22 17:49:07 16234

原创 Shiro(四) Shiro+JWT实现前后端分离的权限管理

一.思路整理当然,网上还有很多不同的整合思路:https://github.com/HowieYuan/Shiro-SpringBoot https://github.com/lijian-github/SpringBoot_Shiro_JWT_Redis二.关键代码简单实现1.JWTUtils工具类 该类的作用主要是封装一些JWT相关的操作,比如创建JwtToken、获取token信息,校验Token是否有效等。public class JWTUti...

2021-11-05 20:58:34 610 1

原创 Docker(七) Docker开发工具与部署实战

一.Docker开发工具1.IDEA连接远程SFTP Docker开发中,在Linux上书写时是没有提示和高亮的,对于开发来说不太方便。于是我们希望通过IDEA远程连接服务器,使用IDEA来开发和操作相关文件。(1)IDEA安装Docker插件(2)远程连接SFTP 打开IDEA远程连接窗口 通过用户名和密码登录远程服务器连接成功后,就可以在IDEA中编辑,上传或下载服务器文档了 ,注意编辑文件后,一定要使用upload上传......

2021-10-17 18:04:11 6077

基于java GUI界面的简易netty聊天室(实现群聊和私聊)

所使用netty版本为4 , 使用fastjson进行json格式的编解码,基于java GUI界面的简易netty聊天室(实现群聊和私聊)

2019-11-18

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

TA关注的人

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