- 博客(40)
- 收藏
- 关注
原创 DSP EDMA(Enhanced Direct Memory Access)
https://www.docin.com/p-119011082.htmlEDMA(Enhanced Direct Memory Access)是DSP中用于从外部存储器(DDR3)与片内数据存储器、片内程序存储器间数据通讯的技术。
2021-12-19 21:00:15
493
转载 科普CPU CACHE的7个程序实验
转载于http://coolshell.cn/articles/10249.htmlCPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫,浩瀚繁星,阅之如临深渊,味同嚼蜡,三言两语难以入门。正好网上有人推荐了微软大牛Igor Ostrovsky一篇博文《漫游处理器缓存效应》,文章不仅仅用7个最简单的源码示例就将CPU cache的原理娓娓道来,还附加图表量化分析做数学上的佐证,个人感觉这种案例教学的切入方式绝对是俺的菜,故而忍不住贸然译之,以飨
2021-12-18 02:11:01
657
转载 Cache Line 缓存行 内存行对齐
Cache Line可以简单的理解为CPU Cache中的最小缓存单位。目前主流的CPU Cache的Cache Line大小都是64Bytes。假设我们有一个512字节的一级缓存,那么按照64B的缓存单位大小来算,这个一级缓存所能存放的缓存个数就是512/64 = 8个。具体参见下图:代码示例:public class CacheLine { private static class T { public volatile long x = 0L;//long类型占据8个字节 }
2021-12-18 00:49:56
1699
原创 CUDA编程:GPU float 与 double 精度问题
本人在开发项目时,遇到这个非法访问内存的错误:Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encountered检查了很长时间代码,也没检查出错误,最后通过逐步输出中间结果进行调试,发现某些变量被GPU计算错了,而导致这个错误的原因就是:float 精度不够,索引是根据中间计算而来,当误差特别大时,会导致内存索引所以变得非常大,而导致非法访问内存的错误。我在代码中使用了float类型,而在 GPU
2021-03-12 17:12:59
6716
转载 【转载】从python中的VTK文件中检索facet和point
转载自:http://ddrv.cn/a/334012,侵删。我有一个包含3d模型的vtk文件,我想提取点坐标和刻面.这是一个最小的工作示例:import vtkimport numpyfrom vtk.util.numpy_support import vtk_to_numpyreader = vtk.vtkPolyDataReader()reader.SetFileName('test.vtk')reader.Update()polydata = reader.G.
2021-03-09 11:56:12
293
原创 python 多线程多进程编程
多线程:https://www.cnblogs.com/luyuze95/p/11289143.html#threading%E6%A8%A1%E5%9D%97多进程:https://www.cnblogs.com/jiangfan95/p/11439207.html
2020-09-28 16:39:32
90
原创 一文说尽C++赋值运算符重载函数(operator=)
一文说尽C++赋值运算符重载函数(operator=)C++赋值运算符重载函数(operator=)
2020-09-17 16:39:06
176
原创 畸变矫正公式参数说明
网上有很多文章都在谈畸变矫正,对于畸变矫正的公式,有很多文章是把畸变前得像素坐标和畸变后的像素坐标的关系搞反了,下面给出正确的关系:引用张正友论文的原文:《Flexible camera calibration by viewing a plane from unknown orientations》由上述论文可见, 畸变公式左侧 x^ 和 y^ 是畸变矫正前的像素坐标,右侧的 x ,y 是理想情况下无畸变时的像素坐标:正确公式如下:径向畸变:切向畸变:网上有些人搞反了, 他们说左侧
2020-08-13 19:30:22
8763
7
原创 强烈推荐!!Pytorch拓展进阶(二):Pytorch结合C++以及Cuda拓展
相比使用python自定义操作,通过扩展pytorch,使用c++实现这些自定义操作要快得多。为了加速,我们有时候甚至需要将整个python代码全部转化为c++代码。这篇文章写的很不错,强烈推荐使用Aten pybind11 Cuda 扩展pytorch卷积操作,适合新手入门。https://oldpan.me/archives/pytorch-cuda-c-plus-plus但是需要注意的是,pytorch中的常规操作已经被优化过了,且这些操作的底层还是使用c++实现的,所以如果不是为了实现自定义的
2020-08-11 22:53:32
606
原创 C语言中 gets( ) 的缓冲区溢出问题,慎用!!
头文件:#include <stdio.h>gets()函数用于从缓冲区中读取字符串,其原型如下:char *gets(char *string);gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取的字符串暂存在给定的参数string中。【返回值】若成功则返回string的指针,否则返回NULL。注意:由于gets()不检查字符串string的大小,必须遇到换行符或文件结尾才会结束输入,因此容易造成缓存溢出的安全性问题,导致程序崩溃
2020-08-07 17:00:32
3633
原创 KL散度、JS散度、Wasserstein距离
1. KL散度KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。 KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。定义如下:因为对数函数是凸函数,所以KL散度的值为非负数。有时会将KL散度称为KL距离,但它并不满足距离的性质:KL散度不是对称的;KL散度不满足三角不等式。2. JS散度(Jensen-Shannon)JS散度度量了两
2020-07-31 19:02:15
445
原创 Segmentation fault (core dumped)错误常见原因总结
1 问题原因Segmentation fault (core dumped)多为内存不当操作造成。空指针、野指针的读写操作,数组越界访问,破坏常量等。对每个指针声明后进行初始化为NULL是避免这个问题的好办法。排除此问题的最好办法则是调试。更为详细的原因:(1)内存访问越界a) 由于使用错误的下标,导致数组访问越界b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp
2020-07-31 18:17:32
92317
原创 从内存角度看代码,C++特性和设计模式漫谈
一、从内存角度看代码。类代码只有一套,但是可以实例化不同对象,并且调用同样的代码处理位于自己内存区内的变量。实例化两个变量data1和data2,data1和data2分别被存储在了不同内存块中。每个成员函数有一个隐藏的形参this,此参数指向实例的内存地址。比如:类Data_Class的成员函数:add( Data_Clasee& this, [显示形参])。this指向了存储变量 data1 和data2的内存块,那么this->data 就能访问当前实例内存块中的数据,例如:
2020-07-24 19:26:49
189
原创 一文搞定:使用C++ 标准库 thread类 实现多线程并行处理
简介C++ 标准库集成了多线程并行处理的功能,可以非常简单实现多线程并行处理。 C++ 11 没有提供线程池,想用的话需要自己手动实现。但是一般用C++完成多线程处理时,并发量往往不是很大,所以不用线程池,效率也不会受到很大影响,如果并发量很大,直接用java更合适。每个应用程序至少有一个进程,而每个进程至少有一个主线程,除了主线程外,在一个进程中还可以创建多个线程。每个线程都需要一个入口函数,入口函数返回退出,该线程也会退出,主线程就是以main函数作为入口函数的线程。在C++ 11的线程库中,将线程
2020-07-22 23:15:25
5650
原创 工程环境配置 使用QT+PCL点云可视化 QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0
QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0由于需要使用QVTKWidget在QT交互界面里进行显示,但是PCL自带的第三方库里的VTK不包含这个插件,所以需要使用独立的VTK,在编译VTK源码时,需要勾选 Module_vtkGUISupportQt,Module_vtkGUISupportQtOpenGL,VTK_Group_Qt。用安装包安装PCL,但是使用find_package 这一套命令(如下所示),在C
2020-07-19 23:17:09
1905
3
原创 【论文阅读笔记】《PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space》
《PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space》Qi C R, Yi L, Su H, et al. Pointnet++: Deep hierarchical feature learning on point sets in a metric space[C]//Advances in neural information processing systems. 2017: 5099-51
2020-07-18 23:47:40
409
原创 【论文阅读笔记】《PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation》
《PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation》Qi C R, Su H, Mo K, et al. Pointnet: Deep learning on point sets for 3d classification and segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Rec
2020-07-17 22:10:42
438
原创 【论文阅读笔记】《S3FD:Single Shot Scale-invariant Face Detector》
《S3FD:Single Shot Scale-invariant Face Detector》Zhang S, Zhu X, Lei Z, et al. S3fd: Single shot scale-invariant face detector[C]//Proceedings of the IEEE International Conference on Computer VisonThis paper is Inspired by faster-RCnn and SSD.网络结构如下:
2020-07-17 22:10:32
191
原创 【论文阅读笔记】SSD(Single Shot MultiBox Detector)
SSD(Single Shot MultiBox Detector)Liu W , Anguelov D , Erhan D , et al. SSD: Single Shot MultiBox Detector[J]. 2015.本文与faster-Rcnn很像,相比于faster-Rcnn ,以下网络在extract feature 阶段进行的卷积所等效的在输入图像上的滑动步长更小了。直接用conv filter 的卷积结果作为 offset ,以及类别的种类。区别于faster-Rcnn的级联
2020-07-17 22:10:24
498
原创 .【论文阅读笔记】《One Millisecond Face Alignment with an Ensemble of Regression Trees》
.《One Millisecond Face Alignment with an Ensemble of Regression Trees》Kazemi V, Sullivan J. One millisecond face alignment with an ensemble of regression trees[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 1867-
2020-07-17 22:10:13
714
原创 【论文阅读笔记】《How far are we from solving the 2D&3D Face Alignment problem? 》
《How far are we from solving the 2D&3D Face Alignment problem? (and a dataset of 230,000 3D facial landmarks)》Bulat A , Tzimiropoulos G . How far are we from solving the 2D & 3D Face Alignment problem? (and a dataset of 230,000 3D facial landmark
2020-07-17 22:09:53
464
原创 【论文阅读笔记】《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》
PRNet《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》Feng Y , Wu F , Shao X , et al. Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network[C]// European Conference on Computer Visio
2020-07-17 22:09:43
285
原创 【论文阅读笔记】Fast-RCNN
1.Fast-RCNNRen S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 39(6):1137-1149.因为使用3*3的卷积核在feature map 上以s步长进行.
2020-07-17 22:09:18
312
原创 【阅读论文笔记】《3D Morphable Models as Spatial Transformer Networks》
《3D Morphable Models as Spatial Transformer Networks》Bas A , Huber P , Smith W A P , et al. 3D Morphable Models as Spatial Transformer Networks[C]// 2017 IEEE International Conference on Computer Vision Workshop (ICCVW). IEEE Computer Society, 2017.通过3
2020-07-17 22:09:08
601
翻译 【论文阅读笔记】《Selective Search for Object Recognition》
《Selective Search for Object Recognition》Uijlings J R R , K. E. A. van de Sande…. Selective Search for Object Recognition[J]. International Journal of Computer Vision(IJCV), 2013, 104(2):154-171.首先使用‘Felzenszwalb, P. F., & Huttenlocher, D. P. .
2020-07-17 22:09:01
191
原创 【论文阅读笔记】HyperFace: A Deep Multi-task Learning Framework for Face Detection, Landmark Localization
《HyperFace: A Deep Multi-task Learning Framework for Face Detection, Landmark Localization, Pose Estimation, and Gender Recognition》Ranjan R, Patel V M, Chellappa R. Hyperface: A deep multi-task learning framework for face detection, landmark localizatio
2020-07-08 18:53:36
696
3
原创 CUDA 编程概念简介,NVIDIA GPU显卡
1.Cuda线程模型 来自 <https://www.cnblogs.com/skyfsm/p/9673960.html> 下面的机构图说明了GPU的不同层次的结构。CUDA的线程模型从小往大来说就是:Thread:线程,并行的基本单位 Thread Block:线程块,互相合作的线程组,线程块有如下几个特点: 允许彼此同步 可以通过共享内存快速交换数据 以1维、2维或3维组织 ...
2020-07-08 18:34:11
902
原创 转置卷积(反卷积操作)
基本为上采样后进行卷积操作,下图为upPooling后使用尺寸不变的卷积操作(通过padding实现尺寸不变)。有人说也叫转置卷积,因为如下原因:先说说卷积:以矩阵相乘的形式完成卷积,????????????????????????_????????_????????????????=????×????????????????????????????????????????反向传播:????????????????????????????????????????????=????????
2020-07-08 16:56:03
711
转载 集成学习算法总结----Boosting和Bagging
集成学习集成学习通过构建并结合多个学习器来完成学习任务.只包含同种类型的个体学习器,这样的集成是“同质”的;包含不同类型的个体学习器,这样的集成是“异质”的.集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能.根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是Boosting,后者的代表是Bagging和“随机森林”.bagging.
2020-07-08 16:38:26
543
原创 pytorch变量间的内存共享
我们在使用pytorch时,经常会用一个变量对另外一个变量赋值,但是某些操作得到的结果只是原变量的引用,内存是共享的,修改一个变量,其他变量的值也会受影响。有些操作是拷贝的操作。使用 b=a[:,:5,5] b=a[0] b=a[…,0] 等操作得到的a是b的一个引用,内存是共享的,当b的值被某些操作修改后,a的值也会改变,c=b.unsqueeze(0).expand(10,4) , Tensor.expand_as()操作得到的c与b的内存是共享的,expand增加的维度占用是同一块内存,当c的值被
2020-07-08 16:11:00
1635
原创 四元数与旋转矩阵之间的关系
在这里的旋转矩阵指的是坐标变换的旋转矩阵。若矩阵与四元数均表示由坐标系G变换至用坐标系L进行表达。则因为某点P绕某轴旋转角后在坐标系中的坐标值,等于,保持点在空间中不动,将坐标系绕此轴旋转角度后,点在新坐标系中的坐标值。而用四元数进行旋转操作时,是顺时针旋转为正方向。假设坐标系G绕轴逆时针旋转角与坐标系L重合,则对应的四元数为一、由四元数转换为坐标变换旋转矩阵的关系如下所示。经推导可得相互转换关系如下:(右乘)下面进行证明:本旋转矩阵可以用Rodrigues' 旋转矩
2020-07-08 15:56:07
6145
原创 坐标系转换矩阵和几何转换矩阵的关系
坐标系转换矩阵:将一个点云从一个坐标系转换至另一个坐标系中表示。几何转换矩阵:将点云在某坐标系下进行旋转平移变化。下面确定以下坐标系转换矩阵和几何转换矩阵的关系。在世界空间中存在一个坐标系,点集P(共有n个点),点集(共有n个点),将坐标系和点集一起平移旋转后,得到了坐标系'和新点集。为了方便理解器位置关系,需要建立世界坐标系,这两个坐标系和两个点集在世界坐标系中的位置如图所示。在坐标系中观察点集与,点集内点的坐标分别为,在坐标系'中观察点集,点集内点的坐标分别为, 其中(i=1:n).
2020-07-08 15:41:02
2030
原创 矩阵分析笔记
1.线性映射与线性变换在某基下的矩阵表示为A,特征值和特征向量意味着线性变换对特征向量进行操作不改变此向量所在的方向,并且可以通过分析矩阵A的特征值和特征向量的分布情况分析,特征空间中的对线性变换的不变线性子空间线性变换所对应的矩阵为A,对A进行相似变换得到B=P-1AP,则B为此线性换在另一组基上的矩阵表示,且两组基的过度矩阵为P。新的一组基=老的一组基*P线行变换的特征值和特征向量不随所选取基底的变化而变化。矩阵可相似对角化的条件是此矩阵的每一个特征值的代数重数等于几何重数, 矩阵可相似..
2020-07-08 15:20:32
2232
原创 Latex 语法总结(持续更新)
1.插图1.修改图片间距布局:https://blog.csdn.net/a386115360/article/details/89358723h:here,表示在此处,除非真的放不下,不然就是写在哪里图就放在哪里,不会乱动;t:top,表示在顶部,b:bottom,表示底部,p:page,表示在本页\begin{figure}[htbp] % htbp表示的意思是latex会尽量满足排在前面的浮动格式,就是h-t-b-p这个顺序,让排版的效果尽量好。...\subfigure[子图下方的注释]{
2020-07-08 14:42:42
3337
原创 LCD与DLP投影仪原理简介
这里写自定义目录标题LCD与DLP投影仪原理简介(1) LCD(Liquid Crystal Display) 投影仪(2) DLP(Digital Light Processor)投影仪对比参考资料:LCD与DLP投影仪原理简介现在比较流行的投影仪大致分为基于LCD(Liquid Crystal Display)的投影仪和基于DMD(Digital Micromirror Device)的投影仪。(1) LCD(Liquid Crystal Display) 投影仪①:单LCD屏投影仪, 只有一块
2020-07-05 17:17:39
4591
原创 安裝ubunt18.04, cuda 10.0, cudnn7.6.5, anaconda3 总结了很多博客,全是干货
本文講述了如何安裝ubuntu 18.04双系统,和配置cuda 10.0 、anaconda3深度学习环境。1.安装ubuntu 18.04 双系统1.制作ubuntu18.04的 U盘启动盘从国内镜像下载ubuntu18.04的系统安装文件(.iso格式)清华源:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/18.04/下载...
2020-03-14 15:22:18
674
转载 ubuntu gcc g++ 版本降级(转载)
系版本高,在配置环境的时候,gcc安装了高版本,gcc版本太高导致一些编译问题(编译android源码),需要降低gcc版本级别。ubuntu 系统下安装gcc 4.4的最好方法是仅用以下两条命令: sudo apt install gcc-4.4 sudo apt install g++-4.4如果出现错误:软件包gcc还没有可供安装的候选者则sudo gedi...
2020-03-03 23:19:02
850
原创 ubuntu 16.04 nvidai cuda cudnn 安装,正确的教程, 失败的经历
本人觉得这个安装指南写的比较全面https://blog.csdn.net/wanzhen4330/article/details/81699769首先看一下笔记本显卡型号lspci |grep VGA 在命令行敲过这个命令后,有些台式机或笔记本会显示nvidia显卡,如下所示:但是我的笔记本电脑 只显示nouveau卡(集成显卡)需要执行下面命令才能找到nvidia显卡lspc...
2020-03-03 19:40:45
1487
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人