gearmachine commited on
Commit
e88eb81
·
1 Parent(s): 61d9491

feat: 実装計画ドキュメントを追加

Browse files

- dwpose-editorプロジェクトの実装順序と各フェーズの目標を定義した実装計画を新規作成
- 各フェーズの目標、順序、内容、推定工数を詳細に記載
- 完了条件や重要な実装ポイント、次のステップについても明記

Files changed (1) hide show
  1. 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*