AETM (Aesthetic-guided Topic Model) 是一个基于多模态主题模型的智能配色方案生成系统。该项目结合了文本描述、颜色数据和人工审美评分,通过创新的主题建模方法,实现了从文本描述到高质量配色方案的智能生成。
- 🎯 审美指导:集成人工审美评分,确保生成的配色方案符合人类审美标准
- 🔄 多模态融合:同时处理文本描述和RGB颜色数据,实现跨模态理解
- 🧠 主题建模:基于moETM框架,学习"色彩-文本"联合分布的主题表示
- 🎨 智能生成:支持从文本描述生成配色方案,或从颜色生成文本描述
- 🔍 相似检索:基于主题空间的相似性搜索,快速找到最匹配的配色方案
- 🌐 Web界面:提供友好的Gradio Web界面,支持实时交互
- 多模态主题模型:基于moETM (multi-omics Embedded Topic Model)
- 编码器-解码器架构:双塔结构处理文本和颜色模态
- 专家乘积融合:Product of Gaussians (PoG) 技术融合多模态信息
- VAE正则化:确保潜在空间的规整性和生成能力
- 深度学习:PyTorch + 神经网络
- 自然语言处理:TF-IDF向量化 + 词袋模型
- Web框架:Gradio + 实时交互界面
- 数据处理:Pandas + NumPy + Scikit-learn
AETM/
├── data/ # 数据文件
│ ├── palettes_descriptions.xlsx # 配色方案描述数据
│ └── generate_text_labels.py # 文本标签生成脚本
├── src/ # 源代码
│ ├── topic_model.py # 主题模型定义
│ ├── color_generator_app.py # 主应用(Web界面)
│ ├── train_complete.py # 完整训练脚本
│ ├── train_simple.py # 简化训练脚本
│ ├── train_with_separate_encoders.py # 分离编码器训练
│ └── eval_utils.py # 评估工具
├── models/ # 训练好的模型
├── outputs/ # 生成结果和评估输出
├── matrices/ # 中间矩阵数据
├── moetm/ # moETM参考实现
├── requirements_training.txt # 依赖包列表
├── start_server.sh # Linux/Mac启动脚本
├── start_server.bat # Windows启动脚本
├── deploy_config.py # 部署配置
├── Dockerfile # Docker配置
└── DEPLOYMENT_GUIDE.md # 部署指南
- Python 3.8+
- 至少4GB内存
- 2GB可用磁盘空间
- 克隆项目
git clone https://github.com/1662859379/AETM.git
cd AETM- 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或 venv\Scripts\activate # Windows- 安装依赖
pip install -r requirements_training.txt- 启动应用
# 使用启动脚本
./start_server.sh # Linux/Mac
# 或 start_server.bat # Windows
# 或直接启动
python src/color_generator_app.py- 访问Web界面
打开浏览器访问:
http://localhost:7860
- 在文本输入框中描述你想要的配色风格
- 例如:"我想要一个宁静、夏日海滩感觉的配色方案"
- 点击生成按钮
- 系统会返回5个RGB颜色值和相应的描述
- 输入描述文本
- 系统会在10000+配色方案库中搜索最匹配的方案
- 基于主题相似性和颜色相似性进行排序
- 返回最佳匹配的配色方案
# 完整训练
python src/train_complete.py
# 简化训练
python src/train_simple.py
# 分离编码器训练
python src/train_with_separate_encoders.pyAETM基于moETM框架,将文本描述和RGB颜色数据映射到统一的主题空间:
-
编码阶段:
- 文本塔:处理文本描述 → 主题分布
- 颜色塔:处理RGB颜色 → 主题分布
- 专家乘积:融合两个模态的主题分布
-
解码阶段:
- 从主题分布重构文本和颜色表示
- 生成符合审美标准的配色方案
-
审美指导:
- 集成人工评分作为监督信号
- 确保生成结果符合人类审美标准
L_total = w1 * L_reconstruction + w2 * L_kl + w3 * L_score
- 重构损失:确保生成质量
- KL散度损失:正则化潜在空间
- 评分损失:审美指导
- 主题数量:100个主题
- 嵌入维度:32维
- 数据规模:10,743个配色方案
- 模态融合:文本 + RGB颜色 + 审美评分
- 生成质量:基于人工评分验证
# 开发环境
export FLASK_ENV=development
# 生产环境
export FLASK_ENV=production
# 测试环境
export FLASK_ENV=testNUM_TOPICS: 主题数量 (默认: 100)EMBEDDING_DIM: 嵌入维度 (默认: 32)LEARNING_RATE: 学习率 (默认: 0.001)BATCH_SIZE: 批次大小 (默认: 32)EPOCHS: 训练轮数 (默认: 100)
./start_server.sh # Linux/Mac
start_server.bat # Windows# 使用Docker
docker build -t aetm .
docker run -d -p 7860:7860 --name aetm-app aetm
# 或直接部署
git clone https://github.com/1662859379/AETM.git
cd AETM
python -m venv venv
source venv/bin/activate
pip install -r requirements_training.txt
python src/color_generator_app.py详细部署指南请参考 DEPLOYMENT_GUIDE.md
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- 项目主页:https://github.com/1662859379/AETM
- 问题反馈:https://github.com/1662859379/AETM/issues
- 邮箱:[email protected]
- 感谢moETM论文作者提供的理论基础
- 感谢所有贡献者的辛勤工作
- 感谢开源社区的支持
AETM - 让AI理解人类审美,创造美好色彩世界 🎨