前回、写真から服を登録するアプリを作り始めて、猫と服が同点になった話を書きました。
あれから2週間ほど作り続けて、天気連携までたどり着きました。
その過程で、前回とは違う壁にぶつかりました。
AIにコードを書かせるより、「完成したかどうか」を判断させるほうが難しい。
🍳 ちなみに、卵料理も人物でした
前回は猫の話だけ書きましたが、実は他にもいました。
- 猫 … 人物スコア100点
- 手 … 人物
- 卵料理 … 人物
目玉焼きが人間として認識されていました。
この時点では人物検出がほぼ機能していなかったので、その後に作り直しています。
🔒 まず、顔認識をやめました
実装を進める前に、設計を大きく変えました。
当初の構想はこうでした。
写真フォルダ全体をスキャン
↓
顔を検出して、同じ人物をまとめる
↓
「これがあなたですか?」と確認
↓
その人が着ている服を抽出
自動で本人を見つけてくれるので、楽です。
でも、設計を相談したときに指摘されて気づきました。
写真に写っているのは、自分だけではありません。
顔の特徴を数値化したデータは、日本の個人情報保護法では「個人識別符号」にあたります。EUのGDPRでは特別カテゴリのデータ、アメリカのイリノイ州には1件あたり数千ドルの賠償を定めた法律もあります。
つまり、一緒に写っている人の顔を、同意なく解析することになる。
端末の中だけで処理するとしても、この構造は変わりません。
それに顔認識モデルを使うなら、そのモデルが何の写真で学習されたかまで確認する必要があります。同意なく集められた顔写真で学習されたモデルは、商用利用に法的な議論があります。
設計を1つ変えたら、全部消えました
変えたのは、たった1点です。
| 旧 | 新 |
|---|---|
| AIが本人を判定する | ユーザーが写真を選ぶ |
| 顔認識・顔の特徴量を作る | 人がいるかどうかだけ見る |
「この顔が誰か」を判定するのが規制の対象であって、「人が写っているか」を見るだけなら対象外です。
これで、抱えていた問題がまとめて消えました。
- 顔認識モデルのライセンス調査 → 不要
- 学習データ由来の権利問題 → 消滅
- 顔の特徴量を保存・削除する設計 → 不要
- 同行者の顔を無断で解析する問題 → 発生しない
実装を速くするより、実装しないで済ませるほうが速かったという話でした。
ちなみに写真は今も端末の外に出しません。撮影場所の位置情報も、切り出した画像には引き継がないようにしています。
😇 顔を消したら、正解の服まで消えた
ここから実装の話です。
前回、顔がトップスの候補に混ざる問題がありました。人物の領域を上下に分けていたので、上半分に顔が入ってしまう。
そこで、体の関節位置を推定して、頭部を除外するように変えました。
顔は消えました。
ただし、服として認識してほしかった写真まで、候補から消えました。
間違いを減らすと、取りこぼしが増える。よくある話です。
ここは割り切りました。
間違ったものを大量に出すより、少し取りこぼすほうがマシ。
顔がトップスとして登録されるくらいなら、数枚見逃してもらったほうがいい。取りこぼしはユーザーが手で足せますが、変なものが混ざるのは気持ち悪いので。
👕 服の写真なのに、服だから弾かれた
次の問題です。
ハンガーに掛けた服を20枚ほど撮って入れたら、3枚しか候補になりませんでした。
理由は単純で、「人が写っている写真から服を探す」設計だったからです。
服だけの写真には人がいません。だから対象外になる。正しく動いた結果、目的を果たせていませんでした。
ここで入力を4つに分けました。
- 写真から選ぶ
- フォルダを選ぶ
- 服だけ撮る
- 着たまま撮る
そして、やってみて分かったことがあります。
服だけを撮ったほうが、圧倒的に安定します。
元々の企画の中心は「写真フォルダから自動で服を集める」ことでした。でも実装してみると、それがいちばん難しくて、いちばん精度が出ない。
目玉機能のつもりだったものが、4つある入力方法のうちの1つになりました。
❌ 17件中、17件失敗
ここからが今回の本題です。
洋服の写真17枚を入れたら、こうなりました。
成功:0件
失敗:17件
全滅です。画像の読み込みに失敗していました。
ここで私が驚いたのは、失敗したことではありません。
AIが、その状態で作業を終えたことです。
報告はこうでした。
「エラーが表示されるようにしました」
合っています。エラーは表示されています。17件分。
でも、17件中17件が失敗している画面は、どう見ても完成ではありません。
その後、原因を伝えて直してもらったら、18件成功・0件失敗になりました。直せないわけではないんです。
「まだ終わっていない」と気づかないだけでした。
🔄 第3工程を直したら、第2工程の画像が消えた
似たことが何度も起きました。
服を切り出す工程を直したら、その手前の「人物を選ぶ」画面から画像が消えました。人数もスコアも表示されているのに、写真だけ真っ白。
直した場所は合っています。でも、別の場所が壊れました。
人間なら、直したあとに前の画面も一応見ます。でもAIは、頼まれた場所だけ直して報告してくる。
💬 「その通りです」とは言う
面白いのはここからです。
おかしくなった画面のスクリーンショットを見せると、AIはちゃんと認めます。
「その通りです」
何が壊れているかも正確に説明してくれます。原因も特定します。直してくれます。
でも、見せるまでは気づきません。
途中でこういう指示も出しました。
「画面を確認して、やりたいこととズレていたら、修正まで行ってください」
それでも、17件全滅の状態で止まりました。
📝 完成の定義は、人間が持っている
2週間やって、こう整理しました。
| AI | 人間 | |
|---|---|---|
| コードを書く | 速い | 遅い |
| 指示された修正 | できる | できる |
| 間違いを認める | できる | できる |
| 終わったかどうかの判断 | できない | できる |
「17件中17件失敗しているから、これは完成ではない」
この判断だけが、最後まで人間側に残りました。
コードを書く速さは、もう人間が勝てるところではありません。でも「これでいいのか」を決めるのは、まだこちらの仕事でした。
だからこの2週間、私がやっていたことの大半は画面を見ることでした。動かして、おかしいところを見つけて、伝える。それだけです。
🌦️ それでも、ここまで来ました
文句ばかり書きましたが、動くものはできています。
- 写真から服を登録する(4つの入力方法)
- 複数人が写っていたら、対象をタップで選ぶ
- カテゴリ・季節・対応気温を修正できる
- マイクローゼットで一覧・編集
- 天気予報を取得して、気温に合う服を出す
- 今日のコーデ案を最大5つ出す
- 「暑かった・ちょうどよい・寒かった」を記録
- 衣替えのときに見直し候補を出す
2週間前は「猫と服が同点」だったので、進んだほうだと思います。
衣替えの機能では、言葉づかいにこだわりました。
| 使わない | 使う |
|---|---|
| 2年間着ていない | 過去2シーズンの選択写真では確認なし |
| 不要な服 | 見直し候補 |
| 処分候補 | 残す/保留/手放す |
写真に写っていないだけで「着ていない」と断定されると、けっこう腹が立つので。「手放す」を選んでも実際には削除せず、見えないところに残すようにしています。
次は、コーデ案をもう少しまともにするところからです。
いまは気温だけで選んでいるので、色も柄も見ていません。気温は合っているけど組み合わせとしてどうなのか、という服が出てきます。
そこはまだ、人間が見て判断しています🐾
🧪 前回までの記録



