wa1tzy
速战速决!
展开
-
pytorch与python与numpy的换轴操作
a = np.array([[[1,2,3],[0,8,0]],[[3,4,8],[2,3,0]]])print(a.shape)#(2, 2, 3)print(a.T.shape)#(3, 2, 2)a = np.array([[[1,2,3],[0,8,0]],[[3,4,8],[2,3,0]]])a = np.transpose(a,(2,0,1))print(a.shape)#(3, 2, 2)a = np.array([[[1,2,3],[0,8,0]],[[3,4,8],[2,3原创 2020-06-04 11:34:18 · 1072 阅读 · 0 评论 -
使用yolov4训练自己的数据集——科大讯飞X光安检图像识别baseline
文章目录一、cfg文件修改二、data/下新建配置文件三、创建标注文件四、划分训练集、验证集与对应标签4.1 split_data.py4.2 xml2txt.py4.3 creattxt.py五、训练六、推理一、cfg文件修改创建yolov4-mydatasets.cfg,因为我用了yolov4.cfg训练太吃显存,2080TI的机子batchsize设置为2也会爆显存。其主要原因是mish函数太占显存了。修改的地方:将mish函数替代为relu函数,大大降低显存使用!另外filters设置为:原创 2020-08-05 12:22:10 · 4865 阅读 · 20 评论 -
手推BP算法系列2——Python实现多层神经元网络(Pyrtoch框架)
将文件做成类似pytorch的框架base\utils\functional.pyimport numpy as npdef relu(z): return np.maximum(z,0)def sigmoid(z): return 1 / (1 + np.exp(-z))def tanh(z): return np.divide(np.exp(z) - np.exp(-z), np.exp(z) + np.exp(-z))base\nn.pyimport n原创 2020-06-01 18:03:57 · 417 阅读 · 0 评论 -
对图像进行简单卷积和池化
import torchimport torch.nn as nnfrom PIL import Imageimport numpy as npimg = Image.open("pic1.jpeg")#加载图片img = np.array(img)#转为numpy形式#print(img.shape)img = np.reshape(img,(1,1244,700,3))#转为N...原创 2020-01-09 17:25:54 · 336 阅读 · 0 评论 -
Pytorch实现姿态识别(三)——训练与推理
train.py#dataset:https://www.crcv.ucf.edu/data/UCF101.phpimport timeitfrom datetime import datetimeimport socketimport osimport globfrom tqdm import tqdmimport torchfrom tensorboardX import SummaryWriterfrom torch import nn, optimfrom torch.ut原创 2020-07-21 16:53:54 · 2625 阅读 · 2 评论 -
使用yolov5训练自己的数据集——科大讯飞X光安检图像识别baseline
文章目录1、创建数据集的配置文件mydataset.yaml2、创建标注文件3、组织训练集的目录4、选择模型backbone进行模型配置文件的修改5、Train6、Visualize7、已有图像和xml制作标签的过程7.1 check_img.py7.2 check_box.py7.3 rain_val_split.py7.4 myData_label.py1、创建数据集的配置文件mydataset.yaml# train and val datasets (image directory or *.t原创 2020-08-05 09:21:06 · 6956 阅读 · 49 评论 -
pytorch实现MTCNN——代码部分(2)
四、造数据集simpling.pyfrom torch.utils.data import Dataset,DataLoaderimport osimport numpy as npimport torchfrom PIL import Imageclass FaceDataset(Dataset): def __init__(self, path): self.path = path self.dataset = [] self.da原创 2020-05-25 15:32:58 · 555 阅读 · 9 评论 -
pytorch实现MTCNN——代码部分(1)
论文链接:https://arxiv.org/ftp/arxiv/papers/1604/1604.02878.pdf代码链接:https://github.com/kpzhang93/MTCNN_face_detection_alignment一、造数据gen_celebA.pyimport osfrom PIL import Imageimport numpy as npimport utilsimport tracebackanno_src = r"F:\img_celeba.7z\原创 2020-05-25 15:09:36 · 923 阅读 · 4 评论 -
DeepLearing—CV系列(二十四)——Pytorch实现OCR识别图片转文字(2)——CRNN+CTC_Loss理论
文章目录一、CRNN(卷积递归神经网络)1.1 CRNN介绍与网络结构1.1.1 网络结构二、网络结构详解2.1 CNN2.2 Map-to-Sequence2.3 RNN2.3 CTC Loss2.3.1 序列合并机制2.3.2 训练阶段2.3.3 划分标准2.3.4 CRNN总结结一、CRNN(卷积递归神经网络)1.1 CRNN介绍与网络结构CRNN模型,即将CNN与RNN网络结合,共同训练。主要用于在一定程度上实现端到端(end-to-end)地对不定长的文本序列进行识别,不用先对单个文字进行切原创 2020-07-15 12:35:51 · 3051 阅读 · 2 评论 -
Pytorch入门深度学习(2)——AI语言Python(2)
四、标准数据类型5)TuplePython的元组与列表类似,不同之处在于元组的元素不能修改定义格式(元素一,元素二)可以用索引,但不能修改删除重复元素a = [1,5,4,5,1,3,3,3,2,2,3,1,4,2,1,3,4]for e in a: if a.count(e)>1: a.reverse()#防止跳过元素 for i in range(a.count(e)-1): a.remove(e) a.原创 2020-06-01 11:35:25 · 215 阅读 · 0 评论 -
Pytorch实现姿态识别(一)——将视频数据处理为图像
文章目录一、mypath.py二、datasets.py一、mypath.pyclass Path(object): @staticmethod def db_dir(database): if database == 'ucf101': # folder that contains class labels root_dir = r'F:\DATASET\UCF-101\UCF-101' # Sa原创 2020-07-21 16:44:54 · 2731 阅读 · 20 评论 -
pytorch实现MTCNN——初识与理论
论文链接:https://arxiv.org/ftp/arxiv/papers/1604/1604.02878.pdf代码链接:https://github.com/kpzhang93/MTCNN_face_detection_alignment原创 2020-05-25 14:08:55 · 476 阅读 · 0 评论 -
DeepLearing—CV系列(二十四)——Pytorch实现OCR识别图片转文字(1)——CTPN理论
文章目录一、OCR简介二、一、OCR简介文字识别也是图像领域一个常见问题。然而,对于自然场景图像,首先要定位图像中的文字位置,然后才能进行文字的识别。所以一般来说,从自然场景图片中进行文字识别,需要包括2个步骤:文字检测:解决的问题是哪里有文字,文字的范围有多少文字识别:对定位好的文字区域进行识别,主要解决的问题是每个文字是什么,将图像中的文字区域进转化为字符信息。OCR的作用:提取图像中的文字,并转换成文本形式,供后续NLP任务使用。二、...原创 2020-07-15 12:03:40 · 2922 阅读 · 0 评论 -
Pytorch实现姿态识别(二)——视频分析C3D的网络架构
C3D网络架构与结构图:3D卷积与2D卷积的区别:其中多了一个时间维度三维卷积与三维池化的理解:① nn.Conv3d(3, 64, kernel_size=(3, 3, 3), padding=(1, 1, 1))kernel_size=(3, 3, 3):第一个3:一共16帧,当前处理3帧;第二、三个3:H,W的大小;padding=(1, 1, 1):三维、高、宽都填充1② nn.MaxPool3d(kernel_size=(1, 2, 2), stride=(1, 2, 2))原创 2020-07-21 16:45:57 · 2418 阅读 · 0 评论 -
Pytorch项目打包和部署(1)——理论
文章目录一、什么是模型打包部署二、模型打包部署的作用三、学习模型打包部署的目的四、模型部署语言五、模型部署平台六、模型部署设备七、模型部署方式八、模型部署接口九、模型部署相关工具十、模型可视化先上Pytorch官网:Pytorch一、什么是模型打包部署模型打包就是把程序化的模块打包成一个能在指定平台上可执行文件。Pytorch中的打包和调用方法:torch.save()torch.load()模型部署就是将打包好的文件在指定的平台上进行部署实施,使其能够正常使用。二、模型打包部署的作用模型原创 2020-07-13 14:09:26 · 5301 阅读 · 1 评论 -
二进制与base64
二进制与base64函数使用def base64_to_image(base64_code): img_data = base64.b64decode(base64_code) img_array = numpy.fromstring(img_data, numpy.uint8) image_base64_dec = cv2.imdecode(img_array, cv2.COLOR_RGB2BGR) return image_base64_decdef image_原创 2022-03-29 19:38:07 · 11889 阅读 · 0 评论 -
Pytorch项目打包和部署(4)——代码——TensorRT+Android
文章目录前言一、TensorRT二、Android前言首先下载TensorRT,进入官网NVIDIA TensorRT | NVIDIA Developer,点击download now,选择对应的TensorRT版本,windows下建议下 TensorRT7,点击同意,选择TensorRT 7.0(7.1是预览版本,不建议下载),选择对应的系统,此处windows下载要对应CUDA版本,一定要更新到对应的版本上去,否则运行会报错。对于Tensor RT的使用,可以参考TensorRT的开发向导(第原创 2020-07-14 17:35:16 · 1710 阅读 · 0 评论 -
Pytorch项目打包和部署(2)——代码——flask+socket+pt2pt
文章目录一、flask1.1 module.py1.2 flash_test.py1.3 MTCNN侦测网络的flask通信流程二、Socket2.1 server_demo.py2.2 client_demo.py2.3 socket实现的对话2.3.1 server.py2.3.2 client.py三、MNIST打包3.1 模型打包的时候注意的问题一、flask1.1 module.pyimport torchfrom torch import nnclass TestModel(nn.M原创 2020-07-13 17:05:11 · 1016 阅读 · 0 评论 -
Pytorch项目打包和部署(3)——代码——flask+onnx
文章目录一、Flask部署1.1 httpserver.py1.2 clinet.html二、传图片2.1 clinet.html2.2 httpserver.py三、返回json格式3.1 clinet.html3.2 httpserver.py四、官网实例转JSON4.1 httpserver2.py4.2 clinet2.html五、导出与调用onnx(跨平台使用)5.1 导出onnx5.2 检查onnx5.2.1 onnxruntime评测模型精度不一致问题排查5.3 调用onnx一、Flask部原创 2020-07-13 20:16:17 · 2073 阅读 · 0 评论 -
ubuntu镜像里装东西
ubuntu原创 2022-08-17 21:11:30 · 472 阅读 · 0 评论 -
YOLOv5系列(3)——YOLOv5修改网络结构
文章目录一、设置网络结构为mobilenet-V2二、添加注意力模块一、设置网络结构为mobilenet-V2首先,需要在models/common.py里,实现MobileNetv2的 bottleneck 和 Pwconv。1、Mobilenetv2的bottleneck: InvertedResidual#mobilenet Bottleneck InvertedResidual class BottleneckMOB(nn.Module): #c1:inp c2:oup原创 2021-03-07 20:42:17 · 36131 阅读 · 137 评论 -
YOLOv5系列(2)——YOLOv5导出jit,onnx,engine
文章目录一、YOLOv5导出jit二、YOLOv5导出onnx三、使用onnx四、YOLOv5导出engine(tensorrt/trt)五、总结所有代码5.1 models/common.py5.2 models/yolo.py5.3 test00.py5.4 onnx_export.py(test01.py)5.5 models/yolov5s.yaml5.6 pkg/common.py5.7 engine_export.py(test03.py)做个YOLOv5的专题,这部分写一些YOLOv5的工程原创 2021-03-06 21:00:06 · 8140 阅读 · 9 评论 -
YOLOv5系列(1)——推理图像显示中文标签
无论是YOLO还是opencv,都是老外开发的,开发的过程中肯定不会考虑中文显示了,所以一直以来,在opencv-python中显示中文都有一些麻烦。那如何才能在YOLOv5图像识别中让标签变为中文呢?这里提供了一种修改YOLOv5源码方法可以参考。YOLOv5的使用在这里就不再阐述了,我们直接在YOLOv5程序中utils/utils.py(新版的是utils/general.py)文件下找到这一行代码:def plot_one_box(x, img, color=None, label=None,原创 2021-03-06 17:37:25 · 2136 阅读 · 6 评论 -
物体检测系列
物体检测系列一、物体检测网络有哪些Anchor based:RCNNFast RCNNFaster RCNNSPPNetSSDDSSDYOLOv1YOLOv2YOLOv3Mask RCNNCascade R-CNNDeformableR-FCNRefineDetRetinaNetAnchor Free:CornerNetExtremeNetTridentNetSNIPCenterNetFSAF二、基本知识点1、NMS的算法思想?(1)将所有框的得分排序,选原创 2021-01-14 16:37:02 · 295 阅读 · 0 评论 -
YOLOv5训练自己的数据集
一、准备工作在data下新建几个文件夹XML文件放到Annotations图片文件放到images二、xml转txt(xml格式的label转换为yolo版的label)# -*- coding:utf-8 -*-import syssys.path.append('D:\\Program files\\Anaconda\\libs')import os #os:操作系统相关的信息模块import random #导入随机函数#存放原始图片地址data_base_dir = "./d原创 2021-01-14 11:32:00 · 898 阅读 · 10 评论 -
DeepLearing—CV系列总结(一)—常用的目标侦测网络
文章目录一、RCNN二、SPP-Net三、Fast-RCNN四、Faster-RCNN五、YOLOv3六、YOLOv4七、YOLOv5一、RCNN二、SPP-Net三、Fast-RCNN四、Faster-RCNN五、YOLOv3六、YOLOv4七、YOLOv5原创 2020-10-19 21:04:10 · 404 阅读 · 0 评论 -
Pytorch模型中的GPU运算详解与实践
文章目录前言一、关于CUDA的函数接口1.1 torch.cuda1.2 torch.device1.3 .to()1.4 使用指定的GPU1.5 多GPU训练二、训练实例代码展示2.1 数据并行处理2.2 模型并行处理2.2.1 通过流水线输入(Pipelining Inputs)加速三、使用GPU注意事项前言什么是GPU?GPU(Graphic Process Units,图形处理器)。是一种单芯片处理器,主要用于管理和提高视频和图形的性能。GPU 加速计算是指同时利用图形处理器 (GPU) 和原创 2020-07-05 13:34:36 · 1885 阅读 · 2 评论 -
深度学习中的数学(四)——信息论
文章目录前言一、信息论二、信息三、熵四、条件熵前言先放祖师爷——克劳德·香农。1948年,美国数学家克劳德·香农发表论文《通信的数学理论》(A Mathematical Theory of Communication),奠定了信息论的基础。一、信息论狭义信息论是在信息可以度量的基础上有效地和可靠地传递信息的科学,它涉及信息的度量、信息的特性、信息传输速率、信道容量、干扰对信息传输的影响等方面的知识。广义信息论包括通信的全部统计问题的研究、香农信息论、信号设计、噪声理论、信号检测与估值等,还包括原创 2020-07-05 13:31:13 · 914 阅读 · 0 评论 -
深度学习中的数学(三)——概率统计
文章目录一、事件1.1 随机事件1.2 事件的运算二、排列与组合2.1 排列(有序)2.2 组合(无序)三、概率3.1 古典概率3.2 抽样3.3 条件概率、联合概率、边缘概率3.4 概率运算3.5 事件独立性3.6 事件互斥性3.7 全概率3.8 贝叶斯定理3.9 朴素贝叶斯四、概率分布4.1 概率分布4.2 离散分布4.2.1 伯努利分布(0-1分布/两点分布)4.2.2 二项分布4.2.3 泊松分布(poisson distribution)4.3 期望与方差4.3.1 期望与方差4.3.2 常见分布原创 2020-07-03 18:46:32 · 1069 阅读 · 0 评论 -
深度学习中的数学(二)——线性代数
文章目录一、理解线性1.1 线性方程组1.2线性代数的角度理解过拟合1.3 线性可分与线性不可分1.3.1 与(&)、或(|)、抑或(^)1.4 张量1.5 范数一、理解线性1.1 线性方程组AX=B1.2线性代数的角度理解过拟合过拟合:参数量过多,数据过少(这里数据等价了)解决:减伤参数量,增加数据量正常情况:欠拟合:参数量过少,数据过多(这里不等价)解决:增加参数量1.3 线性可分与线性不可分线性可分的定义:线性可分就是说可以用一个线性函数把两类样本分开,比如二原创 2020-07-02 17:00:49 · 555 阅读 · 0 评论 -
深度学习中的数学(一)——高等数学
文章目录一、初等函数与基本初等函数1.1 基本初等函数1.1.1 常函数1.1.2 幂函数1.1.3 指数函数1.1.4 对数函数1.1.5 三角函数与反三角函数2.由基本初等函数构成的复合函数被称为初等函数2.1 Sigmoid与tanh2.2 重要的特殊的函数三、反函数四、凸函数与凸集(凸优化问题)五、对偶函数六、优化问题七、极限7.1 极限定义7.2 重要极限(金融的复利问题)八、导数与梯度8.1 导数8.1 定义8.2 导数的几何意义8.3 基本导数公式8.4 偏导与全导8.5 二阶导数8.6 复合原创 2020-07-01 17:16:38 · 1090 阅读 · 0 评论 -
DeepLearing—CV系列(二十四)——语言识别入门
文章目录一、语言识别的几类领域二、音频参数三、波形四、音频格式一、语言识别的几类领域(1)语言识别(2)语言唤醒(3)语言命令(4)声纹识别(5)TTS(文字转语音)(6)语音转图像(7)生成歌曲二、音频参数(1)采样率:每秒采集数据的次数(2)采样精度:每次采集数据的位数1字节(8位):0到255(无符号)-128到127(有符号)2字节(16位):0到65535 -32768到32765(有符号)4字节(32位):0到4294967295 -2147483648到214原创 2020-06-30 18:43:51 · 241 阅读 · 0 评论 -
DeepLearing—CV系列(二十三)——一维卷积或GRU处理电信号、一维卷积、转置卷积的详解
文章目录一、一维卷积1.1 介绍1.2 类别1.2.1 一维Full卷积1.2.2 一维Same卷积1.2.3 一维Valid卷积1.3 具备深度的一维卷积1.4 具备深度的张量与多个卷积核的卷积二、转置卷积2.1 定义2.2 过程2.3 计算2.4 转置卷积的缺点2.5 转置卷积的棋盘效应2.5.1 产生原因2.5.2 解决方案:三、一维卷积应用场景四、转置卷积应用场景五、代码5.1 net.py5.2 sample_train5.3 Train.py5.4 信号拟合效果展示一、一维卷积1.1 介绍原创 2020-06-30 15:55:34 · 4927 阅读 · 0 评论 -
DeepLearing—CV系列(二十二)——DCGAN生成动漫卡通人脸的Pytorch实现
文章目录一、cfg.py二、D_Net.py三、G_Net.py四、Mydataset.py五、Train.py六、效果展示完整代码获取:链接:https://pan.baidu.com/s/1sNocdEfQ3ViVlfZK0NF6zw 提取码:sfx4代码目录:一、cfg.py#opt参数ngf = 96ndf = 96nz = 100img_size = 96batch_size = 100num_workers = 4lr1 = 0.0002lr2 = 0.0002原创 2020-06-29 18:57:31 · 592 阅读 · 2 评论 -
DeepLearing—CV系列(二十一)——基于arcloss实现的人脸识别项目的Pytorch实现
文章目录一、face.py二、Mydataset.py三、Train.py四、use.py五、效果代码目录:一、face.py创建arcsoftmax分类器,创建人脸特征提取器(使用预训练模型)import torchvision.models as modelsimport torch.nn as nnimport torchimport torch.nn.functional as Fclass Arcsoftmax(nn.Module): def __init__(self原创 2020-06-29 18:28:10 · 3829 阅读 · 1 评论 -
DeepLearing—CV系列(二十)——基于MTCNN与centerloss/arcloss实现的人脸识别项目流程
文章目录一、什么是人脸识别1.1 人脸识别的官方解释和通俗解释1.2 人脸识别出现的时间和影响1.3 目前人脸识别在AI领域的地位二、人脸识别的应用2.1 主动身份认证2.2 被动身份认证2.3 人脸识别的盈利模式三、实现人脸识别的流程四、实现人脸识别的方法有哪些4.1 传统机器学习方法4.2 常用深度学习方法五、Mtcnn+centerloss(arcfaceloss)的人脸识别流程5.1 训练一个特征提取器5.2 创建人脸特征库5.3 获取目标人脸特征5.4 对比人脸特征六、关于视频人脸识别的过程七、人原创 2020-06-29 17:14:56 · 918 阅读 · 0 评论 -
DeepLearing—CV系列(十九)——图像分割之U^2-Net(效果极好)的Pytorch实现
文章目录一、u2net.py二、dataloader.py三、train.py四、test.py五、crop.py六、效果展示代码目录:一、u2net.pyEN_1:2次卷积、5次下采样、1个空洞卷积、5层上采样(每次差值上采样都需要做一次卷积)。连续池化会造成特征丢失,每做一次池化前都做一次特征图与通道不变的卷积进行特征融合。池化也可以改为步长为2的卷积。import torchimport torch.nn as nnfrom torchvision import modelsimp原创 2020-06-29 15:38:45 · 3625 阅读 · 17 评论 -
DeepLearing—CV系列(十八)——图像分割之U-Net的Pytorch实现
文章目录一、nets.py二、Mydataset.py三、Train.py一、nets.pyimport torchfrom torch.nn import functional as Fclass CNNLayer(torch.nn.Module): def __init__(self, C_in, C_out): super(CNNLayer, self).__init__() self.layer = torch.nn.Sequential(原创 2020-06-29 10:49:47 · 487 阅读 · 0 评论 -
DeepLearing—CV系列(十七)——图像分割模型U-Net、U-net++、U^2-Net、DeepLab的理论详解
文章目录一、什么是图像分割二、图像分割的应用三、图像分割的发展四、图像分割的分类4.1 普通分割4.2 语义分割4.3 实例分割五、图像分割的结构5.1 图像下采样方法5.2 图像上采样方法六、图像分割的模型6.1 FCN(Fully Convolutional Networks)6.2 U-Net6.3 U-Net++6.3.1 U-Net++6.3.2 U-Net++的深监督(deep supervision)6.3.3 U-Net++的剪枝6.4 DeepLab七、图像分割的评估7.1 Dice系数7原创 2020-06-28 14:26:58 · 1107 阅读 · 0 评论 -
DeepLearing—CV系列(十六)——基于Pytorch实现的编解码结构之Seq2Seq实现验证码识别
文章目录一、认识编解码网络(encoder-decoder)二、解编码网络结构2.1 编码过程(Encoder)2.2 解码过程(Decoder)2.3 Seq2Seq生成对联的过程三、Seq2Seq网络的应用四、基于编解码模型实现的验证码识别4.1 验证码识别的原理和过程五、代码5.1 gen_num.py5.2 sampling.py5.3 nets.py5.4 Train.py首先解释一下Seq2Seq的意思:序列到序列常用编解码结构:AE模型,VAE模型,GAN,U-Net一、认识编解码网络(原创 2020-06-28 13:27:59 · 592 阅读 · 1 评论