- 博客(291)
- 资源 (1)
- 问答 (7)
- 收藏
- 关注
原创 2023暑期实习历程总结
Hello 大家好久不见,已经三个月左右没有更新了,那我这三个月在干什么呢?自2023年3月中旬开始到现在五月底这期间接近三个月的时间里,我一直在进行2023暑期实习的投递和面试。这期间投递了包括各大中厂(阿里,腾讯,蚂蚁,美团,携程,拼多多,华为,SHEIN,快手等),外企(PayPal,亚马逊,微软没开),银行金融(微众银行,招商银行信用卡,东方财富,花旗金融,Wind等),其他(联想,吉利,海信,中兴,OPPO)等数十家公司和企业。从一开始的谨慎投递和筛选企业,到后面的没投投谁和查缺补漏;
2023-05-25 22:19:31 5176 11
原创 动态规划入门(一) 01背包问题
题意:01背包也称为基础背包,是最基本的背包问题,说的是一共有 N 件物品(每件物品仅有一件),第 i(i从1开始)件物品的重量为w[i],价值为v[i]。在总重量不超过背包承载上限W的情况下,求能够装入背包的最大价值是多少?并输出具体选择的哪个物品?
2024-01-05 12:14:26 372 1
原创 实习记录(三) 缓存常见解决方案
缓存的好处加速读写,提高系统性能与吞吐量。因为缓存通常是全内存的存储介质,而缓存的后端(DB、REST、RPC等)相对而言速度慢抗压性差,通过加入缓存可以有效提升系统性能。减少后端负载。通过添加缓存,在正常的系统运行中且命中率不错的情况下,可以帮助减少后端不必要的重复计算(join、或者无法在优化的sql等),很大程度降低了后端的负载。缓存的代价数据不一致性。无论设计做的多么好,缓存数据与真实数据源一定存在着一定时间窗口的数据不一致性,时间窗口的大小,具体要看一下业务允许多大时间窗口的不一致性。
2023-08-22 22:11:19 66
原创 实习记录(一) Java 编程风格规约
本文为《码出高效》系列博文第一篇,主要目的是统一和规范代码编程风格,改善应用程序的可读性,提高开发效率。规约包括命名、定义、函数、异常、排版等不同的场景,结合个人的实习经验和业界开发手册总结归纳。
2023-06-07 11:15:17 495
原创 ACM 记忆化搜索
搜索是一种简单有效但是效率又很低下的算法结构,其低效的原因主要在于。而记忆化搜索则是在搜索的基础上,,进行合理化的,从而降低时间复杂度。这个记录状态的过程就是记忆化的过程,我们需要找到不同,这与动态规划的思想又不谋而合。简单来说,记忆化搜索是一种典型的的思想,
2023-02-23 20:46:29 572 1
原创 ACM数论 裴蜀定理(贝祖定理)
裴蜀定理,又称贝祖定理(Bézout's lemma)。是一个关于最大公约数的定理。其内容定义为:对于不全为零的任意整数 a 和 b,记二者的最大公约数为 g 即,则对于任意整数 x 和 y 都一定满足 ax+by 是 g 的倍数。。它的一个为:a,b的是存在整数x,y 使;或者说对于方程只有整数a和b互质时,方程才有整数解x,y。「裴蜀定理」也可以推广到多个整数的情况。对于不全为零的任意 n 个整数,记这 n 个数的最大公约数为,则对于任意 n 个整数都满足是 g 的倍数。使得。
2023-02-18 14:47:21 3053
原创 光流估计(三) PWC-Net 模型介绍
PWC-Net 的网络模型在由提出,发表文章为与FlowNet2.0模型相比,PWCNet的大小缩小了17倍,训练成本更低且精确度稳定。此外,它在Sintel数据集(1024×436)图像上的运行速度大约为35 fps,是光流估计深度学习中非常基础且具有重要意义的一个网络模型。FlowNet2.0 的提出证明了组织多个子网络结构构建更大型更复杂的光流估计网络可以提高光流估计的质量,但是这样做的后果就是使得训练复杂度和学习参数量成倍增加,并且容易出现过拟合问题。PWC-Net的。
2023-01-29 15:28:09 4240 6
原创 光流估计(二) FlowNet 系列文章解读
在上篇文章中,我们学习并解了光流(Optical Flow)的一些基本概念和基本操作,但是传统的光流估计方法计算比较复杂、成本较高。近些年来随着CNN卷积神经网络的不断发展和成熟,其在各种计算机视觉任务中取得了巨大成功(多用于识别相关任务)。于是,将光流估计与CNN深度学习相结合提出了FlowNet系列文章,首次将CNN运用到光流预测上,使网络能从一对图片中预测光流场,每秒达到5到10帧率,并且准确率也达到了业界标准。
2023-01-26 11:28:34 4349 3
原创 光流估计(一) 光流的简介与操作
光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,也有人将二维平面图像内特定像素点的灰度/亮度的瞬时变化率定义为光流(`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 4308 3
原创 点云配准(四) Sparse Point Registration 算法浅析
所谓稀疏点云就是点数稀少的点云模型,有时我们需要用到一些物体上的关键点来和目标模型进行配准,计算一些关键指标。而传统的点云配准算法要求待配准的两片点云数量级相当,并且还包括粗配准和精配准两个阶段。经实验可得,传统点云配准算法在稀疏点云配准上表现较差,因此稀疏点云配准十分关键。
2022-11-20 22:13:39 1505 2
原创 WPF(七) Prism框架基本特性
在之前的文章中,为了能在MVVM框架中为前端View提供逻辑/数据绑定支持,使得后端数据具备通知UI数据变更的能力,我们手动实现了INotifyPropertyChanged 接口并将其封装为 **ViewModelBase** 基类。在Prism框架中,Prism扩充了WPF的绑定通知功能。提供了已经实现INotifyPropertyChanged接口并封装好的基类 **BindableBase** 。并使用 CallerMemberName 特性自动获取属性名称,解决了属性改变事件调用繁琐的问题,同
2022-10-28 17:58:35 2983
原创 WPF(六) Command 命令模型源码分析
在之前 [WPF(三) WPF命令中我们已经分析过了 WPF 的命令系统,包括WPF默认的 RoutedCommand 以及我们自定义的 ICommand 命令实现。但是上篇文章主要侧重于命令的使用,而一些命令工作原理和流程细节还存在一些疑问,比如 ICommand 的 CanExecuteChanged 事件是如何实现订阅的?关联
2022-10-12 18:06:39 1420
原创 点云配准(四) 四元数与旋转变换
四元数(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 1348
原创 Java 微信公众号每日自动给女朋友推送问候
近期网上又出现一股给女朋友做微信公众号推送的潮流,那么别人有的我女朋友也得有不是O.o 简单研究了一下做微信公众号推送的原理,简单来说就是后台服务器做个定时任务,然后定时调用微信公众平台提供的Web API接口(HTTP),发送模板消息(JSON数据)即可。
2022-09-04 21:06:40 6288 8
原创 Spring-Web(一) RestTemplate使用与源码浅析
RestTemplate 继承自 HttpAccessor,该类可以理解为一个用于接触/访问HTTP底层客户端的抽象基类,其源码如下。可以看出,该类中的 ClientHttpRequestFactory 工厂(或者说客户端请求。
2022-09-03 12:17:40 657
原创 WPF(五) MVVM模式
MVVM是Model-View-ViewModel的简写,MVVM是一种设计模式,类似于比较流行的MVC。这种模式引入的主要的目的就是将前端UI视图(View)和后端逻辑数据(Model)进行分离,从而降低前后端的耦合,提高项目的开发效率和可维护性、可拓展性。......
2022-08-25 17:49:44 1857
原创 WPF(四) WPF 模板
在WPF中,控件只是一个数据和算法行为的载体,是个抽象的概念。至于控件本身的外观和行为、控件数据的呈现方式都是靠 Template 来具体定义的,通过引入模板(Template)微软将数据和算法的“内容”与“形式”解耦了,我们可以轻松的创造、修改、调整控件长什么样、有什么行为、数据如何展示等。这就是为什么默认情况下 Button 或 TextBox 形状是矩形的,因为它是在其默认模板中定义(正是模板决定了TextBox是方方正正的输入框,可以输入数据)。深入到控件内部,每个控件本身是一棵 UI元素树,其内部
2022-08-19 17:24:45 1787
原创 WPF(三) WPF 命令
WPF 区别于 WinForm,在继承WinForm熟悉的事件和委托技术之上,还提供了一套完善的命令(Command)系统。简单来说,命令是一个任务的完整封装,例如保存,复制,剪切这些操作都可以理解为一个个独立的命令。乍一看,命令和传统的事件机制似乎很相似,都是执行一些目的/行为,但命令和事件并不冲突,命令和事件的区别就在于命令是具有约束力的。
2022-08-19 17:14:39 2880 2
原创 WPF(二) WPF核心进阶
控件模型:WPF 提供三个用于创建控件的常规模型,每个模型都提供不同的功能集和灵活度。 三个模型的基类是UserControl、Control 和 FrameworkElement 。其中UserControl称为用户控件继承自ContentControl,提供类似于Window窗口的简单布局控件创建方式(实现组合控件)。而Control 和 FrameworkElement 称为自定义控件,自定义控件比用户控件更低级别,得到的控制越多,但继承的功能就越少。用户控件和自定义控件之间的主要区别之一:自定义控件
2022-08-19 17:06:33 2064
原创 WPF(一) WPF基本控件与布局
WPF(Windows Presentation Foundation)是微软推出的基于Windows的用户界面框架,中文译为“Windows呈现基础”,属于.NET Framework 3.0的一部分。WPF类似于WinForm技术框架,但是相比于WinForm,WPF对大部分基础功能进行了更加强大的拓展,并且引入了XAML标记语言,真正实现了开发人员和设计人员的前后端分离,并且衍生出了一套MVVM开发框架。
2022-08-19 16:39:15 4994
原创 C#(二) C#高级进阶
C# 中的委托(Delegate)类似于 C 或 C++ 中的函数指针,是一种引用类型,表示对具有特定参数列表和返回值类型的。简单来说,委托是一种方法的代理/中介,委托指向某个方法来实现具体的功能。委托是方法的抽象,它存储的就是一系列具有相同参数和返回值类型的方法的地址。委托的使用包括定义声明委托、实例化委托以及调用委托三个阶段,在实例化委托时,必须将委托的实例与具有相同返回值类型以及参数列表的方法相关联,这样就可以通过委托来调用方法。另外,使用委托还可以将方法作为参数传递给其他方法。.........
2022-08-14 21:05:51 7663
原创 Git(一) Git 底层原理浅述
该命令可将任意数据保存于目录(即),并返回指向该数据对象的唯一的键(HashValue),唯一键的格式为40个字符的校验和,这是一个校验得到的SHA-1哈希值。该命令用于提供存储库指定对象的内容或类型和大小等信息。该命令用于提供当前暂存区index中的数据对象信息。该命令用于查看存储目录文件列表。这就是Git存储内容的方式一个文件对应一条内容,以该内容加上特定头部信息一起的SHA-1校验和为文件命名。校验和的前两个字符用于命名子目录,余下的38个字符则用作文件名。..................
2022-07-21 11:32:31 631
原创 Git(二) Git基础入门与实践
直接记录快照而非差异比较。Git是一个免费、开源的分布式版本控制系统。版本控制(VensionControl)是一种在开发的过程中用于管理/记录相关文件、目录或工程等内容变化/修订情况,以便于团队/开发者查看变更记录、备份/恢复版本内容的软件工程技术。版本控制常用于管理多人协同开发项目,能够方便的帮我们实现跨区域多人协同并行开发、追踪项目生命周期及开发过程、控制项目代码的一致性、提高开发效率等,同时也是进行CI/CD的基础。对于分布式版本控制系统来说,所有文件的版本信息仓库直接全部同步到每个开发者。...
2022-07-16 11:08:13 545
原创 自动化集成(一) GitLab服务器搭建
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。相比GitHub、Gitee来说,GitLab除了可以提供远程仓库访问,其还支持自行搭建/自定义GitLab服务器,从而灵活实现远程仓库控制的内部使用/私有化,一般企业、学校等团队使用较多。.........
2022-07-12 11:18:29 658
原创 自动化集成(二) 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 5781
原创 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 3505
原创 点云配准(三) 传统点云配准算法概述
一.点云配准介绍1.点云配准的概念 图像配准是图像处理研究领域中的一个典型问题和技术难点,其目的在于比较或融合针对同一对象在不同条件下获取的图像,例如图像会来自不同的采集设备,取自不同的时间,不同的拍摄视角等等,有时也需要用到针对不同对象的图像配准问题。具体地说,对于一组图像数据集中的两幅图像,通过寻找一种空间变换把一幅图像映射到另一幅图像,使得两图中对应于空间同一位置的点一一对应起来,从而达到信息融合的目的。 一个经典的应用是场景的重建,比如说一张茶几上摆了很多杯具,用深度摄像机进......
2022-05-23 17:07:58 23573 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 987
原创 点云配准(二) 三维刚体变换
一.欧式变换基础 刚体是指在理想状态下形状和大小都保持不变的物体。欧氏变换则是指保持了向量的长度和夹角都不发生改变的变换过程。刚体的欧式变换就相当于我们把一个刚体原封不动地进行了运动,而不改变它自身的形态,该变换过程可以由旋转和平移组合描述。1.旋转变换推导2.平移变换推导二.齐次坐标变换三.旋转变换的多种表示1.欧拉角表示旋转2.旋转向量表示旋转四.其他变换介绍......
2022-05-07 21:48:51 2305
原创 个人博客项目开发总结(二) 项目前端开发
前端使用Vue2.9.6框架开发,开发IDE为WebStorm。其中,前端开发使用Axios作为前后端异步通信工具,结合Vuetify+ElementUI快速搭建前端页面,并使用Vuex作为数据存储媒介,VueRouter控制前端跳转路由。除此之外,还引入了很多第三方的插件,比如animated动画渲染、InfiniteLoading无限加载、highlight.js代码高亮、mavonEditor 编辑插件等。下面将简单展示前端项目的界面布局。注意:下面的展示仅表示界面架构设计和布局...
2022-05-01 14:54:00 736 3
原创 MyBatis(三) MyBatis复杂嵌套查询
一.association(多对一、一对一嵌套) 在MyBatis查询过程中,有时会出现多对一、一对一的复杂嵌套查询,比如查询学生及其对应的班级、查询学生及其所在学校、查询评论及其发布用户等。对于这种查询需求,最简单的就是分多次查询,那么如何在一次查询处理中查询所需要的所有结果呢?这里就需要associatio 字段的应用。1.实体类关联关系2.方式一:association+resultMap嵌套association属性字段中,如果实体类属性字段名与查询...
2022-05-01 14:02:36 3451
原创 Swagger(全) SpringBoot整合与使用
一.Swagger概述尤其在当前前后端分离的大趋势下,编写和维护开发接口的文档是每个程序员必要的职责。Swagger 首先是一个规范、完整和统一的接口文档维护规范/标准。在这个标准下,Swagger官方提供了很多基于该标准的自动化接口维护工具,用于生成、描述、调用和可视化接口文档的Web 服务。该工具主要包括以下三个部分:Swagger Codegen:通过Codegen 可以将描述文件生成html格式和cwiki形式的接口文档,同时也能生成多种语言的服务端和客户端的代码。支...
2022-04-22 17:43:29 2474
原创 个人博客项目开发总结(一) 项目架构及后端开发
一.项目架构1.技术栈介绍(1)后端SpringBoot2:后端服务开发框架 MyBatis:数据库交互与管理 Redis:数据缓存 Shiro:身份与权限管理 JWT:前后端分离令牌 Quartz:定时任务调度 MD5:数据加密 Qiniu:七牛云做图床/对象存储 PageHelper:数据分页查询(2)前端Vue2:前端服务开发框架 VueX:数据持久化 Axios:异步通信 elementUI+Vuetify:前端样式组件 其他第三方插件:mavo..
2022-04-20 11:09:31 6135 4
原创 深度学习(五) 生成对抗网络入门与实践
一.生成对抗网络基本概念1.发展背景 自然界中人类的特性可以概括两大特殊能力,分别是认识和创造。那么在深度学习-神经网络中,我们之前所学习的全连接神经网络、卷积神经网络等,它们都有一个共同的特点就是只实现了认识的功能,或者说是分类。那么如何让网络能够具有创造力,能根据我们的需求去自主地创造呢?这就是生成对抗网络的由来。生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,它在2014年由Ian Goodfe......
2022-03-08 17:54:49 4186
原创 深度学习(四) 图像语义分割问题概述与实践
一.图像语义分割问题概述图像语义分割(Semantic Segmentation) 是图像处理和机器学习视觉技术中关于图像理解的重要一环,也是 AI 领域中一个重要的分支。图像语义分割问题就是对图像中的不同物体打上语义标签(用不同的颜色代表不同类别的物体),其本质即是对图像中每一个像素点进行分类,确定每个点的类别(如属于背景、人或车等),从而进行区域划分。目前,语义分割已经被广泛应用于自动驾驶、无人机落点判定等场景中。其实,图像语义分割问题相对于传统的神经网络分类就是将概率分类问题扩展......
2022-03-03 16:48:29 6166 3
原创 深度学习(三) 卷积神经网络入门与实践
一.全卷积神经网络的弊端 在上章学习完神经网络基础后,几乎所有问题的输入都能够Resize处理一下后扔进全卷积神经网络中进行训练。在图像学习任务中,图像(多通道)这类(N*C*W*H)多维输入格式数据需要通过Resize展为(N*M)的M维数据送入全连接神经网络,这种做法非常的简单粗暴直接,当然也带来了一些问题:忽视了图像数据的结构信息:直接Resize的做法没有考虑图像数据中的结构信息,因为图象是多维的,存在着结构上的关系。比如图像中一般都存在着颜色过渡,相邻结构之间颜色域应该是相....
2022-02-28 16:19:43 5736
原创 深度学习(二) 神经网络基础算法推导与实践
深度学习的核心就是各种不同的神经网络模型(CNN、RNN、GCN、GNN等)的学习和训练过程。这些神经网络模型的共同点都是一个“黑盒子”,通过一定的学习算法将大量数据交给模型训练,不断缩小模型预测值与真实值之间的误差,最终将精度达到一定阈值的模型应用到实际场景当中。所以,整个深度学习可以概括为:一个 大数据整理-模型搭建-网络训练-数据预测 的过程。一.BP神经网络算法理论推导 那么看完深度学习的本质之后,我们继续来探究神经网络的本质。由上述可以看到神经网络模型构...
2022-02-21 14:53:21 3418
原创 深度学习(一) 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 1837
原创 WinForm(二) WinForm进阶与复杂控件使用
一.复合控件1.控件的使用综述:在WinForm中使用控件主要包括以下几种情况(1)标准控件:直接使用winform自带的控件,比如button、textBox等。我们只需要修改属性,添加事件即可。(2)复合控件:将一些标准控件组合起来,实现复杂功能。需要定义 class YourControl:UserControl{ }(3)扩展控件:拓展或者改变一些标准控件的功能。需要继承于标准控件,class YourButton:Button { }(4)自定义控件:完全自定义一个控件,定义属性、方法、样式
2021-12-13 12:06:08 6608 12
基于java GUI界面的简易netty聊天室(实现群聊和私聊)
2019-11-18
数据库多表联合查询时,一次sql join连接查询和多次单表查询哪个性能更高?
2022-01-20
springboot @PathVariable如何获取路径中的中文参数
2022-01-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人