- 博客(41)
- 资源 (8)
- 收藏
- 关注
原创 针孔相机模型,鱼眼相机模型,单目标定
单目相机一、单目相机模型:1.相机模型:1.1统一模型:无论是针孔相机还是鱼眼相机,其实可以归类成一个相机模型(畸变方式有差别而已),模型如下:首先,看坐标轴,该模型以光心为相机坐标系原点,Z轴就是日常生活中的相机朝向,X和Y轴为垂直相机朝向的平面;其次,看坐标点,PPP 为在相机坐标系下的三维空间中的一点,坐标是(X,Y,Z)(X,Y,Z)(X,Y,Z) ;其余四个坐标点的意思为(可以先不用理解这四个坐标点,后续会解释):P′(XZ,YZ,1)P^{'}(\frac{X}{Z},\fr
2021-10-13 23:57:30
1632
原创 G2O学习笔记
G2O一、概念G2O(General Graph Optimization)是通用图优化计算库,能将优化问题表达成图,就可以使用G2O进行求解,如常见的Bundle Adjustment,ICP,数据拟合等。图优化模型中,将待优化的变量作为顶点,条件信息作为边。如上图中,可以解释为三个顶点为不同时刻待优化估计的传感器的位姿,各个边表示传感器位姿量测信息,最终需要估计各个顶点的最优结果。二、安装使用G2O库的github仓库:RainerKuemmerle/g2o#g2o安装#去github下
2021-05-05 17:42:13
579
原创 直观深入理解Kalman滤波算法和数据关联算法(NN、PDA、JPDA、CJPDA、NNCJPDA)
一、卡尔曼滤波(Kalman Filter)1.1 Data Fusion问题的引入: 当前有两个传感器A和B,对待观测目标的状态进行测量(如两个电子秤对某物体的重量进行测量),这两个传感器的量测结果,是存在测量误差的随机变量(没有误差就不需要使用Kalman Filter了),现在的问题是: 如何融合两个传感器的量测结果得到最优的目标状态估计? (最终结果还是个估计值,只不过是融合了两个传感器量测结果的更好的估计值,肯定不可能获得开了上帝视角的真值) 这里我们设A和B两传感器对目标的量测结果服
2021-04-21 00:14:45
15907
14
原创 CUDA求解特征值和特征向量 使用cusolver库
项目中遇到了求解复数Hermit矩阵的特征值分解问题(使用MUSIC方法进行DOA估计的GPU工程化实现),网上已经有使用GSL科学计算库(http://www.gnu.org/software/gsl/)完成特征值和特征向量求解问题,也可以使用QR算法和Jacobi算法等数值分析方法自己编写,现在想使用CUDA在GPU平台上并行完成特征值和特征向量求解问题。 &
2020-11-23 20:53:30
5574
4
原创 无线信道学习总结
参考资料:课程地址:https://www.bilibili.com/video/BV1X7411w7n7资料地址:https://download.youkuaiyun.com/download/weixin_40106401/12938697
2020-10-16 15:55:51
348
3
原创 理解OFDM技术原理
一、为什么要用OFDM? 通信有一个长期的用户需求——快,但是又受到可用电磁频谱的物理限制——少,因而如何在较少可用的频谱上更快的传输信息一直是通信技术发展的核心驱动力。 常用的单载波传输(如ASK,FSK,和PSK等)在一个符号传输中使用单个载波承载信息,因而速率较低。想要提高传输速度,需要缩短码元持续时间,对频带宽度需求增加,对均衡器和均衡算法要求提高,实现困难。因而很自然地考虑将频带进行划分,实现一段时域信号中包含多个频段的信号分量(如下图),不同频段的信号承载不同的信息,可以实现多路信号的
2020-06-21 15:25:23
12355
18
原创 功率信号,能量信号,信号的频谱,功率谱密度,频谱密度,能量谱密度,自相关函数,互相关函数
总述一、区分信号类型根据式E=∫−∞∞s2(t)dtE=\int_{-\infty }^{\infty }{{{s}^{2}}\left( t \right)}dtE=∫−∞∞s2(t)dt计算信号能量(作用在单位电阻上的电压信号 释放的能量)可以将信号分为:功率信号:能量无限,不能用能量表示,所以用平均功率表示;能量信号:能量有限,平均功率为0;二、功率信号的分析频谱(离散):C(nf0)=1T0∫−T/2T/2s(t)e−j2πnf0tdtC\left( n{{f}_{0}} \r
2020-05-27 15:03:44
8562
原创 电子科大信通学院研究生晚点名金数据连接自动填写程序
软件准备:Firefox浏览器(自己下载安装)Firefox浏览器驱动(点击这,可跳转下载)Python3(自己下载安装,一定要添加到环境变量)环境准备配置浏览器驱动,很简单,就是把刚下载的放在Python的安装文件夹里(其实只要也添加到环境变量也行,只不过这样做方便管理)安装完python3后,下载一下需要用到的库,下载方法如下:电脑cmd里分别输入:pip install seleniumpip install schedule使用方法:使用Python提供的ID
2020-05-24 22:44:38
1389
5
原创 直观理解AOP
AOP1. 概念:AOP(Aspect Oriented Programming),译为面向切面编程,其本质是:在运行时,动态地将增强方法添加到待被增强类的指定方法上。2. 原因:面向对象编程要求将不同功能代码封装到不同的类和方法中,以降低代码复杂程度,增加代码可重用性。但是在使用过程中,这种方式又增加了代码间的耦合程度,不利于协同开发。举例说明,日志打印功能被封装到一个打印类Printer的打印方法print()中,现在多个类中要使用日志打印功能,方式一在各个类中分别自己写日子打印,这样降低了代码重用
2020-05-17 17:37:46
321
原创 直观理解JAVA动态代理
动态代理:概念:依赖被代理对象B的字节码信息,创建代理对象A,用户对B的任意方法访问必须经过A的处理。该方法实现了用户与B类的隔离,在不修改源码的基础上(无侵入式的代码扩展),对被代理对象的方法进行增强。简单点说就是,你作为大臣递给皇上的奏章,都被慈禧(代理对象)先看一遍并批改一下,才能给真正的皇上看(被代理对象)。实现方法分类:基于接口的动态代理依赖类:Proxy(JDK官方)使用条件:被代理对象B至少实现一个接口,否则不能使用使用方法:使用Proxy类中的newProxyInstan
2020-05-15 18:37:38
241
原创 FFT原理——详细推导理解FFT变换
概要:FFT(Fast Fourier transform):快速傅里叶变换,是DFT的工程化实现方法。DFT直接求解太过于复杂,FFT方法根据DFT求解过程中旋转因子的性质并引入分治算法思想,大大简化计算过程,被广泛应用在频谱分析的工程实践中,如matlab,C,C++,CUDA等底层实现一,DFT简介频谱分析是信号处理中的重要环节,从傅里叶变换FT,到拉普拉斯变换LT,离散时间傅里叶变换DTFT,Z变换ZT,到我们所讲的离散傅里叶变换DFT(他们之间的联系和区别见我的其他博客)。相比于其他变换
2020-05-14 20:48:05
33855
6
原创 SQL语言总结——常用函数
常见函数格式:select 函数名(实参) 【from 表】;分类:单行函数:字符函数:a. length(“字符zifu”);//获取字节个数,汉字UTF8三字节,GBK2字节,英文都是1字节b. concat(“str1”,“str2”);//拼接字符c. upper(""), lower("");//大小写转换d. substr(“str”,2,3);//截取从2往后3个长度字符,基1索引e. instr(“str”,“substr”);//返回子串初始索引f. t
2020-05-09 22:44:29
239
1
原创 SQL语言总结——多表查询
多表查询sql92格式内连接*等值连接: where table1.key = table2.id*非等值连接: where table1.salary between t2.low and t2.high;//不再是等于判断*自连接 : where t1.managerId = t1.id;//在一个表中连接两个字段sql99格式语法格式:select 查询列表 from 表1 别名 **【连接类型】 join 表2 别名 on 连接条件** 【where条件...】内连接仅显
2020-05-09 22:43:23
286
原创 SQL语言总结——事务
事务概念:一组相互捆绑共同完成操作的执行单元事务属性:ACID原子性(Atomicity):语句共同操作一致性(Consistency):事务执行前后整体不改变隔离性(Isolation):一个事务执行不能被其他事务干扰持久性(Durability):事务提交后即生效,不可更改事务使用方法:事务的开启:SET autocommit = 0; start transaction;编写事务语句:语句1;语句2;…事务结束:commit;或者 rollback;事
2020-05-09 22:42:03
267
原创 访问servlet 显示404
按照网上的学习视频写了个Servlet,但是启动浏览器访问显示404,也就是未找到网络资源:看了网上的各种帖子,主要原因都是配置文件web.xml的问题,例如https://blog.youkuaiyun.com/abc321tyu/article/details/62898887但是我这个配置文件没有问题,多次尝试原来是自己比较菜,浏览器访问url的问题:应该访问:http://localhos...
2020-04-28 15:41:05
5612
4
原创 Project2019,复制到浏览器即可
http://officecdn.microsoft.com/db/492350F6-3A01-4F97-B9C0-C7C6DDF67D60/media/zh-tw/ProjectPro2019Retail.imghttp://officecdn.microsoft.com/db/492350F6-3A01-4F97-B9C0-C7C6DDF67D60/media/zh-tw/VisioPro2...
2020-04-23 16:38:50
2109
原创 虚拟机配置静态IP时,ens33不显示ip解决方法
我想用secureCRT远程连接虚拟机中的CentOS8,为了防止DHCP模式下IP每次都会改变需要重新连接,需要将CentOS8的网卡信息配置为静态获取IP。虚拟机软件:VMware 15安装的操作系统:Centos 81. 设置桥接模式为了便于部署多节点(使用VMware克隆的方式),这里选用桥接的模式(点击这里:三种虚拟机连接模式介绍)2. 确认原始网卡配置文件ifcfg-ens...
2020-04-23 12:01:32
9569
原创 常用七大排序算法总结及JAVA实现
常用的七大排序算法点击以下链接,有网上的大佬的讲解与java实现,详细配图等简单选择排序冒泡排序直接插入排序希尔排序堆排序归并排序快速排序算法总结图...
2020-04-21 17:51:30
946
原创 简单理解关键路径
一,关键路径问题的相关概念通常,一个项目可以被拆分成多个子项目,多个子项目间会具有并行和串行的特点。例如造汽车时,造发动机和造车轮是两个可以并行完成的任务,而组装整车又必须等发动机和车轮等部件完成后才能开始,具有串行的特点。关键路径是指能影响项目整体时间的活动和事件的集合,是项目中最长的路径。关键路径问题也即指从多个子项目中流程中找到影响项目整体运营时间的关键路径。对以上问题进行建...
2020-03-03 20:40:09
17352
5
原创 理解JAVA多线程技术——《JAVA多线程编程核心技术》读书笔记
1. JAVA多线程内存架构要想深入理解JAVA多线程的机制,必须要从JVM的内存管理机制说起。1.1 典型的JAVA多线程内存管理机制:JVM将运行时内存按功能分为以下三个部分:堆(heap),栈(stack)和方法区(Method Area)。方法区主要存放每个类编译后的字节码,它包含每个类的全部信息,包括类的属性,静态方法和一般方法等,还包含字符串等静态内容;堆主要存放根据方法区...
2020-02-26 22:12:04
292
原创 Matlab转C/C++/Cmex文件加速运行方法
运行环境:Matlab 2017aVS2017Win10C编译器常用即可Matlab转换必要性众所周知Matlab中使用的语言编译运行机制与Python一样,被称为解释型语言(也即先翻译成中间代码,再由解释器对中间代码进行解释运行),相比于C/C++/Java/Cmex等编译型语言(直接翻译成机器语言)最大的特点就是“慢”!。为了加速Matlab仿真的运行,节省科研工作者的时间,常用...
2019-11-16 12:01:19
3181
3
翻译 b站学习数据库基础总结
b站视频地址:https://www.bilibili.com/video/av59623481/本单元目标一、为什么要学习数据库二、数据库的相关概念 DBMS、DB、SQL三、数据库存储数据的特点四、初始MySQL MySQL产品的介绍 MySQL产品的安装 ★ MySQL服务的启动和停止 ★ MySQL服...
2019-10-12 16:33:58
1541
原创 VS2017封装CUDA文件为dll被Qt调用或VS调用
系统环境win10 64位VS2017CUDA 10一,封装为dll文件1.VS创建"动态编译库"工程2.添加CUDA文件3.输入需要被封装的测试代码.h文件#pragma onceextern "C" __declspec(dllexport) int vectorAdd(int c[], int a[], int b[], int size);.cu文件#inc...
2019-09-25 11:38:36
2186
原创 JAVA 反射技术及其实现代码
一、JAVA反射机制JAVA反射机制是在运行状态中动态获取被加载类信息的方法,包括构造器Constructor,字段Field和方法Method等。二、使用方法完整工程代码:https://github.com/ZhangPHinNEU/Demo_Reflection...
2019-09-02 17:24:42
205
原创 JNI(Java Native Interface, Java本地接口)编程指南
编程环境操作系统:Windows 10 版本1809Java:“11.0.2” 2019-01-15 LTSGCC:5.1.0 (tdm64-1)代码编辑器:Sublime Text 3命令行工具:Git bash字符编码:UTF-8一、认识JNIJNI,全程为Java Native Interface(Java本地接口),是Java语言的本地编程接口,用以对接其他编程语言,如C语...
2019-08-26 16:26:40
940
原创 Tex参考文件导入教程
环境情况软件环境:CTeX_2.9.2.164_Full WinEdt链接:https://pan.baidu.com/s/15YleO9nxfFaTg5PGifl6lw提取码:oe1q论文模板:IEEEtrans官方模板链接:https://pan.baidu.com/s/1FCTvOq8sQvgztYcV5-dCvw提取码:4n4m一、准备工作1创建bib文件a. 开启显示...
2019-07-20 11:36:15
1479
原创 IntelliJ IDEA常用快捷键
显示:Ctrl + E 显示最近打开的文件记录列表Ctrl + Tab 编辑窗口切换Ctrl + H 显示当前类的层次结构Ctrl + Shift + F12 编辑器最大化Ctrl + Shift + Space 智能代码提示Ctrl + P 方法参数提示显示Ctrl + Q 光标所在的变量/类名/方法名等上面,显示文档内容Ctrl + U 前往当前光标所在的方法的父类的方法/...
2019-06-23 22:30:49
124
原创 Matlab、C/C++和GPU联合编程环境配置
一、系统配置:操作系统:Microsoft Windows [版本 10.0.17763.529]Matlab版本:Matlab 2017b 64位CUDA版本:CUDA 10VS版本:Visual Studio 2017(以下简称VS2017)GPU:RTX 2070二、应用场景描述: 最近在探索学习Matlab + C/C++ + GPU联合编程。该编程方法,依靠Matlab平...
2019-06-01 23:53:48
1551
2
原创 Windows下Visual Studio与CUDA联合开发环境搭建
硬软配适1.查看本机独立显卡型号这里我们主要看独立显卡,也即NVIDIA的显卡才支持使用CUDA进行GPU开发。2.确认开启独立显卡打开:桌面右键 > NVIDIA控制面板这里选用“高性能NVIDIA处理器”,如果出现“Nvidia控制面板拒绝访问”等字样,建议参考博客:https://blog.youkuaiyun.com/weixin_40106401/article/details/8...
2019-05-07 21:21:25
8579
5
原创 双显卡切换方法
查看本机显卡设备:Nvidia显卡开启:桌面上鼠标右键 > NVIDIA控制面板打开后如上图所示,默认为两显卡自动选择使用,可以点击红色箭头选择“高性能NVIDIA处理器”,之后选择应用即可打开独立显卡。上图菜单栏有帮助 > 系统信息 ,可以得到下图:这里可以看出支持CUDA版本为9.1。Nvidia控制面板拒绝访问在上一部分选择切换高性能显卡时,可能会出现:...
2019-05-06 21:07:56
2553
转载 Dev-C++ 的一些常用快捷键
Dev-C++ 的一些常用快捷键恢复 Ctrl+Z重做 Ctrl+Y剪切 Ctrl+X拷贝 Ctrl+C粘贴 Ctrl+V搜索替换内容 Ctrl+F选择全部 Ctrl+A编译 F9运行 F10编译运行 F11设置注释 Ctrl+/ 取消注释再重复一次即可复制行 Ctrl+E删除行 Ctrl+D整体左移一个tab位置 shift+tab整体右移一个tab位置 tab整...
2019-05-05 20:40:53
5735
原创 EasyX库进行图片绘制函数
运行环境:运行环境:Visual Studio 2017关键头文件graphics.h引用函数:loadimage参数:// 从图片文件获取图像(bmp/jpg/gif/emf/wmf/ico)void loadimage( IMAGE* pDstImg, // 保存图像的 IMAGE 对象指针 LPCTSTR pImgFile, // 图片文件名 int nWidth...
2019-05-05 18:56:07
5028
3
原创 Qt中使用QUdpSocket实现UDP通信方法
1. 简介UDP(User Datagram Protocol,用户数据报协议)是轻量的、不可靠的、面向数据报(datagram)、无连接的协议,可以用于对可靠性要求不高的场所。在使用Qt开发上位机或者应用程序中,需要使用到UDP通信,需要预先建立持久的socket链接,UDP每次发送数据报都需要指定目标IP地址和端口。2. QUdpSocket类所用到的接口函数:函数功能...
2019-02-18 20:29:13
5614
原创 JAVA命令行使用报错 A JNI error has occurred, please check your installation and try again
报错内容:Error: A JNI error has occurred, please check your installation and try againException in thread “main” java.lang.UnsupportedClassVersionError: Demo has been compiled by a more recent version o...
2019-02-17 15:44:51
3030
2
FFT计算过程.pdf
2020-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人