
Python相关
文章平均质量分 64
python语言
m_buddy
大表哥,还有大招吗... PS:本人所有文章均免费公开,任何收费条目请咨询平台
展开
-
Python下获取视频的旋转角度信息
1. 描述使用手机等电子产品录制的视频在电脑上播放的时候是正的,但是使用OpenCV库进行读取的时候却是另外的角度,这是因为OpenCV在读取视频数据的时候没有去考虑视频内部保存的TAG信息(其中包含旋转角度等),但是使用OpenCV库却无法获取视频的旋转角度信息。对此,可以使用python包scikit-video进行获取。安装scikit-video:pip install scikit-video2. 参考代码import cv2import skvideo.io# 得到旋转角度之后,原创 2020-12-29 22:49:34 · 1713 阅读 · 0 评论 -
Pytorch中torch.nn.DataParallel负载均衡问题
1. 问题概述现在Pytorc下进行多卡训练主流的是采用torch.nn.parallel.DistributedDataParallel()(DDP)方法,但是在一些特殊的情况下这样的方法就使用不了了,特别是在进行与GAN相关的训练的时候,假如使用的损失函数是 WGAN-GP(LP),DRAGAN,那么其中会用到基于梯度的惩罚,其使用到的函数为torch.autograd.grad(),但是很不幸的是在实验的过程中该函数使用DDP会报错:File "/home/work/anaconda3/envs/原创 2020-07-22 22:43:37 · 6620 阅读 · 0 评论 -
多边形标注收缩python代码实现
1. 概述在做文本检测相关工作的时候会使用到分割网络对文本进行检测,直接使用原始的标注进行训练会导致上下文本存在粘连,一个较为有效的办法就是对标注进行收缩,这样粘连的情况会有所好转。这里将图片放置在src_imgs文件夹下(文件格式为jpg文件),对应的标注放置在labels_txt文件夹下(文件格式为txt文件)。对于标注文件中标注的规范为:x1 y1 x2 y2 ... xn yn la...原创 2020-04-19 16:36:07 · 1528 阅读 · 0 评论 -
TensorFlow下数据加载——tf.data的使用
1. 概述在Pytorch中数据加载是通过torch.utils.data.dataset与torch.utils.data.dataloader完成的,而在TensorFlow中现在主推的是使用tf.data实现数据加载。此前,在TensorFlow中读取数据一般有两种方法:1)使用placeholder读内存中的数据2)使用queue读硬盘中的数据(参考:十图详解tensorflow数...原创 2020-04-14 13:39:54 · 5620 阅读 · 0 评论 -
python界面Tkinter编程(tkMessageBox对话框使用)
1. 前言tkMessageBox是Tkinter中常用的对话框控件,可以和方便实现相关对话框的弹出等,类似于MFC中的MessageBox。在Tkinter中定义了多种类型的对话框,其基本的调用形式为:tkMessageBox.xxxxx(title, message, options)其中的title自然是对话框的标题,message是显示的内容,对于options ...原创 2018-04-27 11:18:24 · 25932 阅读 · 0 评论 -
旋转文本图片校正算法
1. 前言在进行文本图像处理的时候,会发现某些拍摄的图像并不是正的,存在着某些旋转的情况。为了修正该图片就需要检测文本图像旋转的角度,再根据这个角度将图像旋转回正确的位置上来。 本博客讲到的算法是本人在github上无意看到的,经过亲自测试之后发现效果不错,这里将其整理为一个demo与大家进行分享。2. 实现代码""" Calculates skew angle """im...原创 2018-08-06 23:17:46 · 3274 阅读 · 7 评论 -
Anaconda安装离线程序包
1. 问题在Ubuntu环境下使用Anaconda安装比较大的包的时候(conda install pytorch torchvision -c pytorch),可能会存在下载一部分然后下载失败报错信息,如下所示:那么对于这种情况,我使用的解决办法是离线安装程序包。2. 解决办法Step1: 下载对应安装包在报错信息里面给出了当前需要下载包的url地址,这里可以拷贝这个地址到浏览器或...原创 2019-01-23 23:48:13 · 13247 阅读 · 0 评论 -
caffe添加自己编写的Python层
1. 前言由于Python的灵活性,我们在caffe中添加自己定义的层时使用python层会更加方便,开发速速也会比C++更快,要使用python层需要编译caffe的时候打开python接口:WITH_PYTHON_LAYER:=1这里使用一个实现一个简单caffe python module:Data_Process作为实验,其添加过程在后面的内容中介绍。2. 实现2.1 modu...原创 2019-04-07 14:25:08 · 383 阅读 · 0 评论 -
VOC数据集到RRPN所需数据格式转换脚本
1. 前言在之前的文章中已经介绍了过了RRPN的原理,在给出的代码里面也写了相关数据转换的脚本,其实只需要理解了其内部所需数据的类型就可以按照自己的意愿将现有的数据集转换过去,而且该算法可以做到多类别检测,只是需要很小的修改就可以实现。2. 转换脚本def get_PascalVOC_2007(): DATASET_DIR = 'xxx/data/VOCdevkit2007' # ...原创 2019-04-27 17:07:37 · 1161 阅读 · 3 评论 -
Caffe常用python接口记录
1. python接口训练caffe python下网络的训练import caffecaffe.set_device(int(0))caffe.set_mode_gpu() # GPUcaffe.set_mode_cpu() # CPUsolver = caffe.SGDSolver('solver.prototxt') # 指定SGD solver,可换为其它求解算法# ...原创 2019-04-29 00:48:14 · 244 阅读 · 0 评论 -
RefineDet:(1)训练脚本解析
1. 概述RefineDet的相关原理介绍已经在之前的博客中做了介绍:这里主要就所用到的训练脚本中做一些分析,这里选用的网络是VGG16# Add extra layers on top of a "base" network (e.g. VGGNet or ResNet).# AddExtraLayers函数是网络结构构造中比较重要的函数,主要实现的就是论文中的# transfer c...原创 2019-05-08 23:44:40 · 1188 阅读 · 0 评论 -
RefineDet:(2)检测部分网络解析
相关链接:《RefineDet:Single-Shot Refinement Neural Network for Object Detection》论文笔记RefineDet:(1)训练脚本解析这部分讲解的是从TCB模块构建之后创建ARM与ODM模块的代码。这里涉及到的RefineDet源自于SSD,但是设计的灵感来自于FPN、Faster RCNN。这里的ARM模块就是相当于RPN网...原创 2019-05-08 23:42:28 · 900 阅读 · 0 评论 -
Pascal VOC数据格式转COCO数据格式脚本(Object Detection)
1. 前言1.1 COCO数据集COCO的全称是Common Objects in COntext,是微软团队提供的一个可以用来进行图像识别的数据集。MS COCO数据集中的图像分为训练、验证和测试集。COCO通过在Flickr上搜索80个对象类别和各种场景类型来收集图像,其使用了亚马逊的Mechanical Turk(AMT)来收集数据。COCO数据集现在有3种标注类型:object ins...原创 2019-05-19 22:52:45 · 9576 阅读 · 5 评论 -
python界面Tkinter编程(基本控件介绍及使用)
1. 前言在上一篇博客中已经讲解了Tkinter的基础知识,为了设计自己的程序界面就需要进一步了解相关控件的使用。在本文中将主力介绍以下控件及其使用,Label、Frame、Entry、Text、Button、Listbox、Scrollbar。2. 控件使用及介绍在Tkinter中控件的使用都是基于如下的形式的:控件类型(根对象, [属性列表]),在控件定义好之后就需要将其添加到...原创 2018-04-27 10:50:23 · 18702 阅读 · 4 评论 -
python界面Tkinter编程(基础)
1. 介绍与准备Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 可以使用pip管理工具进行安装pip install tkin...原创 2018-04-26 21:13:13 · 2004 阅读 · 0 评论 -
使用pydicom实现Dicom文件读取与CT图像窗宽窗位调整
1. 前言为了能够在Labelme上对Dicom图像进行编辑,这里对python环境下Dicom文件的读取进行了研究。在Dicom图像中CT的窗宽窗位是一个很重要的概念,但是找了半天在pydicom中没有相关设置函数,这里跟DCMTK还不一样。但是可以根据两个tag得到CT图像的CT值,那就是(0028|1052):rescale intercept和(0028|1053):rescale s...原创 2018-04-25 15:03:01 · 19764 阅读 · 14 评论 -
Python字符串操作
这里总结了Python字符串的操作,共查阅string.capitalize() 把字符串的第一个字符大写string.center(width)原创 2016-11-17 10:06:33 · 317 阅读 · 0 评论 -
Windows 64bit下Python环境配置与集成IDE PyCharm
本篇博客主要讲述Windows下Python环境的搭建1. Python基本环境安装:在网站Python官网 中下载Windows版本的Python安装包,双击下载下来的安装包,安装过程中要选中pip和Add python.exe to Path两个选项,在安装按成之后Win+R进入命令行输入Python,得到如下结果说明安装完成要退出命令行下的输入模式按Ctrl+Z之后按回车原创 2016-08-24 17:08:01 · 8953 阅读 · 0 评论 -
使用Python爬虫爬取贴吧图片数据
1. 概述最近刚接触Python爬虫,通过所学及了解这里写一篇文章记录爬取网络图像数据。程序的大体思想是这样:首先爬虫直接打开一个网页(该网页不对爬虫抵制),使用bs4解析网页,之后查找标签为img的结点寻找图片的原链接地址,之后便使用这个链接地址将网络上的图片下载下来。2. 实现# -*- coding=utf-8 -*-import urllib2 as url_lib原创 2017-02-15 11:07:19 · 1077 阅读 · 0 评论 -
Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
本文章转自:这篇文章文中提供了Python爬虫获取网页的方法# 1、最简单的方式,直接使用urlopenimport urllib.requestresponse = urllib.request.urlopen('http://python.org/')html = response.read()# 2、使用 Requestimport urllib.requestreq转载 2017-02-15 12:58:11 · 13022 阅读 · 0 评论 -
Python爬虫伪装
1. 概述在爬取某些网页过程中网站服务器限制了网络爬虫的访问,因而在获取其页面内容的时候会报错。这时就需要对爬虫的访问进行伪装模仿浏览器访问,这样便可以正常访问。在本文中将使用一个简单的例子来做说明(注:这里使用的网址仅仅作为测试使用不含任何恶意攻击和商业使用)2. 实现# -*- coding=utf-8 -*-import urllib2 as url_lib2 # 网络原创 2017-02-15 13:54:01 · 1062 阅读 · 0 评论 -
Python爬虫爬取糗事百科热文
1. 概述本篇文章中将分享使用Python爬虫爬取糗事百科热门笑话(注:其中不包含任何针对糗事百科的恶意攻击和其它商业行为),爬取的主要步骤是:1. 模拟浏览器抓取糗事百科的网页;2. 对网页内容使用正则表达式解析,得到想要的内容;3. 再将这些内容分类保存和整理。在书写匹配的正则表达式时可以使用Chrome浏览器的F12键对元素进行快速定位,这对表达式提供了方便。2. 实现原创 2017-02-15 22:11:18 · 848 阅读 · 0 评论 -
正则表达式的基本语法和在Python下的使用
正则表达式基本语法常用正则表达式符号 符号 说明 举例 literal 匹配字符串的值 Foo re1|re2 匹配正则表达式re1或re2 foo . 匹配任何字符(换行符除外) b.b ^ 匹配字符串的开始 ^bear $ 匹配字符串的结尾 /bin/*sh$ * 匹配前面出现的正则表达式零次或是多次([0, +∞))原创 2017-05-10 10:14:15 · 2347 阅读 · 0 评论 -
Ubuntu设置Python镜像源
前言在Ubuntu下我们一般使用pip工具去管理我们的Python包。但是在使用pip命令操作的时候一般都是使用的默认设置,使用的是国外的镜像,这就导致了我们在国内下载安装包的时候很慢(乌龟慢慢爬-_-||…),这时候就需要使用国内的镜像源,设置好之后那个下载速度嗖嗖的!1. Ubuntu下设置一般Python的pip管理工具是通过下面命令进行安装的,这样默认情况下是使用的国外的镜像源sudo ap原创 2017-11-19 21:41:33 · 7122 阅读 · 1 评论 -
Numpy随机数生成函数与常见分布函数解释
Numpy随机数1. Numpy随机数概述在Numpy中包含的随机数生成函数如下表所示: 函数 函数功能 rand(d0, d1, …, dn) 返回输入数组维度对应的矩阵 randn(d0, d1, …, dn) 返回输入数组维度对应服从标准正太分布的矩阵 randint(low[, high, size, dtype]) 返回范围为[low, high)范围的整型随原创 2018-02-20 18:58:09 · 6105 阅读 · 0 评论 -
Python矩阵操作:维度变换、矩阵组合、矩阵分割
1. 矩阵维度变换1.1 numpy.reshape(a, newshape, order=’C’)reshape()函数经常用做一维数组维度的变化,也就是将一维数组变化成为指定维度的矩阵。order是指不同的索引规则,一般默认C,按照行进行运算。 示例:print np.reshape(np.arange(10), (2, 5))[[0 1 2 3 4] [5 6 7 8...原创 2018-02-20 23:42:08 · 48181 阅读 · 1 评论 -
WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
1. 前言当做爬虫遇到网页上的按钮需要点击的时候需要用到selenium,但是新版本的selenium竟然出现如下错误:Traceback (most recent call last): File "/home/sucker/Desktop/pytest/python_spider/main.py", line 28, in <module> main() ...原创 2018-03-30 15:21:13 · 7659 阅读 · 0 评论 -
Ubuntu安装mongodb填坑记录
1. 前言mongodb是个很强大且很好用的数据库,但是由于网络等的原因有些时候安装起来特别麻烦,这里就将我遇到的问题归结记录。这篇文章里面介绍三种安装方式2. sudo apt-get install mongodb安装法这种安装办法直接使用apt-get:sudo apt-get install mongodb虽然很简单很直接,但是会出现安装的mongodb**版本...原创 2018-04-01 21:23:08 · 7463 阅读 · 0 评论 -
在Win7下正确使用Python自带的pip管理工具下载
这篇文章作为之前一篇写的文章的补充,在新机器上安装Python的扩展包的时候出现不能正常下载的情况,请过在网络上搜索之后找到了对应的解决办法,主要是服务器的为题,将其贴在这里与大家分享。下面是国内提供的python的镜像服务器地址:http://pypi.douban.com/ 豆瓣http://pypi.hustunique.com/ 华中理工大学http://pypi.原创 2016-10-26 11:37:59 · 1950 阅读 · 0 评论