happy1yao
码龄7年
关注
提问 私信
  • 博客:170,311
    170,311
    总访问量
  • 61
    原创
  • 1,600,829
    排名
  • 30
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 目前就职: 镭目科技
  • 加入CSDN时间: 2018-04-02
博客简介:

weixin_41940752的博客

查看详细资料
个人成就
  • 获得130次点赞
  • 内容获得8次评论
  • 获得639次收藏
创作历程
  • 21篇
    2020年
  • 43篇
    2019年
  • 17篇
    2018年
成就勋章
TA的专栏
  • 机器视觉
    2篇
  • 机器学习
    26篇
  • C++
    15篇
  • 区块链
    2篇
  • 深度学习
    22篇
  • opencv
    8篇
  • 数据挖掘
    6篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

模型集成

集成学习(ensemble learning)是机器学习中一类学习算法,值训练多个学习器并将它们组合起来使用的方法。这类算法通常在实践中会取得比单个学习器更好的预测结果。基于数据的集成在训练阶段的数据扩充在测试阶段仍然适用。 诸如图像多尺度, 随机剪裁等。以随机剪裁为例, 对某张测试图片随机剪裁可得到n 张图像,测试阶段只需要用训练好的深度网络模型对n张图分别做预测, 之后将预测的各类置信度平均作为该测试图像最终预测结果即可。数据扩充具体操作方法见前文:https://blog.csdn.net/
原创
发布博客 2020.06.02 ·
320 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

字符识别模型训练与验证

构建验证集在机器学习与深度学习模型的训练过程中,模型非常容易出现过拟合的现象。构建验证集能够有效解决过拟合问题,验证集需要尽可能与测试集保持一致,在训练过程中不断验证模型在验证集上的精度,以此控制模型训练。验证集构建方法(1)留出法(Hold-out)这种方法直接将训练集分成新的训练集与验证集。优点是直接简单,缺点是只得到一份验证集,有可能导致模型在验证集上出现过拟合。留出法适用于数据量较大的情况。(2)交叉验证法(Cross Validation)将训练集划分为K份,将其中的K-1份作为训.
原创
发布博客 2020.05.29 ·
589 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

提升模型效果的途径

数据增广:基于图像处理的数据增广:几何变换(旋转、缩放、翻转、剪裁、平移、仿射变换)颜色空间变换(亮度、对比度、饱和度调整、颜色空间转行、色彩调整)添加噪声和滤波(注入高斯噪声、椒盐噪声,模糊、锐化)图像混合mixing image随机擦除 random erasing基于深度学习的数据增广基于GAN的数据增强:可用于解决类别不平衡问题神经风格转换:生成不同风格数据,防止模型过拟合AutoAugment3.使用Pytorch进行数据增强transforms.Compose
原创
发布博客 2020.05.26 ·
1070 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

街景字符识别Baseline解析

上一篇文章已经将pytorch环境配置完毕,本篇对baseline代码进行解析。下一篇文章将对baseline进行改进。相关库导入import os, sys, glob, shutil, jsonos.environ["CUDA_VISIBLE_DEVICES"] = '0' ##用于指定用哪块GPUimport cv2from PIL import Imageimport numpy as npfrom tqdm import tqdm, tqdm_notebook ##时间进
原创
发布博客 2020.05.23 ·
574 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

pytorch安装踩坑记录

直接anaconda 里直接安装,一直装不上torchvision,版本冲突,由于anaconda自带python3.7,更换python3.6环境。由于之前安装过删除过虚拟环境,一直出现查阅相关资料表示,由于多次创建删除导致两个路径的libssl-1_1-x64.dll时间不一致,需替换统一。按此操作后仍不能解决。直接卸载重装。卸载anaconda使用自带的uninstall.exe3.重新安装后创建虚拟环境conda create -n py36 python=3.6出现错误(..
原创
发布博客 2020.05.20 ·
1399 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

目标检测之RCNN系列(一)RCNN

总个过程分为4个步骤:a)selective search找出2000个候选框;CNN对输入图片的大小是固定的,因此对于每个输入的候选框都需要缩放到固定的大小;用IOU为2000个bounding box打标签,以便下一步CNN训练使用。IoU大于0.5,那么我们就把这个候选框标注成物体类别,否则我们就把它当做背景类别。b)利用CNN提取特征向量,特征维度为4096;网络架构我们有两个可选方案:第一选择经典的Alexnet;第二选择VGG16。精度比较:Alexnet精度为58.5%,VGG16
原创
发布博客 2020.05.12 ·
343 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CNN经典模型(七)DenseNet

CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,skip connection),这有助于训练过程中梯度的反向传播,从而能训练出更深的CNN网络。今天我们要介绍的是DenseNet模型,它的基本思路与ResNet一致。ResNet是每个层与前面的某...
原创
发布博客 2020.05.07 ·
592 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

CNN经典模型(六)轻量化网络MobileNet 系列

在实际中应用CNN受限于硬件运算能力与存储(比如几乎不可能在ARM芯片上跑ResNet-152)。所以必须有一种能在算法层面有效的压缩存储和计算量的方法。而MobileNet/ShuffleNet正为我们打开这扇窗。假设有输入feature map,尺寸为HWC,同时有 k个 hw卷积核。对于一般卷积,输出feature map尺寸为H’W’k而Group convolution的实质就是将c...
原创
发布博客 2020.05.07 ·
1056 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

CNN经典模型(五)Xception

Xception是google继Inception后提出的对Inception v3的另一种改进,主要是采用depthwise separable convolution(深度可分离卷积)来替换原来Inception v3中的卷积操作。其实就是将传统的卷积操作分成两步,假设原来是33的卷积,那么depthwise separable convolution就是先用M个33卷积核一对一卷积输入的M...
原创
发布博客 2020.05.07 ·
1657 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

CNN经典模型(四)GoogleNet系列

基本思想:不需要人为决定使用哪个过滤器,或是否需要池化,而是由网络自行确定这些参数,你可以给网络添加这些参数的所有可能值,然后把这些输出连接起来,让网络自己学习它需要什么样的参数,采用哪些过滤器组合。Inception V1它最大的特点是控制了计算量和参数量的同时,获得了非常好的分类性能——top-5错误率6.67%,只有AlexNet的一半不到。Inception V1有22层深,比Alex...
原创
发布博客 2020.05.07 ·
377 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CNN经典模型(三)ResNet系列

简单来说,resnet巧妙地利用了shortcut连接,解决了深度网络中模型退化的问题。模型特点:(1)在卷积核relu之间增加了BNdef conv_batchnorm_relu(x, filters, kernel_size, strides): x = Conv2D(filters=filters, kernel_size=kernel_size...
原创
发布博客 2020.05.07 ·
648 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

CNN经典模型(二) VGG系列

VGG16VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。网络结构VGG-16的这个数字16,就是指在这个网络中包含16个卷积层和...
原创
发布博客 2020.05.07 ·
571 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CNN经典模型(一)AlexNet

网络结构from tensorflow.keras.layers import Input, Conv2D, \ BatchNormalization, MaxPool2D, Flatten, Dense, Dropoutinput = Input(shape=(224, 224, 3))x = Conv2D(filters=96, kernel_siz...
原创
发布博客 2020.05.07 ·
261 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深度学习笔记(二)NIN网络

1×1卷积的作用以下内容摘抄自:http://www.caffecn.cn/?/question/136问:发现很多网络使用了1X1卷积核,这能起到什么作用呢?另外我一直觉得,1X1卷积核就是对输入的一个比例缩放,因为1X1卷积核只有一个参数,这个核在输入上滑动,就相当于给输入数据乘以一个系数。不知道我理解的是否正确答1:对于单通道的feature map和单个卷积核之间的卷积来说,题主的...
转载
发布博客 2020.05.04 ·
384 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深度学习笔记(一)BatchNormalization()

原文地址:http://blog.csdn.net/hjimce/article/details/50866313一、背景意义近年来深度学习捷报连连、声名鹊起,随机梯度下架成了训练深度网络的主流方法。尽管随机梯度下降法对于训练深度网络简单高效,但是它有个毛病,就是需要我们人为的去选择参数,比如学习率、参数初始化、权重衰减系数、Drop out比例等。这些参数的选择对训练结果至关重要,以至于我们...
转载
发布博客 2020.05.03 ·
217 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

CV基础(六)边缘检测

为了检测边缘,我们需要检测图像中的不连续性,可以使用导数来检测不连续性。但是,导数也会受到噪声的影响,因此建议在求导数之前先对图像进行平滑处理。Sobel算子Sobel算子是一阶导数的边缘检测算子,在算法实现过程中,通过3×3模板作为核与图像中的每个像素点做卷积和算,然后选取合适的阈值以提取边缘。左侧代表在x方向上进行加权差分,右侧代表在y方向上的加权差分。此处要注意的是,卷积核在真正参...
原创
发布博客 2020.04.30 ·
397 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CV基础(五)图像分割

最大类间方差法(大津阈值法)threshold ( InputArray src, OutputArray dst, double thresh, double maxval,int type)src — input array (single-channel, 8-bit or 32-bit floating point).dst — output array of the same ...
原创
发布博客 2020.04.29 ·
852 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CV基础(四)图像滤波

线性滤波方框滤波当normalize=true的时候,方框滤波就变成了我们熟悉的均值滤波。也就是说,均值滤波是方框滤波归一化(normalized)后的特殊情况。其中,归一化就是把要处理的量都缩放到一个范围内,比如(0,1),以便统一处理和直观量化。而非归一化(Unnormalized)的方框滤波用于计算每个像素邻域内的积分特性,比如密集光流算法(dense optical flow ...
原创
发布博客 2020.04.27 ·
498 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

CV基础(三)颜色空间转换

我们生活中大多数看到的彩色图片都是RGB类型,但是在进行图像处理时,需要用到灰度图、二值图、HSV、HSI等颜色制式,opencv提供了cvtColor()函数来实现这些功能。首先看一下cvtColor函数定义:cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 );参数解释:. InputArray src: 输入...
原创
发布博客 2020.04.25 ·
288 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CV基础(二)几何变换与图像增强

几何变换(1)图像平移Mat move(Mat &src, int x_off, int y_off) { int rows = src.rows + y_off; int cols = src.cols + x_off; Mat dst = Mat::zeros(rows, cols, src.type());//注意与上面的差别,行列重新选值 for (int i = ...
原创
发布博客 2020.04.23 ·
441 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多