コンピュータビジョンの本質と実用領域
コンピュータビジョン(Computer Vision)は視覚情報を解析する人工知能技術であり、画像・動画から対象物の識別や意思決定を実現します。実用事例として顔認証システムや自動運転技術、医療画像解析などが挙げられます。
主要な画像認識タスク
| タスク | 目的 | 実用例 |
|---|---|---|
| 画像分類 | 単一/複数ラベル付与 | 写真自動分類、品質検査 |
| 物体検出 | 位置特定と分類 | 歩行者検知、安全装備確認 |
| 画像分割 | ピクセル単位分類 | 医療画像解析、道路領域分割 |
学習前提条件
- Python基礎文法(制御構文、関数定義)
- 行列演算の初歩的理解
- Anaconda環境の操作知識
開発環境構築手順
仮想環境設定
# 仮想環境作成
conda create -n vision-env python=3.10
# 環境起動
conda activate vision-env
主要ライブラリ導入
# OpenCVインストール
pip install opencv-python-headless
# PyTorchインストール
pip install torch torchvision
# 補助ライブラリ
pip install numpy scikit-image
環境検証スクリプト
import cv2
import torch
from skimage import io, util
print(f"OpenCV: {cv2.__version__}")
print(f"PyTorch: {torch.__version__}")
sample_img = util.img_as_ubyte(io.imread('sample.png'))
cv2.imshow('Preview', cv2.cvtColor(sample_img, cv2.COLOR_RGB2BGR))
cv2.waitKey(0)
画像処理の基本原理
画像データは3次元配列(高さ×幅×チャネル数)で表現され、各ピクセル値は0-255の輝度値を保持します。
OpenCV基本操作
画像読み込みと変換
import cv2
from matplotlib import pyplot as plt
image_data = cv2.imread('input.jpg')
rgb_image = cv2.cvtColor(image_data, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(10, 8))
plt.imshow(rgb_image)
plt.axis('off')
plt.show()
画像変形処理
# 領域抽出
cropped = rgb_image[80:400, 150:550]
# 縮小処理
resized = cv2.resize(rgb_image, (400, 400))
# 結果表示
fig, axes = plt.subplots(1, 2, figsize=(12, 6))
axes[0].imshow(cropped)
axes[1].imshow(resized)
特徴抽出処理
# グレースケール変換
gray_img = cv2.cvtColor(image_data, cv2.COLOR_BGR2GRAY)
# 平滑化処理
blurred = cv2.GaussianBlur(gray_img, (7, 7), 1.5)
# 輪郭検出
edges = cv2.Canny(blurred, 40, 120)