GraspNet: An Efficient Convolutional Neural Network for Real-time Grasp Detection for Low-powered Devices

会议:(IJCAI-2018年)
文章链接

摘要:

最近关于抓取检测的研究主要集中在通过深度CNN模型来提高准确度,但这是以牺牲大量内存和计算资源为代价的。在本文中,我们提出了一种高效的CNN结构,该结构在保持紧凑的模型设计的同时,实时产生高抓取检测精度。为了实现这一点,我们引入了一种称为GRASPNet的CNN体系结构,该体系结构有两个主要分支:i)编码器分支,该分支对输入图像进行下采样,使用我们新颖的Dilated Dense Fire(DDF)模块——具有密集残余连接的挤压和扩张卷积。ii)解码器分支,使用反卷积和fuse connections将编码器分支的输出上采样到原始图像大小。 我们使用离线数据集和真实世界的机器人抓取设置评估了GraspNet的抓取检测。在实验中,我们表明,GraspNet在嵌入式GPU硬件(Nvidia Jetson TX1)上具有实时推理速度,与最先进的计算效率CNN模型相比,具有竞争性的抓取检测精度,适用于低功耗设备。

1引言

抓取检测是一项视觉识别任务,其目标是检测环境中物体图像中的可抓取区域[Lenzet al.,2015]。检测到的抓取然后用于高级任务(例如轨迹规划),以便与对象交互。因此,抓取检测是一个关键步骤,因为抓取管道的后续步骤取决于在此步骤中计算的坐标。然而,由于目标空间布局的变化、摄像机视点的变化、局部遮挡、背景杂波以及低计算复杂度和快速运行的要求等因素,真实世界中的抓取检测具有挑战性。然而,由于目标空间布局的变化、摄像机视点的变化、局部遮挡、背景杂波以及低计算复杂度和快速运行的要求等因素,真实世界中的抓取检测具有挑战性。随着深度学习的最新进展,[Levineet等人,2016年;Redmon和Angelova,2015年]等方法在康奈尔大学GRAP数据集上证明了最先进的GRAP检测精度[Lenzet等人,2015年]。这些方法的成功在很大程度上归功于大量标记训练数据的可用性,以及典型的大型卷积神经网络(CNN)架构(例如,[Lenzet al.,2015]模型的数百万可训练参数)。然而,大型CNN模型具有较高的计算要求,这限制了它们在计算资源有限的应用中的使用。另一方面,较小的CNN架构(例如[Iandolaet al.,2016;Howardet al.,2017])专注于实现实时速度(通过减少网络参数),但以较低的识别准确率为代价。实时机器人应用要求高精度和快速推理速度,以实现可靠的操作。因此,设计在一定计算量内达到最佳精度的CNN模型至关重要。在本文中,我们提出了一种新的CNN模型(称为GRASPNET),它在嵌入式GPU硬件上实现了与最先进的CNN模型相比具有竞争力的抓取检测精度和实时推理速度。总之,这项工作的贡献如下:
        1) 我们将抓取检测的任务表述为像素级标记,称为grasp affordance segmentation(第3节),它分割物体表面上的可抓取区域。为了实现这一点,我们提出了一种新的CNN架构,称为GRASPNET(第4节),它使用RGB-D图像生成可抓取区域的像素级标记。
        2)GraspNet的核心构建组件是我们的新型卷积块,称为Dilated Dense Fire(DDF)模块(第4.1节),它由通过dense residual connections 互连的压缩卷积和扩张卷积组成。压缩和扩展卷积使网络能够在保持紧凑设计的同时聚合多尺度上下文信息。所提出的dense residual 连通性通过跨多个层重用所学习的特征来实现对整个网络的深度监控,从而减少过度拟合。
        3) 我们使用具有挑战性的RGB-D对象数据集(第5.1节)对GraspNet的抓取检测进行了评估,结果表明,与最先进的计算效率高的CNN模型(第5节)相比,GraspNet在更少的训练参数、更快的推理速度和具有竞争力的抓取检测精度方面是高效的。我们还演示了在现实世界机器人抓取设置(第6节)中,在低功耗嵌入式GPU(Nvidia Jetson TX1)上进行抓取检测的GraspNet。

2 相关工作

我们简要回顾了有关抓取检测和记忆效率CNN模型的最新研究成果。

2.1 抓取检测

机器人抓取的最新研究主要集中于使用深度学习进行抓取检测[Kumra和Kanan,2017]。在这种情况下,[Redmon和Angelova,2015;Asifet al.,2017b]等方法专注于直接在图像中预测抓取矩形(由其位置、方向、宽度和高度定义)。为了克服这一挑战,在[Levineet al.,2016]中提出了另一种方法,作者使用物理模拟引擎[Levineet al.,2016]生成训练数据,以学习GRAP分数。最近,[Johnset al.,2016]的工作提出了另一种数据生成方法,其中强化学习用于通过在真实机器人上测试抓取来学习视觉伺服的一种形式。然而,他们的方法需要几个星期的训练,使用多个机器人并行工作。因此,他们的方法对于低功耗嵌入式硬件缺乏可扩展性和易部署性。虽然大多数讨论的方法依赖于在大量训练数据上充分训练的模型来实现高识别精度,但我们提出了一种高效的CNN体系结构,该体系结构实时实现高抓取检测精度,并且在使用有限的训练数据从头开始训练时不会出现过度拟合。

2.2 计算高效的CNN模型(Computation-efficient CNN Models)

在过去几年中,深度神经网络的研究主要集中在开发高效的CNN体系结构,以部署在嵌入式设备上。在这种情况下,一项工作集中在培训后减小模型尺寸。例如,[Liet al.,2016;Hubara et al.,2016]中的方法建议在训练期间或之后删减冗余权重或量化权重。另一项工作集中于探索传统CNN架构的计算效率变体。在这篇文章中, SqueezeNet [Iandolaet al., 2016] 介绍了一种实现与著名的AlexNet[Krizhevskyet al., 2012] 相当的分类精度的体系结构,大大减少了训练参数。ResNet[Sheet al.,2016]提出了residual blocks方面的瓶颈结构(其中输入的非线性变换及其标识通过跳过连接进行组合),并实现了更高的分类精度。 最近,DenseNets[Huanget al.,2017]引入了一种架构,该架构迭代连接来自前几层的输出,并与传统CNN模型相比实现了更高的识别精度。然而,在DenseNets中,特征通道在整个网络中的迭代增长需要较高的计算资源,并且产生较低的推理速度(特别是在嵌入式硬件上)。在本文中,我们提出了一种CNN结构,该结构针对快速推理和高精度进行了优化。我们的CNN模型基于压缩[Iandolaet al.,2016]和扩展[Y u和Koltun,2016]卷积的思想,通过编码器-解码器架构内的密集[Huanget al.,2017]和剩余[Heet al.,2016]连接互连[Shelhamer et al.,2017]。在实验中,我们表明,我们的CNN模型在抓取检测精度和推理速度方面优于最先进的计算效率CNN模型

3 Proposed Grasp Affordance Segmentation

给定一个输入图像 I∈RC×W×H\mathcal{I}∈\mathcal{R}^{C×W×H}I∈RC×W×H,其中C、W和H表示输入的通道数、宽度和高度,我们用Y\mathcal{Y}Y定义其相应的标签Y∈Rnc×W×H\mathcal{Y} \in \mathcal{R}^{n_{c} ×W×H}Y∈Rnc​×W×H,其中nc=2\mathcal{n_c}=2nc​=2表示类的数量(抓取前景和背景)。我们通过最小化交叉熵损失,以完全监督的方式训练CNN模型[Shelhameret等人,2017]。具体而言,我们的NsN_sNs​标记训练图像损失函数如下所示:
L=1Ns∑i=1NsSi,\mathcal{L}=\frac{1}{N_s}\sum_{i=1}^{N_s}S_i, L=Ns​1​i=1∑Ns​​Si​,
其中,Si∈R(nc×W×H)S_i \in \mathcal{R}^{(n_c×W×H)}Si​∈R(nc​×W×H)表示采样图像i的CNN归一化分数图。通过将SoftMax应用于网络最后一层的输出来计算:
Si=−logeyiTf(xi)+bi∑j=1nceWjTf(xi)+bi,S_i=-log \frac{e^{T}_{y_i}f(x_i)+b_i} {\textstyle \sum_{j=1}^{n_c}e^{W^T_jf(x_i)+b_i}},Si​=−log∑j=1nc​​eWjT​f(xi​)+bi​eyi​T​f(xi​)+bi​​,
其中,f(xi)f(x_i)f(xi​)表示样本xix_ixi​的CNN网络层的输出。术语yi,W,by_i,W,byi​,W,b分别表示相应层的类别标签、权重和偏差。为了根据预测分数(S)(S)(S)生成机器人抓取,我们首先生成一个分割掩模M=argmaxy(S)\mathcal{M}=argmax_y(S)M=argmaxy​(S)。接下来,我们计算以M\mathcal{M}M为单位的最大blob的长轴和短轴。最后,我们计算一个5维抓取框RRR,如下所示:
R=[Rx,Ry,Rw,Rh,Rθ],R=[R_x,R_y,R_w,R_h,R_\theta],R=[Rx​,Ry​,Rw​,Rh​,Rθ​],
其中,Rx,RyR_x,R_yRx​,Ry​表示抓取的质心,该质心由blob(颜色的部分)的质心给出。抓取宽度(Rw)(Rw)(Rw)等于blob沿其短轴的长度加上40个像素。抓取高度(Rh)(R_h)(Rh​)设置为30像素。抓取方向(Rθ)(R_θ)(Rθ​)由图2-C所示的blob的x轴和长轴之间的角度给出。给定目标对象的抓取表示RRR,机械臂(使用相机校准)使用抓取位置(Rx,Ry)(R_x,R_y)(Rx​,Ry​)和抓取方向RθR_θRθ​分别定位和定向其抓取器,以抓取目标对象。

4 Proposed CNN Model - GraspNet (Fig. 1)

图1显示了CNN模型的总体架构,该模型由两个主要分支组成:i)编码器分支(图1-A)将图像作为输入(如图1-E所示),将其通过我们的Dilated Dense Fire(DDF)模块,并生成下采样特征图。ii)解码器分支(图1-B),其获取编码器分支的下采样输出,将其通过反卷积层,并生成输入图像大小的预测图,如图1-F所示。

4.1 Proposed Dilated Dense Fire Module (Fig. 1-C)

图1-C显示了我们的DDF模块的体系结构,该模块由两个通过密集残差连接互连的Fire blocks、一个卷积层:压缩通道的超参数α和膨胀(Dilation)超参数δ,以及dropout组成[Srivastavaet al.,2014]。我们的DDF模块的Fire block是[Iandolaet al.,2016]Fire block的增强版,它由一个压缩卷积层(带1×1过滤器)和一个扩展层(带1×1和3×3过滤器)组成。我们通过在图1-D所示的Fire block输出处加入批量归一化(BN)[Ioffe和Szegedy,2015],增强了[Iandolaet al.,2016]的挤压卷积的有效性。这使得网络能够减少训练过程中的偏移效应,并在不牺牲低参数设计的情况下生成高度区分的特征映射。

提出了密集连通性残差结构Proposed Dense Residual Connectivity
        为了增加网络中各层之间的信息流,我们通过按元素求和和级联,以前馈方式组合来自Fire blocks的输出,如图1-C所示。Xl∈RNf×Wf×HFX_l∈R^{N_f×W_f×H_F}Xl​∈RNf​×Wf​×HF​表示lthl^{th}lthFire block的输出,其中Nf、Wf、HfN_f、W_f、H_fNf​、Wf​、Hf​分别表示XlX_lXl​的深度、宽度和高度。对于输入H,DDF模块的输出G∈RNg×Wg×HgG∈R^{N_g×W_g×H_g}G∈RNg​×Wg​×Hg​,由下式给出:
G=F([H,X1,X2,(X1+X2)]),G= \mathcal{F} ([H,X_1,X_2,(X_1+X_2)]),G=F([H,X1​,X2​,(X1​+X2​)]),
其中,[··]表示串联,+表示元素求和。F(·)表示一个非线性变换函数,该函数由一个3×3卷积和一个校正线性单元(ReLU)组成。我们提出的密集连通性残差结构(dense residual nonnectivity)有几个优点,包括:i) 它增加了后续层输入的变化,导致隐含的深层监督。ii)重用由不同层学习的特征对目标函数实施正则化效果,集成的dropout块减少过拟合。

提出了网络压缩(Proposed Network Compression)
        为了提高模型的紧凑性并实现较小的内存占用,我们在网络的每个DDF模块上减少了特征通道的数量和特征映射的空间分辨率。为此,我们引入了具有两个集成超参数的3×3卷积层(在DDF模块的末端,如图1-C所示)。通道压缩参数α和膨胀参数δ分别控制DDF模块输出特征映射的深度和空间分辨率。对于给定的α∈(0.1,0.5,1.0)和δ∈(4,8,16),DDF模块的输出变为¥
G∈RαNg×(Wg−2δ)×(Hg−2δ)G∈R^{αN_g×(W_g−2δ)×(H_g−2δ)}G∈RαNg​×(Wg​−2δ)×(Hg​−2δ)。α和δ的默认值设置为0.5和8。在实验(第5.5节)中,我们展示了在不同的α和δ值下所提出的GraspNet的内存大小和准确性之间的权衡。

4.2 实现
我        们使用4×224×224以端到端的方式对GraspNet进行训练——三维的RGB-D图像及其对应的抓取检测框。编码器分支从卷积层conv1开始,然后是最大池和4个DDF模块(DDF1−DDF4)如图1-A所示。每个DDF模块包含两个Fire blocks。在DDF1-DDF4中的Fire blocks的深度分别128、256、384和512。解码器分支使用具有3个反卷积层的DAG拓扑[Shelhameret al.,2017],如图1-B中所示,对特征图进行采样。定义了从编码器到解码器分支的进一步融合连接,以在上采样期间利用来自早期层的细粒度信息。要融合的层首先通过裁剪操作对齐,然后通过图1-B所示的元素总和组合其特征。我们的实施基于Caffe库[Jiafe等人,2014]。训练采用随机梯度下降法(SGD),批量为16,重量衰减为10e-4,动量为0.9,设置300K迭代。初始学习率设置为1e-3,在总迭代次数的50%和75%时除以10。

5 实验(Experiments)

5.1 数据集(Datasets)

GraspSeg Dataset
        为了评估GraspNet在抓取启示分割中的作用,我们引入了一个新的对象抓取数据集GraspSeg。它提供了42个对象实例的33188个RGB-D图像,这些对象实例分为15个不同的类别,如图2-A所示。该数据集还提供了6896个室内场景的RGB-D图像以供测试。测试图像包含以不同布局排列的多个对象,如图2-B所示。GraspSeg中的基本事实以像素注释的形式提供,用于抓取启示和对象分割,如图2-D所示。我们使用[Asifet al.,2017a]和[Asifet al.,2016]场景标记框架的扩展版本对数据集进行注释。为了评估,我们使用了[Lenzet al.,2015]的对象分割策略,该策略将对象实例随机分割为训练和验证子集(即训练集和验证集不共享来自同一对象的任何图像)。此拆分策略评估模型对训练期间模型未知的对象的概括程度。GraspSeg数据集对于GRAP检测来说是一个挑战。这是因为,数据集的训练图像包含没有背景信息的单个对象,如图2-A所示。然而,测试图像包含每个图像的多个对象,其中对象彼此接近,产生局部遮挡,如图2-B所示。

Cornell Grasp Dataset
        我们还评估了流行的康奈尔GRAP数据集[Lenzet al.,2015]上GraspNet的抓取检测,该数据集包含240个物体的885个RGB-D图像。根据抓取矩形可以获得基本事实。为了进行评估,我们使用了之前作品中使用的对象分割和图像划分标准[Lenzet al.,2015]。按对象拆分将对象实例随机拆分为训练集和验证集。图像划分将数据集的所有图像随机划分为5份。图像划分策略评估模型对已知对象的新位置和方向的概括程度。

5.2评价指标

Grasp Detection
        我们使用[Jianget al.,2011]中提出的“矩形度量”评估GraspNet的抓取检测。如果:i)预测抓取角度和地面真实值之间的差值小于30。30^。30。,则认为抓取是正确的;ii)预测抓取和基本事实的Jaccard指数高于25%。预测矩形R∗R^*R∗的Jaccard指数和真实矩形RgR^gRg定义为:
J(Rg,R∗)=∣Rg∩R∗∣∣Rg∪R∗∣.J(R^g,R^*)=\frac{|R^g∩R^*|}{|R^g∪R^*|}.J(Rg,R∗)=∣Rg∪R∗∣∣Rg∩R∗∣​.
抓取分割(Affordance Segmentation)
        我们还使用平均频率加权交集(f.w.IU)度量评估了GraspNet在GraspSeg数据集上的可承受性分割。[Shelhameret al.,2017]将其定义为:
f.w.IU=1∑ktk∑iti⋅nii(ti+∑jnij−nii),f.w.IU=\frac{1}{\sum_{k}{t_k}}\sum_{i}\frac{t_i \cdot n_{ii}}{(t_i+\sum_{j}{n_{ij}-n_{ii}})},f.w.IU=∑k​tk​1​i∑​(ti​+∑j​nij​−nii​)ti​⋅nii​​,
其中,nijn_{ij}nij​表示类iii的像素点数预测为类jjj的像素点数,而tit_iti​表示真实分割中的总像素数(iii)。

5.3对GraspSeg数据集的评估


        首先,我们将我们的模型与SqueezeNet的三种变体进行比较[Iandolaet al.,2016]:i)SqueezeNet (vanilla),ii)SqueezeNet (Residual) with residual connections,iii)SqueezeNet1^11 with dilated convolutions, and iv) SqueezeNet2^22 with residual connections and dilated convolutions。 这些实验的结果如表1所示,表明GraspNet在抓取精度方面明显优于SqueezeNet,分别比SqueezeNet1^11和SqueezeNet2^22提高了17%和16%。我们将这些改进归因于建议的DDF模块(第4.1节),其中通过密集连接性残差的特征串联,最大化了网络各层之间信息的变化。这使得GraspNet能够学习到比SqueezeNet更具辨别力的特征[Iandolaet al.,2016],在SqueezeNet[Iandolaet al.,2016]中网络各层之间的信息量是有限的。
        接下来,我们将GraspNet与MobileNet[Howardet al.,2017]和ENet[Paszkeet al.,2016]进行比较。表1显示,与ENet[Paszkeet al.,2016]和MobileNet[Howardet al.,2017]模型相比,我们的GraspNet分别提高了20%和7%的抓取精度,并加快了4倍和6倍的推理速度。最后,我们将我们的模型与50层ResNet[Sheet al.,2016]和SegNet[Badrinarayannet al.,2017]进行比较。表1显示,与Jetson TX1上的ResNet[Sheet al.,2016]和SegNet[Badrinarayananet al.,2017]模型相比,GraspNet的抓取精度分别提高了6%和9%,而计算密集度分别降低了12倍和15倍,计算密集度降低了6倍和7倍,速度提高了3倍和4倍。这些改进归因于提议的网络压缩(第4.1节),该压缩有效地增加了整个网络的特征图的感受野(并保留了上下文信息),而牺牲了参数的线性增长。
        表1还显示,GraspNet在f.w.IUf.w.IUf.w.IU方面始终优于比较的模型。图3显示了GraspSeg数据集上抓取的定性结果。结果显示了与基本事实相关的精确分割。例如,准确地分割汤匙、园艺工具和食物盒的抓取。本文提出了一种新的稠密连通性模型,在编码器分支使网络各层之间的信息变化最大化。因此,与比较的方法相比,GraspNet能够更准确地学习高分辨特征并恢复精细结构(例如,物体轮廓)。

5.4康奈尔大学Grasp数据集的评估


        表2显示了我们的模型和康奈尔大学grasp数据集上其他方法产生的抓取精度的比较[Lenzet al.,2015]。结果表明,我们的模型优于所有比较方法,每幅图像的推理速度仅为24毫秒。这些改进的结果表明,通过DDF模块(第4.1节)提出的深度残差特征融合产生的特征表示对于使用康奈尔抓取数据集有限训练图像的直接抓取回归非常有效[Lenzet al.,2015]。在常见的失效案例中,我们观察到,我们的模型未能预测抓取相对于某些物体的正确方向,如图4所示。

5.5 GraspNet Design Space Exploration


        为了探索GraspNet的设计空间,我们进行了一些实验,强调CNN架构选择对模型大小和精度的影响。GraspNet有8个DDF模块,其中每个DDF模块有两个Fire blocks和两个超参数α和δ,用于分别控制由DDF模块生成的特征通道和特征地图的空间分辨率的数量。首先,我们研究了信道压缩参数α对模型大小和精度的影响。在这些实验中,我们将膨胀参数δ固定为8。表3显示,增加α超过0.5将精确度从87%(7.2MB的模型)提高至89.6%(14.2MB的模型)。接下来,我们通过使用不同的δ值评估GraspNet来研究空间分辨率在网络中的重要性。从表3中,我们可以看出,将δ减少一半,使精度从87.3%提高到90.5%。表3还显示,当δ增加到16时,GraspNet在推理速度上取得了相当大的提升,但抓取精度略有下降。可以想象,更广泛的参数搜索将更好地了解设计选择,以便在精度、模型大小和推理速度之间进行最佳权衡。

6 机械臂抓取(Robotic Grasping)

我们使用Nvidia Jetson TX1和我们的内部机器人平台,在真实世界的机器人抓取中实现了用于抓取检测的GraspNet。在这些实验中,机器人的任务是拾取放置在机器人工作区内的对象。为了实现这一点,我们构建了一个用于对象识别和抓取检测的集成框架,其中我们部署了[Renet al.,2015]faster-RCNN模型,以在场景中生成对象建议。然后将识别出的目标建议反馈给建议的GraspNet,以产生抓取,最后由机械臂使用该抓取来抓取目标对象。对于这些实验,我们进行了50多次试验,并基于抓取器的力反馈对抓取进行了评估。如果机器人将物体举起并保持在空中10秒(在此期间锉刀是通过夹具的力反馈确认的)。图5显示了真实测试中的一些抓取。

7 总结和展望(Conclusion and Future Work)

我们提出了一种新的CNN结构,称为GRASPNEW,它在抓取检测精度方面优于最先进的计算效率CNN模型。为了实现这一点,我们提出了一种新的卷积块,称为Dilated dense Fire(DDF)模块,它使用密集连接性残差和集成压缩超参数互连的方式压缩和扩展卷积。在实验中,我们证明了GraspNet具有较小的内存占用,并在嵌入式GPU(如Nvidia Jetson TX1)上实现了实时推理速度。这些属性使得GraspNet非常适合用于可部署到移动机器人上的嵌入式系统的CNN模型。我们还展示了对GraspNet设计空间的探索,通过权衡合理的准确性来减少大小和延迟,从而构建更小更快的模型。在未来的工作中,我们计划扩展GraspNet体系结构,用于同时进行目标识别和抓取检测,以进一步减少识别系统的总体延迟,同时保持紧凑的模型设计和实时推理速度。我们还计划实施基于CRF的后处理步骤,以进一步改进抓取启示的分割。

GraspNet:一种用于低功耗器件抓取实时检测的高效卷积神经网络相关推荐

  1. 利用表面肌电信号对手部抓取动作分类的新型卷积网络模型

    利用表面肌电信号对手部抓取动作分类的新型卷积网络模型 文章目录 利用表面肌电信号对手部抓取动作分类的新型卷积网络模型 一.相关研究 二.材料和方法 2.1 数据集 2.2 数据预处理 2.3 DUAL ...

  2. 机器人抓取(六)—— 抓取点检测(抓取位姿估计) gqcnn代码测试与解读

    grasp detection 两个开源工作做得比较好的二维平面抓取点检测项目. gcnn, 文档 GR-ConvNet 1. gqcnn Dex-Net是 Berkeley Auto Lab 维护的 ...

  3. 机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划

    作者:Tom Hardy Date:2020-02-14 来源:机器人抓取汇总|涉及目标检测.分割.姿态识别.抓取点检测.路径规划

  4. 【第26篇】MobileNets:用于移动视觉应用的高效卷积神经网络

    MobileNets:用于移动视觉应用的高效卷积神经网络 摘要 我们提出了一类称为 MobileNets 的高效模型,用于移动和嵌入式视觉应用. MobileNets 基于流线型架构,使用深度可分离卷 ...

  5. 5种流行的Web抓取Python库,你用过哪种?

    "我们有足够的数据"这句话,在数据科学领域并不存在. 我很少会听到有人拒绝为他们的机器学习或深度学习项目收集更多的数据,往往都是永远觉得自己拥有的数据不够多. 为了缓解这种&quo ...

  6. python 抓取网页 库_5种流行的Web抓取Python库,你用过哪种?

    "我们有足够的数据"这句话,在数据科学领域并不存在. 我很少会听到有人拒绝为他们的机器学习或深度学习项目收集更多的数据,往往都是永远觉得自己拥有的数据不够多. 为了缓解这种&quo ...

  7. 几种PHP实现网页抓取的程序代码

    网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看. 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程 ...

  8. php网页抓取代码,几种PHP实现网页抓取的程序代码

    网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看. 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程 ...

  9. 论文推荐|【KSII TIIS 2021】DP-LinkNet:一种用于古籍文档图像二值化的卷积网络(有源码)...

    今日分享来自[KSII TIIS 2021]的论文『DP-LinkNet: A convolutional network for historical document image binariza ...

最新文章

  1. 实例 | 利用犯罪记录聚类和分类暴力行为(附步骤解析)
  2. 【EASYDOM系列教程】之 DOM 元素树
  3. iconv 文件编码转换
  4. 我们可以无损放大一个Transformer模型吗?
  5. Xilinx软硬IP双管齐下解决音视频处理痛点
  6. IOS-UIDynamic
  7. Windows应用程序开发
  8. Emoji:搜索将与您找到表情符号背后的故事
  9. Keil中的Code,RO,RW,ZI分别表示什么?
  10. android开发屏幕横放,android-即使从横向旋转到垂直,细节片段也会...
  11. Linux学习 - awk使用
  12. Java Math.round()函数小结
  13. BoolToVisibilityConverter In WPF
  14. Kaldi AMI数据集脚本学习4---train_mono.sh
  15. BZOJ3157/BZOJ3516 国王奇遇记(矩阵快速幂/数学)
  16. SVM支持向量分类器原理及OpenCV实现
  17. 第14章 学习scikit-learn文档
  18. 怎么制作真人qq秀_真人秀---搏击赛事新风向标的机与忧
  19. iOS APP 如何做才安全
  20. 【UML 建模】在线UML建模工具 ProcessOn 使用详解

热门文章

  1. android listview 动态删除行,[已解决!]关于listview添加了N行之后,删除某一行后,后面的行号如何动态变化?...
  2. PathFileExists 文件目录是否存在
  3. SQL学习笔记——REGEXP运算符
  4. AR乐园实例教程项目1---AR动物园(中)的实现
  5. vs2015 连接 mysql 无法定位序数
  6. 瑞云科技副总经理黄金进:实时云渲染是实现现实世界和虚拟世界写实视觉效果的关键
  7. 服务器型号hstns,HSTNS-PL14 PS-2461-1C-LF ML310G8热插拔电源模块 HP服务器电源
  8. 关于微信开发中access_token遇到的一些坑
  9. 第七课 极限学习机( Extreme Learning Machine, ELM)
  10. Writing a good research title: Tips Things to avoid