図面の改訂前後の違いはAIで自動で見つかる?差分の比較を、架空図面40組で試した結果

架空の部品図40組(200dpiのスキャン相当)で試すと、位置合わせをした差分では寸法値の変更を10組中9組で見つけ、変更でない誤検出は0か所でした。位置合わせをしないと、誤検出は計450か所に増えます。色で赤字を探す方法とは違い、ここで扱うのは、改訂前と改訂後の2枚を重ねて比べる方法です。(2026年10月時点)
全体の流れと読める項目は読み取りの進め方のページにまとめています。
要点
- 改訂前と改訂後の図面は、位置合わせをしてから差分を取れば、変更を自動で見つけて人の確認に回せます。
- 架空の部品図40組のスキャン相当では、位置合わせをすると変更を40組中39組で見つけ、誤検出は0か所でした。
- 位置合わせをしないと、誤検出は40組で計450か所(1組平均11.2か所)になり、本当の変更が埋もれました。
- スキャンの縮尺が2%ずれると、位置合わせをしても誤検出が1組平均8.7か所に戻ります。
目次
図面の改訂前後の違いは、どこまで自動で見つかりますか?
位置合わせをした差分なら、架空の部品図40組(200dpiのスキャン相当)の変更を39組で見つけ、変更でない場所を拾う誤検出は0か所でした。位置合わせをしない差分は、変更を40組すべてで拾う代わりに、誤検出が計450か所(1組平均11.2か所)になり、本当の変更が埋もれました。
試したのは、変更を寸法値1か所・穴の追加・注記の追記・改訂記号のみの4種に分けた各10組です。どの組も表題欄の改訂記号はAからBに変わります。赤い手書きを色で拾う方法は赤字の記事にまとめたので、ここでは色を使わず、改訂前と改訂後の2枚の画像を比べます。
| 条件(各40組) | 変更を見つけた組 | 寸法値の変更 | 誤検出(合計) | 誤検出(1組平均) |
|---|---|---|---|---|
| CADのPDF同士(位置合わせの有無とも) | 40組 | 10組中10組 | 0か所 | 0か所 |
| スキャン・位置合わせなし | 40組 | 10組中10組 | 450か所 | 11.2か所 |
| スキャン・ECCで位置合わせ | 39組 | 10組中9組 | 0か所 | 0か所 |
位置合わせなしで40組すべてを「見つけた」のは、図面全体が違いとして出るためです。見つけたというより、20か所近い違いの中に埋もれた状態で、1組あたりの誤検出は最大20か所でした。CADのPDF同士は、前後の座標が同じなので位置合わせが要りません。
差分は、どんな手順で出しますか?
改訂後の画像を改訂前に合わせてから、合わせても残る線の違いだけを取り出します。手順は次の5つで、AIというより古典的な画像処理です。学習は要りません。
- 改訂前と改訂後を、同じ200dpiの画像にします
- 改訂後を改訂前に合わせます(位置合わせ)
- 相手の線から1px(約0.13mm)の中に入らない濃い線を、違いとします
- 2mm以内の違いを1か所にまとめ、小さな点(ほこり)は数えません
- 違いの場所に枠を付けて、人に見せます
位置合わせには、OpenCVのfindTransformECCを使いました。濃淡の似かたから、回転・拡大縮小・移動をまとめて推定する関数です。
公式ソースには、大きくずれているときはおおまかな初期値が要り、収束しないと例外を投げる、と書かれています。そこで画像を縮小したものから順に合わせました。実験では40組とも収束しました。
warp = np.eye(2, 3, dtype=np.float32)
_, warp = cv2.findTransformECC(before_s, after_s, warp, cv2.MOTION_AFFINE, crit, None, 5)
aligned = cv2.warpAffine(after, warp, (w, h), flags=cv2.INTER_LINEAR + cv2.WARP_INVERSE_MAP)
1pxと「16px未満は数えない」の値は、本番とは別に作った24組を使って一度だけ決めました。本番では動かしていません。図面は線だけの単純なものです。実物の図面では値を決め直します。
見つけた後は、誰が何を確認しますか?
差分が示すのは「変わった場所」だけなので、その変更が正しいかどうかは、図面を受け取った人が確かめます。私が仕組みを作るときは、差分の枠を客先の改訂の通知と見比べる作業を、加工や見積に回す前の1回に決めます。
確かめることは2つです。通知にない変更が出ていないか、通知にある変更が差分に出ているか。前者が改訂の間違い防止の要です。客先の通知にない穴や寸法値の変更が見つかったら、その図面は止めて客先に確かめます。
改訂記号だけが変わった10組は、10組とも見つかりました。ほかに枠が出なければ、記号だけが変わって中身は同じだと確かめられます。
見つからなかった1組は、スキャン相当で位置合わせをした寸法値の変更でした。小さな数字の変更は、ほこりを除く設定(16px未満は無視)に近い大きさで、紛れることがあります。実験では原因まで調べていません。差分で何も出なかったことは、変更なしの証拠にはなりません。
台帳の改訂履歴には、どう残しますか?
図番ごとに版を1行にして、変わった所と、確認した人と日を書き、前の版の行は消さずに「無効」にします。差分の画像は、図番と版に結びつけて残します。
「変わった所」は、差分で出た枠を人が見て、「全幅120→125(寸法値)」のように書きます。後から客先と食い違ったとき、いつ誰がどの版の何を確かめたかが分かります。差分の画像も残しておけば、変更の前の状態を見せて説明できます。
旧版の紙を回収しきれない確率は図面の最新版の記事で計算しました。台帳で最新かどうかを決めておけば、紙を回収しきれなくても、旧版で加工するのを止められます。
変更の指示に費用がかかる場合の記録は、設計変更の追加費用の記事にまとめました。
位置合わせが効かないのは、どんな場合ですか?
スキャンの縮尺が2%以上ずれると、位置合わせをしても誤検出が戻ります。A3の長辺420mmで、2%は8.4mmです。複合機の拡大縮小の設定や、用紙の伸び縮みで起こりえます。
改訂後だけ縮尺をずらして、最初の20組で試した結果は次のとおりです。回転と移動だけで合わせる方法(剛体)は、1%のずれでも合いません。
| 改訂後の縮尺のずれ | 誤検出(1組平均、拡大縮小も合わせる方法) | 誤検出が0か所だった組 | 誤検出(1組平均、回転と移動だけ) |
|---|---|---|---|
| 0% | 0.1か所 | 20組中19組 | 0.1か所 |
| 1% | 0.1か所 | 20組中19組 | 15.3か所 |
| 2% | 8.7か所 | 20組中13組 | 14.2か所 |
| 3% | 18.6か所 | 20組中1組 | 12.1か所 |
対処は、スキャンを等倍(100%)で取り直すことです。ずれが残る図面は、差分を使わず目で比べます。
実験の限界もあります。図面と変更はすべて架空で、線だけの単純な部品図です。網掛けや細かい注記の多い図面、改訂で配置が大きく変わる図面は試していません。位置合わせの値(1pxと16px)も実物に合わせて決め直します。
このサイトで相談するには?
改訂のたびに目で見比べている図面の確認を、差分で減らしたいときは、図面よみの無料で相談するからどうぞ。何をどう頼むか決まっていなくても大丈夫です。準備は要りません。図面をお見せいただかなくても、御社のやり方に合わせて、進め方を一緒に考えます。
よくある質問
- CADのPDF同士なら、位置合わせは要りませんか?
- 実験では要りませんでした。前後を同じ位置に出力した40組は、位置合わせの有無にかかわらず変更を40組中40組で見つけ、誤検出は0か所でした。用紙の大きさや余白が前後で違う出力は試していません。
- 図面を文字として読み取ってから、前後を比べてもよいですか?
- できますが、取りこぼしが出ます。図面よみの架空60枚の実験では、スキャン相当の寸法の正解率は64.2%でした。読み取りが外れた寸法は、前後で同じ誤りなら差分に出ません。
- 改訂記号だけが変わった図面も、見つけられますか?
- はい。実験では10組中10組で見つけました。ほかに差分が出なければ、記号だけが変わって中身は同じだと確かめる材料になります。
- 差分で何も出なかった図面は、変更なしと決めてよいですか?
- いいえ。実験でも、スキャン相当で位置合わせをした寸法値の変更1組が見つかりませんでした。客先の改訂の通知と照らして、人が確かめます。
出典
- 図面よみの実験(2026年10月17日)。架空の部品図40組(改訂前A・改訂後B、A3横、200dpi。変更は寸法値・穴の追加・注記の追記・改訂記号のみの4種を各10組)を、CADのPDF同士とスキャン相当の2条件で、位置合わせなしとECCありの差分にした。縮尺ずれの追加実験は20組。コードは scripts/figs/revision_diff.py(2026年10月17日確認)
- OpenCV 4.x の公式ソース modules/video/include/opencv2/video/tracking.hpp。findTransformECC の説明(動きの型、初期値、収束しないときの例外)(2026年10月17日確認)
- Evangelidis, G. D. and Psarakis, E. Z.「Parametric image alignment using enhanced correlation coefficient maximization」IEEE Transactions on Pattern Analysis and Machine Intelligence 30(10), 2008。OpenCV の文献一覧(doc/opencv.bib)による紹介で、原文は開いていない(2026年10月17日確認)


