自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 yolov5的TensorRT部署--warpaffine_cuda核函数

从0到1实现基于tensorrt的yolo部署教程 ---仿射变换cuda核函数

2022-07-12 09:43:59 396

原创 yolov5的TensorRT部署--动态batch

从0到1实现基于tensorrt的yolo部署教程 http://t.csdn.cn/HUn4T,请点击该链接,即可看到全文本文对于上面的案例,从多batc的角度详细讲解对于充分多batch,能大大提升模型的检测速度,例如多个视频流进行目标检测,我们可以获取多个视频流中的图片,都多张图片一起送往一个网络里进行推理。在生成TensorRT模型的代码,我们应该加入以下代码2. 在模型推理时的代码在推理的时,如何将设置显存和内存,并且将输入的数据与指定的内存和显卡关联在一起,这是多batch的难点batc

2022-06-25 21:46:40 1322 1

原创 openvino的入门--c++部署的图像分类为例

OpenVINO是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,本文以图像分类的案例手把手叫你如何使用OPENVINO

2022-06-09 20:22:38 1439 1

原创 laneatt代码复现和用自己采集的视频来测试

代码链接:https://github.com/lucastabelini/LaneATT1. 环境配置#代码下载python main.py test --exp_name my_r18_culane --view all# 新建虚拟环境conda create -n laneatt python=3.8 -y#激活虚拟环境conda activate laneatt# 安装torch和torchvisionconda install pytorch==1.6 torchvision

2022-01-09 22:43:08 3774 28

原创 Basler 工业相机与Python开发

1.Pylon Viewer 设置为什么要安装Pylon Viewer ?为了对basler相机进行参数设置,例如曝光时间调节、ip设置官网2.基于python的basler相机获取图像2.1pylon安装并导入1).下载pypylon(下载地址)2).在下载好的文件夹中,打开终端并source activate到要安装的虚拟环境里,使用pip install ***。注:如果 1.7.2版本安装后,不能使用,尝试安装低版本的(例如1.6.0)导入代码from pypylon impor

2021-05-19 10:11:17 3297

转载 OpenCV一个窗口同时显示多张图片 (C++) ---转载

在Matlab中做图像处理可以很方便地在一个窗口中同时显示好几张图片, 但可惜的是OpenCV中并未提供此功能, 但好在C++拥有充分的灵活性, 可以自己写函数弥补这方面的不足.

2022-12-30 17:19:37 184

原创 cv::imshow在多线程中的可视化错误

我也尝试在waitKey()之间移动,因为据说OpenCV只允许在主线程中使用waitKey()。由于项目中对该子线程的可视化没有要求,所以直接删掉去掉可视化代码。但是,如果不去掉可视化代码,应该如何修改,希望有大佬能解答.—(或者将需要可视化的结果传到新的线程来可视化。问题:如果我删除cv2.imshow()代码中的所有行都按预期运行,两个线程都能正常运行。在多线程中,子线程里面使用opencv中的imshow,会出现可视化报错的问题,可能出现的问题有:出现卡住、显示空白、或者报以下错误。

2022-12-24 22:58:56 307

原创 错误总结2022.12.9

原因:pytorch版本太低了。原本我的pytorch为1.7.0,会报以上错误。更新到pytorch1.9.0就没问题了。解决方法:方法一:torch.onnx.export中的opset_version设置低一点,可以试一下选择设置为11;方法二:更新pytorch版本。(由于我在模型量化,必须要求opset_version=13,只能用这种方法。我将pytorch的版本更新到1.9.0,torchvision的版本更新到0.10.0,这样就没报错了)

2022-12-09 14:26:18 829

原创 转换成onnx的注意事项

转换onnx的注意事项1)对于任意用到shape、size返回数的时候,避免直接使用tensor.size()的返回值,而是加上int转换,例如tensor.view(-1,int(tensor.size(1)));2)对于nn.upsample或者nn,functional.interpolate函数,使用scale_factor指定倍数,而不是使用size参数指定大小(对于无法使用倍数的,可以使用size来指定大小);

2022-12-08 15:14:57 222

原创 RESA车道线检测算法---计算量和参数量的计算

RESA车道线检测算法

2022-12-07 23:36:36 345

原创 TensorRT-插件初始化

遇到一个问题,就是在使用自定义插件的时候,先通过onnx生成trt模型;然后,加载trt模型,能正常使用。注释:如果先通过onnx生成trt模型,这一步已经做了插件注册。因此,在后面的加载模型,就能正常使用。因为在插件注册表中找不到相应的IPluginCreator,所以需要在加载模型的时候,进行插件注册。1) 添加#include "NvInferPlugin.h"的头文件。2)在加载模型的代码处,进行插件注册。

2022-11-26 10:17:42 234

原创 TensorRT-Plugin编写

实现原生不支持的算子 是 Plugin 最基础的能力,当然它还可以做更多事情,比如手动融合 TensorRT 没有自动融合的层 或 块。总结来说,TensorRT Plugin 的功能主要有以下几点:(1) 实现 TensorRT 原生不支持的算子或 块;(2) 手动融合 TensorRT 没有自动融合的算子 或块;(3) 替换你认为性能不够的算子或块;

2022-11-25 21:38:59 628

原创 错误记录2022.11.22

错误记录

2022-11-22 21:17:01 326

转载 深度学习过程反向传播有关sigmoid的求导

如果在输出层得不到期望的输出值,则取输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。在深度学习的反向传播过程中,我们需要对激活函数进行求偏导,这里写一点如果激活函数是sigmoid函数的时候,其求导过程。

2022-11-14 09:17:39 68 1

转载 重新学习梯度下降法

梯度下降法是通过观察局部决定如何调整的算法。如果函数具有多个极值,则可能陷入局部极值,此时初始点的选择直接影响收敛结果

2022-11-08 16:54:43 47

转载 常见box loss汇总

传统回归loss都是回归表征一个矩形框的四个变量,但。实际上,,简单的分开计算每个变量的回归loss无法反映这种相关性,而将预测框与GT框之间的iou引入回归loss则很好的解决了这一问题。

2022-11-07 20:20:57 450 1

原创 ssh连接服务器,实现任务挂载到后台中,避免断网导致的任务中断

通过ssh连接服务器时,可能因为网络不佳、断网、客户端电脑休眠等原因,导致执行的任务中断,在模型训练这种长时间的任务,给人的体验十分差劲。因此,如何实现挂载到后台中,避免断网导致的任务中断尤为重要,可采用screen。

2022-11-06 12:33:45 823

原创 window电脑通过vscode的ssh访问linux服务器-详细部署教程

vscode使用ssh远程连接

2022-11-02 17:09:37 813

原创 通过onnx.helper构建计算图

通过onnx.helper来生成onnx模型

2022-10-30 20:59:11 297

原创 opencv 设置摄像头的分辨率无效

利用opencv读取视频流,当指定相机图像的尺寸,可能出现设置无效的情况

2022-10-22 21:07:26 1044

原创 图像处理-形态学处理

形态学处理

2022-10-21 19:58:37 1018

原创 opencv:图像轮廓检测-细胞轮廓

opencv图像轮廓检测

2022-10-21 10:13:13 944

原创 在cv2.findContours函数使用中,报ValueError: not enough values to unpack (expected 3, got 2)

在cv2.findContours函数使用中,报ValueError: not enough values to unpack (expected 3, got 2)

2022-10-20 10:37:55 776

原创 回溯算法总结

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯算法就是简单的回溯算法主要处理的问题:1.组合问题;2.切割问题;3.子集问题;4.排列问题;5.棋盘问题。

2022-09-10 17:07:13 111

原创 力扣-盛最多水的容器

力扣-盛最多水的容器

2022-08-12 14:18:06 1063

原创 力扣-最长回文子串

力扣-最长回文串

2022-08-11 21:54:00 1353

转载 python open读写文件

python open读写文件

2022-08-08 16:04:37 1424

原创 刷题笔记-查找

查找算法

2022-07-20 17:26:42 60

原创 Could NOT find CUDA (missing: CUDA_INCLUDE_DIRS) (found suitable exact version “11.4“)

Could NOT find CUDA (missing: CUDA_INCLUDE_DIRS) (found suitable exact version “11.4“)

2022-07-16 20:34:13 1529

转载 Ubuntu20.04系统安装anaconda时ros编译报错Unable to find either executable ‘empy‘ or Python module ‘em‘...

ros和anaconda发生冲突

2022-07-16 18:48:08 792

原创 刷题笔记-排序

常见的排序算法

2022-07-15 09:34:15 141

原创 刷题笔记-链表

链表

2022-07-12 15:33:12 98

原创 Linux下CMake学习笔记和在QT的应用

CMak可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件可以直接拿到其它平台上使用,只需要少量的修改,非常方便。camke的主要特点:安装cmake的命令:查看cmake版本号的命令:三、简单样例学习编程的最简单的案例—打印Hello World3.1 创建main.c的命令3.2 在main.c文件中,粘贴以下代码3.3 创建CMakeLists.txt(文件名是CMakeLists.tx

2022-07-08 15:43:30 731

原创 ros-launch启动文件的使用方法

launch,中文含义是启动,launch文件顾名思义就是启动文件,是一个 XML 格式的文件。对于一个复杂的ros程序,如果通过命令来一条条启动,至少需要十几条以上。针对这个问题,引出了launch文件,该文件可以理解成启动ros的脚本文件,将上诉多条启动ros的命令写在launch文件中,简化了许多步骤。launch标签规定了一片区域,所有的launch文件都由开头,由结尾,所有的描述标签都要写在之间2.2 标签在节点标签末尾的斜杠“/”是必须的,但很容易忘。你也可以这样显式地给出结束标签:in

2022-07-07 11:26:10 128

原创 scnn复现

源代码:https://github.com/Tramac/Fast-SCNN-pytorch参考Ultra-Fast-Lane-Detection 复现在 Tusimple 上训练的模型可以在这里下载。它的配置文件在exp0.3.修改config.py4.训练与测试训练代码测试代码5.修改test_tusimple.py为了输出模型的计算量和参数量,将test_tusimple.py修改为以下,再运行第4点的测试代码......

2022-06-24 20:12:36 413

原创 CLRNet: Cross Layer Refinement Network for Lane Detection

论文下载地址:https://arxiv.org/pdf/2203.10350.pdf代码下载地址:https://github.com/Turoad/CLRNet车道线是智能车辆视觉导航系统的关键。自然,车道线是一种具有高级语义的交通标志,但它具有特定的局部模式,需要详细的底层特征才能准确定位。使用不同的特征级别对于准确的车道检测非常重要,但这方面的研究仍然不足。在这项工作中,我们提出了跨层细化网络(CLRNet),旨在充分利用车道检测中的高级和低级特征。特别是,它首先检测具有高级语义特征的车道,然后基

2022-06-24 15:33:08 983

原创 多线程-生产者和消费者模式

多线程是多任务处理的一种特殊形式,多线程处理允许让一个进程中同时运行两个或两个以上的线程。这样的话,能更加充分发挥计算机的性能,并高效完成用户的任务。第一步:加入头文件第二步:子线程的实现第三步:创建线程join和detach的对比:join()函数是一个等待线程完成函数,主线程需要等待子线程运行结束了才可以结束detach()函数是子线程的分离函数,当调用该函数后,线程就被分离到后台运行,主线程不需要等待该线程结束才结束上面代码的运行结果:显示打印hello thread,然后等待1秒后,在打

2022-06-12 21:53:03 711

原创 算法与数据结构---查找和哈希

下面的题都是来自于牛客网的面试宝典二分查找:在查找的时候,每次都是从数据的中间开始,按照一定规则向左或者向右继续查找。也因此,二分查找的数据被要求具有一定的规则。一般是有序性。2.算法题,单调函数求零点(简单的二分法)二分法的基本思想是通过不断地将零点所在的区间一分为二,使得两个端点逐步逼近零点,从而得到零点近似值的方法叫做二分法。3.Hash表处理冲突的方法hash算法能保证对于不同的参数,返回的数值不能保证不重复。这就是冲突一致性哈希算法在1997年由麻省理工学院提出,设计目标是为了解决因特

2022-06-05 16:28:50 76

原创 深度学习(三)

下面的题都是来自于牛客网的面试宝典1.神经网络为啥用交叉熵通过神经网络解决多分类问题时,最常用的一种方法就是在最后一层设置n个输出节点,无论在浅层神经网络还是在cnn中都是如此。比如,在alexnet中最后的输出层有1000个节点,而即便是resnet取消了全连接层,也会在最后有一个1000个节点的输出层。一般情况下,最后一个输出层的节点个数与分裂任务的目标数相等。假设最后的节点数为N,那么对于每一个样例,神经网络可以得到一个N维的数组作为输出结果,数组中每一个维度会对应一个类别。在最理想的情况下,

2022-05-31 19:24:10 82

原创 深度学习(二)

下面的题都是来自于牛客网的面试宝典1.用过哪些移动端深度学习框架?开源的有:小米的MACE,骁龙的SNPE,腾讯的FeatherCNN和ncnn,百度的mobile-deep-learning(MDL);caffe、tensorflow lite都有移动端,只是可能没有上面的框架效率高。2.BN层的作用,为什么要在后面加伽马和贝塔,不加可以吗BN可以认为是在每一层的输入和上一层的输出之间加入一个计算层,对数据的分布进行额外的约束,从而增强模型的泛化能力。但是BN同时也降低了模型的拟合能力,BN之后的

2022-05-31 11:31:29 120

空空如也

空空如也

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

TA关注的人

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