Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
28万枚の写真に タグづけした話
Search
T. Fujiba
June 27, 2026
Programming
67
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
28万枚の写真に タグづけした話
T. Fujiba
June 27, 2026
More Decks by T. Fujiba
See All by T. Fujiba
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
190
KlarSky開発譚センサーダストとのAI開発戦記
fujiba
0
93
独自ドメインからのメール送信でDMARCエラーに悩まされた話
fujiba
0
160
Hugo + Firebaseなboilerplate作ったらGWが潰れた話
fujiba
0
110
Other Decks in Programming
See All in Programming
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
golang-bob.pdf
iwatsukayura
0
130
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
The Rails Doctrine Decade
koic
2
590
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
JIS keyboard support in Omarchy
lef237
0
130
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
Docker and Python
trallard
47
4.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Writing Fast Ruby
sferik
630
63k
Building AI with AI
inesmontani
PRO
1
1.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Odyssey Design
rkendrick25
PRO
2
880
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Transcript
28万枚の写真に タグづけした話 ズボラな航空写真作家が、10年放置した撮影地タグを週末で片づけるまで ふじば(T.Fujiba)— 航空写真作家 / プログラマ · 2026.06.27
自己紹介:撮るほうが本業です ふじば(T.Fujiba) 航空写真作家 「情景的飛行機写真」— 飛行機そのものより、飛行機のいる風景を撮る ホームは鳥取空港(TTJ) 撮影のほとんどがここ。ただし遠征の例外がたまに混ざる プログラマ Lightroom カタログは10年もの。気づけば
28万枚 TTJ HND NRT + 27空港 写真展: 空港散歩 V 朱から蒼 〜Airport Stroll V TOTTORI SUNSET & STARLIGHT〜 ▪東京 富士フォトギャラリー銀座 スペース2 2026/10/23(金)〜29(木) 10:30〜19:00(土日: 11:00〜17:00)、最終日は14:00まで ▪大阪 イロリムラ プチホール 2026/11/4(水)〜9(月) 12:00〜19:00(初日: 13:00〜、最終日15:00まで) 2 https://www.fujiba.net/ twitter/insta/github:@fujiba
撮影地タグ、もう何年もつけてない 01 最初はまめだった 撮影地(空港名)を毎回手入力。えらい 。ただし最初の数年だけ。 → その後ズボラが勝利 02 「基本は鳥取」の罠 9割は鳥取空港。でも遠征・出張の例外が
混ざるので「全部TTJ」では誤爆する。 → 一括処理ができない 03 手作業は無理 10年分・28万枚超。1枚1秒でも79時間。検 索できないカタログは資産じゃない。 → なんとかせねば 285,630 枚。これを「プラグインを作って」自動でタグ付けすることにした 3
作ったもの:Lightroomプラグイン + ローカル推論サーバ Lightroom Classic プラグイン Lua(SDK) 常駐デーモンとして少しずつ処理 カタログ検索で未処理だけ抽出 カスタムメタデータに書き戻し
airportCode / burstId / chunkId HTTP localhost 推論サーバ Python / FastAPI GPS判定(空港ジオフェンス辞書) YOLOv8:飛行機・猫の検出 CLIP + 線形SVM:空港の推定 SQLite 処理管理DB burst / chunk / photo の台帳 再開・再推定に使う ポイント:Lightroomを止めない。寝てる間も撮影に出てる間も、デーモンが裏で淡々と消化する設計 4
タグ付けの仕様はシンプル 被写体キーワード YOLOv8で検出するのは 「飛行機」と「猫」だけ。 検出したらLightroomのキーワードに登録。 飛行機 猫 空港には猫がいる。撮ってしまう。 だからクラスは2つ必要(伏線)。 撮影地(空港)の特定
信頼できる順に使う。上が獲れたら下は見ない。 1. GPS カメラ/スマホ連携の位置情報。最強 2. 手入力 過去の自分が付けた空港名。信用する 3. 写真から推定 CLIP特徴量 + SVM。最後の砦 優先度: GPS > 手入力 > 画像からの推定 5
28万枚に対峙する 全写真にYOLOとCLIPをかける? …常軌を逸している。 推論の回数をどう減らすかが、この話の本体。
鍵は「写真家の行動」をモデル化すること 連写は数秒の塊になる バッファが詰まるまで連写して、止める。似た写真が5秒以内に固まる。 chunk 1回の撮影は長くても20分 地方空港の折り返し撮影。降りて、撮って、上がるまで。 burst 空港間の移動は1時間以上かかる 物理的に。つまり1時間以内の撮影はぜんぶ同じ空港。 session
画像を見る前に、 撮っている 人間の動きを 見る。 ルールはこの3つだけ。機械学習ではなく、撮影者としての自己観察から出てきた数字。 7
時間で切るだけ:session ⊃ burst ⊃ chunk session 同一空港とみなす範囲 burst 最長20分 chunk
chunk chunk chunk = 5秒以内の連写塊 burst chunk chunk burst間隔 <1時間 ≥1時間 空いたら 別session session =空港が変わった可能性 時間 → 28.5万枚 → 10,267 burst / 100,366 chunk に圧縮(平均27.7枚/burst・最大442枚/burst) 8
推論は代表だけ。結果は信頼度つきで伝播させる 被写体(YOLO)はchunk代表だけ 代表1枚 YOLO実行 同じchunkの残りにはコピー 連写の中身はほぼ同じ画。だから1枚見れば十分。 YOLO実行は 62,713回(全28.5万枚の22%)で済んだ。 撮影地はグループ内で最強の情報が勝つ burst内・session内で最も信頼できる位置情報を全員に配る。
GPS 1枚でもGPS付きがあれば全員その空港 手入力 過去の自分の入力。1枚あればburstごとロック CLIP推定 どちらも無いときだけ。confidence=guess扱い 「確実な1枚」が「不確かな数百枚」を救う構図。 9
伝播の戦果:推論しなかった分が勝ち 62,713回 YOLO推論の総数(28.5万枚の22%) 32,572枚 伝播だけで空港が確定(1,399 burst・推論ゼロ ) 0回 locked burst(手入力済み)への再推論。過去の
自分を上書きしない 空港コードの確定ソース(写真ベース・285,208枚) 手入力 98,015 GPS 81,373 CLIP推定 49,026 伝播 32,572 未確定 23,117 10
機械学習の話は、ここだけ(飾りです) 写真 CLIP 特徴量 線形SVM 空港コード 教師データは手持ちの写真 — 3空港ぶん、自分のカタログから (TTJ/HND/NRT)
足りなければあとで足して再分析と割り切る 重心ベースのオープンセット判定 — どの空港でもなければ「わからない」と 言わせる 出番はGPSも手入力も無いときだけ — あくまで最後の砦 PHOTO [図/スクショ] 空港分類の混同行列 or 学習データのコンタクトシート 11
実装:人間はほぼ書いてない(まあどうでもいい) STEP 1 AntiGravity にコードを書かせる 仕様と文句は人間が言う STEP 2 Claude Code
にレビューと修正をさ せる AI同士で殴り合ってもらう STEP 3 土日 プラグインを回しっぱなし 月曜未明、28万枚完了 12
結果 285,208 処理した写真(カタログ実数 285,630 ) 10,267 burst 100,366 chunk 30空港
タグ付けされた空港 ※一部は要精査 156,823 鳥取空港(TTJ)— 全体の55% 108,426 「飛行機」が写っていた枚数 3,666 「猫」が写っていた枚数 2 飛行機と猫が同時に写っていた枚数 ※集計後に撮影してるので増えてます。 PHOTO 13 結果を見る限り、まあまあいい感じ。
残作業:ここからは運用 ログの精査 判定根拠(source / confidence)は全部SQLiteに残してある。怪しい判定を抽出して眺める。 「鳥取以外」の総点検 TTJ以外にタグ付けされた写真を確認。GPSだけで付いた行ってない空港(静岡5枚・秋田4枚など)が誤検知候補。 辞書を更新して部分再推定 空港ジオフェンス辞書・学習データを直して、該当burstだけ再推定。全部やり直さなくていい設計。 手入力(locked)は絶対に上書きしないので、何度回しても過去の仕事は壊れない。安心して再推定できる。
14
まとめ:効いたのはMLじゃない 1 ドメイン知識のモデル化が9割 「空港の移動は1時間かかる」— 撮影者として自分の行動を観察して出てきたルールが、問題サイズを1/4以下にした。 2 推論より伝播 信頼できるデータ(GPS・過去の手入力)を、信頼できる範囲(burst / session)に配る。確実な1枚が数百枚を救う。
3 MLは最後の砦で十分 CLIP+SVMの出番は他に手がないときだけ。それでも49,026枚を拾ってくれた。適材適所。 15
画像認識は、飛行機と猫で十分。 ありがとうございました — ふじば(T.Fujiba) 28万枚を見てわかったこと:僕のカタログに写っているのは、 ほぼ飛行機(108,426枚)、ときどき猫(3,666枚)。 両方同時に写っていたのは — 2枚だけ。 PHOTO
[写真]空港の猫 (ベストショットを)