- 博客(201)
- 资源 (29)
- 收藏
- 关注
原创 并查集
特点:用集合中的一个元素代表一个集合,就像帮主代替帮派,主要分为三步,初始化,查询,合并。用途:用来分离无环图,找到公共祖先等等。class AndCheckSet: def __init__(self, n=5):#初始化 self.fa = [0]*n for i in range(n): self.fa[i] = i def find(self, x):#查询 if (self.fa[x] == x)
2021-01-13 10:46:18
148
原创 AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(VIT)
最近看transformer用于CV比较热门,特意去进行了解,这里用分类的一篇文章进行讲解。NLP中的transformer和代码讲解参考我另一篇文章。论文链接:AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE一.思想其实核心问题就是考虑如何把图像数据H*W*C,序列化成一个一个词那种结构,自然就想到将图片crop成一个一个patch,假设有N个patch,维度为p*p*C,reshape加c
2020-12-24 14:16:49
10173
原创 python刷题+leetcode(第二部分)
一百零一.合并二叉树思路:采用前序遍历访问二叉树,如果节点其一为none,就返回另一个1.递归法# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def mergeTrees(s
2020-12-07 10:58:20
2989
原创 Registry注册机制
前言:不管是Detectron还是mmdetection,都有用到这个register机制,特意去弄明白,记录一下。首先看Registry代码:# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reservedfrom typing import Dict, Optional, Iterable, Tuple, Iteratorfrom tabulate import tabulateclass Registr
2020-12-04 14:26:47
3289
原创 CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection
论文链接一.背景anchor-based方法将大量框密集分布在feature map上,在推理时,由于预设的anchor与目标差异大,召回率会偏低。而anchor-free不受anchor大小限制,在任意形状上会更加灵活,但是像CornerNet,先进行角点检测,将有效的角点枚举组合成大量候选预测框,容易带来大量的FP。FCOS需要回归关键点到边界的距离,对于长宽大的物体也比较难以预测。二.网络介绍1.网络结构Stage 1: Anchor-free Proposals.
2020-11-13 14:56:18
577
原创 距离与相似度计算
一.余弦相似度from math import *def square_rooted(x): return round(sqrt(sum([a*a for a in x])), 3)def cosine_similarity(x,y): numerator = sum(a*b for a, b in zip(x,y)) denominator = square_rooted(x)*square_rooted(y) return round(numerator/fl
2020-11-12 16:13:41
458
原创 CenterNet:Objects as Points
CenterNet论文链接一.背景1.anchor-base缺点 (1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.(2).anchor太过密集,其中很多是负样本,引入了不平衡.(3).anchor的计算涉及IOU增加计算复杂度.2.应用场景(1).目标检测(2).3D定位(3).人体姿态估计二.网络介绍输出分支主要由三部分组成(1)heatmap,大小为(W/4,H/4,C),输出不同类别的物体中心
2020-11-09 16:29:14
426
原创 CornerNet: Detecting Objects as Paired Keypoints
CornerNet论文链接Hourglass Network论文链接一.背景1.anchor-base缺点 (1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.(2).anchor太过密集,其中很多是负样本,引入了不平衡.(3).anchor的计算涉及IOU增加计算复杂度.二.网络介绍1.网络结构网络总共有两个分支,一个分支有三个输出,主要包含heatmap,embedding,offsets.2.网络推理
2020-11-06 14:08:02
296
原创 FCOS: A Simple and Strong Anchor-free Object Detector
一.anchor-base缺点 1.anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.2.anchor太过密集,其中很多是负样本,引入了不平衡.3.anchor的计算涉及IOU增加计算复杂度.二.回归方式anchor-based回归方式在于回归anchor与gt框之间的偏移量,而fcos回归的是上下左右距离....
2020-11-04 11:54:04
1373
原创 水印去除(基于nosie2noise优化 代码+模型)
github链接针对noise2nosie进行改造:1.加深网络,使用空洞卷积;2.修改loss函数.class L0Loss(nn.Module): """High dynamic range loss.""" def __init__(self, eps=1e-8, nb_epochs=10): """Initializes loss with numerical stability epsilon.""" super(L0Loss,
2020-10-30 17:35:02
6908
10
原创 从attention到Transformer+CV中的self-attention
1.Position encoding其也叫做Position embedding,由于Transformer模型没有使用RNN,故Position encoding(PE)的目的就是实现文本序列的顺序(或者说位置)信息而出现的。代码实现如下:输入batch内的词位置,输出是batch内的每个词的位置embedding向量.class PositionalEncoding(nn.Module): def __init__(self, d_model, max_seq_len):
2020-10-23 17:17:32
3005
1
原创 pytorch实现常用的一些即插即用模块(长期更新)
1.可分离卷积#coding:utf-8import torch.nn as nnclass DWConv(nn.Module): def __init__(self, in_plane, out_plane): super(DWConv, self).__init__() self.depth_conv = nn.Conv2d(in_channels=in_plane, out_ch
2020-09-18 08:59:52
3505
3
原创 nginx做负载均衡,解决多机器多gpu卡服务对外暴露一个接口问题
思路:多个gpu 服务接口-->ngxin做负载均衡-->对外暴露一个。以一机两卡为例制作DockerfieFROM nginx:1.13.3COPY ./ /RUN mkdir /appCOPY /nginx.conf /etc/nginx/nginx.confnginx.conf详细#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.lo
2020-09-03 17:16:09
1483
原创 图论基础知识--最小生成树算法kruskal(克鲁斯克尔)和普里姆算法(Prim算法);最短路径算法Dijkstra(迪杰斯特拉)和Floyd(弗洛伊德)
一.基础知识 有向图 无向图二.Dijkstra算法Dijkstra算法用于解决单源最短路问题,所谓单源最短路就是指定一个起点,求出这个起点到其它所有点的最短路。示例:求M到各个顶点的最短路径先构建邻接矩阵Adjacent, 初始状态dist[1~n] = inf, dist[M]=0,顶点更新状态vst[1~n] = 0以点M为起点:dist[M] = 0 vst[M] = 0dist[W] = inf vst[W] = 0d...
2020-07-24 11:17:32
829
原创 利用dbnet分割条形码与文字(代码+模型)+知识蒸馏+tensorrt推理+利用pyzbar和zxing进行条形码解析
1.安装环境:apt-get install zbar-toolsapt-get install python-jpypepip install pyzbarpip install zxing2.代码案例#coding:utf-8import pyzbar.pyzbar as pyzbarimport timeimport shutilimport zxingimport cv2def parse_code(codeimg, reader): """ .
2020-07-08 10:25:42
3573
8
原创 收缩分割多边形(PSENet中有使用)
目的:为了解决密集文本的分割问题代码:# -*- coding=utf-8 -*-import osimport cv2import Polygon as plgimport pyclipperimport numpy as npdef dist(a, b): return np.sqrt(np.sum((a - b) ** 2))#计算周长def perimeter(bbox): peri = 0.0 for i in range(bbox.shap
2020-06-05 14:45:33
922
4
原创 生成高斯热力图(craft中有使用)+2d heatmap+3d heatmap
from math import expimport numpy as npimport cv2import osclass GaussianTransformer(object): def __init__(self, imgSize=512, region_threshold=0.4, affinity_threshold=0.2): distanceRatio = 3.34 scaledGaussian = la.
2020-06-04 10:26:21
5557
4
原创 ctpn论文阅读与代码
代码地址:1.通用的目标检测是封闭的,而文字是封闭且连续2. 构造一系列宽度相等的小文本,回归中心y坐标和高度3. 对于边界回归x坐标,在进一次修正4.整个模型就是backbone提取特征,将每个像素点的相邻3*3像素拉成行向量,利用空间信息,在进入lstm提取时序信息进行分类与回归.5.文本构建算法将每个相邻竖直文本框进行合并6.一些中间过程...
2020-05-23 17:09:06
479
原创 GIOU loss+DIOU loss+CIOU loss
1.GIOU解决没有交集的框,IOU为0,其损失函数导数为0,无法优化的问题。图1GIOU,IOU,l2范数差异a)可看出 l2值一样,IOU值是不一样的,也就是l2对于尺度不具有不变性b)可看出当框有包含关系,GIOU就退化为IOU其是找到一个最小的封闭形状C,让C可以将A和B包围在里面,然后我们计算C中没有覆盖A和B的面积占C总面积的比例S.GIOU = IOU- S可看出,GIOU<=IOU图2 GIOU 计算公式GIOU的损失函数算法:...
2020-05-19 15:41:42
1183
原创 递归理解以及时间复杂度计算
假如这里有 n 个台阶,每次你可以跨 1 个台阶或者 2 个t台阶,请问n个台阶有多少种走法?第一步走了一个台阶或第一步走了两个台阶,到下一个台阶也是类似,故这是一个递归。n个台阶就是,走了一个台阶后加剩下n-1台阶的走法,走了两个台阶后剩下n-2台阶的走法,f(n)=f(n-1)+f(n-2)终止条件:只剩一个台阶一种走法,只剩两个台阶两种走法,f(1)=1,f(2)=2...
2020-05-17 09:57:27
10033
原创 ubuntu安装python3.5+pycharm+anaconda+opencv+docker+nvidia-docker+tensorflow+pytorch+Cmake3.8
一,切换python版本为3.5装好ubuntu,python版本是2.7的我自己安装并更改打开为python3.5sudo apt-getinstallpython3.5设置优先级和默认环境:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100sudo upda...
2020-04-16 15:42:26
4282
3
原创 目标检测矩形框与polygon数据增加--裁剪,拓展,旋转
import cv2from PIL import Imageimport torchvision.transforms.functional as FTimport randomdef find_intersection(set_1, set_2): """ Find the intersection of every box combination between ...
2020-03-15 10:11:50
1807
原创 SSD300网络结构(pytorch)+多尺度训练与测试
一.如图是预测框的相应feature map其中anchor的长宽关系,s就是上图中的scale,a就是上图中的anchor ratio二.代码主要由三部分组成1.vgg作为基础网络要注意的是作者对38*38*512进行L2正则化,并用一个可学习参数调节通道权重2.增加大目标检测网络3.输出包括预测框的偏移量输出与分类偏移量计算误检...
2020-03-15 09:21:17
7118
原创 pdf与图片互相转换
1.pdf转图片import osimport numpy as npimport cv2from PIL import ImageImage.MAX_IMAGE_PIXELS=Noneimport tempfileimport timeimport sysfrom pdf2image import convert_from_bytes# # 预处理程序# sys.pa...
2020-03-13 10:36:15
649
原创 利用xlwt写excel并进行单元格的合并
1.写入行列值import xlwt# 创建一个workbook 设置编码workbook = xlwt.Workbook(encoding='utf-8')# 创建一个worksheetworksheet = workbook.add_sheet('My Worksheet')# 写入excel# 参数对应 行, 列, 值worksheet.write(1, 0, labe...
2020-02-25 15:03:26
4629
原创 利用scipy包计算表格线的峰值,还原表格得到表格结构
import cv2import numpy as npfrom scipy.signal import find_peaks, peak_widthsdef get_lines_from_image(img_bin, axis, kernel_len_div = 20, kernel_len = None, iters = 3): """ :param img_bin...
2020-02-01 17:07:56
450
原创 pyecharts地图使用
1.首先安装包pip install pyecharts==0.5.12.安装地图包依次是全球地图、中国省级地图、中国市级地图、中国区县级地图、中国区域地图pip install echarts-countries-pypkgpip install echarts-china-provinces-pypkgpip install echarts-china-cit...
2020-01-31 13:12:55
1424
原创 正则表达式基础知识
一.只保留数字import rereco_date = '1o1-05'print('reco_date:', reco_date)reco_date = ''.join(re.findall("\d+", reco_date))print('reco_date:', reco_date)二.只保留中文m=''.join(re.findall('[\u4e00-\u9...
2020-01-09 11:59:39
496
原创 将MSRA-TD500标签转换成逆时针输出标签+labeleme json格式转四个点的txt
MSRA-TD500 :http://www.iapr-tc11.org/mediawiki/index.php/MSRA_Text_Detection_500_Database_%28MSRA-TD500%29#coding:utf-8"""fzh created on 2019/12/6将MSRA-TD500数据标签转换成按逆时针输出也即 index,difficulty ...
2019-12-06 15:56:50
685
原创 利用已有的标注文字信息制作fake数据
from PIL import Image, ImageDraw, ImageFont, ImageFilterimport randomimport globimport numpy as npimport osimport cv2from nespaper_semantics import seg_str'''1. 从文字库随机选择10个字符2. 生成图片3. 随机使用...
2019-12-06 11:49:07
1929
原创 计算polygon面积和判断顺逆时针方向的方法
一.利用shapely求polygon面积 import shapely from shapely.geometry import Polygon, MultiPoint # 多边形 # box1 = [2, 0, 4, 2, 2, 4, 0, 2, 0, 0] box1 = [2, 0, 4, 2, 2, 4, 0, 2, 2, 2] poly_box1...
2019-11-26 17:28:31
3689
原创 ubuntu安装Redis+安装mysql(配置远程登录)+安装jdk+安转nginx+安转teamviewer+安装terminator+安装sublime
一.Ubuntu 安装 Redissudo apt-get updatesudo apt-get install redis-serverredis-server 启动修改redis配置 远程访问:sudo vim /etc/redis/redis.conf注释掉本机ip: 有坑的地方#bind 127.0.0.1 service redis-server resta...
2019-11-12 10:49:16
454
原创 广度优先搜索(BFS)与深度优先搜索(DFS)
一.广度优先搜索(BFS)其是一层一层来,结果不唯一二.深度优先搜索(DFS)其是一条路走到黑,结果不唯一
2019-11-11 21:55:29
385
原创 resnet系列+mobilenet v2+pytorch代码实现
一.mobilenet v21.采用inverted residual,与resnet不一样的是通道1X1卷积先变宽->卷积提特征->1X1卷积变窄,因为经过1x1的卷积扩大通道数以后,可以提升抽取特征的能力,图1所示。2.最后不采用Relu,而使用Linear代替,因为降维后特征丢失部分,如果采用Relu还会丢失,图2所示. 图1 inver...
2019-11-06 17:12:23
2689
4
原创 python .py文件变为.so文件进行加密
1.mytest.py 需要加密的内容#coding:utf-8import datetimeclass Today(): def get_time(self): print(datetime.datetime.now()) def say(self): print("hello word!")today = Today()tod...
2019-10-17 16:41:12
1002
原创 python实现可扩容队列
#coding:utf-8"""fzh created on 2019/10/15构建一个队列"""import datetimeclass LoopQueue(object): def __init__(self, n=10): self.arr = [None] * (n+1) # 由于特意浪费了一个空间,所以arr的实际大小应该是用户传入的容量+1...
2019-10-16 17:49:38
563
原创 python连接mysql的一些基础知识+安装Navicat可视化数据库+flask_sqlalchemy写数据库
一.mysql基础知识1.connect连接数据库import pymysqldef get_conn(): conn = pymysql.connect(host='xxx.xxx.xxx.xxx', port=3306, user='root', passwd='', db='newspaper_rest') # db:表示数据库名称 return conn...
2019-10-13 16:34:39
1781
原创 yolov3 anchors用kmeans聚类出先验框+anchor宽高比分析
# -*- coding: utf-8 -*-import numpy as npimport randomimport argparseimport os# # 参数名称# parser = argparse.ArgumentParser(description='使用该脚本生成YOLO-V3的anchor boxes\n')# parser.add_argument('--i...
2019-10-09 17:57:37
6483
1
原创 python写日志
需要再加入按照日期生成日志#coding:utf-8import loggingimport logging.handlersclass Logger: logFile = '' def __init__(self, logFile): self.logFile = logFile self.logger = logging.getLo...
2019-09-30 15:19:38
249
原创 利用flask写的接口(base64, 二进制, 上传视频流)+异步+gunicorn部署Flask服务+多gpu卡部署
一.flask写的接口1.manage.py启动服务这里要注意的是用docker的话,记得端口映射#coding:utf-8import base64import ioimport loggingimport picklefrom flask import Flask, jsonify, requestfrom PIL import Imagefrom sklearn...
2019-09-17 14:48:47
3962
zxing-cpp.tar.gz
2020-08-19
android4.0客户端名片识别
2016-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人