自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

马小飞的博客

写给健忘的自己

  • 博客(68)
  • 收藏
  • 关注

原创 TinyDDS编程实践

DDS(Data Distribution Service,数据分发服务) 是新一代分布式实时通信中间件协议,是一种以数据为中心的通信协议,具有高实时性、高可靠性、开放式体系结构和发布/订阅端非耦合的特点。为了深入理解和掌握“分布式网络”的概念,提高编程实践能力,课程设计了TinyDDS编程作业,将“开发一个最简单的符合DDS协议的通信中间件”作为作业目标。

2022-10-20 05:40:28 1505 2

原创 Jean-Pierre Merlet 教授的并联机器人研究

Jean-Pierre Merlet是法国国家信息与自动化研究所(INRIA)的高级科研人员(严格来说不是教授)。自1986年在巴黎第六大学获得博士学位后,他长期从事并联机器人相关研究工作,领导了HEPHAISTOS,COPRIN、SAGA项目,是ALIAS数值库的主要开发者。研究方向包括并联机器人设计理论、机构学、运动学与控制、力反馈、数值计算方法等。其个人网站Jean-Pierre MERL...

2018-12-12 16:53:13 1741

原创 Python常用文件操作

使用python进行文件操作是各种数据预处理的必备技能。主要涉及的是文件名和路径字符串处理。import os, shutil, sys获取当前.py文件目录BASE_DIR = os.path.dirname(os.path.abspath(__file__))#添加到import库查询目录sys.path.append(BASE_DIR)复制移动文件和文件夹#...

2018-09-08 15:41:20 358

原创 对于PointNet的源码阅读

PointNet 是发表在CVPR2016的一种直接面向点云的深度学习框架。可用于对点云进行物体识别/分割。 PointNet在多种测试集中表现出良好效果。已经被momenta.ai等自动驾驶公司用于激光雷达点云处理,可见其算法确有实际价值。 PointNet的源代码基于Tensorflow,源码目录中的sem_seg对于语义识别代码 ;而part_seg文件夹内对应分割代码。详情可参见h...

2018-07-03 00:56:10 2606 1

原创 Google Magenta介绍及源码结构

Magenta 是Google Tensorflow的一个子工程,使用LSTM网络进行机器自动作曲。其源代码见这里,相关论文见这里。我通读了论文,我的摘要和总结见这里根据论文介绍,在音乐的表示方面,Magenta的输入和输入是四种Event及时长,而不是较为直接的“像素”方法。Magenta依赖于Tensorflow,其工程目录分为其中model文件夹提供了可用于训练的脚本。 dru...

2018-03-26 16:04:42 5676

原创 使用vtkVoxelContoursToSurfaceFilter由平行轮廓重建三角面片

在医学影像中,由于CT、MRI等成像设备的数据均以断层影像的形式输出,对其进行轮廓提取和三维重建就成为一个常见的需求。 将一组相互平行的轮廓线,以三角面片连接,形成放样曲面,即为surface from contours问题。这一问题的经典解决方法可参见论文Piecewise-Linear Interpolation between Polygonal Slices(简单贪心) 及approx

2018-01-26 16:53:54 3001

原创 vtk中的点云曲面重建

对于光学扫描设备(例如激光雷达)采集到得非规则点云数据,一个最重要的需求就是进行表面重建(Surface Reconstruction),使用三角片拟合成片密集分布的点云,形成连续、精确、良态的曲面三角化表示。 目前主流的算法课分为剖分类、组合类和拟合类。剖分类比如Voronoi图、Delaunay三角剖分,原始数据点即为顶点,数据无损失,数据冗余多,生成的曲面不光顺,容易受噪声影响。组合类比如

2018-01-25 01:48:24 7407 2

原创 在OpenCV中使用RANSAC

使用OpenCV中的RANSAC算法OpenCV中的solvePnPRansac函数和findHomography函数都具有RANSAC特性,该特性使算法对少量的错误数据鲁棒。这两个函数利用RANSACPointSetRegistrator类实现RANSAC算法,但这个类并没有对外开放,因此只能通过阅读OpenCV源代码学习RANSAC算法的实现和使用。

2017-12-12 01:59:09 11170 3

原创 拟合与估计问题中的鲁棒方法

RANSAC 是一种包裹算法 具体C++实现 OpenCV有SolvePnP getHomogenous 内部使用了这一方法此外还有改进的[PROSAC]方法,将点初始集匹配的结果作为排序的依据,使得在采样时根据匹配结果由高到低的得分进行排序,这样最有可能得到最佳参数的采样会较早出现,提高了速度。M估计最小中位数方法O. Chum and J. Matas, “Matching with PR

2017-12-11 14:37:59 4315

原创 Jekyll目录结构和运行机理

Jekyll使用Ruby脚本根据模板生成静态网页,实现了内容与排版的分离。模板以Liquid标记的HTML文件存放,内容为markdown或者html。正常的Jekyll工程包含以下几个目录:_posts markdown内容_layouts 网页模板_pages 被其他html模板包含的片段,在_config.yml中设置_includes 被其他html模板包含的片段

2017-10-27 16:29:43 3520

原创 优傲机器人(Universal Robot)使用笔记

安全密码: safety 工厂模式: 在主界面上从左向右滑屏 输入 lightbot不同的坐标(UR称feature) 基座坐标系: 竖直向上为z正轴,电源线为y正轴 TCP坐标系: 中心轴向外为z正轴,电缆处为y正轴 法兰盘坐标系: 不存在连续移动的如何 movel movej movep是什么 blendingscript里面每个移动命令都有时长,若命令在时长内未完成,则强行停止se

2017-10-10 16:43:00 12155 3

原创 DH参数与运动学

我们使用矩阵相乘表示机械臂末端中心点(Tool Central Point, TCP),如 M60=T10T21T32T43T54T65 M_0^6= T_0^1 T_1^2 T_2^3 T_3^4 T_4^5 T_5^6 其中各个Ti+1iT_i^{i+1}应用DH参数表示齐次变换是可以直接求逆的! 还可以利用变换矩阵的特殊性质进行化简DH参数的完整表达UR系列机械别的DH参数见附录数学公式使

2017-10-09 22:46:19 10443 2

原创 Lingo使用笔记

Lingo是用于求解线性规划、非线性规划、整数规划的专门软件。使用Lingo建模语言描述问题后,软件能自动化为标准形式,并根据问题选择相应的求解器。Lingo代码每行以分号结尾。变量和关键字不区分大小写。除Calc段和Init段外,代码各行的顺序随意。 Lingo中变量不需要定义直接使用。默认变量类型为非负实数。使用@FREE(x) !移除非负约束 @GIN(x) !添加整数约束@BND

2017-04-09 19:09:33 1246

原创 Altium Designer要点笔记

器件库的管理在Altium Designer中,可以导入的库扩展名包括 1. SchLib器件库 2. PcbLib封装库 3. IntLib集成库 其中,基于 1 2 是传统的库文件管理办法。SchLib文件中只含有器件定义和原理图符号,以及封装模型名称或路径,在原理图编辑器中导入后,由用户自己选择使用什么封装,并手动对应引脚顺序。这种将原理图和封装模型分离在两个文件的做法,适应了多种器

2017-02-21 15:01:18 3017 1

翻译 基于最大稳定区域的图像分割算法

为了分割出图像中含有不同颜色的区域,文献1提出了一种基于最大稳定区域的算法: 对于灰度图,以不同大小的阈值tt进行二值化,统计连通区域的形状,搜索关于 tt “最稳定”(关于不同 tt 面积变换最小)的区域。搜索采用基数排序。 对于彩色图像,将像素上下左右相邻视为图的节点,相邻两像素的色差度量视为边权值,以不同大小的阈值tt对边进行分割,则可将整幅图像分割为多个连通图。统计最稳定方法同上。色差度

2017-02-12 15:11:25 3037

原创 Matlab中处理多个图像的索引下标

在Matlan中,彩色图像一般使用M×N×3M \times N \times 3数组存储 为了将多个图像(视频帧列)存储在一起 这样是不行的for i=1:n seqs = [squs img];end这样会导致多个图像的合并较好的方法是使用cellfor k=1:n seqs = {squs img};endimg = seqs{k};另外也可以使用高维数组seqs =

2017-02-11 22:43:22 2155

原创 OpenCV小技巧

快速对点序列进行运算formatFileStorageBackgroundSubtract

2017-02-09 15:22:15 542

原创 Matlab Computer Vision System 例程笔记

形态学礼帽运算 vision.MorphologicalTopHat('Neighborhood', strel('square',18)); 竟然可以用来分离订书钉之间的间隙 vision.BlobAnalysis 可以在二值图像中统计团区域的数量blob挺好 如何进行大小的优化呢?

2017-02-08 15:52:57 1751

原创 图像识别和跟踪中常用特征点

HoG (Histogram of Oriented Gradient)方向梯度直方图Haar 边缘特征、线性特征、中心对角线特征,组合成特征模板LBP(Local Binary Pattern) 局部二值模式以下主要用于跟踪: 1. Harris 角点检测 利用矩阵的特征值 R=detM−(trM)2R=detM-(trM)^2 2. SIFT 3. SURF 4. SUSAN 圆形

2017-02-08 13:27:34 4644

原创 视频稳像笔记

算法原理视频稳像(Video Stabilization),又称电子增稳,是指利用相关的算法,对视频设备采集的原始视频序列进行处理,去除其中的抖动。视频稳像的目的,一方面是为了让人眼观感舒适,有利于人工观测、判别等,另一方面也作为诸多其他后续处理的预处理阶段,如检测、跟踪和压缩。经典的稳像算法一般包含3个步骤: 1. 全局运动估计     全局运动指视频中背景的运动。全局运动估计要获得准确的运动

2017-02-08 13:01:07 5696 3

原创 图像中2D形状的表示方法总结

寻找恰当地方法表示任意物体的形状,是图像识别中的关键问题之一,二者之间有着密切的联系。对于表示方法的基本要求是关于平移、旋转、缩放具有不变性。 该问题有以下几个难点:描述子需要有足够强的能力以区分不同目标物体,但又能合并对于同一个物体的三类变换描述子应能描述任意形状,以便被应用于通用视觉任务应对输入数据中的噪声具有鲁棒性常用方法如下: 1. 简单滑窗块匹配 对光照变化敏感,对变换不具有

2016-11-04 23:57:51 1575

原创 用MinGW编译Win32 GDI应用程序

用来编译的批处理del *.ogcc -c *.cpp -Wno-write-stringswindres Resource.rc Resource.og++ *.o -lstdc++ -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -o 其中 windres 命令用来编译资源文件,

2016-10-29 23:24:22 1878

原创 OpenCV中局部贴图的方法

为了用OpenCV实现这种效果应先使用ROI功能圈定对应区域创建局部Mat图像头,使两图片尺寸相同。 然后用addWeighted函数按0 1加权覆盖 cv::Mat roiImage;cv::Rect rect(0, 0, intrImage.cols, intrImage.rows); //位置roiImage=srcImage(rect);cv::addWeighted(roiIm

2016-10-16 13:09:24 4720

原创 SciPy库主要功能

scipy基类 bool8类型 byte类型 intN运行时Warning 计算平台限制numpy相关数学函数scipy.io导入导出matlab文件导入图像scipy.linalg线性代数: 矩阵求逆 分解 行列式scipy.special特殊函数: 贝塞尔 椭圆 伽玛 erfscipy.fftpack快速傅立叶变换scipy.optimize优化算法

2016-10-16 12:56:14 8687

原创 树莓派相关软件资源集合

WebMin可以在电脑网页上通过web控制树莓派,比如添加删除更新设置树莓派上的软件Samba使用SMB协议与Windows共享文件并映射网络驱动器 以上的安装方法见在树莓派上搭建django服务器3.

2016-08-26 16:23:04 913

原创 Git使用笔记

Git有远程仓库(remote repository)和本地仓库的概念。 通过$ git clone <版本库的网址>$ git clone <版本库的网址> <本地目录名>可将远程仓库下载到本地文件夹 $git remote #列出远程主机名 默认为origin$git remote -v #列出主机名和对应网址$ git remote add <主机名> <网址>

2016-07-25 22:18:46 339

原创 利用无线网卡建立个人wifi hotspot

已有现成工具实现常见需求,一般不必手工配置,如 hotspotd 和 create_ap较新的linux发行版一般使用wpa_supplicant软件连接wifi并进行密码验证。其自动连接是通过 /etc/network/interfaces文件中的iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

2016-07-23 04:54:51 1420

原创 Raspbian常见指令笔记

Raspbian是基于Debian的定制版本,使用OpenBox作为桌面系统 预装了一些基于Python的微型教育软件和游戏 使用wpa_gui作为wifi管理的图形界面镜像文件烧写完成之后,插入tf即可启动。以下配置可能帮助你更好地使用:初始用户pi,密码raspberry。赋予pi用户sudo权限,使用visudo指令修改/etc/sudoers文件,在末尾加入pi

2016-07-21 23:39:34 1818

转载 Markdown用例

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-07-20 01:05:07 875

原创 Qt中的中信号槽与异步调用

Qt中使用信号-槽机制处理跨对象之间的调用,该机制的好处有: 1. 使得调用关系的绑定和解除十分灵活,不必修改类成员函数代码 2. 在不暴露更多全局变量的情况下实现跨命名空间调用 3. 可以多个信号对应多个槽,也可以信号之间绑定,对应于GUI中的逻辑很方便 4. 利用Qt::QueuedConnection可以实现异步调用一般使用connect(this, SIGNAL(TestSignal

2016-05-31 14:37:09 9887 2

原创 Basler Pylon工业相机SDK的使用

Pylon库有C++ .Net等各种封装版本,一般用C++版本,功能全面效率高。 基于GenAPI通用相机抽象接口使用的是Node结构,以字符串形式访问相机参数,比较通用但效率低,使用不方便。 Pylon高层用C++封装,形成本地相机对象如何管理多个相机,最靠谱的方法是按相机ID标定顺序,需要读一个配置文件,比如XML或JSON 然而一开始不知道ID,需要先列举出来

2016-05-31 14:07:49 20468 4

原创 Shader效果算法剖析笔记(一)

Shadertoy 线框高光代码

2016-05-03 14:04:01 2347

原创 MinGW与MSVS生成dll库的交叉链接

MinGW生成的.dll文件可以直接用MinGW链接,就像链接一般静态库一样。但是若希望在MSVC中使用,则要么需要生成.lib信息头文件,要么在源码中调用windows API的GetProcAddress()函数导入。 无论何种方法,都只适用于C风格函数;对于C++中的成员函数,由于不同编译器的前后缀名称生成规则不同,无法正确完成链接。样例代码如下://dlltest.hint __decl

2016-02-23 23:58:46 3324

原创 Qt Question List

自动布局管理是否是全局相关的。意味着子容器可能改变整个父容器树的各种性质? 比如一个按钮的大小改变一个容器高度,而高度通过容器耦合到容器内的所有控件大小和位置,同时耦合到容器周围的空间的位置,耦合四散开来。 、 一个简单粗暴的方法是听命于父不顾子,由上一级指定尺寸。、然而QT里布局器一般没法指定尺寸,只能指定margin。显然是由容器中的控件尺寸偏好改变的容器尺寸,进而与父尺寸共同决定了容器。

2016-02-21 15:03:38 1003

原创 MinGW的链接参数

由于MinGW是从Linux平台移植过来的,又需要支持与MSVC编译库的交叉链接,故格式、扩展名比较混乱; 又加上debug、release、x32/x64等相互兼容问题,导致其输出格式混乱不堪。一般而言,MSVC生成的动态库扩展名为dll,静态库扩展名为lib。但在很多时候,链接动态库还需要一个相应的lib文件指明链接信息。这个lib文件并没有具体二进制码,只是一个信息头。Linux下,GCC链

2016-02-20 13:24:21 2425

翻译 伺服电机控制器的参数整定

翻译自 SureServo Manual,Chapter 5整定的目的:为何整定?何时需要整定?  从本质上来说,伺服系统的工作就是将指令输入和输出的误差减小到零。而将误差减小到零试图花费多大的“力气”取决于系统是被如何整定的。简单地说,整定就是调节伺服系统对于任意给定误差的反应以使系统获得给定响应。在大多数高性能伺服应用中,目标是获得对于误差的高响应速率(又称带宽),并在运转和停转时维持误差尽可能

2016-02-01 19:10:03 13079

原创 Matplot使用笔记

最简单的模板一次性使用各种控件图单窗口绘制):from numpy import *import matplotlib.pyplot as pltplt.subplot(111)x = linspace(0,5,100)y =sin(x) + xplt.plot(x, y,'r-')plt.bar(x[::10],y[::10],0.3,align='center', alpha=0.8

2015-11-23 01:23:09 1090

原创 Python动态特性

长期习惯了C/C++系的静态语言后,切换到Python中往往仍习惯使用静态办法解决问题,而不能充分利用Python强大的动态特性。大多数时候,这使得代码变得不必要地长且难以理解。希望在进阶Python的过程中,逐步掌握更加高级、简捷的语言特性,将更多的精力放到解决问题当中去。函数对象在Python中,以函数作为对象进行传递是很普遍的做法,典型应用例如:数值优化中作为目标函数

2015-11-22 02:18:19 2397

原创 Python常用指令

Python中常用代码备忘延时 睡眠 timeclocksleep字符串调用外部.py文件线程安全队列

2015-11-22 01:34:00 952

原创 matplot工作层次

底层基于Qt wxWiget GTK等封装一层Path 提供功能:折线 3阶贝塞尔 4阶贝塞尔 封装一层Patch 提供功能:有色线段填充矩形填充多边形文字封装一层Plot 提供功能:数学表达式axis坐标轴tick刻度legend图例annotation标注title标题grid网格使用Path绘制贝塞尔曲线:import matplotlib.pyplot as p

2015-11-05 03:00:52 720

空空如也

空空如也

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

TA关注的人

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