AI based multi-label girl image classification system, implemented by using TensorFlow.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 6 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 2 个月前 | ||
| 6 年前 | ||
| 1 年前 | ||
| 6 年前 | ||
| 4 年前 |
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
DeepDanbooru
DeepDanbooru 是一个动漫风格少女图像标签预测系统。你可以在我的在线演示网站 DeepDanbooru Web 上对你的图像进行预测。
环境要求
DeepDanbooru 使用 Python 3.11 编写。需要安装以下软件包:
- Click>=8.1.7
- numpy>=1.26.4
- requests>=2.32.3
- scikit-image>=0.24.0
- six>=1.16.0
- tensorflow>=2.17.0
- tensorflow-io>=0.31.0
或者直接使用 requirements.txt。
> pip install -r requirements.txt
你也可以使用 pip 进行安装。请注意,默认情况下不包含 tensorflow。
若要安装包含 tensorflow 的版本,请添加 tensorflow 额外包。
> # default installation
> pip install .
> # with tensorflow package
> pip install .[tensorflow]
使用方法
- 准备数据集。如果没有数据集,可以使用 DanbooruDownloader 下载 Danbooru 的数据集。如果想要制作自己的数据集,请参见 数据集结构 部分。
- 创建训练项目文件夹。
> deepdanbooru create-project [your_project_folder]
- 准备标签列表。如果您想使用最新标签,请使用以下命令。该命令将从 Danbooru 服务器下载标签。(需要 Danbooru 账户和 API 密钥)
> deepdanbooru download-tags [your_project_folder] --username [your_danbooru_account] --api-key [your_danbooru_api_key]
- (可选)筛选数据集。如果希望使用可选标签(rating 和 score)进行训练,应将其转换为系统标签。
> deepdanbooru make-training-database [your_dataset_sqlite_path] [your_filtered_sqlite_path]
- 修改项目文件夹中的
project.json。你需要将database_path设置更改为实际的 sqlite 文件路径。 - 开始训练。
> deepdanbooru train-project [your_project_folder]
- 开始使用吧。
> deepdanbooru evaluate [image_file_path or folder]... --project-path [your_project_folder] --allow-folder
数据集结构
DeepDanbooru 对输入数据集采用以下文件夹结构。SQLite 文件可以是任意名称,但必须与 images 文件夹位于同一目录下。所有图像文件均存放于以其文件名前 2 个字符命名的子文件夹中。
MyDataset/
├── images/
│ ├── 00/
│ │ ├── 00000000000000000000000000000000.jpg
│ │ ├── ...
│ ├── 01/
│ │ ├── 01000000000000000000000000000000.jpg
│ │ ├── ...
│ └── ff/
│ ├── ff000000000000000000000000000000.jpg
│ ├── ...
└── my-dataset.sqlite
核心是 SQLite 数据库文件。该文件必须包含以下表结构。
posts
├── id (INTEGER)
├── md5 (TEXT)
├── file_ext (TEXT)
├── tag_string (TEXT)
└── tag_count_general (INTEGER)
图像的文件名必须为 [md5].[file_ext]。如果使用您自己的图像,md5 不必是实际的 MD5 哈希值。
tag_string 是用空格分隔的标签列表,例如 1girl ahoge long_hair。
tag_count_general 用于项目设置中的 minimum_tag_count。tag_count_general 值大于或等于该设置值的图像将用于训练。
项目结构
Project 是 DeepDanbooru 中训练的最小单位。您可以修改各种训练参数。
MyProject/
├── project.json
└── tags.txt
tags.txt 包含所有用于预测的标签。您可以创建自己的标签列表,或从 Danbooru 服务器下载最新标签。这是一个简单的按换行符分隔的文件,如下所示:
1girl
ahoge
...