- 博客(15)
- 收藏
- 关注
原创 torch.where 另类用法
一般情况下torch.where得到传参为condition, a,b返回得到一个tensor另一种用法为,a和b皆为两个布尔型两维tensor,shape相同c=torch.where(a&b)(a&b就是a与b,其实是一个tensor)则回返回两个tensor d,e,d是0维的index,e是1维的index,两个合在一起就是返回a和b中都是True的位置索引...
2021-11-10 10:52:17
1121
原创 gitlab远程创建分支并push代码
git checkout -b dev删除不需要的文件 git add.git commit -m “***”git push 项目名 dev
2021-07-23 09:41:52
399
原创 新版mmdetection训练自己的数据集
配置最好的情况是按照mmdetection的文档介绍,一步一步走。pytorch1.5没有配置成功。pytorch1.3基本可以很顺利的配置好,但是要注意的是cuda的版本问题。voc数据集用labelimg或其他工具标注好的voc数据集,按照mmdetection中文档的介绍的格式放好就行。以上两个步骤不是最主要的。训练选取好自己想用的head模型,比如faster rcnn或者retinanet。因为mmdetection经历了一次大的更新,很多地方都有了变动。1.关于文件路径 和clas
2020-05-20 15:02:50
2359
原创 关于two-stage的通用训练过程
无论是目标检测,还是一个end-to-end的文本检测识别,只要是two-stage,都是分为 rpn和roi。为什么一定要分为两部分。因为目标检测还有一个隐功能(分类),文本检测识别还有一个识别功能。这第二个功能都是要交给roi去做。其实可以把roi当作一个独立的模块,前面的rpn只是用来给roi提供一个区域让它去分类或者识别。因此roi一般要做(loss函数)就是分类损失或者是回归损失,公式就不写了,没有意义。上段提到了rpn是给roi提供区域的,因此rpn的loss函数分为两部分,第一,回归损失,
2020-05-14 10:40:32
760
原创 FOTS: Fast Oriented Text Spotting with a Unified Network训练阶段
在训练阶段,shared featuremap进了detection branch之后得到的scoremap和geomap没有输入到roirotate去算recognitionloss,而是单独计算detection loss,recognition loss 用groundtruth输入到roiratate来计算
2020-05-14 09:47:25
241
原创 ValueError: num_samples should be a positive integer value, but got num_samples=0
报这个错显示是data_loader,先去看看dataset是否读取成功,print (len(dataset))看长度是否为0.是0可能是路径有错
2020-05-12 10:59:33
13141
19
原创 faster rcnn中rpn层关于前景背景的处理方式
在经过4个下采样层获得feature map之后,这个featuremap会分别做两次卷积,一个卷积用于做前景背景的分类,另一个用于做boungding box的回归。前者的outfeature 数量为一个像素点对应anchor的数量,后者为前者数量*4(xywh)。本文分析前者。define bg/fg classifcation score layer self.nc_score_...
2020-05-08 10:45:52
963
5
原创 Pytorch 利用imagefolder类划分train,test数据集
在torch.utils里有一个imagefolder类可以自动加载一个总文件夹下的各个类的图片和它的对应label,但是没有划分train和test的功能。另一个原因是在初始化的时候必须要声明transform,但是train和test的transform经常不同。train_datasets = datasets.ImageFolder(train_dir)train_size = int...
2020-04-22 16:18:18
2925
3
原创 pytorch 并行训练之后的模型
报错:Unexpected key(s) in state_dict: “module.conv1.0.weight”这是由于并行训练导致的解决办法,读取模型的时候,去掉module的前缀就好了from collections import OrderedDictstate_dict=torch.load(’./trained_model/dense169_110.pth’)new_st...
2020-04-22 15:57:22
480
原创 st-gcn (图卷积和时间卷积)
tcn的过程是比较容易理解的,st-gcn的输入是(n*m,c,t,v),第一个维度是batchsize(视频数乘以人数),第二个维度是特征数,一开始是3,t是时间帧,v是关节数。首先理解它的数据结构:其实表面看就是和图片一样(batchsize,channel,w,h),channel一开始也是3(rgb),但是区别是,graph矩阵的t和v这两个维度是相互独立的,t代表时间,v代表节点数,这个...
2020-04-01 11:57:49
6019
原创 3d卷积核
需要以3d的思维去考虑feature map,比如用773的卷积核去卷积,77是对feature size进行卷积,和2d一样,3是对feature map的数量进行卷积。如果有两个卷积核那么就在卷积基础上乘以2。一个20208的featuremap 经过3个77*3的卷积核卷积之后的总数应该是(8-3+1)*3...
2020-03-24 15:47:45
1107
原创 高斯噪声的意义
实际应用中因为图像采集设备、自然环境因素等诸多原因,导致所处理的图像和“本真”图像有差异,这一部分差异就是噪声。用MATLAB等仿真手段对算法进行仿真时,所用的基础图像是“本真”图像,为了验证其算法的有效性,需要在“本真”图像上加上噪声,才能达到类似于“实际”图像的效果,也只有考虑了噪声,算法仿真结果才具有说服力。...
2020-03-17 17:22:03
2831
1
转载 heatmap
Heatmap即将每一类坐标用一个概率图来表示,对图片中的每个像素位置都给一个概率,表示该点属于对应类别关键点的概率,比较自然的是,距离关键点位置越近的像素点的概率越接近1,距离关键点越远的像素点的概率越接近0,具体可以通过相应函数进行模拟,如Gaussian等,如果同一个像素位置距离不同关键点的距离大小不同,即相对于不同关键点该位置的概率不一样,这时可以取Max或Average。原文链接:ht...
2020-03-13 09:39:01
243
原创 如何表示一个map上的一个区域
给一个ground truth map,像素值为1代表一个region, single_kernel_mask = gt_kernel_i == 1,single_kernel_mask就代表了这个区域
2020-03-11 16:27:29
199
原创 关于mask的暂时理解
就跟子网掩码类似,判断是否属于同一个类,对于maskrcnn或者pan处理的training_mask,给每个类按index基于一个标签。比如首先对数据label处理一个scoremap,text region为index【i】,周围是0,输出的时候每个pixel与label做and运算,如果都为index【i】即为1,不是即为0(类似掩码),相同输出1,0和0输出0,不同输出0...
2020-03-10 11:48:30
554
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人