
图像处理
文章平均质量分 78
orangezs
这个作者很懒,什么都没留下…
展开
-
[图像处理]-Opencv中的medianBlur(中值滤波)、boxFilter(方框滤波)、GaussianBlur(高斯滤波)函数详解附C++版本代码
阅读指引1.medianBlur(中值滤波)2.boxFilter(方框滤波)3.GaussianBlur(高斯滤波)1.medianBlur(中值滤波)基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,主要是利用中值不受分布序列极大值和极小值影响的特点,让周围的像素值接近真实的值从而消除孤立的噪声点。中值(又称中位数)是指将统计总体当中的各个变量值按大小顺序排列起来,形成一个数列,处于变量数列中间位置的变量值就称为中位数。对于图像处理来说,非常适用去除于在不要求图像细节下的椒盐噪声以及脉原创 2021-06-24 14:29:01 · 6279 阅读 · 2 评论 -
[图像处理]-Opencv中数据类型CV_8U, CV_16U, CV_16S, CV_32F 以及 CV_64F是什么?
1.宏定义首先来说CV_8U, CV_16U, CV_16S, CV_32F 以及 CV_64F,都是opencv定义的数据类型。具体定义如下#define CV_8S 1#define CV_16U 2#define CV_16S 3#define CV_32S 4#define CV_32F 5#define CV_64F 6#define CV_16F 7#define CV_8UC1 CV_MAKETYPE(CV_8U,1)#define CV_8UC2 CV_原创 2021-06-24 12:08:35 · 46444 阅读 · 4 评论 -
[目标检测]-NMS系列-cvpr2019-Adaptive NMS 原理详解
1.资源Adaptive NMS: Refining Pedestrian Detection in a Crowd2.简介Adaptive NMS的研究者认为这在物体之间有严重遮挡时可能带来不好的结果。我们期望当物体分布稀疏时,NMS大可选用小阈值以剔除更多冗余框;而在物体分布密集时,NMS选用大阈值,以获得更高的召回。既然如此,该文提出了密度预测模块,来学习一个框的密度。就是想要去自适应的调整NMS时的阈值,使得待检测目标不密集时,用较小的NMS阈值杀掉其他的bbox,待检测目标密集呢(出原创 2021-05-31 19:59:54 · 3018 阅读 · 6 评论 -
[c++]-完全卸载tar包编译安装的c++版本opencv
简介近期更新,卸载的opencv版本为3.4.10,非无脑复制粘贴帖,方法未失效。注意我这个方法是卸载采用官网下载tar包,然后一步步编译的安装的这样的方式安装的opencv1.查看opencv版本pkg-config --modversion opencvoutput3.4.102.卸载找到当初安装opencv建立的build目录,进入目录执行卸载操作cd cd /home/cheng/somelib/opencv-3.4.10/build/sudo make uninstall原创 2021-05-25 19:57:33 · 1096 阅读 · 1 评论 -
[计算机视觉]-经典网络inception v1、v2、v3、v4核心工作详解及总结
资源inception v1Going deeper with convolutions:https://arxiv.org/abs/1409.4842BN算法Batch Normalization:https://arxiv.org/pdf/1502.03167.pdfinception v2/v3Rethinking the Inception Architecture for Computer Vision:https://arxiv.org/pdf/1512.00567.pdfince原创 2021-04-21 13:28:43 · 4811 阅读 · 0 评论 -
[工具]-python利用opencv将视频中多个感兴趣区域分别截取下来,实现一段视频中分别提取不同感兴趣ROI的子视频
简介算是之前一个版本的升级版本,具体原理参考https://blog.youkuaiyun.com/ai_faker/article/details/115495422?spm=1001.2014.3001.5501功能介绍输入:一段视频输出:该段视频中我们感兴趣的几个区域例子演示输出保存为使用说明代码运行后会弹出一个窗口界面,我们在这个窗口界面进行子视频输出区域选取1.点击屏幕,第一个点代表着想要输出子区域1的左上角,第二个点代表想要输出子区域1的右下角,两个点确定一个输出子区域2.原创 2021-04-10 15:58:11 · 1732 阅读 · 3 评论 -
[计算机视觉]-EfficientNet论文思路理解及核心工作分析
1.资源论文链接:https://arxiv.org/abs/1905.11946代码链接:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet第三方实现的PyTorch代码:https://github.com/lukemelas/EfficientNet-PyTorch最近V2也公布了,做完这一期做V22.简介卷积神经网络的性能公认会受到网络规模、输入图像分辨率的影响即,我们固定一个网络的基本原创 2021-04-08 20:03:29 · 432 阅读 · 0 评论 -
[小工具]-python利用opencv将视频中感兴趣的区域提取保存并完成提取区域内变化波动显示
简介通常我们得到了一段视频,可能只需要其中部分区域的内容,其他的可以认为是我们不关注的内容。比如我们做分类识别,需要某种样本,利用了摄像头进行拍摄,但是我们的需要的内容只在视频中的某个固定区域内出现了,我们只想要保存该部分区域内的视频,然后利用脚本完成按帧截取,从而完成数据集的收集。工具应用场景需求:需要的样本目标只会出现在一个固定的视野内。设置:手动指定原视频中我们感兴趣的区域输出:将原视频中我们指定的感兴趣区域截取下来存储为avi视频格式用途:后续可以配合对视频截取图像的脚本来完成样本原创 2021-04-08 10:32:42 · 2960 阅读 · 3 评论 -
[深度学习]-从零开始手把手教你利用pytorch训练VGG16网络实现自定义数据集上的图像分类(含代码及详细注释)
前言本文主要分为两部分:第一部分大致的介绍了VGG原理第二部分详细的介绍了如何用pytorch实现VGG模型训练自己的数据集实现图像分类想只看代码部分的同学,可以直接看第二部分内容一:VGG原理简介1.VGG主要工作2014年的论文,主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。VGG有两种结构,VGG16和VGG19,两者并没有本质上的区别,只是网络深度不一样。论文地址:VGG论文2.VGG主要改进前一代的经典网络为AlexNet,VGG相对于AlexNet最原创 2021-04-01 15:27:21 · 15880 阅读 · 21 评论 -
[图像处理]-使用python及PIL库对图像分类数据图片进行数据增强扩充
1.简介在一些时候,我们进行分类任务的时候,样本数据太少,这就需要我们对数据集进行数据增强来扩充数据集。常用的方法包含以下几种空间几何变换类翻转裁剪旋转缩放变形平移变换颜色变换类噪声变换类2.脚本以下包含一个python脚本,主要调用了PIL库,来完成对数据集的批量扩充。主要包含三个部分:函数def1-def8:分别对于1中的不同图像增强手段概率执行函数:以某种概率来执行数据增强方法,即设置不同的概率来执行函数def1-函数def8主函数:可以对应更改,读取要增强的原创 2021-03-25 21:18:23 · 2674 阅读 · 6 评论 -
[深度学习]-从实例来看神经网络BP算法的优化思路
复习一下BP主要整理了两篇博客,通过一个实际的例子来讲解优化思路,很方便理解BP算法的传播流程。两篇博客见文章末尾1.什么是神经网络神经网络又称为人工神经网络(Artificial Neural Network , ANN),是指一系列受生物学和神经科学启发,而构造的数学模型。下图便是一个简单的神经元模型神经元是形成神经网络的基本单元,如上图示,激活函数决定了该神经元是否有输出值,所以激活函数在此数学模型中至关重要。因其位置的特殊性,需要有以下特点:连续可导函数及其导数尽可能简单,可提高网络原创 2021-03-23 15:08:39 · 2137 阅读 · 0 评论 -
[图像处理]-霍夫变换原理及python实现线段检测
1.问题简介霍夫变换常用来在图像中提取直线和圆等几何形状,如下图所示:在这里我使用霍夫变换主要是想来提取图像中的直线.2.基本原理一条直线可由两个点A=(X1,Y1)和B=(X2,Y2)确定(笛卡尔坐标)另一方面 y=kx+q也可以写成关于(k,q)的函数表达式(霍夫空间):对应的变换可以通过图形直观表示:变换后的空间成为霍夫空间。即:笛卡尔坐标系中一条直线,对应霍夫空间的一个点。注意当以下情况k=∞是不方便表示的,而且q怎么取值呢,这样不是办法。因此考虑将笛卡尔坐标系换为:极原创 2021-03-03 19:58:25 · 2401 阅读 · 3 评论 -
[图像处理]-Canny边缘检测算法
1.问题描述在处理图像时,有时我们需要图像的边界或通过边界得到一定的信息,如何有效而准确的找到这些边界并显示出来就了一个问题,而Canny算法则可以很好的解决它。2.简述Canny算法Canny 是一种 multi-stage 算法,分别如下:高斯滤波:平滑图像,消除噪声梯度和方向计算:利用Sobel算子计算每个像素点的梯度和方向非极大值抑制:消除边缘检测带来的杂散相应(本来不是边缘检测出来是)双阈值:检测真正和潜在的边缘滞后技术:通过抑制弱边缘来完成边缘检测跟踪边界2.1高斯滤波本原创 2021-03-03 11:30:51 · 9534 阅读 · 2 评论 -
[目标跟踪]-质心追踪算法(centroid tracking)原理简介及python+opencv实现
1.目标跟踪对于一个视频流或者是实时检测的摄像输入,我们可以把整个过程看作N帧图像的合集,那么如果在其中的某一帧出现了我们感兴趣的目标,需要在后续目标继续关注,就要用到目标跟踪.即我们只在目标的初始帧进行检测+识别,而在后续帧不进行识别,仅仅利用跟踪算法始终关注,进行检测,这样做可以,某些情况下降低计算量,提升视频的流畅度,即FPS提升.2.核心思想对于整个视频流,通过检测算法对预设的感兴趣的全部目标的第一次出现得到其位置坐标;为这些第一次出现的ROI 创建 ID;在视频流中的后续帧,寻找帧之原创 2021-01-07 14:26:32 · 9626 阅读 · 2 评论 -
[目标检测]-常用涨点trick-focal loss 论文理解
论文地址:https://arxiv.org/abs/1708.02002pytorch复现:https://github.com/kuangliu/pytorch-retinanet1.论文动机one-stage方法与two-stage的各自的特点,基于one-stage的方法检测速度快,但是正确率低的问题,作者发现是因为前景、背景类别的极度不平衡所导致导致,于是提出了focal loss来重新设置标准交叉熵损失来解决前景、背景类别不平衡的问题。简单来说就是我们在训练的过程中。我们会在检测头输出的原创 2020-11-26 14:32:55 · 835 阅读 · 0 评论 -
[目标检测]-图解bbox_loss的发展-MSE -> IOU -> GIOU(cvpr2019) ->DIOU/CIOU(aaai2020)
1.MSE方式最早的bbox_loss采用的是MSE方法LMSE=(x1−x2)2+(y1−y2)2+(w1−w2)2+(h1−h2)2\mathcal{L}_{\text {MSE}} = (x1-x2)^2 + (y1-y2)^2 + (w1-w2)^2 +(h1-h2)^2LMSE=(x1−x2)2+(y1−y2)2+(w1−w2)2+(h1−h2)2这种方式计算损失值是检测框的“代理属性”—— 距离,而忽略了检测框本身最显著的性质——IoU。计算两者的重叠占比,才是我们更加想要去优化原创 2020-11-09 13:21:23 · 3407 阅读 · 0 评论