自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 语义分割融合跨特征层信息

简介    语义分割的基本任务是为每个像素产生高层次表达,即具备高语义性的特征,现有的基于FCN网络的编码器-解码器范式,通常需要在Backbone网络后设计一个语义头来增强特征图的语义表达能力,然而CNNs下的卷积池化操作在提取特征的同时丢失了底层的纹理细节。总的来说,编码器-解码器结构下的语义分割网络,高层次特征和低层次特征分布在网络两端,高层次特征具备语义性但丢失低层细节,低层次特征语义性差但细节丰富。此外,在常见的resnet作为基准网络下,不同stage关

2021-11-10 15:52:09 3086 2

原创 Pytorch自定义损失,关于ignore_index的处理

自定义损失        我们知道对于分割任务而言,一般来说会采取交叉熵作为分类损失,但是有的时候我们需要自定义损失,这个时候可能需要自己处理ignore_index。这里简单提一下ignore_index的含义,对于给定的groundtruth,有的label实际上是不会到的,如cityscapes数据集中就设置了一些mask的标签为255,代表着标签为255的像素不会参与训练,也不会参与评价指标的计算。既然不会参与训练,我

2021-10-13 16:08:04 8455 1

原创 Leetcode刷题之二叉树篇(四)

二叉树篇98. 验证二叉搜索树思路1:对二叉树进行中序遍历,如果是二叉树搜索树 自然遍历序列是升序的。因此采取数组保存中序遍历结果,如果前一个元素大于等于后面一个元素 则返回False思路2:对二叉树进行中序遍历,如果是二叉树搜索树 自然遍历序列是升序的。采取一个成员变量preVal遍历记录上一次中序遍历的结果,然后与当前值比较即可# 思路1class Solution(object): def __init__(self): self.nums = []

2021-10-09 19:29:47 224

原创 Leetcode刷题之二叉树篇(三)

二叉树篇404. 左叶子之和思路1:先找到二叉树中的叶子节点,然后对叶子节点的 左叶子求和。左叶子可以通过,该叶子节点是其父亲节点的左孩子确定。如果二叉树只有根节点这种特殊情况,左叶子和为0class Solution(object): def __init__(self): self.sum = 0 def sumOfLeftLeaves(self, root): if not root.left and not root.right: retu

2021-10-06 00:24:29 176

原创 Leetcode刷题之二叉树篇(二)

二叉树篇111. 二叉树的最小深度思路1:二叉树的最小深度需分情况讨论:节点无左孩子,则为右子树深度加1;无右孩子,则为左子树深度加1;左右孩子都有,为左子树和右子树深度较小值加1class Solution(object): def minDepth(self, root): if not root: return 0 if not root.left: return self.minDepth(root.right) + 1 if not

2021-10-04 10:06:36 81

原创 Leetcode刷题之二叉树篇(一)

二叉树篇144. 二叉树的前序遍历思路1:递归遍历,先访问根节点 再访问左孩子节点 再访问右孩子节点思路2:迭代遍历,借助显示栈遍历并访问左子树左节点,并压入栈 并依次弹出再去遍历右子树# 递归class Solution(object): def __init__(self): self.ret = [] def preorderTraversal(self, root): self.dfs(root) return se

2021-09-30 17:48:11 99

原创 Leetcode刷题之链表篇(三)

链表篇2. 两数相加思路1:采取双指针,一一对应相加,过程中记录进位以及考虑双指针是否为空class Solution(object): def addTwoNumbers(self, l1, l2): ret,cin = ListNode(0),0 pre = ret while l1 or l2: if l1 and l2: val = (l1.val + l2.val + cin)

2021-09-27 20:16:56 107

原创 Leetcode刷题之链表篇(二)

链表篇24. 两两交换链表中的节点思路1:引入哨兵节点,采取双指针pre、cur即可class Solution(object): def swapPairs(self, head): auxi = ListNode(0,next = head) pre,cur = auxi,head while cur and cur.next: tmp = cur.next cur.next = tmp.n

2021-09-26 23:43:19 99

原创 Leetcode刷题之链表篇(一)

链表篇06. 从尾到头打印链表思路1:直接遍历链表,存到数组后,利用数组逆序即可思路2:链表+逆序 自然想到使用递归#思路1:遍历class Solution(object): def reversePrint(self, head): nums = [] while(head): nums.append(head.val) head = head.next return nums[::-

2021-09-25 20:44:57 124

原创 Object-Contextual Representations for Semantic Segmentation论文阅读

语义分割目标上下文表示Abstract这篇论文,我们研究语义分割的上下文信息聚合问题。一个像素的标签是该像素属于的目标类别,该方法利用一个像素对应的目标类别的特征表示。首先,在gt分割的监督下学习粗糙的目标区域,其次通过聚合位于目标区域像素的特征表示来 计算目标区域特征表示。最后,计算每个像素和每个目标区域的关系,用目标上下文表示(是所有目标区域特征表示的加权聚合)来增强每个像素的特征表达。代码开源链接:https://git.io/openseg and https://git.io/HRNet.OC

2021-05-17 10:48:44 247

原创 剑指offer刷题之06:从尾到头打印链表

简介思路1:直接遍历链表,存到数组后,利用数组逆序即可思路2:链表+逆序 自然想到使用递归C++版本://思路1:遍历class Solution {public: vector<int> reversePrint(ListNode* head) { vector<int> v; while(head) { v.push_back(head->val);

2021-05-12 09:29:57 102

原创 安装ubuntu系统,保留原始分区数据

最近实验室因为需要必须重装ubuntu系统(桌面版),采取UEFI方式的U盘引导安装,是装在一个4t的机械硬盘里面,但是这个机械硬盘本身整个是被分过区的,没有未分配的空间,在安装ubuntu18.04的时候,提示如果要重新对4t硬盘分区,则所有数据都会丢失。为了保留原始用户数据,这里提供一种解决办法:将4t硬盘外接,用ubuntu系统的电脑挂载这个4t硬盘,然后利用Gparted分区工具对4t硬盘重新划分分区大小,腾出新的分区,再将系统装在新的分区里面,即可保留原始用户数据。接下来具体介绍做法:外接4

2021-01-16 15:58:53 3455

原创 Gated Fully Fusion for Semantic Segmentation论文阅读

Abstract深度卷积网络在语义分割任务上是有效的,但是高层次特征的低分辨率导致在小物体和边界上的分割效果较差(需要细节信息)。考虑引入低层次特征去补偿高层次特征丢失的细节信息是很自然的想法,仅仅结合多尺度特征存在着语义间隔问题。这篇文章提出Gated Fully Fusion(GFF)结构,选择性融合多尺度特征,通过融合强语义高层次特征和细节低层次特征提升特征表达能力,gates用来控制有用信息的传播,减少融合时的噪声。Introduction语义分割的基本任务是为每个像素产生高层次表达:高层次和

2020-12-25 10:19:48 2004

原创 深度学习做实验总结

简介做深度学习相关研究已经好几个月了,作为一个小白,好几个月都没有什么大的进展,无数次的实验失败让我还是有了一些心得体会,这里就算是个人最近的一些失败总结记录吧。接下来主要谈谈做实验和实验记录相关的感想,希望能够提供给大家一点参考。做实验:研究方向这个很重要,但是这个一般是和导师沟通后的结果,这里不多讨论。作为一个深度学习小白,很自然的想法是希望能在一个现有的方法上进行改进,因此选择一个开源并且好的baseline至关重要。没有开源的方法自己去复现很可能达不到论文给出的效果,如果开源代码复现效果也不好

2020-12-01 14:28:48 4166 2

原创 Pytorch可视化语义分割特征图

简介深度学习中有时候可视化特征图是必要的,特别是对于语义分割任务,合理分析特征图也许能够发现新的idea!接下来讲解一种Pytorch框架下的可视化方法,这里采取的网络模型为Deeplabv3+,首先介绍一些背景知识和几个函数的使用方法。通常网络模型中的特征图的shape为[n,c,h,w][n,c,h,w][n,c,h,w],分别代表batchsize, channel, height, width. 换句话说,我们需要处理的特征图实际上是四维度的Tensor,考虑到可视化特征图需要保存目标图像(二维)

2020-11-25 15:30:03 13554 49

原创 CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读

CCNet: Criss-Cross Attention for Semantic SegmentationAbstract上下文信息对于语义分割和目标检测任务都很重要,这里提出CCNet。对于每个像素,criss-cross attention模块能获得其交叉路径上所有像素的上下文信息,通过进一步的递归操作,每个像素最终可以捕获全图像的依赖关系。此外,提出类别一致损失使得criss-cross attention模块生成更具判别性的特征。CCNet有以下优点:(1)GPU显存友好,比non-local

2020-11-19 15:18:02 695 2

原创 pandas处理excel的制表符和换行符

有的时候需要利用现成的深度学习模型去解决实际应用,如使用自然语言处理的bert模型来对菜品分类,即给出菜品的名字,利用模型将其分成小吃、快餐、饮料等类别。但是统计到的表格里面,通常菜名里面会包含奇怪的字符(如制表符和换行符),因此需要进行合适的处理,才能送给网络学习。这里可以看到,"至尊 驴肉火烧"这里就有一个空格符,会带来干扰。于是可以采取下列的pands库的replace语句处理:train['product_name'] = train['product_name'].apply(lambda x

2020-11-10 14:44:46 5062

原创 Joint Semantic Segmentation and Boundary Detection using Iterative Pyramid Contexts论文阅读

简介之前的博客总结有提到过语义分割联合边缘检测进行多任务学习提升性能的思路,Joint Semantic Segmentation and Boundary Detection using Iterative Pyramid Contexts这篇文章也是按照上述思路出发的,但是考虑的任务是语义边缘检测,而不是传统的二值边缘检测,关于语义边缘检测任务可以参考这篇讲解CASENet的博客。语义分割最常用的损失是交叉熵损失,对边界像素这种处于难分状态下的分类效果是不能令人满意的,一方面是因为深度卷积网络的下采样

2020-11-09 20:30:56 1270

原创 语义分割联合边缘检测的多任务学习思路总结

简述2020二维图像语义分割的热点方向是域自适应语义分割(Domain Adaptive Semantic Segmentation),半监督/弱监督语义分割(Semi-Supervised/Weakly-Supervised Semantic Segmentation),少样本语义分割(Few-shot Semantic Segmentation)等。基于Encoder-Decoder结构的网络模型已经将语义分割的性能大大提升,相关研究进入了瓶颈期,大家都在思考从实时性、NAS、图卷积、自监督等其他方面

2020-11-04 20:26:15 10184 2

原创 DecoupleSegNets学习总结

论文简介语义分割(Semantic Segmentation)是在像素级上分类,图像中同一类的像素都要被归为一类,语义分割也会被称作场景解析(Scene Parsing)。现有的语义分割方法要么是通过建模全局上下文信息提升目标内部的一致性,要么通过多尺度融合refine目标边界的细节。Improving Semantic Segmentation via Decoupled Body and Edge Supervision,这篇论文认为,突出性能的语义分割要求明确地建模目标主体和边缘,它们对应于图像的高

2020-10-10 22:10:11 2138 18

原创 Deep Multiphase Level Set for Scene Parsing学习总结

关于深度学习结合传统主动轮廓模型算法,这里推荐一个知乎文章链接,真的是给我带来了很大帮助。最近阅读了卢湖川老师作为通讯作者的一篇关于多相水平集结合深度学习实现场景分割的论文(Deep Multiphase Level Set for Scene Parsing),在这里进行学习总结。...

2020-09-21 16:12:42 825 1

原创 SiamMask_e的使用

之前在使用SiamMask进行目标跟踪时,发现了一个名为SiamMask_e的改进版本,于是有了如下的使用总结:在使用SiamMask_e之前,需要先安装PySOT这个项目,SiamMask_e只是这个项目的添加包(https://github.com/STVIR/pysot)先安装pysot:conda create --name pysot python=3.7conda activate pysot(source activate pysot)conda install numpy#con

2020-09-10 10:36:29 373

原创 卷积神经网络结合水平集方法

水平集方法用于深度卷积网络水平集简介CNN结合Level Set疑惑水平集简介水平集(Level Set)方法是用于图像分割非常受欢迎的方法,其通过比目标维度高一维的水平集函数(LSF)的零水平集隐式地表示曲线,能够自然地处理目标的复杂拓扑变化,如空洞或曲线分裂。一般来说,水平集方法需要在目标周围初始化水平集函数,再基于精心设计的能量函数(由外部驱动力、内部驱动力和正则项组成),通过求解偏微分方程迭代更新水平集函数实现曲线演变,达到最小化能量函数的目标,此时LSF的零水平集即为目标边界。如果对水平集原理

2020-07-23 18:32:03 3039 7

原创 视频目标分割总结

视频目标分割分类最近听了阿里巴巴王文冠老师“基于深度学习技术的视频分割”的讲座,我感到受益匪浅,学习到了许多关于视频目标分割(VOS)的知识,在这里进行整理总结。关于视频目标分割的分类,有的综述文章分为无监督VOS,半监督VOS,交互式VOS,弱监督VOS等,这里将视频目标分割任务分类成无监督VOS,半监督VOS,交互式VOS,背景移除或运动物体分割,视频语义分割/实例分割。1.无监督VOS:在测试阶段,不要求任何用户输入,通常是自动分割视频中最关键,最显著的目标。2.半监督VOS:在测试阶段,用户提

2020-07-06 14:59:25 8099 3

原创 DeepSnake实现实例分割

文章目录简介:环境配置Demo实现全文总结参考文献简介:DeepSnake(Deep Snake for Real-Time Instance Segmentation)作为CVPR 2020 oral论文,在实例分割任务上取得了实时分割效果的同时,还保持着非常不错的性能,该论文作者将深度学习和传统活动轮廓模型中的snake算法结合了起来。首先基于CenterNet目标检测网络获得感兴趣目标的检测框bbox,并取检测框每个边的中点构建菱形轮廓,然后从菱形轮廓中采样得到40个顶点,通过引入圆卷积结构从基于

2020-06-16 16:48:49 5138 81

原创 视频目标分割度量准则

文章目录简介:度量准则参考文献简介:视频目标分割本质上是一个像素级二分类问题,将一个视频序列的前景从背景区域中分离出来。DAVIS系列数据集是随着2016年CVPR的一篇论文逐渐公布的,论文名为《A Benchmark Dataset and Evaluation Methodology forVideo Object Segmentation》[1] ,DAVIS系列很大程度上丰富了视频...

2020-03-15 17:58:04 1411 3

原创 网站开发前后端交互总结

最近一个月接触了如何搭建一个简单的竞赛网站平台,可以描述为:实现简易竞赛网站平台,包括录入学生信息数据库、队员组队、登录队伍账户等功能,然后学生就可以通过这个网站提交课程设计结果文件,查看到队伍排名和历史记录等(类似于打比赛的网站)。这里我们采用的是IDEA作为java语言的开发环境,mysql作为后端数据库,前段页面包括css、html、js等,tomcat作为服务器软件,期间我掌握了许多新东西...

2019-09-28 14:28:49 1011

原创 win10系统HP打印机驱动程序无法使用

win10系统HP打印机驱动程序无法使用实验室的hp打印机之前一直都可以正常使用的,但是有一次使用时出现了异常,显示驱动程序无法使用,如下图所示:针对这个问题,首先尝试了将该打印机设备删除,然后依靠win10系统自带的添加打印机或扫描仪选项(下图),重新连接局域网内的打印机,但是重新安装了设备后,依然没有改变驱动程序无法使用的情况。其次,尝试了使用驱动人生等装驱动软件来进行修复,并没有效果...

2019-08-07 11:31:55 57624

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除