Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Feature Extraction

特徴抽出は、手設計の手法や事前学習済みニューラルネットワークを用いて、画像などの生データをコンパクトで有用な特徴に変換します。

特徴抽出とは、生データを、タスクに必要な情報を保った少数の数値特徴量に変換する処理です。640×480のRGB写真には921,600個の画素値が含まれ、その多くは冗長ですが、特徴抽出器は画像の内容を表す数百個程度の数値ベクトルに縮約できます。従来の機械学習では、データの種類ごとに手作業で設計した抽出器を使っていました。深層学習モデルは、バックボーンネットワーク内で独自の特徴量を学習し、その出力を検索、クラスタリング、新しい分類器に再利用できます。より少数で情報量の多い次元を使うことで、次元の呪いの影響も軽減され、より単純なモデルでも少ないデータから汎化できます。

手作業で作る特徴量と学習する特徴量#

深層学習が登場する前は、エンジニアがデータの種類ごとに特徴抽出器を作成していました。

  • SIFT: 画像内のキーポイントを検出し、それぞれを勾配方向の128次元ヒストグラムで記述します。スケールや回転が変化しても安定するため、画像マッチングやパノラマ合成の標準的な手法になりました。
  • HOG: セルのグリッド上で計算する勾配方向ヒストグラムです。線形サポートベクターマシンと組み合わせたHOGは、2005年に歩行者検出向けに導入され、従来の物体検出で広く使われました。
  • 主成分分析(PCA): データを分散が最大となる方向へ射影する手法です。表形式データ、顔、スペクトルなどに使える汎用的な手法です。
  • メル周波数ケプストラム係数(MFCCs): 人間の聴覚に合わせた尺度で、音声の短時間スペクトルを要約します。長らく音声認識の標準的な入力でした。

画像、音声、テキストでは、学習済み特徴量がこうした手法の大半に取って代わりました。数百万枚の画像で学習した畳み込みニューラルネットワーク(CNN)やビジョントランスフォーマー(ViT)は、階層的な特徴を自動で構築します。初期レイヤーはエッジや色の塊を検出し、中間レイヤーはテクスチャや部品を検出し、最終レイヤーは物体レベルの概念を表現します。特徴マップに保存されたこれらの表現は新しいタスクにも転用できるため、事前学習済みバックボーンは転移学習の標準的な出発点となっています。

  • 特徴量エンジニアリング: 多くの場合、ドメイン知識をもとにモデル入力を作成、変換、選択する、より広い取り組みです。たとえば、価格と面積から平方フィートあたりの価格を計算します。特徴抽出はその一部であり、深層学習では完全に自動化されています。
  • 特徴選択: 元の特徴量の一部を変更せずに残し、それ以外を取り除きます。特徴抽出では、元の特徴量を変換または組み合わせて新しい特徴量を作成します。
  • 次元削減: 特徴抽出と大きく重なる概念であり、PCAは両方に該当します。t-SNEのように可視化向けに作られた手法は、人が確認するために次元を削減するもので、モデル入力として使われることはほとんどありません。
  • 埋め込み: 学習済みの特徴抽出器が出力する特徴ベクトルです。深層学習では、「抽出された特徴量」と「埋め込み」は通常、同じベクトルを指します。

事前学習済みネットワークを特徴抽出器として使う#

一般的な手順では、事前学習済みネットワークからタスクヘッドを取り除き、重みを固定したレイヤーにデータを通し、最後の特徴マップをプーリングして入力ごとに1つのベクトルを得ます。ラベルがある場合、このベクトルだけを使って線形分類器を学習する手法は線形プロービングと呼ばれ、ネットワークの学習コストのごく一部で強力なベースラインが得られます。ラベルがない場合は、ベクトル検索で見た目の似た画像を見つけ、k-meansクラスタリングでデータセットをグループ化して整理や重複排除を行い、異常検知では正常なサンプルからの距離を使って欠陥を検出できます。異常検知中にバックボーンの重みは変化しないため、ファインチューニングとは区別されます。

YOLO26モデルでは、model.embed()を通じてこの処理を利用できます。指定したレイヤーまでネットワークを実行し、そのレイヤーの特徴マップを平均プーリングして画像ごとに1つのベクトルを生成します。また、embed=[10]はYOLO26バックボーンの最終レイヤーで処理を止めます。

from ultralytics import YOLO

# 事前学習済みのYOLO26モデルを読み込みます。バックボーンの最終レイヤーは10です
model = YOLO("yolo26n.pt")

# バックボーンの最終特徴マップを平均プーリングし、画像ごとに1つのベクトルにします
embeddings = model.embed("https://ultralytics.com/images/bus.jpg", embed=[10])
vector = embeddings[0]

print(vector.shape)

torch.Size([256])が出力されます。バスの写真全体が256個の数値に縮約されており、YOLO26nのストライド32のバックボーン出力の各チャネルに1つずつ対応します。ベクトル検索やクラスタリングに利用できます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう