- 博客(140)
- 资源 (3)
- 收藏
- 关注
原创 论文笔记:Towards Robust Image Classification Using Sequential Attention Models(CVPR2020)
本文是来自CVPR2020关于图像分类的文章,作者来自google的DeepMind,提到了Attention Model故记录如下:目录摘要介绍相关工作模型摘要作者希望通过受人类感知启发的注意力模型来增强现代神经网络架构。具体来说,该模型包含了一个受循环自顶向下引导的attention model。实验中,作者发现了几个关于鲁棒性和模型表现值得注意的点,第一:引入at...
2020-03-17 16:48:40 3293 1
原创 COCO格式json切分为labelme可识别json
labelme中shape需要的是多边形的点坐标,存储格式为[[x1,y1], [x2,y2]......]切分的关键在于将coco_json中的annotation信息转化为labelme中shape的坐标信息。coco数据格式相关内容参考之前博客。
2023-10-11 17:34:30 571 1
原创 详解COCO数据格式的json文件内容
在COCO数据集的`annotations`字段中,`segmentation`字段用于描述对象实例的分割信息。2. **`annotations`**:这个部分包含了与图像中对象实例分割相关的注释信息。其中,`size`字段包含掩码的高度和宽度,`counts`字段包含了用一种编码方式表示的二进制掩码。- `category_id`:对象的类别ID,对应于`categories`部分中的类别。4. **`info`**:这个部分包含了关于数据集的一般信息,如数据集名称、描述、版本等。
2023-10-11 11:19:22 2483 1
原创 VOC数据集解析--python实现分离图片训练分类网络
以voc2007数据为例,下载后的数据格式如下:Annotations文件夹里保存的是目标检测用到的.xml文件,文件名是图像名称ImageSets文件夹里面是图像划分的集合 ,打开之后有3个文件夹:Layout、Main、Segmentation,这3个文件夹对应的是 VOC challenge 3类不同的任务。VOC challenge的Main task,其实是classification和detection,所以在Main文件夹中,包含的就是这两个任务要用到的图像集合,如下图所...
2022-04-30 23:05:50 1048
原创 工具类代码记录
1.混淆矩阵(最终show出来的矩阵是小图,窗口方法即是清晰大图)import matplotlib.pyplot as plt# 初始化一个全0矩阵 cls_num为分类的类别数量confusion_mat = np.zeros([cls_num, cls_num])# 根据模型测试阶段的图像GT和pred更新confusion_mat# 画出混淆矩阵plt.matshow(confusion_mat, cmap=plt.cm.Greens)plt.colorbar()for i
2022-03-23 14:46:18 704
原创 tensorflow、pytorch强制关闭GPU释放显存
环境中安装numba然后添加以下代码:from numba import cudadevice = cuda.get_current_device()device.reset()cuda.close()
2021-09-25 19:37:19 1754 1
原创 Keras h5模型转tflite格式(tensorflow1.13.0+keras2.2.4)
转载https://blog.csdn.net/qq_42131061/article/details/106209894测试成功
2021-04-14 20:50:02 433
原创 Python中Matplotlib的点、线形状及颜色(绘制散点图)
我们在Python中经常使用会用到matplotlib画图,有些曲线和点的形状、颜色信息长时间不用就忘了,整理一下便于查找。安装matplotlib后可以查看官方说明(太长不贴出来了)from matplotlib import pyplot as plthelp(plt.plot)常用颜色:'b' 蓝色'g' 绿色'r' 红色'c' 青色'm' 品红'y' 黄色'k
2021-02-01 19:49:20 116005 11
原创 阿里云实现frp内网穿透并挂载多台服务器
承接上文https://blog.csdn.net/hesongzefairy/article/details/105543161之前将内网的服务器通过frp内网穿透挂上了外网的阿里云,离校的同学们也可以愉快的访问内网服务器,但是当时只有一台内网服务器挂上了阿里云,现在尝试一个阿里云挂载多台内网服务器原理如下:原理解释:内网服务器无论是一台还是多台,和阿里云服务器的通信端口只能是同一个端口,也就是图中的bind_port(阿里云通信端口)和server_port(内网服务器)都是通过50
2021-01-14 11:17:59 1904 2
原创 如何关闭终端后保持ssh远程连接运行程序不终止(tmux基本操作)
一般使用服务器都是通过ssh远程访问,一旦代码跑起来不小心关闭终端则代码也会随之终止,原因就在于这种情况下,代码运行的会话和终端是绑定了,终端关闭则程序停止使用tmux:terminal multiplexer(终端复用器)可以使终端和会话分离(detach),这样关闭终端时运行的程序不会停止第一步:安装tmux# Ubuntu 或 Debiansudo apt-get install tmux# CentOS 或 Fedorasudo yum install tmux# Mac
2021-01-13 21:04:46 3885
原创 Python使用matplotlib绘制3D散点图
通过ax.scatter3D()来使用Matplotlib的mplot3d工具包,创建一个3D散点图示例1:# Import librariesfrom mpl_toolkits import mplot3dimport numpy as npimport matplotlib.pyplot as plt# Creating datasetz = np.random.randint(100, size=(300))x = np.random.randint(80, size=(300
2021-01-01 15:48:08 7201 4
原创 Python下通过PR曲线值计算AP
直接放代码,从官方那边抠出来的AP计算代码,代码内部分为voc2007之前的11点计算方法和voc2007之后的方法,目前都已经采用else:内的计算方法import numpy as npdef voc_ap(rec, prec, use_07_metric=False): """ ap = voc_ap(rec, prec, [use_07_metric]) Compute VOC AP given precision and recall. If use_07_met
2020-12-20 10:01:23 2027 1
原创 提取Tensorboard的loss曲线平滑重画
tensorboard中的loss曲线在网页中可以通过设置平滑参数,画出比较漂亮的曲线,但是平滑后的曲线是没办法直接提取出来的这里我们直接从tensorboard的页面中点击Show data download links,然后把曲线的csv文件下载下来,通过下面的代码平滑处理:定义smooth函数,输入tensorboard下载的csv,然后保存平滑之后的csv文件import pandas as pdimport numpy as npimport osdef smooth(csv_
2020-12-15 17:36:31 6641 4
原创 论文笔记CVPR2020:SEED: Semantics Enhanced Encoder-Decoder Framework for Scene Text Recognition
论文标题:SEED: Semantics Enhanced Encoder-Decoder Framework for Scene Text Recognition来源:CVPR2020代码地址:https://github.com/Pay20Y/SEED论文逻辑:目前场景文本识别主流方法采用encoder-decoder框架,但是低质量图片中存在的模糊、遮挡及缺失等问题导致模型性能大幅度降低,作者认为这些方法只利用了局部视觉特征而没有考虑图中word的全局语义特征,因此作者结合现有的.
2020-11-29 15:57:42 558
原创 Ubuntu18.04下配置Open3D及Open3D-ML
项目地址:https://github.com/intel-isl/Open3D、https://github.com/intel-isl/Open3D-ML这个项目如果仅仅是安装Open3D,那么对系统的版本没有要求,如果要配置Open3D-ML那么对于Ubuntu就必须是18.04以上,这里我直接配置Open3D-ML环境要求:Ubuntu18.04、pytorch1.6、编译CUDA10.11. 配置Open3Dpip install open3d -i https://pypi
2020-11-29 10:26:52 2215 4
原创 Ubunt16.04下docker容器的一些常用操作记录
Docker及nvidia-docker的安装方法可参考:https://blog.csdn.net/hesongzefairy/article/details/1087583611. docker寻找镜像直接登录https://hub.docker.com/查找或者终端使用(一般是作者名/搜索内容,如:nvidia/cudaxxx)docker search xxx2. docker拉去镜像(下载一个ubuntu18.04且包含cuda10.1的镜像)docker pull t
2020-11-27 23:12:49 133
原创 Ubuntu16.04下配置OpenPCDet
前置准备:Anaconda、编译安装CUDA10.1地址:https://github.com/open-mmlab/OpenPCDet/blob/master/docs/INSTALL.md1. 创建conda虚拟环境conda create -n torch13 python=3.6conda activate torch13# conda install cudatoolkit=10.1# conda install cudnn==7.6.52. 安装pytorch1.3.
2020-11-27 22:53:47 735
原创 CVPR2017: Densecap复现记录
复现https://github.com/InnerPeace-Wu/im2p-tensorflow新容器先更换清华下载源,然后安装anaconda,更换anaconda下载源再开始下面的步骤1. 创建conda虚拟环境并激活conda create -n vg python=2.7conda activate vg2. wheel文件安装tensorflow-gpu 1.4.0文件下载路径https://pypi.org/project/tensorflow-gpu/1.4.0/#
2020-11-13 19:46:15 315
原创 代码复现:遥感旋转目标检测(可训练自己的数据集)
follow了上交博士大佬yangxue的两个方法,这篇仅记录复现过程中碰到的问题,具体论文的介绍就不写了,大佬自己的知乎已经写得非常详细了。SCRDet:https://zhuanlan.zhihu.com/p/107400817CSL:https://zhuanlan.zhihu.com/p/111493759复现的第一个方法:https://github.com/DetectionTeamUCAS/R2CNN-Plus-Plus_Tensorflow在Ubuntu16.04下1、
2020-11-13 15:14:43 4399 6
原创 opencv画旋转框(坐标对应关系)
旋转目标检测中常常需要用opencv的cv2.boxPoints()画旋转框,但是具体输出和图中四个顶点坐标是如何对应的,需要研究一下。opencv中图片左上角是(0,0),旋转框定义为[x,y,w,h,theta],角度theta是指框与x轴所组成的锐角,并且框的这条边记为w,另一条边记为h,角度范围[-90,0)。代码片段:# 中心点坐标(x_c,y_c) 宽w 高h 旋转角度theta# 最小外接矩形,返回八个坐标值(x1,y1) (x2,y2) (x3,y3) (x4,y4)
2020-10-23 22:14:55 3507 2
原创 COCO数据格式一个json转VOC数据格式多个xml
FLIR数据集中给的annotation是一个json文件,想训练yolo这样的网络,需要把一个json文件切分成多个xml文件,具体原理就是先读取json文件,然后根据图像文件夹中的图像名字找到对应的annotation信息,最后写入xml文件中保存,需要提前安装pycocotools(安装方法见https://blog.csdn.net/hesongzefairy/article/details/105745504)。代码如下:# translate coco_json to xml# 使用
2020-10-10 21:41:14 1398 9
原创 Ubuntu16.04安装Docker、Nvidia-docker(含离线安装)
docker官方教程:https://docs.docker.com/engine/install/ubuntu/nvidia-docker官方教程:https://github.com/NVIDIA/nvidia-docker一. 安装Docker Engine(docker-ce)1. 如果有旧版本,先卸载sudo apt-get remove docker docker-engine docker.io containerd runc2. 安装docker-ce更新apt软件
2020-09-23 18:03:36 1551 6
原创 快速入门算法:BFS广度优先遍历
总的来说,BFS首先将问题抽象为一个图,从一个起点开始均匀的向四周扩散,比如二叉树这种结构,从root开始下一步同时遍历root.left和root.right,一般BFS需要配合队列这种数据结构,每次一个节点出队就将其附近的节点入队。BFS相对DFS最主要的区别是:BFS找的的路径一定是最短的,代价是空间复杂度比DFS大很多。再说一个重点,什么样的问题需要用到BFS?这样的问题本质就是在抽象出来的图上,找到起点start到终点target的最短路径,听起来是个最值问题是不是想到了动态规划,后面
2020-08-22 12:53:00 224
原创 Pytorch环境配置问题详解
之前都是按照官网命令来安装,但是有时候官网这个下载速度实在是慢得让人受不了,这里给出另一种安装方式,用安装包来安装pytorch,利用清华镜像源和anaconda。首先创建一个虚拟环境并激活conda create -n torch python=3.6conda activate torch然后在清华源头下载安装包https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/根据自己的需要,选择Linux系统还是win-
2020-08-14 17:34:11 664 1
原创 快速入门算法:动态规划
动态规划问题的一般形式是“最值问题”,如:最长递增子序列、最小距离等等那么计算机如何求解动态规划问题,其实就只有一种方法“穷举法”,没错,就是暴力的穷举出所有情况,然后在所有答案中找到一个最优的解,这就是动态规划最基本的思想。但是穷举是基本思想,动态规划还有其独特之处,首先动态规划这类问题存在“重叠子问题”,如果直接完全暴力穷举算法效率会非常低,存在大量的重复计算,需要用备忘录或者维护一个DP table来优化穷举过程,将计算过的值存储下来,避免冗余计算。其次,动态规划问题一定具备“最优子结构”,这
2020-08-13 16:23:22 226
原创 牛客网在线判题系统(输入输出问题)
之前一直用LeetCode刷题,但是线上笔试基本都是牛客网的OJ系统对输入输出有一些要求,第一次考试没有提前做功课,算法题在case输入这里坑了很多时间,题目做出来但是case通过率0%,记个笔记。1.第一类:牛客网里的剑指offer的题和leetcode上一样,函数定义已经写好了,只需要完成函数,返回相关的值就可以,不需要处理任何输入输出,不要在函数里输出任何东西。2.第二类:对于传统ACM的OJ模式题目,程序需要stdin(标准输入)读取输入,然后stdout(标准输出)来打印结果,OJ一次处理
2020-08-08 12:28:37 5491
原创 快速入门算法思想:递归
网上关于递归有很多讲解方法,举的例子也很生动形象,我就选一个例子来引出递归这个思想。从前有座山,山里有个庙,庙里有个老和尚在看报,报上说,从前有座山,山里有个庙,庙里有个老和尚在看报这个例子大家耳熟能详,报纸里面还是报纸,给递归一个不那么严格的定义,就是函数自己调用自己解决问题。递归二字也不是随便就起了这么个名字,理解递归的思想就可以从字面上来剖析所谓递:就是将大问题分解成用相同思想可以解决的子问题,直至无法拆分,一层层往下递参数。所谓归:就是一层层往下递参数直到满足某一条件,有参数返
2020-08-04 21:25:46 237
原创 LeetCode分类刷题之哈希表
python中的dict类型就是哈希表的原理,存储方式是key-value,通过键来快速的访问value,字典在访问操作上时间复杂度为O(1)。1.两数之和https://leetcode-cn.com/problems/two-sum/解题思路:遍历一次数组,同时检查当前值缺少的那部分在不在hashmap中,如果不在就把当前的值作为key保存到hashmapclass Solution: def twoSum(self, nums: List[int], target: int)
2020-08-02 21:06:40 151
原创 LeetCode分类刷题之双指针(快慢指针)
1.判断链表是否存在环https://leetcode-cn.com/problems/linked-list-cycle/解题思路:这一题在思路上有点类似之前的寻找链表公共节点的做法,环问题可以理解为小学数学的追及问题,如果跑道是环形的,那么两个运动员一快一慢,跑的快的总会在某一个点追上跑的慢的,同样走的快的指针在存在环的链表上总会有追上走的慢的指针的时候,如果两个指针能相遇那么链表必定存在环。class Solution: def hasCycle(self, head: List
2020-07-30 21:35:38 237
原创 LeetCode分类刷题之双指针(首尾指针)
LeetCode题目太多了,每天随便选题刷没有针对性,效率也很低,今天做了明天就忘了解法。分类刷题效率高,且解题思路形成套路可以更好的举一反三,时间有限的情况下非常推荐分类刷题。本文及后面的记录文章,所有解法均使用python。目录1.两数之和-有序数组(python中数组对应列表,栈也可对应列表)2.两数的平方和3.反转字符串中元音字母4.验证回文串5.验证回文字符串(加强版)6.反转字符串7.盛最多水的容器1.两数之和-有序数组(python中数组对应列表,栈也可
2020-07-29 18:47:12 491
原创 Ubuntu16.04下基于BERT预训练的中文命名实体识别
开始之前,需要先明确中文命名实体识别这个任务是在做什么,以及数据集标注的格式。命名实体识别(英语:Named Entity Recognition,简称NER,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。以数据标注来举例:美 B-LOC国 E-LOC的 O华 B-PER莱 I-PER士 E-PER我 O跟 O他 O谈 O笑 O风 O生 O 它的每一行由一个字及其对应的标注组成,标注集采用BIOE
2020-07-25 18:26:28 239
原创 关于BERT、ALBERT做NER的网址记录
1.https://github.com/google-research/bert#fine-tuning-with-bert(谷歌开源BERT)2.https://blog.csdn.net/macanv/article/details/85684284(基于BERT预训练的中文命名实体识别TensorFlow实现)3.https://www.jianshu.com/p/b05e50f682dd(序列标注——实体识别BERT-BLSTM-CRF)4.https://www.jian...
2020-07-11 22:30:35 820
原创 python批量修改文件名、批量修改xml文件的path和filename
1. python批量修改文件名(控制文件名的起始编号)import ospath = "E:/Project/label/fire/" # 目标路径filename_list = os.listdir(path) # 扫描目标路径的文件,将文件名存入列表t = 0a = 900 # 文件名的起始编号for i in filename_list: used_name = path + filename_list[t] new_name = path + str
2020-07-11 16:14:18 2405 3
原创 python爬取指定名称类别的图片
自己准备数据集的时候经常会用到,从百度爬取指定类别的图片,比如“火灾”,记个笔记import requestsimport os def getManyPages(keyword,pages): params=[] for i in range(30,30*pages+30,30): params.append({ 'tn': 'resultjson_com', 'ipn':
2020-07-11 16:03:09 1676 3
原创 Ubuntu16.04下实现darknet-yolov3训练自己的数据(含loss图、mAP计算)
记录一下本地编译darknet并用自己的数据集来训练yolov3的过程,最后补充了mAP的计算方法。1.环境配置首先CUDA和Cudnn是必备的,安装有很多教程就不多写了,opencv安装比较麻烦可以不用装2.本地编译darknet从github获取darknetgit clone https://github.com/pjreddie/darknetcd darknet修改Makefile文件GPU=1 #如果使用GPU设置为1,CPU设置为0CUDNN=1 #如果使
2020-07-07 16:56:18 2157 3
原创 关于卷积神经网络的一点总结
对CNN写一点总结,好记性不如烂笔头!1. 对于神经网络而言,层数越多参数量就越大,则需要更多的数据来防止过拟合,而CNN具有权值共享、稀疏连接的特点,有效的减少了参数量防止过拟合。2. 卷积核(kernal)也可称作过滤器(filter)3. 相比图像中的卷积计算,深度卷积神经网络就是把kernal当作参数来训练4. 如果只使用卷积操作,图像在卷积后size会缩小,使用same padding在原图周围填0,可以保持卷积后图像size不变5. kernal通常是奇数的原因:奇数方便pa
2020-07-03 09:30:13 203
原创 Win10下手把手教你Mask RCNN绘制PR曲线、计算mAP
导航:1. keras版的mask rcnn环境配置https://blog.csdn.net/hesongzefairy/article/details/1047021192. keras版的mask rcnn训练自己的数据集https://blog.csdn.net/hesongzefairy/article/details/1057383183.一文理解精确率Precision、召回率Recall以及ROC曲线https://blog.csdn.net/hesongzefairy/art.
2020-06-14 16:42:06 10658 115
Classic Computer Science Problems in Python pdf+azw3格式
2019-03-13
深度学习:智能时代的核心驱动力量
2019-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人