
深度学习
文章平均质量分 84
处女座_三月
增长见识, 去见识更加广阔的世界
展开
-
使用opencv结合帧差法和背景减法 检测场景异常情况
帧差法是一种简单的背景减法技术,用于检测当前帧和背景帧之间的差异。用于检测是否下雨,漏水等情况。原创 2023-10-12 17:18:54 · 1434 阅读 · 0 评论 -
目标检测中遇到的问题和 docker导出日志
将模型在主程序 main 中加载,进行flask交互时,将全局变量直接导入使用模块中,比如提前加载YOLOv5模型。导出日志在Linux服务器的本地目录下,可以直接下载。四 提取图片中的识别区,将无关部分去除。1 改dockerfile 文件内容。2 改 app.py 中的内容。返回图片中固定比例的点。原创 2023-08-10 17:46:40 · 711 阅读 · 0 评论 -
YOLO5-1 使用YOLO5检测 水面漂浮物记录
数据集配置文件 dataset.yaml 的路径,默认值是 ROOT / 'data/coco128.yaml'。: 指定使用的设备,如 'cuda:0' 表示使用第一个 GPU,'cpu' 表示使用 CPU。: 初始权重文件的路径,默认值是 ROOT / 'yolov5s.pt'。: 所有 GPU 上的总批量大小,-1 表示自动确定,默认值是 16。: 保存结果的名称,默认值是 'exp'。: 总的训练轮数,默认值是 100。: 保存结果的项目路径,默认值是。原创 2023-08-03 10:58:18 · 1883 阅读 · 5 评论 -
01-1 搭建 pytorch 虚拟环境
pip之后默认安装的环境是torch1.9.0+cuda10.2,而3080ti的算力是8.6,支持的cuda版本应该不小于11.0,所以出错。RTX 3080的算力是8.6,3080Ti只能适用CUDA11.0以上的版本;需要重新安装对应CUDA可用版本的pytorch版本;原创 2023-08-02 18:11:55 · 1245 阅读 · 0 评论 -
使用cv2将图片转正
对目标图像进行近似多边形拟合,使用一个较少顶点的多边形去拟合一个曲线轮廓,要求拟合曲线与实际轮廓曲线的距离小于某一阀值。比如一张纸的照片是倾斜的,用OpenCV如何实现自动检测出纸的轮廓并调整倾斜角度,让照片变“正”。epsilon : 原始曲线与近似曲线的最大距离,参数越小,两直线越接近。closed : 得到的近似曲线是否封闭,一般为True。方法有很多种,如:直线检测,轮廓检测,最小外接矩形等。approxCurve :返回的拟合后的多边形顶点集。curve : 图像轮廓点集,一般由轮廓检测得到。原创 2023-05-16 22:01:08 · 2738 阅读 · 0 评论 -
怎么将paddleocr中的模型取出来
找到保存模型的路径。在 PaddleOCRX 部署代码中,通常会有一段代码用于加载和使用模型。可以查看这段代码中对应的模型路径。将模型文件复制到本地计算机上。可以使用 SCP 命令或其他文件传输工具将模型文件从远程服务器复制到本地计算机上。使用 PaddleOCRX 提供的 API 加载模型。分别指定检测模型、识别模型和分类模型的路径。指定待识别的图像文件路径,原创 2023-04-09 20:17:15 · 1038 阅读 · 0 评论 -
深度学习中的前向传播和反向传播
具体地说,首先将损失函数对输出结果的梯度计算出来,然后向后逐层计算每个操作和参数的梯度,最终得到每个参数的梯度。通过将输入数据输入网络并计算输出,然后将输出与期望输出进行比较,可以计算出损失函数的值,并使用反向传播算法来更新网络的权重和偏差,以最小化损失函数。在前向计算过程中,每个神经元的权重和偏置都是固定不变的,因此前向计算可以高效地进行。在深度学习中,前向传播(forward propagation)是神经网络中的重要步骤,它用于将输入数据在网络中进行处理和转换,最终得到输出结果。原创 2023-04-09 16:48:04 · 3912 阅读 · 0 评论 -
图片亮度变化后,canny检测的结果也产生变化
当图片的亮度发生变化后, 其canny检测的结果也会发生变化。原创 2023-03-23 23:06:21 · 126 阅读 · 0 评论 -
00- 深度学习之TensorFlow (综述2)
机器学习需要进行特征提取,深度学习不需要人工提取特征, 适合难提取特征的图像, 语音等.深度学习算法试图从数据中学习高级功能,这是深度学习的一个非常独特的部分。因此,减少了为每个问题开发新特征提取器的任务。适合用在难提取特征的图像、语音、自然语言领域(NLP)。深度学习应用场景:图像识别(计算机视觉),自然语言处理技术, 语音技术经典的神经网络结构:MLP由三层组成——输入层、隐藏层和输出层。RNN出现的目的是来处理序列数据的, RNN在隐藏状态上有一个循环连接。原创 2023-03-10 03:57:16 · 564 阅读 · 0 评论 -
00- 深度学习之机器视觉 (综述1)
Keras是一个高层次的深度神经网络框架接口,由Python 编写而成并基于TensorFlow、Theano及CNTK后端,相当于TensorFlow、Theano、CNTK的上层接口,具有操作简单、上手容易、文档资料丰富、环境配置容易等优点,但因其过度封装导致缺乏灵活性、使用受限。自然语言处理(NLP): 是计算机科学,人工智能,语言学关注计算机和人类自然语言之间的相互作用的领域。1. np.squeeze(): 图片形状从(1, 28, 28) 变为(28, 28).深度学习主要分为计算机视觉,原创 2023-01-29 16:18:11 · 402 阅读 · 0 评论 -
35- tensorboard的使用 (PyTorch系列) (深度学习)
定义模型return x# 定义损失和优化器。原创 2023-03-08 10:05:12 · 404 阅读 · 0 评论 -
34- PyTorch数据增强和迁移学习 (PyTorch系列) (深度学习)
数据四分类:# 继续训练# 定义训练过程total = 0# 测试过程指定训练# 指定训练次数model.parameters # 查看模型结构。原创 2023-03-07 15:06:01 · 944 阅读 · 0 评论 -
33- PyTorch实现分类和线性回归 (PyTorch系列) (深度学习)
线性回归预测的是一个连续值, 逻辑回归给出的”是”和“否”的回答, 逻辑回归通过sigmoid函数把线性回归的结果规范到0到1之间.sigmoid函数是一个概率分布函数, 给定某个输入,它将输出为一个概率值.# 回归和分类之间, 区别不大, 回归后面加上一层sigmoid, 就变成分类了.(pytorch 最常见的创建模型的方式, 子类)# pytorch 最常见的创建模型的方式, 子类# 需要自定义类# 先调用父类的方法# 定义网络中会用到的东西.原创 2023-03-06 19:21:22 · 2337 阅读 · 3 评论 -
32- PyTorch基础 (PyTorch系列) (深度学习)
Torch是什么?一个火炬!其实跟Tensorflow中Tensor是一个意思,可以当做是能在GPU中计算的矩阵.,也可以当做是ndarray的GPU版!PyTorch可以说是现阶段主流的深度学习框架了,武林盟主之争大概是这个历史。15年底之前Caffe是老大哥,随着Tensorflow的诞生,霸占江湖数载,19年起无论从学术界还是工程界PyTorch已经霸占了半壁江山!原创 2023-03-05 21:41:11 · 682 阅读 · 0 评论 -
31- 常用于移动设备的 MobileNet (TensorFlow系列) (深度学习)
传统卷积神经网络,内存需求大运算量大导致无法在移动设备以及嵌入式设备上运行.MobileNet网络是由google团队在2017年提出的,专注于移动端或者嵌入式设备中的轻量级CNN网络。相比传统卷积神经网络,在准确率小幅降低的前提下大大减少模型参数与运算量。相比VGG16准确率减少了0.9%, 但模型参数只有VGG的1/32人员名单:MobileNet 网络中的亮点(大大减少运算量和参数数量)增加超参数α、β网络中的亮点更新Block(bneck)原创 2023-03-05 19:37:00 · 957 阅读 · 0 评论 -
30- padding 研究 (TensorFlow系列) (深度学习)
valid和same。, 图片大小的变化.卷积图片尺寸的变换.原创 2023-03-05 15:45:50 · 125 阅读 · 0 评论 -
29- 迁移学习 (TensorFlow系列) (深度学习)
使用迁移学习的优势:能够快速的训练出一个理想的结果当数据集较小时也能训练出理想的效果注意:使用别人预训练模型参数时,要注意别人的预处理方式。原创 2023-03-05 00:24:29 · 852 阅读 · 1 评论 -
28- ResNet模型 (TensorFlow系列) (深度学习)
ResNet在2015年由微软实验室提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。原创 2023-03-04 16:42:06 · 1898 阅读 · 0 评论 -
27- GoogleNet模型 (TensorFlow系列) (深度学习)
GoogLeNet在2014年由Google团队提出。GoogLeNet模型参数只有VGG的 1/20 。GoogLeNet在2014年由Google团队提出,斩获当年ImageNet竞赛中 Classification Task (分类任务) 第一名。网络中的亮点:图片尺寸变换:Inception结构 注意:每个分支所得的特征矩阵高和宽必须相同1.2 定义模型1.4 模型训练原创 2023-03-04 15:56:14 · 288 阅读 · 0 评论 -
26- AlexNet和VGG模型分析 (TensorFlow系列) (深度学习)
VGG在2014年由牛津大学著名研究组VGGGroup提出,斩获该年ImageNet竞 中LocalizationTask定位 任务第一名和ClassificationTask分类任务第二名。网络中的亮点通过堆叠多个3x3的卷积核来替代大尺度卷积核(减少所需参数)论文中提到,可以通过堆叠两个3x3的卷积核替代5x5的卷积核堆叠三个3x3的卷积核替代7x7的卷积核。原创 2023-03-03 19:43:46 · 832 阅读 · 0 评论 -
25- 卷积神经网络(CNN)原理 (TensorFlow系列) (深度学习)
卷积神经网络由一个或多个卷积层、池化层以及全连接层等组成。与其他深度学习结构相比,卷积神经网络在图像等方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他浅层或深度神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。我们来看一下卷积网络的整体结构什么样子。其中包含了几个主要结构卷积层(Convolutions)池化层(Subsampling)全连接层(Full connection)激活函数。原创 2023-03-03 04:26:44 · 2775 阅读 · 0 评论 -
24- 深度学习的模型保存和加载 (TensorFlow系列) (深度学习)
Fashion-MNIST总共有十个类别的图像。每一个类别由训练数据集6000张图像和测试数据集1000张图像。所以训练集和测试集分别包含60000张和10000张。测试训练集用于评估模型的性能。,分别是t-shirt,trouser,pillover,dress,coat,sandal,shirt,sneaker,bag,ankle boot。每一个输入图像的高度和宽度均为28像素。数据集由灰度图像组成。keras 保存成hdf5文件, 1.保存模型和参数, 2.只保存参数。创建interpreter。原创 2023-03-02 22:00:46 · 1713 阅读 · 2 评论 -
23- GPU设置和多分布自定义模型 (TensorFlow系列) (深度学习)
为什么需要分布式?数据量太大, 模型太复杂同步式分布式训练适用于一机多卡每个GPU都有网络结构的所有参数, 这些参数会被同步加速方法: 数据并行Batch数据切为N份分给各个GPU梯度聚合然后更新给各个GPU上的参数MirroredStrategy的变种参数不是在每个GPU上, 而是存储在一个设备上CPU或者唯一的GPU上计算是在所有GPU上并行的除了更新参数的计算类似MirroredStrategy适用于多级多卡情况与MirroredStrategy类似。原创 2023-03-02 20:00:08 · 1281 阅读 · 0 评论 -
22- estimater使用 (TensorFlow系列) (深度学习)
横向柱状图: train_df.sex.value_counts()提取不同特征的统计: train_df.embark_town。dataset批次设置: dataset = dataset。提取特征: vocab = train_df。柱状图显示:train_df.age。提取目标特征:y_train =读取数据:train_df =显示数据分布:train_df。# 根据幸存率查看各类型的均值。# one_hot 编码。原创 2023-03-01 13:54:34 · 599 阅读 · 0 评论 -
21- 神经网络模型_超参数搜索 (TensorFlow系列) (深度学习)
from tensorflow.keras.wrappers.scikit_learn import KerasRegressor # 回归神经网络# 搜索最佳学习率。超参数搜索的方式: 网格搜索 定义n维方格 每个方格对应一组超参数 一组一组参数尝试 随机搜索 遗传算法搜索 对自然界的模拟 A: 初始化候选参数集合 --> 训练---> 得到模型指标作为生存概率 B:原创 2023-02-28 18:51:23 · 2232 阅读 · 12 评论 -
20- wide&deep及函数式构建模型 (TensorFlow系列) (深度学习)
回调函数中添加保存最佳参数的模型定义提前停止的条件# 连续多少次变化幅度小于某值时停止训练if not os.path.exists(log_dir): # 如果没有直接创建# 模型文件保存格式, 一般为h5, 会保存层级# epochs 迭代次数。原创 2023-02-28 16:31:59 · 545 阅读 · 0 评论 -
19- 手动实现TensorFlow模型 (TensorFlow系列) (深度学习)
两种方式进行比较:方式一: 用自定义的函数实现数据转换为tensor, 耗时: 12s%%time方式二: 用tensorlow转换为tensor, 耗时: 10s# 效率还是高一些%%timeAutoGraph:将 Python 控制流转换为 TensorFlow 计算图@tf.function 使用名为 AutoGraph 的机制将函数中的 Python 控制流语句转换成 TensorFlow。原创 2023-02-28 02:41:04 · 835 阅读 · 0 评论 -
18- TensorFlow模型中Keras进阶 (TensorFlow系列) (深度学习)
AphaDropout的输出保持输入的均值和标准差不变。二分类是sigmoid, 多分类的话是softmax。BN层可以在激活函数之前, 也可以在激活函数之后。AlphaDropout和SELU激活函数一起使用。# 通常为先激活, 再进行BN。原创 2023-02-27 20:27:09 · 1304 阅读 · 0 评论 -
17- TensorFlow中使用Keras创建模型 (TensorFlow系列) (深度学习)
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow , CNTK 或者 Theano 作为后端运行。在Keras的官方github上写着"Deep Learning for humans", 主要是因为它能简单快速的创建神经网络,而不需要像Tensorflow一样考虑很多中间过程.原创 2023-02-27 14:19:54 · 3812 阅读 · 2 评论 -
16- TensorFlow实现线性回归和逻辑回归 (TensorFlow系列) (深度学习)
定义线性模型# 定义损失函数# 定义优化器# 定义优化过程# 把需要求导的计算过程放入gradient pape中执行,会自动实现求导# 计算梯度# 更新w, b# 定义预测变量# 定义损失# y_pred 是概率,存在可能性是0, 需要进行截断# 定义优化器# 计算预测值pred = sigmoid(x) # 结果为概率#计算梯度# 更新W, B# 计算准确率# 需要把概率转换为类别# 概率大于0.5 可以判断为正例。原创 2023-02-26 20:11:38 · 1929 阅读 · 3 评论 -
15- TensorFlow基础 (TensorFlow系列) (深度学习)
常量一旦定义值不能改变. 使用tf.constant定义常量.使用tf.constant定义常量# 常量一旦定义, 不能变, 不可更改# 可以像numpy的ndarray一样使用tensorprint(t[..., 1]) # 或t[:, 1] # tf.Tensor([2. 5.], shape=(2,), dtype=float32)常量的操作print(t+10) # 每个元素都加10print(tf.square(t)) # 每个元素都做平方。原创 2023-02-26 17:33:45 · 554 阅读 · 0 评论 -
14- 深度学习中的正则化 (基础知识) (深度学习)
加入了 dropout 后,输入的特征都存在被随机清除的可能,所以该神经元不会再特别依赖于任何一个输入特征,也就是不会给任何一个输入特征设置太大的权重。通过传播过程,dropout 将产生和 L2 正则化相同的收缩权重的效果。对于不同的层,设置的keep_prob大小也不一致,神经元较少的层,会设keep_prob为 1.0,而神经元多的层则会设置比较小的keep_prob通常被使用在计算机视觉领域,图像拥有更多的特征,场景容易过拟合,效果被实验人员证明是很不错的。原创 2023-01-14 23:26:34 · 1082 阅读 · 0 评论 -
13- 深度学习梯度下降算法优化 (基础知识) (深度学习)
掌握参数初始化策略的优点掌握Mini-batch的特点以及优势掌握梯度下降算法优化的目的以及效果掌握指数移动平均值的好处掌握动量梯度下降法的优点以及RMSProp、Adam的特点掌握学习率衰减方式掌握标准化输入带来的网络学习速度的提升。原创 2023-01-14 19:42:16 · 671 阅读 · 0 评论 -
12- 深度学习神经网络详解 (基础知识) (深度学习)
机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识。深度学习通常由多个层组成,它们通常将更简单的模型组合在一起,通过将数据从一层传递到另一层来构建更复杂的模型。通过大量数据的训练自动得到模型,不需要人工设计特征提取环节。深度学习算法试图从数据中学习高级功能,这是深度学习的一个非常独特的部分。因此,减少了为每个问题开发新特征提取器的任务。适合用在难提取特征的图像、语音、自然语言领域(NLP)。原创 2023-01-14 17:57:41 · 1243 阅读 · 2 评论 -
11- OpenCV进行目标追踪 (OpenCV系列) (机器视觉)
OpenCV上有八种不同的目标追踪算法::和Haar cascades(AdaBoost)背后所用的机器学习算法相同,但是距其诞生已有十多年了。这一追踪器速度较慢,并且表现不好。(最低支持OpenCV 3.0.0):比上一个追踪器更精确,但是失败率比较高。(最低支持OpenCV 3.0.0):比BOOSTING和MIL都快,但是在有遮挡的情况下表现不佳。(最低支持OpenCV 3.1.0)比KCF稍精确,但速度不如后者。(最低支持OpenCV 3.4.2):出色的跟踪故障报告。原创 2023-01-09 00:01:37 · 5217 阅读 · 0 评论 -
10- OpenCV进行的图像的分割与修复 (OpenCV系列) (机器视觉)
图像分割: 将前景物体从背景中分离出来.图像分割分为传统图像分割和基于深度学习的图像分割方法.传统图像分割就是使用OpenCV进行的图像分割.传统图像分割方法有: 分水岭法 GrabCut法 MeanShift法 背景扣除原创 2023-01-08 19:31:40 · 1688 阅读 · 4 评论 -
09- OpenCV模板匹配 (OpenCV系列) (机器视觉)
的假设是存在阈值 TH 将图像所有像素分为两类 C1 ( 小于TH )和 C2 ( 大于TH ), 存在阈值。cv2.matchTemplate(), 局部图片通过cv2.matchTemplate找出在原图片的位置。通过设定阈值进行控制, 相关性大于0.8, 匹配上(matchTemplate)),则这两类像素各自的均值就为m1、m2,图像全局均值为mG。otsu算法(大津算法)原创 2023-01-08 19:13:22 · 898 阅读 · 0 评论 -
08- OpenCV进行图像的特征检测 (OpenCV系列) (机器视觉)
推荐Shi-Tomasi角点检测Harris角点检测计算的稳定性和K有关, 不稳定, shi-tomasi是优化版)。三种特征检测算法对比:SIFT 最慢, 准确率最高SURF 速度比SIFT快些, 准确率差些ORB速度最快, 可以实时检测, 准确率最差.两种特征匹配方式:BFMatcherFLANN(处理大数据集时效果较好)暴力特征匹配单应性矩阵的应用, 查找对应图形:(图像查找)直接读取为灰度图Harris角点检测shi-tomasi角点检测坐标画点cv2.circle。原创 2023-01-08 17:46:24 · 1875 阅读 · 0 评论 -
07- 图像上下采样及图像直方图显示 (OpenCV系列) (机器视觉)
图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说, 图像金字塔是同一图像不同分辨率的子图集合.图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。常见两类图像金字塔高斯金字塔。原创 2023-02-21 17:52:15 · 852 阅读 · 0 评论 -
06- OpenCV查找图像轮廓 (OpenCV系列) (机器视觉)
图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用。轮廓的作用:用于图形分析物体的识别和检测注意点:为了检测的准确性,需要先对图像进行二值化或Canny操作。画轮廓时会修改输入的图像, 如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。原创 2023-02-21 15:22:09 · 2471 阅读 · 0 评论