ベクターPDFとラスターPDFの違いとは?図面をAIで読む前に知っておきたい基本
「同じPDFの図面なのに、こっちはAIでうまく読めて、あっちは全然ダメ……なんで?」——図面のデジタル化を進めていると、こんな場面に出くわすことがあります。実はその原因、PDFの「種類」にあるかもしれません。PDFには大きく分けてベクターPDFとラスターPDFの2種類があるんです。この記事では、ベクターPDFとラスターPDFの違いと見分け方、そして図面をAIやPythonで読み取るときに何が変わるのかを、カジュアルに解説します。
ベクターPDFってどんなもの?
ベクターPDFは、線や文字を「データ(命令)」として持っているPDFです。たとえば「この座標からこの座標まで線を引く」「ここにこの文字を書く」といった情報が中に入っています。
CADソフトやWord、Excelなどから直接PDFに書き出すと、たいていはベクターPDFになります。拡大してもカクカクせず、線がくっきりしたままなのが特徴です。
ラスターPDFってどんなもの?
ラスターPDFは、中身が「画像(写真)」になっているPDFです。紙の図面をスキャナーで読み込んだり、FAXで受け取ったりしたものは、ほとんどがこのタイプ。見た目は図面でも、データとしては細かい点(ピクセル)の集まりでしかありません。
画像PDFやスキャンPDFと呼ばれることもあります。拡大すると線がぼやけたり、ギザギザになったりするのが特徴です。
ざっくり比較表
| 項目 | ベクターPDF | ラスターPDF |
|---|---|---|
| 中身 | 線や文字のデータ | 画像(ピクセル) |
| よくある作られ方 | CADやOfficeから書き出し | スキャン・FAX・写真 |
| 拡大したとき | くっきりのまま | ぼやける・ギザギザ |
| 文字の選択・検索 | できることが多い | 基本できない |
| Pythonで線の座標を取る | できる | できない |
手元のPDFはどっち?かんたんな見分け方
① 思いっきり拡大してみる
PDFビューアーで400%くらいまで拡大してみてください。線がシャープなままならベクター、ぼやけたりギザギザになったりすればラスターの可能性が高いです。
② 文字を選択してみる
図面の中の文字をドラッグして選択できればベクターの可能性が高いです。ただし、CADから書き出した図面は文字が線に変換されていて、ベクターでも選択できないことがあるので、①とあわせて判断するのがおすすめです。
③ Pythonでチェックする
枚数が多いなら、プログラムで判定するのもアリです。「PyMuPDF」という無料のライブラリを使えば、ページごとに図形と画像の数を数えられます。
import pymupdf
doc = pymupdf.open("drawing.pdf")
for page in doc:
shapes = len(page.get_drawings())
images = len(page.get_images())
print(f"p{page.number + 1}: 図形 {shapes} / 画像 {images}")
図形がたくさんあればベクター、図形がほぼゼロで画像が1枚だけならラスター、と判断できます。
図面をAIで読むとき、何が変わる?
ベクターPDFなら「正確な計測」ができる
ベクターPDFは線の座標をそのまま取り出せるので、Pythonで長さや面積を正確に計算できます。AIには「この線は何の部材か」という判断だけを任せればいいので、精度の高い積算につなげやすいです。
ラスターPDFは「AIに見てもらう」のが基本
ラスターPDFは画像なので、座標のデータはありません。そのため、文字はOCRで読み取り、図面の内容は画像を理解できる生成AIに見てもらう、という方法になります。ただ、スキャン時のゆがみや汚れ、解像度の低さで読み間違いが起きやすく、寸法を正確に測るのはベクターPDFより難しくなります。
ちなみに「混ざっている」PDFもある
ベクターの図面に写真が貼り込まれていたり、スキャンした画像にOCRの文字情報が重ねられていたりと、両方が混ざったPDFもよくあります。「全部どっちか」と決めつけず、ページごとに確認するのが安心です。
まとめ
ベクターPDFとラスターPDFの違いは、ひとことで言うと「データか、画像か」です。図面をAIやPythonで読み取るなら、できるだけベクターPDFで受け取るのが近道。取引先から図面をもらうときに「CADから直接書き出したPDFでください」とお願いするだけでも、後の作業がずいぶん変わりますよ。「うちの図面はどっち?AIで読める?」と気になったら、hello-opensky までお気軽にご相談ください。
