Claudeでドラレコ静止画から事故の時系列を整理する手順
ドライブレコーダー映像から切り出した静止画を、運転者の申告と突き合わせて事故の時系列表にする手順。時刻の渡し方、枚数と解像度の上限、映像から言えないことの切り分けまで。
ドラレコの静止画から時系列表を作る流れ
ドライブレコーダーの映像を動画のまま渡すのではなく、数秒おきの静止画に切り出し、時刻を添えてClaudeに渡す。これが基本の形です。Claudeには、各静止画に見えているものを書き出させ、運転者本人の申告と突き合わせた時系列表を作らせます。
任せるのは「映像に写っていることの整理」までです。過失の割合、どちらが悪いか、保険金の見通しは、静止画からは決まりません。ここを切り分けておくと、出てきた表を事故報告の下書きや相手方への説明の材料として使いやすくなります。
進め方は4段階です。
静止画から時系列表までの4段階
- 1
動画を静止画に切り出す
事故の前後を含む範囲を、1秒から数秒おきのPNGかJPEGにします。
- 2
時刻と番号を決める
静止画ごとに「Image 1」「Image 2」と番号を振り、画面に出ている時刻を控えます。
- 3
見えることだけを書かせる
申告は見せず、静止画ごとの写っているものだけを書き出させます。
- 4
申告と突き合わせる
運転者の申告を渡し、一致する点と食い違う点を表にさせます。
動画ではなく静止画で渡す理由
ClaudeがJPEG、PNG、GIF、WebPの画像を受け付けることは、画像機能のドキュメントに書かれています。このうちGIFはアニメーションに対応しておらず、使われるのは最初の1コマだけです。ドラレコの動画ファイルを動く画像に変換して渡しても、事故の瞬間までは読まれません。
だから、動画から静止画を書き出す作業は読者側に残ります。ffmpegを使う場合の例を挙げます。事故の20秒前から40秒間を、1秒に1枚の割合でPNGにする形です。
ffmpeg -ss 00:01:40 -t 40 -i drive.mp4 \
-vf fps=1 frame_%03d.png-ss は開始位置、-t は切り出す長さです。動画の中で事故が起きた秒数を再生ソフトで確かめ、その前後に余裕を持たせて指定します。事故の瞬間は1秒おきでは粗いことがあるため、その前後だけ fps=4 のように細かく切り直すと、動きの変化を追いやすくなります。
枚数・大きさ・読み取りの上限
静止画を何枚渡せるかは、使う面で変わります。
| 面 | 1回に渡せる枚数 | 1枚の大きさ |
|---|---|---|
| claude.ai | 1回に渡せる枚数1メッセージに20枚 | 1枚の大きさ10MB、8000×8000ピクセルまで |
| Claude API(200kトークンのコンテキストウィンドウのモデル) | 1回に渡せる枚数1リクエストに100枚 | 1枚の大きさbase64化後10MB、8000×8000ピクセルまで |
| Claude API(それ以外のモデル) | 1回に渡せる枚数1リクエストに600枚 | 1枚の大きさ同上 |
API側には、もう一つ注意点があります。1リクエストに20枚を超える画像を入れると、すべての画像に、より厳しい縦横の上限がかかります。上限を超えた画像は invalid_request_error で拒否されます。回避策は、各画像の長辺を2000ピクセル以内に縮小するか、画像を20枚以下に抑えることです。
20枚に収めるなら、1秒おきで20秒分です。事故前後の全体は粗く、衝突の前後は細かく、と枚数を配分します。
解像度は読み取りの精度にも、トークンの消費にも響きます。画像は28×28ピクセルのブロックに分けて処理され、⌈幅/28⌉×⌈高さ/28⌉ が視覚トークンの数です。長辺が上限を超える画像は縮小されます。
フルHD(1920×1080)1枚あたりの視覚トークン
標準の解像度のモデル
1560
1456×819に縮小
高解像度のモデル
2691
縮小なし
高解像度に対応するのはClaude 4.7以降のモデルです。20枚をフルHDで渡すと、高解像度のモデルでは約5万4千トークン(2691×20)になります。ナンバープレートや信号の色のような細部を読みたい場面では、この解像度が助けになります。全景の把握だけなら、縮小してから渡す選択もあります。
時刻は画像の外から渡す
静止画から時系列を作るうえで、見落としやすいのが時刻です。Claudeは、渡された画像のメタデータを解析せず、受け取りもしません。ファイルの撮影日時や、静止画に埋め込まれた書き出し時刻は、読まれないのです。
時刻を渡す方法は二つあります。
- ドラレコが映像に焼き込んだ日時表示が見えている場合は、読み取りを任せられます。ただし文字が小さいと誤読しやすいので、人が確かめた値をテキストでも添えます
- 日時表示がない機種や、切り出しで隠れる場合は、動画内の経過秒数から自分で計算した時刻を、静止画ごとにテキストで書きます
複数枚を渡すときは、画像の直前に「Image 1:」のようなラベルを置くことがドキュメントで勧められています。ラベルがあれば、プロンプトでも追質問でも番号で指せます。時刻はこのラベルの行に書き込みます。
Image 1: 14:32:05(画面表示。人が確認済み)
[画像]
Image 2: 14:32:06(画面表示。人が確認済み)
[画像]
Image 3: 14:32:07(画面表示。人が確認済み)
[画像]これは入力の組み立て方を示す形で、角括弧の部分に画像が入ります。時刻は例のための仮の値です。
見えることを先に書かせ、申告は後から渡す
一番効くのは、静止画だけを見せた段階で「写っていること」を書き出させ、その後で申告を渡す順番です。最初から申告を渡すと、申告に合う方向に静止画の内容が読まれやすくなります。静止画の記述が申告に引きずられるのを避けるため、二段階に分けます。
1回目のプロンプトの例です。
添付はドライブレコーダー映像から切り出した静止画です。
各Imageについて、次の3点だけを書いてください。
- 写っている車両・歩行者・信号・標識の位置関係
- 前のImageから変わった点
- 読み取れない、または判断できない点
原因、過失、速度の推定は書かないでください。「判断できない点」を出させる指示がポイントです。ここを空欄のままにしておくと、見えていないものまで補った記述が混ざります。
2回目は、運転者の申告を時系列の箇条書きで渡します。
運転者の申告は次のとおりです。
- 14:32:05ごろ 交差点手前で減速した
- 14:32:07ごろ 右から来た車と接触した
先ほどの各Imageの記述と照らし合わせ、
次の列の表にしてください。
Image番号 / 時刻 / 映像で見えること / 申告との関係(一致・食い違い・映像から判断不能)表の列は4つに抑え、判定は「一致・食い違い・映像から判断不能」の3段階に限っています。評価の言葉(「危険な運転」「不注意」など)を入れさせない指示を添えると、事実の表として使いやすくなります。
返ってきた表は、下書きとして扱います。次のように見える、という例を挙げます(公式の例ではなく、表の使い方を示すための仮の例です)。
| Image | 時刻 | 映像で見えること | 申告との関係 |
|---|---|---|---|
| 2 | 時刻14:32:06 | 映像で見えること右側から車両が交差点へ進入している | 申告との関係申告に記載なし |
| 3 | 時刻14:32:07 | 映像で見えること自車の右前方に車両が接近している | 申告との関係一致(接触の直前) |
| 4 | 時刻14:32:08 | 映像で見えること画面が大きく揺れ、判断不能 | 申告との関係映像から判断不能 |
表の「映像から判断不能」と「食い違い」の行は、追質問で絞り込めます。「Image 3とImage 4のあいだで、右側の車両の位置はどう変わりましたか」のように、番号で2枚を指して差分だけを尋ねる形です。1枚ずつ別の会話で渡すと、前後の関係が失われます。同じ会話の中に、時系列の静止画をまとめて入れておくことが前提になります。
答えに納得できないときは、該当のImageを人の目で見直し、必要なら範囲を切り出して拡大した画像に差し替えます。細部が小さく写っているだけなら、拡大した静止画で読み取りが改善することがあります。元の画像が暗くてつぶれている場合は、拡大しても情報は増えません。
APIで回すときの最小コード
画像が多い、事故ごとに同じ手順を繰り返したいという場合は、APIで組む方法があります。静止画をbase64で読み込み、ラベルと時刻、画像の順にcontentへ並べるだけです。
import base64
import anthropic
client = anthropic.Anthropic()
frames = [("frame_001.png", "14:32:05"), ("frame_002.png", "14:32:06")]
content = []
for i, (path, clock) in enumerate(frames, 1):
with open(path, "rb") as f:
data = base64.standard_b64encode(f.read()).decode()
content.append({"type": "text", "text": f"Image {i}: {clock}(画面表示)"})
content.append({"type": "image", "source": {
"type": "base64", "media_type": "image/png", "data": data}})
content.append({"type": "text", "text": "各Imageに写っていることだけを書いてください。"})
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=2048,
messages=[{"role": "user", "content": content}],
)
print(message.content[0].text)モデル名は、画像機能のドキュメントのコード例で使われているものです。使うモデルに合わせて差し替えてください。Amazon BedrockとGoogle Cloudでは、現状base64の指定だけが使えます。同じ静止画を何度も参照する場合は、Files APIでアップロードして file_id で指す方法があります。
映像から言えないことを表に書き分ける
静止画の整理で一番大きな罠は、映像に写っていないことが、もっともらしい文章で埋まることです。ドキュメントには、画像の解釈で注意すべき点が挙がっています。
- 低品質な画像、回転した画像、200ピクセル未満の小さな画像では、誤った解釈や、存在しないものの記述が出ることがある
- 座標や位置の出力は近似にとどまる
- 物の数え上げは、小さなものが多数あるとき、正確でないことがある
- 画像がAI生成かどうかは判定できない
事故の静止画では、これが次の場面に当てはまります。
静止画の整理で間違えやすい場面
夜間・雨天の暗い映像
信号の色やナンバー、相手車両の輪郭は読み違えやすくなります。読めない点は「判断不能」と書かせます。
左右・前後の関係
自車から見て右か左かは、位置関係が近似になる領域です。人が静止画と見比べて確かめます。
速度・距離
静止画の差分から速度や車間距離を断定させない。数値が必要なら、別の記録(走行記録の数値など)を人が読み取って渡します。
映像の外の出来事
事故後の救護や連絡は映像に写らないことがあり、申告から補います。
道路交通法72条の報告事項と静止画の対応
交通事故があったとき、運転者は直ちに運転を停止して、負傷者を救護し、道路の危険を防ぐ措置を取らなければなりません。そのうえで、警察官に報告する事項が道路交通法72条1項に定められています。
報告する事項は、事故が発生した日時と場所、死傷者の数と負傷者の負傷の程度、損壊した物とその程度、車両の積載物、事故について講じた措置です。静止画の整理で埋まる欄と、そうでない欄は分かれます。
| 報告事項 | 静止画から埋められるか | 補う方法 |
|---|---|---|
| 日時 | 静止画から埋められるか画面表示があれば手がかりになる | 補う方法人が時刻を確かめて入力 |
| 場所 | 静止画から埋められるか周囲の標識や景色が手がかり | 補う方法地図で住所や交差点名を特定 |
| 死傷者の数・負傷の程度 | 静止画から埋められるか映像からは決まらない | 補う方法現場での確認、医療機関の判断 |
| 損壊した物と程度 | 静止画から埋められるか車体が写っていれば手がかり | 補う方法現物の写真、修理見積 |
| 積載物 | 静止画から埋められるか映像からは分からないことが多い | 補う方法運転者の申告 |
| 講じた措置 | 静止画から埋められるか映像外の出来事が多い | 補う方法運転者の申告、通話記録 |
警察への報告は、事故の直後に行うものです。Claudeの時系列表は、その後に状況を落ち着いて説明するための下書きにあたり、報告の代わりにはなりません。
渡す前に確認すること
ドラレコの映像には、他の車のナンバープレートや歩行者、自分の住所に近い景色が写り込みます。Claudeは、画像の人物の名前を挙げることを拒否する仕様ですが、写り込みそのものは入力に含まれます。渡す前に、事故の説明に要らない人物の顔や、自宅周辺の景色が写る範囲は切り出さないか、塗りつぶしておきます。
画像の扱いについては、アップロードされた画像がリクエストの処理時間を超えて保存されないこと、Anthropicがアップロードされた画像をモデルの学習に使わないことがドキュメントに書かれています。それでも、第三者の情報を含む入力が個人情報の第三者提供にあたるかは別の問題です。考え方は個人情報を含むプロンプト入力は第三者提供にあたるかで整理しています。
任せる範囲と任せない範囲
| 作業 | Claude | 人 |
|---|---|---|
| 静止画ごとの写っているものの書き出し | Claude任せられる | 人原本の静止画と見比べる |
| 申告との一致・食い違いの表 | Claude下書きまで | 人食い違いの原因を確かめる |
| 時刻の読み取り | Claude補助まで | 人値を人が入力する |
| 速度・距離の推定 | Claude任せない | 人別の記録で確かめる |
| 過失の割合の判断 | Claude任せない | 人保険会社・専門家に相談 |
| 警察への報告 | Claude任せない | 人運転者本人が行う |
表の食い違いは、そのまま結論にしません。静止画の取りこぼしのこともあれば、申告の記憶違いのこともあります。次に確かめるのは、元の動画の該当箇所です。
事故の状況を時系列メモから様式に落とす流れは、別の現場でも共通しています。介護事故報告書の下書きは事実と推測を分ける考え方が近く、陳述書の下書きはヒアリング記録から時系列を作る手順です。画像の読み取り精度を自分で測る方法は、Claude Vision OCRの精度の測り方にあります。