- 博客(205)
- 资源 (30)
- 收藏
- 关注
转载 PyTorch中model.modules(), model.named_modules(), model.children(), model.named_children()的详解
文通过一个例子实验来观察并讲解PyTorch中model.modules(), model.named_modules(), model.children(), model.named_children(), model.parameters(), model.named_parameters(), model.state_dict()这些model实例方法的返回值。例子如下:import torch import torch.nn as nn class Net(nn.Module):
2022-05-26 14:09:45
5646
3
原创 PointRend的原理与代码解读
PointRend的提出是为了解决实例分割精度不高的问题,当然也可以应用到语义分割上。PointRend是如何解决分割结果精细度不高的问题呢?下面回顾一下语义分割领域最经典的FCN模型。FCN语义分割思想:对原始图像经过不断的卷积和池化,得到高语义低分辨率特征,然后进行分类,分类后直接上采样(线性插值类算法)到与图像大小一致的结果,这样必然会导致分割结果很粗糙,尤其是边界部分误差很大。(代码层面上实现,有一种是原始图像经过卷积池化后,上采样到原始图像大小后再进行像素级的分类预测)后面..
2022-05-11 17:45:37
2425
转载 准确率(Precision)、召回率(Recall)、F值(F-Measure)、平均正确率,IoU
准确率(Precision)、召回率(Recall)、F值(F-Measure)、平均正确率(Average Precision, AP),IoU_初识-CV的博客-优快云博客_平均正确率
2022-04-15 16:49:10
681
转载 PyTorch二分类时BCELoss,CrossEntropyLoss,Sigmoid等的选择和使用
这两天我们有一篇顶会的论文需要Minor Revision,reviewer说让我们在网络图中把fully connected layer画出来。对到底应该画图、画到多详细有点疑问,所以简单总结一下。我们在论文中解决的是一个二分类的问题,我们说hidden state送入fully connected layer+sigmoid做分类,但没有在网络图中画出来,有reviewer就让我们改图了。不过画了fully connected layer,还需要画sigmoid吗?这里就总结一下使用PyTorc..
2022-04-15 16:13:46
2181
转载 轮廓提取试验-将重叠的轮廓分割开成单独的轮廓
轮廓提取试验_wd1603926823的专栏-优快云博客_distance_transform_edt
2022-01-11 09:56:31
553
原创 Python OpenCV提取物体轮廓
通常提取物体的轮廓时,图像都存在噪声,提取效果并不理想。如提取下图的轮廓时,提取代码:import cv2img = cv2.imread("mouse.png")cv2.imshow("origin",img)gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)ret,binary = cv2.threshold(gray,128,255,cv2.THRESH_BINARY)cv2.imshow("binary",binary)contour
2021-10-21 14:20:36
16900
1
原创 语义分割标签提取
图像语义分割开源数据集中的标签通常是多类的,并不一定适合实际场景的应用。比如某个场景只需要分割道路,其他场景都是背景。这就需要提取对应场景的标签。比如马赛州的语义分割数据集集包含了建筑和道路。如果只需要分割道路,那需要把道路的标签提取出来。 知识点:图像是RGB三通道颜色组成,原图中颜色越接近红色的地方在红色通道越接近白色。在纯红的地方在红色通道会出现纯白。绿色、蓝色也是同样的道理。'''通常做语义分割的时候,可能标签是多个语义的标签,如果你需要做二分割,比如水体,背景,那么存在将...
2021-10-19 16:57:01
2452
原创 深入浅出人脸特效之Mask实战应用-墨镜特效-腾讯课堂
https://ke.qq.com/webcourse/3455011/103592786#taid=11501694788876323&vid=5285890816601107194
2021-08-10 16:25:30
446
转载 语义分割标签——mask的读取与保存
目录一、灰度模式与调色板模式二、两种模式对应的读写方法三、语义分割mask可视化一、灰度模式与调色板模式我们标注好的文件,或者通过模型预测出的结果,通常保存为.png格式的图片。不同于RGB图像,其保存的位数为8位,或是灰度图、或是调色板图;在PIL格式中,我们通过查看其mode属性,能够发现其区别。我们使用VOC2012中的两个mask图片:'2007_000032.png'、'2007_000033.png',其样式分别为:其mode属性分别为:...
2021-08-06 16:27:52
5906
原创 位深度为8的PNG图像可以表示彩色数据的原因
搞图像分割是时候使用到PASCAL-VOC数据集,在查看mask时候发现png图像是彩色的,但是查看图像属性的时候发现图像的位深度是8,一下子有点蒙:度娘,谷娘,......索引图,就是带调色盘(palette),调色盘内定义了若干颜色。8位深度,是指在8位索引图下,调色盘最大颜色数为8位,也就是256色,然后每个像素用1个字节表示该像素为第几个颜色,显示图像时查表得到对应的颜色。PNG支持索引图,...
2021-08-06 10:45:30
2427
原创 图像增强的方法
增强亮度的方法1、梯度直方图均衡传统的梯度直方图均衡是针对单通道图像的,对于多通道图像的方法有很多。方法一:转换颜色空间到YCR,然后分离通道,对0通道进行梯度直方图均衡,合并通道,转换回BGR颜色空间'''彩色图像梯度直方图'''def hisEqulColor(img): ycrcb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) channels = cv2.split(ycrcb) print(len(channel
2021-05-14 14:35:25
2286
原创 OpenCV图像中关于坐标转换的问题
在图像处理中,经常需要对图像内的一些轮廓进行特殊处理,这时候可能需要使用坐标转换功能。例如下面的轮廓中,在找到最小外接矩形后,就需要对轮廓已最小外接矩形的坐标进行处理。在一幅图像的坐标系中,通常将左上角坐标作为原点(0,0),水平向右和垂直向下的方向分别为x轴和y轴的正方向,称为 XY 坐标系。现以最小 外 接 矩 的 一 个 顶 点 为 坐 标 原 点,两条垂直邻边为坐 标 轴 建 立 新 坐 标 系,称为 AB坐标系。两个坐标系平移和旋转的变化关系如图所示:如上图所示,在 AB坐标系内
2021-02-04 11:24:07
5161
5
原创 爬虫
Jsoupjsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。HttpClientHTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功
2020-12-22 14:46:10
194
原创 Android实现登录界面和跳转界面
MainActivity:package com.example.myapp;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;//public class Mai.
2020-08-12 17:44:48
11742
1
原创 界面方式调试HSV或者RGB颜色范围
import numpy as npimport cv2def nothing(x): passdef mask(image): hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 将捕获的视频帧由RBG转HSV # lower_red = np.array([0, 0, 0]) # upper_red = np.array([255, 255, 255]) lower_red = np.array([20, 1.
2020-07-29 10:16:46
418
原创 深度学习设计
1、目标检测领域:不提倡使用预测框坐标与GT坐标的差值进行损失函数统计,因为坐标差值会受坐标尺寸大小影响,坐标尺寸大的时候,差值相对大,坐标尺寸小,差值相对小。改进:使用IOU,IOU不受坐标尺寸因素的影响。(两种坐标表示方法:(左上角,右下角)(中心点,长,宽))...
2020-06-26 12:27:37
533
原创 暗通道去雾算法
https://blog.youkuaiyun.com/wsp_1138886114/article/details/84228939###https://www.cnblogs.com/echoboy/p/10924868.html针对天空去雾效果不好的现象进行https://blog.youkuaiyun.com/liujiandu101/article/details/80344053
2020-06-16 17:05:05
233
原创 深度学习评估参数
True Positive(TP):原来是正样本,预测结果为正样本;目标识别中,把目标给框出来了True Negative(TN):原来是负样本,预测结果为负样本;目标识别中,负样本就是背景之类False Positive(FP):原来是负样本,预测结果为正样本→ 误报 (Type I error);目标识别中,把背景识别成某个目标了False Negative(FN):原来是正样本,预测结果为负样本→漏报 (Type II error)。目标识别中,没有把目标识别出来,把他看成是背景了精..
2020-06-10 14:49:19
665
原创 使用pytorch实现crnn
改动点:(1)把传统的卷积改造成深度可分离卷积;(2)使用pytorch实现的ctc,不再使用百度开源的warpctc,主要原因是本人使用Windows来开发调试,编译warpctc貌似很麻烦;crnn网络实现代码:class BidirectionalLSTM(nn.Module): def __init__(self, nInput_size, nHidden,nOut): super(BidirectionalLSTM, self).__init__(.
2020-06-09 15:33:48
7731
10
原创 使用 深度可分离卷积(Depthwise Separable Convolution) 改造CRNN网络
深度可分离卷积(Depthwise Separable Convolution)能够使得网络的参数大幅度减少,本文拟在改造CRNN,看看参数量的变化情况:改造前crnn网络的cnn部分网络代码:class CNN0(nn.Module): def __init__(self,imageHeight,nChannel): super(CNN0,self).__init__() assert imageHeight % 32 == 0,'image Heigh
2020-06-08 16:13:52
909
1
原创 使用kmean进行图像分割 使用CRFs进行分割后处理
存在需要解决的问题:1、kmean是随机聚类的,当设置K值后,每次聚类完后分配的标签也是随机的,如果直接根据聚类后的标签给着色,客户每一次聚类后发现颜色都跟上一次不一样,又开始哔哩哔哩了;2、可通过设置kmean的参数cv2.KMEANS_USE_INITIAL_LABELS,可一定程度上降低每次运行后标签变动太大,但不能彻底解决这个问题;3、可通过改变kmean聚类的标签来实现,每次在标签图上着色的颜色位置都是固定的。简单的方案:(1)对聚类标签的数量进行统计,按占比例大小进行从小到大排序
2020-06-01 17:03:18
1449
原创 李宏毅深度学习课程笔记 -卷积神经网络
1、卷积神经网络特适合image处理,其设计理念:现象1:现象2:现象3:总结summary:(1)对于图像中的patterns(比如猫的耳朵,嘴巴等),通常比整张图像小很多。神经网络的每一个neuron,相当于一个basic classifier,只对其识别的pattern激活。故设计卷积神经网络处理图像时,设计每一层卷积包含多个卷积核filter,每一个filter负责识别一个pattern。其实卷积层的每一个filter相当于full connect layer的一
2020-05-30 11:01:16
279
原创 pytorch实现 分组卷积 深度可分离卷积
常规卷积:常规卷积需要的参数量:Cin×K×K×Cout分组卷积:分组卷积需要的计算量 :Cin×K×K×Cout / g 深度可分离卷积(Depthwise Separable Convolution): 需要的计算量:Cin×K×K+Cout×1×1实现:import torchfrom torchsummary import summaryimport torch.nn as nn'''实现分组卷积demo'''class ...
2020-05-28 15:13:32
6924
4
原创 A Beginner guide to Deep Learning based Semantic Segmentation using Keras
A Beginner's guide to Deep Learning based Semantic Segmentation using KerasDivam Gupta06 Jun 2019Pixel-wise image segmentation is a well-studied problem in computer vision. The task of sema...
2020-05-28 09:44:13
540
原创 Depthwise Separable Convolution详解
常规卷积运算假设输入层为一个大小为64×64像素、三通道彩色图片。经过一个包含4个Filter的卷积层,最终输出4个Feature Map,且尺寸与输入层相同。整个过程可以用下图来概括。此时,卷积层共4个Filter,每个Filter包含了3个Kernel,每个Kernel的大小为3×3。因此卷积层的参数数量可以用如下公式来计算:N_std = 4 × 3 × 3 × 3 = 1...
2020-05-27 17:07:41
777
原创 文字检测篇-传统篇
文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检测的场景主要分为两种,一种是简单场景,另一种是复杂场景。其中,简单场景的文字检测较为简单,例如像书本扫描、屏幕截图、或者清晰度高、规整的照片等;而复杂场景,主要是指自然场景,情况比较复杂,例如...
2020-05-27 16:32:32
5341
原创 from scratch implement crnn using pytorch :读取训练数据
知识点: torch.nn.ReLU(inplace=True)中inplace的作用 在文档中解释是:参数: inplace-选择是否进行覆盖运算意思是是否将得到的值计算得到的值覆盖之前的值,比如:x = x +1即对原值进行操作,然后将得到的值又直接复制到该值中而不是覆盖运算的例子如:y = x + 1x = y这样就需要花费内存去多存储一个变量y,所以nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=
2020-05-15 17:16:23
500
原创 pyorch 通过前三个数预测后一个数的模型代码demo
相关知识:使用scatter_进行one-hot编码scatter_(self, dim, index, value)将src中数据根据index中的索引按照dim的方向填入value值,这个函数可以从转换成onehot编码来理解 LSTM返回output、hidden和cell output, (hidden,cell) = self.LSTM(x) RNN返回output、hidden output, hidden= self.RNN(x)# -------..
2020-05-14 14:50:08
383
原创 pytorch入门三 数据类型与函数
张量 pytorch中提供了不同数据类型的张量:cpu情形下:通用类型 torch.Tensorfloat型 torch.FloatTensordouble型 torch.DoubleTensorint型 torch.IntTensorlong型 torch.LongTensorbyte型 torch.ByteTensorgpu情形下:float型 torch.cuda.FloatTensordouble型 torch.cuda.DoubleTensor..
2020-05-09 16:26:03
1849
原创 pytorch入门二 使用pyplot动态展示函数拟合过程
相关知识:均方损失函数:这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标。很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数。因为一般损失函数都是直接计算 batch 的数据,因此返回的 loss 结果都是维度为 (batch_size, ) 的向量。(1)如果 reduce = False,那么 size_aver...
2020-05-08 16:28:59
351
原创 pytorch入门一 实现简单的线性函数
api知识:torch.unsqueeze()这个函数主要是在指定维数对数据维度进行扩充torch.squeeze()与torch.unsqueeze()相反,删除维数为1的维度import torchimport torch.nn as nn#生成-100到100的1000个等差数列x = torch.linspace(-100,100,1000)#在指定位置dim...
2020-05-08 14:21:15
654
原创 pytorch学习之nn.Sequential类—使用Sequential类来自定义顺序连接模型
前言:类似于keras中的序贯模型,当模型较简单的时候,可以使用torch.nn.Sequential类来实现简单的顺序连接模型。Sequential类是继承自Module类的Sequential类的定义:class Sequential(Module): # 继承Module def __init__(self, *args): # 重写了构造函数 def _get_...
2020-05-07 16:58:56
1495
原创 OpenCV:如何去除票据上的印章
最近在做票据识别的编码工作时遇到一些问题,就是票据上往往会有一些红色印章把一些重要信息区域给覆盖了,比如一些开发票人员盖印章时比较随意,容易吧一些关键区域给遮蔽了,这让接下来的票据识别很困难,因此,我们必须先对票据图像进行一定的预处理来移除印章干扰,再进行字符识别,这样子识别准确率才有保证。我们从简单例子说起,比如我们有以下一张票据,上面盖有红色印章,虽然该印章没有遮挡关键信息,但...
2020-05-07 15:13:05
2288
1
原创 简单总结一下图像处理中概念
二值化两种方法,全局固定阈值二值化和局部自适应阈值二值化全局固定阈值很容易理解,就是对整幅图像都是用一个统一的阈值来进行二值化;局部自适应阈值则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值。离散傅里叶变换图像高频部分代表了图像的细节、纹理信息;低频代表了图像的轮廓信息。低通-》模糊 高通-》锐化 腐蚀和膨胀是针对白色部分(高亮部分)而言的。膨胀就是对图像高亮...
2020-05-07 15:12:33
319
Cadence’s_Solution_for_High-Speed_Design.ppt
2010-08-09
CADENCE PSD14入门教程.pdf
2010-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人