自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 仿人机器人学习笔记(二)运动学

三维空间中的速度单个刚性物体上某一点的速度在上一篇中提到,但当时假设局部坐标系相对世界坐标系的位置不变,以及目标点在局部坐标系中的位置不变,只有局部坐标系的旋转运动从而推到了角速度矢量与旋转矩阵微分的关系,这里假设局部坐标系相对世界坐标系不仅有旋转还有平移运动,推导单个刚性物体上某一位置的速度的表达式 Ph=Pah+Γ=Pah+Ra⋅PaP˙h=P˙ah+R˙a⋅Pa=v+w^R⋅Pa=v+w×(R⋅Pa)因此v=Pah^即局部坐标系相对世界坐标系的平移速度w=(R˙RT)V即局部坐标系相

2020-09-12 10:14:15 537

原创 仿人机器人学习笔记(一)坐标变换

最近在看梶田秀司的《仿人机器人》自学仿人机器人的相关知识,虽然是本很老的书,但是作为入门教材我觉得还是挺好的,所以想做一个系列的学习笔记,毕竟感觉很多数学推导或者分析思路还是很难都记住,希望之后回顾的时候能有用。第一部分是坐标变换,涉及到世界坐标系和局部坐标系以及坐标系的其次变换等内容坐标系世界坐标系的原点一般选择在机器人处于初始位置时其腰部坐标系原点的铅垂线与地面的交点,坐标系用右手法则,世界坐标系中的位置、速度、姿态分别称为绝对位置、绝对速度和绝对姿态绝对位置的三维矢量 Ph=[

2020-09-11 11:38:15 481

原创 PyTorch聊天机器人(一)

之前用yolo加sort做过目标追踪,后来导师建议可以试试看循环神经网络,当时就很纳闷一般它不是用来处理文本的吗?现在看起来我还是太年轻,从机制上来说,时序数据它好像都能处理。然后突发奇想想做一个聊天机器人来打发时间。然后再尝试把它引入到图像领域。循环神经网络相比于输入输出维度固定的卷积神经网络,循环神经网络中的循环单元可以随意控制输入输出的数量,具有很大的灵活性。循环神经网络通过不断对自身网络结构进行复制来构造不同的循环神经网络模型。其结构如下:这样可以看起来和残差还有点类似,但是实际上它展开之后

2020-05-19 11:11:22 832

原创 卡尔曼滤波器python略解

因为想做目标追踪,所以还是用最经典卡尔曼滤波和匈牙利算法进行预测估计卡尔曼滤波大名鼎鼎的卡尔曼滤波实际就是利用上一时刻目标的位置和这一时刻由传感器或者其他方法测量得到的目标位置估计实际目标的算法。当前时刻测量得到的目标位置因为存在误差或者噪声也不能直接使用,而预测量由于当事人不是神棍不能预言所以也不能直接用,那怎么样才能最有效地利用这两个有偏差的结果得到最接近实际的结果呢?因此不同的滤波算法...

2020-04-12 21:44:49 413

翻译 Torch目标追踪(检测部分--模型构造)

上一篇简述了配置文件和基本单元构造函数,这一篇是构筑模型主要是定义前向传播Darknet上一篇的基本单元构造函数中,路由层和检测层曾经出现过EmptyLayer和DetectionLayer这些都在此篇解释Darknet差不多就是yolo的主体结构了class Darknet(nn.Module): def __init__(self, cfgfile): supe...

2020-04-07 17:23:43 333

转载 Torch目标追踪(检测部分--配置文件)

学习算法与模型最好的方法就是实现它,所以我挑选了Deep-sort常用的检测前端yolov3引用内容算法原理网站上相关内容很多就不赘述了配置文件在大型网络中,如果直接编写模型更改的时候会比较麻烦。因此很多github上的开源项目都会有一个配置文件,在其中简单修改一些参数就能更改整个模型的架构。卷积层+类似残差+上采样+路由层残差结构:将其之前的第三个网络的输出与其之前的第一个网络输出...

2020-04-07 07:58:13 212

原创 OpenCV(三)

对象分割和检测先对图像进行预处理:噪声消除光消除二值化再对图像进行分割:连接组件寻找轮廓噪声消除以及光消除这里需要两张图片,一张是包括物体和背景的,另外一张只有背景。#include<opencv2/opencv.hpp>#include<opencv2/highgui.hpp>using namespace cv;Mat remove...

2020-03-10 23:27:35 149

原创 pytorch 多目标追踪

跑开源代码https://github.com/ZQPei/deep_sort_pytorch效果还不错,但是由于其可迁移性太好,对于一些局限性比较高的问题反而效果没有那么好。而且需要GPU加速,对设备要求不低,迁移到移动端比较困难,因此打算过几天试试滤波追踪...

2020-03-10 23:26:55 603

原创 PHD多目标追踪

文献查阅笔记PHD(概率假设密度)滤波多目标跟踪算法是Mahlcr.R在研究多目标贝叶斯滤波问题提出的,它突破了传统的数据关联方法,降低了计算量,并且估计精度高,易于实现。包括以下几个内容:PHD是什么PHD滤波目标追踪算法分类PHD是什么Mahler在研究多目标贝叶斯滤波时利用一阶统计矩近似方法,对多目标后验概率密度函数求集合积分运算得到多目标强度即PHD。PHD是多目标泊松随...

2020-03-03 16:38:11 6356

原创 OpenCV(二)

OpenCV图形用户界面滑块与鼠标事件鼠标回调事件:EVENT_MOUSEMOVE 移动鼠标EVENT_LBUTTONDOWN 单击左键EVENT_RBUTTONDOWN 单击右键EVENT_MBUTTONDOWN 单击中键EVENT_LBUTTONUP 释放左键EVENT_RBUTTONUP 释放右键EVENT_MBUTTONUP 释放中键EVENT_LBUTTONDBLC...

2020-03-02 18:20:36 98

原创 OpenCV(一)

OpenCV基础数据类型Point二维点和三维点,整型点和浮点数点cv::Point2i p; // 2代表二维,i代表整型cv::Poin3f p; // 3代表三维,f代表浮点数cv::Point2i p(x, y); // 构造点cv::Point3i p(x, y, z); cv::Point3f p1(p2); // 复制P2到P1p.x, p.y // 访问二维点...

2020-03-02 15:46:10 390

原创 PyTorch目标检测(九)

训练部分

2020-02-24 07:49:33 253

原创 PyTorch目标检测(八)

上接(七) 在PyTorch上移植 tinyssd做刚性物体的目标检测自定义损失函数# 损失函数cls_loss = nn.CrossEntropyLoss(weight=None, reduction='mean') 类别损失采取交叉熵均值bbox_loss = nn.L1Loss(reduction='mean') 锚框偏移采取角点偏移量绝对值的均值def calc_loss(cl...

2020-02-22 18:49:16 172

原创 PyTorch目标检测(七)

今天打算把之前沐神的《动手学深度学习》中的tinySSD模型转移到Pytorch上来做简单的目标识别。import torchimport torchvisionfrom torch import nnimport numpy as np import mathsizes = [[0.2, 0.272], [0.37, 0.447], [0.54, 0.619], [0.71, 0....

2020-02-20 22:50:59 214

原创 小白的树莓派Tensorflow opencv 学习笔记(十)

目标检测计算机视觉中有很多目标检测和识别的技术,这里主要学习三种:梯度直方图图像金字塔滑动窗口HOG描述符HOG与之前提到的SURF,SIFT,ORB属于同一类型的描述符。HOG是基于梯度而非颜色来计算直方图。但是这种检测存在着尺度和位置问题,梯度特征的对比如果采用简单的暴力匹配,准确率很低,而且一张图片可以分为无数个区域,如何选取合适的区域也是个问题。图像金字塔和滑动窗口就是为此...

2020-02-17 23:51:01 295

原创 小白的树莓派Tensorflow opencv 学习笔记(九)

K-最近邻匹配所有机器学习算法中,KNN是最简单。它和之前ORB中的match的区别在于match返回最佳匹配,而KNN函数返回K个匹配,之后可以再用knnMatch进一步处理。代码部分:import numpy as np import cv2import matplotlib.pyplot as pltimg1 = cv2.imread('football.jpg', cv2.I...

2020-02-17 16:07:43 175

原创 小白的树莓派Tensorflow opencv 学习笔记(八)

之前想用TensorFlow + OpenCV做目标检测,但是最后因为TF2.0资料属实不多所以夭折了,不过OpenCV还是非常值得学习的。特征检测算法OpenCV中比较常用的特征检测和提取算法:Harris:用于角点检测SIFT:用于斑点检测SERF:用于斑点检测FAST:用于角点检测BRIEF:用于斑点检测ORB:带方向的FAST算法和具有旋转不变性的BRIEF算法(暴力匹配...

2020-02-16 21:18:18 340

原创 PyTorch 目标检测(六)

SSD 网络框架SSD在VGGNet的基础上又增加了多个卷积层,并利用多个特征图进行边框提取得到深层网络,之后利用人为设置的PriorBox与标签内的边框进行匹配,根据重叠程度筛选出正负样本,得到分类与偏移的真值然后与预测值一同计算损失.SSD的VGG16输入经过SSD预处理后大小固定为300300,之后进入VGG16基础网络,SSD保留了VGG的前13层卷积网络,之后添加了Conv6和C...

2020-02-15 15:25:46 353

原创 PyTorch 目标检测(五)

SSD实战1. 先从跑别人的代码开始https://github.com/amdegroot/ssd.pytorch下载代码,markdown文件有教程,但是代码有一些问题问题汇总用的是VOC2012训练集删除voc0712.py __init__函数中imageset参数里07的信息运行Train.pyRuntimeError: CUDA out of memory. Tried...

2020-02-14 21:27:31 420

原创 PyTorch 目标检测(四)

ResNetResNet(Residual Network,残差网络)解决了深度网络难以训练的问题,它的思想在于让卷积网络学习残差映射而非直接映射。

2020-02-13 21:31:43 549

原创 PyTorch目标检测(三)

VGGNetVGGNet共有六个版本,最常用的VGG16,其采用五组卷积,三个全连接层,最后采用softmax进行分类。VGG利用池化层达到将特征图尺寸缩小一倍,通道数增加一倍的目的。VGG采用33的卷积核,但是两个卷积层叠加可以使感受野达到55,同时两层卷积拥有两个激活函数也增加了非线性度。PyTorch VGG16经典网络架构from torch import nnimport t...

2020-02-12 23:29:50 229

原创 PyTorch 目标检测(二)

网络骨架 backbone物体检测算法流程:利用卷积神经网络处理输入图像生成特征图利用算法完成区域生成和损失计算卷积层提取图像特征torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, dilation, groups, bias)in_channels:输入特征图的通道数,一般处理...

2020-02-12 18:27:46 445

原创 Pytorch目标检测(一)

实际操作中自己创建的训练集比较小所以重新训练一个模型比较复杂,因此可以利用别人在一些大型数据集上训练好的预训练模型,然后在自己的数据集上训练。预加载模型利用torchvision.models自带的预训练模型,设置参数pretrained=True加载训练过的本地模型可以利用,torch.load(path)以及model.load_state_dict()加载例:import to...

2020-02-11 21:22:43 1270

原创 物体检测

预测框,真实框贴合评价指标 IoU定义: 交集面积除以并集面积通常设置阈值为0.5,IoU大于则认为预测框是有效预测python 代码实现def IoU(boxA, boxB): #计算重合框顶点坐标,图片左上角为坐标原点 left_max = max(boxA[0], boxB[0]) right_min = min(boxA[2], boxB[2]) t...

2020-02-11 17:58:39 219

原创 小白的树莓派Tensorflow2.0 opencv 学习笔记(七)

在收集完图片后,要想构建自己的训练集最好现想要自己要怎么训练模型,训练哪种模型。这就必须对TensorFlow的API有所了解。TensorFlow提供了Keras模块可以轻松地用几行代码调用已经封装好的模型,我们要做的只是把自己的数据塞进去,并且添加一些断点和保存权重的方法即可。找了很多不同模型对比的文章,最后还是决定从YoloV3下手,虽然它训练可能有点困难,但是作为真正意义上第一个上手的...

2020-02-06 17:26:37 553

原创 小白的树莓派Tensorflow2.0 opencv 学习笔记(六)

构建自己的训练集

2020-02-05 21:19:24 175

原创 小白的树莓派Tensorflow2.0 opencv 学习笔记(五)

神经网络目标检测神经网络的类型全连接层神经网络前向计算简单、梯度求导简单,但参数量大,训练困难卷积神经网络利用局部相关性和权值共享思想,在计算机视觉方面表现出色,但不擅长自然语言循环神经网络广泛应用于自然语言和长序列问题,但训练不稳定,难以并行化注意力神经网络最初在图像分类任务上提出,后来也应用于NLP等领域图神经网络处理空间拓扑结构为了实现树莓派的图像识别,暂时只关注...

2020-02-05 13:21:39 547

原创 小白的树莓派Tensorflow2.0 opencv 学习笔记(四)

神经网络预备知识激活函数:Sigmoid=11+e−xSigmoid = \frac{1}{1+ {\rm e}^{-x}}Sigmoid=1+e−x1​将 x∈R 压缩到 (0,1)之间 但过大过小时梯度近于0,并且长时间得不到更新(梯度弥散现象)tf.nn.sigmoidReLU=max(0,x)ReLU = max(0,x)ReLU=max(0,x)单边抑制 tf.nn.rel...

2020-02-05 11:36:12 229

原创 小白的树莓派Tensorflow2.0 opencv 学习笔记(三)

正式进入TensorFlow2.0模块TensorFlow2.0 基础部分TensorFlow2.0 数值类型TensorFlow2.0 的张量类型有:标量(单个实数) 如1、2、3 等 维度数(秩)为0,shape为[]向量(n个实数的有序集合)通过中括号包裹 如[1,2] 维度数为1,长度不定,shape为[n]矩阵 n行m列实数的有序集合,如[[1,2],[3,4]],维度...

2020-02-04 20:53:01 673

原创 小白的树莓派Tensorflow opencv 学习笔记(二)

想要从零开始训练一个物体检测器并且确保正确性需要非常多的样本,如果不想利用别人封装好的样本就需要自己制作正负样本拍摄图片圈定区域,这个过程有点过于枯燥乏味,因此希望借助OpenCV进行简单的图形变换在短时间内得到成倍的训练样本。以下是几种简单的变换方法和示例代码

2020-02-03 21:45:34 934

原创 小白的树莓派Tensorflow opencv 学习笔记(一)

小白的树莓派Tensorflow opencv 学习笔记(一)树莓派刷机部分1.参考网站:link(4B类似)安装opencv参考网站:link安装时出错:缺少.i文件 缺少.hpp文件 需要手动补齐并修改相应出错文件的引用信息安装tensorflow这个真的头大,更换了树莓派pip源结果pip3 install还是从原网站下载,经常掉线。下载.whl文件离线安装发现还是需要先解决...

2020-02-03 15:22:46 562 3

空空如也

空空如也

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

TA关注的人

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