- 博客(105)
- 资源 (9)
- 问答 (5)
- 收藏
- 关注
原创 window中git bash使用conda命令
window系统的终端cmd和linux不一样,运行不了.sh文件,为了在window中模仿linux,可以使用gui bash模拟linux的终端。为了在gui bash中使用python环境,由于python环境是在anaconda中创建的,所以需要在gui bash使用conda命令。
2025-02-17 16:08:52
359
原创 【解决】fitz报错RuntimeError: Directory ‘static/‘ does not exist
RuntimeError: Directory ‘static/’ does not exist
2024-09-22 00:50:18
1428
原创 windows环境下实现ffmpeg本地视频进行rtsp推流
有时候服务端(如linux)或者边缘端(jetson盒子)需要接受摄像头的视频流输入,而摄像头的输入视频流一般为rtsp,测试时需要搭建摄像头环境,很不方便,因此需要对本地视频进行rtsp推流,模拟摄像头的rtsp输入。
2024-04-08 16:40:47
5002
5
原创 python:进度条的使用(tqdm)
在while中使用进度条,也需要知道循环的次数,本人常在opencv处理视频中使用tqdm, 可大概知道处理的进度。python中,常用的进度条模块是tqdm,将介绍tqdm的安装和使用。在for循环中使用tqdm是最常见了,因为知道循环的次数。:为python程序进度条,可以知道程序运行进度。(2)在while中使用tqdm。
2023-09-27 20:55:18
772
原创 opencv: 解决保存视频失败的问题
OpenCV:FFMPEG:tag 0x63766568/'hevc'is not supported with codec id 173 and format 'mp4 MP4 (MPEG-4 Part 14)OpenCV:FFMPEG:fallback to use tag 0x31766568/'hev1'[ERROR:0015.854]global /croot/opencv-suite_1676452025216/work/modules/videoio/src/cap_ffmpeg_impl
2023-09-26 10:13:15
1575
原创 基于人脸5个关键点的人脸对齐(人脸纠正)
人脸检测模型输出人脸目标框坐标和5个人脸关键点,在进行人脸比对前,需要对检测得到的人脸框进行对齐(纠正),本文将通过5个人脸关键点信息对人脸就行对齐(纠正)。
2023-09-24 22:57:51
2615
原创 对输入图像按比例压缩、居中填充
图像在输入神经网络之前,通常需要进行尺寸压缩,如yolov5的输入为640x640,分类网络Resnet-50的输入为224x224。通常地,分类网络直接将输入进行resize处理,而对于目标检测网络,为了防止目标变形,通常采用padding的方法。但由于letterbox函数太过难理解了,于是就自己写了一个,分别使用PIL和opencv实现了。
2023-07-05 20:39:14
488
原创 shape和resize对应的高(height)和宽(weight)的顺序
无论是pytorch还是oepncv,都有对应的成员变量shape以及函数resize,其对应的高(height)和宽(weight)的顺序是不一样的。从中可以发现,shape返回图片的尺寸顺序是:高、宽。而resize()函数输入参数顺序是:宽、高。同理,pytorch也是如此。
2023-04-09 22:07:16
1764
原创 opencv: 解决无法读取带有中文名称或路径的图片
opencv的图片读取的常用函数是imread(),但该函数无法带有中文名称或者存在中文路径的图片。
2023-04-02 21:29:05
1645
原创 pytorch: 转onnx模型
onnx(Open Neural Network Exchange)主要用于部署,训练一般使用pytorch和tensorflow,等训练完成,我们需要模型转成onnx,用于部署在云或者边缘计算上。而为什么要要转成onnx模型呢,主要是因为onnx没有训练,只有推理,速度很快,而且目前大多数芯片都适配onnx模型,相当于一个通用莫模型,易部署,而且速度快。
2023-01-09 16:28:50
3311
原创 pytorch:参数pin_memory=True和non_blocking=True的作用
参数pin_memory=True和non_blocking=True的作用
2022-10-12 15:59:11
11014
原创 pytorch:本地可视化服务器的tensorboard
由于服务器上的系统是无界面系统,无法使用tensorboard进行可视化,但是可以在本地可视化服务器上的tensorboard。
2022-10-10 17:37:38
1006
原创 pytorch:本地使用tensorboard可视化
tensorboard是tensorflow用来可视化训练和测试过程的模块,而pytorch并没有可视化模块,但是pytoch=1.2.0版本以上开始支持tensorboard。
2022-10-10 17:10:41
2855
1
原创 【解决】pytorch单机多卡问题:ERROR: torch.distributed.elastic.multiprocessing.api:failed
最近在使用单机多卡进行分布式(DDP)训练时遇到一个错误:ERROR: torch.distributed.elastic.multiprocessing.api:failed。而实际报错的内容是:ValueError: sampler option is mutually exclusive with shuffle.
2022-09-16 16:45:40
74132
12
原创 【解决】RuntimeError:Trying to backward throughthe graph a second time
RuntimeError:Trying to backward throughthe graph a second time (or directly access saved tensors after they have already been freed). Saved intermediate values of the graph are freed when you call.backward() or autograd.grad().
2022-09-09 15:28:03
10997
原创 【解决】CommandNotFoundError: Your shell has not been properly configured to use conda activate
CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’.To initialize your shell, run$ conda init Currently supported shells are:bashfishtcshxonshzshpowershellSee ‘conda init --help’ for more infor
2022-07-24 18:29:21
4896
3
原创 【解决】bash: conda: command not found
linux系统报错:bash: conda: command not found
2022-07-24 18:13:54
30653
2
原创 conda常用命令行
个人比较喜欢使用Anaconda来管理环境配置,在环境配置中会经常使用conda的命令行,因此,总结一下常用到的conda命令行。
2022-07-24 17:31:28
2604
原创 FLOPS与FLOPs的区别:
“s"的大写和小写代表不同的意思:FLOPS(floating point of per second):指每秒浮点运算次数,用来衡量硬件算力的指标。FLOPs(floating point of operations):指浮点运算次数,用来衡量算法/模型的复杂度。
2022-06-02 16:12:53
1175
1
原创 pytorch: 获取 tensor 维度的方法:shape 和 size()
pycharm 获取 tensor 的方法有两种:shape 和 size()tensor 是类 Temsor() 的实例, 其中shape是其属性,而 size() 是其继承的方法,两者均可以获得 tensor 的维度。import torcha = torch.tensor([[1, 2, 3], [4, 5, 6]])print(a.shape)print(a.size())输出为:torch.Size([2, 3])torch.Size([2, 3])另外,还可以获取其中的某一
2022-01-14 16:34:11
81600
3
原创 opencv:CAP_PROP_FRAME_COUNT获取视频帧数错误
opencv读取视频,可以通过属性(CAP_PROP_FRAME_COUNT)获取视频的总帧数,但是有些视频通过该属性获取的帧数和实际遍历整个视频的帧数不一样。import cv2 as cvvideo = "1.avi"cap = cv.VideoCapture(video)frames = cap.get(cv.CAP_PROP_FRAME_COUNT) # 通过属性获取帧数count = 0 # 用于计算视频的实际帧数while cap.isOpened(): ret, fra
2022-01-10 17:11:15
11766
6
原创 python: 打包并生成可执行文件 exe
目录一、安装 pyinstaller二、使用终端执行程序打包三、pyinstaller的参数介绍四、打包程序结果一、安装 pyinstallerpyinstaller 模块可以把 .py 文件打包成 .exe文件,需要使用 pip 进行安装:pip install pyinstaller二、使用终端执行程序打包把 py 文件打包成 exe 文件,只需在终端使用命令行生成就行:pyinstaller mian.py该 main.py 为该程序的主入口文件。可以使用自带的 cmd 进行打包执行
2022-01-06 16:12:10
1626
1
原创 python:使用 PythonMagick 生成 icon 图标
目录PythonMagick 下载与安装把图片转化成 iconPythonMagick 下载与安装使用 pip install # PythonMagick是不行的, 会提示没有这个模块:因此,需要到第三方去把该模块下载下来,再安装,下载地址为:PythonMagick或者直接复制:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick根据自己安装的python版本进行下载;下载下来后,打开终端跳到模块的文件路径下,使用 pip 进行安装
2022-01-06 14:48:55
2772
原创 python: print() 格式化输出
当输出的是一个变量时,需要用到格式化输出,有两种方法:% 和 format。方法一:%pi = 3.1415926print("%f" % pi)输出为:3.141593%f 默认输出小数6位还可以自行输出:print("%0.2f" % pi) # 3.14print("%0.8f" % pi) # 3.14159260print("%d" % pi) # 输出整数 3也可以输出其它格式num = 15print("%d" % num) # 输出整数 15print("%s
2021-12-27 10:59:37
4775
原创 pytorch:nn.ReLU(inplace=True) 中的参数 inplane 的作用
pytorch 的激活函数nn.Relu() 有一个参数:inplane,其作用是:该nn.Relu() 函数计算得到的输出是否更新传入的输出。正常情况下,一个卷积操作,首先经过卷积层,接着是正则化(Normalize),最后经过激活函数,而输入激活函数的是正则化后的的 tensor(为了方便描叙,称为A),经过激活函数得到新的tensor(为了方便描叙,称为B),而参数 inplane 的作用是B是否覆盖A。默认情况下,inplane=False,即保留B又保留A。如果把 inplane=True,
2021-12-15 21:32:13
5494
2
原创 pytorch: Pool 和 AdaptivePool 的区别和使用方法
在 pytorch 中,池化层(Pooling)有两种操作方式,一种是手动设计,另一种是自适应池化。一、手动设计池化层操作,一般有最大值(max)池化和均值(avg)池化,而根据尺寸又有一维,二维,三维。所以,手动设计的池化层有6种函数:AvgPool1dAvgPool2dAvgPool3dMaxPool1dMaxPool2dMaxPool3d以 AvgPool2d 为例,求一个张量的平均二维池化层:import torchimport torch.nn as nninput =
2021-12-13 20:21:30
3301
原创 pytorch: torch.max() 使用与理解
在使用 pytorch 进行训练时,会使用使用到改行代码:predict = torch.max(outputs.data, 1)[1]其中 output 为模型的输出,该函数主要用来求 tensor 的最大值。每次看到都不太理解 torch.max() 的使用,为了下次看到或者写道时不会忘记,特意详细了解其用法。torch.max(input:tensor, dim:index)该函数有两个输入:inputs: tensor,第一个参数为一个张量dim: index,第二个参数为一个整数[-
2021-12-13 15:37:03
19067
4
原创 python:命名规范
1、模块名和包名全部采用小写字母命名,当名字过长时可以采用下划线分隔单词单词的形式,但包不鼓励使用下划线。如:yolo, object_detection注:模块:module; 一个 .py 尾缀的文件; 包:package, 是一个包含 init.py 的文件夹。2、类名和异常名采用每个单词首字母大写的形式,既驼峰式结构。如:DataLoader, MyNetwork3、全局变量或类常量采用大写字母,并且以下划线分隔单词的形式。如:EPOCH, DEVICE4、其余变量命名包括方法名、函
2021-11-06 16:43:20
1716
原创 python: nums 和 nums[:] 的区别
最近在刷题时遇到一个问题,添加数组 nums 和添加 nums[:] 会得到不同的输出结果。写个例子:nums = [1,2,3,4,5] # 创建一个数组res = []res.append(nums)nums[0], nums[4] = nums[4], nums[0] # 交换数组中的元素res.append(nums)print(res)以上这个例子,先创建一个包含5个整数的数组 nums,并添加到数组 res 中;接着交换数组 nums 的第1个元素和第5元素,并且添加到数组
2021-09-20 20:25:38
10940
2
原创 三种常用的排序算法
总结常用的三种排序方法:排序一、选择排序二、冒泡法三、快速排序一、选择排序选择排序是每个元素与其后面的元素逐一进行比较和交换,时间复杂度是:O(n*n)。def selectionSort(nums): n = len(nums) if n<2: return nums for i in range(n-1): for j in range(i+1, n): if nums[i]>nums[j]:
2021-08-23 00:12:34
3823
原创 python: 字典 (dict) 的使用
在刷 leecode 的题目时,会经常使用哈希表,在 python 中称为字典 (dict) 。由于本人平时不怎么多使用字典,在真正运用时经常忘记其常规用法,特别是其成员函数的使用。因此,本人根据自己在刷 leecode 时经常使用字典的方法写成博客,既可以自我总结也可以分享大家。一、创建字典把一个列表(list)转化成列表:nums = [1,2,2,3,4,2,1,5,4]dic = dict()for num in nums: if num in dic: dic[n
2021-08-08 17:33:41
382
原创 FLOPS和参数量比较小的模型,推理时间反而较长?
两个模型 A 和 B,A 模型的 FLOPS 和参数量均比 B 模型少一半,但 B 模型的推理速度却稍微比 A 模型快一些。出现这种情况由几种情况出现:一、运行平台的不同,这个很明显,在大多数情况下 GPU 平台下运行比 CPU快二、在同一运行平台,不同的深度学习框架也有些差异(如pytorch,tensorflow等)三、同一平台、同一框架、并行化程度影响较大,并行程度高的推理较快四、以上三种情况均相同情况下,有以下两种影响因素:(1) 对内存的访问频率,访问内存频率高的推理时间较长(2)同步
2021-06-21 10:14:33
3303
countdown.zip
2020-04-29
径向分布函数(RDF).zip
2020-01-17
车牌字符识别训练集.zip
2019-11-27
高速公路夜间车辆数据训练集.zip
2019-11-25
opemv4.zip
2019-11-21
神经网络的最后一层通常为全连接层,那么后面需要正则化和激励函数吗?
2021-09-02
请问c++中operator重载函数的参数类型一定是类的类型吗?
2017-04-28
请问c++中能在内模板外定义构造函数吗?如果可以请告诉一下
2017-04-22
关于opencv标定(cvCalibrateCamera2)的问题
2017-03-29
关于opencv3.1的《xfeature2d》问题
2017-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人