投稿日:2025年3月4日

Pythonによる画像処理の基礎と機械学習への応用

Pythonによる画像処理の基礎

Pythonは、多くのライブラリを用いて画像処理を行うことができるプログラミング言語です。
その中でも特に人気のあるライブラリが、OpenCVやPillow(PIL)です。
これらのライブラリを利用することで、画像の読み込みや変換、フィルタリングなどを手軽に実施することができます。

画像の読み込みと表示

画像処理の第一歩は、画像をプログラムに取り込むことです。
Pythonでは、Pillowを使用することで画像ファイルを簡単に読み込み、表示することができます。

例として、Pillowを使った画像の読み込みと表示方法を紹介します。

“`python
from PIL import Image

# 画像の読み込み
image_path = ‘path/to/your/image.jpg’
img = Image.open(image_path)

# 画像の表示
img.show()
“`

このように簡単な数行のコードで、画像をプログラムに取り込み、表示することができます。
OpenCVを使用する場合も似たような手順を踏みます。

画像の変換と保存

画像を読み込んだ後は、その画像を様々な形式に変換したり、加工したりすることが可能です。
例えば、画像のフォーマット変更やサイズ変更が考えられます。

“`python
# 画像のサイズを変更
img_resized = img.resize((100, 100))

# PNG形式で保存
img_resized.save(‘resized_image.png’)
“`

このように、変換した画像データは別形式や異なるサイズで保存することができます。

画像処理の基本操作

画像処理の基本操作には、フィルタリングやエッジ検出、カラースペースの変換などがあります。

フィルタリング

フィルタリングにより、画像の特徴を強調したり、ノイズを除去したりすることができます。
OpenCVには、様々なフィルタリング技術が組み込まれています。

例えば、画像をぼかす操作は以下のように実施できます。

“`python
import cv2

# 画像の読み込み
img = cv2.imread(‘path/to/your/image.jpg’)

# ぼかし処理
blurred_img = cv2.GaussianBlur(img, (5, 5), 0)

# 画像の保存
cv2.imwrite(‘blurred_image.jpg’, blurred_img)
“`

エッジ検出

エッジ検出は、画像内の構造を捉えるために重要な技術です。
これにより、物体の輪郭を理解することができます。

Cannyアルゴリズムは、エッジ検出に広く利用されている方法の一つです。

“`python
# Cannyエッジ検出
edges = cv2.Canny(img, 100, 200)

# エッジ検出された画像の保存
cv2.imwrite(‘edges.jpg’, edges)
“`

機械学習への応用

画像処理技術は、単体でも価値がありますが、機械学習と組み合わせることでその可能性を大きく広げることができます。

画像分類

画像分類は、画像の内容をカテゴリに分類するタスクです。
色や形状、テクスチャなどの特徴量を抽出し、機械学習モデルで処理することで、画像が持つ情報を確率論的に分類することができます。

深層学習フレームワークのTensorFlowやPyTorchを用いることで、簡単に画像分類モデルを構築することができます。

“`python
import tensorflow as tf

# モデルの構築
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3, 3), activation=’relu’, input_shape=(100, 100, 3)),
tf.keras.layers.MaxPooling2D((2, 2)),
# …
tf.keras.layers.Dense(10, activation=’softmax’)
])

# コンパイル
model.compile(optimizer=’adam’,
loss=’sparse_categorical_crossentropy’,
metrics=[‘accuracy’])

# トレーニング
# model.fit(train_images, train_labels, epochs=10)
“`

物体検出

物体検出は、画像内にどんな物体があるかだけでなく、それがどこにあるかを特定するタスクです。
物体検出モデルとしては、YOLOやSSD、Faster R-CNNなどが有名です。

物体検出においては、各物体の位置を示すためにバウンディングボックスを利用します。
これらのモデルは通常、大量のデータを必要としますが、その分非常に高精度な結果を出力します。

まとめ

Pythonによる画像処理は、OpenCVやPillowといったライブラリを使うことで、基本的な画像の読み込みや変換、フィルタリングを簡単に実施できます。
さらに、これらのテクノロジーは機械学習と組み合わせることで、画像分類や物体検出といった高度なタスクにも応用されます。

これにより、製造業における品質検査や自動化において、これまで手作業で行っていたプロセスを効率化し、高精度かつ迅速に実行することが可能です。
現場のニーズに応じて、適切な場面で適切な技術を選択し、効果的に活用することが重要です。

ノウハウ集ダウンロード

製造業の課題解決に役立つ、充実した資料集を今すぐダウンロード!
実用的なガイドや、製造業に特化した最新のノウハウを豊富にご用意しています。
あなたのビジネスを次のステージへ引き上げるための情報がここにあります。

NEWJI DX

製造業に特化したデジタルトランスフォーメーション(DX)の実現を目指す請負開発型のコンサルティングサービスです。AI、iPaaS、および先端の技術を駆使して、製造プロセスの効率化、業務効率化、チームワーク強化、コスト削減、品質向上を実現します。このサービスは、製造業の課題を深く理解し、それに対する最適なデジタルソリューションを提供することで、企業が持続的な成長とイノベーションを達成できるようサポートします。

製造業ニュース解説

製造業、主に購買・調達部門にお勤めの方々に向けた情報を配信しております。
新任の方やベテランの方、管理職を対象とした幅広いコンテンツをご用意しております。

お問い合わせ

コストダウンが重要だと分かっていても、 「何から手を付けるべきか分からない」「現場で止まってしまう」 そんな声を多く伺います。
貴社の調達・受発注・原価構造を整理し、 どこに改善余地があるのか、どこから着手すべきかを 一緒に整理するご相談を承っています。 まずは現状のお悩みをお聞かせください。

You cannot copy content of this page