SURF Speeded Up Robust Features

SURF算法的经典原文，SURF (Speeded Up Robust Features)也是一种类似于SIFT的兴趣点检测及描述子算法。其通过Hessian矩阵的行列式来确定兴趣点位置，再根据兴趣点邻域点的Haar小波响应来确定描述子，其描述子大小只有64维（也可以扩展到128维，效果更好），是一种非常优秀的兴趣点检测算法。我的博客里面有SURF的算法详解，欢迎相互交流>_<
406 H. Bay, T. Tuytelaars, and L. Van gool coined HarrisLaplace and HessianLaplace Il. They used a(scaleadapted) Harris measure or the determinant of the hessian matrix to select the location and the Laplacian to select the scale. Focusing on speed, Lowe12 approxi mated the Laplacian of Gaussian (Log) by a Difference of Gaussians(DoG filter Several other scaleinvariant interest point detectors have been proposed. Ex amples are the salient region detector proposed by Kadir and Brady [13, which maximises the entropy within the region, and the edgebased region detector pro posed by Jurie et al. 14. They seem less amenable to acceleration thougH several affineinvariant feature detectors have been proposed that can cope with longer viewpoint changes. However, these fall outside the scope of this paper By studying the existing detectors and from published comparisons 15 18 we can conclude that(1)Hessianbased detectors are more stable and repeat able than their Harrisbased counterparts. Using the determinant of the He essman matrix rather than its trace(the Laplacian) seems advantageous, as it fires less on elongated, illlocalised structures. Also,(2)approximations like the Dog can bring speed at a low cost in terms of lost accuracy Feature Descriptors. An even larger variety of feature descriptors has been proposed, like Gaussian derivatives 16, moment invariants [17, comple tures1819, steerable filters 20, phasebased local features 21, and descrip tors representing the distribution of smallerscale features within the interest point neighbourhood. The latter, introduced by Lowe 2, have beer outperform the others 7. This can be explained by the fact that they capture a substantial amount of information about the spatial intensity patterns, while t the same time being robust to small deformations or localisation errors. The descriptor in 2, called SIFT for short, computes a histogram of local oriented gradients around the interest point and stores the bins in a 128dimensional vector(8 orientation bins for each of the 4 x 4 location bins) Various refinements on this basic scheme have been proposed Ke and suk thankar 4 applied PCA on the gradient image This PCASIFT yields a 36 dimensional descriptor which is fast for matching, but proved to be less distinc tive than SIFT in a second comparative study by Mikolajczyk et al. 8 and slower feature computation reduces the effect of fast matching. In the same paper 8 the authors have proposed a variant of sifT, called gloh, which proved to be even more distinctive with the same number of dimensions. However GLOh is computationally more expensive The sift descriptor still seems to be the most appealing descriptor for prac tical uses, and hence also the most widely used nowadays. It is distinctive and relatively fast, which is crucial for online applications. Recently, Se et al.22 implemented SIFT on a Field Programmable Gate Array(FPga) and improved its speed by an order of magnitude. However, the high dimensionality of the de scriptor is a draw back of sift at the matching step. For online applications on a regular PC, each one of the three steps(detection, description, matching should be faster still. Lowe proposed a bestbinfirst alternative 2 in order to speed up the matching step, but this results in lower accuracy SURF: Speeded Up Robust Features 407 Our approach. In this paper, we propose a novel detectordescriptor scheme coined SURF(SpeededUp Robust Features ). The detector is based on the Hes sian matrix 111, but uses a very basic approximation, just as Dog 2 is a very basic Laplacianbased detector. It relies on integral images to reduce the computation time and we therefore call it the 'FastHessian'detector. The de scriptor. on the other hand. describes a distribution of Haarwavelet responses within the interest point neighbourhood. Again, we exploit integral images for speed. Moreover, only 64 dimensions are used, reducing the time for feature com putation and matching, and increasing simultaneously the robustness. We also present a new indexing step based on the sign of the Laplacian, which increases not only the matching speed, but also the robustness of the descriptor In order to make the paper more selfcontained, we succinctly discuss the con cept of integral images, as defined by 23. They allow for the fast implementation of box type convolution filters. The entry of an integral image I>(x) at a location x=(, y) represents the sum of all pixels in the input image I of a rectangular region formed by the point x and the origin,lx(x)=∑≤0∑01(,j).wth I> calculated, it only takes four additions to calculate the sum of the intensities over any upright, rectangular area, independent of its size 3 FastHessian Detector We base our detector on the Hessian matrix because of its good performance in computation time and accuracy. However, rather than using a different measure for selecting the location and the scale (as was done in the HessianLaplace detector 11), we rely on the determinant of the Hessian for both. Given a point , y) in an image I, the Hessian matrix H(x, o)in x at scale o is defined as follows X, o)LayX,o Lay(x, o)Lyy(x,0 where Laa (, o) is the convolution of the Gaussian second order derivative aarzg(o)with the image I in point x, and similarly for Lay(x, o) and Lyy(x, 0) Gaussians are optimal for scalespace analysis, as shown in 24. In practice however, the Gaussian needs to be discretised and cropped(Fig. Ileft half), and even with gaussian filters aliasing still occurs as soon as the resulting images are subsampled. Also, the property that no new structures can appear while going to lower resolutions may have been proven in the 1D case, but is known to not apply in the relevant 2D case 25. Hence, the importance of the Gaussian seems to have been somewhat overrated in this regard, and here we test a simpler alternative As gaussian filters are nonideal in any case, and given Lowe's success with LoG approximations, we push the approximation even further with box filters(Fig. I right half). These approximate second order Gaussian derivatives, and can be evaluated very fast using integral images, independently of size. As shown in the results section, the performance is comparable to the one using the discretised and cropped gaussians 408 H. Bay, T. Tuytelaars, and L. Van gool Fig 1. Left to right: The(discretised and cropped)Gaussian second order partial derivatives in ydirection and ydirection, and our approximations thereof using bo filters. The grey regions are equal to zero The 9 x9 box filters in Fig. Iare approximations for Gaussian second order derivatives with o= 1.2 and represent our lowest scale (i.e. highest spatial resolution. We denote our approximations by Drr, D. and Dra. The weights applied to the rectangular regions are kept simple for computational efficiency, but we need to further balance the relative weights in the expression for the Hessian's determinant with av(1)P Da(9)F=0.912.0.9, where aFis the Frobenius norm. This yields det(h approx Dra Dyy (0.9Dxy Furthermore, the filter responses are normalised with respect to the mask size This guarantees a constant Frobenius norm for any filter size Scale spaces are usually implemented as image pyramids. The images are repeatedly smoothed with a gaussian and subsequently subsampled in order to achieve a higher level of the pyramid. Due to the use of box filters and integral images, we do not have to iteratively apply the same filter to the output of a previously filtered layer, but instead can apply such filters of any size at exactly the same speed directly on the original image, and even in parallel(although the latter is not exploited here). Therefore, the scale space is analysed by upscaling the filter size rather than iteratively reducing the image size. The output of the above 9 x9 filter is considered as the initial scale layer, to which we will refer as scale s= 1.2(corresponding to Gaussian derivatives with o= 1.2). The following layers are obtained by filtering the image with gradually bigger masks, taking into account the discrete nature of integral images and the specific structure of our filters. Specifically, this results in filters of size9×9,15×15,21×21,27×27, etc. At larger scales, the step between consecutive filter sizes should also scale accordingly. Hence, for each new octave, the filter size increase is doubled(going from 6 to 12 to 24 ). Simultaneously, the sampling intervals for the extraction of the interest points can be doubled as well As the ratios of our filter layout remain constant after scaling, the approx imated Gaussian derivatives scale accordingly. Thus, for example, our 27 X 27 filter corresponds to o =3 X 1.2=3.6=s. Furthermore, as the Frobenius norm remains constant for our filters, they are already scale normalised 26 In order to localise interest points in the image and over scales, a non maximum suppression in a 3 x 3 x 3 neighbourhood is applied. The maxima of the determinant of the Hessian matrix are then interpolated in scale and SURF: Speeded Up robust Features 409 Fig. 2. Left: Detected interest points for a Sunflower field. This kind of scenes shows clearly the nature of the features from Hessianbased detectors. Middle: Haar wavelet ypes used for SURF. Right: Detail of the Graffiti scene showing the size of the de scriptor window at different scales image space with the method proposed by Brown et al. 27. Scale space inter polation is especially important in our case, as the difference in scale between the first layers of every octave is relatively large. Fig. 2(left )shows an example of the detected interest points using our FastHessian'detector 4 SURF Descriptor he good performance of SiFT compared to other descriptors 8 is remarkable Its mixing of crudely localised information and the distribution of gradient re lated features seems to yield good distinctive power while fending off the effects of localisation errors in terms of scale or space. Using relative strengths and orientations of gradients reduces the effect of photometric changes The proposed surF descriptor is based on similar properties, with a complex ity stripped down even further. The first step consists of fixing a reproducible orientation based on information from a circular region around the interest point. Then, we construct a square region aligned to the selected orientation and extract the surf descriptor from it. These two steps are now explained in turn. Furthermore, we also propose an upright version of our descriptor(U SURF that is not invariant to image rotation and therefore faster to com pute and better suited for applications where the camera remains more or less horizontal 4.1 Orientation Assignment In order to be invariant to rotation, we identify a reproducible orientation for the interest points. For that purpose, we first calculate the Haarwavelet responses in and y direction, shown in Fig. 2 and this in a circular neighbourhood of radius 6s around the interest point, with s the scale at which the interest point was detected. Also the sampling step is scale dependent and chosen to be s. In keeping with the rest, also the wavelet responses are computed at that current 410 H. Bay,T. Tuytelaars, and L. Van Gool scale s. Accordingly, at high scales the size of the wavelets is big Therefore, we use again integral images for fast filtering. Only six operations are needed to compute the response in a or y direction at any scale. The side length of the wavelets is 4s Once the wavelet responses are calculated and weighted with a gaussian(o 2.5s) centered at the interest point, the responses are represented as vectors in a space with the horizontal response strength along the abscissa and the vertical response strength along the ordinate. The dominant orientation is estimated by calculating the sum of all responses within a sliding orientation window covering an angle of 3. The horizontal and vertical responses within the window are summed. The two summed responses then yield a new vector. The longest such vector lends its orientation to the interest point. The size of the sliding window is a parameter, which has been chosen experimentally. Small sizes fire on single dominating wavelet responses, large sizes yield maxima in vector length that are not outspoken. Both result in an unstable orientation of the interest region. Note the USurF skips this step 4.2 Descriptor Components For the extraction of the descriptor, the first step consists of constructing a square region centered around the interest point, and oriented along the orienta tion selected in the previous section For the upright version. this transformation is not necessary. The size of this window is 20s. Examples of such square regions are illustrated in Fig. 2 The region is split up regularly into smaller 4x 4 square subregions. This keeps important spatial information in. For each subregion, we compute a few simple features at 5 X5 regularly spaced sample points. For reasons of simplicity, we call dr the Haar wavelet response in horizontal direction and dy the Haar wavelet response in vertical direction(filter size 2s ). "Horizontal"and"vertical"here is defined in relation to the selected interest point orientation. To increase the robustness towards geometric deformations and localisation errors, the responses dr and dy are first weighted with a Gaussian(o=3. 3s) centered at the interest point Then, the wavelet responses d and dy are summed up over each subregion and form a first set of entries to the feature vector. In order to bring in in formation about the polarity of the intensity changes, we also extract the sum of the absolute values of the responses, dal and d,. Hence, each subregion has a fourdimensional descriptor vector v for its underlying intensity structure C∑dx,∑dy,∑ld,∑dy). This results in a descriptor vector for all4×4 subregions of length 64. The wavelet responses are invariant to a bias in illumi nation(offset). Invariance to contrast(a scale factor) is achieved by turning the descriptor into a unit vector Fig. B] shows the properties of the descriptor for three distinctively different mage intensity patterns within a subregion. One can imagine combinations of such local intensity patterns, resulting in a distinctive descriptor SURF: Speeded Up robust Features 411 dx ∑d Fig 3. The descriptor entries of a subregion represent the nature of the underlying intensity pattern. Left: In case of a homogeneous region, all values are relatively low Middle: In presence of frequencies in direction, the value of 2ldxI is high, but all others remain low. If the intensity is gradually increasing in direction, both values ∑dand∑ dxl are high 令SURF SURF DSURF36 D.SURF36 808 仝SURF128 8 0. 8ASURF128 米SIFT X GLOH X GLOH 0.6 O PCASIFT 20.6+.o PCASIFT 302 ::4,岭的04A 0 o…o 0.6 0.6 precisIo 1precision Fig. 4. The recall vs. (1precision) graph for different binning methods and two different matching strategies tested on the 'Graffiti sequence(image 1 and 3) with a view change of 30 degrees, compared to the current descriptors. The interest points are computed with our 'Fast Hessian'detector. Note that the interest points are not affine invariant The results are therefore not comparable to the ones in SURF128 correspond to the extended descriptor. Left: Similaritythresholdbased matching strategy. Right Nearestneighbourratio matching strategy(See section 5 In order to arrive at these surf descriptors, we experimented with fewer and more wavelet features, using d< and da, higherorder wavelets, PCA, median values, average values, etc. From a thorough evaluation, the proposed sets turned out to perform best. We then varied the number of sample points and subregions The 4 x 4 subregion division solution provided the best results Considering finer subdivisions appeared to be less robust and would increase matching times too much. On the other hand, the short descriptor with 3 X 3 subregions(SURF36 performs worse, but allows for very fast matching and is still quite acceptable in comparison to other descriptors in the literature. Fig. 4 shows only a few of these comparison results(SURF128 will be explained shortly 412 H. Bay,T. Tuytelaars, and L. Van Gool We also tested an alternative version of the surf descriptor that adds a couple of similar features (SURF128 ). It again uses the same sums as before but now splits these values up further. The sums of dx and da are computed separately for dy<0 and dy 20. Similarly, the sums of y and y are split up according to the sign of d r, thereby doubling the number of features. The descriptor is more distinctive and not much slower to compute. but slower to match due to its higher dimensionalit In Figure 4 the parameter choices are compared for the standard'Graffiti scene, which is the most challenging of all the scenes in the evaluation set of Mikolajczy k8, as it contains outofplane rotation, inplane rotation as well as brightness changes. The extended descriptor for 4 x 4 subregions (SURF128) comes out to perform best. Also, SURF performs well and is faster to handle Both outperform the existing stateoftheart For fast indexing during the matching stage, the sign of the Laplacian (i.e the trace of the Hessian matrix) for the underlying interest point is included Typically, the interest points are found at blobtype structures. The sign of the Laplacian distinguishes bright blobs on dark backgrounds from the reverse situation. This feature is available at no extra computational cost, as it was already computed during the detection phase. In the matching stage, we only compare features if they have the same type of contrast. Hence, this minimal information allows for faster matching and gives a slight increase in performance 5 Experimental Results First, we present results on a standard evaluation set, fot both the detector and the descriptor. Next, we discuss results obtained in a reallife object recognition application. All detectors and descriptors in the comparison are based on the original implementations of authors Standard Evaluation. We tested our detector and descriptor using the image sequences and testing software provided by Mikolajczyk 1. These are images of real textured and structured scenes. Due to space limitations, we cannot show the results on all sequences. For the detector comparison, we selected the two viewpoint changes(Graffiti and Wall), one zoom and rotation(Boat)and lighting changes(Leuven)(see Fig. 6 discussed below). The descriptor evaluations are shown for all sequences except the Bark sequence(see Fig 4 and For the detectors, we use the repeatability score, as described in 9.This indicates how many of the detected interest points are found in both images relative to the lowest total number of interest points found (where only the part of the image that is visible in both images is taken into account) The detector is compared to the difference of Gaussian(Dog) detector by e2, and the Harris and HessianLaplace detectors proposed by Mikola jczyk15. The number of interest points found is on average very similar for all detectors. This holds for all images, including those from the database used in http://www.robots.ox.ac.uk/vgg/research/affinE/ SURF: Speeded Up robust Features 413 Table 1. Thresholds, number of detected points and calculation time for the detectors in our comparison.(First image of Graffiti scene, 800 X 640) detecto threshold nb of points comp time(msec) FastHessian 1418 120 HessianLaplace 1000 1979 650 HarrisLaplace 2500 1664 1800 DOG default 1520 400 the object recognition experiment, see Table l for an example. As can be seen our FastHessian' detector is more than 3 times faster that DoG and 5 times faster than HessianLaplace. At the same time, the repeatability for our detector is comparable(Graffiti, Leuven, Boats) or even better(Wall) than for the com petitors. Note that the sequences Graffiti and Wall contain outofplane rotation resulting in affine deformations, while the detectors in the comparison are only rotation and scale invariant. Hence, these deformations have to be tackled by the overall robustness of the features The descriptors are evaluated using recall(1precision) graphs, as in 4 and 8. For each evaluation, we used the first and the fourth image of the sequence, except for the Graffiti (image 1 and 3) and the Wall scene (image 1 and 5), corresponding to a viewpoint change of 30 and 50 degrees, respectively In figures 4and 7 we compared our SURF descriptor to GLOH, SIFT and PCA SIFT, based on interest points detected with our FastHessian detector. SURF outperformed the other descriptors for almost all the comparisons. In Fig 4] we compared the results using two different matching techniques, one based on the similarity threshold and one based on the nearest neighbour ratio(see 8 for a discussion on these techniques ). This has an effect on the ranking of the descriptors, yet SURF performed best in both cases. Due to space limitations, only results on similarity threshold based matching are shown in Fig. 7 as this technique is better suited to represent the distribution of the descriptor in its feature space 8 and it is in more general use The SurF descriptor outperforms the other descriptors in a systematic and significant way, with sometimes more than 10% improvement in recall for the same level of precision. At the same time, it is fast to compute(see Table 2) The accurate version(SURF128), presented in section 4 showed slightly ter results than the regular SURF, but is slower to match and therefore less interesting for speeddependent applications Table 2. Computation times for the joint detector descriptor implementations, tested on the first image of the graffiti sequence. The thresholds are adapted in order to detect the same number of interest points for all methods. These relative speeds are also representative for other images USURFISURF SURF128SIFT time(ms):2553543911036

20161009
 2.76MB
SpeededUp Robust Features (SURF)算法的原文
20140730SURF算法的原文对于SURF算法需要更深理解的可以下下来仔细研读
 5.12MB
SpeededUp Robust Features(SURF)算法的原理和OpenSURF源码
20161214内含从国外网站上下的开源C++代码（以OpenCV为基础，但不是直接调用OpenCVC里面的SURF）与原理文档，算法步骤十分明确，注释十分到位，运行环境为VS2008+OpenCV2，希望对深入学习
 339KB
Good Features to Track
20120312关于klt算法的一篇重要论文，Jianbo Shi and Carlo Tomasi. Good Features to Track. IEEE Conference on Computer Visi
 104.76MB
xfeatures2d.rar
20200413boostdesc_bgm.i boostdesc_bgm_bi.i boostdesc_bgm_hd.i boostdesc_lbgm.i boostdesc_binboost_064.i boos
 3.78MB
Autonomie R12 New Features
20131114the increased complexity and diversity of the technologies led to a partnership, initiated by Genera
 8KB
detectBRISKFeatures.m
20160530detectBRISKFeatures.m BRISK特征，MATLAB实现
初级玩转Linux+Ubuntu(嵌入式开发基础课程)
20160626课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解： 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用
玩转Linux：常用命令实例指南
20190928人工智能、物联网、大数据时代，Linux正有着一统天下的趋势，几乎每个程序员岗位，都要求掌握Linux。本课程零基础也能轻松入门。 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识，每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂，简洁流畅，适合0基础以及对Linux掌握不熟练的人学习； 【限时福利】 1）购课后按提示添加小助手，进答疑群，还可获得价值300元的编程大礼包！ 2）本月购买此套餐加入老师答疑交流群，可参加老师的免费分享活动，学习最新技术项目经验。  29元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。
 1KB
matlab随机森林回归模型代码
20200319matlab软件随机森林法回归模型代码，可直接matlab打开运行！精简版，包括数据导入、模型建立、误差计算、保存模型，绘制对比图的多个功能！
MATLAB基础入门课程
20170913MATLAB基础入门课程，系统介绍MATLAB的基础知识。 主要从数组、运算、结构和绘图等几方面进行讲解 简单易懂，轻松入门MATLAB
 187KB
2秒内 计算10亿内素数筛法
20100818最快的素数筛法, 2秒初始化后在奔腾4上能算出2^31 以内素数个数,之后10ms内算出任意 02^31之间素数个数，可快速的计算第k个素数, 枚举区间(m  n < 10^5)以内素数等 还可以
 168KB
BP神经网络预测超详细
20190301基于BP神经网络，测试集辛烷值含量预测结果对比
YOLOv3目标检测实战：训练自己的数据集
20190529YOLOv3是一种基于深度学习的端到端实时目标检测方法，以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目：足球目标检测（单目标检测）、梅西目标检测（单目标检测）、足球和梅西同时目标检测（两目标检测）。 本课程的YOLOv3使用Darknet，在Ubuntu系统上做项目演示。包括：安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架，依赖少，可移植性好，值得深入探究。 除本课程《YOLOv3目标检测实战：训练自己的数据集》外，本人推出了有关YOLOv3目标检测的系列课程，请持续关注该系列的其它课程视频，包括： 《YOLOv3目标检测实战：交通标志识别》 《YOLOv3目标检测：原理与源码解析》 《YOLOv3目标检测：网络模型改进方法》 敬请关注并选择学习！
高性能MySQL实战课
20200521限时福利1：原价 129 元，最后2天仅需 69 元！后天涨价至98元 限时福利2：购课进答疑群专享柳峰（刘运强）老师答疑服务 限时福利3：购课添加助教领取价值 800 元的编程大礼包 为什么需要掌握高性能的MySQL实战？ 由于互联网产品用户量大、高并发请求场景多，因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能，也是衡量一个程序员能力和薪资的标准之一。 为了让大家快速系统了解高性能MySQL核心知识全貌，我为你总结了「高性能 MySQL 知识框架图」,帮你梳理学习重点，建议收藏！ 【课程设计】 课程分为四大篇章，将为你建立完整的 MySQL 知识体系，同时将重点讲解 MySQL 底层运行原理、数据库的性能调优、高并发、海量业务处理、面试解析等。 一、性能优化篇： 主要包括经典 MySQL 问题剖析、索引底层原理和事务与锁机制。通过深入理解 MySQL 的索引结构 B+Tree ，学员能够从根本上弄懂为什么有些 SQL 走索引、有些不走索引，从而彻底掌握索引的使用和优化技巧，能够避开很多实战中遇到的“坑”。 二、MySQL 8.0新特性篇： 主要包括窗口函数和通用表表达式。企业中的许多报表统计需求，如果不采用窗口函数，用普通的 SQL 语句是很难实现的。 三、高性能架构篇： 主要包括主从复制和读写分离。在企业的生产环境中，很少采用单台MySQL节点的情况，因为一旦单个节点发生故障，整个系统都不可用，后果往往不堪设想，因此掌握高可用架构的实现是非常有必要的。 四、面试篇： 程序员获得工作的第一步，就是高效的准备面试，面试篇主要从知识点回顾总结的角度出发，结合程序员面试高频MySQL问题精讲精练，帮助程序员吊打面试官，获得心仪的工作机会。

博客
Node.js安装及环境配置(win10)
Node.js安装及环境配置(win10)

博客
【设计模式】策略模式
【设计模式】策略模式

博客
SpringBoot 快速开发手册
SpringBoot 快速开发手册

下载
使用Python读写文本文件及编写简单的文本编辑器
使用Python读写文本文件及编写简单的文本编辑器

学院
Linux与shell
Linux与shell

学院
深度学习PyTorch实战系列（框架+大项目实战）
深度学习PyTorch实战系列（框架+大项目实战）

学院
C语言编程全家桶
C语言编程全家桶

下载
python的else子句使用指南
python的else子句使用指南

下载
Android应用开发中Action bar编写的入门教程
Android应用开发中Action bar编写的入门教程

博客
SpringBoot整合 RabbitMQ
SpringBoot整合 RabbitMQ

博客
MySQL系列：聚集索引和非聚集索引区别
MySQL系列：聚集索引和非聚集索引区别

下载
TabLayout+ViewPage实现菜单切换demo
TabLayout+ViewPage实现菜单切换demo

博客
Java多态十六：匿名内部类
Java多态十六：匿名内部类

下载
举例讲解Python中的list列表数据结构用法
举例讲解Python中的list列表数据结构用法

学院
自然语言处理处理工程师实战系列
自然语言处理处理工程师实战系列

下载
Python中random模块生成随机数详解
Python中random模块生成随机数详解

博客
LeetCode：387. 字符串中的第一个唯一字符
LeetCode：387. 字符串中的第一个唯一字符

博客
【Vuetify】基础（二）
【Vuetify】基础（二）

博客
天池金融风控贷款违约挑战赛 Task3 特征工程
天池金融风控贷款违约挑战赛 Task3 特征工程

博客
竞品分析（哔哩哔哩与爱奇艺）
竞品分析（哔哩哔哩与爱奇艺）

学院
基于SSM框架智慧物业项目开发全程实录(全程实战附源码)
基于SSM框架智慧物业项目开发全程实录(全程实战附源码)

博客
2020.9.21
2020.9.21

下载
Python中的if、else、elif语句用法简明讲解
Python中的if、else、elif语句用法简明讲解

博客
畅购
畅购

学院
从无到有搭建互联网技术架构和运维架构
从无到有搭建互联网技术架构和运维架构

学院
手把手教你学Python（基础篇）
手把手教你学Python（基础篇）

学院
MATLAB人脸定位识别系统【附GUI+源码】
MATLAB人脸定位识别系统【附GUI+源码】

学院
C++专业课程第2期
C++专业课程第2期

下载
python中map()与zip()操作方法
python中map()与zip()操作方法

学院
C语言实现自动刷弹幕程序！
C语言实现自动刷弹幕程序！