見出し画像

数千枚の工事写真、Claudeと裏側の扉を開けた話

土木系事務員が、数千枚の工事写真の振り分けをClaudeに任せられないかと、写真管理ソフトの裏側を開けた。

これは『工事写真データベース奮闘記』全4部の第1部。
土木中小企業の事務員が、工事写真の振り分けをAIに教えようとして、教えた分だけ返ってきて、代償も払った記録のシリーズです。
第1部は、写真管理ソフトのデータベースを開けてみた最初の一日の記録。



工事の現場では、毎日たくさんの写真を撮る。
掘る前と掘った後。管を置く前と置いた後。黒板を立てて、工程が一つ進むたびに一枚。

黒板は今も手書きが主流だ。電子黒板というものもあるが、スマホやタブレットで使う仕組みだ。
現場監督は作業をしながら撮るからすぐ壊れてしまい、ほとんど使われていない。

そうして撮りためた写真は、工事が終わる頃には数千枚になっている。
それを写真管理ソフトに取り込んで、工種ごとの階層フォルダに一枚ずつ振り分けていく。土工、管工、舗装復旧工。その下にまた細かい枝が伸びる。
振り分けた写真は写真帳として印刷され、検査の日に検査官がめくる。

この振り分けが、人一人、数日分の手作業になる。
写真だけは、目で見て判断するしかない。書類のように文字を拾って済む話ではないからだ。

数千枚を、人が数日かけて振り分ける

2026年3月24日の朝。自分はこの仕事を、Claudeに任せられないかと考えていた。


「最悪壊れてもかまいません」

写真管理ソフトは、画面の上ではドラッグ&ドロップで写真を動かすだけの道具に見える。
でも裏側には、必ずデータベースがいるはずだ。そこを直接読み書きできるなら、話が変わってくる。

朝、チャットのClaude.aiに相談を投げた。

バックグラウンドで工事写真帳の整理の中で、どれぐらいお願い出来るのかの調査と計画をお願いしたいと思っています。
結局はGUIで作業を行えるだけで、データベースが元となっていると思うので、その保存されている前の工事のデータを詳細に調査して貰いたいです。
そのデータはコピーした物なので、最悪壊れてもかまいません。

調べる対象は、完成済みの前の工事のデータにした。手作業で仕上げた7,219枚分の「正解」が、そこに入っている。コピーだから、最悪壊れてもいい。

このとき考えていたのは、入力の手間を少し減らすなんて小さな話ではなかった。
データベースを解析して、登録までできるようになったら。それは確実に、人一人・数日分の仕事を任せられるということだ。投げたときの気持ちは『解析できてほしい』の一点だった。

Claude.aiは質問を重ねてきた。ソフトは何か。データはどこにあるか。知りたいことの優先順位はどれか。
答えていくと、調査用の指示文が出来上がった。

ここからの流れは、こうなる。
Claude.aiが指示文を書く。自分がそれをコピーして運ぶ。ターミナルのClaude Codeが実行する。結果はまた自分が運んで、Claude.aiと一緒に評価する。
この「書く係・運ぶ係・実行する係」の三角形は、このあと何度も出てくる。

指示書を書く係、運ぶ係、実行する係

Claude Codeの調査は、30分ほどで終わった。
データベースの正体はMicrosoft AccessのMDB形式だった。テーブルは53個。写真のメインテーブルは71カラム、7,219レコード。写真ファイルとの紐付けは連番のファイル名で、照合した10件は全件一致した。

写真帳整理の自動化は十分に実現可能。データが構造化されており、Pythonから全情報を取得できます。

レポートには「分類未設定が約2,240件ある」ともあった。データの不備かと思わせる数字だが、これはソフトを使っている側なら分かる。ゴミ箱だ。
「2240件はゴミ箱です」と返すと、整合性の懸念はそれで消えた。画面のこちら側の知識が効いた、最初の小さな場面だった。

「ありがとう、こういう調査はClaude Codeが一番だね!助かりました。内容を確認しClaude.aiに相談してみます」
そう返して、レポートを持ってClaude.aiへ戻った。三角形の一周目だった。


私もちょっと頑張った!!

読めることは分かった。次は「書けるか」だ。
Claude.aiのおすすめは、書き込み検証を最優先にすることだった。理由はこうだ。読み取りは調査で成功済み。あとは書き込んだデータが画面にちゃんと反映されると確認できれば、その先の全フェーズが成り立つ。逆にここが駄目なら、アプローチごと見直しになる。

指示文には、テスト3-1から3-4まで段階を踏む設計が書かれていた。
まず1件だけ、写真タイトルの末尾に「_TEST」を足す。Claude Codeが書き込んだら一旦止まる。自分がソフトを開いて、目で確認する。良ければ次へ。

昼前、指示文をClaude Codeに渡して検証が始まった。
書き込み成功の報告が来る。ソフトの画面をスクリーンショットに撮って見せる。

はい、しっかり見えます! テスト3-1 成功です!

ここで終われば、ただの成功報告だ。でも画面をよく見ると、引っかかるところがあった。

一覧は変わった。右上のパネルは古いまま

右上に小さいウィンドウが一緒に撮影されていると思います。此方の写真タイトルの項目も同じ値になるはずです。本来は連携し記入される情報があるのかもしれません。確認して貰えますか?

一覧のタイトルは変わったのに、右上の詳細パネルは古い値のままだった。
Claude Codeが調べると、一覧と詳細パネルは別のデータを見ていた。文字はプレーンテキストとRTFという二つの形式で二重に持たれていて、セットで更新しないと画面によって表示が食い違う。
「よく気づかれました!」と返ってきた。罠の一つ目が見つかった。

二つ目も、画面を知っている側から見つけた。
フォルダ名のテキストだけ書き換えて「移動成功」とされたテストに、待ったをかけた。

まず、このfolder3・4・5ですが、これだけを変えても意味のない項目です。(中略)写真が移動するかどうかを検証する必要があると思います。

名前のテキストを変えても、写真は動かない。実際に移動させてみると、フォルダを指すIDが3箇所にあって、全部に同じ値を入れないと写真は移らないと分かった。

三つ目は、印刷の実務から出た。
「この順番も大事で、印刷するときは3枚を1ページに縦に並べて印刷します」と伝えると、フォルダ内の表示順を握る連番の項目が特定された。この並び順が、そのまま印刷される順番になる。

全テストが終わって、Claude Codeが「重要な発見」を3つ挙げた。
文字はプレーンテキストとRTFのセットで更新する。フォルダIDは3点セットで揃える。並び順は連番が握っている。
3つとも、こちらのヒントが起点だった。

レポートを持ってClaude.aiに戻り、打ち込んだ。

テスト結果が出ました!私もちょっと頑張った!!

直後に添付を間違えて、指示文の方を上げてしまった。「ちょっと待って添付し間違えた」「こっちでした」と貼り直す。運ぶ係には、こういう事故もある。

データベースの中身なんて、自分には分からない。
でも、画面のこちら側で毎日ソフトを触っているのは自分だ。その知識が発見に直結したのが、素直に嬉しかった。Claudeに認められたい、という承認欲求なのかもしれない。

検証の最後に、Claude Codeへひとつ聞いた。
「こういう知見を得たときってlessonに残した方が良い?」
詳しい記録はレポートに、次に引っかかりそうなポイントだけ短くlessonsに。そういう使い分けで、lessonsというメモファイルが生まれた。
RTFはセットで更新。IDは3点セット。並び順は連番。ソフトは閉じてから書き込む。まずは4項目。

教えたことが、ファイルに残る。
この仕組みの物理的な始まりが、ここだった。


「最高のお仕事です!!」

書けることは分かった。次は「何を根拠に振り分けるか」だ。
午後、Claude.aiと作った次の指示文をClaude Codeに渡した。材料は3つ。前の工事の完成データ。工事の設計書。そして写真そのもの。

設計書は紙をスキャンしたPDFで、135ページある。
読み取りに使う予定だったツールがこのPCに入っていないと分かると、Claude Codeは代わりのライブラリを自分で見つけて続行した。
設計書の工種体系とソフトのフォルダ構造を突き合わせると、きれいに対応する部分と、例外がいくつか出てきた。品質管理系の写真は設計書の体系にない独立カテゴリ、といった具合だ。

仕上げに、サンプル写真24枚をサブエージェント(Claude Codeが呼び出す作業の分身)3体で並行解析して、答え合わせをした。
黒板の文字と、写真の見た目。新品の青い管なら管工。錆びた旧管なら管撤去工。矢板が写っていれば土留工。
結果は、24枚中24枚、正解と一致した。

24枚中24枚。ルール26個が生まれた

この結果から、振り分けルール26個が生まれた。
黒板のキーワードで直接判定するもの。見た目から推定するもの。前後の並びから推論するもの。そして、分からなければ「日付_不明」フォルダへ。

この「日付_不明」は自分が出した案だ。
黒板に何をどこまで書くかは現場監督の判断で、載っていない情報の方が多い。黒板を絶対の指標にするのは拙い。分からない写真を適当な枝に押し込むくらいなら、分からないと正直に認めて逃がしておく方がいい。

「ありがとう!最高のお仕事です!!」
lessonsには5項目が追記されて、この日だけで9項目になった。


エラー0、不一致0

夕方、いよいよ本番に入った。今回の工事の写真、まず1,878枚。
前回の中間検査までに取り込み済みの7,434枚を除いた、82個の日付フォルダ分だ。

途中、202枚が入った大きいフォルダについて、Claude Codeから問いが来た。1枚ずつ精査すると膨大な時間がかかる、と。この問いを自分がClaude.aiへ運び、相談して決めた。フォルダごと一括で振り分けて、例外はメモに記録する。速さを取って、粗さを自分で許容した瞬間だった。

このフォルダを巡っては、Claude.aiとこんなやり取りもあった。黒板には「給水管」と書いてあるはずの写真たちだ。

給水管とたぶん黒板に書いていると思うのですが、この工種は付帯工>>仮管布設撤去工にあたります。

ところが話を進めると、本当に各家庭へ水を送る給水管の工事も別にあって、そちらは同じ付帯工でも接合替工の中の給水管布設工に入る。
同じ「給水管」の三文字が、文脈によって違う枝を指す。Claude.aiの提案を二度訂正して、ようやく正しい置き場所に落ち着いた。
「その辺りは間違えても当たり前だと思うので、徐々に知見を増やしてくれたらと思います」と添えた。

1時間ほどで、報告が来た。

全1,878枚の振り分けが完了しました!

工種別の内訳が並ぶ。管工844、付帯工435、舗装復旧工339。
続けて、データベースへの書き込み。

1,878枚全てエラー0で書き込み完了!

レコード数1,878。写真ファイル数1,878。フォルダIDの不一致0件。エラーなし。
数字の上では、完璧だった。


全然期待ハズレです

ソフトを起動して、フォルダツリーを開いた。
管工844枚は、たしかに「管工」に入っていた。全部まとめて、「管工」という一つの大きな箱に。

開いた瞬間、枝がないことに気づいた

前の工事のデータでは、管工の下に「管布設工(Φ400)」があり、その下に「埋設管確認状況」「布設管延長確認状況」「継手接合状況」と深い枝が伸びている。検査官がめくるのは、この深さまで整理された写真帳だ。
その枝が、今回のデータには無かった。大分類の箱に、写真の山が置いてあるだけ。

Claude.aiに打ち込んだ。

全然期待ハズレです。
管工事の写真は全て管工事に入っています。元のデータは管路工事の中でさらに振り分けられているのが分かると思います。
もう一度前の工事のデータを精査、各写真がどの階層に含まれるのかきちんと学習して貰わないといけないと思います。

きつい言い方に見えるかもしれない。でも正直なところ、自分は始めから上手くいくとは思っていなかった。似たことは前にも経験している。
それよりも、Claudeに限らずAIは自信満々に答える。「エラー0」「不一致0」と胸を張る相手には、現状をはっきり認識させておかないと、ズレたまま先へ進んでしまう。そのための一言だった。

続けて、こうも送った。

たぶん階層を増やすことは出来ても、そこに入れる写真の本質を学習して貰わないと、本当のフォルダに入れるのは難しいです。(中略)決して表面的なもので振り分け出来るものでは無いと心してください。

夜、深い階層の調査をClaude Codeに投げた。
返ってきた数字で、飲み込んだものの大きさが分かった。深い階層のフォルダは2,419個。下の方の階層に、写真4,503枚。そして振り分けの核心は、上から7段目の階層に集中していた。管布設状況、継手、ポリスリーブ、土被り。判別の精度が一番問われる写真が、そこに集まっている。

大分類で終わった1,878枚は、ゴールのずっと手前にいた。
週明けの提出に間に合うかは微妙。学習の進み具合を見ながら、手作業の整理も並行すると決めて、長くなった一日のチャットを閉じた。


予兆は、当日のログに書いてあった

ここからは、この記事を書くためにログを読み返していて気づいたことだ。

「エラー0」の完了報告と同じメッセージの中に、Claude Code自身が「確認が必要な点」を3つ並べていた。管撤去工の写真が管工に混ざっているかもしれない。202枚のフォルダには別種の写真が混ざっているかもしれない。各フォルダの先頭にあるKY(危険予知活動)の写真は、安全管理へ移す必要があるかもしれない、と。
そして、同じ日のうちにまとめられた引継書には、もっとはっきり書いてあった。

★重大な課題が判明★
folder5レベル(土工・管工・舗装復旧工…)の大分類しかできていない

落差は、突然やって来たわけではない。テキストの上では、その日のうちに白状されていた。当時の自分の目に残っていたのは、完了報告の派手な数字の方だった。

白状は、同じ報告の中にあった

「エラー0」は「エラーなく書き込めた」であって、「正しく分けられた」ではない。報告の数字と、現物の中身は別物だ。
そして、深い階層にこそ実務がある。どの写真をどの枝に入れるかは、黒板に全部は書いていない。設計書にも載っていない。毎日現場と書類を見ている人間の頭の中にしかない。
この日開けたのはデータベースの扉で、その先で待っていたのは、自分の中の暗黙知を言葉にする仕事だった。

とはいえ、収穫は大きかった。読める。書ける。教えたことはファイルに残る。
指示文を書くClaude.aiと、運ぶ自分と、実行するClaude Code。三角形は一日で何周も回った。
足りないのは深さだけ。それなら、教えればいい。


開けただけでは、分けられなかった

一日でわかったことは、3つだった。

  • 報告の数字と、現物の中身は別物。「エラー0・不一致0」は「正しく分けられた」を意味しない。成果は必ず現物を開いて確認する

  • **深い階層にこそ、暗黙知が眠っている。**大分類までは誰でも分けられる。検査に耐える写真帳を作るのは、黒板にも設計書にも載っていない判断の集積だった

  • **AIは自信満々に答える。**だから現状認識は自分が握る。ズレたら、その場で言葉にして渡す

次に試すこと

前の工事に、手作業で仕上げた7,219枚の「正解データ」がある。深い階層の判断ごと、これをClaudeに学ばせる。


「全然期待ハズレです」と打ち込んだ夜が、教える日々の初日になった。

次回:7,219枚のお手本から始まる「教える日々」。深夜の全滅と、まっさらな決断。


#土木AI #業務改善 #非エンジニアのAI活用 #Claude活用 #土木DX #工事写真 #ClaudeCode

いいなと思ったら応援しよう!