- 博客(44)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 ubuntu16.04安装nivida显卡驱动以及cuda8.0,cudnnv6
每到一个地方就需要自己配置深度学习环境,整理下配置过程仅供大家参考。安装双系统ubuntu或者直接装ubuntu,这比较简单没有什么坑可以讲的,直接从开机开始。1.设置软件源 中科大服务器(阿里云,163也可以)2.sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade sudo apt-get ...
2019-06-05 15:20:24
959
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用CNN神经网络进行图片识别分类(keras)
https://blog.csdn.net/zh_JNU/article/details/54342856在上面的链接下载数据和查看数据说明。#coding:utf-8import osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152os.environ["CUDA_VISIBLE_DEVICES"] =...
2018-07-12 16:37:56
9824
28
原创 卷积网络感受野计算
import copy####top_to_bottom calculatedef cal_receptive_filed(kernel_stride): fix_kernel_stride = copy.deepcopy(kernel_stride) layer_receptive_field = [] for j in range(0,-len(fix_kerne...
2019-11-23 14:39:58
288
原创 focal loss个人理解
对于目标定位和分割来讲,严重存在正负样本不匹配现象,导致网络趋向于负样本。如何更好的学习正样本,常见的方法是交叉熵前面加上一定的beta系数。方法一:拿分割任务简单介绍下:设图片大小为256*256,分割目标大小为30*30。则beta_p = 256*256/(30*30) =72.8beta_n = 256*256/(256*256-900) =1.01 拿这两个权重对二...
2019-07-25 19:15:08
1651
原创 Keras自定义层(常用代码)
from keras.models import Modelfrom keras.layers import Input,Conv2D,Reshape,GlobalAvgPool2Dfrom keras.layers import Lambdaimport tensorflow as tfimport kerasfrom keras import backendfrom keras...
2019-07-19 16:45:17
1065
原创 Retinanet网络解析
最近在做小目标识别的项目,对于数据不平衡的常见解决方案一个就是设置正负样本的比例来进行损失计算.还有一个就是focal_loss损失.请参考何凯文大佬的论文<focal loss for dense object detection>.说道focal_loss就去看看了开源的Retinanet网络,请参考https://github.com/fizyr/keras-re...
2019-07-10 19:52:07
3142
1
原创 Mask-rcnn算法流程图
昨天看下Mask-rcnn的keras代码,Github上start最多的那个。由于代码量比较多,所以需要梳理下整个流程。今天用visio简单绘制下整个数据流程图,方便理解整个算法。里面的知识点还是比较多的,所以搞清楚一个算法的细节,需要我们认真阅读下源码,并思考为什么这样做。只要能够掌握好细节,我们才可以对算法部分进行改进。 注:黑色是第一阶段,也就是RPN阶段。红色是第二阶...
2018-12-25 11:57:29
5064
1
原创 TimeDistributed的理解和用法(keras)
之前一直在看one-stage目标定位的算法,主要是速度快。今天无聊就看下mask-rcnn的源码,了解下主要结构和训练过程。看网络图中发现了使用TimeDistributed层,平常自己没有用过这样的层,所以看官方文档和其他人的博客,发现有的博客理解的并不太正确,所以还是简单介绍下吧。只是个人理解,如有问题欢迎指出。 TimeDistributed顾名思义就是使用时间序列来进行...
2018-12-21 13:27:35
26296
16
原创 图片旋转后标注框对应问题(python opencv)
今天看了看imgaug库关于仿射变化后图片上标注点和标注框的问题,感觉比较繁琐。因此还是使用自己写的代码来进行这些操作把。本篇讲一下旋转后标注框的变化:1:图片旋转后尺寸分为原图像尺寸,对图像进行剪裁2:图片旋转后尺寸从新计算,使用旋转后的尺寸进行仿射。首先上个图: 图上theta代表旋转角度,取值范围0-360,可为负数。坐标建立按照opencv的坐标系。旋转后...
2018-12-20 15:45:49
4875
4
原创 图片数据增强库(imgaug)的标准用法_续
这一篇接上一篇,介绍下常用的方法,目的是为了方便以后调用。后面附上常用方法的结果图。#coding:utf-8import imgaug as iafrom imgaug import augmenters as iaaimport numpy as npimport cv2images = cv2.imread('./origin.jpg',1)images = np....
2018-12-19 20:05:13
2458
原创 图片数据增强库(imgaug)的标准用法
之前自己做实验的时候都是自己写的图片缩放、旋转、剪切、噪声、仿射等等,都是利用cv2库来实现图片和图片标注点和标注框的变化。今天看其他人的代码,发现现在有其他图片数据增强的开源python代码。下午就去阅读下官方文档,注释下官方文档的代码,希望对其他人有一点点帮助。官方文档地址https://imgaug.readthedocs.io/en/latest/#coding:utf-8...
2018-12-19 17:49:54
8110
12
原创 使用卷积层替代全连接层(VGG16网络,keras)
前段时间校招面试的问题有一个就是如何使用卷积层来替代全连接层。以前没有认真考虑过,所以第一时间的想法是1×1的卷积核去实现。后来仔细想一想,1×1卷积核并不能实现这样的功能,涉及到参数共享。昨天,看到PixelLink文字定位网络,该网络使用了VGG网络的全连接层。所以就想着今天使用keras实现下VGG16网络卷积层替换全连接层。参数还是依然使用预训练参数,最后保存参数。查看对比.h5文...
2018-12-16 16:50:59
12929
原创 双线性插值代码讲解(bilinear_interpolation)
这几天再看STN网络,即空间变换网络,里面设计到双线性插值。算法虽老,但是并没有去看过,只是简单使用opencv调用过。闲来无事,就使用numpy库实现下整个流程。我认为只有代码才能让我清楚了解里面的每一步,现在对整个代码进行注释分析,方便大家理解双线性插值算法。大家可以查看这篇文章:https://blog.csdn.net/sinat_33718563/article/details/...
2018-12-14 18:35:44
4875
1
原创 YoloV3网络见解与模型搭建
这几天看了下yolo的第三个改进版本,代码的链接https://github.com/qqwweee/keras-yolo3。并没有从头阅读所有代码,只是看了自己感觉的关键点。yolo3想比较于yolo2的改进在于,使用不同的特征尺度来预测物体,这点和SSD多尺度是类似的。输入尺寸还是416×416,使用3个输出分别为52×52,26×26,13×13。这三个输出分别采用不同的anchor...
2018-12-10 18:13:47
6696
1
原创 YoloV2网络损失函数代码粗解
这篇接上面文章来简单注释下YoloV2损失函数的定义,这部分比较主要。有了定义网络的输入输出和损失函数,我们就可以自己构建自己的网络或迁移其他网络来实现自己想要的识别定位的物体了。该函数来自于frontend.py的部分核心代码。def custom_loss(self, y_true, y_pred):########传递的参数就是真实值和预测输出值 #...
2018-12-03 16:07:12
1369
5
原创 YoloV2网络标签代码粗解
https://github.com/experiencor/keras-yolo2 代码地址 近几年,对于目标定位来讲,使用one-stage策略的主流算法有SSD,Yolo V1 ,Yolo V2,Yolo V3。一年前剖析SSD源码,并使用于自己的训练样本中,效果还OK。闲来无事,分析下 Yolo V2,Yolo V3的关键代码,并进行记录。 从研一接触深...
2018-12-03 15:15:00
760
原创 种子填充_图像分割(python)
#coding:utf-8import cv2def seed_fill(img): ret,img = cv2.threshold(img,128,255,cv2.THRESH_BINARY_INV) label = 100 stack_list = [] h,w = img.shape for i in range(1,h-1,1): ...
2018-07-26 14:15:54
2958
2
原创 SeparabelConv2D
#coding:utf-8import numpy as npimport sysfrom Convolution1 import Convolution2D,Paddingdef Separabel_conv(input_array,kernel,strides=(1,1),padding='same'): img_h, img_w, n_channels = input_ar...
2018-07-13 10:39:48
292
原创 Dilate_conv2D
import numpy as npimport sysfrom Convolution1 import Convolution2Dimport osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152os.environ["CUDA_VISIBLE_DEVICES"] = ""def Dilate_conv...
2018-07-12 14:37:00
838
原创 UpSampling2D、Conv2DTranspose
#coding:utf-8import numpy as np####keras 采用最邻近插值算法进行upsamplingdef UpSampling2D(input_array,strides=(2,2)): h,w,n_channels = input_array.shape new_h,new_w = h*strides[0],w*strides[1] out...
2018-07-10 15:28:15
12215
原创 keras禁止使用GPU加速
import osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152os.environ["CUDA_VISIBLE_DEVICES"] = ""
2018-07-09 09:37:32
4654
原创 RNN
#coding:utf-8import numpy as npfrom Activation_function import Hard_sigmoid,Tanh,Sigmoid####GRU前向更新公式 rt重置门 zt更新门,更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,#### 更新门的值越大说明前一时刻的状态信息带入越多。#### 重置门用于控制忽略前一时刻的状态信息...
2018-07-06 16:00:52
370
原创 normalization
import numpy as npepsilon=1e-3#####input_array.shape = (h,w,n_channels)def batchnormalization(input_array,parameter): #####parameter.shape = n_channes,4 (mean,std,gamma,beta) mean_p = p...
2018-07-04 14:03:17
311
原创 pooling
#coding:utf-8import numpy as npimport sysimport cv2#####input_array.shape = (h,w,n_channels)def maxPooling2D(input_array,kenel_size=(2,2),strides=(2,2),pading='same'): origin_h, origin_w, n_...
2018-07-04 10:06:20
625
原创 Activation_function
import numpy as npdef Sigmoid(input): return 1.0/(1.0+np.exp(-input))def Tanh(input): return np.tanh(input)def Relu(input): return np.maximum(0.0,input)def Liner(input): return inp...
2018-07-02 14:45:47
421
原创 Convolution2D
#coding:utf-8import numpy as npimport sysdef Padding(origin_matrix,kenel,stride=(3,3)): img_h, img_w, n_channels = origin_matrix.shape feature_num, k_h, k_w, k_n_channels = kenel.shape ...
2018-07-02 13:55:07
2896
原创 keras常用损失函数
均方误差损失y_pred.shape=[num,]num为输出个数,第一维度其实是batch_size,进行忽略。def mse(y_true,y_pred): return K.mean(K.square(y_pred-y_true),axis=-1)绝对值误差损失def mae(y_true,y_pred): return K.mean(K.abs(y_pred...
2018-06-26 14:53:40
5315
原创 判断点是否在多边形内部
import cv2import numpy as npdef intersetction(point_1,point_2,point1,point2): a = point_1[0] if point_1[0]>point_2[0] else point_2[0] b = point1[0] if point1[0]<point2[0] else point2[0...
2018-06-26 09:01:11
440
原创 Cifar10数据以及加载
import numpy as npimport osimport sysimport keras.backend as Kfrom six.moves import cPickleimport cv2def load_batch(fpath, label_key='labels'): f = open(fpath, 'rb') if sys.version_info ...
2018-05-25 09:01:50
1918
原创 Keras之SqueezeNet
keras实现SqueezeNet 网络,具体网络结构参照https://blog.csdn.net/xbinworld/article/details/50897870博客之前也这样压缩过自己的网络,识别效果还不错。现在根据模板简单构建下网络。虽然说参数能够减少很多,其实卷积层数增加了,就是利用时间来换取空间,看个人如何取舍了吧。#coding:utf-8import osos.environ[...
2018-03-27 20:18:40
3572
1
原创 VGG-16获取并设置参数
实现获取VGG-16网络参数,并广播参数构建一个新的网络传入参数。from keras import layersfrom keras.layers import Conv2D, MaxPooling2D,ZeroPadding2D,GlobalAvgPool2Dfrom keras.models import Sequentialimport numpydef vgg(img_w,img_h,...
2018-03-26 20:02:11
3850
原创 常用视频质量评价库以及下载地址
IVP 数据库是由香港中文大学图像与视频处理实验室于 2011 年提供的主观视频质量数据库,其中 9 组是自然场景视频,有一组是通过3D 建模制造的动画。视频库包括四种失真类型,有MPEG-2 压缩失真、Dirac 小波压缩失真、H.264 压缩失真以及 IP 网络传输失真。http://ivp.ee.cuhk.edu.hk/research/database/subjective/index.s...
2018-03-26 16:55:02
3718
14
原创 机器学习之knn
knn算法在鸢尾花数据集的验证。#coding:utf-8import csvimport randomimport numpy as npdef loadData(filename): key_value = {'Iris-setosa':0,'Iris-versicolor':1,'Iris-virginica':2} all_data_label = [] with ope...
2018-03-26 16:39:09
281
原创 机器学习之k-means
简单实现在鸢尾花数据的聚类,经过验证效果不错。数据在机器学习之k-nn文章里。import numpy as npimport csvimport randomdef loadData(filename): key_value = {'Iris-setosa':0,'Iris-versicolor':1,'Iris-virginica':2} all_data_label = [] ...
2018-03-26 16:36:02
303
原创 机器学习之ID3决策树
简单的ID3决策树,C4.5的差异在于信息增益率。具体公式网上都有,只是简单验证下。#coding:utf-8import math# 香农公式计算信息熵def calcShannonEnt(dataset): numEntries = len(dataset) labelCounts = {}#用于存放统计不同label的个数 for featVec in dataset: ...
2018-03-26 16:32:17
303
原创 机器学习之线性回归
线性回归是最简单的一个函数拟合过程,一元线性回归公式为y=ax+b。我们做拟合,首先需要定义一个损失函数。一般常用的损失函数有:0-1损失函数和绝对值损失函数 0-1损失是指,预测值和目标值不相等为1,否则为0: 感知机就是用的这种损失函数。但是由于相等这个条件太过严格,因此我们可以放宽条件,即满足时认为相等。 绝对值损失函数: log对数损失函数 Logistic回归的损失函数就是...
2018-03-26 16:19:47
617
原创 keras实现扩充图片集
当我们使用神经网络进行对一些图片进行分类的时候,由于自己的样本数太小,导致训练,分类的结果不太满意,因此本次使用keras自带的生成器产生所需要的图片进行保存,然后可以使用这些图片进行训练,提高神经网络的预测分辨率#coding:utf8import osimport cv2.cv as cvimport cv2import refrom keras.preprocessi
2017-01-18 16:14:48
3615
1
原创 keras实现简单的函数拟合逼近
一个简单的demo,自己随机生成的数据和确定的sin(x)方程加上噪声进行拟合逼近。import numpy as npimport randomfrom sklearn.preprocessing import MinMaxScalerimport matplotlib.pyplot as pltfrom keras.models import Sequentialf
2017-01-18 16:09:51
4659
原创 使用CNN神经网络进行图片识别分类
接触深度学习3个月以来,从当初的小白零基础学习,过程十分艰苦,看了几章大牛 YoshuaBengio 写的deep learning一书,粗略了解了基本常用的神经网络以及梯度更新策略,参数优化,也了解以及简单的使用常用的深度学习开发框架caffe,tensorflow,theano,sklearn机器学习库,目前keras比较火,所以使用keras来简单的进行图片识别分类。
2017-01-11 14:07:16
50733
65
原创 matplot 绘制图例和标注
#coding:utf8import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-1,2,50)y1 = 2*x +1 y2 = x**2#method one#l1, =plt.plot(x,y1)#l2, =plt.plot(x,y2)#plt.legend(handles =
2016-12-25 16:16:11
12908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人