自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search论文解读

ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search 论文解读写在前面: 最近在做姿态估计相关课题,目前已经实现了Open-pose、 Hrnet、Alphapose等主流模型,这些模型通过训练已经可以达到我所需要的准确率要求,然而,在推理速度上却远远不能满足我的需求,目前,上述网络在2080ti上fps基本上可以在15左右,然而,我最终的想法是部署在边缘式设备上,边缘式由于算力以及内存的限制,若现在简单粗暴将上述模型

2021-06-03 21:02:45 1816 5

原创 激光雷达与rgb相机外参标定

最近在做livox与rgb相机的外参标定,网上看了很多开源方法大对数是基于ros做的,由于对ros不太熟悉,所以先基于python写一个初始版本,以下是全部代码,后面有有时间再整理,相机的内参是使用matlab工具箱标定的,大致思路是将标定板的点云数据通过左右、上下的坐标替换,深度值转换为灰度值,进而得到灰度图,对灰度图做传统图像处理,找到圆心,然后再逆转回在激光雷达坐标系上的坐标。

2024-02-22 15:20:48 809

原创 ubuntu使用vscode调试cmakelists编译的程序

ubuntu使用vscode调试cmakelists编译的程序。

2023-12-08 14:43:50 424

原创 基于ubuntu nc指令实现远程传输文件到嵌入式设备中

基于ubuntu nc指令实现远程传输文件到嵌入式设备中。

2023-12-06 13:28:44 804 1

原创 vscode连接远程服务器

当远程服务器无法连接外网,我们如何建立本地vscode与远程服务器的连接。

2023-09-28 16:45:58 384

原创 c++编程建议

( 1 )为防止精度损失,类型总是被提升为较宽的类型( 2 )所有包含小于整形的算数表达式在计算之前其类型都会被转换成整形。

2023-09-05 16:11:23 141

原创 Python实现Tof投影到Rgb

Python实现Tof投影到Rgb

2023-04-12 20:23:46 163 1

原创 docker常用指令

docker常用指令

2022-09-28 14:00:54 272

原创 c++使用glob查找文件下的图片,并追加目标检测结果写入到txt文件中

glob使用

2022-09-02 09:41:00 324

原创 torch中permutetranspose reshape

1

2022-08-23 16:56:56 164

原创 Git的基本操作

git入门指南

2022-07-19 09:19:18 250

原创 爬取公众号图片并自动导入到ppt

import requestsimport osfrom bs4 import BeautifulSoupimport urllibfrom tqdm import tqdmfrom pptx import Presentationfrom pptx.util import Inchesimport argparseprint("===================================")print("删除原有ppt,并重新创建")if os.path.exists('d

2022-04-28 22:51:01 280

原创 matlab将角度转换为度分秒脚本

% Load input file if specifiedif ischar(d) d=load(d);end%输入浮点数据%输出字符串格式% Calculationsg=fix(d);m=fix((d-g)*60);s=roundn(((d-g)*60-m)*60,-3);str1="°";str2="'";str3='"';result=sprintf("%d%s%d%s%f",g,str1,m,str2,s);...

2022-04-18 16:18:31 1269

原创 数据增强(随机旋转+噪点)

# !/usr/bin python3 # encoding : utf-8 -*- # @software : PyCharm # @file : Augment.pyimport cv2import osimport numpy as npimport randomfrom t

2021-11-10 22:27:26 1425 1

原创 将视频转换为图片

import cv2 as cvimport os# os.mkdir('./pic')video_path = '3.mp4'video = cv.VideoCapture(video_path)i = 3542while True: ret, frame = video.read() if ret: cv.imwrite('pic/{}.jpg'.format(i), frame) i += 1 else: print(

2021-11-10 10:29:49 2381

原创 爬取图片脚本

import osimport reimport timefrom selenium import webdriverfrom bs4 import BeautifulSoupfrom urllib.request import urlretrievechrome_driver=r"D:\conda\envs\yolo\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"def selelnium_test(url, sa

2021-11-10 10:08:21 528

原创 vscode使用ssh连接远程Ubuntu服务器

动机  使用vscode通过ssh进行远程服务器连接的原因是,单纯通过使用teamview等方式进行远程服务器的连接往往会受到网速的影响,而通过SSH进行局域网内部的连接则可以完美的避免这一问题。同时,vscode能够实时的显示服务器上的代码界面,还是相当方便的。前提  由于我们是通过局域网进行连接,因此前提是,本地电脑和服务器置于同一局域网,测试的方法通过cmd中的ping 即可,能ping通即是在同一局域网中。  linux系统查看本机本地的ip地址可以通过以下命令ifconfig -a (找

2021-11-08 20:35:58 9166 7

原创 C++实现NMS

整体流程:  根据分类的概率进行大小排序,先找出概率最大的,遍历这个框之后的框,计算IOU,大于阈值(0.3或其他)则将其从列表中去除。知道走到最后。再进行概率第二大的框。。。以此类推。struct detect_region{//定义结构体 detect_region(const float score, Point pos1, Point pos2) :score(score), pos1(pos1), pos2(pos2) {} float score; Point pos1;

2021-10-14 22:01:14 484

原创 vs相关环境配置

vs相关环境配置   1、在VC++目录-》常规-》可执行文件目录里面添加DLL文件所在路径   2、在VC++目录-》常规-》包含目录里面添加包含全部项目头文件所在的文件夹路径   3、在VC++目录-》常规-》库目录里面保存的是全部项目的lib所在文件夹路径   4、在C/C+±》常规-》附加包含目录里面保存的是当前项目所需要的头文件所在的文件夹路径   5、在链接器-》输入-》附加依赖项里面保存的是当前项目所需要的lib文件所在的文件夹路径...

2021-09-21 10:19:01 1166

原创 Hrnet损失函数

1、Heatmap的使用以及作用  在heatmap被提出前,在关键点检测任务上,使用的方法是关键点坐标回归,具体实现是将网络全连接层之前的最后一层输出的一维向量,假设现在有15个关键点,那么,这个一维向量的长度就是15*(x, y, s)共45个向量,再通过全连接层进行关键点的分类,我们知道单纯这个一维向量难以将关键点在空间中的信息进行捕捉。所以heatmap应运而生。  heatmap的具体实现是通过如下方式:(1) 根据我们打的关键点标签生成heatmap图,常用的方法是使用二维高斯分布,简单说就

2021-09-03 09:59:22 2338 4

原创 win10 MNNConverter.exe 工具

链接:https://pan.baidu.com/s/1w1c3h7PhtM8OkfjftxpAEQ提取码:ko10

2021-08-23 17:39:19 416

原创 focal loss

  在Yolo等目标检测框架中,很容易会出现正样本中难分样本以及易分样本不均衡的情况,focal loss正是为了解决这个问题而提出来的。  提高focal loss就不的不提交叉熵损失函数,交叉熵函数定义如下:  式中,y可以取+1以及-1,就是预测正确还是错误,当y取1时,这时候我们看p的值,由于前面有一个负号,很显然当p为0.9的时候的损失函数的值显然小于p为0.6时候的损失函数的值。这是,我们进行一下置换:  那么上式,就会合并成一个式子:  这时候,我们考虑本文一开始的问题,就是正

2021-07-26 23:11:39 160

原创 MNN Android环境编译问题-missing Protobuf_LIBRARIES+Could not find toolchain file: /build/cmake/android.t

Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)Call Stack (most recent call first):遇到上述的情况,可以按照以下顺序进行解决:1.protoc --version(验证是否已经正确安装protobuf)若没有正确安装,终端中输入以下指令:sudo apt-get install libprotobuf-dev protobuf-compiler2.whic

2021-07-19 15:05:36 1276

原创 实现MNN推理

在将torch模型转换为MNN模型之后,我们可以有C++,Python API两种方式进行验证转换模型的准确性以及推理时间的比较,本文档主要实现的是借助python API的方式。之前一直使用的是creatsession的方式,没想到各种坑,最后发现借助MNN.expr很容易就实现了MNN的推理实现,分享给大家import MNN.expr as Fimport cv2import torchimport numpy as npmnn_model_path = './yolo.mnn'image

2021-07-16 15:48:49 1007

原创 ubuntu搭建MNN环境

Ubuntu搭建MNN环境一、安装g++、cmake、protobuf  sudo apt-get install 即可,建议protobuf的版本>3.0, g++版本>4.9$ sudo apt-get install autoconf automake libtool curl make g++ unzip$ git clone https://github.com/google/protobuf.git$ cd protobuf$ git submodule update -

2021-07-14 21:05:25 1094 5

原创 安装cudnn出错

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-07-13 18:03:53 989

原创 jetpack4.5安装torch

https://blog.csdn.net/weixin_43947712/article/details/115530913

2021-06-03 11:26:31 255

原创 win10查询cuda版本

很多小伙伴在配置深度学习环境的时候往往搞不清自己目前的CUDA版本的,而通过nvidia-smi指令与nvcc -V往往显示的cuda版本会不一样,其实,通过nvcc -V才是目前我们电脑上安装的cuda版本,而nvidia-smi显示的cuda版本是当前显卡驱动支持的最高cuda版本。...

2021-05-13 21:50:33 705

原创 改动模型后,加载部分预训练权重文件

加载部分预训练权重文件最近在做姿态估计相关内容,需要将Hrnet模型修改,Hrnet是基于coco数据集训练的,coco数据集是17个关节点,而我需要的是15个关节点,在将数据集标好训练之后,发现由于数据量比较小,模型能够很快收敛,但是泛化性能极差,于是,就想着把之前的coco预训练权重文件拿出来一部分,对我自己的模型进行训练,果不其然,在使用部分预训练权重文件进行训练后,模型的泛化性有了很大的改善,现在分享给大家。1首先我们需要明确权重文件的类型是什么:我们在使用pytorch进行模型训练的时候,最后

2021-04-23 17:03:03 4684 5

原创 制作自己的coco关键点数据集

制作自己的coco关键点数据集1、将我们需要标注的图片进行重命名,由于coco数据集图片的名称是12位数字,形式如 00000000001。代码如下:import osfrom tqdm import tqdmimport codecsimport jsonfor root, _, path in os.walk(<保存图片的文件夹路径>): for s in tqdm(path): os.renames('<保存图片的文件夹路径>/{}'.for

2021-04-21 19:41:56 5490 94

原创 将VOC数据格式转换为Yolo格式

将VOC数据格式转换为Yolo格式import xml.etree.ElementTree as ETimport osclasses = ["person"]def convert(size, box): dw = 1./size[0] dh = 1./size[1] x = (box[0] + box[1])/2.0 y = (box[2] + box[3])/2.0 w = box[1] - box[0] h = box[3] - box[2

2021-04-07 16:31:42 500

原创 python-opencv 调取摄像头并保存图片

通过opencv-python 调用摄像头并保存图片import torch# -*- coding:utf-8 -*-import numpy as npimport cv2import matplotlib.pyplot as pltcap = cv2.VideoCapture(0)while True: ret, frame = cap.read() cv2.imshow('f', frame) if cv2.waitKey(1) & 0xFF ==

2020-12-28 19:41:30 1453 1

原创 批量改变目录下文件的名称

批量改变目录下文件的名称import os# top是目标文件夹(绝对路径),os.walk会读取其内的文件及文件夹直至空。 c是非子目录文件# a是当前路径目录 b是 当前路径下子目录# top是主目录路径for a, b, c in os.walk(top='data_printscreen'): n = len(c) for i in range(n): name = c[i].split('.')[1] ne

2020-11-30 21:43:18 78

原创 查看显卡信息

python查看gpu信息 并选择import torchdef select_device(id): force_cpu = False if id == -1: force_cpu = True cuda = False if force_cpu else torch.cuda.is_available() device = torch.device('cuda:{}'.format(id) if cuda else 'cpu') if not cuda

2020-11-23 16:41:15 266

原创 批量处理json数据

批量处理json数据import ospath = r"J:\experient\json"json_file =os.listdir(path)for file in json_file: os.system("D:\source\conda\envs\labelme\Scripts\labelme_json_to_dataset.exe %s" %(path+'/'+file))

2020-11-17 10:54:43 584

原创 EL图数据初步处理

使用python ,opencv进行数据集的初步处理数据来源最近从实验室师兄拿到一批太阳能板的EL图数据集,想通过语义分割的方式进行太阳能板的裂纹检测,由于拍摄角度比较倾斜不定,得到的图像没有规则,如下图:![原来的图像](https://img-blog.csdnimg.cn/202011122119376.png#pic_center)编写如下脚本,主要实现如下功能:1,将文件夹中的图片路径提取并保存为txt文件:import ospath = os.listdir('huizhou_

2020-11-12 21:40:00 791 5

原创 简单将xml数据转换为txt数据

简单将xml数据转换为txt数据(仅当记录)import xml.etree.ElementTree as ETimport pickleimport osfrom os import listdir, getcwdfrom os.path import joinsets=['train','trainval']classes = ["mono"]def convert(size, box): dw = 1./size[0] dh = 1./size[1] x

2020-11-02 10:31:45 2520

原创 CAJ转PDF

CAJ转PDF有时候我们在知网下载的文件格式是CAJ格式的,但是CAJ格式需要对应的CAJ阅读器,这往往在手机等移动设备上很难实现,我们希望把它转换成PDF格式,网上大多数说的是用PDF转换器,但是这些转换器要么是收费产品,要么转换的文件大小受限,问题很多,其实很简单,我们只需要利用电脑自带的虚拟打印技术就可以实现这个功能。操作如下:1:打开你的控制面板—硬件和声音—设备和打印机2.用CAJ阅读器打开你下载的CAJ文件,进入打印界面,将打印机转换成***MIcrosoft print to PDF

2020-10-16 10:49:14 122

原创 Pytorch如何分析部分程序的占用时间

Pytorch如何分析部分程序的占用时间在进行pytorch程序代码的测试时,由于功能的不同,我们往往需要分模块进行, 但是最后给的时间却是一个程序跑下来所需要的时间,如果我们要观察部分程序执行的时间以及占比,这时候,我们只要在函数的前面加上两行代码即可,with torch.autograd.profiler.profile() as prof: print(prof.key_averages().table(sort_by="self_cpu_time_total"))如下:x = torch.

2020-10-15 21:46:24 1468

原创 将数据集划分为训练集以及测试集

将数据集简单地划分为测试集以及训练集import osimport randomtrain_percent = .9 # 训练集所占比例valid_percent = 0.1 # 测试集所占比例xmlfilepath = 'data-delete' #图片所在地相对路径total_file = os.listdir(xmlfilepath) #以列表地形式将文件夹中的图片名字罗列出num = len(total_file)list = range(num)tr = int(n

2020-09-20 14:27:33 2960

空空如也

空空如也

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

TA关注的人

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