自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 资源 (4)
  • 收藏
  • 关注

原创 视觉算法工程师面试总结[2022春季 达摩院 美团 字节 华为]

目录 [强调!不允许任何形式转载]前言阿里达摩院面试岗位笔试一面二面美团面试岗位笔试一面二面字节跳动面试岗位幸福里面试推荐算法笔试图像算法一面图像算法二面华为面试岗位笔试一面前言 最近找了一下视觉算法暑期实习生,笔试面试花了一个月,大厂的offer虽然还都没收到,但是先把经历记录一下,以防后边忘记了,也给未来准备找视觉算法岗位的同学一个小小的参考。还是说一下个人情况:985硕士,机械专业,传统点云与图...

2022-04-21 11:12:39 2815 1

翻译 [解决方案]AttributeError: Module ‘PyQt5‘ has no attribute ‘__version__‘

这个错误是用pyinstaller将一个py文件转化为一个exe文件时,产生的错误,一个可行的解决方案为:1. 运行指令pip install PyQt5 --user --use-feature=2020-resolver2. 重新运行pyinstaller -F xxx.py就可以正常执行了...

2021-08-15 18:48:41 3235

原创 强化学习实例:鸳鸯系统与动态规划求解

一、游戏介绍鸳鸯系统游戏是指由两种鸳鸯在一个地图中,一只去寻找另外一只,图中有些障碍物是不能通行的,如果选择路径可以最快到达?二、游戏系统搭建具体可以看代码注释,主要思路是定义鸟的位置与状态,以及可以移动的方向,更新函数、碰撞检测等等,最后画图并渲染#一些需要导入的头文件import pygamefrom load import *import randomimport numpy as npclass YuanYangEnv: def __init__(self)

2021-04-09 16:04:10 1196 1

原创 强化学习实例:多臂赌博机

一、游戏背景多臂赌博机是一种游戏机,在本文中是一种具有三个拉杆的游戏机,每拉动一个杆,就会有一些金币从机器里出来,每只杆拉动出现的金币都是不一样的,同一只杆拉动多次出现的金币数量也是不全相同的,因此考虑拉动N次杆,怎么能让出现的金币的个数最多?二、采取策略一个很显然的思路是,先试探性的每个杆都拉动几次,看看哪个杆出现的金币比较多,那么之后就拉动那一只杆,这种思路是一种解决方法,但是如果因为巧合导致选择的那一只杆不是出金币最多的,那么就会导致很大的损失,所以考虑有没有方法可以在选择当前出金币最多的

2021-04-09 11:10:20 959 1

原创 gym中机器人找金币环境侯建

一、目标接下来要做个一个游戏是找金币,如下图所示,一个机器人从地图空白位置随机产生,通过上下左右移动,到达金币位置胜利,遇到了两个陷阱则失败,本文是构建了该地图并将地图注册到gym中,方便以后使用标准方法调用二、构建过程首先定义状态空间、动作空间、回报函数与状态转移概率#状态空间self.states = [1,2,3,4,5,6,7,8]#机器人可能产生的位置self.x=[140,220,300,380,460,140,300,460]self.y=[250,250,25

2021-04-08 11:43:24 926 1

原创 强化学习中的一些概念

1、强化学习要解决的是贯序决策问题,它不关心输入长什么样子,只关心当前输入下应该采取什么样的动作才能实现最终目标2、监督学习与强化学习的区别:二者的相同点是都需要大量的数据进行训练,但是二者需要的数据类型不同,监督学习需要的是多样化的标签数据,强化学习需要的是带有回报的交互数据3、基于模型的强化学习算法利用与环境的交互得到数据学习系统或环境模型,再基于模型进行贯序决策4、无模型的强化学习算法是直接利用与环境交互得到的数据改善自身的行为5、基于模型的强化学习算法效率更高,但对于无法建立模型的问

2021-04-08 11:06:08 1273

原创 HarmonyOS开发IDE(DevEco Studio)安装与新建项目

一、安装IDE从鸿蒙OS的官网下载IDE,连接如下https://developer.harmonyos.com/cn/develop/deveco-studio#download然后解压运行exe安装文件自己选择地址最好加入系统路径,如果错过了就自己在环境变量中加一下然后开始安装...

2021-03-02 11:10:40 3651

原创 win10安装win10X虚拟机教程

一、打开CPU虚拟化凡是安装过虚拟机的都清楚这一步,在BIOS中将虚拟化技术打开就可以了二、安装Hyper-V虚拟机打开“设置”-->“应用”-->“程序和功能”,在弹出对话框中点击“启用或关闭windows功能”; 勾选Hyper-V之前的复选框,点击“确定”按钮,Hyper-V装好后根据提示重启电脑即可。 三、安装虚拟机接下来从应用商城下载win10X的虚拟机,由于大陆不支持win10X的下载,所以先将系统的区域设置为台湾或者香港,然后在应...

2021-02-22 19:34:23 3368 3

原创 MATLAB中变量的有效索引在parfor中受限制 解决方案

一、出现问题在matlab中使用多线程计算时,parfor循环中如果镶嵌了for循环,那么在子for循环中调用了parfor循环以外定义的变量,那么就会报错“变量的有效索引在parfor中受限制”,如下所示:二、解决方案在matlab中,在第一层的parfor循环中可以调用外部定义的变量,但是在里边镶嵌的子循环是不能够调用的,子循环中只能调用parfor循环中定义的变量,因此如果在镶嵌循环中使用外部的变量,就需要在parfor中定义一个临时变量,在经过子循环之后,在parfor循环结束.

2021-01-26 18:45:27 7996 2

原创 MATLAB多线程运算简易方法

一、安装工具箱 安装Parallel Computing Toolbox工具箱,如果不知道怎么安装就直接运行下边的指令,到时候会提醒安装的二、开启多线程 设置线程的个数,这里设置为4个poolSize = 4parpool('local',poolSize);三、运行程序 然后就直接运行事先写好的程序,但是程序中的for循环要改成parfor,而且parfor不能镶嵌...

2021-01-24 18:39:15 6791 3

原创 Windows自动启动项不再弹出用户账户控制

想要让某个程序或者软件开机自动运行,并且不需要弹出 用户账户控制 的提示,下边我以一个程序为例: 那么如何让它自动运行且不弹出上边的提示呢?1. 首先给这个exe添加管理员权限 2. 修改注册表 快捷键win+R输入regedit,弹出注册表,寻找HKEY_CURRENT_USERS\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layer...

2020-12-31 17:02:07 6031 1

原创 OpenCV中稠密光流算法总结

一、什么是光流 之前有一篇博客对光流做出了概念性的说明,可以参考:光流法—光流场估计概念二、光流的基本算法 之前写了一篇博客介绍几个入门级的光流算法原理和推导,可以参考:经典光流计算方法(HS光流法、Lucas-Kanada方法、Pyramidal LK方法)三、OpenCV中光流的调用preImg是前一帧图像 nxtImg是后一帧图像 pre2nxt是检测出的光流场3.1Farneback算法calcOpticalFlowFarneback(p...

2020-12-18 19:55:37 3451 3

原创 区域树(Range Tree)的构建(Build)与查询(Query)

一、什么是区域树(Range Tree) 首先以2D Range Tree为例,在一个二维平面上有很多点,点都有x和y坐标,现在要查询在区域 [x1,x2] × [y1,y2] 范围内的所有点,常用的方法一般是先将数据点预处理成一棵树,然后通过对数中点集的查找来实现。其中区域树就是一种正交查找的常用方法,主要思路是将点沿X坐标建立一棵树,再将每个节点的子树按照Y坐标再建立一棵树,具体实现与查找见下文。二、区域树构建(Build) 首先对于平面中的四个点,可以根据...

2020-12-15 14:16:36 4518

转载 详解拉东(Radon)变换原理、直线检测、代码实现

一、Radon变换参考:Radon 变换 Radon变换是使用一组参数来表示一条直线,当选定某个方向时,那么一副图像可以被变换成的函数的一条直线,具体推导可以参考上述链接二、直线检测 基于Radon变换的直线检测的目的就是检测根据角度变化时出现的“局部峰值”,即可以确定直线的方向,同时,峰值大小能够确定直线上点的个数,如下图的局部极大值,则有可能是一条直线的位置,当然进行检测之前需要获得图像中的轮廓,而不是直接对图像进行变换 三、代码...

2020-12-13 16:25:23 13810 5

原创 Qt+OpenCV发布可执行程序(打包DLL文件)

一、目的 OpenCV是最常用的开源视觉库,Qt是当前最常用的GUI开发框架,用他们做出的软件如果要在其他终端运行就需要提前打包,将依赖的环境连同程序一起打包成可执行文件,这里是使用添加DLL文件的方式,做出绿色版可执行文件,通过U盘直接将生成程序拷到其他电脑上可以直接使用。二、解决方法2.1 生成exe文件 实际上只需要运行程序(Debug或者Realse模式),就会在相应程序的目录中出现exe文件,比如我要生成的文件为 Detection.exe ...

2020-12-12 16:17:16 2563

原创 C++ 获取文件夹内所有文件名

前言 虽然代码都是网上搜来的,但总是因版本或者其他原因,代码都有些错误,这里修正了,可以直接运行实现void getFiles(string path, vector<string>& files){ //文件句柄 intptr_t hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hFile = _findfirst(p.assign(path).append("\\*"...

2020-11-21 16:56:16 902 1

原创 经典光流计算方法(HS光流法、Lucas-Kanada方法、Pyramidal LK方法)

预备知识:梯度法  最早的基于梯度的光流计算方法是于1980年发表的。这个算法的基本原理如下所述:假定(x,y,t)(x,y,t)(x,y,t)是时刻ttt在图像位置(x,y)(x,y)(x,y)的灰度值。u(x,y)u(x,y)u(x,y)和v(x,y)v(x,y)v(x,y)是光流在位置(x,y)(x,y)(x,y)的xxx和yyy方向的分量。如果我们假设在时刻t+δtt+\delta tt+δt,在位置(x+δx,y+δy)(x+\delta x,y+\delta y)(x+δx,y+δy)的灰度值

2020-11-08 13:06:27 13551 4

原创 光流法—光流场估计概念

目录1. 图像的产生2. 光流的概念3. 光流场和运动场之间的关系1. 图像的产生在讨论光流之前,首先需要了解什么是图像以及图像的产生过程。如下图所示,光信号经过眼睛的视觉细胞感知后,通过视觉神经和视神经中枢传递给大脑的相应分区,对其刺激形成视觉。可以说,图像是人类的视觉基础是自然景物的客观反映,是指客观事物经过光的反射和投射在大脑中形成的印象或认识。图像是图和像的完美结合,“图”反映了物体的客观存在“像”反映了人的视觉系统对图的印象或认识。图像是一种信息载体,是客观的一种表示方法,广义

2020-11-08 10:30:49 4971 2

原创 OpenCV4中Stitch的应用

网上很多都是OpenCV3中调用的方式,其中Stitcher::createDefault方法以及没有了,需要用指针调用create()方法,具体看代码:int main(){ cv::Mat image1 = cv::imread("p1.jpg", 0); cv::Mat image2 = cv::imread("p2.jpg", 0); if (!image1.data || !image2.data) { perror("读取错误"); .

2020-11-03 12:07:14 5717 2

翻译 深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

深度学习在三维点云上的应用摘要 最近,点云由于在计算机视觉、自动驾驶和机器人技术等许多领域的广泛应用而受到越来越多的关注。深度学习作为一种主要的人工智能技术,已经成功地用于解决各种二维视觉问题。由于使用深度神经网络处理点云所面临的独特挑战,因此点云上应用深度学习仍处于起步阶段。近来点云上深度学习变得更加受欢迎,许多方法被提出来解决这一领域的多种问题。为了促进未来的研究,本文对点云深度学习方法的最新进展进行了全面的综述。它涵盖了三...

2020-10-16 16:48:49 11065 2

原创 geomagic 色谱分析

一、打开软件,导入模型 导入模型,通常是一个CAD模型与一个点云模型,选中CAD模型右键设置为“参照”,将点云选中右键设置为“测试”,但是如果是两个点云模型的话是不能直接进行比较的,需要选择其中一个点云在上边菜单的“点--封装”里将点云生成一个面才行。 左图是导入的两个点云,右图是将一个点云模型封装成了面二、注册(可选) 点击上方菜单里的对齐,可以选择注册方式,目的是为了让测试模型和参照模型配准,如果事先已经配准过了可以省略这一步...

2020-10-08 10:57:00 2185 1

原创 VS配置PCL全网最简单的方法(vcpkg一步到位)

一、安装vcpkg 进入安装地址(https://github.com/Microsoft/vcpkg)下载压缩包,如下图所示,然后解压到任意一个文件夹,我直接放入了D盘根目录(D:\vcpkg-master) 然后打开cmd,进入vcpkg 根目录中,我这里就是D:\vcpkg-master,运行 vcpkg 引导程序:bootstrap-vcpkg.bat 然后等待vcpkg安装完...

2020-10-02 13:48:09 7985 11

转载 数字图像冗余

数字图像的冗余主要表现为以下几种形式:空间冗余、时间冗余、视觉冗余、信息熵冗余、结构冗余和知识冗余。(1)空间冗余(几何冗余):图像内部相邻像素之间存在较强的相关性多造成的冗余。同一景物表面上采样点的颜色之间往往存在着空间连贯性,但是基于离散像素采样来表示物体颜色的方式通常没有利用这种连贯性。可借助其相邻像素的灰度值进行推断是否存在空间冗余,它是是静态图像中存在的最主要的一种数据冗余。 例如:图像中有一片连续的区域,其像素为相同的颜色,空间冗余产生。(2)时间冗余(帧间冗余):视频图像序列中的不..

2020-09-22 09:30:20 2895

原创 LCCUP 力扣杯2020秋季编程大赛题解

先占个位置,打完比赛来补1.XXX解题思路: 代码:2.XXX解题思路: 代码:3.XXX解题思路: 代码:4.XXX解题思路: 代码:5.XXX解题思路: 代码:...

2020-09-12 14:50:59 1193

原创 只读参数stereoParams的修改

stereoParams在matlab中是只读的,也就是不能直接对stereoParams类中参数进行赋值,所以如果要修改需要先转换成一个结构体,然后对结构体进行赋值,然后再将结构体转换成stereoParams类,进行后续计算等等1、转成结构体paramStruct = toStruct(stereoParams)2、赋值paramStruct.RotationOfCamera2 = RA3、转成结构体NewStereoParams = stereoParam...

2020-09-10 18:07:12 1838 2

原创 VS2019中拓展与更新的位置

更新到VS2019之后,“拓展与更新”已经不再工具里边了,而是放到了“拓展”选项卡下的“管理拓展”

2020-08-23 15:36:23 5725

原创 YOLO模型详解

简介 YOLO模型是用来目标检测的,也就是在一副图像中检测到物体并识别出物体在图像中所在的位置,YOLO相比于以往的带有建议框的神经网络,速度大有提升,下边详细介绍YOLO网络YOLO网络层 网络还是比较简单的,从448*448*3的图像依次经过途中所有卷积层与池化层得出了7*7*1024的特征图,再经过两层全连接层得到7*7*30的输出结果 下边解释一下为什么输出层数是30,当我们得到7*7*1024的特征图时,对每一个网格都做一次预测,也就...

2020-08-09 16:02:57 19445 1

原创 Pycharm运行中忽略warning

在代码中加入import warningswarnings.filterwarnings("ignore")就可以避免warning弹出了

2020-08-09 09:18:41 8466

原创 Batch Size的理解

1、为什么用batchsize 当网络在训练的时候,如果将样本一个一个输入,网络对每一个输入都会计算一个梯度,不同样本梯度不同,会使得梯度方向不准确甚至跳动,所以需要同时输入网络batchsize大小个样本,这样计算的梯度是由输入样本一起决定的,有一种类似平均的概念在里边,可以避免极端数据造成的梯度误差2、batchsize影响 batchsize不能太大,因为GPU很难装下那么多数据,如果batchsize太小,可能会造成梯度方向不准确;实际上,当batchsize...

2020-08-08 20:11:17 1632

原创 [解决方案] pytorch中RuntimeError: DataLoader worker (pid(s) 27292) exited unexpectedly

在运行代码前边加上:if __name__ == '__main__':就可以了

2020-08-08 20:03:52 17285 17

原创 Linux系统中创建快捷方式

在linux系统中很多软件不需要安装,可以直接下载压缩包,解压直接用,每次使用的时候都要进入层层文件夹,于是创建一个桌面快捷方式是很有必要的1、创建.desktop文件 以pycharm为例,在桌面上新建文件pycharm.desktop2、编辑文件#这是标准开头[Desktop Entry]#字符格式Encoding=UTF-8#该快捷方式的名字Name=pycharm#sh 后边是要打开打文件打路径Exec=sh /home/cyq/soft...

2020-08-03 19:50:04 931

原创 空间中球与立方体的相交判定

首先我们做出规定:球心坐标为center[3],半径为r,立方体左下角坐标为cube[3],边长为a,这些条件已经足够约束了,只是为了方便起见,再计算几个值:dis[3]表示球心到立方体中心的三轴距离的绝对值。 首先我们来分割一下立方体的区域,首先看下边的立方体,将立方体的每一个面做出延伸,可以发现空间被分割成了27个空间,其中在立方体外的有26个空间,其中有6个空间是与立方体的面接触,12个空间是和立方体的边接触,8个空间与立方体的顶点接触,下边就分别从这三个方面来考虑球...

2020-07-30 10:44:30 3932 1

原创 平面中圆与矩形相交判定

圆与矩形的相交条件有以下2个:我们约定矩形左下角坐标为(x1,y1),右上角坐标为(x2,y2),圆形坐标为(cx,cy),半径为r,矩形中心横坐标 x0 = (x2+x1)/2,纵坐标为y0 = (y1 + y2)/2;约定这些是为了下边描述更加方便一、矩形顶点在圆内 如上图所示,当矩形四个顶点有一个顶点在圆内时,可以认为矩形与圆是相交的,即://找出x方向与cx最接近的minx = min(abs(x1 - cx), abs(x2 -...

2020-07-29 20:53:26 5769

原创 DIY装机的看过来了! 一份实用的台式机硬件选取流程

前言马上就要步入研究生生活了,本来早就想自己装台机子了,无奈疫情被关在家里,装了机子也不好带到学校,于是一直等到了现在,我已经查询了很多相关经验、配置等,把过程写出来给其他想要装机的小伙伴分享一下,希望少走弯路~一、硬件选择顺序首先先说明一下各硬件的选取顺序:先选择CPU,然后再选择与CPU相兼容的主板,CPU代数不同,主板也是不同的 根据需求选择显卡,当然显卡也可以先选,这两步区别不大 电源需要给主板、CPU、显卡供电,因此要根据他们的功率、接口数选择合适的电源,这个很重要 选择

2020-07-28 13:18:24 3240

原创 Ax = y非一致方程和一致方程的求解

一致与非一致方程 一致方程是指Ax = y有至少一个解 非一致方程指Ax = y没有接Ax = y求解 如果A是满秩的方阵,则x = inv(A)*y 如果A不是方阵,但是是行满秩或者列满秩,那么解为A的伪逆乘以y 如果A是秩亏的,那么A的解为A的广义逆乘以y 实际上广义逆包括逆、伪逆,广义逆又称为:Moore-Penrose逆矩阵,所以Ax = y的解可以统一为A 的Moore-Penrose逆...

2020-07-22 11:50:21 3201

原创 PCL移除离群点StatisticalOutlierRemoval点云滤波

StatisticalOutlierRemoval StatisticalOutlierRemoval是用来去除点云数据中的离群点(噪点),使用的方法为:对于每个点的,计算它到它所有临近点的平均距离,假设得到的是一个高斯分布,那么根据均值与标准差,平均距离在标准范围外的点,就是离群点代码#include <iostream>#include <pcl/visualization/cloud_viewer.h>#include <pcl/io/io...

2020-07-20 09:48:57 2611

原创 PCL下采样VoxelGrid点云滤波

VoxelGrid PCL实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格(可把体素栅格想象为微小的空间三维立方体的集合),然后在每个体素(即,三维立方体)内,用体素中所有点的重心来近似显示体素中其他点,这样该体素就内所有点就用一个重心点最终表示,对于所有体素处理后得到过滤后的点云。代码#include <iostream>#include <pcl/visualization/cloud_viewer.h>#include <p...

2020-07-19 20:47:30 2816

原创 PCL直通滤波器PassThrough点云滤波

PassThrough PassThrough是直通滤波器,意思是可以设定一个频带,可以选择保留频带内的或者舍弃频带内的代码#include <iostream>#include <pcl/visualization/cloud_viewer.h>#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#includ...

2020-07-19 20:28:57 4920

原创 argparse常用用法讲解

前言 在看开源的python代码的时候,经常发现命令行输入和解析的例子,比如我当前调用的pointnet的源码,也是这样,平时总是手动将参数输入在编译器里,但是这次我准备把这个命令行输入好好学习一下 argparseargparse是专门用于从命令行中解析参数的一个库,举一个例子,如下代码:(文件名为:exam_argparse.py)import argparseparser = argparse.ArgumentParser()parse...

2020-07-17 16:57:57 1421 1

原创 PointNet模型的Pytorch代码详解

前言 关于PointNet模型的构成、原理、效果等等论文部分内容,我在之前一篇论文中写到过,可以参考这个链接:PointNet论文笔记 下边我就直接放一张网络组成图,并对代码进行解释,我以一种比较容易理解的顺序放置,希望耐心阅读。网络结构图示 在分类网络中,输入n个点,对输入做特征变换,再进行最大池化输出k个种类;分割网络是分类网络的一个拓展,它考虑了全局和局部的特征以及每个点的输出分数。mlp代表多层感知机,括号中是感知机的层数,批标准化(Batch...

2020-07-17 15:29:00 10798 17

鲜花分类集(已划分)

配套代码参见 https://yuqi-cheng.blog.csdn.net/article/details/104745908

2020-12-07

UR的脚本编程语言及示例大全

这份文档是用来操纵UR机器人的,可以用编程语言将该脚本传入UR机器人实现控制,里边指令非常齐全,而且都有示例,示例中每个参数解释也都很清楚

2020-01-11

python3.5从零开始学

python3.5从零开始,很适合入门python的新手学习,内容讲解非常细致,例子也很多

2019-02-28

空空如也

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

TA关注的人

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