From 532b845e98c61d72e716d55a52af45a1469d2730 Mon Sep 17 00:00:00 2001 From: liuxinwei Date: Sat, 7 Dec 2024 12:17:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/datasets/cv/DIV2K.ipynb | 7 ++ doc/refs.bib | 30 ++++--- doc/sr/SRCNN/paper.md | 79 ++++++++++++++++--- doc/sr/SRCNN/srcnn.txt | 39 +++++++++ doc/sr/index.md | 1 - doc/tutorials/index.md | 1 - doc/tutorials/old/intermediate/index.md | 1 - .../old/intermediate/pinmem-nonblock.ipynb | 2 +- .../char_rnn_classification_tutorial.ipynb | 0 .../nlp/char_rnn_generation_tutorial.ipynb | 0 .../intermediate => tests/chaos}/nlp/index.md | 0 .../nlp/seq2seq_translation_tutorial.ipynb | 0 .../chaos}/vision/dcgan-faces.ipynb | 0 .../chaos}/vision/detection.ipynb | 0 .../chaos}/vision/fgsm.ipynb | 0 .../tutorials => tests/chaos}/vision/index.md | 0 .../chaos}/vision/spatial-transformer.ipynb | 0 .../chaos}/vision/tiatoolbox.ipynb | 0 .../chaos}/vision/transfer-learning.ipynb | 0 .../tutorials => tests/chaos}/vision/vt.ipynb | 0 tests/refs/index.md | 3 + doc/sr/intro.md => tests/refs/sr.md | 0 tests/refs/what.md | 36 +++++++++ 23 files changed, 174 insertions(+), 25 deletions(-) create mode 100644 doc/sr/SRCNN/srcnn.txt rename {doc/tutorials/old/intermediate => tests/chaos}/nlp/char_rnn_classification_tutorial.ipynb (100%) rename {doc/tutorials/old/intermediate => tests/chaos}/nlp/char_rnn_generation_tutorial.ipynb (100%) rename {doc/tutorials/old/intermediate => tests/chaos}/nlp/index.md (100%) rename {doc/tutorials/old/intermediate => tests/chaos}/nlp/seq2seq_translation_tutorial.ipynb (100%) rename {doc/tutorials => tests/chaos}/vision/dcgan-faces.ipynb (100%) rename {doc/tutorials => tests/chaos}/vision/detection.ipynb (100%) rename {doc/tutorials => tests/chaos}/vision/fgsm.ipynb (100%) rename {doc/tutorials => tests/chaos}/vision/index.md (100%) rename {doc/tutorials => tests/chaos}/vision/spatial-transformer.ipynb (100%) rename {doc/tutorials => tests/chaos}/vision/tiatoolbox.ipynb (100%) rename {doc/tutorials => tests/chaos}/vision/transfer-learning.ipynb (100%) rename {doc/tutorials => tests/chaos}/vision/vt.ipynb (100%) create mode 100644 tests/refs/index.md rename doc/sr/intro.md => tests/refs/sr.md (100%) create mode 100644 tests/refs/what.md diff --git a/doc/datasets/cv/DIV2K.ipynb b/doc/datasets/cv/DIV2K.ipynb index 6678714..b52da6b 100644 --- a/doc/datasets/cv/DIV2K.ipynb +++ b/doc/datasets/cv/DIV2K.ipynb @@ -68,6 +68,13 @@ " - `DIV2K/DIV2K_test_LR_unknown/X4/` -- 0901x4.png, 0902x4.png, ..., 1000x4.png 测试低分辨率图像,下采样因子x4 " ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 数据处理" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/doc/refs.bib b/doc/refs.bib index 44bcfbe..76c81b0 100644 --- a/doc/refs.bib +++ b/doc/refs.bib @@ -1,3 +1,23 @@ +@misc{dong2015imagesuperresolutionusingdeep, + title={Image Super-Resolution Using Deep Convolutional Networks}, + author={Chao Dong and Chen Change Loy and Kaiming He and Xiaoou Tang}, + year={2015}, + eprint={1501.00092}, + archivePrefix={arXiv}, + primaryClass={cs.CV}, + url={https://arxiv.org/abs/1501.00092}, +} + +@misc{dong2015imagesuperresolutionusingdeepv1, + title={Learning a Deep Convolutional Network for Image Super-Resolution}, + author={Chao Dong and Chen Change Loy and Kaiming He and Xiaoou Tang}, + year={2014}, + eprint={1501.00092}, + archivePrefix={arXiv}, + primaryClass={cs.CV}, + url={https://arxiv.org/abs/1501.00092v1}, +} + @misc{yun2019cutmix, title={CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features}, author={Sangdoo Yun and Dongyoon Han and Seong Joon Oh and Sanghyuk Chun and Junsuk Choe and Youngjoon Yoo}, @@ -208,16 +228,6 @@ @article{DBLP:journals/corr/abs-2106-08295 bibsource = {dblp computer science bibliography, https://dblp.org} } -@misc{dong2015imagesuperresolutionusingdeep, - title={Image Super-Resolution Using Deep Convolutional Networks}, - author={Chao Dong and Chen Change Loy and Kaiming He and Xiaoou Tang}, - year={2015}, - eprint={1501.00092}, - archivePrefix={arXiv}, - primaryClass={cs.CV}, - url={https://arxiv.org/abs/1501.00092}, -} - @ARTICLE{9044873, author={Wang, Zhihao and Chen, Jian and Hoi, Steven C. H.}, journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, diff --git a/doc/sr/SRCNN/paper.md b/doc/sr/SRCNN/paper.md index b9fba63..a3bf694 100644 --- a/doc/sr/SRCNN/paper.md +++ b/doc/sr/SRCNN/paper.md @@ -1,16 +1,73 @@ -# SRCNN 论文解读 +# SRCNN 论文阅读 -SRCNN 提出了一种用于单图像超分辨率 (SR) 的新型深度学习方法。SRCNN 表明,传统的基于稀疏编码的 SR 方法可以重新表述为深度卷积神经网络。SRCNN 提出的结构具有简单和鲁棒的优点,可以应用于其他低级视觉问题,如图像去模糊或同步 SR+去噪。还可以研究网络以应对不同的上采样因子。 +```{topic} 来源 +- [Image Super-Resolution Using Deep Convolutional Networks](https://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html) +- [Caffe 源码](https://mmlab.ie.cuhk.edu.hk/projects/SRCNN/SRCNN_train.zip) +- {cite:t}`dong2015imagesuperresolutionusingdeep` +``` -主要贡献: -1. SRCNN 提出了用于图像超分辨率的全卷积神经网络(fully convolutional neural network)。该网络直接学习低分辨率和高分辨率图像之间的端到端映射,除了优化之外,几乎没有前/后处理。 -2. SRCNN 建立了基于深度学习的 SR 方法和传统的基于稀疏编码的 SR 方法的关系。此关系为网络结构的设计提供了指导。 -3. 证明深度学习在超分辨率的经典计算机视觉问题中很有用,并且可以获得良好的质量和速度。 +## 摘要 -## SRCNN 网络结构 +本文提出了一种用于单幅图像超分辨率(SR)的深度学习方法。本文的方法直接学习低分辨率和高分辨率图像之间的端到端映射。该映射被表示为深度卷积神经网络(CNN),它以低分辨率图像作为输入,并输出高分辨率图像。进一步研究表明,传统的基于稀疏编码的 SR 方法也可以被视为深度卷积网络。但与传统方法分别处理每个组件不同,本文的方法联合优化所有层。本文的深度 CNN 具有轻量级结构,但展示了最先进的恢复质量,并在实际在线使用中实现了快速速度。本文探索了不同的网络结构和参数设置,以在性能和速度之间取得平衡。此外,本文将网络扩展到同时处理三个颜色通道,并展示了更好的整体重建质量。 -SRCNN 网络结构主要包括三个部分: +所提出的超分辨率卷积神经网络(SRCNN)在仅经过几次训练迭代后,就超越了双三次插值基线,并且在适度训练后优于基于稀疏编码的方法(SC)。通过更多的训练迭代,性能可能会进一步提高。 -- patch 提取和表示:从低分辨率图像中提取重叠的 patch,并通过卷积算子表示为高维向量。这些高维向量组成特征图(feature maps)。 -- 非线性映射:将每个高维向量非线性地映射到另一个高维向量上。这个映射过程可以通过1x1卷积实现,从而改变特征的个数但保持特征本身不变。非线性体现在使用了ReLU激活函数。 -- 重构:聚合高维向量以生成最终的高分辨率图像。重建后的图像应尽可能与原始高分辨率图像相似。 +## 1 引言 + +单幅图像超分辨率(SR)旨在从单幅低分辨率图像中恢复高分辨率图像,是计算机视觉中的经典问题。由于对于任何给定的低分辨率像素都存在多种解决方案,因此这个问题本质上是不适定的(ill-posed)。换句话说,它是欠定的反问题(underdetermined inverse problem),其解不是唯一的。通常通过强先验信息约束解空间来缓解这个问题。为了学习先验信息,最近的最先进方法大多采用基于示例的策略。这些方法要么利用同一图像的内部相似性,要么从外部低分辨率和高分辨率示例对中学习映射函数。基于外部示例的方法可以针对通用图像超分辨率进行建模,也可以根据提供的训练样本设计为适合特定领域任务,例如人脸幻觉。 + +基于稀疏编码的方法是代表性的基于外部示例的 SR 方法之一。该方法在其解决方案流程中涉及几个步骤。首先,从输入图像中密集地裁剪重叠的图像块,并进行预处理(例如,减去均值和归一化)。然后,这些图像块通过低分辨率字典进行编码。稀疏系数随后传递到高分辨率字典中,以重建高分辨率图像块。重叠重建的图像块通过(例如,加权平均)聚合以生成最终输出。大多数基于外部示例的方法都共享这一流程,特别关注于学习与优化字典或构建高效的映射函数。然而,流程中的其余步骤很少在统一的优化框架中进行优化或考虑。 + +在本文展示了上述流程等价于深度卷积神经网络(更多细节见第3.2节)。受此启发,考虑直接学习低分辨率和高分辨率图像之间端到端映射的卷积神经网络。本文的方法与现有的基于外部示例的方法有根本区别,因为本文的方法不显式地学习字典或流形来建模图像块空间。这些是通过隐藏层隐式实现的。此外,图像块提取和聚合也被表述为卷积层,因此也参与了优化。在本文的方法中,整个 SR 流程通过学习完全获得,几乎没有预处理或后处理。 + +本文将提出的模型命名为超分辨率卷积神经网络(SRCNN)[^1]。所提出的 SRCNN 具有几个吸引人的特性。首先,其结构设计简洁,但与最先进的基于示例的方法相比,提供了更高的准确性[^2]。其次,在适度的滤波器和层数下,即使在 CPU 上也能实现快速的实际在线使用速度。本文的方法比许多基于示例的方法更快,因为它完全是前馈的,在使用时不需要解决任何优化问题。第三,实验表明,当(i)更大和更多样化的数据集可用,和/或(ii)使用更大和更深的模型时,网络的恢复质量可以进一步提高。相反,更大的数据集/模型对现有的基于示例的方法提出了挑战。此外,所提出的网络可以同时处理彩色图像的三个通道,以实现改进的超分辨率性能。 + +总的来说,本研究的主要贡献主要在三个方面: +1. 提出了一种用于图像超分辨率的完全卷积神经网络。该网络直接学习低分辨率和高分辨率图像之间的端到端映射,除了优化之外几乎没有预处理或后处理。 +2. 建立了基于深度学习的 SR 方法与传统的基于稀疏编码的 SR 方法之间的关系。这种关系为网络结构的设计提供了指导。 +3. 证明了深度学习在经典的计算机视觉问题——超分辨率中的有效性,并且可以实现良好的质量和速度。 + +这项工作的初步版本之前已经发表 {cite:t}`dong2015imagesuperresolutionusingdeepv1`。当前的工作在初始版本的基础上有了显著的补充。首先,通过在非线性映射层引入更大的滤波器尺寸,并探索通过添加非线性映射层来加深结构,从而改进了 SRCNN。其次,将 SRCNN 扩展到同时处理三个颜色通道(在 YCbCr 或 RGB 颜色空间中)。实验上,证明了与单通道网络相比,性能可以得到提升。第三,对初始结果增加了大量的新分析和直观的解释。还从 [Set5](https://paperswithcode.com/dataset/set5) 和[Set14](https://paperswithcode.com/dataset/set14)测试图像扩展到 BSD200(200张测试图像)。此外,与许多最近发表的方法进行了比较,并确认模型在使用不同评估指标时仍然优于现有方法。 + +[^1]: 实现代码可在 获取。 + +[^2]: 当存在真实图像时,使用不同的评估指标(如峰值信噪比(PSNR)、结构相似性指数(SSIM)[43]、多尺度SSIM[44]、信息保真度准则[38])进行数值评估。 + +## 2 相关工作 + +### 2.1 图像超分辨率 + +根据图像先验,单幅图像超分辨率算法可以分为四类——预测模型、基于边缘的方法、图像统计方法和基于图像块(或基于示例)的方法。这些方法在 Yang 等人的工作中得到了彻底的研究和评估。其中,基于示例的方法达到了最先进的性能。 + +基于内部示例的方法利用自相似性属性,并从输入图像生成示例图像块。Glasner的工作首次提出,并提出了几种改进的变体以加速实现。基于外部示例的方法从外部数据集中学习低分辨率和高分辨率图像块之间的映射。这些研究在如何学习紧凑的字典或流形空间以关联低分辨率和高分辨率图像块,以及如何在这样空间中进行表示方案方面有所不同。在Freeman等人的开创性工作中,字典直接表示为低分辨率和高分辨率图像块对,并在低分辨率空间中找到输入图像块的最近邻(NN),使用其对应的高分辨率图像块进行重建。Chang等人引入流形嵌入技术作为NN策略的替代方案。在Yang等人的工作中,上述NN对应关系进一步发展为更复杂的稀疏编码公式。其他映射函数如核回归、简单函数、随机森林和锚定邻域回归被提出以进一步提高映射的准确性和速度。基于稀疏编码的方法及其几种改进是目前最先进的SR方法之一。在这些方法中,图像块是优化的重点;图像块提取和聚合步骤被视为预处理/后处理,并单独处理。 + +大多数SR算法[2]、[4]、[15]、[41]、[48]、[49]、[50]、[51]专注于灰度或单通道图像超分辨率。对于彩色图像,上述方法首先将问题转换到不同的颜色空间(YCbCr或YUV),然后仅在亮度通道上应用SR。也有一些工作尝试同时超分辨所有通道。例如,Kim和Kwon[25]以及Dai等人[7]将他们的模型应用于每个RGB通道,并将它们组合以产生最终结果。然而,他们都没有分析不同通道的SR性能,以及恢复所有三个通道的必要性。 + +### 2.2 卷积神经网络 +卷积神经网络(CNN)已有数十年的历史[27],最近由于其在图像分类[18]、[26]中的成功,深度CNN显示出爆炸性的流行。它们也成功应用于其他计算机视觉领域,如目标检测[34]、[40]、[52]、人脸识别[39]和行人检测[35]。这一进展的几个关键因素包括:(i)在现代强大GPU上的高效训练实现[26],(ii)提出整流线性单元(ReLU)[33],使得收敛更快,同时仍保持良好质量[26],以及(iii)易于获取大量数据(如ImageNet[9])用于训练更大模型。我们的方法也从这些进展中受益。 + +### 2.3 用于图像恢复的深度学习 +已有一些研究使用深度学习技术进行图像恢复。多层感知器(MLP),其所有层都是全连接的(与卷积相反),被应用于自然图像去噪[3]和去模糊后去噪[36]。与我们的工作更相关的是,卷积神经网络被应用于自然图像去噪[22]和去除噪声模式(污垢/雨)[12]。这些恢复问题或多或少都是去噪驱动的。Cui等人[5]提出在他们的超分辨率流程中嵌入自动编码器网络,基于内部示例方法[16]。深度模型并非专门设计为端到端解决方案,因为级联的每一层都需要独立优化自相似性搜索过程和自动编码器。相反,所提出的SRCNN优化了端到端映射。此外,SRCNN在速度上更快。它不仅在定量上是一种优越的方法,而且在实际应用中也是一种有用的方法。 + +## 3 用于超分辨率的卷积神经网络 + +## 3.1 公式化 + +考虑单幅低分辨率图像,首先使用双三次插值将其放大到所需尺寸,这是执行的唯一预处理[^3]。将插值后的图像表示为 $Y$。目标是从 $Y$ 中恢复图像 $F(Y)$,使其尽可能接近真实的高分辨率图像 $X$。为了便于表示,仍然称 $Y$ 为“低分辨率”图像,尽管它与 $X$ 具有相同的大小。希望学习映射 $F$,从概念上讲,它包括三个操作: +1. 图像块提取与表示:此操作从低分辨率图像 $Y$ 中提取(重叠的)图像块,并将每个图像块表示为高维向量。这些向量构成一组特征图,其数量等于向量的维度。 +3. 非线性映射:此操作将每个高维向量非线性地映射到另一个高维向量。每个映射后的向量在概念上是高分辨率图像块的表示。这些向量构成另一组特征图。 +3. 重建:此操作聚合上述高分辨率图像块的表示,以生成最终的高分辨率图像。该图像应与真实图像 $X$ 相似。 + +所有这些操作形成一个卷积神经网络。网络的概览如图2所示。接下来详细定义每个操作。 + +[^3]: 双三次插值也是一种卷积操作,因此可以将其表述为卷积层。然而,该层的输出大小大于输入大小,因此存在分数步幅。为了利用流行的优化实现(如cuda-convnet[26]),将此“层”排除在学习之外。 + +### 3.1.1 图像块提取与表示 + +在图像恢复中的一种流行策略(例如,[1])是密集地提取图像块,然后通过一组预训练的基(如 PCA、DCT、Haar 等)来表示它们。这等价于通过一组滤波器对图像进行卷积,每个滤波器都是一个基。在本文的公式中,将这些基的优化纳入网络的优化中。形式上,第一层表示为操作 $F_1$: + +$$ +F_1(Y) = \max (0, W_1 ∗ Y + B_1) +$$ + +其中,W1和B1分别表示滤波器和偏置,'∗'表示卷积操作。这里,W1对应于n1个支持c×f1×f1的滤波器,其中c是输入图像的通道数,f1是滤波器的空间大小。直观地说,W1在图像上应用n1个卷积,每个卷积的核大小为c×f1×f1。输出由n1个特征图组成。B1是一个n1维向量,其每个元素与一个滤波器相关联。我们在滤波器响应上应用整流线性单元(ReLU,max(0, x))[33]4。 \ No newline at end of file diff --git a/doc/sr/SRCNN/srcnn.txt b/doc/sr/SRCNN/srcnn.txt new file mode 100644 index 0000000..c5480a2 --- /dev/null +++ b/doc/sr/SRCNN/srcnn.txt @@ -0,0 +1,39 @@ +以下是与超分辨率卷积神经网络(SRCNN)相关的论文列表,包括原始工作、扩展和应用: + + +## 1. 原始SRCNN论文: +- **Dong, C., Loy, C. C., He, K., & Tang, X. (2016).** + "Image Super-Resolution Using Deep Convolutional Networks." + *IEEE Transactions on Pattern Analysis and Machine Intelligence*, 38(2), 295-307. + [DOI: 10.1109/TPAMI.2015.2439281](https://doi.org/10.1109/TPAMI.2015.2439281) + +## 2. 扩展和改进: +- **Kim, J., Lee, J. K., & Lee, K. M. (2016).** + "Accurate Image Super-Resolution Using Very Deep Convolutional Networks." + *Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition*, pp. 1646-1654. + [arXiv:1511.04587](https://arxiv.org/abs/1511.04587) + +- **Ledig, C., Theis, L., Huszár, F., Caballero, J., Cunningham, A., Acosta, A., & Aitken, A. P. (2017).** + "Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network." + *Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition*, pp. 4681-4690. + [arXiv:1609.04802](https://arxiv.org/abs/1609.04802) + +- **Shi, W., Caballero, J., Huszár, F., & Aitken, A. P. (2016).** + "Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network." + *Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition*, pp. 1874-1883. + [arXiv:1609.05158](https://arxiv.org/abs/1609.05158) + +SRCNN 提出了一种用于单图像超分辨率 (SR) 的新型深度学习方法。SRCNN 表明,传统的基于稀疏编码的 SR 方法可以重新表述为深度卷积神经网络。SRCNN 提出的结构具有简单和鲁棒的优点,可以应用于其他低级视觉问题,如图像去模糊或同步 SR+去噪。还可以研究网络以应对不同的上采样因子。 + +主要贡献: +1. SRCNN 提出了用于图像超分辨率的全卷积神经网络(fully convolutional neural network)。该网络直接学习低分辨率和高分辨率图像之间的端到端映射,除了优化之外,几乎没有前/后处理。 +2. SRCNN 建立了基于深度学习的 SR 方法和传统的基于稀疏编码的 SR 方法的关系。此关系为网络结构的设计提供了指导。 +3. 证明深度学习在超分辨率的经典计算机视觉问题中很有用,并且可以获得良好的质量和速度。 + +## SRCNN 网络结构 + +SRCNN 网络结构主要包括三个部分: + +- patch 提取和表示:从低分辨率图像中提取重叠的 patch,并通过卷积算子表示为高维向量。这些高维向量组成特征图(feature maps)。 +- 非线性映射:将每个高维向量非线性地映射到另一个高维向量上。这个映射过程可以通过1x1卷积实现,从而改变特征的个数但保持特征本身不变。非线性体现在使用了ReLU激活函数。 +- 重构:聚合高维向量以生成最终的高分辨率图像。重建后的图像应尽可能与原始高分辨率图像相似。 diff --git a/doc/sr/index.md b/doc/sr/index.md index 456e6a5..cf6acad 100644 --- a/doc/sr/index.md +++ b/doc/sr/index.md @@ -1,6 +1,5 @@ # 超分辨率 ```{toctree} -intro SRCNN/index ``` diff --git a/doc/tutorials/index.md b/doc/tutorials/index.md index 0185f52..1efd2b4 100644 --- a/doc/tutorials/index.md +++ b/doc/tutorials/index.md @@ -3,7 +3,6 @@ ```{toctree} basics/index transforms/index -vision/index feature-extraction old/index ``` diff --git a/doc/tutorials/old/intermediate/index.md b/doc/tutorials/old/intermediate/index.md index 22fe773..e27408a 100644 --- a/doc/tutorials/old/intermediate/index.md +++ b/doc/tutorials/old/intermediate/index.md @@ -8,5 +8,4 @@ fx_profiling memory_format forward_ad_usage fx_conv_bn_fuser -nlp/index ``` diff --git a/doc/tutorials/old/intermediate/pinmem-nonblock.ipynb b/doc/tutorials/old/intermediate/pinmem-nonblock.ipynb index 2c84ef6..24b4702 100644 --- a/doc/tutorials/old/intermediate/pinmem-nonblock.ipynb +++ b/doc/tutorials/old/intermediate/pinmem-nonblock.ipynb @@ -82,7 +82,7 @@ "tensordict in your environment yet, install it by running the following\n", "command in a separate cell:\n", "\n", - "``` {.bash}\n", + "```bash\n", "# Install tensordict with the following command\n", "!pip3 install tensordict\n", "```\n", diff --git a/doc/tutorials/old/intermediate/nlp/char_rnn_classification_tutorial.ipynb b/tests/chaos/nlp/char_rnn_classification_tutorial.ipynb similarity index 100% rename from doc/tutorials/old/intermediate/nlp/char_rnn_classification_tutorial.ipynb rename to tests/chaos/nlp/char_rnn_classification_tutorial.ipynb diff --git a/doc/tutorials/old/intermediate/nlp/char_rnn_generation_tutorial.ipynb b/tests/chaos/nlp/char_rnn_generation_tutorial.ipynb similarity index 100% rename from doc/tutorials/old/intermediate/nlp/char_rnn_generation_tutorial.ipynb rename to tests/chaos/nlp/char_rnn_generation_tutorial.ipynb diff --git a/doc/tutorials/old/intermediate/nlp/index.md b/tests/chaos/nlp/index.md similarity index 100% rename from doc/tutorials/old/intermediate/nlp/index.md rename to tests/chaos/nlp/index.md diff --git a/doc/tutorials/old/intermediate/nlp/seq2seq_translation_tutorial.ipynb b/tests/chaos/nlp/seq2seq_translation_tutorial.ipynb similarity index 100% rename from doc/tutorials/old/intermediate/nlp/seq2seq_translation_tutorial.ipynb rename to tests/chaos/nlp/seq2seq_translation_tutorial.ipynb diff --git a/doc/tutorials/vision/dcgan-faces.ipynb b/tests/chaos/vision/dcgan-faces.ipynb similarity index 100% rename from doc/tutorials/vision/dcgan-faces.ipynb rename to tests/chaos/vision/dcgan-faces.ipynb diff --git a/doc/tutorials/vision/detection.ipynb b/tests/chaos/vision/detection.ipynb similarity index 100% rename from doc/tutorials/vision/detection.ipynb rename to tests/chaos/vision/detection.ipynb diff --git a/doc/tutorials/vision/fgsm.ipynb b/tests/chaos/vision/fgsm.ipynb similarity index 100% rename from doc/tutorials/vision/fgsm.ipynb rename to tests/chaos/vision/fgsm.ipynb diff --git a/doc/tutorials/vision/index.md b/tests/chaos/vision/index.md similarity index 100% rename from doc/tutorials/vision/index.md rename to tests/chaos/vision/index.md diff --git a/doc/tutorials/vision/spatial-transformer.ipynb b/tests/chaos/vision/spatial-transformer.ipynb similarity index 100% rename from doc/tutorials/vision/spatial-transformer.ipynb rename to tests/chaos/vision/spatial-transformer.ipynb diff --git a/doc/tutorials/vision/tiatoolbox.ipynb b/tests/chaos/vision/tiatoolbox.ipynb similarity index 100% rename from doc/tutorials/vision/tiatoolbox.ipynb rename to tests/chaos/vision/tiatoolbox.ipynb diff --git a/doc/tutorials/vision/transfer-learning.ipynb b/tests/chaos/vision/transfer-learning.ipynb similarity index 100% rename from doc/tutorials/vision/transfer-learning.ipynb rename to tests/chaos/vision/transfer-learning.ipynb diff --git a/doc/tutorials/vision/vt.ipynb b/tests/chaos/vision/vt.ipynb similarity index 100% rename from doc/tutorials/vision/vt.ipynb rename to tests/chaos/vision/vt.ipynb diff --git a/tests/refs/index.md b/tests/refs/index.md new file mode 100644 index 0000000..21f696e --- /dev/null +++ b/tests/refs/index.md @@ -0,0 +1,3 @@ +# 资料汇总 + +本目录收录临时的一些资料,后续会整理到其他地方 diff --git a/doc/sr/intro.md b/tests/refs/sr.md similarity index 100% rename from doc/sr/intro.md rename to tests/refs/sr.md diff --git a/tests/refs/what.md b/tests/refs/what.md new file mode 100644 index 0000000..7e888aa --- /dev/null +++ b/tests/refs/what.md @@ -0,0 +1,36 @@ +超分辨率技术(Super-Resolution, SR)是一种**先进的图像处理技术**,旨在从低分辨率(Low-Resolution, LR)图像重建出相应的高分辨率(High-Resolution, HR)图像。以下是对超分辨率技术的详细介绍: + +1. **定义与原理**:超分辨率技术通过算法提升图像的分辨率,即增加图像中的像素数量,从而恢复或增强图像的细节和纹理信息[^2^][^3^]。其核心思想是利用多幅低分辨率图像之间的互补信息,通过特定的算法重建出一幅高分辨率图像[^1^][^4^]。 + +2. **应用领域**:超分辨率技术在多个领域都有广泛的应用。例如,在公共安防领域,它可以帮助警察提取清晰的人脸、车牌号等关键信息,有助于案件侦破[^5^]。在医学诊断领域,由于成像设备限制和复杂的临床环境,医学领域所获取的影像常常存在分辨率不足的问题,超分辨率技术可以改善这一状况,提高医生对疾病的准确诊断与治疗决策[^5^]。此外,超分辨率技术还在卫星遥感、数字娱乐等领域发挥着重要作用[^5^]。 + +3. **算法分类**:目前,超分辨率方法主要分为三类:基于插值的方法、基于重构的方法和基于学习的方法[^2^][^5^]。其中,基于学习的方法尤其是深度学习方法已经成为超分辨率领域的主流方法[^5^]。 + +综上所述,超分辨率技术是一种重要的图像处理技术,具有广泛的应用前景和研究价值。 + +超分辨率技术(Super-Resolution, SR)是一种图像处理技术,旨在从低分辨率(Low-Resolution, LR)图像重建出相应的高分辨率(High-Resolution, HR)图像。以下是对超分辨率技术实现方法的详细介绍: + +1. **数据准备**: + - 使用已知的下采样方式来得到成对的数据,常用的方式是bicubic down sampling[^1^]。 + - 数据集的选择和准备对于模型的训练至关重要。常用的数据集包括Set5、Set14、DIV2K、Urban100、BSD100等,其中DIV2K是常用的训练集[^1^]。 + +2. **模型构建**: + - 超分辨率深度学习模型通常由上采样模块和大量特征提取模块组成,广泛使用跳接结构[^1^]。 + - 基于卷积神经网络(CNN)的SR方法,如SRCNN,通过卷积层拟合低分辨率图像跟高分辨率图像之间的非线性映射[^2^][^4^]。 + - 基于残差网络(ResNet)的SR方法,如VDSR,利用残差深度网络解决SR问题[^2^]。 + - 基于生成对抗网络(GAN)的SR方法,如SRGAN,引入GAN进行超分领域,提出内容损失,关注重建图像和原始图像的语义特征差异[^2^]。 + +3. **模型训练**: + - 在大量数据集上训练深度神经网络模型,以学习低分辨率图像和高分辨率图像之间的映射关系[^1^]。 + - 使用均方误差(MSE)作为损失函数,有利于获得较高的峰值信噪比(PSNR)[^4^]。 + - 对于基于GAN的方法,除了像素损失函数外,还可能使用内容损失函数和对抗损失函数来提升感知质量和生成图像的真实性[^2^]。 + +4. **模型优化**: + - 为了提高计算效率和处理速度,可以采用轻量级的方法,如MSFIN,研究如何让复杂的SR算法迁移至移动设备[^2^]。 + - 引入注意力机制或多尺度特征融合等技术,以捕获更多的信息特征并提高重建效果[^2^]。 + +5. **实际应用**: + - 将训练好的模型应用在实际数据上进行超分辨率处理,以提高图像的清晰度和视觉质量[^1^]。 + - 超分辨率技术在游戏、电影、相机、医疗影像等多个领域都有广泛的应用[^1^]。 + +总的来说,超分辨率技术的实现是一个涉及多个步骤的过程,包括数据准备、模型构建、模型训练、模型优化以及实际应用。随着深度学习技术的不断发展,超分辨率技术也在不断进步和完善。 \ No newline at end of file