OJT 2026-04(MAPチーム):建設現場の3D進捗確認アプリ

こんにちは。 2026年度4月に入社したエンジニアの金 咏智です。 今回は、弊社で実施している新人グループ研修について、私が配属されたMAP(Morpho Autonomous Photogrammetry)チームでの取り組みを中心に報告します。

目次

はじめに

2026年度の新人グループ研修において、私たちは金 咏智、李 智國、王 仁浩の3名で取り組みました。 今回は、約2ヶ月間取り組んだグループ研修の成果について報告します。 テーマは建設現場の3D進捗確認アプリです。

建設現場では、人手不足が深刻な課題となっています。 建設躯体工事の有効求人倍率は7.48倍と、全職種平均(1.14倍)の約6.6倍にのぼります[1]。 人手が足りないため、現場監督は1日に何か所もの現場を回らねばならず、作業者も多忙な本来業務に加えて書類作業の負担を抱えています。 その結果、進捗の報告が後回しになりがちです。

報告は問題を早期に共有するための起点です。 報告が遅れると「問題の発見・判断の遅れ → 対処の後手化 → 工期遅れ → 収益低下 → 人材投資の困難化 → 人手不足の深刻化」という悪循環に陥ります。 この連鎖を断つために、効率的な進捗把握と報告の自動化へのニーズが高まっています。

こうした背景から、私たちは異なる時系列で撮影した現場の3D空間を扱う進捗確認アプリを開発しました。 360度カメラで撮影するだけで現場全体を3Dデータとして記録できるため、現場監督が現地に足を運んで目視確認する回数や、状況をまとめる書類作業の手間を減らせます。 撮影した3Dデータを図面と紐づけ、異なる時系列の現場の状態を3D空間上で直感的に比較できる点が、このアプリの特徴です。

今回は主に以下の4つの機能を実装しました。

  • 3Dモデル同士の位置合わせ機能
  • 図面と3Dモデルの位置合わせ機能
  • 部屋単位の図面自動分割
  • 差分表示機能
図1:before / after 比較表示

システム構成

今回作成したアプリは主に3つのパートで構成されています。 まず、ユーザが図面と360度カメラ(Insta360、DJI Osmoなど)で撮影した動画を入力すると、アプリサーバが、3Dモデル同士の位置合わせ機能、図面と3Dモデルの位置合わせ、部屋単位の図面自動分割、入力した3Dデータの差分表示を全般的に処理します。 そして、処理結果をウェブアプリとしてフロントのタブレットやPCに表示します。 続いて、各ステップの詳細を説明します。

図2:システム構成

データ入力

データ入力部では、主に2つのデータが必要です。 1つ目は進捗を確認したいフロアの図面と、2つ目は確認したい現場を360度カメラで撮影した動画です。 これらをアプリにアップロードすることで、アプリ側で自動的に3Dデータを生成します。 目安として、30平米の室内空間を3D再構成するとき、1〜2分の動画撮影に対し、3Dデータへの再構成には1〜2時間かかります。

アプリサーバ

アプリサーバは、フロントへの画面配信と、各種処理の受付・実行管理(オーケストレーション)を担う中心部です。 個々のアルゴリズムの中身は後述の「メインアルゴリズム」で説明し、ここではサーバの構成を紹介します。

フレームワークと配信

サーバは Python の FastAPI で実装し、uvicorn 上で HTTPS 配信します。 ビルド済みの React アプリ(フロント)も同じサーバから静的配信するため、ユーザはブラウザで URL を開くだけで利用できます。 タブレットでも使えるよう、自己署名の証明書をワンタップで導入できる仕組みや、高性能な3D描画に必要なクロスオリジン分離(COOP/COEP)ヘッダも付与しています。

データ管理

プロジェクト・動画・3Dモデル・図面・位置合わせ結果・部屋(ゾーン)・マーカーといったメタデータは SQLite で管理し、3Dモデルや画像などの実ファイルは専用のストレージ層で保持します。フロントはこれらを API 経由で取得します。

重い処理の分離

3D再構成やGPUを使うアルゴリズムはサーバ本体に抱え込まず、外部・別プロセスへ切り出しています。

  • 3D再構成は、社内の再構成基盤Morpho Photogrammetry Toolkit™ (PGToolkit)へHTTPで委譲します。 サーバはジョブを投げて進捗を管理する「窓口」として動き、時間のかかる処理は非同期ジョブとして扱います(ジョブ状態はDBに記録し、サーバ再起動時にも復帰できます)。
  • 図面と3Dモデルの位置合わせ機能や図面分割などのGPU処理は、必要になったときだけ起動するワーカープロセスとして実行し、一定時間使われなければ自動で解放してリソースを節約します。

この構成により、サーバ本体は軽量なまま、重い処理を安定して回せるようにしています。

フロントエンド表示

フロントは TypeScript + React で構築し、3Dの描画は Three.js、3DGSの表示には Three.js 向けの3DGSレンダラ Spark [2] を使っています。 専用ソフトのインストールは不要で、タブレットやPCのブラウザ上でそのまま動きます。

担当するのは主に3つです。 3Dビューアで生成した3DGSモデルを自由な視点から見回し、図面連動で平面図の部屋と3Dモデルを行き来し、差分の可視化で新旧の変化を色分けして3Dビューに重ねて表示します。 重い比較計算は画面とは別スレッド(Web Worker)で動かすため、操作を止めずに扱えます。

技術紹介

3D再構成 - Morpho Photogrammetry Toolkit

3Dモデルの生成には、弊社が開発した3D再構成技術 Morpho Photogrammetry Toolkit™ を使用しています。 高価な専用センサーを必要とせず、一般的なRGBカメラで撮影した画像から高精度な3D空間を再構成できる技術で、SfM(Structure from Motion)と3DGS(3D Gaussian Splatting) を用いて実空間をバーチャル上に再現します。 さらに、3D空間の再構成と同時にAIによる自動3Dセグメンテーションも行えます。

本アプリのサーバは、アップロードされた動画をこの技術に渡し、3D再構成処理を任せています。

メインアルゴリズム

3Dモデル同士の位置合わせ

進捗を比較するには、「先週撮った現場」と「今週撮った現場」という別々のタイミングで生成した3Dモデル同士を、同じ座標系にそろえる必要があります。 しかし各モデルはSfMによる推定ごとに原点・向き・スケールがバラバラなため、そのまま重ねても一致しません。

そこで、アプリサーバでは、2つのモデル間の位置合わせ行列を推定し、新旧モデルを共通の座標系に変換します。 これにより、「動いていない壁や柱」が両モデルでぴったり重なり、後段の差分検出で「視点のズレ」と「実際の変化」を切り分けられるようになります。 その結果を示したのが図1です。

図面と3Dモデルの位置合わせ

次に、生成した3Dモデルを図面(間取り図)と重ね合わせます。 3Dモデルを真上から見た形状と図面の壁の位置を対応づけることで、「3D空間上のこの地点は、図面上のどの部屋・どの位置か」を特定します。 これにより、現場の3Dビューと平面図を行き来しながら進捗を確認できるようになります。

図3:図面と3Dモデルの位置合わせ

部屋単位の図面自動分割

図面は1枚の画像として入力されますが、進捗管理は「部屋単位」で見たいことがほとんどです。 一つの図面には複数の部屋があり、手動で分割するのは手間がかかります。 そこで、アプリサーバはSegFormer [3] を用いて図面から壁線を検出し、閉じた領域を部屋ごとに自動で分割します。 分割された各部屋は、Morpho Photogrammetry Toolkit(前述)の3D再構成結果と紐づき、フロント側で部屋を選んで個別に確認できるようになります。

図4:部屋単位の自動図面分割(元となる図面画像は生成AIで作成)

差分表示

最後に、位置合わせ済みの新旧2つの3Dモデルを比較し、現場の変化を自動で抽出します。

基本アイデアは、空間を格子状の小さな立方体(ボクセル)に区切り、マス目単位で新旧を比べることです。 共通座標系の上に同じ格子を張り、各マスに3Dの点(3DGSのスプラット)が一定数以上あれば「物がある(占有)」と判定します。 新旧の占有を突き合わせ、追加(新モデルにだけ物がある)/消失(旧モデルにだけ物がある)/色変化(両方あるが色が変わった)の3種類に分類します。

抽出した「変化したマス」を色分けして3Dビューに重ねると、現場を見回すだけで何が増え・何が消えたかを一目で把握できます。

図5:差分表示

直面した課題

図面と3Dモデルの位置合わせについて

当初は、3Dモデルから床を検出し、MatchAnythingモデル[4]をベースに図面との2D–2D位置合わせを行っていました。 しかし、3Dデータにはノイズが多く、ノイズ除去をかけると置物などがある箇所では点群がほとんど消えてしまい、床の検出が安定しないのがネックでした。

そこで、よりロバストな手法として、2D–2Dだけではなく、図面から抽出した壁の情報も位置合わせに取り入れる方式に変更しました。 床のように広い平面に頼らず、構造がはっきり出る壁を手がかりにすることで、ノイズや置物の影響を受けにくくなりました。

差分表示について

3D空間での物の増減(追加・消失)は比較的容易に検知できますが、張り紙のような薄い変化は検知が難しいという課題があります。 そこで、色情報も取り入れることで、紙一枚レベルの変化にも対応できるようにしています。

ただし、単純に色の変化を見るだけではうまくいきません。 位置合わせに残るわずかなズレによって、変化していない箇所でも隣と色が食い違い、「色が変わった」と誤検出してしまうためです。 また、撮影時の照明や露出の違いも変化として拾ってしまいます。

そこで、比較する面どうしのズレを吸収したうえで、照明の影響を受けにくい指標で判定することで、本当に貼り替え・塗り直しがあった箇所だけを検出できるようにしています。

CSPI 2026参加報告

開発したアプリは、社内にとどめず実際の建設・測量業界の反応を確かめたいと考えました。 そこで、研修期間中に開催された国際展示会 CSPI 2026 に出展し、現場のニーズを直接ヒアリングしました。

出展概要

CSPI 2026は、幕張メッセで開催される「国際 建設・測量展」(第8回)の略称です。 建設・測量分野の最新製品・技術が一堂に会する国際展示会で、私たちも今回初めて出展しました。

項目 内容
展示物 3D進捗確認アプリ
目的 業界動向の把握、OJT開発製品の展示、市場ニーズのヒアリング
日時 2026年6月17日〜20日
場所 幕張メッセ

図6:CSPI 2026展示会におけるデモ講演

来場者の反響

来場者の属性で関心の方向が分かれました。

  • ビジネス・現場管理層:3Dの視覚的インパクトに興味を持たれる層と、「現場作業者が使い慣れるのか」「操作ミスによる損失リスクへの対策は」と実運用をイメージされる層に分かれました。
  • 技術者層:位置合わせ手法や3D再構成のプロセス(使用カメラ、処理時間)など、コア技術への質問が中心でした。

ヒアリングで特に多かったニーズは次の2点です。

  • 土木現場での活用:屋内中心の展示だったため、「広大な屋外現場でも使えるか」という質問が多数。
  • 定量評価と自動化:進捗の定量評価やAIによる自動帳票生成など、事務工数の削減を求める声が最多。

フィードバック

評価された点 - 3D空間で直感的に進捗管理できるコンセプト - 専用機材不要、市販360度カメラのデータで使える実用性 - 位置合わせ技術の精度

課題・要望 - 可視化・位置合わせのみでは差別化が弱く、「定量評価まで対応できれば導入検討」との声 - 屋外・土木現場への対応 - 計測機能(寸法・容積、特に土量計算)への強い要望 - その他:2D図面の自動生成、CAD/BIM配置による施工シミュレーション、メモ・ピン留め、さび・クラックの自動検出、自社カメラのサポート

今後の方針

出展で得たニーズと実現性から、優先度の高い新機能を3点に整理しました。

  1. 計測機能(面積・体積) — 土木で要望多数。課題は計測精度の担保と領域指定の自動化。
  2. 自動レポート生成(差分検知+VLM) — 最も要望が強い「事務工数削減」に直結。実装難度も比較的低く最優先。課題は差分領域の自動トリミング。
  3. 定量評価(進捗%表示) — 差別化の核。課題は現場ごとに異なる算定基準の汎用化。

特に、CSPI 2026で得たフィードバックが製品開発の大きなヒントとなり、現在は計測機能と自動レポート生成機能の開発に取り組んでいます。

まとめ

現場の人手不足という課題を受け、360度カメラの映像から3Dモデルを再構成し、図面と紐づけて進捗を比較できるアプリを開発しました。 3Dモデル同士の位置合わせ機能、図面と3Dモデルの位置合わせ機能、部屋単位の図面自動分割機能、差分表示機能の4機能を実装しています。 CSPI 2026では、コンセプトや精度、専用機材不要な実用性が評価された一方、定量評価や自動レポート生成による事務工数削減、屋外・土木現場への対応を求める声が多く寄せられました。 ただし現状は実際の現場の3Dデータが十分に集まっておらず、多様な環境でのロバスト性の検証は依然として課題です。 これを受け、今後は計測機能(面積・体積)、自動レポート生成(差分検知+VLM)、定量評価(進捗%表示)の3点を優先して開発を進めます。

参考文献

[1] 厚生労働省「一般職業紹介状況(職業安定業務統計)」内 職業別一般職業紹介状況(常用(含パート)). https://www.mhlw.go.jp/content/11602000/001660247.pdf(2026年7月3日閲覧)

[2] SparkJS. Spark Documentation. https://sparkjs.dev/docs/ (2026年6月29日閲覧)

[3] Enze Xie, Wenhai Wang, Zhiding Yu, Anima Anandkumar, Jose M. Alvarez, Ping Luo. SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers. arXiv:2105.15203, 2021. https://arxiv.org/abs/2105.15203

[4] Xingyi He, Hao Yu, Sida Peng, Dongli Tan, Zehong Shen, Hujun Bao, Xiaowei Zhou. MatchAnything: Universal Cross-Modality Image Matching with Large-Scale Pre-Training. arXiv:2501.07556, 2025. https://arxiv.org/abs/2501.07556

[5] Satoshi Date, Shojiro Tsutsui, Israel Mendonça, Masayoshi Aritsugi. Automated Fine-Scale Change Detection Using 3D Gaussian Splatting and VLMs. In Proceedings of the 7th ACM International Conference on Multimedia in Asia (MMAsia '25), Article 77, 2025. https://doi.org/10.1145/3743093.3771023

付録

本章では、CSPI 2026出展後、ニーズをヒアリングした上でさらに取り組んだタスクの紹介を行います。

計測機能の初期アプローチ

初期アプローチとして、3D空間上で2点間の距離や領域の面積を測る計測ツールを試作しました。 課題は、3DGSのスプラットは1点ごとの奥行きが数cmずれるため、画面をタップして直接その点を拾うと計測がぶれてしまうことです。 そこで、3DGSモデルをボクセル(占有格子)に変換し、カメラからのレイでその格子をたどり、最初に「物がある」セル(周辺の密度重心)を当てることで、ノイズに強い安定した表面ピックを実現しました。 面積計測では、拾った点から平面を作り、その平面上に頂点を置いて算出することで、手前の物体に頂点が邪魔されないようにしています。

もう一つの課題はスケール(絶対的な寸法)の不定性です。 3DGSの座標はそのままでは実世界の長さと対応しないため、既知の長さ(例:測った線分の実寸)をユーザが入力し、そこから「1メートル=何座標単位か」を求めて較正する仕組みを設けました。 これにより現場ごとにスケールを合わせられますが、較正が手動である点、ミリ〜センチ単位の精度保証などが今後の課題として残っています。

図7:計測機能の初期アプローチ

自動レポート生成の初期アプローチ

初期アプローチとして、Dateら [5] のパイプラインを参考にし、新旧の3Dモデルを共通の位置合わせ済み視点から6方向(原論文は単一物体を対象としていますが、本研究では屋内シーンを対象とするため、固定視点からの外向き6方向としています)にレンダリングし、その画像ペアをVLMに渡して変化を文章で報告させる方式を試しました。 人間が現場写真を見比べて報告する作業を、そのままAIに任せる発想です。 視点をそろえることで、視点ズレと実際の変化を切り分けやすくしています。

しかしVLM は「物体がある=変化なし」と判断して姿勢・向きの変化を見落としたり、視点ズレを口実に本当の変化まで却下したりする課題がありました。 プロンプトを段階的に改善(変化タイプの明文化、固定物基準での判断、可動物チェック表の必須出力化)しましたが、微小な変化の見落とし、出力の再現性の低さ、定量化の難しさが残り、より安定した手法(ボクセルベースの差分検出)へ発展させています。