AIに図面を読ませるより、DXFを処理した方がよかった
図面の形状理解と正確な座標処理を分け、DXFデータから不等流計算用の座標を抽出するツールを作った考え方を整理します。
AIに図面を読ませるより、DXFを処理した方がよかった
AIの画像認識が進歩すると、二次元図面を読み込ませ、形状や部材の関係を理解させられないかと考えます。
当社でも、図面の内容をAIがどこまで理解できるのか、数量計算や技術照査へ利用できるのかを検証してきました。
ただし、横断図から不等流計算に必要な座標を取り出す業務については、画像から読み取らせようとは考えませんでした。
座標は、センチメートルやミリメートル単位で扱う正確な数値です。しかも、その数値はCADデータの内部にすでに保持されています。
それなら、画面やPDFに表示された位置を画像から推測させるのではなく、CADデータに含まれる座標を直接取り出す方が合理的です。
そこで当社では、DXFデータから必要な座標を抽出し、不等流計算で使用できる形式へ整理する処理を検討しました。
図面を「見る」ことと、図面データを「読む」ことは違う
図面を画像としてAIに渡す方法と、CADデータそのものを処理する方法は、似ているようで目的が異なります。
画像認識が向いている可能性があるのは、例えば次のような場面です。
- 構造物の形状を把握する
- 部材同士の位置関係を整理する
- 寸法や注記の関係を確認する
- 配筋や構造の不整合候補を探す
- 数量算定に必要な条件を洗い出す
これらは、図面全体を見て空間的な関係を理解する作業です。
一方、横断図から座標を取得する作業では、必要なのは形状をそれらしく理解することではありません。
- どの点を取得するか
- その点の座標値はいくつか
- どの順番で並べるか
- どの基準位置へ変換するか
- 不等流計算で使える形式へどう出力するか
を、正確に処理する必要があります。
画像上では一本の線に見えていても、その位置をピクセルから推定した値と、CAD内部に保存された座標値は同じものではありません。
正確な数値がすでにデータとして存在するなら、それを直接利用する方が確実です。
DXFには、図面を構成する数値が保存されている
DXFのようなデータ形式には、線や点の座標、文字、レイヤなど、図面を構成する情報が数値として保存されています。
必要なのが座標であれば、画像の中から線の位置を推測するのではなく、図面内部に保存されている座標を直接取得できます。
もちろん、DXFを使えば自動的に正解が得られるわけではありません。
作図ルールが統一されていなければ、対象とする線や点を判定する条件が必要です。不要な要素を除外し、座標の並びを整え、基準位置に合わせて変換しなければなりません。
それでも、データ処理には大きな利点があります。
- どの情報を取得したか確認できる
- 処理手順を明示できる
- 同じ条件で繰り返し実行できる
- 誤りが出た場合に原因を追いやすい
- 条件を修正して再実行できる
座標を一つずつ手入力するより、確認可能な処理を一度作る方が、繰り返し業務では安定します。
横断図から不等流計算へ座標を渡す
河川設計では、横断図から地形や河道の座標を読み取り、不等流計算で使用できる形へ整理する作業があります。
手入力でも対応できますが、測点が増えるほど作業量は大きくなります。
さらに、
- 座標値の転記ミス
- 点の並び順の誤り
- 不要点の混入
- 基準位置の取り違い
- 出力形式の不一致
などが起こる可能性があります。
そこで、DXFから必要な座標を抽出し、座標系を変換し、所定の順番へ並べ、CSVとして出力するツールを作りました。
この処理により、手入力を減らしながら、出力結果を元図と照合できる状態にしました。
重要なのは、単に作業時間を短くすることではありません。
同じ処理を同じルールで繰り返し、どこを確認すべきかを明確にすることです。
AIへ任せたのは、座標の読取りではなく道具づくりだった
この取り組みでAIに任せたのは、図面を見て座標値を答えることではありません。
AIには、次のような道具づくりを補助させました。
- DXFの構造を扱う処理を考える
- 必要な要素を抽出するコードを作る
- 座標変換の手順を実装する
- 点の並び順を整理する
- 重複や不要データを除外する
- 不等流計算で使える形式へ出力する
- 想定外のデータに対する例外処理を加える
AIに毎回答えを出させるのではなく、何度も使える確認可能な処理を作るためにAIを使った形です。
プログラミングそのものが目的ではありません。
必要な業務を正確に終わらせるために、AIを開発補助として使いました。
生成AIより従来型の処理が向く作業もある
生成AIは柔軟です。
曖昧な文章を整理したり、複数の考え方を比較したり、コードのたたき台を作ったりすることには非常に役立ちます。
一方で、次のような作業は、決められたルールで処理する方が安定します。
- 正確な座標取得
- 数値変換
- 並び替え
- CSV出力
- 重複削除
- 所定形式への整形
- 一定条件による数値チェック
このような処理まで、毎回生成AIへ判断させる必要はありません。
生成AIは、処理方法を考え、コードへ変換し、修正案を出す開発補助として使う。その後の定型処理は、決められたロジックで実行する。
この役割分担の方が、結果を確認しやすくなります。
画像認識とデータ処理は、どちらか一方ではない
画像認識が役に立たないという話ではありません。
図面の形状、部材の関係、複雑な箇所、数量算定の前提などを整理する場面では、AIの画像認識を検証する価値があります。
一方、正確な座標や属性がCADデータに保存されている場合は、構造化されたデータを直接処理する方が適しています。
つまり、
形状や関係の理解には画像認識、正確な数値処理には構造化データ。
という使い分けです。
どちらが新しいか、どちらが高度かという問題ではありません。
目的とする情報を、どの方法で扱うのが最も確実かを判断することが重要です。
ツールを作っても、人間の確認はなくならない
データ処理へ切り替えたからといって、確認が不要になるわけではありません。
- 元の図面が正しく作られているか
- 対象とする要素が適切か
- 座標変換の基準が合っているか
- 点の並び順が正しいか
- 出力された横断形状が元図と一致しているか
は、人間が確認する必要があります。
自動化の目的は、人間の確認をなくすことではありません。
単純な転記や定型処理を減らし、人間が本来確認すべき部分へ時間を使えるようにすることです。
また、図面の作り方が変われば、ツール側の条件も見直す必要があります。
どのような入力でも無条件に正しく処理できる万能ツールではありません。
だからこそ、処理内容を理解し、どこで誤る可能性があるかを把握したうえで使う必要があります。
現時点での結論
AI活用は、何でもAIに見せて判断させることではありません。
目的に応じて、画像認識、構造化データ、従来型処理を使い分ける。
横断図の座標取得では、AIに画像から数値を推測させるのではなく、DXF内部の座標を直接処理する方法を選びました。
そしてAIは、その処理を実行する道具を作るために使いました。
DXFは、そのために利用した具体的な手段の一つです。
重要なのは形式の新旧ではなく、目的とする情報をどの方法で扱うのが最も確実かを判断することです。
AIに毎回答えを求めるのではなく、AIと一緒に実務で使える道具を作る。
これも、土木設計におけるAI活用の一つの形だと考えています。