funcai/funcai-php

高性能、业界领先的PHP机器学习库

v0.5.4 2021-11-25 21:05 UTC

README

🌟 FuncAI PHP 🌟

FuncAI 是一个高性能、业界领先的PHP机器学习库。
它没有依赖,可以在PHP运行的地方运行。

If you can spare 2 minutes, please give me some feedback

🖼️ 图像风格化 🖼️

将一个图像的风格应用到另一个图像上。

示例

Shows mona lisa and a comic character which combined result in a third image of mona lisa in the style of the comic character

用途

  • 生成用户提供的图像的艺术版本
  • 确保封面图像的风格一致
  • 用于匿名头像

致谢

🏷️ 图像分类 🏷️

了解图像中的内容。从21.825个类别中返回前5个类别。

示例

An image of a butterfly and 5 matching labels next to it

用途

  • 使您的图像可通过内容进行搜索
  • 自动生成图像名称或alt属性
  • 根据内容对图像进行分组

致谢

未来应用

如果您有未列出的用例,请创建一个 问题 并解释您想做什么。

功能

  • 无处不在运行 - 您只需要PHP,不需要其他任何东西
  • 超级简单的API - 不需要机器学习知识
  • 许多应用 - 准备好使用的广泛机器学习应用

安装

1. 通过 composer 安装包

composer require funcai/funcai-php

2. 下载tensorflow库

php vendor/funcai/funcai-php/install.php

这将tensorflow下载到 ./tensorflow

3. 下载一个模型

php vendor/funcai/funcai-php/install-stylization.php

这将风格化模型下载到 ./models

4. 配置模型文件夹

您需要将模型文件夹移动到永久位置。例如,将其移动到服务器上的 /var/www/models。在这种情况下,请确保相应地设置基本路径

\FuncAI\Config::setModelBasePath('/var/www/models');

您还可以直接将文件夹移动到您的项目中并将它们存入git,但文件夹可能非常大(100 Mb到多个Gb)。

使用方法

完成安装步骤后,您可以运行第一个预测

\FuncAI\Config::setLibPath('./tensorflow/'); // This should point to the path from step 2 
\FuncAI\Config::setModelBasePath('./models'); // This should point to the path from step 4
$model = new \FuncAI\Models\Stylization();
$model->predict([
__DIR__ . '/sample_data/prince-akachi.jpg',
__DIR__ . '/sample_data/style.jpg',
]);

这将输出风格化图像到 ./out.jpg

要求

  • PHP >= 7.4 在Linux上

关于机器学习

待办事项

如何运行docker文件

  • 运行 docker-compose up -d
  • 运行 docker-compose exec app bash
  • 运行 php example.php

架构

  • 使用 FFI 与tensorflow进行预测交互
  • 使用自定义的c++程序进行训练(进行中)
  • 目前支持在Linux上运行,具有CPU支持

待办事项

  • 修复tf_singlefile.h中libtensorflow.so的路径
  • 寻找更好的方式下载/托管模型
  • 检查内存泄露

开发

Docker(可选,但推荐)

安装 Docker

下载efficientnet模型

为了运行示例文件,您需要运行以下docker命令,该命令将下载efficientnet模型并将其保存为正确的文件格式

docker run -it --rm -v $PWD:/code -w /code tensorflow/tensorflow:2.3.0 python scripts/generate/efficientnet.py

或者,如果您已经安装了python3,您可以直接运行

pip3 install tensorflow
python3 scripts/generate/efficientnet.py

运行提供的Docker容器(可选)

要启动提供的Docker容器,该容器提供了php7.4的安装,请运行

docker-compose up -d

之后运行

docker-compose exec app bash

以获取docker容器内的终端。

或者您可以在本地设置PHP 7.4环境并使用它。

更好的phpstorm支持(可选)

进入您的设置,打开“语言与框架 -> PHP -> PHP运行时 -> 其他”。确保“FFI”被勾选。