
深度学习算法
文章平均质量分 76
内容包括深度学习,机器学习以及常用的人工智能算法
心之所向521
锲而舍之,朽木不折;锲而不舍,金石可镂!
敬畏代码!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单目可见光视频三维深度估计(python实现)
目录技术要点:主要应用:准备工作:构建环境:激活环境:需要安装库:权重文件下载:开始预测:1.采集图片2.修改标签文件3.训练模型4.启动主程序全部代码:说明:本篇文章主要借鉴于抖音恩培大佬的代码,大佬的github地址为:enpeizhao (enpei) (github.com)感兴趣的朋友也可以关注大佬的抖音号!技术要点: 脸部姿态估计识别与检测 帧率检测 目标物体三个角度x、y、z估计 主要应用: 家原创 2022-01-09 20:17:34 · 3859 阅读 · 9 评论 -
ShuffleNet:通道的打乱与混洗
目录背景:通道混洗简述ShuffleNet v1网络结构:ShuffleNet v2网络结构:背景:为了降低计算量,当前先进的卷积网络通常在3×3卷积之前增加一个1×1卷积,用于通道间的信息流通与降维。然而在ResNeXt、MobileNet等高性能的网络中,1×1卷积却占用了大量的计算资源。 2017年的ShuffleNet v1从优化网络结构的角度出发,利用组卷积与通道混洗(Channel Shuffle)的操作有效降低了1×1逐点卷积的计算量,是一个极为高效的轻量化网络。而20原创 2021-12-22 13:47:40 · 11890 阅读 · 4 评论 -
MobileNet:深度可分离(原理及代码)
目录背景:标准卷积:深度可分离卷积:MobileNet v1结构小结MobileNet v2结构背景:SqueezeNet虽在一定程度上减少了卷积计算量,但仍然使用传统的卷积计算方式,而在其后的MobileNet利用了更为高效的深度可分离卷积的方式,进一步加速了卷积网络在移动端的应用。 为了更好地理解深度可分离卷积,我们首先回顾标准的卷积计算过程,然后详细探讨深度可分离卷积过程,以及基于此结构的两个网络结构MobileNet v1与MobileNet v2。论文地址:原创 2021-12-21 23:57:52 · 3078 阅读 · 1 评论 -
SqueezeNet:压缩、扩展和融合(提供代码)
目录背景:论文地址:1602.07360.pdf (arxiv.org)网络结构:小结代码地址:GitHub - forresti/SqueezeNet: SqueezeNet: AlexNet-level accuracy with 50x fewer parameters背景:当物体检测应用到实际工业场景时,模型的参数量是一个十分重要的指标,较小的模型可以高效地进行分布式训练,减小模型更新开销,降低平台体积功耗存储和计算能力的限制,方便在FPGA等边缘平台上部署。 基于以原创 2021-12-21 23:52:24 · 701 阅读 · 1 评论 -
利用PaddleDetection部署自己的轻量级移动检测嵌入式平台(多种高性能网络模型)--Pytorch实现
目录文章核心:1.效果图及视频展示2.背景3.安装PaddlePaddle4.预训练模型的下载比如yolov3在coco和voc数据集上的预训练模型和权重列表如下:4.模型导出(python端)5.模型预测1.图片预测2.视频预测,帧率在10左右3.文件夹下图片预测当然也可以自己进行训练,相应的指令为:安装过程中遇到的其他问题:全部源码均在PaddleDetection的官方Github上,地址如下:(本文用的版本是最新2.3的版本)Paddl原创 2021-12-17 22:36:28 · 3097 阅读 · 2 评论 -
深度神经网络压缩和加速详解
目录1.背景介绍2.压缩方法概述3.压缩方法详述3.1参数剪枝3.2参数量化3.3低秩分解(张量分解)3.4参数共享3.5紧凑网络3.6知识蒸馏3.7混合模型3.8不同压缩模型比较1.背景介绍深度学习模型的压缩和加速是指利用神经网络参数的冗余性和网络结构的冗余性精简模型,在不影响任务完成度的情况下,得到参数量更少、结构更精简的模型.被压缩后的模型计算资源需求和内存需求更小,相比 原始模型能够满足更加广泛的应用需求. 接下来系统...原创 2021-12-17 15:07:53 · 3753 阅读 · 1 评论 -
Cascade RCNN:走向检测器的级联
目录背景:网络结构:相关代码:(Pytorch实现)整体结构:demo代码:全部代码地址:背景:从之前的知识可知,在得到一个RoI后,Faster RCNN通过RoI与标签的IoU值来判断该RoI是正样本还是负样本,默认的IoU阈值为0.5,这个阈值是一个超参数,对于检测的精度有较大影响。 如何选择合适的阈值是一个矛盾的问题。一方面,阈值越高,选出的RoI会更接近真实物体,检测器的定位会更加准确,但此时符合条件的RoI会变少,正、负样本会更加不均...原创 2021-12-17 10:32:48 · 1549 阅读 · 0 评论 -
R-FCN:走向全卷积的网络
目录1.背景:论文地址:2.结构图:3.相关代码:(caffe框架)训练代码:整体python代码实现:1.背景:由于全连接的参数量过大,现在越来越多的网络开始去掉全连接,R-FCN就是一个很好的例子!而且个人认为全卷积应该是未来!Faster RCNN在RoI Pooling后采用了全连接网络来得到分类与回归的预测,这部分全连接网络占据了整个网络结构的大部分参数,而目前越来越多的全卷积网络证明了不使用全连接网络效果会更好,以适应各种输入尺度的图片。 一个很自然.原创 2021-12-16 18:29:13 · 2601 阅读 · 0 评论 -
Mask RCNN:走向实例级分割
背景:继提出Faster RCNN之后,大神何凯明进一步提出了新的实例分割网络Mask RCNN,该方法在高效地完成物体检测的同时也实现了高质量的实例分割,获得了ICCV 2017的最佳论文!一举完成了object instance segmentation!!(不仅仅时语义分割,而且是实例分割:不仅仅识别不同类,还要是要识别大类下面的小类)该方法在有效地目标的同时完成了高质量的语义分割。 文章的主要思路就是把原有的Faster-RCNN进行扩展,添加一个分支使用现有的检测对目标进行并行预测。同...原创 2021-12-16 17:52:48 · 1245 阅读 · 0 评论 -
HyperNet: 走向特征融合,提高小物体检测精度
目录1.背景:2.结构图:3.优点4.加速策略:5.产生优异效果:6.轻量化方法:1.背景:卷积神经网络的特点是,深层的特征体现了强语义特征,有利于进行分类与识别,而浅层的特征分辨率高,有利于进行目标的定位。原始的Faster RCNN方法仅仅利用了单层的feature map(例如VGGNet的conv5-3),对于小尺度目标的检测较差,同时高IoU阈值时,边框定位的精度也不高。 在2016 CVPR上发表的HyperNet方法认为单独一个feature ...原创 2021-12-16 16:31:57 · 4525 阅读 · 0 评论 -
Faster RCNN总结(优缺点说明)
# 两种特殊卷积:转置卷积和空洞卷积[TOC]## 1.转置卷积##### 简介: 我们一般可以通过卷积操作来实现高维特征到低维特征的转换。比如在一 维卷积中,一个5维的输入特征,经过一个大小为3的卷积核,其输出为3维特征。 如果设置步长大于1,可以进一步降低输出特征的...原创 2021-12-16 15:08:08 · 11843 阅读 · 2 评论 -
两种特殊卷积:转置卷积和空洞卷积
目录1.转置卷积2.空洞卷积3.总结1.转置卷积简介:我们一般可以通过卷积操作来实现高维特征到低维特征的转换。比如在一 维卷积中,一个5维的输入特征,经过一个大小为3的卷积核,其输出为3维特征。 如果设置步长大于1,可以进一步降低输出特征的维数。但在一些任务中,我们需 要将低维特征映射到高维特征,并且依然希望通过卷积操作来实现。假设有一个高维向量为和一个低维向量为如果用仿 射变换来实现高维到低维的映射, 其中为转换矩阵。我们可以很容易地通过转置 W来实现低维到高...原创 2021-12-11 18:13:31 · 5033 阅读 · 5 评论 -
网络中的网络:NiN
前面几篇文章介绍的LeNet、AlexNet和VGG在设计上的共同之处是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。其中,AlexNet和VGG对LeNet的改进主要在于如 何对这两个模块加宽(增加通道数)和加深。今天我们来介绍网络中的网络(NiN):它提出了另外 一个思路,即串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。我们知道卷积层的输入和输出通常是四维数组(样本,通道,高,宽),而全连接层的输入和输出则通常是二...原创 2021-12-11 16:49:13 · 1703 阅读 · 3 评论 -
单阶段多层检测器:SSD (理论及Pytorch代码详解)
目录背景:SSD结构及特点介绍:数据增强:基础的VGG结构:深度卷积层:先验框与边框特征提取网络总体网络的前向计算过程损失函数计算与先验框匹配:预选框与真实框的匹配定位损失计算难样本挖掘类别损失计算SSD总结(优缺点简述)背景:对于物体检测任务,前面Faster RCNN算法采用了两阶的检测架构,即首先利用RPN网络进行感兴趣区域生成,然后再对该区域进行类别的分类与位置的回归,这种方法虽然显著提升了精度,但也限制了检测速度。YOLO算...原创 2021-12-08 20:54:55 · 3708 阅读 · 4 评论 -
从端到端的Fast RCNN到走向实时的Faster RCNN (原理及Pytorch代码解析)
目录RCNN背景:原理:缺点:端到端的Fast RCNN背景:原理:缺点:走向实时:Faster RCNN (two-stage)背景:原理:RPN详解:Anchor的理解:RPN的真值和预测值:RPN卷积网络:RPN真值的求取:损失函数:NMS与生成Proposal:筛选Proposal得到ROl:ROl Pooling层:相关主干代码:RCNN背景:RCNN全称为Regions with CNN Feat原创 2021-12-03 12:38:35 · 8148 阅读 · 3 评论 -
利用Mediapipe和DGL实现火影结印识别与追踪---特殊手势识别
还记得曾经日思夜想也要追番的火影吗?曾经的招式还可以依稀回忆起来吗?今天我们来用图卷积神经网络GCN+DGL+Mediapipe的方式实现火影结印识别!!!听起来是不是特别有意思呢??先看一段演示视频:利用Mediapipe和DGL实现特殊手势识别---【火影结印识别】雀氏有点意思!!!!!接下来咱们细细道来!!!首先从DGL说起·······1.DGl概述Deep Graph Library (DGL) 是一个在图...原创 2021-12-02 23:34:08 · 8055 阅读 · 15 评论 -
jupyter notebook环境配置
1.安装jupter终端输入: jupyter notebook如果未成功激活jupter则要自己先安装jupter:pip install jupyter ##安装jupterjupyter notebook ##启动jupter2.创建自己的conda环境conda create -n *** python=3.63.激活环境conda activate ***4.安装ipykernel包pip install ipykernel5.建...原创 2021-12-02 10:58:17 · 10322 阅读 · 2 评论 -
Backbone 之 DetNet:为检测而生(Pytorch实现及代码解析)
背景:前面几节的网络骨架,如VGGNet和ResNet等,虽从各个角度出发提升了物体检测性能,但究其根本是为ImageNet的图像分类任务而设计的。而图像分类与物体检测两个任务天然存在着落差,分类任务侧重于全图的特征提取,深层的特征图分辨率很低;而物体检测需要定位出物体位置,特征图分辨率不宜过小,因此造成了以下两种缺陷: 大物体难以定位:对于FPN等网络,大物体对应在较深的特征图上检测,由于网络较深时下采样率较大,物体的边缘难以精确预测,增加了回归边界的难度。 小物体难以检测:对于传统网.原创 2021-11-30 22:41:07 · 6023 阅读 · 0 评论 -
Backbone 之 FPN:特征金字塔 (Pytorch实现及代码解析)
背景:为了增强语义性,传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作,而这一层对应的下采样率(图像缩小的倍数)通常又比较大,如16、32,造成小物体在特征图上的有效信息较少,小物体的检测性能会急剧下降,这个问题也被称为多尺度问题。 解决多尺度问题的关键在于如何提取多尺度的特征。传统的方法有图像金字塔(Image Pyramid),主要思路是将输入图片做成多个尺度,不同尺度的图像生成不同尺度的特征,这种方法简单而有效,大量使用在了COCO等竞赛上,但缺点是非常耗...原创 2021-11-30 21:53:25 · 15176 阅读 · 1 评论 -
Bachbone 之 DenseNet:继往开来(Pytorch实现及代码解析)
背景:上一节的ResNet通过前层与后层的“短路连接”(Shortcuts),加强了前后层之间的信息流通,在一定程度上缓解了梯度消失现象,从而可以将神经网络搭建得很深。更进一步,本节的主角DenseNet最大化了这种前后层信息交流,通过建立前面所有层与后面层的密集连接,实现了特征在通道维度上的复用,使其可以在参数与计算量更少的情况下实现比ResNet更优的性能,提出DenseNet的《Densely Connected Convolutional Networks》也一举拿下了2017年CVPR的最佳论原创 2021-11-30 20:35:08 · 5896 阅读 · 1 评论 -
Backbone 之 ResNet:里程碑(Pytorch实现及代码解析)
背景:由于随着网络的层数不断加深,网络训练变得越发地困难,一方面会产生梯度消失的现象,另一方面月神的网络返回的梯度相关性会越来越差,越接近白噪声,导致梯度更新也接近于随机扰动。由此ResNet应运而生。思路:引入一个深度残差框架来解决梯度消失问题,即让卷积网络去学习残差映射,而不是期望每一个堆叠层的网络都完整的拟合潜在的映射(拟合函数)。结构图:在ResNet中,上述的一个残差模块被称之为Bottleneck,其中ResNet有不同的网络层版本,比如:18,34,52,101和15.原创 2021-11-30 19:54:45 · 821 阅读 · 0 评论 -
Backbone 之 Inception:纵横交错 (Pytorch实现及代码解析)
背景:一般来说,增加网络的深度和宽度可以提升网络的性能,但是这样做也会带来参数量的大幅度增加,同时较深的网络需要较多的数据,否则很容易产生过拟合现象。除此之外,增加深度的有一个坏处就是很容易造成梯度消失的现象。由此,ImageNet大赛上,GoogLeNet(Inception)很好地解决了这个问题。Inception基础结构图:Inception特点: 采用并行结构代替之前VGG的深度串行结构 采用几个大小不同的卷积运算和池化,最后再拼接(通道拼接)到一起 1x.原创 2021-11-30 19:52:19 · 5252 阅读 · 0 评论 -
Bachbone 之 VGGNet:走向深度 (Pytorch实现及代码解析)
2014年的VGGNet荣获ImageNet亚军,其主张探索网络深度与性能的关系,用更小的卷积核与更深的网络结构,并且还取得了较为优异的效果,其网络结果图如示:从图中可以看出来,网络大概有6种版本,最为常用的是VGG16的版本。VGGNet采用了5组卷积和3个全连接层,最后的部分采用Softmax做分类,其有一个显著的特点就是: 每经过一层池化层,特征图的尺寸减小一倍,通道数增加一倍 更多地使用3x3的卷积核来代替5*5的卷积核,因为两个3x3的卷积核...原创 2021-11-30 19:48:57 · 3643 阅读 · 0 评论 -
好玩的开源项目MotionInput v2.0:探索无外接设备的交互---骨架检测、人脸关键点检测及追踪、手势识别、表情识别
------基于手势的机器学习和计算机视觉方法的模块库,用于与网络摄像头交互和控制现有软件(支持DirectX)-------原论文地址:https://arxiv.org/ftp/arxiv/papers/2108/2108.04357.pdf)1.Motioninput简介:Motioninput共有四个模块,用于描述基于 Windows 的交互的手势输入。他们使用常规网络摄像头和开源机器学习库,为 Microsoft Windows 10 上支持 DirectX 的...原创 2021-11-30 12:32:21 · 3909 阅读 · 2 评论 -
利用knn svm cnn 逻辑回归 mlp rnn等方法实现mnist数据集分类(pytorch实现及源码解析)
电脑 配置:python3.6**Pytorch 1.2.0**torchvision 0.4.0想学习机器学习和深度学习的同学,首先找个比较经典的案例和经典的方法自己动手试一试,分析这些方法的思想和每一行代码是一个快速入门的小技巧,今天我们谈论怎么用一些比较经典的方法实现经典数据集MNIST的识别分类问题。废话不多说,直接上代码!!!1.svm实现#!/usr/bin/env python3# -*- coding: utf-8 -*-# arguments原创 2021-11-27 20:56:35 · 3192 阅读 · 3 评论 -
通过机器学习svm、ranforest等方法实现AD、heart、WDBC等病例数据集的分类任务:
由于sklearn模块中集成了很多机器学习算法,像比较常见的svm、ranforest、xgboost等机器学习算法都有,这里我们直接调用就行!!废话不多说,直接上整体源码:import numpy as npfrom sklearn import svmfrom sklearn.ensemble import RandomForestClassifierimport argparseimport scipy.ioparser = argparse.ArgumentParser()pa原创 2021-11-25 12:52:09 · 1083 阅读 · 0 评论 -
利用全连接网络实现病例AD,heart,WDBC等数据集的分类预测
1.网络搭建:"""作者:lds网络搭建"""import torch.nn as nnfrom torchvision import transforms as Tclass Net(nn.Module): # 搭建6层网络 def __init__(self, input, hidden_1, hidden_2, hidden_3, hidden_4, hidden_5,output):##在用到Net时,可以自己手动根据不同的数据集进行改动各层的大小。 ...原创 2021-11-25 12:43:29 · 1396 阅读 · 0 评论 -
预训练模型简介
预训练模型预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮。这和小孩子读书一样,一开始语文、数学、化学都学,读书、网上游戏等,在脑子里积攒了很多。当他学习计算机时,实际上把他以前学到的所有知识都带进去了。如果他以前没上过中学,没上过小学,突然学计算机就不懂这里有什么道理。这和我们预训练模型一样,预训练模型就意味着把人类的语言知识,先学了一个东西,然后再代入到某个具体任务,就顺手了,就是这么一个简单的道理。为什么要做预训练模型?----背景自然语言处理(NLP),目的是使得计算机具备人类的听原创 2021-11-25 12:37:25 · 12374 阅读 · 0 评论 -
PCA和LDA大实践(源码及原理)
PCA介绍------降维主成分分析(Principal Component Analysis),是一种用于探索高维数据的技术。PCA通常用于高维数据集的探索与可视化。还可以用于数据压缩,数据预处理等。PCA可以把可能具有线性相关性的高维变量合成为线性无关的低维变量,称为主成分(principal components),新的低维数据集会尽可能的保留原始数据的变量,可以将高维数据集映射到低维空间的同时,尽可能的保留更多变量。注意:降维就意味着信息的丢失,这一点一定要明确,如果用原始数据在模型上没有效原创 2021-11-25 12:34:15 · 4967 阅读 · 0 评论 -
MediaPipe实现手指关键点检测及追踪,人脸识别及追踪
OpenCV 是一个用于计算机视觉应用程序的库。在 OpenCV 的帮助下,我们可以构建大量实时运行更好的应用程序。主要用于图像和视频处理。可以在此处获取有关 OpenCV 的更多信息 (https://opencv.org/)除了 OpenCV,我们将使用 MediaPipe 库。1.MediaPipe简介MediaPipe是一个主要用于构建音频、视频或任何时间序列数据的框架。在 MediaPipe 框架的帮助下,我们可以为不同的媒体处理功能构建管道。MediaPipe 的一些主要..原创 2021-11-25 12:30:13 · 38310 阅读 · 20 评论 -
解决matplotlib的中文显示问题
为解决matplotlib的中文显示问题,首先我们要做的就是要先找到它所内置支持的字体,那么我们首先查看一下它的内置字体,运行以下代码查看所支持的字体:# 查询当前系统所有字体from matplotlib.font_manager import FontManagerimport subprocessmpl_fonts = [f.name for f in FontManager().ttflist]print('all font list get from matplotlib.fon原创 2021-11-21 19:57:36 · 1179 阅读 · 0 评论 -
各大镜像源地址-------解决conda/pip install 下载速度慢
http://mirrors.aliyun.com/pypi/simple/https://pypi.mirrors.ustc.edu.cn/simple/http://pypi.douban.com/simple/https://pypi.tuna.tsinghua.edu.cn/simple/阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.u...原创 2021-09-09 21:18:35 · 7571 阅读 · 0 评论 -
【深度学习笔记】 【深度学习混淆专业名词解释】
1.监督学习、无监督学习、半监督学习和强化学习到底有什么区别?Supervised learning(监督学习)它是有特征(feature)和标签(label)的,即便是没有标签的,机器也是可以通过特征和标签之间的关系,判断出标签。举例子理解:高考试题是在考试前就有标准答案的,在学习和做题的过程中,可以对照答案,分析问题找出方法。在高考题没有给出答案的时候,也是可以给出正确的解决。这就是监督学习。一句话概括:给定数据,预测标签。通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数原创 2021-07-01 10:22:36 · 9984 阅读 · 0 评论 -
深度学习笔记--- 什么是分类,什么是回归?
[深度学习笔记] 什么是分类,什么是回归?监督学习中: 如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等), 如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。对于二维空间,线性是一条直线;对于三维空间,线性是一个平面,对于多维空间,线性是一个超平面...原创 2021-05-27 11:41:34 · 9148 阅读 · 0 评论