自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (2)
  • 收藏
  • 关注

原创 目标检测数据增强:将csv文件转为xml文件格式(VOC2007)

本实验中使用的数据集为Nucls数据集中的cav标注格式,对齐进行了转换:from xml.dom.minidom import Documentimport osimport cv2import csvdef makexml(txtPath, xmlPath, picPath): # txt所在文件夹路径,xml文件保存路径,图片所在文件夹路径 """此函数用于将yolo格式txt标注文件转换为voc格式xml标注文件 在自己的标注图片文件夹下建三个子文件夹,分别命名为p

2021-04-27 15:26:30 3206 3

原创 mmdetection环境配置,三个目标检测模型训练

一、colab环境配置依次执行以下命令,在这里我用的是VOC数据集cd /content/drive/MyDrive!pip install torch==1.5.0 torchvision==0.6.0!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html!git clone https://github.com

2021-04-09 15:57:28 507

原创 将文件夹中的文件名输出到txt文件

import osimport randomfrom utils import mkdirxmlfilepath = r"D:\Catalogue\master\generate_data\paste_mixup_30\VOC2007_multmixup_3\Annotations" txtsavepath = r'D:\Catalogue\master\generate_data\paste_mixup_30\VOC2007_multmixup_3\ImageSets\Main'mkdi

2021-03-31 10:34:59 970

原创 使用imgaug库进行目标检测数据增强

import xml.etree.ElementTree as ETimport pickleimport osfrom os import getcwdimport numpy as npfrom PIL import Image# 引入一个新的目标检测库import imgaug as iafrom imgaug import augmenters as iaafrom utils import mkdiria.seed(1)# 读取出图像中的目标框def read_xml_

2021-03-31 09:03:31 681 5

原创 faster-rcnn中的sample函数注释解析

class sampler(Sampler): def __init__(self, train_size, batch_size): self.num_data = train_size # 得到数据的数量 self.num_per_batch = int(train_size / batch_size) # 得到数据批次的标号 self.batch_size = batch_size # self.range = torch.arange(0,batch_size).

2021-03-27 14:39:10 333 1

原创 pascal_voc添加绘制PR-REC曲线的功能

from __future__ import print_functionfrom __future__ import absolute_import# --------------------------------------------------------# Fast R-CNN# Copyright (c) 2015 Microsoft# Licensed under The MIT License [see LICENSE for details]# Written by Ross

2021-03-16 10:45:28 449 1

原创 faster-rcnn.pytorch在colab上能跑通的完整程序

下载以及安装库cd /content/drive/MyDrive!git clone https://github.com/jwyang/faster-rcnn.pytorch.gitcd /content/drive/MyDrive/faster-rcnn.pytorch!git checkout -f pytorch-1.0!mkdir data!pip install -r requirements.txt!pip install scipy==1.2.1安装lib库cd /con

2021-03-14 08:34:18 445

原创 目标检测数据增强:同时切割图片与xml标注

from __future__ import divisionimport osfrom PIL import Imageimport xml.dom.minidomimport numpy as np ImgPath = r'D:\code\data\JPEGImages_newname'AnnoPath = r'D:\code\data\Annotations_newname'ProcessedPath = r'D:\code\data\output' prefix_str =

2021-03-07 13:28:46 1500 1

原创 目标检测数据增强:同步缩放图片和xml标注

同步缩放图片(等比例缩放无失真)和xml文件标注的anchor sizeimport globimport xml.dom.minidomimport cv2from PIL import Imageimport matplotlib.pyplot as pltimport os# 定义待批量裁剪图像的路径地址IMAGE_INPUT_PATH = r'D:\code\data\JPEGImages'XML_INPUT_PATH = r'D:\code\data\Annotations_

2021-03-07 13:27:16 1663 5

原创 目标检测数据增强:划分训练集和验证集

将数据划分成训练集和验证集等4个txt文档,完全根据xml的名称进行划分。import osimport random trainval_percent = 0.5train_percent = 0.5xmlfilepath = r'D:\code\data\VOC2007_2\Annotations'txtsavepath = r'D:\code\data\VOC2007_2\ImageSets\Main'total_xml = os.listdir(xmlfilepath) num=

2021-03-07 13:26:09 2009

原创 目标检测数据增强:重命名照片和xml文件

将照片重命名为000001的形式,适应VOC数据集的格式要求,当然仅是看着美观,实际上也可以不重命名。from xml.etree.ElementTree import ElementTreefrom os import walk, pathimport cv2import osdef read_xml(in_path): tree = ElementTree() tree.parse(in_path) return treedef write_xml(tree,

2021-03-07 13:25:27 441 1

原创 目标检测数据增强:更改xml的属性

更改xml的属性可以根据实际情况注释掉某些内容,比如folder、database等。import osimport os.pathimport xml.dom.minidompath="./Annotations_new"#生成新xml的路径path_xml = r'D:\code\data\Annotations'#输入的xml路径path_img=r'D:\code\data\JPEGImages'#输入的图片路径files = os.listdir(path_xml) # 得到文

2021-03-07 13:22:51 284

原创 目标检测数据增强:截取出bbox(VOC数据格式)

截取出bbox(VOC数据格式)import osimport cv2import utilstry: import xml.etree.cElementTree as ET # 解析xml的c语言版的模块except ImportError: import xml.etree.ElementTree as ETimg_path = r"D:\Catalogue\master\generate_data\mitios_withxml\VOCdevkit2007\VOC2007

2021-03-06 23:46:58 572 1

原创 目标检测数据增强:根据寻找相同名称不同后缀的照片

本示例的作用为找到.xml文件对应的.jpg文件import osimport cv2input_pic_path = r"D:\Catalogue\master\generate_data\mitios\VOCdevkit2007\VOC2007\JPEGImages" input_xml_path = r"D:\Catalogue\master\generate_data\mitios\VOCdevkit2007\VOC2007\Annotations" def mkdir(path):

2021-03-06 17:14:56 106

原创 目标检测数据增强:使用imgaug包进行翻转、旋转、增亮等

目标检测数据增强:使用imgaug包进行翻转、旋转、增亮等import xml.etree.ElementTree as ETimport pickleimport osfrom os import getcwdimport numpy as npfrom PIL import Image# 引入一个新的目标检测库import imgaug as iafrom imgaug import augmenters as iaaia.seed(1)# 读取出图像中的目标框def rea

2021-03-06 14:27:40 1946 1

原创 目标检测数据增强:截取出bbox中的图片

crop_img文件的作用为截取出bbox中的图片import osimport shutilfrom os.path import joinimport cv2import globroot_dir = "./fruit" #原始图片保存的位置save_dir = "./bbox" #生成截取图片的位置jpg_list = glob.glob(root_dir + "/*.jpg")fo = open("dpj_small.txt", "w") #截取出来的图片位置max_s

2021-03-04 11:23:08 1611 2

原创 目标检测数据增强:mixup进行图像融合

文章目录一、使用imgaug--python图像数据增强库进行Bounding Boxes影像增强二、mixup实现方法,针对VOC数据集格式一、使用imgaug–python图像数据增强库进行Bounding Boxes影像增强原文请点击这里import xml.etree.ElementTree as ETimport pickleimport osfrom os import getcwdimport numpy as npfrom PIL import Imageimport i

2021-03-03 22:23:49 1733 4

原创 剑指offer_python:按之字行打印二叉树(栈)/把二叉树打印成多行(队列)

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。# -*- coding:utf-8 -*-# class TreeLinkNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None# self.next = Noneclass Sol

2021-02-16 20:51:14 190

原创 剑指offer_python:二叉树的下一个结点(循环)

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。# -*- coding:utf-8 -*-# class TreeLinkNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None# self.next = Noneclass Sol

2021-02-16 19:40:43 91

原创 剑指offer_python:对称的二叉树(递归)

请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def isSymmetrical(self, pRoot):

2021-02-16 18:55:20 103

原创 剑指offer_python:二叉树中和为某一路径(广度优先搜索)

输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneimport copyclass Solution:

2021-02-16 17:36:58 72

原创 剑指offer_python:从上往下打印二叉树(数组存储结点)

从上往下打印出二叉树的每个节点,同层节点从左至右打印。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom(self,

2021-02-16 11:41:25 114

原创 剑指offer_python:二叉树的镜像(递归)

操作给定的二叉树,将其变换为源二叉树的镜像。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # 返回镜像树的根节点 def Mirror(self, root): # write code here

2021-02-16 11:14:40 107

原创 剑指offer_python:树的子结构(递归)

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def HasSubtree(self, pRoot1, pRoot2):

2021-02-16 10:49:42 75

原创 剑指offer_python:重建二叉树(递归找到左右子树)

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.ri

2021-02-16 10:04:42 139

原创 剑指offer_python:合并两个排序的链表(四个指针)

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。需要四个指针:最终输出、前面指针、两个列表中的指针# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回合并后列表 def Merge(self, pHead1, pHea

2021-02-14 17:58:54 96

原创 剑指offer_python:翻转链表(三个指针)

输入一个链表,反转链表后,输出新链表的表头。# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回ListNode def ReverseList(self, pHead): # write code here # 1.将现有的头换成

2021-02-14 17:22:14 102

原创 剑指offer_python:链表中倒数第k个结点(两个指针间隔为K)

输入一个链表,输出该链表中倒数第k个结点。k如果小于链表的长度,我们可以定义两个变量,这两个变量中间间隔为k# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def FindKthToTail(self, head, k): # write code here

2021-02-13 11:19:14 113

原创 剑指offer_python:从尾到头打印链表(用另一个数组存储)

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。用另一个数组进行存储然后就可以打印# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self,

2021-02-13 09:46:28 81

原创 剑指offer_python:栈的压入、弹出序列(压入后循环判断是否需要弹出)

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)# -*- coding:utf-8 -*-class Solution: def IsPopOrder(self, pushV, popV): # write code here

2021-02-12 21:07:17 177

原创 剑指offer_python:包含min函数的栈(定义一个新数组来存放当前最小值)

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack = [] self.minValue = [] #用来存储当前最小值 def push(self, node): self.stack.append(node) if self.minVa

2021-02-12 20:29:39 84

原创 剑指offer_python:调整数组顺序使奇数位于偶数前面(冒泡排序)

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。可以采用稳定的冒泡排序方法class Solution: def reOrderArray(self , array ): # write code here n = len(array) for i in range(n): for j in range(n

2021-02-12 18:39:38 281

原创 剑指offer_python:螺旋数组的最小数字(二分法)

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。# -*- coding:utf-8 -*-class Solution: def minNumberInRotateArray(self, rotateArray): # write code here ''' for i in range(0, len(ro

2021-02-12 16:43:27 236

原创 剑指offer_python:用两个栈实现队列(首尾元素通过两数组对调)

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution: def __init__(self): self.acceptStack = [] self.outputStack = [] def push(self, node): self.acceptStack.append(node) # write code here def pop(self):

2021-02-12 15:54:45 106

原创 剑指offer_python:替换空格(replace用法)

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。replace的用法class Solution: # s 源字符串 def replaceSpace(self, s): # write code here return s.replace(' ','%20')新建存储空间class Solution: # s 源字符串 de

2021-02-12 15:33:42 808

原创 剑指offer_python:斐波那契数列/跳台阶/变态跳台阶(循环)

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n≤39# -*- coding:utf-8 -*-class Solution: def Fibonacci(self, n): # write code here ''' 递归会超时,时间复杂度为2^n if n == 0: return 0 if n == 1:

2021-02-12 10:47:58 217

原创 leecode_python简单题:121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1

2021-02-09 21:35:26 530

原创 leecode中档题:34. 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums =

2021-02-09 20:39:43 84

原创 leecode_python中档题:79. 单词搜索

给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 true给定 word = “SEE”, 返回 true给定 word = “ABCB”, 返回 falsec

2021-02-09 16:50:57 200

原创 leecode_python:11. 盛最多水的容器

给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。即找最小边和最长距离的乘积,因为距离是不断减小的,故更新最短边就可以找到全局最优class Solution: def maxArea(self, height: List[int]) -> int: n

2021-02-09 15:30:03 126

缺陷检测数据集并将其加载到VOC

缺陷检测数据集并将其加载到VOC

2021-01-04

电信专业保研个人简历模板(word可编辑)

电信专业保研个人简历模板(word可编辑) 包含教育背景、学术经历、实践经历、荣誉证书、自我评价几部分,内部布局合理,易于编辑。模板简约不张扬,适合作为保研模板使用。最后,希望大家能够去到理想的大学。

2020-04-04

空空如也

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

TA关注的人

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