跳转到主要内容

Aydin - 高效去噪

项目描述

image

PyPI - Python Version Code style: black codecov DOI Downloads

Aydin 是一款用户友好、功能丰富且快速的 图像去噪工具,提供多种 自监督、自动调整和无监督 的图像去噪算法。 Aydin 从一开始就支持任意数量的批处理维度、通道维度以及通常高达4个时空维度的不维数组结构图像。

它包含 Aydin Studio,一个 图形用户界面,可以轻松地试验所有可用的不同算法和参数,一个 命令行界面,可以在终端上运行大型作业,可能是在强大的远程机器上,以及一个 API,用于自定义编码并将其集成到您的脚本和应用程序中。更多详细信息和完整说明请参阅Aydin的文档

当然,还在开发一个简化的 napari 插件!还计划提供在Collab上运行的笔记本。如果您指定pyside作为您的GUI后端,该项目对商业使用友好。

支持算法

目前,Aydin 支持两种主要的去噪器系列:第一系列包括‘经典’去噪算法,这些算法利用了频率域滤波、平滑先验、低秩表示、自相似性等。第二系列包括利用机器学习方法如卷积神经网络(CNN)或梯度提升(GB)的算法。在Noise2Self 论文中,我们展示了可以对任何参数化的去噪算法进行校准,从经典算法的少数几个参数到深度神经网络的数百万个权重。我们在Aydin中利用并扩展了这些想法,以提供各种自动调整和训练的高质量图像去噪器。这意味着例如,我们可以自动发现非局部均值(NLM)去噪的最佳参数,或低通去噪器的最佳截止频率。这些参数很难手动确定,但当我们自动调整时,我们发现(参见用例)即使使用简单的‘经典’去噪器,也能得到显著的结果,甚至可以与更复杂且速度更慢的方法如基于深度学习的去噪器相媲美,后者也可能出现幻觉和‘复制粘贴’效应。重要的是,我们处理许多不同类型的图像的经验表明,不存在单一的‘万能’去噪器,不同类型的数据集需要不同的方法。
以下是当前可用的方法列表

  • 基于低通滤波的算法

    • 巴特沃斯去噪器(butterworth)。
    • 高斯模糊去噪器(gaussian)。
    • 高斯-中值混合去噪器(gm)。
  • 基于优化的平滑先验

    • 总变差去噪(tv
    • 谐波先验(harmonic
  • 低秩表示

    • 通过固定字典(DCT,DST等)上的稀疏分解(例如OMP)进行去噪
    • 通过学习字典(Kmeans,PCA,ICA,SDL等)上的稀疏分解(例如OMP)进行去噪
  • 块相似性

    • 非局部均值去噪(nlm
    • BMnD(目前尚不可用,但部分实现!)
  • 基于机器学习

    • Noise2Self-FGR:通过特征生成和回归(FGR)进行Noise2Self去噪。我们使用专门定制的积分特征。我们有几个利用不同回归器的变体:CatBoost(cb),lightGBM,线性,感知器,随机森林,支持向量回归
    • Noise2Self-CNN:通过卷积神经网络(CNN)进行Noise2Self去噪。这是Noise2Self的原始方法。根据我们的经验,这种方法通常训练速度较慢,比FGR更可能出现幻觉和残余噪声。
  • 其他

    • 利普希茨连续性去噪。

某些方法实际上结合了多个想法,因此上述分类不是严格的。我们建议首先尝试一个好的基线去噪器,如巴特沃斯去噪器。如果您对结果不满意,并且您有一台配备最新NVIDIA显卡的强大计算机,我们建议您尝试Noise2Self-FGR-cb去噪器。有关详细用例,请参阅此处

我们经常提出新的方法和想法,但没有足够的时间撰写关于所有这些想法的论文。这意味着这些新颖算法的最佳‘出版物’正是这个仓库本身,因此请务必引用此仓库(见下文)以使用或重新使用任何想法。我们有长长的待办事项列表,包括现有的、修改的以及原创算法,我们计划在未来几周和几个月内将其添加到Aydin中。我们将随着时间的推移逐步完成这些工作。请保持关注!

文档

Aydin的文档可以在此处找到。

Aydin Studio的安装

我们建议不熟悉Python的用户从我们友好的UI开始。根据您的操作系统在此下载

最新版本和独立可执行文件可以在此处找到,有关所有三个操作系统的Aydin Studio的详细安装说明可以在此处找到。

在Conda中安装Aydin

首先下载并安装minicondaanaconda

然后创建一个conda环境来托管aydin

conda create -n aydin_env python=3.9

激活环境

conda activate aydin_env

在环境中安装Aydin

pip install aydin

CUDA依赖项

如果您有NVIDIA CUDA显卡,应安装CUDA工具包

conda install cudatoolkit

针对Mac的特定依赖项

对于Mac(OSX),您首先需要做

brew install libomp

您可以通过此处的说明安装Brew

针对Ubuntu/Linux的特定依赖项

如果您在Ubuntu/Linux中运行Aydin时遇到问题,请安装以下软件包

sudo apt install libqt5x11extras5

如何运行?

假设您已在一个环境中安装了Aydin,您可以

使用以下命令从命令行启动Aydin Studio

aydin

运行去噪的命令行界面(CLI)

aydin denoise path/to/noisyimage

获取命令行使用帮助

aydin -h

推荐操作系统版本

Linux:Ubuntu 18.04+

Windows:Windows 10

OSX:Mojave 10.14.6+

推荐硬件

推荐配置如下:至少16 Gb的RAM,理想情况下32 Gb,对于非常大的图像,至少4核心的CPU,最好16或更多核心,以及最新的NVIDIA显卡,例如RTX系列显卡。较旧的显卡可能也可以工作,但可能会出现问题或速度过慢。Aydin Studio的摘要页面提供了您机器的优缺点概述,用红色和橙色突出显示可能有问题的地方。

已知问题

以下是正在积极解决并尽快解决的问题

  • 所有算法的停止按钮。由于我们使用的库多样性所涉及的技术原因,我们目前无法停止训练。我们计划通过子进程启动来解决此问题。目前,要停止Aydin运行,您需要关闭窗口和/或终止进程。我们知道这非常不幸,但我们决心尽快修复。

  • 在Ubuntu和其他可能的其他Linux系统上,高dpi模式往往会弄乱字体和UI元素渲染。

  • M1 Mac尚不支持,我们依赖于尚未迁移的库,但希望我们很快就能在M1 Mac上运行Aydin!

路线图

计划功能

  • 在'高级'和'基本'模式之间切换以显示和隐藏高级算法。 :white_check_mark
  • Aydin Studio中加载去噪模型和配置(JSON)
  • Pytorch后端

贡献

请首先查看我们的贡献指南,然后通过问题开始与我们讨论您的新想法和反馈。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

aydin-0.1.15.tar.gz (9.4 MB 查看哈希)

上传于

构建分发

aydin-0.1.15-py3-none-any.whl (637.5 kB 查看哈希值)

上传于 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页