自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

江达小记

记录自己的学习之路

  • 博客(28)
  • 资源 (1)

原创 RoboMaster视觉教程(4)装甲板识别算法

RoboMaster视觉教程(4)装甲板识别算法概览装甲板识别是RoboMaster视觉识别中比较成熟的了,到现在有很多战队开源了他们的算法。基本上的思路都是一样的:利用装甲板灯条发光的特性将摄像头曝光值调低屏蔽环境光干扰,二值化处理图像得到只含灯条的二值图,根据装甲板灯条的几何特征来设置约束筛选灯条,灯条匹配筛选装甲板。每年都有很多战队将他们的算法开源,善于利用他人的成果可以极大地减少自...

2019-07-18 11:58:08 8665 16

原创 RoboMaster视觉教程(1)摄像头

RoboMaster视觉教程(1)摄像头摄像头的选型卷帘曝光和全局曝光摄像头曝光摄像头Gamma摄像头的选型摄像头应该是机器视觉中最重要的部分了,选择一款成像质量好稳定可靠的摄像头可以极大地减少识别算法设计的难度。主流的摄像头分为CMOS摄像头和CCD摄像头。一般而言CCD摄像头体积大造价高精度高,而CMOS摄像头由于集成度高造价远低于CCD摄像头,同时CMOS摄像头的体积功耗等参数也相应地优...

2019-06-08 21:15:48 9187 8

原创 RoboMaster视觉教程(0)绪论

背景大四就要毕业了,想着大学四年也需要总结一下。就从RoboMaster这个比赛写起吧。我是大二参加的比赛,做视觉识别部分。当时的想法很简单,因为很喜欢Linux不想焊板子调电控就参加了视觉部分(说句题外话,我是从初二开始接触的Linux但一直就是瞎折腾,不知道Linux能干嘛)。做视觉可以用妙算可以开发一些很有趣的东西,学到很多前沿的知识。大二时做视觉真的是从零开始的。虽然队里之前有研究生做...

2019-05-30 15:32:40 8208 11

原创 Triangle库在windows下崩溃的解决方法

使用 libigl 库,在linux下一切正常,而到了windows下编译运行后,发现每次运行到 Triangle 库部分的代码时就会出现内存错误崩溃,经过查找资料,发现是 Triangle 库的问题。在windows下的vc中 long 是 32 位的 而在 Triangle 库中作者认为 long 是64 位的,解决方法是把 Triangle 库源代码中所有用到 long 的地方用 long long 替换。重新编译后运行不再出错。参考链接:https://stackoverflow.com/qu

2020-05-09 21:37:57 192

原创 windows 下编译 Ipopt 3.12
原力计划

Ipopt这个库在linux下编译是很容易的,但是在windows下想用它就很麻烦了。官方只提供了较旧版本的Ipopt的编译版本,只能用在较旧版本的vs上。如果想用新版本或支持新的vs则只能自行编译。而Ipopt官网的windows编译教程写的不清不楚,按照官网的教程根本无法成功编译。官网教程地址:https://coin-or.github.io/Ipopt/INSTALL.htmlIpo...

2020-05-05 16:08:44 865 18

原创 CMake学习笔记(1)使用CMake编译单源文件程序

这是我在学习使用CMake时记录的笔记,主要参考《CMake Cookbook》这本书。用CMake编译单源文件程序,示例程序如下:#include <cstdlib>#include <iostream>#include <string>std::string say_hello() { return std::string("Hello, CMa...

2020-03-30 16:30:50 195

原创 Ubuntu下Intel集显无法使用OpenGL 3.0以上版本的问题解决方法

把系统从 Ubuntu 16.04 换到了最新 Ubuntu 19.10 后在编写 OpenGL 程序后发生了闪退,但是把程序放在 16.04 上跑就跑得好好的。找 BUG 时发现可能是没有获取到正确的版本号,使得程序认为找不到相应的 OpenGL 版本。百思不得其解,不应该啊,换了新系统程序就不能用了?在两个系统间来回切换对比后发现了问题的原因。原来是我在 19.10 上没有安装独显的驱动,...

2020-03-15 00:25:15 812

原创 在Qt中使用Google Test

前几天发现了一本很好的书 《The Ray Tracer Challenge》 这本书与其它讲编程或讲算法的书不一样的地方在于它全书没有提供可运行的代码,它只提供了伪代码和测试样例。它要求读者跟据书中的讲解和伪代码用读者自己熟悉的语言完成一个光追引擎,并根据书中提供的测试样例来判断有没有正确完成。书中使用的测试工具是 cucumber 一个 BDD(行为驱动开发) 工具,书中用了 cucumbe...

2020-03-07 11:08:25 754 4

原创 把平板、手机作为电脑第二屏幕(Linux系统下)

将平板、手机作为电脑第二屏幕(Linux系统下)背景把手机、平板作为电脑第二屏幕是上个学期偶然想到的,那时我一边看网上的教程一边码代码。由于看的是视频教程,缩小了就看不清上面的字,放大了又会挡住打字区域。这时就想如果有个第二屏幕就很方便了,买个屏幕又不太方便,想到自己还有个平板天天吃灰,这不是就是现成的屏幕嘛。在网上搜了搜发现真的有解决方案,windows和mac上有很多软件可以用,但我平时...

2020-02-12 14:10:00 2122

翻译 Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型-第2部分

Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型-第2部分翻译自:https://www.ics.com/blog/qt-and-opengl-loading-3d-model-open-asset-import-library-assimp-part-2By John Stone Wednesday, May 18, 2016Twitt...

2019-12-15 12:28:59 333

翻译 Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型

Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型翻译自:https://www.ics.com/blog/qt-and-opengl-loading-3d-model-open-asset-import-library-assimpBy Eric Stone Wednesday, May 21, 2014Twitter LinkedIn ...

2019-12-15 12:22:53 533

翻译 OpenGL3.3鼠标拾取物体

OpenGL鼠标拾取物体本文翻译自:http://www.lighthouse3d.com/tutorials/opengl-selection-tutorial/在3D场景中拾取或选择特定项目可能对某些应用程序很有用。可以通过单击一个对象来执行选择,这需要一种确定鼠标放置在哪个对象上的方法。实现此目的的简单解决方案是使用颜色编码,以特定颜色绘制每个可拾取对象。读取鼠标所在的像素以提供颜色,...

2019-12-13 23:43:19 229

翻译 Qt Creator 添加基于 JSON 的向导

Qt Creator 添加基于 JSON 的向导本文翻译自https://doc.qt.io/qtcreator/creator-project-wizards-json.htmlQt Creator 会在系统共享目录以及用户设置文件夹中查找向导模板,就像在查找向导模板位置所说的那样。基于 JSON 的向导模板所在的文件夹中包含一个名为wizard.json 的 JSON 配置文件以及所需的...

2019-12-03 17:11:52 409

翻译 Qt Creator 添加自定义新建文件/项目模板向导

Qt Creator 添加自定义新建文件/项目模板向导翻译自:https://doc.qt.io/qtcreator/creator-project-wizards.html#tips-for-wizard-development如果你有一个正在构建构建大型应用程序或开发多个应用程序的团队,你可能希望标准化团队成员创建工程和文件的方式。你可以复制模板文件夹中的新建向导模板来创建你自己的项目向...

2019-11-20 00:04:15 948

翻译 TinyRayTracer 用256行C++代码构建一个可理解的光线追踪器(1)

网上有大量的光线追踪相关的文章,然而问题在于几乎所有的这些文章都在展示那些成熟的非常难以理解程序。举个例子,非常著名的 明信片光线追踪器 挑战。这段简洁的程序令人印象深刻,但却很难让人理解它是怎么工作的。我想详细地教你怎样实现,而不是向你展示我能完成图像渲染。

2019-10-29 18:19:10 251

原创 RoboMaster视觉教程(11)总结

RoboMaster视觉教程(11)总结这一系列教程终于写到最后一篇了,最开始设想还有两篇「程序自启以及进程守护」和「OpenCV GPU模块的使用与妙算 GPU 的 Zero Copy 」。但是「程序自启」没什么好写的, Linux 程序自启无非就是在/etc/rc.local中添加我们的视觉程序的执行路径或者在bashrc里把路径放进去达到登陆自动运行的效果。而「进程守护」之前想做但一直...

2019-10-15 14:56:25 2482 6

原创 RoboMaster视觉教程(10)目标预测

RoboMaster视觉教程(10)目标预测目标预测应该是RM视觉中最难也是最重要的部分了,预测直接决定了子弹发射后的命中率,实话实说我预测做得不好。预测之所以难做有很多原因,我觉得最困难的地方在于预测是需要上下位机配合的,也就是妙算/微型电脑与战车上的STM32需要配合起来才可以达到比较好的效果。我虽然也会写一些嵌入式上的程序对STM32也比较了解,但水平太差。17年比赛的时候基地的自瞄和电...

2019-09-27 21:33:11 1648

原创 RoboMaster视觉教程(9)风车能量机关识别2

RoboMaster视觉教程(9)风车能量机关识别2之前说能量机关的教程有很多了打算不写了,但是总有同学来问,想了想还是写一下吧。风车能量机关我只做了识别,因为准备分区赛的时候没有实物可以测试就一直搁置了,之后复活赛视觉的打击预测都是学弟们做的。所以如果问我预测方面的事我也只能给个大概的方向,因为毕业后就没有再做这个了。风车能量机关识别的示例代码我放在了我的GitHub上 https://g...

2019-09-14 12:38:38 2870 4

原创 RoboMaster视觉教程(8)串口通讯

RoboMaster视觉教程(8)串口通讯概览这几天一直在做一个小车打算做好了再往下写的,但是由于我两年没写stm32的程序了,写好程序还是很吃力的。再加上这几天要准备考科目三(考驾照好辛苦 T_T )准备开学考试(没错!开学就要考试,还要考三门我没学过的课 T_T )事比较多,就停更了两个星期,下一篇我也不清楚什么时候发不过有时间会一点一点地写。在视觉识别中一般是用妙算或者其他迷你电脑作上...

2019-08-21 21:19:23 2460 13

原创 RoboMaster视觉教程(7)风车能量机关识别

RoboMaster视觉教程(7)风车能量机关识别今年的能量机关在识别的难度上降低了,难在怎么打中。能量机关我只写了识别部分,因为没有道具可以做测试,焊灯条的同学焊的千辛万苦也没焊出可以用的灯条。当然纯手工焊这么大面积的灯条非常困难,前几天打算做一个迷你版的风车能量机关,只焊了一个扇叶就放弃了,太耗时间了。因为关于风车能量机关的教程已经有很多了,而且我自己写的程序没有经过实战不好说好不好使,这...

2019-08-05 17:53:09 3087 2

原创 RoboMaster视觉教程(6)目标位置解算(PnP求解目标与摄像头间的相对位置)

RoboMaster视觉教程(6)目标位置解算(PnP求解目标与摄像头间的相对位置)概览算法原理solvePnP的使用流程实验:测量二维码相对于摄像头的位置RoboMaster视觉程序中的位置解算扩展概览上篇文章讲到了可以用小孔成像原理得到图像中某点相对于摄像头的转角,可以用这个来对所需要转角的测量。但是这个方法有很大的局限性,它只能得到相对于摄像头中心的转角。而在实际应用中摄像头肯定不会在...

2019-08-04 12:36:58 4198 10

原创 RoboMaster视觉教程(5)目标位置解算(通过像素点获取转角)

RoboMaster视觉教程(5)目标位置解算(通过像素点获取转角)概览直接使用像素坐标的缺陷摄像头标定根据小孔成像原理得到需要的转角角度测量验证概览在识别到目标后,有一个很重要的问题:我们的最终目的是瞄准、跟踪、打击,怎样利用识别到目标后得到的目标在图像中的像素坐标来确定在真实世界中目标的位置呢?更清楚点说就是我识别得到的是图像中点的坐标,而我要输出告诉下位机的是它应该旋转或者移动到的目的地...

2019-07-29 16:00:30 3303 3

原创 RoboMaster视觉教程(3)视觉识别程序整体框架

RoboMaster 视觉教程(3)视觉识别程序框架概览多线程除了多线程,还可使用多进程接下来以东南大学的开源程序为例讲一下他们的整体架构下面进入正题项目配置文件概览ImgProdCons 类主函数用类来包装算法概览RoboMaster 视觉识别是一个比较大的项目了,综合性太强。这里从程序框架的角度来粗略讲一下需要怎么做。比较好的框架有官方开源的视觉程序,东南大学开源的视觉程序,其中东南大学开...

2019-07-10 08:45:20 4158 4

原创 RoboMaster视觉教程(2)妙算(Nvidia Tegra K1)系统配置

RoboMaster视觉教程(2)妙算(Nvidia Tegra K1)系统配置概览妙算资料链接汇总妙算系统重置/克隆/恢复妙算安装系统后要做的事妙算通过网线直连电脑并共享电脑网络妙算远程调试妙算安装 FTP妙算配置软件源妙算系统标题栏一跳一跳解决方案妙算安装 OpenCV / CUDA妙算安装 GCC5妙算安装配置Qt Creator概览这里所说的妙算是大疆的第一代妙算,核心处理器为 Teg...

2019-07-05 04:45:24 3436 3

原创 GNU Octave 编辑器模式崩溃解决方法

GNU Octave 编辑器模式崩溃解决方法GNU Octave 是一个开源版本的Matlab,兼容绝大部分Matlab语法 在安装好后发现在编辑器模式一输入字母过一会儿就会崩溃,经过一番摸索发现是自动补全的问题,关了就好了。但作为一个懒人,没有自动补全那不是要了我的命。 经过一番搜索是qt的一个bug需要将qt相关输入法的环境变量置为空。 为了不影响其它应用我写了个shell脚本#!/bin

2017-03-01 22:15:19 3230 3

原创 Linux (armhf)下 qt 环境配置

将写的 qt 程序移植到 tk1 上安装 qt creatorsudo apt install qtcreator配置 Compiler Tools -> Options -> Build & Run ->Compilers 或者流程图: flow st=>start: 开始 e=>end: 结束 op=>operation: 我的操作 cond=>condition: 确认? s

2017-02-25 20:13:33 363

原创 Linux下 ch340 插入后没有/dev/ttyUSB0设备的解决方法

将写的程序移植到tk1上装好一切后发现找不到/dev/ttyUSB0经查资料发现是内核没有支持 解决方法:在ch340的官网下载最新的ch340的linux驱动解压到一个你喜欢的地方make 要用的时候sudo make load不用的时候sudo make unload搞定!

2017-02-25 19:53:23 9475

原创 Udacity 深度学习_学习笔记(1)TensorFlow练习环境安装

第一次写博客文章,一直都想把自己学的用的整理一下可总是没时间,这学期下决心要好好记录自己学习中遇到的各种问题和资料,以备日后查阅,也给他人一个帮助。做robomaster比赛的视觉部分。本来有好多人的,然而到现在貌似只剩下我了。寒假一直在学opencv,刚弄了个十字交点检测(就是激光打出十字然后在屏幕上实时找到十字的交点),回学校后打算先写一个识别数字的做一个打大符的模型。刚跑了一个机器学习的识别数

2017-02-24 21:32:23 1154

angleMeasure-master.zip

https://github.com/hejiangda/angleMeasure 测量图像中一点到摄像头中心点的角度,程序主要是参照 https://blog.csdn.net/zmdsjtu/article/details/54729448 中的程序修改的,在使用中只要点击图像上的某点在终端上会输出当前点测量得到的角度。 摄像头的内参矩阵需要自行标定,程序会读取out_camera_data.xml文件(opencv自带标定程序标定后输出的内参文件),之后打开摄像头,我使用的摄像头是KS8A17,分辨率为1920*1080。 角度测试图片可以参考test.jpg

2019-07-29

空空如也

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