自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 目标检测图片resize下标注框box的变化方式

图片进行了resize后,对于标记框box进行相应的改变,与resize后的图片进行相对应。代码如下:import mathimport osfrom PIL import Image, ImageDrawimport numpy as npimport xml.etree.ElementTree as ETdef get_random_data(filename_jpg, box, nw, nh): """ 修改 box :param filename_jpg: 图片

2020-05-16 09:43:54 1285 6

原创 集思录可转债爬取

本代码是爬取集思录可转债信息,(除去了发布赎回的,根据安道全老师的三条安全线投资法添加了建仓线、加仓线、重仓线),价格达到三条线的,给与操作提示。# V交流:15188607997# -*- coding:utf-8 -*-import jsonimport requestsimport csvimport refrom lxml import etreedef get_dat(...

2020-03-26 16:14:24 2724 8

原创 OpenCV合并图片cv2.add、无缝连接图片cv2.addWeighted、图片克隆cv2.seamlessClone 效果对比、按位运算bitwise_and

微信:15188607997文章目录微信:15188607997一. cv2.add1. 简介2. 参数说明:3. 注意:4. 对比numpy 和 cv2.add的区别5. cv2.add(img1, img2)示例代码:6.cv2.add代码效果二. cv2.addWeighted1. 简介2. 参数说明:3. 注意:4. cv2.addWeighted(img1, 0.6, img2, 0...

2019-11-16 12:09:21 1398

原创 tensortflow、CUDA、cudnn安装

环境配置2.1算法环境配置1. 配置基本环境配置镜像源在系统设置–软件和更新中,选择清华的镜像源(mirrors.tuna.tsinghua.edu.cn)安装多线程下载工具,之后可以用apt-fast 代替 apt-get# apt-fast, 即apt-get 的多线程版本, 可以不装sudo add-apt-repository ppa:apt-fast/stablesudo apt-get updatesudo apt-get -y install apt-fast安装NVI

2020-11-25 11:48:07 16

原创 BN层Batch Normalization的理解

前言1. 特征分布对神经网络训练的作用在神经网络的训练过程中,我们一般会将输入样本特征进行归一化处理(图片进入模型前,进行除255操作等),使数据变为均值为0,标准差为1的分布或者范围在0~1的分布。因为当我们没有将数据进行归一化的话,由于样本特征分布较散,可能会导致神经网络学习速度缓慢甚至难以学习。2. BN的作用但是我们以前在神经网络训练中,只是对输入层数据进行归一化处理,却没有在中间层进行归一化处理。要知道,虽然我们对输入数据进行了归一化处理,但是输入数据经过σ ( W X + b ) σ(W

2020-11-09 11:24:00 60

原创 yolov1 - yolov4 深度理解

一、目标检测的各个组成部分 1. Input 2. Backbone 3. Neek 4. Head 共包含上面4个部分,其中可以替换的结构如下图所示: 说明:Dense Prediction:标注出图像中每个像素点的对象类别 Sparse Prediction:稀疏预测七、问题:什么情况下需要使用nms?答:图片中有多个同类目标时。同类:最大抑制只能是抑制同一类的框多个:当图片中只有1个目标时,直接输出score最高的即可,不需要nms。y

2020-11-03 17:13:20 85

原创 ValueError: Unknown layer: Mish

项目场景:测试yolov4有网络结构的模型和无网络结构的模型是识别速度是否有影响问题描述:下面这行代码报错:ValueError: Unknown layer: Mishyolo_model = load_model(model_path, compile=False) 原因分析:yolov4 中用到了个人构建的Mish函数,keras库中是没有的,当在使用self.yolo_model = load_model(model_path, compile=False),load_model

2020-10-21 17:36:12 75 2

原创 ROIPooling的意义?全连接层(Dense)输入需要固定尺度?全连接层的实现?为什么需要两个全连接层?

ROIPooling的作用,就是resize到统一尺寸,这样才能利用预训练的全连接层参数,大多是7*7大小,这是因为全链接层需要固定的输入尺寸.那么为什么需要固定尺寸呢?全连接层的计算其实相当于输入的特征图数据矩阵和全连接层权值矩阵进行内积以vgg16,51277的特征输入为例,紧接着两个全连接层。如果是caffe,这个特征图进入全连接层之后就会被flatten成一个25088维的向量,同时这个全连接层会初始化一个25088*4096的权值矩阵,这两个进行矩阵乘积运算,最后输出一个4096的一维向.

2020-10-14 15:42:16 67

原创 Flatten()详解

Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。就是把高纬度的数组按照 x轴或者y轴 进行拉伸,变成一维的数组为了更好的理解Flatten层作用,我把这个神经网络进行可视化如下图:(来自网络)用Python中的例子更好理解:from numpy import *>>> a=array([[1,2],[3,4],[5,6]])>>> aarray([[1, 2], [3,

2020-10-14 11:34:09 232

原创 model.fit_generator()详解

利用Python的生成器,逐个生成数据的batch并进行训练。生成器与模型将并行执行以提高效率。例如,该函数允许我们在CPU上进行实时的数据提升,同时在GPU上进行模型训练参数:generator:生成器函数,生成器的输出应该为:一个形如(inputs,targets)的tuple一个形如(inputs, targets,sample_weight)的tuple。所有的返回值都应该包含相同数目的样本。生成器将无限在数据集上循环。每个epoch以经过模型的样本数达到samples_per_epoch时

2020-10-14 11:23:41 212

原创 ModelCheckpoint详解

keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1)作用该回调函数将在每个epoch后保存模型到filepath参数**filename:**字符串,保存模型的

2020-10-14 10:30:34 390 2

原创 Keras的回调函数ReduceLROnPlateau优化学习率

目的:定义学习率之后,经过一定epoch迭代之后,模型效果不再提升,该学习率可能已经不再适应该模型。需要在训练过程中缩小学习率,进而提升模型。如何在训练过程中缩小学习率呢?我们可以使用keras中的回调函数ReduceLROnPlateau。与EarlyStopping配合使用,会非常方便。初始的学习率过小,会需要非常多次的迭代才能使模型达到最优状态,训练缓慢。如果开始给一个大点打学习率,能够快速收敛,然后训练过程中不断缩小学习率,可以快速又精确的获得最优模型。monitor:监测的值,可以是accur

2020-10-14 10:16:22 96

原创 Python 操作excel 读写、追加写

# coding=UTF-8import openpyxlimport xlrdfrom xlutils.copy import copydef write_excel_xlsx(path, sheet_name, value): """ 写入 """ index = len(value) workbook = openpyxl.Workbook() sheet = workbook.active sheet.title = sheet_na

2020-08-27 11:12:03 95

原创 python 从list中随机取值

import randomlist1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']# 随机返回只有4个值的listb = random.sample(list1, 4)print(b)结果:[‘南宁’, ‘温州’, ‘北海’, ‘杭州’]

2020-08-24 15:32:02 225

原创 yolo v4 Mosaic 代码详解

代码如下:可直接运行,带有详细注释。import numpy as npfrom PIL import Imageimport cv2def rand(a=0, b=1): return np.random.rand()*(b-a) + adef merge_bboxes(bboxes, cutx, cuty): """调节切割后box""" merge_bbox = [] for i in range(len(bboxes)): for bo

2020-08-18 16:01:47 217

原创 ubuntu  pycharm找不到libcudart.so.10.0

问题pycharm远程连接开发服务器上的conda环境,在pycharm上run使用mxnet的代码时提示:OSError: libcudart.so.10.0: cannot open shared object file: No such file or directory在终端上运行程序,可以调用。解决sudo ldconfig /usr/local/cuda/lib64...

2020-08-07 10:24:54 70

原创 OpenCV、PIL 切割合并图片

import osimport cv2import numpy as npimport mathfrom PIL import Imagedef crop_one_picture(path,save_split_path,height_min,width_min): """ 切割图片 :param path: 原图路径 :param save_split_path: 切割小图保存路径 :param height_min: 切割尺寸 :param.

2020-07-30 16:52:25 76

原创 以AlexNet网络为例说明卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)

https://www.cnblogs.com/touch-skyer/p/9150039.html分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算。以AlexNet网络为例,以下是该网络的参数结构图。AlexNet网络的层结构如下:1.Input: 图像的尺寸是2272273.2.Conv-1: 第1层卷积层的核大小11*11,96个核。步长(stride)为4,边缘填充(padding)为0。3.MaxPool-1: 池化层-1对Con

2020-07-29 18:05:14 146

原创 tf.truncated_normal 详解

truncated_normal( shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)功能说明:产生截断正态分布随机数,取值范围为[ mean - 2 * stddev, mean + 2 * stddev ]****。参数列表:import tensorflow as tfimport matplotlib.pyplot as plt tn = tf.

2020-07-20 18:16:06 453

原创 程序实现 dice coefficient损失函数

1.dice coefficient说明图像分割,目标检测中比较常用到dice coefficient。它的取值范围是0到1,越接近1说明模型越好。dice coefficient是像素级别的,真实的目标出现在某片区域A,你的模型预测的目标区域为B,那么dice coefficient就等于数学公式为:用图形象说明:2. 程序实现# -*- encoding: utf-8 -*-"""@File : @Time : 2020/7/20 17:15@Author : l

2020-07-20 17:16:50 233

原创 sigmoid梯度消失现象解释

解释:大部分情况下初始化W参数时,基本都是小于 1 的,二 sigmoid函数的导函数如图所示,求导的最大值为0.25,神经网络结构中每一层都有激活函数,这样在反向传播求导时,每一层都会乘以一个sigmoid的导函数值,最大为0.25,当神经网络层数太多时,也就是乘以多个0.25时,值就会特别的小,就会出现梯度消失的现象。...

2020-07-17 10:31:11 248

原创 softmax详解

1.softmax初探在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。首先我们简单来看看softmax是什么意思。顾名思义,softmax由两个单词组成,其中一个是max。对于max我们都很熟悉,比如有两个变量a,b。如果a>b,则max为a,反之为b。用伪码简单描述一下就是 if a > b return a; else b。另外一个单词为so

2020-07-17 10:16:04 45

原创 Python批量resize图片

from PIL import Imageimport os.pathimport globdef convertjpg(jpgfile,outdir,width=720,height=720): """ 修改图片大小 :param jpgfile: 输入原图片 :param outdir: 保存位置 :param width: 修改的宽度 :param height: 修改的高度 :return: """ img=Image.

2020-07-15 10:14:14 149

原创 图像改为卡通图像

# -*- encoding: utf-8 -*-import cv2import osimport cv2def cartoonise(picture_name): print (picture_name) imgInput_FileName = r"C:\Users\admin\Desktop\mahua\u=3096483399,3656062313&fm=26&gp=0.jpg" imgOutput_FileName = r"C:\Users\adm

2020-07-13 10:51:14 117

原创 全连接层经网络与全卷积神经网络的区别

一.全连接层:全连接层需要把输入拉成一个列项向量 ,如下图所示:比如你的输入的feature map是2X2,那么就需要把这个feature map 拉成4X1的列向量,如果你的feature map 的channels是3,也就是你的输入是3X2X2,也就是相当于有了12个像素点,你就需要把feature map 拉成12X1的列向量,这时候,再乘一个权重,这个权重要把12个像素点都包含进去,所以这个权重的矩阵形式应该是1X12,所以经过一个全连接层后的输出就是1X12X12X1=1X1,这时候需要

2020-07-06 18:06:32 130

原创 矩阵运算

矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义 。1.定义:设A为的矩阵,B为 的矩阵,那么称 的矩阵C为矩阵A与B的乘积,记作 。2. 运算结果:3.实例解释:58是如何得到的:1 * 7 = 72 * 9 = 183 * 11 = 337 + 18 + 33 = 58...

2020-07-05 19:36:34 54

原创 1*1卷积详解

卷积核作用:可以看作对某个局部的加权求和;它是对应局部感知,它的原理是在观察某个物体时我们既不能观察每个像素也不能一次观察整体,而是先从局部开始认识,这就对应了卷积。卷积核的大小一般有1x1,3x3和5x5的尺寸。卷积核的个数就对应输出的通道数,这里需要说明的是对于输入的每个通道,输出每个通道上的卷积核是不一样的。比如输入是28x28x192(WxDxK,K代表通道数),然后在3x3的卷积核,卷积通道数为128,那么卷积的参数有3x3x192x128,其中前两个对应的每个卷积里面的参数,后两个对应的卷积总

2020-06-30 17:16:33 196

原创 feature map、卷积核、卷积核个数、filter、channel的概念解释

feature map、卷积核、卷积核个数、filter、channel的概念解释feature map的理解在cnn的每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起(像豆腐皮一样),其中每一个称为一个feature map。feature map 是怎么生成的?输入层:在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。其它层:层与层之间会有若干个卷积核(kernel)(也称为过滤器),上一层每个

2020-06-30 17:16:11 192

原创 三维卷积详解

假如说你不仅想检测灰度图像的特征,也想检测 RGB 彩色图像的特征。彩色图像如果是 6×6×3,这里的 3指的是三个颜色通道,你可以把它想象成三个 6×6图像的堆叠。为了检测图像的边缘或者其他的特征,不是把它跟原来的 3×3 的过滤器做卷积,而是跟一个三维的过滤器,它的维度是 3×3×3,这样这个过滤器也有三层,对应红绿、蓝三个通道。给这些起个名字(原图像),这里的第一个 6 代表图像高度,第二个 6 代表宽度,这个3 代表通道的数目。同样你的过滤器也有高,宽和通道数,并且图像的通道数必须和过滤器的通道

2020-06-30 17:13:28 496 4

原创 darknet53中@wrap(Conv2D)详解

主要的功能其实就是python中的装饰器,对conv2d函数进行了功能修改。from keras.layers import Conv2D这里面的Con2D进行了两处修改变为了Darknet中所需要的卷积方式(为什么要这么改呢 可以去看yolo3的论文):1.正则化方式改为L2正则化,默认是None2.当步长为2时, padding的方式才为valid。默认情况下是步长为1,padding为valid。@wraps(Conv2D)def DarknetConv2D(*args, **kwargs

2020-06-27 18:09:59 176

原创 计算任意两个矩形的IOU值

下图中是两个矩形,这两个矩形可以是任意大小的,也可以不相交, 但四条边要与坐标轴平行.IOU的计算公式:两个矩形相交的面积与相并的面积之比,即淡黄色区域面积与浅蓝色和淡黄色区域面积和的比值。下面给出伪代码,可适用于任何情形:xA = max(x11,x21)yA = max(y11,y21)xB = min(x12,x22)yB = min(y12,y22) # 两个框各自的面积boxAArea=(x12-x11)*(y12-y11)boxBArea=(x22-x21)*(y22-y2

2020-06-13 11:06:09 231

原创 目标检测视频,并保存识别结果

#-------------------------------------## 调用摄像头检测#-------------------------------------#from keras.layers import Inputfrom yolo import YOLOfrom PIL import Imageimport numpy as npimport cv2yolo = YOLO()# 调用摄像头# capture=cv2.VideoCapture(1) # c

2020-06-13 10:28:55 392

原创 爬取q房网房源信息

爬取房源信息,保存到CSV文件,比较简单,没有什么反爬虫。# -*- encoding: utf-8 -*-"""@File : qfang.py@Time : 2020/6/11 14:44@Author : ligang@WeChat : 18233275213@Software: PyCharm"""import requestsimport timefrom lxml import etreeimport csvdef spider_page(url

2020-06-11 15:38:23 312

原创 深度学习基本知识

目录第一章. 环境安装       第一节 tensorflow安装                    一、TensorFlow GPU 1.12.0 安装第二章. 相关概念       第

2020-05-29 18:09:33 79

原创 Unet结构原理

Unet结构可以说是相对比较简单的图像分割算法了,通过四个下采样提取目标特征,再通过四个上采样,最后逐个对其像素点进行分类,那么这实际上是一个基于编码器(encode)-解码器(decode)思想。下图就是Unet网络结构:我的个人理解是编码器实际上相当于backbone对输入图片进行特征提取,提取出合适的feature-map,再通过解码器恢复至原尺寸,进行逐个像素点分类。下采样:简单的卷积层特征提取。上采样:输入图像经过前面下采样进行特征提取之后,需要把图像恢复至原来的尺寸以便进一步对像素

2020-05-29 12:02:48 688

原创 【语义分割】批量制作多类语义分割数据集

操作步骤执行json_to_dataset.py文件,批量将json转为dataset执行get_jpg_and_png.py文件,生成对应的png灰度图注意:使用 3.16.2版本的labelme, 博主试过4.2.10版本的labelme,会报错,没有draw.py文件。且博主试过了,将3.16.2版本的draw.py文件拷贝到4.2.10文件夹下的utils文件中,自己构建也是不行的,会报错。 应该得改动draw.py文件中的内容吧。1. json_to_dataset.py 代码(批量

2020-05-29 11:45:01 429 3

原创 Python非线性回归-武汉疫情确诊、疑似、死亡、治愈人数预测

kears搭建简单的非线性回归,博主用它进行的武汉市疫情确诊、疑似、死亡、治愈人数的预测。# -*- encoding: utf-8 -*-"""@File : test.py@Time : 2020/5/27 9:26@Author : ligang@WeChat : 15188607997@Software: PyCharm"""from matplotlib import pyplotfrom keras.models import Sequentialfro

2020-05-27 10:21:05 435

原创 检测视频或摄像头中的目标

注:调用 yolo v4 的模型实现的,下面代码仅是读取视频并将格式转换为可传入模型的格式。#-------------------------------------## 调用摄像头/视频检测#-------------------------------------#from keras.layers import Inputfrom yolo import YOLOfrom PIL import Imageimport numpy as npimport cv2yolo

2020-05-25 15:13:54 406

原创 one-stage two-stage 的区别

目标检测可以理解为是物体识别和物体定位的综合,不仅仅要识别出物体属于哪个分类,更重要的是得标记处物体在图片中的具体位置。目标检测目前使用两类方法: one-stage 、 two-stageone-stage检测器的大致发展路线:1.SSD(2015)->RetinaNet(2017)-NAS-FPN(2019.05)->EfficientDet(2019.11)2.Yolo v1->Yolo v2->Yolo v3->Yolo v4two-stage检测器的大致发展路

2020-05-25 14:00:22 303

原创 统计 python 列表中每种相同元素出现的次数

import collectionslst = ['Albatross', 'Albatross', 'Yellow_breasted_Chat', 'Albatross', 'Yellow_breasted_Chat', 'Yellow_breasted_Chat', 'Cuckoo', 'Cuckoo', 'Cuckoo', 'Cuckoo']dic = collections.Counter(lst)# Counter({'Cuckoo': 4, 'Albatross': 3, '

2020-05-23 15:48:02 264

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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