自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 签名生成与验证

生成规则:请求参数按照字母排序,key+value+requestBody的md5值,然后用app_secrete hmac256加密生成代码:@Test public void test() throws Exception { String appid="appid"; long time=Instant.now().toEpochMilli(); System.out.println("time is:"+time);

2022-02-25 15:37:49 529

原创 JWT token生成原理

token生成规则:JWT包含三部分:Header(头部),Payload(负载),Signature(签名)//Signature生成var encodedString = base64UrlEncode(header) + '.' + base64UrlEncode(payload);//通过header中声明的加密方式进行加盐secret组合加密var signature = HMACSHA256(encodedString, secret); //token生成,用.连接三部分组

2022-02-22 18:01:23 979

原创 python实现两个文件夹中同名文件转移

import os,random,shutilxml_dir = '/home/xiaobumidm/Yolo_mark-master/jsonxml/'initimage_dir='/home/xiaobumidm/Yolo_mark-master/jsonxml/initImages/train/'image_dir='/home/xiaobumidm/Yolo_mark-master/jsonxml/imagetrain/'//转入数据目的文件夹initimages=os.listdi.

2021-04-13 21:03:29 655

转载 聚簇索引和非聚簇索引详解

通俗点讲聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据 非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因澄清一个概念:innodb中,在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引、前缀索引

2021-03-31 21:15:48 3650 2

原创 ubuntu croncab定时任务 shell脚本单独可行 定时任务执行命令不可行

shell脚本功能:获取使用gpu的进程,通过长度判断有几个进程使用gpu,当有1个进程时,执行命令启动另一个进程创建定时任务步骤:编写定时任务:crontab -e编写内容(两个小时执行一次):* */2 * * * /home/kluntech/YOLOV4-darknet-master/reconnectShell.shshell脚本:#!/bin/bashGPU_RUN_IDS=$(nvidia-smi -q -d PIDS | grep 'Process ID'

2021-03-27 17:18:41 290

转载 RPN深度解析

转载链接:https://blog.csdn.net/lanran2/article/details/54376126

2021-03-25 16:55:51 175

转载 YOLOv1深刻解读

参考:http://blog.csdn.net/u011534057/article/details/51244354https://zhuanlan.zhihu.com/p/24916786论文下载:http://arxiv.org/abs/1506.02640darknet版的代码下载:https://github.com/pjreddie/darknettensorflow版本的代码下载:https://github.com/hizhangp/yolo_tensorflow...

2021-03-25 15:23:23 121

转载 YOLOv1-YOLOv4

一、开山之作:YOLOv11.1 简介在YOLOv1提出之前,R-CNN系列算法在目标检测领域独占鳌头。R-CNN系列检测精度高,但是由于其网络结构是双阶段(two-stage)的特点,使得它的检测速度不能满足实时性,饱受诟病。为了打破这一僵局,设计一种速度更快的目标检测器是大势所趋。2016年,Joseph Redmon、Santosh Divvala、Ross Girshick等人提出了一种单阶段(one-stage)的目标检测网络。它的检测速度非常快,每秒可以处理45帧图...

2021-03-24 20:21:08 2118

原创 python实现tsinghua-tencent 100000数据集的json文件转为xml文件

算法解决问题:1,从json文件中抽取数据集中的小目标pne、p11、i5、w57四种交通标志数据集2.小目标判断标注像素范围在[32,32]3.转为对应的xml文件import osimport timeimport jsonimport cv2xml_head = '''<annotation> <folder>traffic-sign</folder> <!--文件名--> <filename&

2021-03-16 16:20:07 239

原创 coco数据集格式

coco数据集json文件格式:{ "info": info, # dict "licenses": [license], # list ,内部是dict "images": [image], # list ,内部是dict "annotations": [annotation], # list ,内部是dict "categories": # list ,内部是dict}1.info为dict格式,内容如下:{'description':...

2021-03-12 15:42:56 1800

转载 ubuntu18.04如何安装mysql

1.2.安装完成之后可以使用如下命令来检查是否安装成功:netstat -tap | grep mysql通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功。3.登录mysql数据库可以通过如下命令:mysql -u root -p4.接下来,为了确保数据库的安全性和正常运转,对数据库进行初始化操作。这个初始化操作涉及下面5个步骤。(1)安装验证密码插件。(2)设置root管理员在数据库中的专有密码。(3)

2021-01-19 22:14:14 93

原创 MMdetection安装使用(1)

1,环境(自己)ubuntu18.04cuda10.1 cudnn10.1-v7.6.5opencv4.3.0python3.8.6annaconda 4.9.22.创建conda环境conda create -n open-mmlab-py37 python=3.7 -yconda activate open-mmlab-py373.安装pytorch和torchvision# CUDA 10.1conda install pytorch==1.6.0 torc

2021-01-14 16:59:20 418 2

原创 ananconda3安装(python3.8)

1,官网下载Anaconda3-2020.11-Linux-x86_64.sh2,进入.sh所在目录,执行安装命令$ bash Anaconda3-2020.11-Linux-x86_64.sh3,执行过程回车继续:yesyes选择了no手动初始化:激活base虚拟环境.$ source ~/anaconda3/bin/activate(base) $初始化shell设置(base) $ conda init设置启动she

2021-01-14 11:03:22 1920

原创 Mybatis(20)注解实现二级缓存

以查询User信息为例在IUserDao接口种加入注释@CacheNamespace(blocking = true)//开启二级缓存public interface IUserDao { ......}验证:public class SecondLevelCatchTest { private InputStream in; private SqlSessionFactory factory; private IAccountDao accountD

2021-01-08 12:33:56 146

原创 Mybatis(19)注解实现多表查询

两个类,User,Account查询每个账户以及其对应的用户信息,一对一查询,采用及时加载Account类package com.itheima.domain;import java.io.Serializable;public class Account implements Serializable { private Integer id; private Integer uid; private Double money; //多对一(mybat

2021-01-08 12:26:24 303 1

原创 python实现批量更改xml文件中内容替换

import osimport io#paths文件目录,files保存文件路径以及名字paths='/home/xiaobumidm/Yolo_mark-master/VOC数据集/VOC/'files=[]oldStr='basstom'newStr='base>custom'for file in os.listdir(paths): if file.endswith('.xml'): files.append(paths+file)for file i.

2021-01-05 21:00:01 2793

原创 Mybatis(18)注解实现表名和类属性名不匹配问题

解决方法,是通过Results注解IUserDao.java/*查询所有用户*/ @Select("select * from user") @Results(id = "userMap",value = { @Result(id=true,column = "id",property = "userId"), @Result(column = "username",property = "userName"),

2021-01-05 12:43:26 268

原创 Mybatis(17)注解方式增删改查单表

IUserDao.java/*在mybatis中,CRUD一共有四个注解* @Select @Insert @Update @Delete*/public interface IUserDao { /*查询所有用户*/ @Select("select * from user") List<User> findAll(); /*保存用户*/ @Insert("insert into user(username,address,sex,birthda

2021-01-05 10:21:43 89

转载 COCO数据集简介

简介介绍一下目标检测领域另外一个比较有名的数据集MS COCO(Microsoft COCO: Common Objects in Context) .MSCOCO 数据集是微软构建的一个数据集,其包含 detection, segmentation, keypoints等任务。MSCOCO主要是为了解决detecting non-iconic views of objects(对应常说的detection), contextual reasoning between objects and..

2020-12-25 22:09:44 3883

转载 COCO数据集提取自己需要的类,转VOC

github:https://github.com/zcc720/COCO2VOC.git原文地址:http://www.manongjc.com/article/28607.html接上篇VOC数据集提取自己需要的类,这次我们依然从coco数据集中提取我们想要的类,并转为voc格式,用于目标检测。一、去官网下载数据集https://mp.csdn.net/editor/html/111710897此链接地址为百度云下载。二、安装coco-PythonAPIlinux用户:

2020-12-25 22:06:29 368

转载 COCO数据集2017百度云免费下载

2017 Train images [118K/18GB]2017 Val images [5K/1GB]2017 Test images [41K/6GB]2017 Unlabeled images [123K/19GB]2017 Stuff Train/Val annotations [401MB]2017 Testing Image info [1MB]2017 Unlabeled Image info [4MB]http://images.cocodataset.org/zips/

2020-12-25 22:01:03 1559

转载 java中HashSet

HashMap还没讲完,还有几篇文章,目前在构思中,HashMap是集合类的精华,底层实现也比较复杂,真正理解了HashMap,也算是上了小小的一层台阶。这篇文章我们先轻松一下,不讲HashMap,来说说HashSet。如果有点Java基础的童鞋,应该都知道List和Set都实现自Collection,List保证元素的添加顺序,元素可重复。而Set不保证元素的添加顺序,元素不可重复先来看看Set家族在Collection中的位置,红框里的内容就是Set的大家族了,Set接口继承自Collect

2020-12-22 13:21:28 475

转载 java中字符串(2)String

上一篇我们讲了Java中的数组,其实是为本章的内容做准备的,String这个类是我们在写Java代码中用得最多的一个类,没有之一,今天我们就讲讲它,我们打开String这个类的源码:声明了一个char[]数组,变量名value,声明了一个int类型的变量hash(hash的作用我们后续会讲),话不多说,上代码:我们点开构造函数看一下:多年以前,我看到这段代码时我是懵逼的,没错,我现正在准备构造一个String的对象,那original这个对象又是从何而来?是什么时候构造的呢?在J

2020-12-22 13:05:18 79

转载 java中字符串(1)

我们再来看一段代码:运行一下:没错,一个true,一个是false,(答错的小朋友去面壁去),大家可能在想编译器肯定又调皮了,编译的时候是不是又偷偷加了些什么,迫不及待的打开class文件看一下:除了删掉了空行以外和我的java源文件一致呀,这回可冤枉编译器了,那为什么会导致不同的结果呢?我们都知道,Java代码是运行在JVM里的,那是不是JVM在执行这段代码时给我们做了什么?在JVM中,当代码执行到String s1 = "100" 时,会先看常量池里有没有字符串刚好是“100”

2020-12-22 13:03:48 125

转载 java中equals理解(2)

在面向对象 - 知乎专栏一文中,我们后续留了一个话题,引入了Set,我们知道Set里面的元素是不可以重复的,话不多说,上代码:精简了上一章中的Person类,保留了isSame()方法;想必大家看到类似的代码开始怀疑笔者是不是又挖坑让大伙跳了吧,来看一下结果。没错,有坑,同样是对象,都是放到了set中,一个打印size()是1,另一个打印size()是2。在面向对象 - 知乎专栏一文中,我们在Person这个类,虽然写了一个isSame()方法来判断业务上是否相等,看上去是解决了..

2020-12-22 13:01:00 97

转载 java中equals的理解(1)

在Java字符串那些事儿一文发表后,朋友给我留言说:比较字符串用equals不就完了呗,干嘛要用"==",吃饱了撑的,能不能来点实际的。其实在文章里我是想表明,Java字符串两种声明方式在堆内存中不同的体现,我们在写代码过程中,为了避免重复的创建对象,尽量使用String s1 ="123" 而不是String s1 = new String("123"),因为JVM对前者给做了优化。那么,我们今天来说说equels,话不多说,上代码:执行一下,结果如下:面试题中老问"=="与和eq

2020-12-22 12:34:31 519

转载 LinkedList理解(2)元素删除

上一篇文章我们说了LinkedList,并说了往里添加了元素。这篇文章我们来说说LinkedList元素的删除,话不多说,上代码,还是那个Person类还是那两个属性,name,age,提供了一些简单的get与set方法。写我们的main方法和前文一样,new了一个LinkedList,并往里添加了四个元素,看过前文的朋友都知道现在LinkedList目前在堆内存中的样子如下图:现在我们来删除王五这个用户,运行一下看一下结果好奇怪,打印返回的删除状态居然是false,

2020-12-18 15:17:13 895 1

转载 LinkedList理解(1)结构

在前面的文章里,我们讲了数组和ArrayList,在现实中,不管什么系统,如果不考虑性能的话,用其中的一个就可以完成所有工作,那为什么不用它们来进行所有的数据存储呢?在数组/ArrayList中读取和存储(get/set)的性能非常高,为O(1),但插入(add(int index, E element))和删除(remove(int index))却花费了O(N)时间,效率并不高。今天我们来看Java中的另一种List即LinkedList,LinkedList是基于双向链表来实现的,关于链表的知

2020-12-18 14:58:36 106

转载 ArrayList理解(5)与vector区别

前几篇文章我们重点说了ArrayLIst,是时候放出这张图了。这张图里的内容对我们学习Java来说,非常的重要,白色的部分是需要去了解的,黄色部分是我们要去重点了解的,不但要知道怎么去用,至少还需要读一次源码。绿色部分内容已经很少用了,但在面试题中有可能会问到,我们来看一个经常出现的面试题:Arraylist与Vector的区别是什么?首先我们给出标准答案:1、Vector是线程安全的,ArrayList不是线程安全的。2、ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Ve

2020-12-17 15:14:46 54

转载 ArrayList(4)时间复杂度

在以前的文章里,我们已经看过了add方法的源码,还有一个add方法,我们看一下, public void add(int index, E element) ,从指定位置添加元素按照下标把元素添加到指定位置,想必大家都知道,我们直接上源码。老规矩,我们还是画一画,当执行到System.arraycopy()这个方法时我看到有些书上写的是依次移动元素到下一格,这种说法不够严谨,所以我再强调一遍,是依次复制插入位置及后面的数组元素,到后面一格,不是移动,因此,复制完后,arr[2],ar

2020-12-17 14:59:14 2349

转载 Arraylist理解(3)删除元素

第三次强调,ArrayLIst是一个普通的类。好,现在我们来讨论一下数组的删除,我们知道数组一但在堆内存中创建出来,数组长度是不可变的,看以下源码:添加10个用户比如我们要把“周八”这个人从数组中删除,如图:我们只能循环数组,找到“周八“的下标5,由于数组没有提供删除方法,我们只能把下标为5的位置赋值为null(造成了数组空洞),“周八”这个Person对象已经没有引用指向它了,JVM的垃圾回收机制会在适当的时候回收它。但数组的长度还是10。下次当我们再循环查找某人时,稍不注意就

2020-12-17 14:51:33 737 1

转载 Arraylist理解(2)扩容

我们先回顾一下之前的所说过的数组,话不多说,上代码:老规则,我们继续画一画,加深一下印象,上图:这个图我们去掉了ArrayList初探 - 知乎专栏一文图里那些无用的细节(方法区,常量池等),方便大家看起来清晰,我们用eclipse的debug功能看一下,看是否与我们图上画的一致再看一下执行结果,也在我们期望中。好,我们改一下代码,再往数组里加添加一个叫“周八”的person对象执行一下看到了传说的中数组下标越界异常。在Java中,数组一但在堆内存中创建,长.

2020-12-17 14:31:41 67

转载 ArrayList理解(1)初始化

ArrayList初始化首先ArrayList是一个普通的类,我们来看一段代码:首先:执行List<Person> list1 = new ArrayList<>();当看到new这个关键字的时候,我们脑袋里应该第一印象就是这货在堆内存开辟了一块空间,好我们再来画一画。注:常量池位于方法区,方法区位于堆内存,前面没涉及到,所以没画方法区,现在补上好,既然是new出来的,那我们直接从构造函数入手,看一下构造函数做了什么。很简单,就一行代码,继续看一下,t

2020-12-17 14:23:06 258

转载 HashMap底层理解(下)

上一篇文章我们介绍了HashMap的底层实现,但还遗留了一点内容,我们再回顾一下上一篇文章里说的内执行完红框里的代码,personMap里放入了8个元素,放置完成后在堆内存表现如下图如果忽略底层实现细节,是这样的在Map中,一个key,对应了一个value,如果key的值已经存在,Map会直接替换value的内容,来看一下源码中是怎么实现的,来看以下代码Person oldPerson1 = personMap.put("张三", new Person("新张三", 21)).

2020-12-16 15:03:42 60

转载 HashMap底层理解(上)

本来想先在专栏里简单的说一下二叉树,红黑树的内容后再说HashMap的,但看到评论区里不断的出现HashMap这个词,怕大家等得着急,本篇文章就先说说HashMap吧,前面讲ArrayList和LinkedList时把源码说得很细,只要理解了这两块内容,本篇内容也很好理解,先来看看HashMap在Map这个大家族中的位置。上图中,白色部分是接口,黄色部分是要重点了解的,最好是看一遍源码,绿色部分已经过时,不常用了,但是面试中可能会问到。这里先简单的说一下这几个Map,TreeMap是基于树的实现,H

2020-12-16 14:48:20 262

转载 softmax理解

转自:https://www.zhihu.com/question/23765351/answer/240869755softmax函数softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是更形象的如下图表示:softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满

2020-12-15 19:37:49 106

转载 python实现将文件夹下文件随机移动指定数量到另一个文件夹下

转载:https://blog.csdn.net/qq_33188180/article/details/109237401代码如下:import os,random,shutildef moveFile(fileDir, tarDir): pathDir = os.listdir(fileDir) # 取图片的原始路径 filenumber = len(pathDir) rate = 0.11 # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1

2020-12-11 21:15:15 1105

原创 python实现将一个文件夹下的文件路径写入到指定的txt文件中

代码如下:其中paths为存储文件路径train.txt为目标文件,即将文件路径写入到此文件中os.path.splittext(filename)包含两项,第一项为文件名(.之前内容),第二项为文件扩展名(.以及其之后内容),用[0]、[1]表示import ospaths='/home/xiaobumidm/darknet-master/phoneProject/img'f=open('/home/xiaobumidm/darknet-master/phoneProject/tra

2020-12-11 20:16:49 4655 1

转载 训练集、验证集、测试集区分

转载链接:validation set,是有标注,用于验证的test set,是没有标注的在有监督的机器学习中,经常会说到训练集(train)、验证集(validation)和测试集(test),这三个集合的区分可能会让人糊涂,特别是,有些读者搞不清楚验证集和测试集有什么区别。这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大

2020-12-11 11:11:00 1456 2

原创 ubuntu18.04安装pytorch1.6

第一步:确定要安装的python版本,以及对应pip的安装以及升级参考我的python安装博客:https://blog.csdn.net/xiaobumi123/article/details/110941905第二步:安装pytorch

2020-12-11 11:01:34 1683

空空如也

空空如也

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

TA关注的人

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