- 博客(83)
- 收藏
- 关注
原创 活体检测论文整理
PAD(presentation attack detection)方法(1) 动作配合式活体检测:给出指定动作要求,用户需配合完成,通过实时检测用户眼睛,嘴巴,头部姿态的状态,来判断是否是活体。(2) H5视频活体检测:用户上传一个现场录制的视频,录制时读出随机分配的语音校验码。然后通过分析这个视频的人脸信息以及语音校验码是否匹配,完成活体检测判断。(3) 静默活体检测:相对于动态活体检测方法,静默活体检测是指,不需要用户做任何动作,自然面对摄像头3、4秒钟即可。由于真实人脸并不是绝对静止的, 存在
2020-06-22 16:42:07
2832
4
原创 详解目标检测之anchor-box生成
无论前端backbone如何,总会输出一个feature map 如何在这个feature map上得到pred的 box呢?第一步先得到 feature map上所有的 中心点x,y举例:以特征图大小(4, 4 ,5, 6)表示,4为batch,4 为channel, 5为h, 6为w#以feature的大小5*6 生成单位网格import torchyy, xx =torch.m...
2020-04-17 17:30:36
1043
原创 图像分割中的Mask,color table 和label ,one-hot代码详解
label 和output这里图像分割的label和网络输出的output一般都假设单通道的灰度图,比如先生成一个output输出:10*10的size:a=torch.randint(9,size=[1,10,10])print(a)得到这个单通道的灰度图后,做一个颜色表的映射:import numpy as npdef colormap_cityscapes(n): c...
2020-01-15 10:36:07
8099
8
原创 python 打印彩色文字
单独使用print("\033[32;1m'我愛你,\033[0m我很好。。")print("\033[35;1m'我愛你,\033[0m我很好。。")print("\033[36;1m'我愛你,\033[0m我很好。。")print("\033[41;1m你好麽,\033[0m我很好。。")print("\033[42;1m你好麽,\033[0m我很好。。")print("\033[...
2020-01-14 16:02:08
1091
原创 rock带你读CornerNet-lite系列源码(二)
文章目录前言CorNerNet 结构CornerNet_saccade结构attention机制CornerNet_Squeeze结构前言接上回rock带你读CornerNet-lite系列源码(一), 前篇文章介绍了项目代码的总体架构,和训练时的调用关系,数据流传递到了 py_utils.py下的model定义部分,本篇主要介绍(一)py_utils.py下的三个文件,模型定义。(二)sam...
2019-12-20 13:48:34
1131
原创 rock带你读CornerNet-lite系列源码(一)
文章目录前言项目架构训练configs参数解析:core 文件:models 核心解读:数据流 training:前言CornerNet-lite系列模型分Cornernet,Cornernet-Saccade,Cornernet-Squeese三个网络,后2个网络是Cornernet的改进版本,虽然说现在Anchor-free系列的FCOS、centerNet网络性能优于Cornernet,...
2019-12-05 18:38:26
1754
2
原创 论文阅读【EfficientDet】
文章目录前言创新点网络结构BiFPN双向传递的2种方式:自顶向下自底向上BIFPN特征图权重EfficientDet Architecture实验结果前言EfficientDet结构先吐槽一下CV方面论文的套路,新出一篇paper:未看paper前:被测试结果 state-of -art 吸引,心中默默感叹还是这篇厉害喽,,,看完后:idea不错,改进还是有的,不过是在老方法上,看...
2019-12-05 16:11:27
5838
15
原创 torch构建常见网络层
文章目录conv层:pooling 层:BatchNorm层relu层mobilenet v1- depthwise层residual模块fire_moudle模块博主汇总一下经常用到的网络层,方便记忆哈。参数的意思很好理解,就不注释了,有问题留言哈,希望对您有用!conv层:nn.Conv2d(in_channels, out_channels, kernel_size, stride=1...
2019-11-21 15:33:00
1882
原创 卷积参数量计算
文章目录普通卷积计算量(乘加次数)FLOPs(floating point operations)可分离卷积参数量:MAC计算量:FLOPs计算量为:参考:普通卷积参数量参数量是参与计算参数的个数,占用内存空间,假设输入通道和输出通道都是1,核大小(K,K)(K,K)(K,K),输入map大小为:(Hin,Win)(H_{in},W_{in})(Hin,Win),输出map大小为(Ho...
2019-11-21 10:36:41
2818
原创 Hourglass网络的理解和代码分析
文章目录1. 前言2.一个简单的hourglass网络结构3. Hourglass 网络的定义:3.1 方法一:3.2 方法二(简陋版):1. 前言目标检测最新的一些方法中都采用了人脸关键点检测hourglass网络作为检测的主干网络,如CornerNet-Lite系列。目标检测将anchor生成box的方式替换关键点预测,采用hourglass网络的优点在于物体特征点可能出现在网络的不同层,...
2019-11-15 15:22:47
7060
2
原创 论文阅读【CornerNet】
CornerNet: Detecting Objects as Paired Keypoints论文链接:https://arxiv.org/abs/1808.01244代码链接:https://github.com/umich-vl/CornerNet
2019-10-29 15:03:41
863
3
原创 目标检测Anchor-free FCOS网络训练自己数据集(VOC格式)
FCOS训练自己数据集一、 搭建mmdetection:要求安装虚拟环境二、制作VOC格式数据集:三、实验细节:训练命令测试命令四、训练结果五、FCOS在该数据集的MAP测量一、 搭建mmdetection:参考:https://github.com/open-mmlab/mmdetectionmmdetection安装文档详见:https://github.com/open-mmlab...
2019-10-21 17:20:06
9503
48
原创 YOLO系列的IOU、GIOU源码阅读
#include "box.h"#include <stdio.h>#include <math.h>#include <stdlib.h>//#define DEBUG_NAN//#define DEBUG_PRINTSint nms_comparator(const void *pa, const void *pb){ detect...
2019-09-25 10:22:06
2359
15
原创 pytorch中squeeze()、unsqueeze(),以及一些高维数组操作
博主最近阅读YOLO底层代码,有很多数组矩阵的高维操作,看过一边之后,记录一下,以防忘记。torch.squeeze()功能:取消为1的维度squeeze(input, dim=None, out=None) -> Tensor这里一般分不清dim的意思举个例子:input=(A , 1 , B , C ,1 , D)== squeeze(input)=(A,B,C,D) ==...
2019-09-10 16:17:18
1556
原创 np.argsort()、 np.where()、 np.reshape()等用法
一. np.argsort()用于返回数组的排序后的索引值,红色是原索引顺序,.argsort()返回排序后的索引。二.np.reshape()用于改变多维数组的维度大小先看一个简单的例子稍微复杂一点, -1 写的很妙, 表示一个 值x(the unspecified value is inferred to be x), 让程序自己推断,reshape成[-1],只有一维,下面例...
2019-09-09 16:56:04
702
原创 论文阅读【CenterNet】
代码:https://github.com/xingyizhou/CenterNethttps://github.com/Duankaiwen/CenterNet论文地址: https://arxiv.org/abs/1904.08189文章要点:针对基于anchor的检测方法(yolo v2-yolo v3,SSD ,faster-rcnn)在特征图中产生大量的bounding bo...
2019-09-06 14:59:04
858
原创 scikit-image库----斑点检测(二十三)
斑点检测(Blob Detection)在图像的明亮区域上,斑点在暗或暗上是明亮的。在此示例中,使用3种算法检测blob。在这种情况下使用的图像是Hubble eXtreme Deep Field。图像中的每个亮点都是恒星或星系。高斯拉普拉斯(LoG)这是最准确,最慢的方法。它计算高斯图像的拉普拉斯算子,并连续增加标准偏差并将它们堆叠在一个立方体中。 Blob是此多维数据集中的局部最大值。由...
2019-08-20 16:02:15
1827
原创 scikit-image库----CENSURE特征检测器(二十二)
CENSURE特征检测器是一种尺度不变的中心环绕检测器(CENSURE),其性能优于其他检测器,并且能够实时实现。from skimage import datafrom skimage import transform as tffrom skimage.feature import CENSUREfrom skimage.color import rgb2gray%matplotli...
2019-08-20 15:43:19
1043
原创 scikit-image库----图像反卷积修复(二十一)
维纳过滤器(Wiener filter)基于PSF(点扩散函数)的逆滤波器,先前的正则化(高频惩罚)以及数据与先前充分性之间的权衡。 必须手动调整正则化参数。在此示例中,我们使用Wiener和无监督的Wiener算法对图像的噪声版本进行去卷积。 该算法基于线性模型,不能像非线性方法(如电视恢复)那样恢复锐边,但速度要快得多。import numpy as npimport matplotl...
2019-08-20 15:24:34
1907
原创 论文阅读:【RetinaNet】Focal Loss for Dense Object Detection
论文地址:https://arxiv.org/pdf/1708.02002.pdf代码: Pytorch , tensorflow创新点:这篇文章重新定义目标检测中loss损失函数,引入一种新的Focal loss 用来替代 one-stage中的损失函数,作者分析 two-stage 检测方法精度优于one-stage主要由于easyeasyeasy识别样本类别与hardhardhard识...
2019-08-20 14:39:55
955
原创 scikit-image库----使用RANSAC进行稳健匹配(二十)
在这个简化的例子中,我们首先生成两个合成图像,就好像它们是从不同的视点中拍摄的。在下一步中,我们在两个图像中找到兴趣点,并基于它们周围的小邻域的平方差的加权和来找到对应关系。 请注意,此度量仅对线性辐射测量而非几何失真是稳健的,因此仅适用于轻微的视点变化。在找到对应关系之后,我们最终得到一组源和目标坐标,这些坐标可用于估计两个图像之间的几何变换。 然而,许多对应关系都是错误的,并且简单地用所有...
2019-08-18 20:10:21
1833
1
原创 scikit-image库-- 基本矩阵估计(十九)
ORB 原理参考FAST 算法原理BRIEF 特征描述子此示例演示了如何使用稀疏ORB特征对应来稳健地估计两个视图之间的极线几何。基本矩阵涉及一对未校准图像之间的对应点。 矩阵将一个图像中的均匀图像点变换为另一个图像中的极线。未校准意味着两个摄像机的固有校准(焦距,像素偏斜,主点)未知。 因此,基本矩阵能够实现捕获的场景的投影3D重建。 如果校准已知,则估计基本矩阵使得能够对捕获的场景进...
2019-08-17 22:54:29
436
原创 scikit-image库-- 重新缩放,调整大小和缩小范围(十八)
重新缩放操作通过给定的缩放因子调整图像的大小。 缩放因子可以是单个浮点值,也可以是多个值 - 每个轴一个。调整大小用于相同的目的,但允许指定输出图像形状而不是缩放因子。请注意,在对图像进行下采样时,调整大小和重新缩放应执行高斯平滑以避免混叠伪像。 请参阅这些函数的anti_aliasing和anti_aliasing_sigma参数。缩小版用于通过整数因子对n维图像进行下采样,使用作为函数参...
2019-08-17 21:11:45
2885
原创 scikit-image库-- 圆形和椭圆形霍夫变换(十七)
最简单形式的霍夫变换是一种检测直线的方法,但它也可用于检测圆或椭圆。该算法假设检测到边缘并且它对噪声或缺失点具有鲁棒性。圆检测在以下示例中,Hough变换用于检测硬币位置并匹配其边缘。我们提供一系列合理的半径。对于每个半径,提取两个圆圈,我们最终保留五个最突出的候选者。结果表明,硬币位置被很好地检测到。算法概述给定白色背景上的黑色圆圈,我们首先猜测其半径(或半径范围)以构建新圆。该圆圈应用...
2019-08-17 17:29:04
3562
2
原创 scikit-image库-- 主动轮廓模型(十六)
主动轮廓模型。通过将snake拟合到图像特征来激活轮廓。 支持单通道和多通道2D图像。 snake可以是周期性的(用于分割)或具有固定和/或自由端。 输出snake与输入边界的长度相同。 由于点的数量不变,请确保初始snake具有足够的点来捕获最终轮廓的细节。skimage.segmentation.active_contour(image, snake, alpha=0.01, beta=0...
2019-08-17 17:02:07
3244
1
原创 scikit-image库-- RGB图像自适应灰度滤波器(十五)
有许多滤波器可用于处理灰度图像,但不适用于彩色图像。 为了简化创建可以适应RGB图像的函数的过程,scikit-image提供了adapt_rgb装饰器。要实际使用adapt_rgb装饰器,您必须决定如何调整RGB图像以与灰度滤镜一起使用。 有两个预定义的处理程序:each_channel将每个RGB通道逐个传递到滤镜,然后将结果缝合回RGB图像。hsv_value将RGB图像转换为HS...
2019-08-17 16:07:10
625
原创 浅析python中@装饰器的作用
要了解python中@装饰器的作用,首先要记住这么几点:装饰器符号“@”属于语法糖,什么意思呢?就是说,我不按照@装饰器的语法要求来写,而是按照一般python的语法要求来写完全可以。那么用@装饰器的格式来写的目的就是为了书写简单方便装饰器的作用是什么呢? 简单的理解就是:装饰原有的函数。什么意思呢?比如有一个函数func(a, b),它的功能是求a,b的差值,我现在有一个需求,就是想...
2019-08-17 16:01:24
6114
原创 scikit-image库-- 图像块视图(十四)
此示例说明了如何使用skimage.util()中的view_as_blocks。 当想要在非重叠图像块上执行本地操作时,块视图非常有用。我们使用来自skimage.data的宇航员并将其“切片”成方块。 然后,在每个块上,我们或者汇集该块的平均值,最大值或中值。 结果一起显示,以及原始宇航员图像的3阶重新缩放的样条插值。import numpy as npfrom scipy import...
2019-08-15 22:47:54
773
原创 scikit-image库-- RGB to HSV &GRAY(十三)
此示例说明如何使用RGB到HSV(色调、饱和度、值)转换[来促进分割过程。通常,图像中的对象具有不同的颜色(色调)和亮度,因此这些特征可用于分隔图像的不同区域。在RGB表示中,色调和亮度表示为R、G、B通道的线性组合,而它们对应于HSV图像的单通道(色调和值通道)。仅仅通过对HSV通道进行阈值分割就可以有效地对图像进行简单的分割。import matplotlib.pyplot as plt...
2019-08-15 22:08:00
531
原创 scikit-image库-- 随机游走分割(十二)
Random Walk算法根据一组标记多个相位(2个或更多)的标记确定图像的分割。利用在标记点位置启动的示踪剂求解各向异性扩散方程。如果相邻像素具有相似的值,则局部扩散系数较大,因此很难在高梯度上进行扩散。每个未知像素的标签归因于已知标记的标签,该标记在扩散过程中最有可能首先到达。在这个例子中,两个阶段是清晰可见的,但是数据太过嘈杂,无法仅从柱状图进行分割。我们从灰度值的柱状图的最尾部确定两个...
2019-08-14 17:19:11
936
原创 scikit-image库--超像素分割算法比较(十一)
超像素分割算法比较本例比较了四种常用的低阶图像分割方法。由于很难获得良好的分割,“良好”的定义往往取决于应用,这些方法通常用于获得过度分割,也称为超像素。然后,这些超像素作为更复杂的算法(如条件随机场(CRF))的基础。基于菲尔森茨瓦布高效图的分割(Felzenszwalb’s efficient graph based segmentation.2004)该算法有一个影响段大小的单尺度参数...
2019-08-13 19:24:12
5941
原创 scikit-image库--查找局部最大值(十)
peak_local_max函数返回图像中局部峰值(maxima)的坐标。最大滤波器用于查找局部最大值。此操作将扩展原始图像,并合并相邻的局部最大值,使其小于扩展的大小。原始图像等于展开图像的位置将作为局部最大值返回。peak_local_max (image, min_distance=1, threshold_abs=None, threshold_rel=None, exclude...
2019-08-13 19:09:27
8363
8
原创 scikit-image库--小波降噪(九)
小波降噪小波去噪依赖于图像的小波表示。高斯噪声往往由小波域中的小值表示,可以通过将低于给定阈值的系数设置为零(硬阈值)或将所有系数收缩为零(软阈值)来消除。在这个例子中,我们演示了两种不同的小波系数阈值选择方法:Bayesshrink和Visushrink。Visushrink算法Visushrink方法对所有小波细节系数采用一个单一的通用阈值。该阈值用于去除高概率的加性高斯噪声,这种加性...
2019-08-12 22:33:19
4126
2
原创 scikit-image库--图像去噪(八)
图像去噪在本例中,使用总变化、双边和小波去噪滤波器对图像的噪声版本进行去噪。全变分法和双边算法通常产生“后验”图像,其平面域由锐边分隔。通过控制去噪和对原始图像的忠实之间的权衡,可以改变后验的程度。总变化滤波器(Total variation filter)该滤波器的结果是一个具有最小总变化范数的图像,同时尽可能接近初始图像。总变化是图像梯度的l1范数。双边滤波器(Bilateral f...
2019-08-12 22:19:35
3537
原创 scikit-image库--绘制二值图外接凸面形(七)
import matplotlib.pyplot as pltfrom skimage.morphology import convex_hull_imagefrom skimage import data, img_as_floatfrom skimage.util import invert# The original image is inverted as the object...
2019-08-12 17:20:18
308
原创 scikit-image库--灰度图像着色(六)
灰度图像着色用某种颜色对图像进行人工着色很有用,可以突出显示图像的特定区域,也可以只是激活灰度图像。本例通过缩放RGB值和调整HSV颜色空间中的颜色来演示图像着色。在二维图像中,彩色图像通常表示为二维阵列的RGB-3层,其中3层表示图像的(R)ED,(G)REEN和(B)LUE通道。获取着色图像的最简单方法是将每个RGB通道设置为每个通道使用不同的乘数缩放的灰度图像。例如,将绿色通道和蓝色通道...
2019-08-12 16:51:36
1113
原创 scikit-image库--非局部去噪并保存纹理(五)
非局部去噪并保存纹理import numpy as npimport matplotlib.pyplot as pltfrom skimage import data, img_as_floatfrom skimage.restoration import denoise_nl_means, estimate_sigmafrom skimage.measure import compa...
2019-08-11 19:52:50
1212
原创 scikit-image库--直方图均衡化(四)
直方图均衡化import matplotlibimport matplotlib.pyplot as pltimport numpy as npfrom skimage import data, img_as_floatfrom skimage import exposurematplotlib.rcParams['font.size'] = 8#画直方图def plot_...
2019-08-11 19:16:46
1081
原创 scikit-image库-- 过滤区域最大值(三)
过滤区域最大值import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinefrom scipy.ndimage import gaussian_filterfrom skimage import datafrom skimage import img_as_floatfrom skimage.morpholog...
2019-08-11 18:43:06
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人