卷积神经网络的图像纹理合成

TextureSynthesis Using Convolutional Neural Networks

Taylor Guo, 2017年4月29日 星期六

摘要

本文介绍了一种基于卷积神经网络特征空间的自然纹理的新模型,可以用于物体识别。模型的样本具有高感知度,显示出在纯分辨状况下神经网络的泛化能力。模型内部,用网络几个层上的特征地图之间的相关关系表示纹理。我们展示了在层之间,纹理表示越来越多地获取了图像的统计特征,使得物体的信息越来越明显。模型提供了一种新工具模拟神经科学,也提供了新视角来理解卷积神经网络学习的深度表示。

1  简介

视觉纹理合成的目标是从一个样本纹理中推导一个泛化的过程,用来生成具有那种纹理的任意的新图像。合成的纹理的质量评判标准通常是人工检验,如果人们无法分辨合成纹理,纹理就是成功合成的。

一般有两种纹理生成方法。第一种方法是,对像素或原始纹理的整个区块再采样生成新纹理。这些非参数再采样技术和大量扩展或改进方法可以非常有效地生成高质量的自然纹理。然而,它们无法定义为自然纹理定义一个真正的模型,但只能提供一个机械式的过程,随机选择一个源纹理,不改变它的感知特点。

相反,第二种纹理合成的方法是明确定义一个参数化的纹理模型。模型通常由一组图像空间统计值组成。在模型中,纹理由这些观测值的结果唯一确定,每个生成相同结果的图像应该具有相同的纹理。因此,一个纹理的新样本可以通过寻找生成与原始纹理相同观测结果的图像来生成。这个思路是Julesz在论文13中第一次提出,他推测视觉纹理可以用像素的N阶直方图唯一地描述。后来,受哺乳动物早期的视觉系统的线性响应特性的启发的纹理模型,与方向带通滤波(Gabor)非常相似。这些纹理模型基于滤波响应的统计测量值,而不是直接作用在图像像素上。目前,最好的纹理合成的参数模型,可能是论文21中的,计算一个称为方向金字塔(论文24)的线性滤波响应池的手工统计数据。然而,尽管这个模型在比较宽的纹理范围上合成性能非常好,但无法捕捉自然纹理的所有范围。

图1:合成方法。纹理分析(左边)。原始纹理传入卷积神经网络,计算大量层上的特征响应克莱姆矩阵Gl。纹理合成(右边)。白噪声图像传入卷积神经网络,计算包含纹理模型的每个层的损失函数El。在每个像素值的总损失函数上计算梯度下降,生成与原始纹理相同的克莱姆矩阵得到一个新图像。

本文提出了一种新的参数纹理模型处理这个问题,如图1所示。我们并不是基于早期的视觉系统模型来描述纹理,而是采用了卷积神经网络,整个腹流功能模型,作为我们纹理模型的基础。我们合并了特征响应的空间统计结构框架,强大的卷积神经网络特征空间在物体识别上训练好了。卷积神经网络的层级处理架构上构建的空间不变性表示,对纹理模型进行参数化。

2  卷积神经网络

我们使用论文25的VGG-19网络,它是一个在物体识别上训练好的卷积神经网络。这里只总结一下它的架构。

我们使用了VGG-19网络的16个卷积层和5个池化层的特征空间。没有使用全连接层。网络架构基于如下两类基本运算:

1.     线性修正卷积的滤波器大小为3×3×k,其中k是输入特征地图的数量。卷积的跨度和大小都等于1,这样输出特征地图就和输入特征地图的空间维度是一样的。

2.     不重叠的2×2区域的最大池化层,用因子2对特征地图降采样。

这两类运算是交互进行的,如图1所示。卷积层后面是最大池化层。每三个池化层后,特征地图的数量都是2倍。空间维度降采样,这个变换会导致因子为2的特征响应结果总数量减少。图1提供了网络架构图和每层特征地图的数量。既然只使用了卷积层,输入图像就可以任意大。第一个卷积层的大小和图像一样大,后面层中特征地图大小比例保持不变。网络中每层都定义了一个非线性滤波池,其复杂度随着它在网络中的位置而增加。

训练好的卷积网络已经公开,caffe框架可以支持它应用到新的应用中。对于纹理生成,我们发现用平均池化取代最大池化操作增强了梯度流,可以获得更清晰的结果,这就是为什么下面的图像都是用平均池化来生成的。最后,出于实践上的需要,改变了网络中权重的大小,每个图像滤波的平均激活和位置都等于1。如果网络中的非线性经过线性修正,这样的缩放不会改变神经网络的输出结果。卷积神经网络生成纹理的代码和VGG-19网络的修改源代码如下所示:https://github.com/leongatys/DeepTextures

3  纹理模型

下面介绍的纹理模型很大程度上是受论文21启发的。为了生成给定源图像的纹理,先提取不同大小下的这个同态图像的特征。然后,计算特征响应的统计数据获得对源图像的静态描述(如图1A)。最后,用白噪声初始化一个随机图像,执行梯度下降,寻找具有相同静态描述的新图像(如图1B)。

与论文21工作的主要区别是,没有使用线性滤波池和一组手工选择的统计数据,本文使用了深度神经网络提供的特征空间,只有一个空间统计数据:每个网络层之间的相关系数。

为了确定一个给定向量化纹理的特征,先将传入卷积神经网络计算网络中每层l的激活值。既然网络中每层都可以理解为一个非线性滤波池,图像对应的激活值就形成了一组滤波后的图像(称为特征地图)。向量化时,一个有Nl个滤波器的层有Nl个特征地图每个大小是Ml。这些特征地图存储在矩阵中,其中是第l层位置k上的第j个滤波器的激活值。纹理是静态定义的,所以纹理模型对空间信息是未知的。丢掉特征地图上的空间信息,统计数据是从不同特征间的相关系数得到的。这些特征相关系数,是比例常数,由克莱姆矩阵表示,其中是层l上的特征地图i和j之间的內积:

(1)

网络层1,…,L的一组克莱姆矩阵 对应给定的纹理,是纹理的静态描述,在我们的模型中可以完全确定一个纹理,如图1A所示。

4  纹理生成

为了生成给定图像的新纹理,使用白噪声图像的梯度下降查找另外一个图像,可以匹配原始图像的克莱姆矩阵表示。这个优化可以用原始整体图像的克莱姆矩阵和生成图像的克莱姆矩阵之间的平均平方距离的最小化来处理,如图1B所示。分别表示原始图像和生成图像,分别是l层的各自的克莱姆矩阵表示,如等式1。第l层对总损失函数的贡献就是:

 (2)

总损失函数是:

(3)

其中wl是每层对总损失函数的贡献的权重因子。第l层的激活函数El的偏导数的计算为:

 (4)

El的梯度,也就是的梯度,对应像素,可以用标准误差反向传播来计算,如论文18所示。

梯度可以作为某些数值优化策略的输入。本文使用L-BFGS算法,对于高维度优化问题看起来是比较合理的选择。整个流程主要依赖于用于训练卷积网络的标准的前馈-反馈传递。因此,尽管模型比较复杂,纹理生成仍然可以在使用GPU和训练深度神经网络的优化工具时在合理的时间内完成。

5  结果

我们展示了我们的模型从4中不同的源图像生成的纹理,如图2所示。每一排生成的图像使用了纹理模型上逐步增加的层数约束梯度下降(图像中的标签指的是最上面的层)。也就是说,对某层以上的损失函数,我们设置权重wl=0,但对某层或某层以下的那些层,我们设置权重wl=1。比如,第一排(conv1_1)的图像只能从VGG网络的第一层(conv1_1)的纹理表示中生成。第二排(pool1)的图像从匹配纹理表示的conv1_1,conv1_2和pool1上联合生成。用这种方法生成的纹理表现出纹理模型特定计算阶段得到的自然纹理的结构。

图2:生成过程模拟。每排对应网络不同的处理阶段。只有在最低层约束纹理表示,合成的纹理有很少的结构,与光谱噪声非常相似(第一排)。随着匹配纹理表示的网络层数增加,生成图像的自然度也增加(第2-5排;左边的标签指的是包含的最上层)。前3列的源纹理采用的是论文21的。为了更好地对比,在最后一排现实了他们的结果。最后一列显示的非纹理图像生成的纹理,为了更直觉地表现纹理模型是如何表示图像信息的。

前3列是从自然纹理生成的图像。可以发现约束所有的层,直到pool4,可以生成复杂的自然纹理,几乎无法与原始纹理分开,如图2第5排所示。相反,如果只约束最低层的特征相关系数,纹理就包含很少的结构,与噪声差不多,图2第一排。可以只用从所有层到某一中间层的约束的两个极值之间插值。我们发现当用于纹理生成的层数增加时自然图像的统计结构的匹配尺度也会增加。既然层pool4之上的任何层都不会增强合成纹理的质量,就没有包含任何pool4之上的任何层。为了方便比较,我们使用了之前论文21中使用的源纹理,也显示了他们的纹理模型的结果,如图2最后一排。

为了更好地直观解释纹理合成如何工作,我们展示了用ImageNet中非纹理图像生成的纹理,如图2最后一列所示。我们的算法生成的纹理保留了局部空间信息,但丢弃了图像的全局空间结构。空间信息保留好的区域的大小随着用于纹理生成网络层数的增加而增加。这个特征可以用深度卷积神经网络层上的逐步增加的感受野的大小来解释。

使用卷积神经网络所有层的统计数据时,模型的参数数量非常大。对每个有Nl个特征地图的层来说,匹配Nl×(Nl+1)/2个参数,所以如果我们使用所有到且包含pool4的层,我们的模型大概有~852k个参数,图3A,第4列所示。然而,我们发现这个纹理模型严重过参数化。事实上,网络上每层只有一个尺度(比如,conv1_1和pool1_4),在几乎不放宽任何质量时模型包含了~177k个参数(如图3A第3列所示)。通过网络不同层的特征向量的主成分分析,我们进一步减少了参数的数量,只在前k个主成分上构建克莱姆矩阵。对层conv1_1和pool1_4用前64个主成分分析,可以将模型减少到~10k个参数,如图3A第二列。有意思的是,只将特征地图平均分布到conv1_1和pool1_4(1024个参数),也可以生成有趣的纹理(图3A第一列)。这些减少参数的特定方法表明纹理表示可以被极大地压缩,对合成的纹理的质量感知影响非常小。寻找可以复制全模型的质量的最小参数集是一个正在研究的非常有趣的课题,也超出了本文的范围。大量的有~177k个参数的自然纹理合成在我们的网站上可以找到,www.bethgelab.org/deeptextures。可以看到在常规人为结构上模型的一些失效,比如砖墙。

图3:A,纹理模型中的参数数量。采用几种不同的方法减小纹理模型中参数的数量,并比较了结果。B,从caffe网络不同层生成的纹理。纹理比VGG网络生成的质量稍差。C,VGG架构生成的纹理但是任意权重。纹理合成在这个案例中会失效,表明学习生成滤波器最纹理生成非常关键。

通常,我们发现非常深的VGG网络架构中卷积滤波比较小非常适合用于纹理生成。使用caffe做相同的实验时,与AlexNet非常相似,生成纹理的质量在两个方面有所降低。首先,源纹理的统计结构无法完全匹配,甚至使用所有约束时,如图3B,conv5。第二,可以看到一个人工网格,生成的纹理重叠在一起,如图3B。我们认为人工网格来源于caffe参考网络中的大尺寸感受野和跨度。

Caffe参考网络中结果表明网络的架构非常重要,学习的特征向量对于特征生成同样非常关键。VGG网络架构随机权重合成纹理时,纹理生成会失败,如图3C,强调了使用训练好的网络的重要性。

为了更好地理解物体识别任务中的纹理特征,我们评估了物体识别如何能够从网络不同层的纹理特征中线性解码。我们计算了ImageNet训练集的每层每幅图像的克莱姆矩阵表示,训练了线性柔性最大分类器识别物体。我们并没有兴趣优化预测性能,没有使用任何数据增强,训练、测试都是用的224×224的一批图像。我们在ImageNet验证集上计算了这些线性分类器的精度,比较了它们与VGG-19的性能,也评估了224×224的验证集图像。

图4:线性分类器的性能对比,ImageNet数据集上的物体分类不同层上的纹理表示。高层信息随着纹理层级明显增加。

分析表明纹理表示持续分解物体识别信息,如图4所示。物体识别可以随层数递增式解码。事实上,最后池化层的线性解码结果几乎与原始图像一样,也就是说纹理表示保留了几乎所有的高阶信息。第一眼这可能比较奇怪,纹理表示没有必要保留非纹理图像的物体全局结构,如图2最后一列。然而,我们认为这种不一致正是所希望的,可能提供了一种观点去理解卷积神经网络如果对物体识别编码。网络中的卷积表示是等距移动的,网络中的物体识别任务对空间信息是不知道的,因此我们认为可以从特征地图中的空间信息中独立地读出。我们发现确实是这样的:pool5的克莱姆矩阵的线性分类器与全网络的性能非常接近,前5个精度87.7%对比88.6%,如图4所示。

6  讨论

本文介绍了基于高性能卷积神经网络的一种新的参数化纹理模型。我们的纹理模型超过了之前的工作,纹理合成的质量与之前的参数化纹理合成方法相比有了实质的改进。

这个模型与非参数纹理合成方法相比可以生成自然的纹理,这个合成过程的计算代价可能更高。然而,在工业界和学术界,很多人都在想办法使深度神经网络更有效率。纹理合成过程构建在相同的操作上,深度卷积网络的通用领域的过程都可以用于纹理合成方法中。因此,可以期望在实际应用中纹理模型有可观的改进。

计算特征地图的克莱姆矩阵,纹理模型可以将卷积神经网络中的表示转换成静态特征空间。这个策略可以应用于增强物体识别和检测或者纹理识别和分割的性能。尤其是Cimapoi用静态Fisher-Vector表示在已经训练好的最高层卷积神经网络,在物体识别和场景风格应用中的性能非常突出。与我们的实验结果一致,当使用更高层卷积层作为Fisher-Vector表示的输入时,他们的性能在天然纹理识别中持续增强。我们的主要目的是合成纹理,并没有评估纹理识别对比上的克莱姆矩阵表示,但可以期待的是对那些任务它也可以提供比较好的特征空间。

最近几年,受生物视觉启发纹理模型提供了丰富的分析工具用于研究视觉感知器。尤其是论文21启发了大量神经科学和心理学的研究。我们的纹理模型基于深度卷积神经网络,是第一个人工系统在困难感知推理任务上可以与生物相媲美,比如物体识别。同时,它们的层级架构和基本运算特点在基础上与真实的神经系统类似。与卷积神经网络和腹流视觉路径中的表示类似,这些特点使得它们对研究大脑的视觉信息处理是最佳候选模型。事实上,性能优化的卷积网络的表示生产的纹理在感器和心理研究中可能是非常有用的模拟。我们感觉我们的纹理模型是这个方向上的一大进度,使得它提供了一个激动人心的工具用于生物系统的视觉信息处理的研究。

Taylor Guo, 2017年4月30日,20:50 @Shanghai

参考文献

[1] B. Balas, L. Nakano, and R.Rosenholtz. A summary-statistic representation in peripheral vision explainsvisual crowding. Journal of vision, 9(12):13, 2009.

[2] C. F. Cadieu, H. Hong, D. L.K. Yamins, N. Pinto, D. Ardila, E. A. Solomon, N. J. Majaj, and J. J. DiCarlo.Deep Neural Networks Rival the Representation of Primate IT Cortex for CoreVisual Object Recognition. PLoS Comput Biol, 10(12):e1003963, December 2014.

[3] M. Cimpoi, S. Maji, and A.Vedaldi. Deep convolutionalfilter banks for texture recognition and segmentation. arXiv:1411.6836[cs], November 2014. arXiv: 1411.6836.

[4] E. L. Denton, W. Zaremba, J.Bruna, Y. LeCun, and R. Fergus. Exploiting Linear StructureWithin Convolutional Networks for Efficient Evaluation. In NIPS, 2014.

[5] A. Efros and T. K. Leung.Texture synthesis by non-parametric sampling. In Computer Vision, 1999. TheProceedings of the Seventh IEEE International Conference on, volume 2, pages1033–1038. IEEE, 1999.

[6] A. A. Efros and W. T.Freeman. Image quilting for texture synthesis and transfer. In Proceedings ofthe 28th annual conference on Computer graphics and interactive techniques,pages 341–346. ACM, 2001.

[7] J. Freeman and E. P.Simoncelli. Metamers of the ventral stream. Nature Neuroscience,14(9):1195–1201, September 2011.

[8] J. Freeman, C. M. Ziemba, D.J. Heeger, E. P. Simoncelli, and A. J. Movshon. A functional and perceptualsignature of the second visual area in primates. Nature Neuroscience,16(7):974–981, July 2013.

[9] K. He, X. Zhang, S. Ren, andJ. Sun. Spatialpyramid pooling in deep convolutional networks for visual recognition.arXiv preprint arXiv:1406.4729, 2014.

[10] D. J. Heeger and J. R.Bergen. Pyramid-based Texture Analysis/Synthesis. In Proceedings of the 22NdAnnual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH’95, pages 229–238, New York, NY, USA, 1995. ACM.

[11] M. Jaderberg, A. Vedaldi,and A. Zisserman. Speedingup Convolutional Neural Networks with Low Rank Expansions. In BMVC 2014,2014.

[12] Y. Jia, E. Shelhamer, J.Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell.Caffe: Convolutional architecture for fast feature embedding. In Proceedings ofthe ACM International Conference on Multimedia, pages 675–678. ACM, 2014.

[13] B. Julesz. Visual PatternDiscrimination. IRE Transactions on Information Theory, 8(2), February 1962.

[14] S. Khaligh-Razavi and N. Kriegeskorte.Deep Supervised, but Not Unsupervised, Models May Explain IT CorticalRepresentation. PLoS Comput Biol, 10(11):e1003915, November 2014.

[15] A. Krizhevsky, I. Sutskever,and G. E. Hinton. Imagenet classification with deep convolutional neural networks.In Advances in Neural Information Processing Systems 27, pages 1097–1105, 2012.

[16] V. Kwatra, A. Sch¨odl, I.Essa, G. Turk, and A. Bobick. Graphcut textures: image and video synthesisusing graph cuts. In ACM Transactions on Graphics (ToG), volume 22, pages277–286. ACM, 2003.

[17] V. Lebedev, Y. Ganin, M.Rakhuba, I. Oseledets, and V. Lempitsky.Speeding-up Convolutional NeuralNetworks Using Fine-tuned CP-Decomposition. arXiv preprint arXiv:1412.6553,2014.

[18] Y. A. LeCun, L. Bottou, G.B. Orr, and K. R. M¨uller. Efficient backprop. In Neural networks: Tricks ofthe trade, pages 9–48. Springer, 2012.

[19] A. J. Movshon and E. P.Simoncelli. Representation of naturalistic image structure in the primatevisual cortex. Cold Spring Harbor Symposia on Quantitative Biology: Cognition,2015.

[20] G. Okazawa, S. Tajima, andH. Komatsu. Image statistics underlying natural texture selectivity of neuronsin macaque V4. PNAS, 112(4):E351–E360, January 2015.

[21] J. Portilla and E. P.Simoncelli. A Parametric Texture Model Based on Joint Statisticsof Complex Wavelet Coefficients. International Journal of Computer Vision,40(1):49–70, October 2000.

[22] R. Rosenholtz, J. Huang, A.Raj, B. J. Balas, and L. Ilie. A summary statistic representation in peripheralvision explains visual search. Journal of vision, 12(4):14, 2012.

[23] O. Russakovsky, J. Deng, H.Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M.Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet Large Scale Visual RecognitionChallenge. arXiv:1409.0575 [cs], September 2014. arXiv: 1409.0575.

[24] E. P. Simoncelli and W. T.Freeman. The steerable pyramid: A flexible architecture for multi-scalederivative computation. In Image Processing, International Conference on,volume 3, pages 3444–3444. IEEE Computer Society, 1995.

[25] K. Simonyan and A.Zisserman. Very Deep Convolutional Networks for Large-Scale Image Recognition.arXiv:1409.1556 [cs], September 2014. arXiv: 1409.1556.

[26] C. Szegedy, W. Liu, Y. Jia,P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich.Going Deeper with Convolutions. arXiv:1409.4842 [cs], September 2014. arXiv:1409.4842.

[27] L. Wei, S. Lefebvre, V.Kwatra, and G. Turk. State of the art in example-based texture synthesis. InEurographics 2009, State of the Art Report, EG-STAR, pages 93–117. EurographicsAssociation, 2009.

[28] L. Wei and M. Levoy. Fasttexture synthesis using tree-structured vector quantization. In Proceedings ofthe 27th annual conference on Computer graphics and interactive techniques,pages 479–488. ACM Press/Addison-Wesley Publishing Co., 2000.

[29] D. L. K. Yamins, H. Hong, C.F. Cadieu, E. A. Solomon, D. Seibert, and J. J. DiCarlo. Performanceoptimizedhierarchical models predict neural responses in higher visual cortex. PNAS,page 201403112, May 2014.

[30] C. Zhu, R. H. Byrd, P. Lu,and J. Nocedal. Algorithm 778: L-BFGS-B: Fortran subroutines for large-scalebound-constrained optimization. ACM Transactions on Mathematical Software (TOMS),23(4):550–560, 1997.

卷积神经网络图像纹理合成 Texture Synthesis Using Convolutional Neural Networks相关推荐

  1. (笔记)神经网络压缩,Ristretto: Hardware-Oriented Approximation of Convolutional Neural Networks(一)

    目录 目录 原文 简要介绍 摘要 第一章介绍略 第二章卷积神经网络略 第三章相关工作略 原文 paper: http://lepsucd.com/wp-content/uploads/2015/08/ ...

  2. 图像纹理合成_EnhanceNet:通过自动纹理合成实现单图像超分辨率

    图像纹理合成 In 在 背景 (Background) In Single Image Super-Resolution, objective metric-based (like Mean Squa ...

  3. 卷积神经网络图像卷积池化尺寸计算器

    卷积神经网络图像尺寸计算器 (CNN_ImageSize_Calculator) 最近在研究图片超分辨率的问题,发现大量计算图像尺寸的问题.上网查找后发现网上大部分的神经网络可视化软件,像 Tenso ...

  4. python卷积神经网络图像,python卷积神经网络代码

    神经网络算法原理 一共有四种算法及原理,如下所示:1.自适应谐振理论(ART)网络自适应谐振理论(ART)网络具有不同的方案.一个ART-1网络含有两层一个输入层和一个输出层. 这两层完全互连,该连接 ...

  5. 用matlab做纹理合成,图像纹理合成的matlab例程

    图像纹理合成的matlab例程 关于图像纹理合成的 Matlab 例程纹理是普遍存在的视觉现象,其可以描述地形.植物.矿石.纤维和皮肤等等物体的表面特征.纹理结构在图像中反映其图像像素取值的空间变化情 ...

  6. Convolutional Neural Networks for Sentence Classification(卷积神经网络句子分类)

    目录 摘要 原文 翻译 单词解释 技术解读 引言 原文 翻译 单词解释 技术解读 原文 翻译 单词解释 技术解读 原文 翻译 单词解释 技术解读 原文 翻译 单词解释 技术解读. Model 原文 单 ...

  7. 【卷积神经网络】卷积神经网络(Convolutional Neural Networks, CNN)基础

    卷积神经网络(Convolutional Neural Networks, CNN),是一种 针对图像 的特殊的 神经网络. 卷积神经网络概述 Why not DNN? 图像数据的维数很高,比如 1, ...

  8. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

  9. 【原创】梵高油画用深度卷积神经网络迭代10万次是什么效果? A neural style of convolutional neural networks...

    作为一个脱离了低级趣味的码农,春节假期闲来无事,决定做一些有意思的事情打发时间,碰巧看到这篇论文: A neural style of convolutional neural networks,译作 ...

最新文章

  1. 《Swift开发实战》——第2章,第2.4节函数和闭包
  2. 给定数组 求和等于固定值 算法_[见题拆题] 大厂面试算法真题解析 - 第一期开张...
  3. 典型案例 1:函数计算在音视频场景实践
  4. keras从入门到放弃(十六)内置预训练网络VGG
  5. 提供呼叫中心服务器,呼叫中心系统方案
  6. asp.net core 6 新特性,支持HTTP/3 端点发布
  7. Flex布局新旧混合写法详解
  8. linux配置路径PATH问题
  9. python批量读取Excel文件
  10. Easyui清除tree的选中
  11. 百度文档免费下载+PDF转word
  12. STM32WB55开发板(一)单板设计-硬件介绍
  13. 中国眼下拥有的人造卫星的种类及其作用
  14. 苹果笔记本安装完系统win10后多了osxreserved_Mac重装双系统,苹果笔记本电脑重装系统教程...
  15. D语言(Dlang)在单片机(cortex-m)上应用方法
  16. (3种解决思路)OSError: [Errno 22] Invalid argument:解决python爬虫中报错
  17. 观影《超时空接触》有感
  18. 【Windows】右键菜单“新建”选项没有word和excel
  19. CommMonitor监控串口数据
  20. NOI国家集训队论文集

热门文章

  1. 浅谈scala-API的基础概念及简单例子
  2. 组原学习笔记三:存储器
  3. 《炬丰科技-半导体工艺》一步清洁取代RCA两步清洁法用于Pre-Gate清洁
  4. 常用符号计算机输入法,九种常用输入法特殊符号功能揭密 【计算机与医学】...
  5. 连续污染源的四维模拟程序
  6. 【opencv 官方教程】翻译1 基本安装使用 编译工程 读取、显示、保存图片
  7. Ubuntu Python多版本 Python2 和 Python3 的 pip 指向
  8. 【翻译】20180508利用 SSR信息在RTKLIB 中进行PPP解算
  9. 关于S7-PLCSIM Advanced搭建仿真通讯环境
  10. Unreal的常见动画流程