依頼
ある大手ゼネコンは、数万本規模の樹木を抱えている。自社の現場沿い、造成して引き渡した公園、工事が触れる通り沿いの街路樹。それを樹木医が点検する。樹皮の状態、樹勢、キノコ、樹形。その判断が積み上がる台帳は、枝が落ちたときに責任が宿る場所でもある。
点検事業が元を取れるのは、今年書いた行が去年の行と同じ個体の上に乗ったときだけである。樹木医の下す判断はすべて、ある一本についての主張だ。そしてどの個体にも結びつかない主張は、日付の入った写真でしかない。だから事業全体の下に横たわる問いは、いちばん素朴な形をしている。この木は、どれか。我々はこれを位置推定の問題として解く。カメラがどこに立ち、どこを向いていたかを現場自身の計量座標系の中で復元すれば、画面に映っている木は幾何から決まる。
我々はその答えを YODO Asset World の同一性レイヤとして作り、しかもこの系のなかで最も難しいクラスの上で作った。樹木は育ち、剪定され、列を成して互いに似ていて、8月と2月のあいだに外観がそっくり入れ替わる。そのあいだ同一性のほうは保たれていなければならない。対象地は都心の公園、バックパック型 LiDAR による一度の計測。2億4700万点、6608×8811 の姿勢付き写真10,100枚、2回のセッションを中央値6.3 cm の残差で一つの計量座標系に統合。その中に564本が個体として登録され、どれも永続 ID、実測の位置、日付入りの履歴を持つ。

以下の節は、YODO Asset World を形づくる連なりを、この一つの現場の上で順にたどる。位置推定は、どの物体も立っている位置で台帳の行に結びつける。検出は、機材も距離も角度も違う二度目の訪問で同じ個体を見分け、撮り溜めを記録として積み上げる。予測は、すでに行われている巡回から状態を読み取り、日付のついた作業を返す。接地は、数値を3次元の幾何から直接読むので、数値と根拠が同時に届く。
外観は季節で入れ替わる
特定の物体を認識するシステムのほとんどは、見た目でそれを認識する。外観が物体の属性であるあいだは、それで成り立つ。落葉樹においては、外観は月の属性である。
その代償は測れる。失敗する場所がはっきりしているからだ。任意の写真を現場の地図に対して位置推定する処理は二段構えで、まず検索が候補地を出し、次に照合器がその一つを検証する。自前の計測フレームは top-1 類似度 0.40〜0.52 で検索に掛かる。それ以外のカメラで撮られた写真は 0.08〜0.36 に沈む。そうした写真では正解の場所が候補リストに入りにくく、照合器には検証する相手がない。実装して測った検索コンセンサスのクラスタリングも、渡されたリストを絞り込むことしかできない。植生はこれを三方向から悪化させる。自己相似であり、撮影と問い合わせのあいだに動き、同じ公園の8月と2月はほとんど画素を共有しない。

公開文献は同じ壁に反対側からぶつかっている。REMIND のアブレーションは、我々が見つけたなかで最も明快な言明だ。文脈の通路を外して同一性を物体の外観だけに担わせると、IDF1 は論文独自のベンチマークで 90.35 から 55.56 へ、ScanNet++ で 62.47 から 37.53 へ落ち、ID の取り違え率は 51.73 % になる。同じクラスの隣どうしでは、外観だけだと同一性が入れ替わる。
測位では一本を名指せない
素直な修理は、観測を座標に結びつけることだ。スマートフォンの GNSS は開空でおよそ 3.5 m、樹冠の下ではそれ以下になる。それで足りるかどうかを決めるのは、現場の側である。
そこで現場に訊いた。登録済み564個体について、最も近い別個体までの距離の中央値は 3.10 m。そのうち6割(59.9 %)は、半径 3.5 m の内側にもう一本の登録個体を抱えている。半径10 m まで広げれば平均6.3本の隣人がいて、園内で最も混み合う測位円は、名指すつもりだった一本のほかに4本を覆う。

測量級の受信機なら作業者を1センチの内側に置き、作業者がどこに立ったかを報告する。画面にどの幹が入るかはレンズがどこを向いていたかで決まり、測位は姿勢を運ばない。カメラの姿勢は六つの数からなり、測位が与えるのはそのうち三つである。
欠けた三つが答えを決める。7 m 先では狙いが1度ずれると光線は 12 cm 動き、方位が24度ずれれば 3.10 m 隣の個体に当たる。隣より狙った幹の近くに留まるには、方位が約12度の精度で要る。街路樹を歩道から撮る 20 m では、同じ間隔が許すのは 4.4 度である。
写真の位置と姿勢を推定する
そこで我々はカメラの位置と姿勢を推定し、木はそこから導く。
写真はツインの内部で位置推定され、資産が登録されているのと同じ計量座標系での6自由度姿勢が返る。位置と姿勢は同時に、画像から出てくる。どちらも画像が拘束している量だからだ。カメラが定まれば、その写真にどの資産が写っているかは投影と可視判定(視錐台・距離・遮蔽)で決まる。認識が確率的であるところで、対応づけは解析的になる。二つの物体が似ていても劣化しない。似ていることは、そもそも計算に入っていないからだ。ID は、カメラがどこに立ち、どこを向いていたかから出てくる。
この方法が要るのは写真である。GNSS も RTK も標定点も、幹に貼るマーカーも、特定のカメラも要らない。下の動画は、ふつうのスマートフォンを片手に持って歩きながら撮ったものだ。

現時点の数字。自前機材の取り置き40フレームでは、姿勢は中央値 1.2 cm・0.16° に落ちる。2〜10 m の資産距離でバウンディングボックス投影が要求する 0.2 m・2° に対して一桁内側である。園内を歩いたスマートフォン動画では、31キーフレーム中18本が位置推定できる。その姿勢を通して、対応づけ層は7本のトラックレットに実在の資産 ID を与え、誤った ID はゼロだった。同じ一本が二つに割れた断片は同じ ID に貼り直され、6本は未決のまま、樹冠の深い末尾では棄権した。
この走行では、数字を一つ直しただけで、対応づけは4件から7件へ、首位トラックレットの証拠値は 3.6 から 32.6 へ動いた。直したのはクエリの焦点距離で、リポジトリ全体で 1300 px を仮定していたところ、動画は実際にはスマートフォンの 0.5× 超広角、806 px で撮られていた。
18本で頭打ちになる理由は、第一節で述べた問題そのものである。別のカメラで撮られた写真は、検索の段階で落ちる。設計済みの対策は参照側に手を入れる。照合の一部を、季節に触れられない3次元構造の上へ移し、誰も歩かなかった視点を、同じ計量座標系の 3DGS モデルから描いて参照集合を密にする。そのモデルはすでにあり、ビューアにも載っている。797万個のガウシアンで、LiDAR に対する並進ずれはゼロである。

失敗のうち二つは文献に書かれていないもので、我々が原因を突き止めた。既定の学習設定は、観測の薄いガウシアンを間引きの閾値の下へ追いやり続け、やがて場面全体が霧に崩れる。フラグを一つ外すと 8.6 dB 戻る。もう一つは SLAM の姿勢で、隣り合う視点のあいだで 0.195° 食い違っていた。バンドル調整はそれを7分の1に縮め、細部の指標を4.2倍動かした。モデル側のレバーを十数本動かしても 0.01 未満しか動かなかった指標である。二季節目の計測は、一年のもう半分を参照集合に加える。
答えるかどうかを決めるゲート
誤った姿勢は下流のすべてを汚染するので、このシステムは止まるように作ってある。口を開くかどうかを決める数字は、それぞれの値を定めた実測とともに一つのファイルに置かれ、自前機材の取り置きフレームである easy set 上で校正され、別のカメラの写真である honest set に触れる前に凍結される。取り置きデータを見たあとにゲートを調整すれば、取り置きの測定は当てはめた測定に変わってしまう。

ゲートが何を見逃すかを試して、三つのことが分かった。
通ったゲートは、測っていないものを保証しない。inlier が60を超えれば姿勢誤差の中央値は 4 cm、30 を下回れば P90 は 21 m まで開く。だから棄権線は30にある。しかし焦点距離については何も言わない。意図的に焦点距離を誤らせた組み合わせの 37.5 % がこのゲートを抜け、正しい焦点距離の2.9倍で inlier 53 を返すフレームもある。だから焦点距離は掃引して求め、仮定しない。
第二の判定基準は、解法から独立していなければならない。我々は再投影 RMS を品質ゲートとして文書化し、そのうえで測り、反転していることを見つけた。easy set で唯一誤っていた姿勢の RMS は 0.00 で、正しい39本は 2.53〜4.72 に並ぶ。RANSAC が inlier を選び、そのうえで同じ inlier の上で残差を測るからだ。inlier が少なければ当てはめはほぼ厳密になり、RMS は下がる。低い RMS が示すのは過剰適合である。効いたのは補間姿勢に対するドリフトで、これは解法が一度も見ていない情報と突き合わせている。
画素は多いほど悪い。同じ31キーフレームを五つのサイズで一括投入すると、720 px は19本、1600 px は14本しか位置推定できない。樹冠の濃い場面では、増えた解像度が買うのは葉の細部であり、特徴点の予算は葉群に使い果たされ、安定した構造を担う幹・縁石・建物が取り残される。予算を増やしても戻るのは1フレームだった。
同じ規律が、我々が採りたかった変更を退けた。計測機材の第二カメラヘッドを読むと経路の網羅は18から27へ上がり、同時に easy set の並進誤差中央値が、共有する36フレーム中26フレームで、系統的に 39.8 % 悪化する。事前登録した自分の規則が却下を告げた。
ゲートは、人の目に見える場所にも出てくる。渡された動画ごとに、製品は二つの数を報告する。フレームが含んでいたと見た資産の数と、名前を付けてよいと判断した数である。その差が棄権であり、人が確かめるまで何も書き込まれない。

同じカウンタはカメラのモードでもライブで動く。スマートフォンを向けて撮れば、幹の上に ID が乗る。そこでの制約は安定性である。二本の木のあいだで揺れるラベルは、3秒かけて出るラベルより悪く、正直な「?」よりはるかに悪い。
四つの鍵と、それが壊れる二通り
ここまでは、資産は登録された場所にとどまり、変わるのは背景だけだと仮定してきた。これを外すと、失敗の種類が変わる。背景が変われば失われるのは網羅率で、システムは棄権という形でそれを申告する。対象が動いていた場合に失われるのは正しさである。最近傍位置での照合は、別の物体が旧座標に入り込んだとき自信を持って誤った ID を返し、既存のどのゲートも発火せず、位置を「欄」として持つデータモデルには座標が古びたことに気づく手立てがない。
壊れる仮定は二つあり、それぞれに置き換えがある。位置は観測の流れになり、2026年の計測は創始エポック0の観測としてバックフィルされる。既に測ったものは一件も捨てない。同一性は、四つの鍵にまたがる二段式の割当になる。位置の事前分布、外観埋め込み、局所特徴の再順位付け、近傍の文脈。

二段であるのは、単一の重み付き和が覆い隠してしまう非対称性があるからだ。動かされた資産は、位置の鍵と近傍の鍵を同じ瞬間に失う。どちらも「以前どこにいたか」を語る鍵だからである。四つを足し合わせれば、「これは動いた」のコストと「ここには別のものが立っている」のコストが区別できなくなる。そこで第一段は、動いていないものすべてを、共視の近傍ごとに四鍵すべてで割り当て、その副産物として「あるはずのものが無い」という証拠を吐き出す。第二段は残りを引き取り、外観と局所特徴に主導させ、四つの仮説(移動・新規・撤去・同型入替の疑い)を明示的に立て、コスト閾を超えたものは人の裁定待ち行列へ送る。
同型の物体二つが訪問のあいだに入れ替われば、どんな視覚システムにも、我々のものにも区別はつかない。そうした資産は型式レベルの同一性を持ち、記録にもそう書く。
巡回が書き戻せるもの
同一性は、点検事業が本当に欲しいものの前提条件である。国交省「都市公園の樹木の点検・診断に関する指針(案)」は2026年3月30日に改訂され、日常点検を巡視や他の管理業務に合わせて実施すること、情報を電子化して台帳更新の省力化に努めることを明記した。いま使われている点検の道具は、この事業がすでに回している診断モデルも含めて、誰かが特定した一本の写真から始まる。同一性が自動で解ければ、管理者のふだんの巡回をスマートフォンで撮った動画と、せいぜい一言の声が、そのまま入力になる。
更新はいくつかの別々の仕事である。一つとして扱うと、更新されたように見えて実は古い数字が生まれる。受動的な撮影が書けるのは、証拠(いつ、どの角度から、どの品質でその個体を見たか。これ自体がすでに点検の記録になる)、状態と所見、そして消失である。幹周や樹高のような精密な計測値は、計測時のまま据え置く。幾何はその中間にある。削除はただでできる。動かされた物体は元の LiDAR 点をそのまま持ち、推定するのは姿勢だけだ。本当に新しい幾何には、意図した周回撮影の動画が要る。点群自身の精度に届かない継ぎ当ては入れない。

書き込まれるのは証拠イベント (asset_id, time, claim, evidence, confidence, provenance) であり、台帳に追記され、確定は人が行う。「この木、傾いてきた」という管理者の一言は、系全体で最も S/N の高い入力であり、それが保存できるのは結びつける ID があるからだ。
難しいほうの半分は、何も変わっていないことを証明することである。点検の工数の9割は「異常なし」を確定させる作業に使われ、受動的な観測はそれだけでは「見ていない」と「変わっていない」を区別できない。我々が調べた変化検出の論文は、変化の適合率と再現率を報告し、変わっていない側には確信度を付けていない。そこで巡回は、資産ごとに三状態の点検票を返すように設計している。変わった、変わっていないと確認、よく見えなかった。「変わっていないと確認」は校正された確率であり、当てはめ残差から独立した判定基準に支えられる。位置推定のゲートが従うのと同じ規則だ。引き金を引くのは構造の変化(撤去、新設、移動)だけで、季節や光は何も引かない。写真一枚でできるのは、資産に印を付けるところまでである。
二回の LiDAR 計測は19分違いで撮られており、誤警報率を測るための「変化ゼロ」の対照集合になる。正例は、登録済みの一本をモデルの中で削除したり動かしたりして合成する。
すでに歩いている巡回からの予測
同じ巡回が、予測の出発点にもなる。状態の予測は、現場がすでに行っている巡回から読み取り、計測器は据え付けない。台帳を時間の前へ投影すれば、それが予測になるからだ。今日の時点での資産の期待状態はロボットの変化検出の事前分布であり、2年先なら剪定計画、台風の風の場で条件づければリスク評価になる。
出発点になる入力は、すでに台帳にある。写真から読んだスクリーニング区分が355個体に付いており、健全266、要注意60、枯死の疑い5、手元の視点では判定できないもの24。点検の優先順位づけと台風の警戒リストは、その上に組み立てる。どちらも返すのは日付のついた作業である。どの個体を、何を、いつまでに。
予測は、巡回が見ている範囲の内側にとどまる。出力はスクリーニングであり、どの値も校正された不確かさを持つか、棄権する。警戒リストを採点する台風後の再計測は、そのまま次のリストを学習させるラベルにもなる。巡回を一回重ねるごとに、次の予測が読む記録が増えていく。
寸法はどこから来て、クラスはどこから来るか
台帳の数値は、すべて幾何そのものから読む。幹周は、当てはめた地面から記録された高さにある点の帯から、樹高はその上に立つ柱から、枝張りと傾きも同じ個体の点から測る。どの値も、計測、日付、当てはめ残差を持ち続ける。樹高の照合は、測った線をその木の写真の上に描き戻すので、数値と根拠が同時に届く。チャットはこれらの値から答える。日本語・英語・中国語の質問が SQL の上で11個のツールを呼び、答えに出る数字はすべて SQL から読まれ、凍結した52本の評価がそれを保っている。

2億4700万点を個体として登録する作業は、簡単だろうと思っていた問いを一つ立てた。この柱状のもののうち、どれが樹木か。
クラスは、この点群からは復元できない。保存属性11、柱状・樹冠特徴7、放射特徴15。そのすべてが、樹木と街灯柱ほどに違う物体のあいだで重なる。しかもこのスキャナにマルチリターンはないので、植生と固体を分ける標準的な判別器が使えない。そこから出てきた規則は、いまやプロジェクト全体の規則になっている。クラスの権威は写真にあり、寸法の権威は点群にある。

これで難所は第二の問いへ移った。視覚言語モデルの判定を、台帳の行を書き換えられる水準にどう持っていくか。最初は素直に設計した。一つのモデルの判定が資産の status を自動で反転させる形である。順序効果による反転率の基準を 5 % と事前登録し、測ったら 35 % だった。判定は点群側の参照とも無相関だった。出荷しなかった。
出荷したほうは、独立な判定者と、見た者全員の一致と、写真だけを根拠とする retire を要求する。2026-08-13、この設計は写真が登録クラスと矛盾する62件を retire し、active を626から564へ動かし、以前の緩い手順で retire されていた2件を復活させた。二人目の判定者が、シートの上に本物の幹を見たからである。答えの分かっている隠しアンカー5件が全バッチに同乗した。樹木では判定者は12戦12勝、負例3件については tree と言った判定者は一人もおらず、負であると確認した判定者もいなかった。棄権したのである。棄権率はサブエージェント判定者で 52 %、セッション内で 20 %。
何も削除していない。ID も写真も測定値も履歴も retire を生き延び、どの行も自分の根拠を名指す changelog を持ち、台帳はゼロから同じ active 集合まで再構築できる。
積み上がるもの
知覚は毎月安くなり、放っておいても手に入る。同じ個体が何年も並ぶ台帳は、一訪問ずつ保ち続ける以外の入手経路がない。だから早く始める価値があり、持っている価値がある。
エポックが一つ増えるたびに、公開の同等物が存在しないものも積み上がる。時間とともに外観が入れ替わる屋外物体の、個体再識別のための教師付きコーパスである。個体の持続性を扱うベンチマークはすべて屋内にあり、屋外の変化データセットには同一性がなく、林業の多時相データには随時撮影がない。屋外・跨季節・跨デバイス・個体レベルという組み合わせは、まだ誰のものでもない。それを作れるデータを持つ数少ない側に我々がいるのは、計測が自前だからだ。
そして下のレイヤは、構成からしてクラスに盲目である。ID も証拠も位置推定も対応づけも、その物体が何であるかを知らない。対応づけを解くのが姿勢と投影だからだ。クラスごとなのは二つだけ。計測から個体を切り出す幾何と、2D 検出器に渡すテキストプロンプトである。ベンチも、街灯柱も、ガードレールも、バルブも、標識も、サクラとまったく同じ条件で同じ台帳に入る。
同じ原理で、センサにも盲目である。台帳が計測に求めるのは、出てくるものが計量であることだけだ。このツインを作ったのはバックパック型 LiDAR だが、手持ちの360カメラで歩いても同じ形の成果物、つまり個体を切り出せる尺度付きの幾何が出てくる。その管線は別の現場で端から端まで走らせてある。
この台帳の主な読み手は、機械になる。現場のロボットには三つの答えが要る。自分はどこにいるか。これは SLAM が自分基準で与える。周りに何があるか。これは知覚が与える。これは昨日もここにあったか、この変化は想定内か。これに答えられるのは登録された事前知識だけで、我々が調べた点検製品は、変化の基準線を自社のクラウドに自社の ID で抱え、位置推定サービスは同一性も履歴も規則も付かない姿勢を返す。台帳は読み書きの両方ができるので、ロボットが撮ったものは証拠として戻り、現場で働くことがそのまま集めることになる。それが我々の道筋である。いまは人のための資産インテリジェンス、次に人とエージェントとロボットがみな同じ台帳を文脈として働く層、そして現場のあらゆる仕事がそこを読み書きするようになったとき、物理的な仕事のためのオペレーティングシステムになる。台帳はいま、チャットを通じて人に答えている。
持ち帰ったもの
樹木を認識することは、いまや既製品である。点検事業がその上に必要とするのは、この木が14か月前に見たあの木だと知り、それを確信度付きで言うか、棄権することだ。それには時間をかけて保たれた台帳が要り、巡回を重ねるたびにそれが育つ。
ゼネコンが対価を払っているのは樹木医の判断である。同一性は、その判断の連なりを、一年から次の一年へ持ち越せる記録に変える。
