深度学习
文章平均质量分 74
昌山小屋
917
展开
-
【环境配置】Ubuntu16.04上Anaconda简单部署OpenPCD
OpenPCD在Ubuntu16.04上的部署还是很友好的,不怎么需要折腾,这里简单记录一下。我的环境Ubuntu 16.04CUDA 10.2RTX 2080 GPU创建并激活虚拟环境使用conda创建python3.6的虚拟环境,环境名字自取,我就叫openpcd好了。conda create -n openpcd python=3.6 anaconda激活虚拟环境,后续的操作就都是在虚拟环境中进行了conda activate openpcd安装依赖...原创 2021-08-19 00:27:52 · 500 阅读 · 0 评论 -
【模型加速】PointPillars模型TensorRT加速实验(3)
在上一篇PointPillars模型加速实验(2)中,我们成功将PFN导出dynamic shape onnx,接下来要将MFN也导出dynamic shape onnx。MFN导出Dynamic Shape ONNX 虽然叫做MFN(Middle Feature Extractor Network),具体到PointPillars中,实际上主要是一个scatter操作。借助PointPillars的源代码简单回顾一下MFN的内容。 class P...原创 2021-07-25 23:01:58 · 1469 阅读 · 7 评论 -
【模型加速】PointPillars模型TensorRT加速实验(2)
PFN导出Dynamic Shape ONNX 在上一篇文章中讲到通过make_input函数,已经准备好了模型转化所需要的输入数据。现在先考虑将PFN(Pillar Feature Network)结构转换为onnx。因为不同点云帧的点云数量是变化的,非空Pillar的数量自然也是不同的,在考虑将PFN导出onnx模型时需要采用dynamic shape。什么意思呢?就是在将PyTorch模型转成onnx模型的时候,根据输入数据的尺寸是否固定,将onnx分成static shape和d...原创 2021-07-25 23:00:06 · 1608 阅读 · 2 评论 -
【模型加速】PointPillars模型TensorRT加速实验(1)
在阅读这个系列文章之前假定你已经对PointPillars算法本身有一定的了解,并且有一个可用的Pytorch模型。这里的加速实验主要还是遵循"Pytorch-->ONNX-->TensorRT引擎-->推理"这一思路,暂不涉及使用TensorRT API手动搭建网络。 实验环境系统,Ubuntu16.04 内核,Linux version 4.15.0-112-generic CUDA,10.2 Python, 3.6 Pytorch,1.4.0 ...原创 2021-07-25 22:56:46 · 3452 阅读 · 4 评论 -
【Jetson AGX Xavier】安装Pytorch的若干方法(ing)
nvidia@nvidia-desktop:~$ jetson_release - NVIDIA Jetson AGX Xavier [16GB] * Jetpack 4.5.1 [L4T 32.5.1] * NV Power Mode: MODE_30W_ALL - Type: 3 * jetson_stats.service: active - Libraries: * CUDA: 10.2.89 * cuDNN: 8.0.0.180 * TensorRT: .原创 2021-07-23 10:57:38 · 939 阅读 · 0 评论 -
【玩转PointPillars】PillarScatter操作
ing....原创 2021-07-18 08:59:51 · 3018 阅读 · 2 评论 -
【玩转PointPillars】点云特征提取结构PFN(PillarFeatureNet)
class PFNLayer(nn.Module): def __init__(self, in_channels, out_channels, use_norm=True, last_layer=False): """ Pillar Feature Net Layer. The Pillar Fea...原创 2021-07-17 21:00:04 · 4291 阅读 · 7 评论 -
【玩转PointPillars】Ubuntu16.04虚拟环境中安装onnx-tensorrt
之所以安装onnx-tensorrt,是因为PointPillars用Pytorch训练的模型在转onnx后,我们借助onnx-tensorrt使用tensorrt进行模型推理,以达到模型加速的目的。 凡是不申明自己环境的软件部署都是耍流氓,我在尝试了多个不同的软件环境(包括操作系统,Python,CUDA等)后,在以下环境中成功了。ubuntu 18.04 cuda 10.2 python 3.6 TensorRT 7.1.3.4 protobuf 3.14.0 cmake...原创 2021-07-07 15:52:55 · 1113 阅读 · 0 评论 -
【玩转PointPillars】Ubuntu18.04上部署nutonomy/second.pytorch
【我的环境】Ubuntu18.04cuda10.2GeForce GTX 1650原创 2021-06-19 08:40:54 · 2677 阅读 · 19 评论 -
【玩转PointPillars】Ubuntu18.04上部署second
(base) ➜ ~ conda create -n second python=3.6(base) ➜ ~ conda activate second原创 2021-06-17 17:07:45 · 1131 阅读 · 1 评论 -
【玩转yolov5】请看代码之参数管理及学习率调整
yolov5中的优化器(optimizer)将模型可学习的参数分成了三个组,分别为pg0:BN参数,pg1:一般权重(weight)参数,pg2:偏置(biase)参数,通过param_group来管理3组参数。param_group的意义在于可以针对不同的参数组量身定制学习率(lr)、衰减(weight_decay)、动量(moment)等超参数。例如在某一模型中,希望特征提取部分的权值参数的学习率小一点,学习更新慢一点,这时可以把特征提取的参数设置为一组参数,而对于后面全连接分类层,希望其学习率...原创 2021-01-25 00:15:50 · 11193 阅读 · 3 评论 -
【玩转yolov5】请看代码之augment_hsv
augment_hsv作为yolov5的默认数据增量方式之一,试图在hsv颜色空间上对图片进行变换,达到数据增量的效果。那么什么是hsv颜色空间呢?在日常生活中我们描述一件物品的颜色的时候通常会说"它是什么颜色(H)?","颜色深不深(S)?","亮不亮(V)?",这其实就是在表述hsv颜色空间,可见他相比rgb颜色空间更符合人们对颜色的认知。对于hsv颜色空间网上有大量的资料,非本方的重点,这里只是就yolov5的代码和默认配置来直观地了解一下augment_hsv的增量效果。import ...原创 2021-01-23 16:58:14 · 5481 阅读 · 2 评论 -
【玩转yolov5】来自茱丽叶的letterbox
数据集中的图片一般为长方形,当模型输入为正方形时直接将长方形图片resize为正方形会使得图片失真,采用letterbox(啥意思?邮箱盒子!)通过填充边界(通常是灰色填充)的方式来保持原始图片的长宽比例,同时又满足模型正方形输入的需要。这里以我做训练时使用的一张bdd100k中的图片为例直观感受一下即可。import cv2 import matplotlib as pltimport numpy as npimg_size = 640 #yolov5默认输入图片尺寸640x640...原创 2021-01-23 15:03:24 · 7751 阅读 · 8 评论 -
TextBoxes++在 ubuntu16.04上的编译及训练
论文地址:https://arxiv.org/abs/1801.02765,发表于 AAAI2018 Github地址:https://github.com/MhLiao/TextBoxes_plusplus.git 对于阅读这篇文章的读者来说,对于 TextBoxes++论文本身应该已经不陌生。它是 TextBoxes 的一个扩展,TextBoxes 只可以检测水平方...原创 2019-11-30 00:58:39 · 1195 阅读 · 6 评论 -
简单实验uwsgi+flask 部署caffe模型
【背景】 模型训练好了之后怎么部署在线上,让大家直接通过网络就能使用?网络上给出的一般方案就是 Flask + Nginx + uWSGI,当然这里的 nginx 可以替换成类似 Apache ,Flask 也可以考虑用 Django,但就简单、高效而言还是首先 Flask + Nginx + uWSGI。Nginx 在这一方案中主要是起反向代理服务器的作用,我暂且只是做一个小实验,所以...原创 2019-11-05 00:03:48 · 723 阅读 · 0 评论 -
The NVIDIA driver on your system is too old (found version 10000)可能的原因
在适配pytorch版的faster-rcnn(https://github.com/jwyang/faster-rcnn.pytorch.git)项目时遇到了这个问题,项目代码是用的pytorch-1.0分支。Traceback (most recent call last): File "train_net.py", line 226, in <module>...原创 2019-10-18 00:11:53 · 7572 阅读 · 3 评论 -
【论文解读】ZFNet中的特征可视化
这篇文章通过对特征图进行可视化,使得神经网络这个黑盒不再那么黑。ZFNet的网络结构是基于AlexNet改的,如下图所示,比较清晰明了。从上图注意到,ZFNet含5个卷积层Layer1~Layer5以及2个fc层Layer6、Layer7,特征可视化是针对的Layer1~Layer5。我们知道一个标准的卷积层大概包含三个步骤:Conv(卷积)->Activation(激活)&...原创 2019-02-28 15:49:00 · 1020 阅读 · 0 评论 -
将jpg文件转换成bgr二进制文件
为毛我要干这件事,把一张jpg图片转成bgr(注意顺序是bgr)二进制文件?最近在弄华为Hi3519AV100开发板上的一些深度学习的样例程序,没想到它的输入文件不是普通的jpg,而是bgr格式的二进制文件,所以不是我闲得蛋疼。还别说,这样确实是大大节省了空间。我一张3.8M的测试文件(test.jpg),转成二进制后为276K。源代码:#include <unis...原创 2018-12-10 20:44:32 · 6891 阅读 · 19 评论 -
MaskRCNN-Benchmark框架训练自己的数据集
Facebook AI Research 开源了 Faster R-CNN 和 Mask R-CNN 的 PyTorch 1.0 实现基准:MaskRCNN-Benchmark。相比 Detectron 和 mmdetection,MaskRCNN-Benchmark 的性能相当,并拥有更快的训练速度和更低的 GPU 内存占用,众多亮点如下。PyTorch 1.0:相当或...原创 2018-11-10 13:40:11 · 28156 阅读 · 116 评论 -
【论文解读】How far are we from solving the 2D & 3D Face Alignment problem?
【参考】https://github.com/facebookresearch/supervision-by-registrationhttps://www.adrianbulat.com/face-alignment/1.介绍 这一节主要概述这篇论文的几点贡献: 构建了一个很强的2D人脸关键点检测baseline,主是结合了已有的最优的关键点检测的网络结构,并且在一个...原创 2019-04-26 09:36:07 · 2903 阅读 · 2 评论 -
MaskRCNN-Benchmark框架Assertion 't ** 0 && t ** n_classes' failed可能的原因
Mask R-CNN Benchmark是一个完全由PyTorch 1.0写成,快速、模块化的Faster R-CNN和Mask R-CNN组件。该项目旨在让用户更容易地创建一种模块,实现对图片中物品的识别与分割。具有以下亮点:PyTorch 1.0:相当或者超越 Detectron 准确率的 RPN、Faster R-CNN、Mask R-CNN 实现; 非常快:训练速度是...原创 2018-11-07 14:14:30 · 3926 阅读 · 3 评论 -
由6,14以及68点人脸关键点计算头部姿态
前言 关于头部姿态估计理论部分的内容,网络上包括我所列的参考文献中都有大量概述,我不再重复。这里直入主题,如何通过图像中2D人脸关键点计算出头部姿态角,具体就是计算出俯仰角(pitch),偏航角(yaw)和翻滚角(roll)。 计算头部姿态需要的若干数据:1、首先,你...原创 2019-03-29 16:36:18 · 17538 阅读 · 30 评论 -
【论文解读】SSD vs YOLOv2
引言 对于一阶段的网络模型来说SSD和YOLOv2无疑占据着极为重要的位置,在实际工作上常常会拿这两种模型进行对比,在这里干脆梳理一下其差异,以加深对两者的认识。多尺度 SSD采用多尺度特征图用于目标检测,具体说来就是选用了6个特征图,分别是:conv4_3,conv7,conv8_2,conv9_2,conv10_2和conv11_2的输出来进行检测。通过结合不同分辨率的...原创 2019-03-31 23:06:37 · 2384 阅读 · 0 评论 -
notebook上使用py-caffe训练调试模型
最近在使用caffe的prototxt设计一个新网络,写了一些骚操作,自己也不是很确定计算过程是否符合预期,所以想在训练若干步之后抽出我设计的那几层,观察一下输出值。直接在代码或日志层来检查指定层的输出值当然也是可以的,但是不直观,也不灵活,于是想到了py-caffe结合notebook的方式。查阅了一下发现还真可以直接在notebook调用py-caffe的接口跑训练,操作也异常简单,嘿...原创 2019-06-27 10:42:10 · 332 阅读 · 0 评论 -
【论文解读】Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks
这篇论文有以下4个方面的贡献,这里我主要是分析前两点贡献,这也是让我感觉最新颖的地方:对基于CNN的人脸关键点检测方法中用到的各类损失函数做了系统分析,比较了L1、L2以及smooth L1损失函数,发现L1和smooth L1比L2性能更优; 提出了一个新的损失函数Wing loss,旨在提高深度网络训练过程中应对小范围和中等范围内的误差的能力; 提出了基于姿态的(pose-ba...原创 2019-05-05 18:34:21 · 3171 阅读 · 0 评论 -
caffe增加新分支后固定参数进行finetuning
caffe训练时正常的finetuning只需要在调用训练脚本时通过--weights选项指定好caffemodel即可,这种方式在finetuning的过程中会更新所有参数。我现在有个需求,要在已训练好的网络结构中增加一个新的分支,而finetuning时固定已经训练好的参数,只单独训练这个新分支的参数,怎么做? 方式一:首先,你需要这个新网络的初始caffemodel,这个...原创 2019-04-24 19:27:48 · 581 阅读 · 0 评论 -
基于DetNet-FPN的视频实时检测demo(pytorch版)
最近要使用faster-rcnn,DetNet-FPN以及Light-Head三种目标检测方案训练自己的数据集,并做一个比较。在GitHub上搜罗了一番,发现下面三个开源项目一脉相承,正合我意。期中DetNet_pytorch和pytorch-lighthead我认为都是基于faster-rcnn.pytorch这个项目改的,作者貌似是佐治亚理工的Ph.D.,确实是高手中的高高手,...原创 2018-10-09 14:18:03 · 3730 阅读 · 20 评论 -
undefined symbol: _Py_ZeroStruct错误一种可能的原因
最近在试用一个pytorch实现的Light-Head模型(https://github.com/chengsq/pytorch-lighthead),编译完成后运行模型开始训练,遇到以下错误:Traceback (most recent call last): File "train_net.py", line 28, in <module> from roi_...原创 2018-09-29 17:59:55 · 11768 阅读 · 4 评论 -
darknet源码解读-im2col_cpu
关于im2col_cpu网上已经有不少优秀的解读博文,我不再复述,可以参考以下几篇文章:https://blog.csdn.net/mrhiuser/article/details/52672824https://blog.csdn.net/dwyane12138/article/details/78449898我这里只是将这段代码单独摘出来做了一个小测试,给定一个输入,看看输出究...原创 2018-07-28 21:41:06 · 2265 阅读 · 4 评论 -
ImportError: libGL.so.1: cannot open shared object file
在CentOS7.4上安装了anaconda3,在跑深度学习模型的时候遇到下面这个错误:from PyQt5 import QtCore, QtGui, QtWidgetsImportError: libGL.so.1: cannot open shared object file: No such file or directory尝试了多种方案后,最终通过以下方式解决:yum inst...原创 2018-06-30 16:32:05 · 17781 阅读 · 12 评论 -
AttributeError: module 'pandas' has no attribute 'core'
环境:CentOS Linux release 7.4.1708 (Core)Ananconda3运行python终端,在导入tensorflow时报出错:AttributeError: module 'pandas' has no attribute 'core'但是运行ipython终端,导入tensorflow时没有报错。试了几种办法,没有解决,最终卸载pandas,重新安装解决。pip u...原创 2018-06-26 10:32:59 · 15595 阅读 · 1 评论 -
cv2.imread不能正常读取gif格式图片
Python中cv2模块的imread函数呆以正常读取'jpg','png'格式的图片,但是不能处理'gif'图片。可以改用imageio模块来处理。import cv2import imageiodef readImg(im_fn): im = cv2.imread(im_fn) if im is None : print('{} cv2.imrea...原创 2018-04-20 13:29:58 · 12978 阅读 · 0 评论 -
【论文解读】R-RPN
题目:Arbitrary-Oriented Scene Text Detection via Rotation Proposals 原文:https://arxiv.org/pdf/1703.01086.pdf在Faster-RCNN一文中作者提出了候选区域网络(RPN)的概念,使用RPN来生成候选区域。RPN直接作用于特征图上,而不是像selective searc...原创 2018-04-05 16:51:01 · 8858 阅读 · 3 评论 -
tensorflow中Python-tk的安装问题
tkinter是一个python的接口类库,用来调用tcl/tk程序,所以一般在操作系统层面会有相应的类库,而不仅仅是依靠pip3来安装相应的python类库。1、下载tcl/tk的源码包,编译安装。tcl、tk源码下载:http://www.tcl.tk/software/tcltk/download.html默认安装在/usr/local/lib目录下,如果找不到库文件,可以将/usr...原创 2018-04-01 22:49:23 · 1675 阅读 · 0 评论 -
【论文笔记】VGG
介绍 在这篇文章中,作者对传统的卷积网络在“深度”方面进行了拓展。卷积网络配置结构 训练阶段,我们的卷积网络的输入是固定大小为224 x 224的RGB图像。配置 表1是本论文中所评测的卷积网络的配置,每一列表示一种网络结构。所列的这些网络唯一的不同在于他们的深度。卷积层的宽度都相当地窄,从第一层的64开始,每过一个最大池化层(max-polling la...原创 2018-03-28 16:12:15 · 746 阅读 · 6 评论 -
基于tf-slim框架的DenseNet实现
TF-slim是tensorflow用于定义、训练、评估复杂模型的一个新的轻量级的高级API(tensorflow.contrib.slim)。最近正好研究了一下DenseNet,这里基于tf-slim框架并结合论文实现一个DenseNet网络,并用来进行训练。tf-slim框架代码可见github:https://github.com/tensorflow/models/tree/mas...原创 2018-03-23 10:01:04 · 3159 阅读 · 4 评论 -
【论文解读】Faster R-CNN
摘要 摘要里面印象深刻的就是那句“The RPN is trained end-to-end to generate high-quality region proposals,which are used by Fast-RCNN for detection”,从这句话可知Faster-RCNN目标检测的过程实际上是分成了两步走策略,由RPN生成候选区域,再交给Fast-RCNN对候选...原创 2018-03-25 19:19:40 · 817 阅读 · 0 评论 -
【论文解读】SPPnet
论文:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition介绍基于卷积的深度神经网络显著提高了图像分类的准确率,但在训练和测试的过程中也存在一个技术上的争议点:当前普遍流行的卷积神经网络(CNNs)要求输入为固定尺寸的图像,例如:224x224、96x96等,因而限制了图像的比例和...原创 2018-03-24 23:20:04 · 534 阅读 · 0 评论 -
【论文笔记】Network In Network
介绍CNN中用到的卷积滤波器对于潜在的数据块来说是一个通用的线性模型(GLM),我们认为GLM抽象的层次比较低。用一个更强大的非线性函数逼近器作为“微型网络”取代GLM能提高模型的抽象能力。在NiN中我们的微型网络选用的是一个多层感知机。从网络结构的角度来看我们相当于增加了一个称之为mlpconv的网络层,它和线性的卷积层类似,都是将局部感受野映射为一个特征向量。Mlpconv使用一个...原创 2018-03-12 19:23:58 · 394 阅读 · 0 评论 -
【论文笔记】Fast R-CNN
介绍 深度卷积神经网络(ConvNets)显著提高了图像分类和目标检测任务的准确率。和图像分类相比目标检测又更具有挑战性,这主要是两方面的原因。首先,大量候选目标的位置数据需要被处理。其次,这些候选目标提供的位置数据比较粗糙,需要进一步精调。对这些问题的解决方案通常需要权衡速度、准确率和简便性。在这篇论文中我们提出一个单阶段的训练算法,能将候选区域的分类和定位进行结合。R-CNN和S...原创 2018-03-20 15:02:00 · 551 阅读 · 0 评论