Skip to main content

图像和信号异步处理库。多好玩

项目描述

安卓 linux 视窗 Python 包

概述

Beatmup 是一个可扩展的异步图像和信号处理框架。

Beatmup 主要用于图像处理。

  • 它支持低级用户定义的处理任务执行

    • 并行并使用硬件加速以获得最大速度,
    • 异步,以应用程序友好的方式。
  • 它实现了基本的构建块和预定义的处理操作:

    • 图像重采样和几何运算
    • 基本颜色过滤
    • 洪水填充和轮廓提取
    • 实时渲染

Beatmup 无处不在。

  • 用于linux , WindowsAndroid
  • 用C++11编写,具有JavaPython绑定
  • 预构建的 Python 包可用于 x64 桌面 Windows 和基于 Ubuntu 的 linux 发行版
  • 几乎没有依赖关系:Beatmup 非常容易为不同的平台构建
    • 只需要 git、CMake 和 C++ 编译器
    • Beatmup 使用 gcc、clang 和 msvc 编译

Beatmup 无论其供应商、价格和发布年份如何,都使用 GPU 来加快处理速度。

  • 它运行在
    • 来自主流供应商的桌面 GPU,
    • 集成桌面 GPU,
    • Android GPU,
    • Raspberry Pi GPU(包括 Pi Zero W 在内的所有型号),
    • 英伟达杰森纳米,
    • ...
  • 它使用 GPU
    • x2,基于神经网络的图像放大技术,
    • 运行小型用户定义神经网络的推理,
    • 应用用户定义的 GLSL 着色器来处理图像,
    • Android中的实时相机图像处理,
    • 场景渲染和预定义的图像处理任务。

强调

x2:基于神经网络的图像放大器

Beatmup 可以说是在任何体面的 GPU 上运行基于硬件加速神经网络的快速图像超分辨率的最简单方法。它不提供最先进的 PSNR 分数,但可以在台式机上以每秒一百张图像的速度运行。

有关神经网络设计和推理实现的更多详细信息:Inferring a super-resolution neural network on Raspberry Pi GPU

2.1 版更新:模型的微调版本(使用多个退化内核训练)现在在 DIV2K 验证集上达到 32.64 dB,而初始得分为 32.57 dB。

PictureJam 拼贴制作工具

PictureJam Collage Maker Android 应用程序中使用了 Beatmup 的早期版本。

可用资源

文档

C++

有许多测试应用程序展示了 Beatmup 的使用,并在应用程序文件夹中提供了附加说明。该代码使用 C++ 编写,但普遍有用。几个例子:

  • 应用程序/着色器使用从标准输入读取的自定义 GLSL 片段着色器处理图像。
  • apps/x2x2神经网络的测试应用程序。
  • apps/classify是一个狗图像分类器,是 ResNeXt 的一个变体,在包含 120 类狗和猫图像的 ImageNet 子集上进行训练。推理是使用 OpenGL 着色器实现的。在 Raspberry Pi Zero W 上实现的 Top-1 验证准确率为 72.08%。对 385*385 图像进行分类大约需要 595 毫秒。

Python

python/examples文件夹包含在 Python 中使用 Beatmup 的脚本的详细示例。

Python 中的单元测试在python/tests/test.pypython/tests/test_nnets.py中可用。

Java (安卓)

android/app文件夹中提供了一个 Android 测试应用程序。它由独立的示例组成,展示了如何在 Android 中使用 Beatmup。

快速入门:编译 Beatmup

要让事情运行起来,请确保您已安装gitCMake,然后选择以下复制粘贴配方之一。

Linux

使用 OpenGL 推断的神经网络构建X2应用程序放大图像:

git clone https://github.com/lnstadrum/beatmup.git
cd beatmup
git submodule update --init --recursive
mkdir -p build && cd build
cmake -DUSE_GLX=ON ..
make X2
  • 如果遇到麻烦,请尝试从干净的构建文件夹开始使用-DUSE_OPENGL=ON-DUSE_GLX=ON

  • 系列 4 之前的 Raspberry Pi 上,使用 EGL 后端和以下 CMake 命令:

    cmake -DUSE_EGL=ON -DUSE_BRCM_LIBS=ON -DGLES_VERSION=20 ..

有关 Raspberry Pi 设置的更多详细信息,请点击此处

  • Raspberry Pi 4上,请使用以下 CMake 命令:

    cmake -DUSE_EGL_DRM=ON -DGLES_VERSION=20 ..

有关 Raspberry Pi 4 设置的更多详细信息,请点击此处

构建应用程序后,您可以为其提供您选择的图像并获得放大后的结果,如下所示:

./X2 <your-image>.bmp x2-result.bmp

视窗

要在 Windows 中构建X2应用程序,您可以安装Visual Studio并生成 VS 解决方案,如下所示:

git clone https://github.com/lnstadrum/beatmup.git
cd beatmup
git submodule update --init --recursive
mkdir build && cd build
cmake -DUSE_OPENGL=ON ..

然后在 Visual Studio 中打开.sln解决方案文件并构建可执行文件。

安卓

有一个包含库和测试应用程序模块(libapp)的 Android 项目。要构建它们,请安装 Android Studio 和 Android NDK 包,克隆存储库并打开位于 Android Studio 的android文件夹中的项目。

您也可以在 docker 容器中构建 apk。安装 docker后,您可以运行以下脚本来构建beatmupApp.apk安装包,然后您可以将其复制到您的 Android 手机并在那里打开它以安装测试应用程序:

git clone https://github.com/lnstadrum/beatmup.git
cd beatmup
git submodule update --init --recursive
docker build -f dockerfiles/android.Dockerfile -t beatmup-android .
docker run -v $(pwd):/opt/android-build beatmup-android

更快地开始使用 Python

视窗

Python 3.5、3.6、3.7、3.83.964位 Windows 中提供了预构建的python

python -m pip install --upgrade pip
python -m pip install beatmup

基于 Ubuntu 的 linux

x64 桌面基于 Ubuntu 的 linux 发行版的预构建包可在发布页面上下载。

编译 Python 包

如果没有可用于您的平台/操作系统的预构建包,您可以轻松构建可pip自行安装的 Python 轮。

首先,获取代码并尝试按照上述说明编译应用程序。然后在存储库根文件夹中运行

cd build
make beatmup
cd ../python
python3 setup.py bdist_wheel clean

安装包现在位于python/dist文件夹中。您可以安装它并确保它可以正常工作:

python3 -m pip install --no-index --find-links=dist beatmup
python3 -c "import beatmup; beatmup.say_hi()"

许可和贡献

该项目在 GNU GPL v3 许可下获得许可。

贡献受贡献许可协议 (CLA)的约束。简而言之,根据本协议,您仍然是您贡献的版权所有者,但您允许我们根据可能不同的许可条款使用和分发您的贡献。

如果你想贡献:

否则:

  • 如果您有问题或功能请求,请提出问题,
  • 通过电子邮件联系我们。

项目详情


下载文件

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

内置发行版

beatmup-2.1-cp39-cp39-win_amd64.whl (692.8 kB 查看哈希)

已上传 cp39

beatmup-2.1-cp38-cp38-win_amd64.whl (692.8 kB 查看哈希)

已上传 cp38

beatmup-2.1-cp37-cp37m-win_amd64.whl (688.2 kB 查看哈希

已上传 cp37

beatmup-2.1-cp36-cp36m-win_amd64.whl (688.3 kB 查看哈希

已上传 cp36

beatmup-2.1-cp35-cp35m-win_amd64.whl (688.3 kB 查看哈希

已上传 cp35