opencv findcontours原理,opencv findcontours用法
Pytorch——计算机视觉工具包:torchvision torchvision独立于Pytorch,必须通过pip安装。
火炬视觉有三个主要部分:
模型:为深度学习提供经典的网络结构和训练模式,包括Alex Net、VGG系列、ResNet系列、Inception系列等。数据集:提供常用数据集的阅读。所有设计都继承torch.utils.data.Dataset,主要有MMIST、CIFAR10/100、ImageNet、COCO等。Transforms:提供常用的数据预处理操作,主要包括处理张量和PIL图像对象。1.modelsfromtrochvisionmortmodelsfromtrochimortnn #加载预训练模型。如果不存在,net 34=models . resnet 34(pre-training=tr rained)num _ classes=1000(resnet 34 . fc=nn . linear)512,10) 2。datasetsfromtrochvisionimportdatasetsfromtovisionimportransformstransform=t.com pose([T . resize]224)224 * 224图像从图像的中心(T.ToTensor),将# Image图像转换为张量,[0,1]1]T . normalize]mean=[0=[0,1]指定归一化为T . normalize()dataset=datasets . mnist)的均值和方差,download=True,train=False,transform=transform(len)。
4.make_grid和save_img torchvision还有两个常用的函数:make_grid,可以将多个图像合并成一个网格。
另一个是save_img,可以将张量保存为图像。
froorchvisionimportdatasetfromtorchvisionimporttransformatstransform=t.com pose([T . resize(224),# image zoom) ii t.centercrop(224)最短边为224像素,从# image的中心转换为224 * 224 image T . ToTensor,并将# Image转换为张量,然后选择[0,1]1]T . normalize]mean 1)指定归一化均值和方差()(dataset=datasets.mnist),download=True,train=False,transmission=transmission(transmissionutils。data import data loader data loader=data loader)数据加载器,shuffle=true(fromtorvision。utilmportMake _ grid,save _ image数据ITER=ITER(数据加载器)img=make_grid) save_image(img, a.png )。
5.可视化工具希望在训练神经网络时,能更直观地了解损耗曲线、输入图像、输出图像、卷积核的参数分布等训练情况。这些信息有助于更好地监控网络训练过程,为参数优化提供方向和依据。
最简单的方法是打印,但是有打印数字信息的功能,不直观,看不到分布,图像,声音等。
本节重点介绍深度学习中常用的可视化工具Tensorboard和visdom。
5.1.Tensorboard需要安装Tensorstream和Tensorboard_logger。
pip 3 installtensorboard _ logger python-mvisdom . server
张量板1.8.0at http://桌面-u3r9MCE :6006
3358台式机-u3r9MCE :6006
而TensorboardX是为Pytorch开发的。
5.2.VISDOM的使用参考:https:
//ptorch.com/news/77.html
1)使用方法概括为以下步骤:
1)安装visdom pip3的cmd命令行安装visdom
2) cmd命令行启动服务器python -m visdom.server
3)浏览器访问:http://本地主机:8097
4)构建要在Python编辑器中可视化的代码:
例如:
import visdo import numpy as NP import torch as tvis=visdom . visdom()import visdom #创建新连接client # specify env=utest1 ,默认端口为8097,Is localhost x=t.arange (1,30,0.01) y=t.sin (x) vis.line (x=x,y=y,win= sinx ,opts={title: y=sin (x)})
2)Visdom可视化接口Visdom支持以下API。可视化支持由Plotly提供。
可视化散点图:2D或三维散点图可视化线:折线图可视化系统:系统图可视化系统:热图可视化系统:条形图可视化系统:柱状图可视化系统:柱状图可视化系统:箱线图可视化系统:曲面图可视化系统:等高线图可视化系统。颤:画一个二维矢量场vis . image:picture vis . text:text vis . mesh:grid graph vis . save:serialization state这些API的确切输入类型是不同的,虽然大多数API的输入包括一个张量X(保存数据)和一个可选的张量Y(保存标签或时间戳)。的所有绘图函数都接收一个可选参数win,该参数用于在特定窗口上绘制图片。每个绘图函数也返回当前绘图的win。还可以指定将导出的图形添加到哪个env。
(这里的窗口是指前面提到的窗格)。
链接到这个部分:https://blog.csdn.net/u012436149/article/details/69389610
import visdo import numpy as NP import torch as t # vis=visdom . visdom()#创建新的连接client # specify env=utest1 ,默认端口是8097,Is host localhost vis=visdom . visdom(env=u test1 )x=t . arange(1,30,0.01) y=t.sin (x) vis.line (x=x,y=y,win= sinx ,Opts={title: y=sin(x)numpy ()) #可视化一个随机的彩色图片vis.image (t.randn (3,64,64)。numpy Win=random2)#可视化36个随机彩色图片,6个Vis。每行中的图像(T. randn (36,3,64,64)。Numpy(),nrow=6,win= random3 ,opts={title: random _ imgs ) #在范围(0,10)内追加ii的数据:# y=x x=t . tensor([ii])y=xvis . line(x=x,y=y,win= plural ,Update= append if ii0 elsenone)# Update trace添加新的一行x=t.orange (0,9,0.1)y=(x * * 2)/9vis . Update trace(x=x
让我们逐一分析这几行代码:
-vis=visdom。Visdom(env=utest1 ),用于构建客户端。除了指定env之外,客户端还可以指定主机和端口等参数。-vis作为一个客户端对象,可以使用常见的画图函数,包括:-line:类似于Matlab中的plot 操作,用来记录一些标量的变化,如损耗、精度等。-image:可视化图片,可以是输入图片,GAN生成的图片,也可以是卷积核的信息-text:用于记录日志等文本信息,支持html格式-histgram:可视化分布,主要查看数据和参数的分布情况-scatter:绘制散点图-bar:绘制直方图-pie:绘制饼图-更多操作请参考visdom的github主页。这里主要介绍深度学习中常见的线条、图像、文本操作。
Visdom同时支持PyTorch的tensor和Numpy的ndarray两种数据结构,但不支持Python的int、float等类型
,所以每次传入时都需先将数据转成ndarray或tensor
。上述操作的参数通常是不同的,但是有两个参数是大多数操作都具有的:Win:用于指定窗格的名称。如果没有指定,visdom将自动分配一个新的窗格。如果两个操作指定的win名称相同,新操作将覆盖当前窗格的内容,因此建议为每个操作重新指定win。Opts:选项,接收字典。常见选项包括title、xlabel、ylabel、width等。主要用于设置窗格的显示格式。如前所述,每一次操作都会覆盖之前的值,但往往我们需要在训练网络的过程中不断更新值,比如丢失的值。此时,我们需要指定参数update=append ,以避免覆盖之前的值。除了使用update参数,还可以使用vis.updateTrace方法来更新图形,但是updateTrace不仅可以添加独立于指定窗格上现有数据的跟踪,还可以像update=append 一样在同一跟踪上追加数据。
图像的绘制功能可以分为以下两类:图像接收2D或3D矢量,HWHW或3HW3HW,前者是黑白图像,后者是彩色图像。Images接收一个四维向量NCHWNCHW,CC可以是1也可以是3,分别代表黑白和彩色图像。可以实现类似torchvision中make_grid的功能,将多张图片拼接在一起。图像也可以接收二维或三维向量,其功能与图像一致。#想象一张随机的黑白图片与图像(t.randn (64,64))。numpy ()) #可视化一个随机的彩色图片vis.image (t.randn (3,64,64)。numpy(),win= random2) #可视化36张随机彩色图片,6 Vis。连续的图像(T. Randn (36,3,64,64)。Numpy(),nrow=6,win= random3 ,opts={title: random _ imgs})对比超深网DiracNet的ResNet: PyTorch实现:
https://blog . csdn . net/uwr 44 uouqcnsuqb 60 ZK 2/article/details/78536813