没有合适的资源?快使用搜索试试~ 我知道了~
实时、准确、一致的视频语义分割通过无监督自适应和跨单元部署在移动终端上** *Yizhe Zhang† Shubhankar Mangesh Borse Hong Cai Nilesh Prasad Pandey Fei Yin Frank MayerBalaji Calidas Shubhankar PorikliQualcomm AIResearch摘要该演示展示了我们在移动终端上高效、准确和时间一致的视频语义分割方面的创新。我们采用我们的测试时间无监督计划,ESTADapt,使分割模型,以适应一个给定的视频在线的方式。更具体地说,我们利用一个小的辅助网络来执行权重更新,并保持大的主分段 网 络 冻 结 。 当 与 先 前 的 方 法 ( 例 如 , 帐 篷 ,DVP ) , 同 时 , 防 止 灾 难 性 的 遗 忘 。 通 过 运 行SENSOAdapt,我们可以在保持准确性的同时显著提高视频分割的时间一致性。我们演示了如何在由Snapdragon® Mobile Platform1驱动的智能手机上有效地部署自适应视频分割算法。我们采用了跨单元的部署策略,而不是简单地在GPU上运行整个算法.主网络将在测试期间冻结,将在高度优化的AI加速器单元上执行推理,而小型辅助网络将在运行中更新,将在GPU上运行向前传递和反向传播。这种部署方案最好地利用了智能手机上的可用处理能力,并使我们的自适应视频分割算法能够实时操作。我们在补充材料中提供示例视频。1. 介绍语义分割是视觉场景理解的一个核心功能,对于1Snapdragon是Qualcomm Technologies,Inc.和/或其子公司。* 通讯作者。电子邮件:hyojinp@qti.qualcomm.com†在Qualcomm AI ResearchQualcomm AI Research是Qualcomm Technologies,Inc.(a) 示例视频分割,不使用Adapt(b) 视频分割示例图1.视 频分 割演 示 的快 照。 (a) 示 例视 频分 割 ,不 使用WARNING Adapt。(b)示例视频分割与XNUMX Adapt。当使用ESTADapt时,我们看到更高的时间一致性和更好的视频分割质量。另一方面,在没有ADAPTER Adapt的情况下,分割遭受闪烁伪影,例如,在道路/人行道和植被之间的过渡区域。各种应用,如AR/VR、自动驾驶/ADAS、机器人和移动图像/视频处理。鉴于近年来视频数据的快速增长,对视频内容进行分段的能力变得越来越重要。然而,将基于图像的分割模型直接应用于视频数据常常导致时间上不一致的(例如,闪烁)输出,其中的一个例子是在图中所示。第1(a)段。这些工件会严重影响后台编辑等下游应用程序,并降低用户体验.在文献中,研究人员研究了各种方法来提高时间一致性。主要的工作线在训练和/或测试期间利用光流,因为它捕获跨帧的像素对应关系[1然而,他们的表现受到质量的限制,estimated optical flow and they also require accurately an-notated video training sets which can be costly to collect.Some other works apply test-time adaptation to enhancemodel performance, but they are too computationally ex-pensive to run in real time [6–8].为了解决这些挑战,我们利用我们最近提出的自适应方案,MANAGEAdapt [9],有效地执行在线模型更新,以增强时间一致性。Adapt的设计基于一个关键的见解,即不一致性通常源于网络决策的不确定性因此,ESTADapt强制分割模型从自己的输出中学习,并增强其预测信心。此外,为了显着降低在线自适应的计算 成本, RISTOAdapt采用 了一个 小型辅 助网络(RISTONet)来执行更新,同时保持主分段网络(MainNet)不变。换句话说,在处理每一帧时,MainNet被冻结,只有MainNet被更新,而集成模型则通过视频流。最终的分段由两个网络的聚合输出确定。通过这样做,我们避免了昂贵的模型更新和灾难性的遗忘,并可以提高时间的一致性,而不需要光流或其他时间特征,这可能是不可靠的。在本演示中,我们通过一种新颖的跨单元部署策略,在Snapdragon智能手机上部署了自适应视频分割算法XNUMX Adapt虽然一种常见的方法是简单地在移动GPU上运行完整的算法,但这并不能充分利用手机上的可用处理能力尽管与以前的自适应方法相比,WARDAdapt的计算要求明显降低,但在GPU上运行所有向前和向后操作可能不会导致实时视频分割。因此,我们额外利用智能手机上高度优化的AI加速器,并在其上运行量化版本的主网,因为其权重不会改变。与此同时,RISNet在GPU上运行,并在模型流经视频时调整其权重通过这样做,我们能够实时操作我们的自适应视频分割模型,提供准确和时间一致的分割结果。在评价视频分割的时间一致性时,通常使用估计的光流。然而,光流估计本身可能包含误差,从而导致不可靠的评估结果。最近,我们提出了一种基于感知一致性的新度量[10]。正如我们在原始论文中所示,视觉一致性可以更准确地捕获视频分割的时间一致性。因此,除了现有的基于流量的措施,我们还执行节奏-具体的例子来证明使用感知一致性的优势,估计光流。通过这个演示,我们希望激励进一步研究时间一致和自适应视频分割算法,以及它们在移动设备上的有效部署。我们总结了这个演示的主要贡献如下。• 我们采用我们最新的在线自适应方案,辅助适应,以获得准确和时间一致的视频语义分割。与严格的适应框架(例如,Tent [7]、DVP [8]),而Tent Adapt仅需要一小部分计算成本来进行模型更新。• 我们提出了一种新的跨单元部署策略,以在由Qual-AI引擎驱动的商用智能手机上有效地运行我们的自适应视频分割算法。2具体来说,模型中较大的冻结部分在高效的AI加速器上运行,较小的自适应部分在移动GPU上运行。这使我们能够更好地利用手机上的处理能力并实现实时性能。• 在评估时间一致性时,除了基于估计光流的传统方法外,我们还利用了一种新的基于感知一致性的方法。与使用估计的光流相比,这种新的评估方法可以更正确地捕获时间一致性,正如我们在本演示中所示。本文的其余部分组织如下。在第2节中,我们概述了我们的自适应视频分割算法,EMAPAdapt和我们的新方法评估时间一致性,以及样本评估结果。在第3节中,我们提出了我们的新方案,该方案将算法部署在不同的计算单元(即,GPU和AI加速器),以实现实时性能。在第4节中,我们描述了我们的实现细节以及如何进行演示。最后将给出结论。2. 自适应和时间一致性评估在本节中,我们简要介绍了WASTEAdapt [9]框架,该框架作为在线、无监督、测试时自适应方案应用,然后,我们描述了两种用于测量时间一致性的评估方案,分别基于估计的光流和感知一致性[10],并比较了不使用和使用ADAPTER Adapt的评估结果。使用我们的感知一致性的公制此外,在演示中,我们将提供2Qualcomm AI Engine是Qualcomm Technologies,Inc.的产品。1fmain=f main(x),;不∈∈联系我们不不不不不塞格塞格不--算法1:自适应输入:x 1,x 2,. . .,xT;输出:yseg,yseg,. - 是的- 是的,yseg;1 2T加载已训练的MainNetfmain,它将被冻结;加载已训练的MainNetfauxasfaux;初始化t= 1;当t≤T时不intmaximum(x);t tyseg(i,j)=argmaxymain(i,j,k)+yaux(i,j,k),n(i,j);tt tK计算交叉熵损失:L(yaux,yseg);根据上述损失更新faux,得到faux;不t←t+ 1;端电话+1图2.图为CNET Adapt框架。 Adapt在较低的空间分辨率上使用一个微小的辅助网络fixNet faux以及主分割网络f main来生成分割决策。对于每个帧xt,它仅基于聚合的分割输出yseg来更新RNN,其用作训练具有交叉熵损失的RNN的目标。2.1. Adapt考虑一个预训练的语义分割网络fmain。它采用输入图像x[0,1]H×W×3,并生成2D预测图ymainRH×W×K,用于K类分割任务。H和W分别是输入图像的高度和宽度。y_main(i,j,k)表示该像素属于像素位置(i,j)的类别k的可能性。对于分割决策,逐像素地对ymain的最后一个维度应用argmax运算,以将最可能的类分配给每个像素。我们把这个艰难的决定表示为yseg1 、 2 、 . . . , KH× W. 为 了 获 得 视 频 帧 序 列X={x1,. . .,xT},fmain可以应用于生成Y=y1,. . . 其中T是视频中的帧的数量。将fmain直接应用于X通常会导致暂时不一致的分割输出,如图所示。第1(a)段。这主要是由于网络在其自身预测中的不确定性,这导致跨帧的视觉相似区域上的不同分割结果。因此,ADAPTAdapt用自己的预测来加强网络,即,根据网络自己的决策训练网络,以增强网络预测的置信度和一致性。虽然人们可以简单地根据自己的输出更新整个网络,以实现不确定性降低,和/或其子公司。事实上,通过整个网络执行反向传播在计算上是昂贵的,并且对于长视频,可能使网络偏离其稳定的预先训练的权重太多,导致准确性降低。为了执行自适应并避免简单地更新整个模型的缺点 , MANUFACTURAdapt 使 用 辅 助 网 络( MANUFACTURNet ) faux 与 主 分 段 网 络(MainNet)fmain一起工作。CNET是一个单独训练的小型 分 割 网 络 。 对 于 时 间 t 处 的 视 频 帧 , MainNet 和RightNet产生其各自的预测图ymain和yaux,然后对其求和应用argmax运算以获得最终分割决策yseg。当流式传输 视 频 时 , MainNet 被 冻 结 , 并 且 基 于 yseg 更 新MainNet。我们的EQUIPMENT Adapt框架如图所示。2并在算法1中总结。在这个过程中,虽然MainNet没有改变,但MainNet通过从最终的组合决策中学习来调整自己,以降低整体预测的不确定性。通过只更新小的主网,向前和向后操作将比更新主网便宜得多。此外,XNUMX Adapt可以在给定的特定测试视频和其他一般测试图像上保持准确性。具体来说,由于MainNet没有变化,我们从根本上防止了灾难性遗忘,并且由于MainNet对整体输出的贡献,准确性的变化是有限的CNONet还通过组合输出从MainNet中提取知识,并学习匹配MainNet网络:在本演示中,我们采用了最先进的分段模型HRNet-w18 [11] , 并 将 其 变 体 应 用 于 MainNet 和RightNet 。 特别 是 , 对于 HRNet-w18 , 我们 分 析 了HRNet-w18在GPU上的每一层的运行时间,并减少了计算量(例如,通道数)的观察到的瓶颈。我们还使用较低的输入分辨率来进一步减少计算。−(a) 视频1的样本分割,不使用自适应(b) 视频1的样本分割,使用WEB-Adapt(c) 视频2的样本分割,不使用自适应(d) 视频2的样本分割,使用WEB-Adapt图3.两个视频帧序列的分割结果,不使用和使用ADAPTER Adapt。图1和图3显示了不使用ADAPTER Adapt的结果,第2行和第4行是通过应用ADAPTER Adapt获得的。对于每个帧,我们还显示了基于光流(左)和感知一致性(右)的时间一致性分数如可见的那样,RISTOAdapt大大增强了视频分割的时间一致性,这也反映在分数中。2.2. 时间一致性在本节中,我们首先描述了两种评估时间一致性的方法,然后在Cityscapes数据集上评估不使用和使用TADAPT的分割结果[12]。当测量时间一致性时,第一种方法是基于估计的光流并且已经被普遍使用。第二种方法是基于我们新提出的感知一致性,它利用视觉相似性,不需要光流。正如我们将看到的,我们基于感知一致性的方案提供了一种更可靠的方法来测量时间一致性。基于光流的测量:许多现有的论文使用估计的光流来评估视频分割的时间一致性,例如,[4、5、13、14]。在[5]之后,我们采用FlowNet2 [15]来计算光流。在两个相邻的帧之间切换,并将帧t处的分割扭曲到帧t1。然后,我们使用标准的平均交集(mIoU)度量来比较每个帧(t T)的扭曲和估计的分割掩码然后,整体mIoU用作基于流的时间一致性度量,我们将其表示为F-TC。请注意,这与[5]中使用的度量相同,更多细节可以在其中找到。虽然基于流的测量已经被广泛使用,但是存在一些缺点。首先,它是具有挑战性的生成,erate高度准确和概括的光流估计。此外,它容易受到遮挡和物体移出帧的影响。基于感知一致性的测量:最近,我们提出了利用感知一致性来捕获方法F-TCPCMiouGMAC不带适配器73.0681.0272.4717.0关于Adapt74.4682.2573.1821.2表1. Cityscapes验证集的性能评估结果。F-TC表示基于流的时间一致性测量(使用FlowNet 2),PC表示感知一致性。基于时间一致性测度GMAC是基于1024×2048的输入大小计算的。视频分割的时间一致性[10]。给定两个附近的视频帧和相应的预测分割图,我们评估分割与在两个帧的感知特征图上建立的跨帧像素对应关系的一致程度为了量化这一点,对于一帧中的每个像素,我们首先通过匹配感知特征从另一帧中找到最相关的像素。这两个像素被期望属于同一类。接下来,我们找到最相关的像素,也是由分割图同意。如果分割与感知对应一致,则经由无约束特征匹配和分割一致的特征匹配找到的相关性将相等。否则,受约束的一个将更小。因此,我们可以使用这两个相关性之间的比率来量化分割和感知对应之间的像素一致性然后,这可以在像素上聚合,以测量两个帧上的分割图之间的感知一致性,这自然地捕获它们的时间一致性。与光流不同,感知一致性并不寻找两个图像之间的精确像素对应。相反,它找到最大相关的像素对。这使得感知一致性不受遮挡和对象移出帧等情况的影响,其中不再存在精确的对应关系。城市景观评价结果:我们使用Cityscapes数据集来展示我们的视频分割的有效性。如表1所示,我们的方法在两个指标方面都实现了更高的时间一致性。3具体而言,基于基于流的测量(F-TC)和基于感知一致性的测量(PC),RISTOAdapt实现了74.46的时间一致性得分和82.25的另一方面,当不使用ADAPTER Adapt时,即,单独将MainNet应用于每个视频帧而不进行任何调整,相应的分数较低:73.06和81.02。在分割准确性方面(以mIoU为单位),与不使用ESTADapt的情况相比,我们还报告了GMAC测量的计算成本,可以看出,由于自适应的GMAC Adapt的额外计算仅为4.2G。通过使用建议的辅助-[3]请注意,分数越高,表明两个指标的时间一致性越高。(a) 示例视频分割,不使用Adapt(b) 视频分割示例图4. 两种时态一致性度量的比较 连续视频帧的样本对。在每个帧上,基于基于流的度量和基于感知一致性的度量的时间一致性得分分别在左侧和右侧示出。可以看出,感知一致性正确地将更高的分数分配给底部行中明显更一致的结果,而基于流的度量错误地指示没有ADAPTER Adapt(顶部)的视频分段更一致,适应,我们有效地提高了时间一致性,同时保持原来的准确性。图中显示了不使用和使用WEB-Adapt的示例视频分割结果。3.第三章。可以看出,Aux-Adapt显著提高了视频分割的时间一致性。此外,我们基于光流(左)和感知一致性(右)示出了每个帧上的时间一致性分数(在当前帧和先前分数还表明,基于RISTOAdapt的视频分割实现了更好的时间一致性。在演示中,我们将展示智能手机上实时运行的完整视频的一致分割比较两个时间一致性度量:图4示出了基于流和基于感知一致性的时间一致性分数样本视频分割结果。可以看出,在图1中。4(a),当不是我们时─使用Adapt,分割结果具有闪烁伪影(由红色框突出显示)。另一方面,使用WARDAdapt的视频分段显示出跨帧的显著更一致的结果,如图所示。第4(b)段。我们基于每个帧的两个时间一致性度量(在当前帧和先前帧之间计算)显示相应的分数我们看到,基于我们新的感知一致性的度量将更高的分数分配给更一致的分割(底部行),而基于流的度量错误地将更高的分数分配给不太一致的结果(顶部行)。在演示过程中,我们将提供更多的例子和分析,以更好地说明图5.在移动终端上跨单元部署实时应用的TMS320Adapt主网的量化版本部署在六边形处理器(Hex.程序)并且在移动GPU上部署了以太网。MainNet的输出在发送到GPU之前被转换回浮点。在GPU上,MainNet之后,基于该组合的分割决策通过反向传播来更新CNONet。使用感知一致性作为时间一致性测量的优点。3. 移动终端我们采用了一种新颖的跨单元部署策略,以最大限度地利用由高通AI引擎提供支持的智能手机上的处理能力。 该平台由多个硬件和软件组件组成,可加速设备上支持AI的用户体验。AI引擎支持的硬件架构包括Qualcomm® HexagonTM处理器、Qualcomm® AdrenoTMGPU和Qualcomm® KryoTM CPU,所有这些都旨在在设备上快速高效地运行AI应用。Hexagon处理器有一个融合的AI加速器架构,将标量、矢量和张量加速器融合在一起。这使得能够提供快速定点整数运算,同时具有低功耗。4由于主网较重,需要更多的计算操作相比,主网,我们采取优势的六边形处理器,并运行一个量化的版本,主网的版本。这使得主网的推理非常快。与此同时,更小、计算量更小的ARMNet在GPU上运行,它在GPU上执行模型自适应的前向推理和反向传播。通过采用这种跨部门部署方法,我们可以适当利用智能手机上高通AI引擎提供的可用AI相反,在GPU上同时运行MainNet和XinNet的简单方法将使强大的Hexagon处理器无法利用,导致性能下降。正如我们将在演示中展示的那样,我们的跨单元方法可以实现实时、自适应、准确和一致的视频语义分割。图5描述了我们的跨单元部署策略。更具体地,给定视频帧,量化的主网络在六边形处理器上运行并生成分段预测ymain。y main然后被转换为浮点并由GPU访问,我们将其表示为ymain n。在GPU上,输入帧首先被下采样,然后被馈送到GPU网络,这减少了网络然后,该网络生成一个分割预测yau x。对next、y_main和y_aux求和,并且对该和应用argmax运算以获得针对给定输入帧的最终分割决策y_seg为了适应BSNet,在yseg和yaux之间计算交叉熵损失,然后通过BSNet反向传播以更新其权重。4. 实施和演示细节该演示将作为Android应用程序在由高通AI引擎驱动的手机上运行应用程序将作为输入的视频序列,并运行我们的部署自适应视频分割模型,以实时生成相应的分割图。为了部署在Hexagon处理器上,MainNet将使用高通创新中心的开源AI模型效率工具包(AIMET)进行量化 5为了在线更新GPU上的OpenCL Net,我们使用OpenCL ML SDK [17,18]。我们进一步利用几种技术来 加 速 GPU上 的 IPv6 网 络 首 先 , 使 用 16 位 浮 点 数(FP16)进行向前传递与使用FP32相比,使用FP16将正向推理时间减少了一半。此外,我们冻结了网络中的早期层,以减少可训练层的数量,从而加速了向后传递。在演示过程中,我们将首先简要介绍我们将要展示的技术和创新之后,我们将展示我们的在线自适应视频4高通Hexagon、高通Adreno和高通Kryo是Qualcomm Technologies,Inc.和/或其子公司。5AIMET是高通创新中心公司的产品。手机上实时运行的分割模型更具体地说,我们将重点介绍我们的方法的两个方面:1)更好的时间一致性和2 ) 满 足 实 时 性 能 要 求 的 帧 速 率 。 这 将 通 过 一 个Android应用程序来完成,该应用程序将在手机屏幕上显示输入RGB视频帧序列和基于我们部署的模型以高帧速率生成的一致分割结果,以及另一个应用程序,该应用程序将在另一部手机上显示基线分割网络。在运行应用程序时,我们将在特定时间暂停视频,以突出显示示例区域,以展示我们改进的分割。还将显示其他信息,如准确性数字、时间一致性分数和实时帧速率将向观众提供屏幕录像,并将举行互动问答环节以回答问题。5. 结论在这项工作中,我们概述了我们的方法,以证明我们的创新高效,准确,时间上一致的视频语义分割的移动终端。我们应用了我们的测试时自适应方案,MANAGEAdapt,使图像分割模型能够在线适应给定的通过运行ESTADapt,我们可以在保持准确性的同时,以具有成本效益的方式大大提高视频分割的时间一致性。为了测量时间一致性,我们使用了我们的新的metric,知觉一致性。我们还显示了这种度量的有效性超过了广泛使用的基于光流的度量。最后,我们展示了一个跨单元部署方案,该方案最好地利用了Snapdragon智能手机上的可用AI处理能力,并实现了自适应视频分割算法的实时引用[1] G. Floros和B. Leibe联合2D-3D时间上一致的街道场景语义分割在2012年IEEE计算机视觉和模式识别会议论文集中1[2] J. Cheng,Y.- H. Tsai,S.王和M H.N Yang. Segflow:用于视频对象分割和光流的联合学习在2017年IEEE计算机视觉国际会议上。1[3] M. 叮,Z。王湾,澳-地Zhou,J.施,Z.Lu,和P.罗每一帧都很重要:视频分割和光流的联合学习在AAAI人工智能会议论文集,2020。1[4] D. Nilsson和C.斯明奇塞斯库基于门控递归流传播的语义视频分割。在IEEE计算机视觉和模式识别会议论文集,2018。1、4[5] Y. Liu,C.申角Yu和J.王. 具有每帧推理的高效语义在欧洲计算机视觉会议论文集,2020年。1、4[6] W.- S. 赖 , J. - B. Huang 、 O. Wang , 中 国 山 核桃 E.Shechtman,E. Yumer和MH. 杨学习盲视频时间一致性。在欧洲计算机视觉会议论文集,2018年。2[7] D. Wang,中国山核桃E.Shelhamer,S.刘湾,澳-地Olshausen和T.达雷尔。通过熵最小化实现完全的测试时间自适应。在2021年学习代表国际会议的开幕式上。2[8] C.雷,Y。Xing和Q.尘通过深度视频先验的盲视频时间一致性。在神经信息处理系统的进展,2020年。2[9] Yizhe Zhang , Shubhankar Borse , Hong Cai , andDaughh Porikli. 3、自适应:稳定高效的测试时间自适应,用于时间一致的视频语义分割。在IEEE/CVF计算机视觉应用冬季会议论文集,2022年。2[10] Yizhe Zhang , Shubhankar Borse , Hong Cai , YingWang,Ning Bi,Xiaoyun Jiang,and Daughh Porikli.视频分割中的感知一致性。IEEE/CVF计算机视觉应用冬季会议论文集,2022年。二、五[11] J. Wang,K.孙,T. Cheng,B.i Jiang,C.邓,Y. 赵、D. Liu,Y.穆,M。Tan,X.Wang,W.Liu和B.萧用于视觉识别的深度高分辨率表示学习。IEEE Transactions onPattern Analysis and Machine Intelligence,2020。3[12] Marius Cordts , Mohamed Omran , Sebastian Ramos ,Timo Rehfeld,Markus Enzweiler,Rodrigo Benenson,Uwe Franke,Stefan Roth,and Bernt Schiele. Cityscapes数据集用于语义城市场景理解。在IEEE计算机视觉和模式识别会议上,2016年。4[13] Abhijit Kundu、Vibhav Vineet和Vladlen Koltun。语义视频分割的特征空间优化在IEEE计算机视觉和模式识别会议上,2016年。4[14] Serin Varghese , Yasin Bayzidi , Andreas Bar , NikhilKapoor,Sounak Lahiri,Jan David Schneider,Nico MSchmidt , Pe- ter Schlicht , Fabian Huger , and TimFingscheidt.高度自动驾驶中视频分割的无监督时间一致性度量在IEEE计算机视觉和模式识别研讨会论文集,2020年。4[15] E. Ilg,N. Mayer,T. Saikia、M. Keuper,A. dosovitskiy和T.布洛克斯流动网络2.0:利用深度网络的光流估计的演进。在IEEE计算机视觉和模式识别会议论文集,2017年。4[16] AI Model Efficiency Toolkit ( AIMET ) https ://quic. github.io/aimet-pages/index.html网站。6[17] OpenCLMLSDK。https://developer.qualcomm。com/blog/accelerate-your-models-our-opencl-ml-sdk. 6[18] OpenCL ML SDK培训。https://developer.高通com/blog/ml-training-edge-training-mobile-devices. 6
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功