
codes
z0n1l2
这个作者很懒,什么都没留下…
展开
-
matplotlib 动态显示
matplotlib绘制图,调用plt.show()后会阻塞程序,直至鼠标关闭窗口. 希望不采用阻塞方式运行,动态显示曲线,可以尝试如下代码:重点 * plt.ion() : 交互式绘图模式 * plt.pause(0.05): 显示绘图from matplotlib import pyplot as pltclass VISUAL_LOSS(object): def ...原创 2018-06-30 18:13:28 · 2246 阅读 · 0 评论 -
numpy中的copy和view
出处python中没有传值和传引用的概念,但copy和view有类似的作用。Viewview相当于传引用,view和原始数据共享一份数据,修改一个会影响另一个。slice,array.view(dtype)可以产生view,但array.astype(dtype)产生的不是view x = np.arange(5) print('x = :\n', x) view = x[1...转载 2018-10-17 20:00:03 · 3586 阅读 · 0 评论 -
在VOC上训练 darknet yolov3
数据集需要voc2007和voc2012, 目录结构如下 VOCdevkit/VOC2007 VOCdevkit/VOC2012darknet/sctripts/voc_label.py 在VOCdevkit目录下执行该脚本,生成若干txt,里面都是绝对路径其中train.all.txt是所有图片的列表, train.txt是除了voc2007 test以外的图片列表,训练时可以...翻译 2018-10-28 22:49:29 · 717 阅读 · 0 评论 -
解决样本不均衡问题-SMOTE
原文链接SMOTE: Synthetic Minority Over-sampling Technique解决的问题很多算法都有一个默认的假设:样本中各个类别的样本数目是均衡的,比如深度学习中几个经典网络结构直接用于不均衡数据效果会很差。本文提出的SMOTE是一种通过线性插值过采样的方法解决不均衡问题的方法。如果通过简单复制样本没有获得期望结果时,不妨试试这个方法。伪码输入:同一类别的所...原创 2018-11-05 21:57:52 · 3334 阅读 · 0 评论 -
faster R-CNN 生成anchor box
以下代码来自faster R-CNN的generate_anchors.py,目的是基于预定的base_box(正方形),生成若干长宽比和尺度的新的anchor box。其中_whctrs()是把一个矩形用(中心点,宽高)的形式表达_mkanchors()是给定一个中心点,和若干不同的宽高,生成新的anchor,以(左上点,右下点)的形式_ratio_enum() 输入一个初始anchor...原创 2018-11-16 00:25:37 · 664 阅读 · 0 评论 -
pvanet 训练自定义数据
源码编译方法到lib目录下执行makecaffe-fast-rcnn目录下执行cp Makefile.config.example Makefile.config#编辑Makefile.config内容,启动WITH_PYTHON_LAYER := 1make -j8 && make pycaffe训练脚本假设处理的目标是pascal_voc_obj...原创 2018-12-04 23:30:59 · 429 阅读 · 0 评论 -
cmake中prebuild/postbuild命令
add_custom_command(TARGET target PRE_BUILD | PRE_LINK| POST_BUILD COMMAND command1[ARGS] [args1...] [COMMAND command2[ARGS] [args2...] .....转载 2019-01-11 01:09:08 · 9581 阅读 · 0 评论 -
cuda编程 MergeSort
gpu codes#include "windows.h"#include "cuda_sort.h"#include <iostream>__global__ void mergesortK(int *a, int *temp, int sortedsize,int N) { // int id = block原创 2019-01-13 11:49:55 · 1175 阅读 · 0 评论 -
cv::parallel_for_ 的一个例子
cv::parallel_for_是opencv封装的一个多线程接口,利用这个接口可以方便实现多线程,不用考虑底层细节,以下是一个具体的例子继承ParallelLoopBody,重载运算符()class LoopBody : public cv::ParallelLoopBody{public: LoopBody (const std::vector<std::stri...原创 2019-01-20 22:12:51 · 2946 阅读 · 0 评论 -
github上如何修改submodule url
github上fork工程A,而A中有一个submodule B, 如果修改了B,是没法直接提交到github上的,因为B指向别人的工程,那么如何让B指向自己的工程,进而保存自己的修改呢?首先要从B的原始工程fork一份属于自己的代码,然后修改自己的A工程中.gitmodules文件里B对应的url,比如[submodule "ext/google-maps"] path = goog...原创 2019-03-07 01:40:25 · 3607 阅读 · 0 评论 -
数据可视化: PCA降低到2维显示
import os,cv2import numpy as npfrom sklearn.decomposition import IncrementalPCAfrom matplotlib import pyplot as pltinput_folders = [ (‘classA/’,‘red’),(‘classB/’,‘blue’) ]H,W = 64,64transformer...原创 2018-10-16 11:52:52 · 3577 阅读 · 0 评论 -
数据可视化: PCA显示特征向量
import os,cv2import numpy as npfrom sklearn.decomposition import IncrementalPCAinput_folder = 'images/'H,W = 72,72comp_num = 5X = []for name in os.listdir(input_folder): path = os.path.jo...原创 2018-10-16 10:53:18 · 2227 阅读 · 0 评论 -
让机器用人的方式识别图像[codes]
论文地址This looks like that: deep learning for interpretable image recognitionprototype layerprototype layer对应的公式如下: gpj=maxz⃗ ∈patch(z)−log(||z⃗ −pj||22+ϵ)gpj=maxz→∈patch(z)−log(||z→−...原创 2018-07-11 20:24:44 · 1657 阅读 · 1 评论 -
FCN语义分割
参考语义分割语义分割不仅仅要分割图像,而且要指出分割后的物体对应的类别,功能上相当于图像分割和目标识别。 FCN是求解这个问题的第一个方法,不过目前很多新的方法在效果和速度上已经超越FCN,这里只从实现的角度做些记录。FCN网络FCN网络和卷积网络的关系给定一个卷积网络,FCN主要做下面的改动 * 替换全连接层成1×11×11 \times 1卷积 用卷积替换全...原创 2018-08-11 15:56:53 · 1373 阅读 · 0 评论 -
PIL Image.Convert() 转换成黑白图
参考Image.Convert()的模式"1"可以把彩色图转换成黑白图,很好奇其转换的依据,搜索到其文档,分为三个步骤彩色图转灰度图依据ITU-R 601-2 luma transform L = R * 299/1000 + G * 587/1000 + B * 114/1000灰度图转二值图默认阈值127,通过point函数可以修改这个阈值dither默认开...转载 2018-10-17 23:06:00 · 5626 阅读 · 0 评论 -
dither
参考dither是为了降低颜色量化时引入的信息损失,利用有限的颜色数目,生成一个视觉上和支持更多颜色数目的图相似的近似图。loyd–Steinberg dithering是比较早期的dither算法,但也是应用最为广泛的算法,以下是其伪码。背后的思想是把量化误差按照固定比例扩散到相邻的后续几个像素上for each y from top to bottom for each x fro...翻译 2018-10-17 23:12:02 · 3665 阅读 · 0 评论 -
ubuntu 18.04 + opencv 3.4.3 + python 2.7
windows下似乎直接可以从源码编译出cv2.pyd,但这个组合下却总是没有编译出cv2.so,最后发现是要预先安装python-devapt install python-numpyapt install python-devcmake -DCMAKE_BUILD_TYPE=Release ..make -jmake install...原创 2018-10-13 21:53:06 · 1059 阅读 · 0 评论 -
darknet配置参数-w/h/max_crop/min_crop
darknet的cfg文件中的参数w/h: 最终送入网络的尺寸, 如果输入和这个不符合,则通过crop使之符合max_crop/min_crop: 输入图的最小边需要在[min_crop,max_crop]区间内,如果输入和这个不符合,则通过缩放使之符合。另外有一对参数max_ratio/min_ratio和一对参数作用是一样的,具体参见源码 net->max_crop = op...原创 2018-10-07 17:16:25 · 2835 阅读 · 0 评论 -
gluoncv-FCN
参考gluoncv按照gluoncv的文档中pip install gluoncv方法安装,但是发现这个版本似乎依然有不少问题准备数据pascal_voc.py 这个脚本可以下载需要的四个文集,但是用迅雷下载的发现最后一个benchmark.tgz下载后的的hash码不对,另外三个是对的。但是用wget下载速度有很慢,最后通过修改脚本,绕开了hash校验,这个脚本其实只做三间事情V...原创 2018-10-15 01:27:19 · 1221 阅读 · 8 评论 -
numpy.transpose()进阶理解
numpy.transpose()函数对二维数组就是矩阵的转置操作,对于高维数组则可以任意交换数组。本以为自己已经理解了它的用法,直到看到如下的代码。import numpy as npimport cv2size = 128mat = np.zeros((2,2,size,size))mat[0,0,:,:] = np.ones((size,size))mat[0,1,:,:]...原创 2018-10-18 22:48:49 · 679 阅读 · 0 评论 -
在mnist上尝试triplet loss (mxnet)
triplet lossTriplet Loss损失函数在mnist上做相似度计算triplet loss的核心包括三个部分anchor/positive/negative代表三个输入图,尺寸相同,训练的目标是令anchor和positive距离最小化,同时anchor和negative距离最大化。以FaceRec为例,anchor和positive一般来自同一个人,而negative属...原创 2019-03-17 20:00:40 · 3608 阅读 · 0 评论