Spaces:
Sleeping
Sleeping
Commit ·
e88eb81
1
Parent(s): 61d9491
feat: 実装計画ドキュメントを追加
Browse files- dwpose-editorプロジェクトの実装順序と各フェーズの目標を定義した実装計画を新規作成
- 各フェーズの目標、順序、内容、推定工数を詳細に記載
- 完了条件や重要な実装ポイント、次のステップについても明記
- docs/実装計画.md +134 -0
docs/実装計画.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# dwpose-editor 実装計画 📋
|
| 2 |
+
|
| 3 |
+
## 概要
|
| 4 |
+
|
| 5 |
+
dwpose-editorプロジェクトの実装順序と各フェーズでの目標を定義します。全20個のissueを6つのフェーズに分けて段階的に実装していきます。
|
| 6 |
+
|
| 7 |
+
## フェーズ別実装計画 🚀
|
| 8 |
+
|
| 9 |
+
### 🏗️ **フェーズ1: プロジェクト基盤構築**
|
| 10 |
+
**目標**: 基本的なGradioアプリケーションの起動とCanvasの表示
|
| 11 |
+
|
| 12 |
+
| 順序 | Issue | 内容 | 推定工数 |
|
| 13 |
+
|------|-------|------|----------|
|
| 14 |
+
| 1 | [001_プロジェクト基本構造構築](../issues/001_プロジェクト基本構造構築.md) | ディレクトリ構造、app.py、requirements.txt | 2時間 |
|
| 15 |
+
| 2 | [002_Gradio基本UIレイアウト](../issues/002_Gradio基本UIレイアウト.md) | 3カラムレイアウト、基本コンポーネント | 3時間 |
|
| 16 |
+
| 3 | [004_Canvas要素初期化](../issues/004_Canvas要素初期化.md) | JavaScript埋め込み、Canvas初期化 | 4時間 |
|
| 17 |
+
|
| 18 |
+
**完了条件**: `python app.py`でGradioアプリが起動し、Canvasが表示される
|
| 19 |
+
|
| 20 |
+
---
|
| 21 |
+
|
| 22 |
+
### 🔧 **フェーズ2: DWPoseモデル統合**
|
| 23 |
+
**目標**: DWPoseモデルの初期化とエラーハンドリング基盤
|
| 24 |
+
|
| 25 |
+
| 順序 | Issue | 内容 | 推定工数 |
|
| 26 |
+
|------|-------|------|----------|
|
| 27 |
+
| 4 | [003_DWPoseモデル統合](../issues/003_DWPoseモデル統合.md) | Hugging Faceモデル取得、ONNX実行 | 5時間 |
|
| 28 |
+
| 5 | [019_エラーハンドリング統合](../issues/019_エラーハンドリング統合.md) | 統一エラー処理、例外クラス | 3時間 |
|
| 29 |
+
| 6 | [020_Gradioトースト通知](../issues/020_Gradioトースト通知.md) | ユーザー通知システム | 2時間 |
|
| 30 |
+
|
| 31 |
+
**完了条件**: DWPoseモデルが正常に初期化され、エラー時に適切な通知が表示される
|
| 32 |
+
|
| 33 |
+
---
|
| 34 |
+
|
| 35 |
+
### 🎨 **フェーズ3: 描画機能実装**
|
| 36 |
+
**目標**: ポーズの描画と画像アップロード機能
|
| 37 |
+
|
| 38 |
+
| 順序 | Issue | 内容 | 推定工数 |
|
| 39 |
+
|------|-------|------|----------|
|
| 40 |
+
| 7 | [005_ポーズ基本描画機能](../issues/005_ポーズ基本描画機能.md) | スティックフィギュア描画 | 4時間 |
|
| 41 |
+
| 8 | [008_座標変換システム](../issues/008_座標変換システム.md) | データ解像度vs表示サイズ変換 | 5時間 |
|
| 42 |
+
| 9 | [006_画像アップロード処理](../issues/006_画像アップロード処理.md) | 背景画像表示、リサイズ処理 | 3時間 |
|
| 43 |
+
| 10 | [007_DWPose自動抽出機能](../issues/007_DWPose自動抽出機能.md) | 画像からポーズ自動検出 | 4時間 |
|
| 44 |
+
|
| 45 |
+
**完了条件**: 画像をアップロードすると自動でポーズが検出・表示される
|
| 46 |
+
|
| 47 |
+
---
|
| 48 |
+
|
| 49 |
+
### ✏️ **フェーズ4: 基本編集機能**
|
| 50 |
+
**目標**: キーポイントの編集とモード切替
|
| 51 |
+
|
| 52 |
+
| 順序 | Issue | 内容 | 推定工数 |
|
| 53 |
+
|------|-------|------|----------|
|
| 54 |
+
| 11 | [009_キーポイントドラッグ基本](../issues/009_キーポイントドラッグ基本.md) | マウスドラッグ編集 | 5時間 |
|
| 55 |
+
| 12 | [014_モード切替ラジオボタン](../issues/014_モード切替ラジオボタン.md) | 簡易/詳細モード切替 | 2時間 |
|
| 56 |
+
| 13 | [010_手描画チェックボックス](../issues/010_手描画チェックボックス.md) | 手表示の切替 | 1時間 |
|
| 57 |
+
| 14 | [011_顔描画チェックボックス](../issues/011_顔描画チェックボックス.md) | 顔表示の切替 | 1時間 |
|
| 58 |
+
|
| 59 |
+
**完了条件**: キーポイントをマウスで編集でき、表示設定を変更できる
|
| 60 |
+
|
| 61 |
+
---
|
| 62 |
+
|
| 63 |
+
### 🔄 **フェーズ5: 高度な編集機能**
|
| 64 |
+
**目標**: 簡易モードの矩形操作と詳細編集
|
| 65 |
+
|
| 66 |
+
| 順序 | Issue | 内容 | 推定工数 |
|
| 67 |
+
|------|-------|------|----------|
|
| 68 |
+
| 15 | [012_簡易モード矩形選択](../issues/012_簡易モード矩形選択.md) | 手顔の矩形操作 | 6時間 |
|
| 69 |
+
| 16 | [013_詳細モード個別編集](../issues/013_詳細モード個別編集.md) | 個別キーポイント編集 | 3時間 |
|
| 70 |
+
| 17 | [015_Canvas解像度変更機能](../issues/015_Canvas解像度変更機能.md) | 解像度調整機能 | 2時間 |
|
| 71 |
+
| 18 | [016_テンプレートポーズ選択](../issues/016_テンプレートポーズ選択.md) | 2頭身/3頭身テンプレート | 3時間 |
|
| 72 |
+
|
| 73 |
+
**完了条件**: 簡易モードの矩形操作と詳細モードの個別編集が両方機能する
|
| 74 |
+
|
| 75 |
+
---
|
| 76 |
+
|
| 77 |
+
### 📤 **フェーズ6: エクスポート機能**
|
| 78 |
+
**目標**: 編集結果の出力機能
|
| 79 |
+
|
| 80 |
+
| 順序 | Issue | 内容 | 推定工数 |
|
| 81 |
+
|------|-------|------|----------|
|
| 82 |
+
| 19 | [017_ポーズ画像エクスポート](../issues/017_ポーズ画像エクスポート.md) | PNG画像出力 | 3時間 |
|
| 83 |
+
| 20 | [018_JSONデータエクスポート](../issues/018_JSONデータエクスポート.md) | JSON形式出力 | 2時間 |
|
| 84 |
+
|
| 85 |
+
**完了条件**: ポーズをPNG画像とJSONデータの両方でエクスポートできる
|
| 86 |
+
|
| 87 |
+
---
|
| 88 |
+
|
| 89 |
+
## 総開発工数 ⏱️
|
| 90 |
+
|
| 91 |
+
| フェーズ | 工数 | 累積工数 |
|
| 92 |
+
|----------|------|----------|
|
| 93 |
+
| フェーズ1 | 9時間 | 9時間 |
|
| 94 |
+
| フェーズ2 | 10時間 | 19時間 |
|
| 95 |
+
| フェ���ズ3 | 16時間 | 35時間 |
|
| 96 |
+
| フェーズ4 | 9時間 | 44時間 |
|
| 97 |
+
| フェーズ5 | 14時間 | 58時間 |
|
| 98 |
+
| フェーズ6 | 5時間 | **63時間** |
|
| 99 |
+
|
| 100 |
+
**推定総開発期間**: 約8-10営業日(1日7-8時間作業想定)
|
| 101 |
+
|
| 102 |
+
## 重要な実装ポイント 💡
|
| 103 |
+
|
| 104 |
+
### 🚨 **注意すべき難易度の高い部分**
|
| 105 |
+
1. **Canvas初期化** (Issue #004): Gradio要素の遅延生成対応
|
| 106 |
+
2. **座標変換システム** (Issue #008): 複数座標系の統一管理
|
| 107 |
+
3. **簡易モード矩形操作** (Issue #012): 21キーポイント→4点矩形変換
|
| 108 |
+
|
| 109 |
+
### 🔄 **Issue間の主要依存関係**
|
| 110 |
+
- Issue #005 → Issue #008 (描画機能は座標変換に依存)
|
| 111 |
+
- Issue #009 → Issue #008 (ドラッグは座標変換に依存)
|
| 112 |
+
- Issue #012, #013 → Issue #014 (編集モードはモード切替に依存)
|
| 113 |
+
- Issue #017, #018 → Issue #005 (エクスポートは描画機能に依存)
|
| 114 |
+
|
| 115 |
+
### 📚 **参考にすべきdwpose_modifier issueファイル**
|
| 116 |
+
- Canvas初期化: `019_test_gradio_simple実験継続_complete.md`
|
| 117 |
+
- 座標変換: `021_ドラッグ時座標ジャンプ修正_complete.md`
|
| 118 |
+
- 矩形操作: `028_手顔キーポイント矩形操作機能.md`
|
| 119 |
+
|
| 120 |
+
## 実装進捗の記録方法 📝
|
| 121 |
+
|
| 122 |
+
各issueの実装完了時に以下を更新:
|
| 123 |
+
|
| 124 |
+
1. **issueファイル**: 完了条件にチェック ✅
|
| 125 |
+
2. **CLAUDE.md**: 実装ステータスの更新
|
| 126 |
+
3. **この実装計画**: 進捗状況の記録
|
| 127 |
+
|
| 128 |
+
## 次のステップ 🎯
|
| 129 |
+
|
| 130 |
+
実装開始時は**フェーズ1のIssue #001**から順番に進めること。各フェーズ完了時に動作確認を行い、問題があれば次のフェーズに進まずに修正する。
|
| 131 |
+
|
| 132 |
+
---
|
| 133 |
+
|
| 134 |
+
*最終更新: 2025-01-11*
|