- 博客(44)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
1906
5
原创 激光雷达与rgb相机外参标定
最近在做livox与rgb相机的外参标定,网上看了很多开源方法大对数是基于ros做的,由于对ros不太熟悉,所以先基于python写一个初始版本,以下是全部代码,后面有有时间再整理,相机的内参是使用matlab工具箱标定的,大致思路是将标定板的点云数据通过左右、上下的坐标替换,深度值转换为灰度值,进而得到灰度图,对灰度图做传统图像处理,找到圆心,然后再逆转回在激光雷达坐标系上的坐标。
2024-02-22 15:20:48
939
原创 爬取公众号图片并自动导入到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
334
原创 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
1392
原创 数据增强(随机旋转+噪点)
# !/usr/bin python3 # encoding : utf-8 -*- # @software : PyCharm # @file : Augment.pyimport cv2import osimport numpy as npimport randomfrom t
2021-11-10 22:27:26
1455
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
2396
原创 爬取图片脚本
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
549
原创 vscode使用ssh连接远程Ubuntu服务器
动机 使用vscode通过ssh进行远程服务器连接的原因是,单纯通过使用teamview等方式进行远程服务器的连接往往会受到网速的影响,而通过SSH进行局域网内部的连接则可以完美的避免这一问题。同时,vscode能够实时的显示服务器上的代码界面,还是相当方便的。前提 由于我们是通过局域网进行连接,因此前提是,本地电脑和服务器置于同一局域网,测试的方法通过cmd中的ping 即可,能ping通即是在同一局域网中。 linux系统查看本机本地的ip地址可以通过以下命令ifconfig -a (找
2021-11-08 20:35:58
10156
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
503
原创 vs相关环境配置
vs相关环境配置 1、在VC++目录-》常规-》可执行文件目录里面添加DLL文件所在路径 2、在VC++目录-》常规-》包含目录里面添加包含全部项目头文件所在的文件夹路径 3、在VC++目录-》常规-》库目录里面保存的是全部项目的lib所在文件夹路径 4、在C/C+±》常规-》附加包含目录里面保存的是当前项目所需要的头文件所在的文件夹路径 5、在链接器-》输入-》附加依赖项里面保存的是当前项目所需要的lib文件所在的文件夹路径...
2021-09-21 10:19:01
1184
原创 Hrnet损失函数
1、Heatmap的使用以及作用 在heatmap被提出前,在关键点检测任务上,使用的方法是关键点坐标回归,具体实现是将网络全连接层之前的最后一层输出的一维向量,假设现在有15个关键点,那么,这个一维向量的长度就是15*(x, y, s)共45个向量,再通过全连接层进行关键点的分类,我们知道单纯这个一维向量难以将关键点在空间中的信息进行捕捉。所以heatmap应运而生。 heatmap的具体实现是通过如下方式:(1) 根据我们打的关键点标签生成heatmap图,常用的方法是使用二维高斯分布,简单说就
2021-09-03 09:59:22
2501
4
原创 win10 MNNConverter.exe 工具
链接:https://pan.baidu.com/s/1w1c3h7PhtM8OkfjftxpAEQ提取码:ko10
2021-08-23 17:39:19
451
原创 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
171
原创 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
1316
原创 实现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
1059
原创 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
1195
5
原创 安装cudnn出错
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-07-13 18:03:53
1062
原创 jetpack4.5安装torch
https://blog.csdn.net/weixin_43947712/article/details/115530913
2021-06-03 11:26:31
276
原创 win10查询cuda版本
很多小伙伴在配置深度学习环境的时候往往搞不清自己目前的CUDA版本的,而通过nvidia-smi指令与nvcc -V往往显示的cuda版本会不一样,其实,通过nvcc -V才是目前我们电脑上安装的cuda版本,而nvidia-smi显示的cuda版本是当前显卡驱动支持的最高cuda版本。...
2021-05-13 21:50:33
719
原创 改动模型后,加载部分预训练权重文件
加载部分预训练权重文件最近在做姿态估计相关内容,需要将Hrnet模型修改,Hrnet是基于coco数据集训练的,coco数据集是17个关节点,而我需要的是15个关节点,在将数据集标好训练之后,发现由于数据量比较小,模型能够很快收敛,但是泛化性能极差,于是,就想着把之前的coco预训练权重文件拿出来一部分,对我自己的模型进行训练,果不其然,在使用部分预训练权重文件进行训练后,模型的泛化性有了很大的改善,现在分享给大家。1首先我们需要明确权重文件的类型是什么:我们在使用pytorch进行模型训练的时候,最后
2021-04-23 17:03:03
4872
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
5675
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
513
原创 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
1510
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
89
原创 查看显卡信息
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
288
原创 批量处理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
607
原创 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
866
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
2551
原创 CAJ转PDF
CAJ转PDF有时候我们在知网下载的文件格式是CAJ格式的,但是CAJ格式需要对应的CAJ阅读器,这往往在手机等移动设备上很难实现,我们希望把它转换成PDF格式,网上大多数说的是用PDF转换器,但是这些转换器要么是收费产品,要么转换的文件大小受限,问题很多,其实很简单,我们只需要利用电脑自带的虚拟打印技术就可以实现这个功能。操作如下:1:打开你的控制面板—硬件和声音—设备和打印机2.用CAJ阅读器打开你下载的CAJ文件,进入打印界面,将打印机转换成***MIcrosoft print to PDF
2020-10-16 10:49:14
149
原创 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
1619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人