计算机视觉
文章平均质量分 84
以实战经验为主,我将全方位介绍图像分类、目标识别检测、OCR等相关知识,并结合不同任务需求进行实战,和大家一同走近这看似简单却包罗万象的基础性技术,同时指导计算机视觉、深度学习领域的初学者快速、准确、全面地掌握图像分类、目标检测跟踪、人脸识别等图像方面深度学习、图像处理、机器学习的相关知识。
z同学的编程之路
热爱编程、热爱生活!各种DIY设计,有想法,有行动!感谢大家关注收藏,不定期分享好项目源码及教程。
下载后,有问题请及时私信沟通,欢迎提问,欢迎来撩!
展开
-
Python学习笔记--Python关键字yield
原文:http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained注:这是一篇 stackoverflow 上一个火爆帖子的译文。原创 2023-11-17 10:06:59 · 314 阅读 · 0 评论 -
Python学习笔记--字符集
在例子中,使用了取反字符集,也就是在左方括号 “[” 后面紧跟一个尖括号 “^”,就会对字符集取反。,就是所有小写字母中的其中一个,这里使用了连字符 “-” 定义一个连续字符的字符范围。好了,通过上面的几个实例我们初步认识了 Python 的正则表达式,可能你就会问,正则表达式还有什么规则,什么字母代表什么意思呢?注意了,字符和范围定义的先后顺序对匹配的结果是没有任何影响的。,匹配所有数字字符,其实它是等价于 [0-9],下面也写了个例子,通过字符集的形式解释了这些特殊字符。举个例子,比如你使用。原创 2023-11-19 12:30:00 · 84 阅读 · 0 评论 -
基于机器视觉的旋转编码器缺陷检测
基于机器视觉的旋转编码器缺陷检测。原创 2023-08-25 16:45:00 · 194 阅读 · 0 评论 -
基于Matlab图像识别技术的隐形眼镜镜片边缘缺陷检测
根据实验结果可知,对于隐形眼镜镜片的边缘缺陷检测这一问题,本文使用的程序能在一定情况下做到精准的识别以及对缺陷的标识,但在部分情况下无法正确识别,不能完全应对所有可能的情况,具有一定的改进提升空间。与此同时,本文也针对程序无法完成识别检测的情况提出了对应的优化改进策略,并且在后续的研究中进行实践,进一步提升该程序在镜片边缘检测上的准确性以及鲁棒性。原创 2023-08-25 16:00:00 · 264 阅读 · 0 评论 -
机器学习课设-基于SVM和DenseNet实现光伏电池片图像缺陷检测
如果您已经手动将校正分割后的图片分配到perfect和damaged,可以运行将您的分配结果编写为Excel表格生成的自定义标签表在。原创 2023-08-25 10:15:00 · 144 阅读 · 0 评论 -
基于人工智能的中医图像分类系统设计与实现
本存储库包含一个针对中药的人工智能图像分类系统。该项目的目标是通过输入图像准确识别和分类各种中草药和成分。原创 2023-08-06 10:06:30 · 213 阅读 · 0 评论 -
【CV算法岗知识点之机器学习】LR和SVM的比较
而LR则考虑了全部的点(即依赖于数据分布),通过非线性映射,减少远离分类平面的点的权重,即对不平衡的数据要先做balance。LR和SVM的概念大家都有了解甚至很熟悉了,不过在面试中可能不止是简单地单独考察你对LR或SVM的理解,可能会让你对这两个算法进行比较分析,因此就有必要将两者放在一起比较一下。注:OvO和OvR先训练出多个二分类器,在测试时,新样本将同时提交给所有的分类器进行预测,投票产生 最终结果,将被预测的最多的类别作为最终的分类结果。原创 2023-06-15 18:34:23 · 1063 阅读 · 0 评论 -
【深度学习知识点】常见目标跟踪算法及实现代码
在detect函数中,我们使用输入图像中的初始边界框来选择感兴趣区域(ROI),然后提取特征z,并通过DFT将其转换为频域。然后,我们使用KCF算法初始化,然后按顺序读取视频的每一帧并在其上方框出我们正在跟踪的物体。总的来说,KCF算法是一种高效、准确的目标跟踪算法,跟踪结果精度高,速度快,适用于许多领域的应用。在KCF类的初始化函数中,我们将图像和我们要跟踪的物体的初始边界框作为输入参数传递。接下来,我们将使用Python语言实现KCF算法,并通过图像跟踪的实例来演示它的使用。原创 2023-03-30 15:42:26 · 623 阅读 · 0 评论 -
广度和深度优先搜索解析与示例代码
算法是基于特定数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的。树是图的一种特例(连通无环的图就是树)。图上的搜索算法,最直接的理解就是,在图中找出从一个顶点出发,到另一个顶点的路径。具体方法有很多,两种最简单、最“暴力”的深度优先、广度优先搜索,还有A*IDA*等启发式搜索算法。深度优先搜索算法和广度优先搜索算法,既可以用在无向图,也可以用在有向图上。图(采用邻接表存储)的C++# include // 无向图结构的定义 class Graph {原创 2023-03-04 21:49:56 · 318 阅读 · 0 评论 -
信息隐藏技术--图像置乱
图像置乱是信息隐藏技术的一种,图像置乱后图像无法辨认,可以达到对图像信息的隐藏和保护作用。分类:空域置乱、频域置乱、空频域混合置乱图像置乱对信息起到了隐藏和保护的作用,既可以对信息进行加密传送,也可以作为图像处理的预处理。图像置乱变换是一种,与不知道密钥对已加密信息进行解密一样,倘若不知道图像置乱所采用的算法,同样难以恢复原始图像的信息。原创 2023-02-27 23:56:30 · 413 阅读 · 0 评论 -
版权保护 MATLAB实现
bitset。原创 2023-02-26 21:33:04 · 227 阅读 · 1 评论 -
Matlab图像处理学习笔记
生成方式1:x = [值]生成方式2:x = 初识值 : [步长] : 终值x = 初识值 : 终值 (默认步长是1)生成方式3:x = linspace(初值,终值,个数n)x = linspace(初值,终值)生成方式4:x = logspace(初值,终值,个数)生成[10^初值10^终值]之间的数,个数省略时,默认50个。原创 2023-02-26 21:32:29 · 279 阅读 · 0 评论 -
LeetCode热题100
精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。原创 2023-02-24 22:07:20 · 616 阅读 · 0 评论 -
基于骨骼点的花样滑冰动作识别附源码
花样滑冰动作包括3个大类,分别为跳跃、旋转和步法,每个大类又包含很多小类。例如,跳跃大类包含:飞利浦三周跳(3Filp)和勾手三周跳(3Lutz)2个小类。然而,这2类跳跃的判别性仅在于一些个别帧的差异。此外,如果想就跳跃小类(3Filp或3Lutz)与旋转小类进行区别,对大部分帧的特征加以使用才能产生较好的判别性。本次比赛数据集旨在借助花样滑冰选手的视频图像研究人体运动。由于花样滑冰选手动作切换速度十分迅速,如希望准确判断一个动作的类别,只靠随机抽取的几帧很难出色地完成任务。原创 2023-02-16 14:16:17 · 374 阅读 · 0 评论 -
双目测距------双目相机V1.0,将双目相机采集到任意一点的深度数据进行串口传输(带源码)
所实现的功能:基于Intel Realsense官方提供的SDK,双目深度相机能获取到相机任何一个像素点距离前方障碍物的距离(即深度信息),并将深度信息串口数据发送至其它设备。这个版本都是基于物理层上功能的实现,双目相机在这个工程当中只是作为了一个传感器使用,而Linux设备端也只做了双目相机的载体以及对双目采集到的深度信息进行串口传输,没有使用任何基于视觉相关的算法。所以,这个版本肯定不是我们用上嵌入式设备的最终代码,大家可以把这个当作双目相机的一个入门工程来学习。原创 2023-02-12 18:17:28 · 2401 阅读 · 0 评论 -
【深度学习】网络参数初始化方法
本文的思想在考虑线性激活函数的情况下, 在初始化的时候使各层神经元的方差保持不变, 即使各层有着相同的分布. 如果每层都用N(0, 0.01)随机初始化的话, 各层的数据分布不一致, 随着层度的增加, 神经元将集中在很大的值或很小的值, 不利于传递信息. 很多初始化策略都是为了保持每层的分布不变, 而BN是通过增加归一化层使得每层数据分布保持在N(0, 1)。xavier的初始化方式和BN一样,为了保证数据的分布(均值方差一致)是一样的,加快收敛,就这么简单吧。原创 2023-02-05 20:29:52 · 484 阅读 · 0 评论 -
【深度学习】实例分割网络
这里输入为H×W×E的特征F,其中E是输入特征的通道数;输出为卷积核S×S×D,其中S是划分的网格数目,D是卷积核的通道数。对应关系如下:1×1×E的卷积核,则D=E,3×3×E的卷积核,则D=9E,以此类推。SOLO v2中的mask branch 被分解为mask kernel branch和mask feature branch,分别对应卷积核的学习和特征的学习。从而由分类分支确定那个实例是有物体的,从而从掩膜分支找出对应的掩膜图。分类分支:S×S×C。掩膜分支:H×W×S×S。即每个实例的掩膜图。原创 2023-02-04 22:55:08 · 595 阅读 · 0 评论 -
【深度学习】CascadeRCNN本质解决了什么问题
在 Faster RCNN 中,训练阶段,经过 RPN 之后,会提出 2000 左右个 proposals ,这些 proposals 会被送入到 Fast R-CNN 结构中,在 Fast R-CNN 的结构中,首先会计算每个 proposals 和 gt 之间的 IOU ,然后通过人为设定的 IOU 阈值(通常为 0.5),把这些 proposals 分成正样本和负样本(之后正样本才会参与到后面的 bbox 回归学习,从损失函数的表达中也可以看出来,只有正样本才被算入损失函数中。原创 2023-02-04 22:52:19 · 424 阅读 · 0 评论 -
【深度学习】对SSD与Retina的理解
因为conv4比较靠前,数据通道间的特征分布和后续的几层相差较大,所以通过在通道维度进行L2归一化。归一化后一般设置一个可训练的放缩变量gamma。网络通过自下而上、自上而下的特征提取网络,并通过无代价的横向连接构建增强特征提取网络,利用不同尺度的特征图检测不同大小的目标,1、实时性:网络使用ResNet-101作为主干特征提取网络,检测效率略微不足。置信度误差(类别+背景一体):softmax loss而不是BCE。位置损失:smoothL1。同faster RCNN。用于候选框的【类别预测】,原创 2023-02-03 21:43:25 · 273 阅读 · 0 评论 -
【深度学习】YOLO系列(v1-v3+tinyv3)解析
yolov3是在训练的数据集上聚类产生prior boxes的一系列宽高(是在图像416x416的坐标系里),默认9种。YOLOV3思想理论是将输入图像分成SxS个格子(有三处进行检测,分别是在52x52, 26x26, 13x13的feature map上,即S会分别为52,26,13),若某个物体Ground truth的中心位置的坐标落入到某个格子,那么这个格子就负责检测中心落在该栅格中的物体。三次检测,每次对应的感受野不同,32倍降采样的感受野最大(13x13),适合检测大的目标。原创 2023-02-03 21:41:29 · 252 阅读 · 0 评论 -
【深度学习】ReID相关知识点解析(PCB、BoT、MGN)
然后与各自的f相乘,最终得到一个与T相同大小的特征图P_i(24,8,c),即上图中的refined parts,计算过程如下式,×指逐像素相乘。,很有可能P_i的部分f不属于P_i,和P的其他部分更相似,如果将其纳入P_i进行平均池化,显然会对预测结构有影响,因此通过RPP进行。根据原图利用余弦距离找出距离其最近的20个图,再找出这20个图最近的6个图,判断这6个图中原图所在的位置,共同得到该图的索引模型。如:输入(384,128,3)经过backbone降采样16倍后得到特征图T(24,8,c)。原创 2023-02-02 21:46:42 · 481 阅读 · 0 评论 -
【深度学习】IOU的各种变形讲解
IoU就是我们所说的交并比,是目标检测中最常用的指标,在anchor-based的方法中,他的作用不仅用来确定正样本和负样本,还可以用来评价输出框(predict box)和ground-truth的距离。原创 2023-02-02 21:43:23 · 379 阅读 · 0 评论 -
【深度学习】U-Net和FCN具体分析
CNN图像语义分割也就基本上是这个套路:下采样+上采样:Convlution + Deconvlution/Resize多尺度特征融合:特征逐点相加/特征channel维度拼接获得像素级别的segement map:对每一个像素点进行判断类别。原创 2023-02-01 21:56:12 · 619 阅读 · 0 评论 -
【深度学习笔记】Faster_R_CNN和Mask_R_CNN的损失函数详解
目标检测的框架中包含4个关键模块,包括region proposal(生成ROI)、feature extraction(特征提取网络)、classification(ROI分类)、regression(ROI回归)。而faster-rcnn利用一个神经网络将这4个模块结合起来,训练了一个端到端的网络。特征提取网络:它用来从大量的图片中提取出一些不同目标的重要特征,通常由conv+relu+pool层构成,常用一些预训练好的网络(VGG、Inception、Resnet等),获得的结果叫做特征图;原创 2023-02-01 07:26:56 · 596 阅读 · 0 评论 -
【深度学习笔记】各种卷积方式串讲
CNN 从 2012 年的 AlexNet 发展至今,各种网络结构层出不穷,尝试了几乎所有可能性的结构搭配以试图找到效果更好的那种,再通过结果去解释过程,这大概就是做深度学习的人的无奈之处吧,每天都有新论文发出,每天都会有新的网络结果,每个都比之前的提升一丢丢,琳琅满目,令人眼花缭乱,像我这样的便迷失其中,找不到一个确定的方向去研究,终究普普通通,无所建树。原创 2023-02-01 07:26:08 · 223 阅读 · 0 评论 -
【深度学习笔记】LSTM的介绍及理解
LSTM (Long short-term memory,长短期记忆) 是一种特殊的RNN,主要是为了解决长序列训练过程中梯度消失与梯度爆炸的问题,因此要学习LSTM,必须先了解RNN是一个什么东东。原创 2023-01-31 22:38:24 · 628 阅读 · 0 评论 -
【深度学习笔记】CascadeRCNN本质解决了什么问题
在 Faster RCNN 中,训练阶段,经过 RPN 之后,会提出 2000 左右个 proposals ,这些 proposals 会被送入到 Fast R-CNN 结构中,在 Fast R-CNN 的结构中,首先会计算每个 proposals 和 gt 之间的 IOU ,然后通过人为设定的 IOU 阈值(通常为 0.5),把这些 proposals 分成正样本和负样本(之后正样本才会参与到后面的 bbox 回归学习,从损失函数的表达中也可以看出来,只有正样本才被算入损失函数中。原创 2023-01-30 21:18:49 · 406 阅读 · 0 评论 -
【深度学习笔记】全卷积网络FCN及 ROI Pooling 和 ROI Align 的区别
ROI Pooling:将RPN的浮点Bbox输出量化成整形;然后从feature map中裁剪出对应的ROI,并池化到指定大小ROI Align:直接使用RPN的浮点Bbox;将ROI等比例划分成多个cell,且cell的数目与最终要求的池化输出大小一致;从cell中随机采样一点数目的点(使用双线性差值计算浮点位置的特征),并进行池化得到该cell的输出。原创 2023-01-30 21:17:40 · 522 阅读 · 0 评论 -
【深度学习】简述CNN分类网络的演变脉络及各自的贡献与特点
主要用于手写数字识别10分类问题,被广泛应用在金融领域。原创 2023-01-29 22:28:37 · 492 阅读 · 2 评论 -
【深度学习笔记】为什么用F1-score
F1 score 综合考虑了精确率和召回率,其结果更偏向于 Precision 和 Recall 中较小的那个,即 Precision 和 Recall 中较小的那个对 F1 score 的结果取决定性作用。F1 score是分类问题中常用的评价指标,定义为精确率(Precision)和召回率(Recall)的调和平均数。,由F1 score的计算公式可以看出,此时其结果主要受 Recall 影响。,其结果约为 0.5,而 F1 score 调和平均的结果约为 0。召回率,也称为查全率,衡量的是。原创 2023-01-29 22:27:28 · 1454 阅读 · 0 评论 -
【深度学习笔记】卷积网络中的卷积与互相关的那点事
而在视觉识别中,关键性的图像特征、边缘、角点等只占据了整张图像的一小部分,图像中相距很远的两个像素之间有相互影响的可能性很小。深度学习的计算机视觉是基于卷积神经网络实现的,卷积神经网络与传统的神经网络(可以理解为多层感知机)的主要区别是卷积神经网络中除了全连接层外还有卷积层和pooling层等。传统优化矩阵乘的思想有基于算法分析的,也有基于软件优化的方法如改进访存局部性、利用向量指令等,这两个方法都是基于对计算机运行特性进行的改进。里面的矩阵乘法实现。卷积层的API对卷积运算的实现其实使用的是。原创 2023-01-29 22:26:39 · 206 阅读 · 0 评论 -
【深度学习笔记】弄明白感受野大小的计算问题
唯一的区别是不需要管padding,这也说明了感受野其实是包括padding在内的,所以你会发现算出来的感受野大小可能会比原始图像的大小还要大。根据感受野的概念,大家可以体会到感受野的计算应该与卷积的计算是相反的过程,所以先回顾下卷积输入输出的大小关系公式:(以高度为例)不需要计算padding,只需要记住他的输出特征图大小的计算方法(其实就是padding=0时的公式1),若是研究过程中要计算非常准确的感受野大小的话,还是得再深入研究下,大家可以看看下面的两个参考资料。,所以感受野的计算采用的是。原创 2023-01-28 22:12:42 · 199 阅读 · 0 评论 -
【深度学习笔记】CNN网络各种层的FLOPs和参数量paras计算
怎么理解上面的公式呢?分析同理,括号内是一个输出神经元的计算量,拓展到O个输出神经元。(如果该全连接层的输入是卷积层的输出,需要先将输出展开成一列向量):,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量,可以用来。其实卷积层在实现的时候可以选择加bias或者不加,在很多的框架当中是一个可以选择的参数,为了严谨,这里特地提一下。深度可分离卷积分成两部分,一部分是分通道卷积,另一部分是1*1卷积。ReLU一般都是跟在卷积层的后面,这里假设卷积层的输出为。原创 2023-01-28 22:11:34 · 453 阅读 · 0 评论 -
【深度学习笔记】手动推导反向传播公式BP
现在才意识到,卷积神经网络在不同的层上的反向传播的计算公式不一样,之前一直按照全连接层的那种简单反向传播去理解了。原创 2023-01-18 21:49:49 · 444 阅读 · 0 评论 -
【深度学习笔记】CNN在图像上表现好的原因
为什么这么说,因为在卷积神经网络之前,一般的网络都采用的是全连接的方式,前一层的每一个单元都对下一层的每一个单元有影响,而 CNN 中虽然存在全连接层,但是更核心的是前面用于提取特征的卷积层,一提到计算机视觉,第一反应就是 CNN ,但是大家有没有想过,为什么图像识别领域的网络结构都是使用的 CNN 呢,或者说 CNN 网络有哪些特点可以使其在图像识别领域表现良好?所以 CNN 应用的条件一般是要求卷积对象有局部相关性,这正是图像所具备的,因此图像领域都是使用 CNN 就解释地通了。原创 2023-01-18 21:47:05 · 1168 阅读 · 0 评论 -
【深度学习笔记】样本不平衡处理方法
梯度模长g为g越大,说明越难分类,g越小说明越容易分类,和focal loss中的。原创 2023-01-17 22:26:19 · 457 阅读 · 0 评论 -
【计算机视觉】梯度消失和爆炸以及解决方法
*梯度消失发生时的表现是:**靠近输出层的 hidden layer 3 的权值更新正常,但是靠近输入层的 hidden layer 1 的权值更新非常慢,导致其权值几乎不变,仍接近于初始化的权值。**梯度爆炸发生时的表现是:**当初始的权值太大,靠近输入层的 hidden layer 1 的权值变化比靠近输出层的 hidden layer 3 的权值变化更快。根据公式(2)的计算规律,层数越多,越是前面的层的参数的求导结果越小,于是便导致了梯度消失情况的出现。而这个反向传播的过程使用的是。原创 2023-01-17 22:23:49 · 294 阅读 · 0 评论 -
【计算机视觉】理清深度学习优化函数发展脉络
深度学习中有很多优化函数,常见的那些你还记得它的定义以及优缺点吗?深度学习网络训练中,有很多可供选择的优化函数如SGD、Adam等等,到底用哪个好呢?其实这个问题没有确切的答案,优化函数是需要配合损失函数使用的,说白了,优化函数也是一种超参数,是需要尝试的,哪个效果好就用哪个……这些优化函数其实差别不大,都是基于一个基本框架来演进的,所以下面先介绍下优化算法的基本框架:(记住这个框架!!!)假设当前时刻待优化的参数为 θt\theta_tθt ,损失函数为 J(θ)J(\theta)J(θ) ,学习率为原创 2023-01-14 21:02:11 · 201 阅读 · 0 评论 -
基于matlab开发的车牌检测与字符分割项目附源码
车牌定位:输入车辆图片后,输出mask图以及定位到的车牌图片;字符分割:根据获得的车牌图片进行字符分割,输出分割后单个字符;字符识别:在给定模板下对分割出的字符进行识别。车牌定位和字符分割基本任务的结果较好,在输入中加入了车牌底色的先验知识,提高了定位和分割的准确性;算法使用同一套参数基本可以完成车牌定位和分割,算法的一致性较好;但是由于对分割出的字符进行细化处理,因此字符识别效果较差,下一步将从此方向出发进行优化。原创 2023-01-14 17:41:43 · 284 阅读 · 0 评论 -
【计算机视觉】为什么输入网络前要对图像做归一化
对 w1 适合的学习率,可能相对于 w2 来说会太小,如果仍使用适合 w1 的学习率,会导致在 w2 方向上走的非常慢,会消耗非常多的时间,而使用适合 w2 的学习率,对 w1 来说又太大,搜索不到适合 w1 的解。”,我的回答是**“特征归一化可以消除特征之间量纲不同的影响,不然分析出来的结果显然会倾向于数值差别比较大的特征,另外从梯度下降的角度理解,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解**”。:根据求导的链式法则,w的局部梯度是X,原创 2023-01-13 22:29:22 · 1155 阅读 · 0 评论