HOG特征(Histogram of Gradient)总结

2023-05-16

在做的项目有用到HOG+SVM这一方面的知识,虽然很久之前的内容了,所以记录一下。

1、HOG特征:

       方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

(1)主要思想:

       在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。

(2)具体的实现方法是:

       首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。

(3)提高性能:

       把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。

(4)优点:

       与其他的特征描述方法相比,HOG有很多优点。首先,由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此HOG特征是特别适合于做图像中的人体检测的。

 

博文1:OpenCV HOGDescriptor: 参数与图解

http://blog.csdn.net/raodotcong/article/details/6239431

博文2:opencv源码解析:各个参数讲解

http://www.cnblogs.com/tornadomeet/archive/2012/08/15/2640754.html

博文3:hog特征可视化:matlab 与 C++

http://blog.csdn.net/u011285477/article/details/50974230

博文4:hog汇总

http://www.lxway.com/122812.html

博文5:HOG:从理论到OpenCV实践

http://blog.csdn.net/zhazhiqiang/article/details/21047207

感谢:

        https://blog.csdn.net/u011285477/article/details/50974230/

        https://blog.csdn.net/qq_29422251/article/details/51638087

参考资料: 
HOG的经典论文:Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on. IEEE, 2005, 1: 886-893.(2016:Google Citation: 14046) 
下载链接:https://hal.inria.fr/file/index/docid/548512/filename/hog_cvpr2005.pdf 
较为详细的博士论文:Dalal N. Finding people in images and videos[D]. Institut National Polytechnique de Grenoble-INPG, 2006.(Google Citation: 337) 
下载链接:https://tel.archives-ouvertes.fr/tel-00390303/document

采用级联结构对HOG检测进行加速:Zhu Q, Yeh M C, Cheng K T, et al. Fast human detection using a cascade of histograms of oriented gradients[C]//Computer Vision and Pattern Recognition, 2006 IEEE Computer Society Conference on. IEEE, 2006, 2: 1491-1498.(Google Citation: 1270)

关于HOG特征的三线性插值论文: (有些博客介绍了,但是不是很详细,我不是专门研究SOG的所以暂时不去看,等需要再学习!个人觉得如果要弄明白可以去看论文,所以论文很重要,还有就是要会看论文,论文是科技文,不见得都是我们需要的,挑重点看!和学习!提高效率
[Wang, 2009] X. Wang, X. Han, and S. Yan. A HOG-LBP human de­tec­tor with par­tial oc­clu­sion han­dling [A]. In Proc. of ICCV[C], 2009.(Google Citation: 965) 
[Pang, 2011] Y. Pang, Y. Yuan, X. Li, et al. Efficient HOG human detection [J]. Signal Processing, 2011, 91: 773-781.(Google Citation: 105)

比较好的博文: 
http://blog.sina.com.cn/s/blog_60e6e3d50101bkpn.html 
http://blog.csdn.net/icvpr/article/details/8454527 
对经典文章的翻译:http://blog.csdn.net/masibuaa/article/details/14056807 
从理论到OpenCV实现:http://blog.csdn.net/zhazhiqiang/article/details/21047207

行人数据集:INRIA Person dataset 
Download:http://pascal.inrialpes.fr/data/human/ 
INRIA Person dataset

 

概述

       CVPR2005这篇文章中,HOG是用来做行人检测的。作者研究了行人检测的特征集问题,局部归一化的HOG描述子相比于现存的特征集(包括小波)有更好的表现。相比于边缘方向直方图(Edge Orientation Histograms)、SIFT描述子、形状上下文(Shape Contexts),HOG是在网格密集的大小统一的细胞单元(dense grid of uniformly spaced cells)上进行计算,而且为了提高性能,还采用了重叠的局部对比度归一化(overlapping local contrast normalizations)。作者用行人检测(行人是大部分可见的并且基本上是直立的)进行测试,为了保证速度和简洁性,使用线性SVM作为分类器。

作者在文中提到他们的非正式实验表明,即使截止到05年最好的基于特征点的方法,在行人检测方面比本论文的方法的错检率也要高上至少1-2个数量级,主要是因为这些基于特征点的检测器不能可靠地检测行人结构。HOG有个优点,提取的边缘和梯度特征能很好的抓住局部形状的特点,且因是对图像做了Gamma校正和采用cell方式进行梯度方向量化,在局部进行提取,所以对几何和光学变化都有很好的不变性,变换或旋转对于足够小的区域影响很小。对于行人检测,在粗糙空域采样(coarse spatial sampling)、精细方向采样(fine orientation sampling)和强局部灰度归一化(strong local photometric normalization)这些条件下,只要行人大体上能够保持直立的姿势,就容许有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。综上,HOG特征很适合于做图像中的人体检测。

HOG特征提取是统计梯度直方图特征。具体来说就是将梯度方向(0->360°)划分为9个区间,将图像化为16x16的若干个block,每个block再化为4个cell(8x8)。对每一个cell,算出每一像素点的梯度方向和模,按梯度方向增加对应bin的值,最终综合N个cell的梯度直方图形成一个高维描述子向量。实际实现的时候会有各种插值

1 Overview of the Method

An overview of our feature extraction and object detection chain
HOG方法是基于对稠密网格中归一化的局部方向梯度直方图的计算。此方法的基本观点是:局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述,即使我们不知道对应的梯度和边缘的位置。在实际操作中,将图像分为小的元胞(cells),在每个元胞内累加计算出一维的梯度方向(或边缘方向)直方图。为了对光照和阴影有更好的不变性,需要对直方图进行对比度归一化,这可以通过将元胞组成更大的块(blocks)并归一化块内的所有元胞来实现。归一化的块描述符就叫作HOG描述子。将检测窗口中的所有块的HOG描述子组合起来就形成了最终的特征向量,然后使用SVM分类器进行行人检测。如上图描述了特征提取和目标检测流程。检测窗口划分为重叠的块,对这些块计算HOG描述子,形成的特征向量放到线性SVM中进行目标/非目标的二分类。检测窗口在整个图像的所有位置和尺度上进行扫描,并对输出的金字塔进行非极大值抑制来检测目标。

2 Gamma/Colour Normalization

标准化gamma空间和颜色空间。为了减少光照因素的影响,首先需要将整个图像进行规范化(归一化)。在图像的纹理强度中,局部的表层曝光贡献的比重较大,所以,这种压缩处理能够有效地降低图像局部的阴影和光照变化。 


gamma<1在高灰度值区域内,动态范围变小,图像对比度降低,图像整体灰度值变大,显得亮一些;gamma>1在低灰度值区域内,动态范围变小,图像对比度降低,图像整体灰度值变小,变得暗淡。 
gamma校正 
作者在他的博士论文里有提到,对于涉及大量的类内颜色变化,如猫,狗和马等动物,没标准化的RGB图效果更好,而牛,羊的图做gamma颜色校正后效果更好。是否用gamma校正得分析具体的训练集情况。

 

3 Image Smoothing

对于灰度图像,一般为了去除噪点,所以会先利用离散高斯平滑模板进行平滑:高斯函数在不同平滑的尺度下进行对灰度图像进行平滑操作。Dalal等实验表明moving from σ=0 to σ=2 reduces the recall rate from 89% to 80% at  FPPW,即不做高斯平滑人体检测效果最佳,使得漏检率缩小了约一倍。不做平滑操作,可能原因:HOG特征是基于边缘的,平滑会降低边缘信息的对比度,从而减少图像中的有用信息。

4 Gradient Computation

梯度公式

式中分别表示输入图像在像素点(x,y)处的水平方向梯度和垂直方向梯度。则分别为像素点(x,y)的梯度幅值和梯度方向。Dalal等人利用许多一阶微分模板进行求梯度近似值,但在实验中表明模板[-1,0,1]效果最好。

首先用[-1,0,1]梯度算子对原图像做卷积运算,得到水平方向(以向右为正方向)的梯度分量,然后用[1,0,-1]T梯度算子对原图像做卷积运算,得到竖直方向(以向上为正方向)的梯度分量。然后再用以上公式计算该像素点的梯度大小和方向。

 

梯度图

5 Spatial / Orientation Binning

这一步骤的目的是为局部图像区域提供一个指示函数量化梯度方向的同时能够保持对图像中人体对象的姿势和外观的弱敏感性。 
将图像分成若干个“单元格cell”,例如每个cell为88的像素大小。假设采用9个bin的直方图来统计这88个像素的梯度信息,即将cell的梯度方向0~180度(或0~360度,考虑了正负,signed)分成9个方向块。如下图所示:如果这个像素的梯度方向是20-40度,直方图第2个bin即的计数就加1,这样,对cell内每个像素用梯度方向在直方图中进行加权投影,将其映射到对应的角度范围块内,就可以得到这个cell的梯度方向直方图了,就是该cell对应的9维特征向量(因为有9个bin)。这边的加权投影所用的权值为当前点的梯度幅值。例如说:某个像素的梯度方向是在,其梯度幅值是4,那么直方图第2个bin的计数就不是加1了,而是加4。这样就得到关于梯度方向的一个加权直方图。 
梯度直方图统计

采用梯度幅值量级本身得到的检测效果最佳,而使用二值的边缘权值表示会严重降低效果。采用梯度幅值作为权重,可以使那些比较明显的边缘的方向信息对特征表达影响增大,这样比较合理,因为HOG特征主要就是依靠这些边缘纹理。

根据Dalal等人的实验,在行人目标检测中,在无符号方向角度范围并将其平均分成9份(bins)能取得最好的效果,当bin的数目继续增大效果改变不明显,故一般在人体目标检测中使用bin数目为9范围0~180度的度量方式。

6 Tri-linear interpolation(非Dalal N, Triggs B提出,后面提出的,DN只用了5)

在计算每个cell的梯度直方图时,可以用三线性插值来提高计算速率。对于每个cell里的点,我们认为都是一个三维向量,如下图所示某一待处理像素点它位于block中的C0单元中, 利用该点与四个cell中的中心像素点 (图中4个圆点,) 的距离计算权值, 将待处理像素点的梯度幅值分别加权累加到C0、C1、 C2、 C3中相应的直方图上,与θ相邻的两个bin上(θ1,θ2)。 
这里写图片描述
这里写图片描述 
参见上图,以(x,y,θ)对cell0的梯度直方图即h(x1,y1,θ1)的加权投影为例,三线性插值公式如下: 
这里写图片描述 
这样不断累加更新得到最终的,就是我们所要4个cell的梯度直方图。

7 Normalization and Descriptor Blocks

由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩,使特征向量空间对光照,阴影和边缘变化具有鲁棒性。本文的做法是:把各个细胞单元组合成大的、空间上连通的区域(blocks)。这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。归一化之后的块描述符(向量)就称之为HOG描述符。 
BLOCK结构
通常使用的HOG结构大致有三种:矩形HOG(简称为R-HOG),圆形HOG和中心环绕HOG。它们的单位都是Block(即块)。Dalal的试验证明矩形HOG和圆形HOG的检测效果基本一致,而环绕形HOG效果相对差一些。 
Block层次结构 
如上图,一般一个块(Block)都由若干单元(Cell)组成,一个单元都有如干个像素点组成。 
假设行人检测的参数设置是:2×2 cell/block、8×8像素/cell、9个直方图通道(9 bins),一个块的特征向量长度为:2×2×9。

对block块内的HOG特征向量进行归一化。一般采用的归一化函数有以下四种: 
归一化方式
在人体检测系统中进行HOG计算时一般使用L2-norm,Dalal的文章也验证了对于人体检测系统使用L2-norm的时候效果最好。

8 Classifier

计算一个样本的HOG特征维度,例如: 
detection window:64×128; 8×8 pixels/cell; bin=9;2×2cells/block; blockstride=1cell; 
block number:15×7=105;Length of HOG feature vector: 2×2×9×15×7=3780 
最后就是把这么一个3780维的特征向量输入给SVM做训练分类。

9 Visualizing Object Detection Features

关于HOG特征可视化的程序如下:

基于OpenCV的C++程序,效果图如下,通过该程序可以帮助理解HOG特征。 
下载链接:http://download.csdn.net/detail/u011285477/9472067 
这里写图片描述

用MATLAB实现的HOG特征可视化代码,视觉效果不错。 
这里写图片描述
下载链接:http://web.mit.edu/vondrick/ihog/index.html#code。 
相关资料:Vondrick C, Khosla A, Malisiewicz T, et al. Hoggles: Visualizing object detection features[C]//Proceedings of the IEEE International Conference on Computer Vision. 2013: 1-8.(Google Citation: 98)

10 Multi-Scale Object Localisation

这里写图片描述
上图右上角是对SVM分类结果的置信度做个映射得到检测评分。检测过程就是用固定大小的窗口对多个尺度的图像进行滑窗检测,将多个尺度计算得到的矩形框都还原成原图尺寸,再进行非极大值抑制(NMS,Non-maximum Suppression)处理。在物体检测非极大值抑制应用十分广泛,主要目的是为了消除多余的框,找到最佳的检测框的位置,大致思想如下图所示。 
NMS

11 Conclusions

HOG的优点: 
- 核心思想是所检测的局部物体外形能够被梯度或边缘方向的分布所描述,HOG能较好地捕捉局部形状信息,对几何和光学变化都有很好的不变性; 
- HOG是在密集采样的图像块中求取的,在计算得到的HOG特征向量中隐含了该块与检测窗口之间的空间位置关系。

矩形HOG和SIFT有些相似的地方,关于SIFT具体看这篇博文SIFT特征提取分析

HOG的缺陷: 
- 很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测(这个问题后来在DPM中采用可变形部件模型的方法得到了改善); 
- 跟SIFT相比,HOG没有选取主方向,也没有旋转梯度方向直方图,因而本身不具有旋转不变性(较大的方向变化),其旋转不变性是通过采用不同旋转方向的训练样本来实现的; 
- 跟SIFT相比,HOG本身不具有尺度不变性,其尺度不变性是通过缩放检测窗口图像的大小来实现的; 
- 此外,由于梯度的性质,HOG对噪点相当敏感,在实际应用中,在Block和Cell划分之后,对于得到各个像区域中,有时候还会做一次高斯平滑去除噪点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HOG特征(Histogram of Gradient)总结 的相关文章

  • R - ggplot2 直方图的阴影部分

    所以我有这个数据 dataset rbinom 1000 16 0 5 mean mean dataset sd sd dataset data subset subset dataset dataset gt mean 2 sd data
  • matplotlib 中的直方图,x 轴上的时间

    我是 matplotlib 1 3 1 2 的新手 我找不到合适的起点 我想用 matplotlib 在直方图中绘制点随时间的分布 基本上我想绘制日期出现的累积总和 date 2011 12 13 2011 12 13 2013 11 01
  • 如何对星期几进行直方图并具有字符串标签

    我有一个日期数据框 日期对象 见底部 我试图将它们转换为星期几 然后绘制直方图 但理想情况下标签是 星期一 星期日 不是数字 我有两个不同的问题 这很容易将日期对象转换为星期几 https stat ethz ch pipermail r
  • pandas直方图绘图错误:ValueError:num必须是1 <= num <= 0,而不是1

    我正在从 pandas 数据框中绘制一列的直方图 matplotlib notebook import matplotlib pyplot as plt import matplotlib df hist column column A b
  • Gnuplot 列堆叠直方图 - 行/行计数

    我有一个数据文件 其中包含未定义数量的条目 如下所示 A B C D E 1 0 2 5 4 7 4 3 4 1 8 7 4 0 7 1 1 第一行代表工作时间 然后以交替的方式暂停等等 为了可视化这一点 我通过定义两种具有不同颜色的线条样
  • Numpy 直方图表示具有相同近似值的浮点数

    我有代码可以在给定范围 0 1 的情况下生成从 10 到 10 的特定值 该代码采用 10 到 10 之间的值 并根据其概率将其附加到列表中 例如 10 将在列表中放入 0 次 因为它对应于值 0 而 10 将在列表中放入 100 次 作为
  • 在 OpenCV 中,cv2.filter2D() 需要什么数据类型?

    我正在自学边缘检测器 并且正在尝试使用 OpenCVfilter2D实现我自己的梯度计算器 类似于cv2 Sobel 在 OpenCV 的 Python 接口中 cv2 filter2D 允许用户使用自定义过滤器对图像进行卷积 在 Open
  • 如何在MatLab中求曲线上一点的法向量

    我有一条曲线 我想找到该曲线上给定点的法线向量 稍后我必须找到该法线向量与另一个向量的点积 我尝试了MatLab的梯度函数 但我想当我们需要在特定点找到梯度时它不起作用 但我不确定我是否错了 请指导我如何在 MatLab 中实现这一目标 提
  • 受约束景观的程序生成

    我想实现地形的程序生成 经过彻底的研究后 我得出的结论是 应该使用梯度 相干 噪声生成算法之一来实现 例如 Perlin 噪声算法 然而 我不希望生成是完全随机的 我想应用一些限制 例如哪里应该是山脉 或者哪里应该是低地等 问题 例如 我有
  • 如何将直方图的条形与 x 轴对齐?

    考虑这个简单的例子 library ggplot2 dat lt data frame number c 5 10 11 12 12 12 13 15 15 ggplot dat aes x number geom histogram 看到
  • Matplotlib 直方图错位且缺少条形

    我有大量数据文件 因此使用 numpy 直方图 与 matplotlib 中使用的相同 手动生成直方图并更新它们 然而 在绘图时 我感觉图表发生了变化 这是我用来批量手动创建和更新直方图的代码 请注意 所有直方图共享相同的箱 temp np
  • 在另一个绘图的绘图区域内添加小直方图

    有没有办法在另一个图的绘图区域内添加直方图 但独立于 基础 图的坐标系 就我而言 我想将直方图作为图例添加到分区统计图 直方图将显示属于每个类别的区域数量 但问题可以轻松应用于任何绘图 例如 plot 1 10 rect 1 7 4 9 c
  • 更改选定直方图 bin 条的颜色(给定其值)

    类似于我之前问过的一个问题 https stackoverflow com questions 35780048 labelling a matplotlib histogram bin with an arrow 我有一个像这样的 MWE
  • R从原始数据生成二维直方图

    我有一些 2D x y 的原始数据 如下所示 我想从数据生成二维直方图 通常 将 x y 值划分为大小为 0 5 的 bin 并计算每个 bin 中出现的次数 同时针对 x 和 y 有什么办法可以做到这一点吗 gt df x y 1 4 2
  • 用顶点之间的渐变填充 matplotlib 多边形

    我正在使用 matplotlib 的 Poly3DCollection 绘制多边形 三角形 的集合 三角形位于具有与其关联的颜色的顶点之间 我目前正在用通过平均三个顶点的颜色确定的纯色填充每个三角形 绘制三角形以形成 3D 表面网格 I w
  • 在Python中使用Counter()来构建直方图?

    我在另一个问题上看到我可以使用Counter 计算一组字符串中出现的次数 所以如果我有 A B A C A A I get Counter A 3 B 1 C 1 但现在 我如何使用该信息来构建直方图 对于您的数据 最好使用条形图而不是直方
  • 如何从分组数据创建直方图

    我正在尝试根据 pandas 中的分组数据创建直方图 到目前为止 我已经能够创建标准线图 但我不知道如何做同样的事情来获取直方图 条形图 我想获得泰坦尼克号事故中幸存者和未幸存者的 2 个年龄直方图 看看年龄分布是否存在差异 来源数据 ht
  • Matplotlib:如何有效地将大量线段着色为独立渐变

    Python 绘图库 如何有效地将大量线段着色为独立渐变 已经 阅读this https stackoverflow com questions 8500700 how to plot a gradient color line in ma
  • 了解日期并使用 R 中的 ggplot2 绘制直方图

    主要问题 当尝试使用 ggplot2 制作直方图时 我无法理解为什么日期 标签和中断的处理无法像我在 R 中预期的那样工作 我在找 我的约会频率的直方图 刻度线位于匹配条下方的中心 日期标签在 Y b format 适当的限制 最小化网格空
  • 如何在seaborn displot上绘制正态曲线

    distplot 已被弃用 取而代之的是 displot 之前的函数可以选择绘制正态曲线 import seaborn as sns import matplotlib pyplot as plt from scipy import sta

随机推荐

  • Oracle恢复数据到某一节点

    alter table 表名 enable row movement 开启表行移动 flashback table 表名 to timestamp to timestamp 39 20210824 15 55 00 39 39 yyyymm
  • Oracle创建序列

    create sequence SEQ SHARE ID minvalue 1 增长最小值 maxvalue 9999999999 增长最大值 也可以设置NOMAXvalue 不设置最大值 start with 1 从1开始计数 incre
  • idea好用的插件分享(一)---any-rule(正则表达式插件)

    any rule一个常用正则表达式大全 在idea的插件市场中搜索any rule插件 xff0c 安装好后重启idea 在编辑器页面右击 xff0c 可以选中any rule打开搜索框 xff0c Mac系统也可以使用option 43
  • Mac上好用的连接服务器的工具(Termius)

    虽然 Mac本身的终端自带远程连接的作用 xff0c 但是长时间不操作 xff0c 会失去连接 xff0c 就让人很烦恼 xff0c 而且 xff0c 传输文件也必须用命令 xff0c 就很令人烦恼 所以 xff0c 本次推荐的是Termi
  • JDBC连接Mysql8.0失败解决方法(终极版)

    mysql8 0驱动下载地址 xff1a 链接 https pan baidu com s 1BvB P1 Ztt8vI0fCBVjvg pwd 61 ygb4 提取码 ygb4 复制这段内容后打开百度网盘手机App xff0c 操作更方便
  • Java如何实现输入流的复制?(输入流重复使用)

    众所周知 xff0c Java的输入流只能读取一次 xff0c 但是实际操作中我们想要重复操作inputStream就会出现问题 那如果是操作同一个inputStream xff0c 我们可以通过转字节流的方式来解决 64 param in
  • Mysql中SQL语句中日期格式转换(DATE_FORMAT()篇)

    鉴于平时时常会用到日期格式的转换 xff0c 以提供给前端正确的时间显示格式 格式化的方式比较多 xff0c 比如Java方式 xff0c 举个栗子如下 xff1a Date date 61 new Date SimpleDateForma
  • 如何升级nodejs版本

    nodejs怎么升级版本 xff1f 这里介绍三种方法 方法一 xff1a 用n升级nodejs xff08 建议使用此方法 xff09 查看当前node版本 node v 清除npm缓存 npm cache clean f 全局安装n n
  • 初识编程语言Python

    什么是编程语言 学习知识 最快速的掌握方式就是搞清楚它的素质三连 1 它是什么 2 它有什么用 3 它该怎么用 学习一个东西 最重要的就是搞清楚本质和实质 编程源自于生活 gt 多用生活的例子来理解编程思路 编程语言的本质 39 语言 39
  • 分组查询——组内排序展示组内数据(row_number() over(partition by) 函数详解)

    日常开发中可能遇到很多分组的业务需求 xff0c 比如分组查询后取第一条 组内排序等 xff0c 除了用group by来做分组 xff0c 我们还可以使用row number over partition by 这个函数来解决分组问题 简
  • 复制List<Object>集合遇到的“坑“

    记一个使用List lt Object gt 复制的坑 问题经过 xff1a 有一个需求 xff0c 需要返回结果组成装成Map lt String List lt Object gt gt 这种格式 xff0c Map的可以就是字符串没啥
  • Mac上好用的redis客户端推荐

    推荐mac一个开源免费 好用的redis客户端 xff1a QuickRedis 它支持直连 哨兵 集群模式 xff0c 并且UI是可以的 xff0c 并且支持树形展示 同时支持json格式展示 xff0c 最基本的命令行模式也支持 xff
  • 实现java项目idea打包发布至服务器(完整版)

    问题 xff1a 如何快速部署本地代码到服务器 xff1f 今天介绍的是使用idea的一款插件 Alibaba Cloud Toolkit 实现 xff0c 首先需要在自己的服务器上安装运行环境 xff0c 包括 xff1a jdk mav
  • Mac删除已卸载软件残留启动台的图标

    问题 xff1a mac在卸载一些非商店安装的软件 xff0c 图标可能会残留在启动台 xff0c 即使拖动到废纸篓也删除不掉 解决 xff1a 点击访达 前往 前往文件夹 2 输入 xff1a private var folders 然后
  • java日期的计算(当月剩余天数、获取日期当月的天数)

    日常开发中会遇到关于日期的计算比如 xff1a 当月的天数 两日期之间的天数 当月剩余天数等等 下方为关于日期计算的demo xff0c 后期会持续更新 获取日期当月的天数或某月总天数 获取日期当月的天数 64 param dateStr
  • 日常问题(1)——Mysql中not in 会过滤null值的行

    结论 xff1a 使用not in时应注意该字段是否存在null值得情况 xff0c 因为使用时会将null值得行过滤掉 not in使用时会过滤字段为null值得行 in 不会统计null值得行 xff0c 不受null值影响 原因 xf
  • 解决:Docker下运行Mysql出现:无法登陆问题以及无法加载身份验证的问题

    前言 用于帮助大家解决问题 xff0c 拒绝转载 问题 无法加载身份验证插件 caching sha2 password Authentication plugin span class token string 39 caching sh
  • Windows wsl2安装Ubuntu

    wsl Windows Subsystem for Linux 即适用于Windows的Linux子系统 xff0c 是一个实现在Windows 10 11上运行原生Linux的技术 wsl2 为其迭代版本 xff0c 可以更好的在Wind
  • MySQL删除表数据 MySQL清空表命令 3种方法

    一 MySQL清空表数据命令 xff1a truncate SQL语法 xff1a truncate table 表名 注意 xff1a 不能与where一起使用 truncate删除数据后是不可以rollback的 truncate删除数
  • HOG特征(Histogram of Gradient)总结

    在做的项目有用到HOG 43 SVM这一方面的知识 虽然很久之前的内容了 xff0c 所以记录一下 1 HOG特征 xff1a 方向梯度直方图 xff08 Histogram of Oriented Gradient HOG xff09 特