- 博客(97)
- 资源 (2)
- 收藏
- 关注

原创 单目可见光视频三维深度估计(python实现)
目录技术要点:主要应用:准备工作:构建环境:激活环境:需要安装库:权重文件下载:开始预测:1.采集图片2.修改标签文件3.训练模型4.启动主程序全部代码:说明:本篇文章主要借鉴于抖音恩培大佬的代码,大佬的github地址为:enpeizhao (enpei) (github.com)感兴趣的朋友也可以关注大佬的抖音号!技术要点: 脸部姿态估计识别与检测 帧率检测 目标物体三个角度x、y、z估计 主要应用: 家
2022-01-09 20:17:34
3827
9

原创 利用PaddleDetection部署自己的轻量级移动检测嵌入式平台(多种高性能网络模型)--Pytorch实现
目录文章核心:1.效果图及视频展示2.背景3.安装PaddlePaddle4.预训练模型的下载比如yolov3在coco和voc数据集上的预训练模型和权重列表如下:4.模型导出(python端)5.模型预测1.图片预测2.视频预测,帧率在10左右3.文件夹下图片预测当然也可以自己进行训练,相应的指令为:安装过程中遇到的其他问题:全部源码均在PaddleDetection的官方Github上,地址如下:(本文用的版本是最新2.3的版本)Paddl
2021-12-17 22:36:28
3072
2

原创 深度神经网络压缩和加速详解
目录1.背景介绍2.压缩方法概述3.压缩方法详述3.1参数剪枝3.2参数量化3.3低秩分解(张量分解)3.4参数共享3.5紧凑网络3.6知识蒸馏3.7混合模型3.8不同压缩模型比较1.背景介绍深度学习模型的压缩和加速是指利用神经网络参数的冗余性和网络结构的冗余性精简模型,在不影响任务完成度的情况下,得到参数量更少、结构更精简的模型.被压缩后的模型计算资源需求和内存需求更小,相比 原始模型能够满足更加广泛的应用需求. 接下来系统...
2021-12-17 15:07:53
3745
1

原创 利用Mediapipe和DGL实现火影结印识别与追踪---特殊手势识别
还记得曾经日思夜想也要追番的火影吗?曾经的招式还可以依稀回忆起来吗?今天我们来用图卷积神经网络GCN+DGL+Mediapipe的方式实现火影结印识别!!!听起来是不是特别有意思呢??先看一段演示视频:利用Mediapipe和DGL实现特殊手势识别---【火影结印识别】雀氏有点意思!!!!!接下来咱们细细道来!!!首先从DGL说起·······1.DGl概述Deep Graph Library (DGL) 是一个在图...
2021-12-02 23:34:08
8044
15

原创 Backbone 之 FPN:特征金字塔 (Pytorch实现及代码解析)
背景:为了增强语义性,传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作,而这一层对应的下采样率(图像缩小的倍数)通常又比较大,如16、32,造成小物体在特征图上的有效信息较少,小物体的检测性能会急剧下降,这个问题也被称为多尺度问题。 解决多尺度问题的关键在于如何提取多尺度的特征。传统的方法有图像金字塔(Image Pyramid),主要思路是将输入图片做成多个尺度,不同尺度的图像生成不同尺度的特征,这种方法简单而有效,大量使用在了COCO等竞赛上,但缺点是非常耗...
2021-11-30 21:53:25
15139
1

原创 MediaPipe实现手指关键点检测及追踪,人脸识别及追踪
OpenCV 是一个用于计算机视觉应用程序的库。在 OpenCV 的帮助下,我们可以构建大量实时运行更好的应用程序。主要用于图像和视频处理。可以在此处获取有关 OpenCV 的更多信息 (https://opencv.org/)除了 OpenCV,我们将使用 MediaPipe 库。1.MediaPipe简介MediaPipe是一个主要用于构建音频、视频或任何时间序列数据的框架。在 MediaPipe 框架的帮助下,我们可以为不同的媒体处理功能构建管道。MediaPipe 的一些主要..
2021-11-25 12:30:13
38268
20
原创 C++中delete()和free()的区别
详细描述 free() 和 delete() 函数区别:free对应的是malloc;delete对应的是new;free用来释放malloc出来动态内存,delete用来释放new出来的动态内存空间。
2023-07-11 22:01:43
2901
1
原创 os.listdir(path)避坑指南
最近再做一个项目,需要处理大量的数据(包含又图片和txt格式文件),所以需要用到os.listdir()函数来对文件下的图片或者txt进行处理,但是需要特别注意的是os.listdir()函数虽然是列举的当前文件下的所有文件,但是不一定会列举出原来的顺序!!!文件路径下的子文件是这样分布的:例如:import osif __name__ == '__main__': path = "E:/桌面/rgbLabel-all/" filelist = os.listdi.
2022-04-23 17:25:08
8590
5
原创 pytorch模型加载跑测试集和训练过程中跑测试集结果不一致的问题?
前馈网络使用with torch.no_grad()和model.eval()比较问题描述将训练好的模型拿来做inference,发现显存被占满,无法进行后续操作,但按理说不应该出现这种情况。RuntimeError: CUDA out of memory. Tried to allocate 128.00 MiB (GPU 0; 7.93 GiB total capacity; 6.94 GiB already allocated; 10.56 MiB free; 7.28 GiB ...
2022-04-21 23:31:27
4981
14
原创 判断图片通道数及图片三通道转单通道方法
判断图片通道数from PIL import Imageimg=Image.open('image_test/1.png')print(len(img.split()))三通道转单通道简化版: import cv2 img = cv2.imread('01.png', cv2.IMREAD_GRAYSCALE) cv2.imwrite("001.png", img)批量处理完整版:##修改图片通道 path = "E:\\桌面\\te\\image_3_n...
2022-04-15 20:56:30
3414
6
原创 h5文件格式详解及h5文件与图片文件之间的相互转换(python实现)
背景:h5文件详解H5文件是层次数据格式第5代的版本(Hierarchical Data Format,HDF5),它是用于存储科学数据的一种文件格式和库文件。由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.H5将文件结构简化成两个主要的对象类型: 数据集dataset,就是同一类型数据的多维数组 组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据集,这些数据集的管理就用到了group! 直观的理解,可以参考我们的文件系统
2022-04-15 20:54:23
27038
14
原创 安装完tensorflow后还提示“no moudle named tensorflow”
问题:一般当成功安装好tensorflow后,会有如下提示:但是,当你进入python界面对tensorflow版本进行验证时还会出现:“no moudle named tensorflow”,这是哪里的问题呢?明明已经安装好了?原因:1.tensorflow版本和cuda版本不匹配!———大部分都是这个原因官方匹配链接:在 Windows 环境中从源代码构建 | TensorFlow (google.cn)具体怎么安装cuda和cudnn,以及他们之间与linux的...
2022-04-07 11:16:06
4520
3
原创 解决有多个版本cuda时如何灵活切换的问题
如果有多个版本的cuda怎么办呢?怎么切换呢?此种安装方式,是将/usr/local的cuda文件链接到了对应cuda版本的根目录。输入以下命令可以查看当前cuda文件的链接情况:cd /usr/local/stat cuda随后会输出以下信息:在/usr/local下,我们可以安装多个版本的cuda,这里我列出我电脑内的cuda版本,有cuda9.0、cuda10.0等多个版本命令行输入以下命令,断开cuda文件与cuda-10.1的符号链接:sudo rm -rf cu
2022-04-07 11:02:00
1502
1
原创 python爬取双色球2003-2022年所有数据
直接上代码:import requests, bs4import os, timeimport operatorfrom itertools import combinations, permutationsimport torchclass DoubleColorBall(object): def __init__(self): self.balls = {} self.baseUrl = 'http://tubiao.zhcw.com/tub.
2022-04-05 15:35:47
5348
4
原创 python实现二维数组中元素转化为float64做法
思路: 先将二维数组转化为二维列表 将二维列表中的所有元素转化为float64格式 最后将其转化为ndarray ##对二维方阵进行二维卷积,直至卷积为1*1的数值 while(len(data2[0]) != 1): b = [] data2 = data2.numpy() ##将tensor转化为为数组格式 dat...
2022-04-01 19:27:58
3834
原创 python实现将二维矩阵m * n补零为方阵n * n
思路: 先将二维矩阵m * n转化为列表 进行补零操作 最后再次转化为数组 data = data.tolist() ##作为矩阵的data,先将其转化为列表 ###添加0,使二维温度矩阵变为方阵 for item1 in data: if(len(item1) != len(data)): if(len(item1) &...
2022-04-01 19:26:46
1913
3
原创 二分查找集锦
leetcode 4 寻求两个正序数组的中位数:【难】寻找两个有序数组的中位数 - 寻找两个正序数组的中位数 - 力扣(LeetCode) (leetcode-cn.com)题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3..
2022-03-31 18:47:38
1278
1
原创 python实现离散点图画法
目录改进:再次改进:再次改进:改进:基础代码pred_y = test_output.data.numpy()pred_y = pred_y.flatten()print(pred_y, 'prediction number')print(test_y[:355].numpy(), 'real number')import matplotlib.pyplot as pltplt.rc("font", family='KaiTi')plt.figure()f, ax
2022-03-31 18:31:52
4785
28
原创 华为2022年软挑赛初赛试题及初级代码(成渝赛区)
目录1.赛题描述2.全部代码1.赛题描述2.全部代码# import psutil ##查看程序所占用的内存空间# import osimport numpy as npimport configparserimport timestart =time.clock()config_path = 'F:\\桌面\\data\\config.ini'path1 = "F:\\桌面\\data\\demand.csv"path2 = "F..
2022-03-31 18:26:51
1186
原创 python创建类及继承、重构、多态的举例
目录1.创建类2.继承3.重构4.Python中子类与父类的关系5.python 中多态1.创建类如下定义一个动物类Animal为基类,它基本两个实例属性name和age、一个方法call。class people: #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 #定义构造方法 def __init__(self,n,a,w):...
2022-03-31 18:18:44
1574
原创 python批量建立对象
方法一:class Blog: def __init__(self,num): print("a new object num is",num) self.value = num def __str__(self): return str(self.value+3) # 循环建立四个对象,locals()函数可以将字符串转换为变量名!#具体的操作和含义我并不清楚,大家可以自行百度~for i in range(1,5): ...
2022-03-31 18:15:49
2897
4
原创 数据写入excel表格并保存
直接上代码:# -*- coding: utf-8 -*-import xlsxwriter as xwdef xw_toExcel(data, fileName): # xlsxwriter库储存数据到excel workbook = xw.Workbook(fileName) # 创建工作簿 worksheet1 = workbook.add_worksheet("sheet1") # 创建子表 worksheet1.activate() # 激活表
2022-03-31 18:12:31
572
原创 pytorch生成种子,以及权重的保存和导入
pytorch生成种子,可重复训练:##牺牲计算效率,提升准确率from torch.backends import cudnncudnn.benchmark = False # if benchmark=True, deterministic will be Falsecudnn.deterministic = True###设置种子,保证可重复性seed = 1random.seed(seed)np.random.seed(seed)torch.manua...
2022-03-09 16:15:55
542
1
原创 python对文档中元素操作---删除、替换等
pthon更换文档中某元素:with open('E:\\桌面\\train.txt', 'r') as f: lines = f.readlines()with open('E:\\桌面\\1704.txt', 'a') as ff: # 此处 w 和 a,均可,反正是新建的临时文件,文件不存在时会自动创建 for line in lines: # kv = line.strip().split(' ') kv = line.split(' ...
2022-03-09 16:14:36
821
原创 pytorch中网络训练添加日志
pytorch中添加日志如果是指保存训练过程中的loss,accuracy等metric的话,可以采用下面的方法:import logging def get_logger(filename, verbosity=1, name=None): level_dict = {0: logging.DEBUG, 1: logging.INFO, 2: logging.WARNING} formatter = logging.Formatter( "[%(asctime...
2022-03-09 16:11:19
1869
原创 python实现对doc、txt、xls等文档的读写操作
目录1.python实现对doc文档的读取2.python实现对txt文档的读取3.python实现对xls表格的读取1.python实现对doc文档的读取#读取docx中的文本代码示例import docx#获取文档对象file=docx.Document("path")print("段落数:"+str(len(file.paragraphs)))#段落数为13,每个回车隔离一段#输出每一段的内容for para in file.paragraphs: pri..
2022-01-20 11:00:51
5831
5
原创 linux常见命令---深度学习炼丹炉必备---更新中
目录1.修改环境变量2.查看当前conda环境3.如果执行conda activate ***出现问题时需要初始化shell4.查看当前cuda版本*5.有了ubuntu系统安装基本的工具6.linux下安装显卡驱动7.linux下安装cuda如果有多个版本的cuda怎么办呢?8.linux下安装cudnn9.创建conda环境10.查看本机IP地址1.修改环境变量vim ~/.bashrc保存环境变量source ~/.bashrc如果在
2022-01-20 10:55:59
2980
6
原创 【室友用一局王者荣耀的时间学会了用python写春联】
目录0.效果展示1.导入模块2.获取对应汉字内容及像素3.生成并保存对联2022年了,又到了贴对联的时间了,不得安排一波用python脚本写对联吗?0.效果展示竖排:横批:1.导入模块PIL:全称 Python Imaging Library,是 Python 平台一个功能非常强大而且简单易用的图像处理库。但是,由于 PIL 仅支持到Python 2.7,加上年久失修,于是一群志愿者在 PIL 的基础上创建了兼容 Python 3 的版本,名字叫 Pi
2022-01-20 10:43:10
264
原创 深度学习环境配置---显卡驱动、pytorch、cuda和cudnn之间的配置关系
目录1. 显卡驱动2.cuda3.cudnn4.pytorch简单的关系如下图:1. 显卡驱动显卡驱动是电脑上服务于显卡的驱动程序,有了显卡驱动显卡的功能才能被最大化利用!显卡驱动的作用就是用来驱动显卡的,这是电脑硬件中所对应的一个软件。通过添加驱动程序计算机中的硬件就能正常的工作,当然不同的硬件使用的驱动程序也不一样。显卡对应的就是显卡驱动。显卡在电脑中提供图形的重要显示部分,直接关系到电脑的图形显示,而且显卡还可以提供更清晰的画质,给用户带来视频体验。显卡驱动的作用就
2022-01-14 10:27:52
6715
原创 神经网络训练数据准备---数据标签在numpy和tensor之间的转换及处理---Pytorch实现
目录1.从txt文档中读取训练数据和测试数据2.从txt文件中读取标签数据3.将训练数据和测试数据转化为tensor形式,为后面训练做准备,因为训练数据在pytorch要求一般为tensor格式4.将标签转化为float型(此处是因为做的是回归任务),如果想要做分类任务的话需要将标签转化为long型!5.将已经转化为tensor格式的(train_datas, train_labels)和(test_datas, test_labels)转化为Data.DataLoader可以使用的格式
2022-01-06 21:23:03
3657
4
原创 Python实现十大经典排序算法---[冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序]--动画演示
目录多种排序的平均时间复杂度如下:1.冒泡排序算法步骤2.插入排序算法步骤:3.选择排序算法步骤:4.希尔排序算法步骤5.归并排序算法步骤6.快速排序算法步骤:7.堆排序算法步骤8.计数排序算法步骤:9.桶排序10.基数排序算法步骤:关于对---基数排序 vs 计数排序 vs 桶排序的比较:排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序, 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,
2022-01-06 21:14:46
376
1
原创 利用python和前端三件套来一场线上烟花秀
目录python烟花秀效果展示:全部代码如下:前端三件套(JS、CSS、HEML)的烟花秀HTML部分:定义网页内容CSS部分:描述网页布局JS部分:控制网页行为End✨✨✨✨✨✨✨元旦节就要来了,线下没有烟花看,线上不得整点烟花酷炫一下嘛!!啥?过啥圣诞节?过啥洋节,咱们过元旦节好吧!✨✨✨✨✨✨✨python烟花秀效果展示:在这里,我们设计一个对象,表示烟花事件中的每个粒子。每个粒子都会有一些重要的属性,支配了它的外观和移动状况:大
2021-12-30 22:36:44
4179
11
原创 ShuffleNet:通道的打乱与混洗
目录背景:通道混洗简述ShuffleNet v1网络结构:ShuffleNet v2网络结构:背景:为了降低计算量,当前先进的卷积网络通常在3×3卷积之前增加一个1×1卷积,用于通道间的信息流通与降维。然而在ResNeXt、MobileNet等高性能的网络中,1×1卷积却占用了大量的计算资源。 2017年的ShuffleNet v1从优化网络结构的角度出发,利用组卷积与通道混洗(Channel Shuffle)的操作有效降低了1×1逐点卷积的计算量,是一个极为高效的轻量化网络。而20
2021-12-22 13:47:40
11669
5
原创 MobileNet:深度可分离(原理及代码)
目录背景:标准卷积:深度可分离卷积:MobileNet v1结构小结MobileNet v2结构背景:SqueezeNet虽在一定程度上减少了卷积计算量,但仍然使用传统的卷积计算方式,而在其后的MobileNet利用了更为高效的深度可分离卷积的方式,进一步加速了卷积网络在移动端的应用。 为了更好地理解深度可分离卷积,我们首先回顾标准的卷积计算过程,然后详细探讨深度可分离卷积过程,以及基于此结构的两个网络结构MobileNet v1与MobileNet v2。论文地址:
2021-12-21 23:57:52
3043
1
原创 SqueezeNet:压缩、扩展和融合(提供代码)
目录背景:论文地址:1602.07360.pdf (arxiv.org)网络结构:小结代码地址:GitHub - forresti/SqueezeNet: SqueezeNet: AlexNet-level accuracy with 50x fewer parameters背景:当物体检测应用到实际工业场景时,模型的参数量是一个十分重要的指标,较小的模型可以高效地进行分布式训练,减小模型更新开销,降低平台体积功耗存储和计算能力的限制,方便在FPGA等边缘平台上部署。 基于以
2021-12-21 23:52:24
696
1
原创 Cascade RCNN:走向检测器的级联
目录背景:网络结构:相关代码:(Pytorch实现)整体结构:demo代码:全部代码地址:背景:从之前的知识可知,在得到一个RoI后,Faster RCNN通过RoI与标签的IoU值来判断该RoI是正样本还是负样本,默认的IoU阈值为0.5,这个阈值是一个超参数,对于检测的精度有较大影响。 如何选择合适的阈值是一个矛盾的问题。一方面,阈值越高,选出的RoI会更接近真实物体,检测器的定位会更加准确,但此时符合条件的RoI会变少,正、负样本会更加不均...
2021-12-17 10:32:48
1540
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人