- 博客(32)
- 收藏
- 关注
原创 目标检测任务,如何区分两个相近似的目标
如果检测的精度依然不够,就要进行算法的优化,可以按照在业务需求可以的条件下,选择更大一些的backbone。特征融合结构可以采用pan这样的结构,实现自上而下和自下而上的特征融合检测头,在loss函数的设计上加大这个目标所占的权重,让模型更加关注困难类别样本的分类能力,可以添加注意力机制。可以对样本数据进行操作,通过旋转、缩放、翻转、裁剪、颜色变换等方式增加数据的多样性,提升模型的泛化能力,使用GAN或其他方法生成合成数据,增加训练样本的多样性。首先,要了解清楚检测的场景下,肉眼能否区分出目标的差异性。
2025-03-17 09:44:59
399
原创 OpenPCDet从环境配置到模型训练
sudo docker run -dt \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ --mount type=bind,source=/home/document/Section,target=/mnt/section \ --restart=always \ --name pp \ --gpus all 、-p 8080:80 你的镜像名。python3 labelCloud.py #运行命令。
2025-01-09 11:29:35
996
原创 卡尔曼滤波-KF
无人驾驶多传感器感知融合常用的算法是卡尔曼滤波,卡尔曼滤波器一种最优化的递归数字处理算法,利用线性方程,通过观测系统输入输出,对系统状态进行估计的一种算法,为什么我们不直接选择系统真实观测值,是因为真实系统存在噪声,无法直接利用观测值,除此以外,如果出现异常等导致没有观测值输出,对于实时性要求较高的场景,会造成严重的问题。首先,必须明白为什么进行多传感器感知融合,因为每种传感器都有各自的优缺点,利用一种传感器的感知结果供下游PNC以及全局调度的置信度非常低,所以要结合不同传感器的优缺点进行融合。
2024-11-05 09:08:26
278
原创 自动驾驶-传感器简述
自动驾驶车辆上的传感器类型包含激光雷达、毫米波雷达、相机、imu、rtk、超声波雷达等,这些传感器用来接收外部世界多姿多彩的信号,根据接收到的信号,车载大脑对信号进行处理,那信号的准确程度就尤为重要。本文将各个传感器的特性进行相应的总结,有出现错误的地方还请各位看官给与指点,本人将非常感激。激光雷达根据工作原理不同,分为机械式、半固态、固态,根据测距原理分为三角测距、飞行时间测距、相位式等。
2024-10-28 15:31:12
1499
原创 深度学习常见问题每日学习
triplet loss的计算是基于一个三元组计算同类样本和不同类样本之间的距离差,其中a表示选定的锚点,p表示与a同类别的样本,n表示与a不同类别的样本。不妨设拟合函数为常数,那么MSE就相当于所有数据的均值(列出loss对c求导即可),而MAE相当于所有数据的中位数,所以会对异常值不敏感。这里的数学意义表明:该函数的工作方式与均方差公式有点类似,该损失函数,具有Huber损失函数的所有优点,并且处处可微。MSE对异常值敏感,因为它的惩罚是平方的,所以异常值的loss会非常大。
2024-05-16 09:24:32
766
原创 图像目标检测算法-YOLOV5的学习
BN层的提出,主要是为了解决大部分的数据落入非线性饱和区,导致模型训练过程梯度消失,一方面增加模型训练时间,还有很大的可能模型到最后无法收敛。如果激活函数采用的是sigmoid 函数,可让大部分的训练数据落入线性区域内,加快模型的训练收敛速度,同时考虑到归一化处理后,对数据分布的变化比较大,引入缩放平移参数对数据进行仿射变换,尽可能保持数据的原始分布,又不至于让数据完全落入饱和区域内。网络是特征金子塔网络,通过在不同的特征尺度上,进行模型的推理和预测,能够兼顾大目标、中目标、小目标。
2024-05-15 11:11:26
1081
1
原创 每天学习吴恩达
关于吴恩达老师的视频反反复复看了很多次,每一次都是看的时候明白,过段时间就忘记的差不多了,而且发现在实际应用中,很多东西用不上,不能解决问题。但实际上,作为一名算法工程师,如果不好好磨练自己的算法能力,在日益竞争的环境中会逐步淘汰,只会标注数据、训练模型意义不大,毕竟大模型的到来,使得AI越来越普适化,现在小学生都会调用接口,跑数据了。就能够解决大部分问题,而模型本身的复杂度非常高,调节参数带来的效果微弱,修改模型结构往往会适得其反,鉴于此,大部分的工程师首选玩数据,得数据者得天下。
2024-03-25 10:05:12
175
原创 RKNN语法-C++篇
8. rknn_outputs_release()释放输出数据内存;6. rknn_outputs_get()获取推理结果数据;2. rknn_query()查询模型的输入输出属性;4. rknn_inputs_set()设置输入数据;9. rknn_destroy()销毁 RKNN;1. rknn_init()初始化模型;5. rknn_run()进行模型推理;RKNN C++调用流程。3. 对输入进行前处理;7. 对输出进行后处理;
2024-03-14 16:04:13
1904
原创 RKNN 工具使用-python
quantized_method 支 持 layer 或 channel , 用 于 每 层 的 权 重 是 否 共 享 参 数 , 默 认 为。data_format : 输 入 数 据 的 layout 列 表 , 只 对 4 维 的 输 入 有 效 , 格 式 为 “NCHW” 或。询 RKNN_QUERY_CUSTOM_STRING 得到该信息,方便部署时根据不同的 RKNN 模。默认值为 False。quantized_algorithm 用于指定计算每一层的量化参数时采用的量化算法,可以选择。
2024-03-14 15:47:50
2575
原创 YOLOV5从模型训练到部署在NPU上实现流程
踩了三天坑,看了各种资料,跑官网提供的C++ demo,python demo可以得到正确的结果,但是从头从 pt->onnx->rknn文件总是无法成功。因为不好的工作思路,习惯找开源,于是到git 上下载各种版本代码尝试都出推理结果不正确的问题。废话不多说,进入正题,给大家提供一套完整的从训练到部署的使用流程。models/yolo.py,里面Detect 类里面的forward 函数。各位需要根据实际需求进行类别修改,以及训练数据存放位置的调整,这里不再赘述。export.py 文件。
2024-03-13 18:44:00
2128
原创 gitlab 使用
第一次代码上传 gitlab$ git init 初始化仓库$ git add .添加文件到暂存区$ git commit 将暂存区内容添加到仓库中$ git remote add [shortname] [url] shortname 为本地的版本库$ git push -u origin master 上传代码到master 分支。以后代码上传git pull 拉去更新代码git add . 添加上传文件$ git commit 将暂存区内容添加到仓库中...
2022-01-21 08:41:50
310
1
原创 docker 常用命令小结
docker pull //拉取镜像docker run -dti --name 自己起一个容器的名字 -v 主机路径:docker 路径 image /bin/bashdocker run exec -ti 自己起的容器名字 /bin/bashdocker ps -a 显示所有容器的容器,包括未运行的。docker commit a 作者 -m 信息 容器名字 kxh:v1...
2022-01-19 16:22:41
910
原创 u版yolov5 模型转ncnn
最近项目需要yolov5做检测,用c++实现,在cpu上运行,所以想到一些部署方法:1、u版yolov5训练好模型就是.pt文件转onnx,然后再转ncnn.2、u版yolov5训练好模型就是.pt,使用libtorch进行inference.3、使用opencv接口去做.opencv现在越来越强大.之前用过ncnn,所以就选择了.pt->onnx->ncnn.老板要的比较急,所以最好的方法就是找开源,快速复现。第一步当然是要配置环境。当前环境是win10操作系统。需要的依赖是o
2021-11-05 09:11:53
2331
原创 nginx从安装到使用~
nginx 是什么?Nginx是一个web服务器和方向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。nginx的安装1、首先需要安装需要的依赖apt-get install libpcre3 libpcre3-devapt-get install zlib1g zlib1g-devsudo apt-get install opensslsudo apt-get install libssl-dev2、到官网下载安装包http://nginx.org/.
2021-08-27 19:28:26
776
原创 ubuntu 上java的安装
参考博客https://blog.youkuaiyun.com/kongfu_cat/article/details/79510885因为需要使用tomcat,tomacat 的安装需要用到jdk,所以记录一下。到官网去下载一下,https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html解压即可,最后需要在环境变量配置一下,sudo vim /etc/profileexport JAVA_HOME=/home/
2021-08-26 14:42:35
94
原创 docker 常用链接
最近发现利用pytorch进行模型训练会有版本不兼容的情况,一直走在配环境的大路上,后来接触了docker,利用docker 沙箱机制可以freestyle 进行版本组合进行训练学习。这个网址里面包含了不少可用来做训练的cuda环境。https://hub.docker.com/r/nvidia/cuda/tags?page=1&ordering=last_updated...
2021-03-28 10:06:29
112
原创 ubuntu18.04/windows显卡驱动安装
First 你需要知道自己的硬件设备型号。ubuntu18.04 上通过终端输入 lspci | grep -i nvidia 或者 lshw -numeric -C display去nvidia 官网下载windows 通过设备管理器获取。Second 删除原有的显卡驱动ubuntu18.04 sudo apt-get remove --purge nvidia*(自己在未安装显卡驱动的环境下,不知道这样是否可以卸载干净)windows 不清楚Third 禁止自带的nouve.
2021-03-25 08:38:26
394
原创 机器学习之方差、偏差
模型在训练集上表现很好,在测试集上表现很差,这是高方差的体现。模型在训练集上表现的不好,在测试集上表现的不太好,但和训练集相差不大这是高偏差的体现。模型在训练集上表现的不好,在测试集上表现的更差,这是高方差和高偏差的体现。模型在训练集上表现的很好,测试集上表现的也不错。这是低方差和低偏差的体现。...
2020-12-22 12:24:27
105
原创 利用pytorch 搭建分类网络。
接触深度学习有一段时间,总感觉里面有些知识理解起来比较困难。想要跑一遍模型搭建、训练、测试、以及部署,本篇博客,先从模型搭建说起,里面有错误的地方还请各位更正。打算利用pytorch框架完成吴恩达老师的课后作业--手势识别。 图1目前根据自己的理解,按照以下步骤进行实现:...
2020-12-17 18:03:19
990
原创 Batch Normalization
Batch Normalization的作用1、激活函数可以使用sigmoid函数。原因:通过对数据进行归一化处理,使得数据分布在激活函数的敏感区域,梯度更新时不会出现梯度消失。如果模型在训练时出现loss不下降的情况,考虑采用BN层。2、在使用SGD优化算法初始化学习率时,可以调大学习率。这一点不太明白。3、起到了dropout 的作用。4、加快模型收敛时间。...
2020-12-17 18:01:45
151
原创 深度学习模型训练-分类问题。
模型分类问题主要包含二分类和多分类两种场景。1、二分类为什么会采用sigmoid激活函数模型在实际输出时值可能不在【0,1】区间,我们需要把模型的输出映射到【0,1】区间。二分类问题需要采用逻辑回归的思路解决问题。原因是逻辑回归服从0-1分布,即 P(Y=1|x) = p(x) P(Y=0|x)=1-p(x) 我们希望模型预测输出p(x) 越大越接近1越好。非常巧妙把两个公式整合在一起,L=p(x)^y(1-p(x))^(1-y)。这个公式被叫做最大似然函数。因此二分类问题采用的损失函数..
2020-12-17 09:38:32
1216
原创 C++ vector 迭代器之erase出现的问题
想要利用erase删除vector中某一指定的元素,需要明白以下几点:1、这是erase 的源代码,通过源代码,我们了解到 执行删除操作后,改变的是容器最后一个元素的位置,当前迭代器的位置是没有发生改变的。iterator erase(iterator position){ if(position + 1 != end()) copy(position + 1, finish, position); --finish; destroy(finish); ...
2020-12-07 14:35:52
1469
原创 ununtu 下安装python3.8.3
1、官网下载python 安装包2、建立文件夹,设置好自己安装的路径,我一般会安装在usr/local/python38路径下,关键一定要自己新建好python38这个文件夹。3、sudo ./configure --prefix=/usr/local/python38--enable-optimizations--enable-shared--enable-optimizations 优化选项,可以提高性能具体什么意思不清楚,希望大牛可以指出4、安装一些依赖,否则后面的步骤会出现错...
2020-11-20 18:41:53
675
原创 2020-11-19
docker 里面跑训练。最近在docker里面做训练,之前没有接触过docker 不知道怎么玩,弄了好久终于明白了一点点,总结了一下跑一个训练的大致流程。1、首先从NVIDIA官网找一个自己需要的环境给他pull下来。https://hub.docker.com/r/nvidia/cuda。base、runtime、devel三者区别。2、docker 里面没有GPU 所以想要使用GPU必须 添加GPU的选项,否则跑gpu程序的时候会出现没有显卡驱动之类的错误。另外docker里.
2020-11-19 11:30:25
193
原创 C++ function 表达式
C++ 提供了多个包装器,这些对象用于给其他编程接口提供一致或更好的接口,接下来介绍包装器function及其解决的问题。先看一组代码:#include <iostream>template<typename T,typename F>T use_f(T v, F f){ static int count = 0; count++; std::co...
2020-01-22 09:59:38
553
原创 C++ lambda 函数
相比于函数,lambda表达式的使用更加直观,在查看某一函数的具体功能实现无需大量翻阅工程代码去找某一函数的具体实现。lambda 表达式使用方法:[]() mutable ->return-type{}[] lambda 可访问作用域内的任何动态变量,要捕获使用的变量,可将其名称放在中括号内,有以下几种方式:。(1) [Z] 将按照值传递方式访问变量;(2) [=]将按照...
2020-01-21 17:41:14
471
原创 目标检测-yolov3内容整理
本文针对yolov3检测原理、模型测试、训练步骤以及用到的工具进行总结。yolov3检测原理参考博客https://blog.youkuaiyun.com/chandanyan8568/article/details/81089083https://blog.youkuaiyun.com/weixin_38241876/article/details/94618405https://blog.csdn...
2020-01-14 10:21:18
731
原创 Ubuntu+caffe+python接口配置过程
登录caffe官网http://caffe.berkeleyvision.org/install_apt.html按照官网的步骤进行配置,需要注意自己对应的Ubuntu的版本(这点很重要,如果不分版本将所有的依赖都安装上去会有冲突)。本人使用的Ubuntu版本为16.04,,CUDA8.0+cudnn6.0.1、安装依赖:sudo apt-get install libpro...
2019-02-01 15:41:00
434
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人