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

CutMix

CutMixは、ある学習画像から切り出した長方形のパッチを別の画像に貼り付け、パッチの面積に応じてラベルを混合します。精度と位置特定性能の向上に役立ちます。

CutMixはデータ拡張の手法です。学習画像の一つから長方形のパッチを切り取り、別の画像の同じ位置に貼り付け、各画像が占める面積に応じて2つのラベルを混合します。NAVER Clova AI ResearchのSangdoo Yunらは、2つの従来手法を組み合わせたものとして、2019年のICCV論文でCutMixを発表しました。2つの手法とは、ランダムな領域を取り除くCutoutと、ラベルを混合するMixUpです。ImageNetでは、CutMixによりResNet-50のトップ1エラー率が23.68%から21.40%に下がり、MixUpの22.58%とCutoutの22.93%を上回りました。また、CutMixで事前学習したモデルは、物体検出と画像キャプション生成への転移性能も向上しました。

CutMixの仕組み#

画像Aと画像Bの各ペアについて、CutMixはベータ分布から混合比λをサンプリングします。デフォルトのパラメーターα = 1では、λは0から1までの一様分布になります。次に、幅と高さがそれぞれ画像の幅と高さに√(1 − λ)を掛けたサイズのボックスを描き、ランダムな点を中心に配置して画像の境界内に収め、Bの該当領域をAにコピーします。切り取り後、残ったAの割合としてλを再計算し、ラベルをAがλ、Bが(1 − λ)の割合で混合します。そのため、犬の画像に猫のパッチを30%貼り付けると、目標ラベルは犬0.7、猫0.3になります。損失関数は、このソフトラベルに対して最小化します。ラベルスムージングと同じ方法です。

PyTorchのtorchvisionでは、CutMixをバッチ全体に適用し、各画像をバッチ内の隣の画像と組み合わせます。

import torch
from torchvision.transforms import v2

# A batch of 4 random 224x224 images labeled with classes 0-3 of 10
torch.manual_seed(0)
images = torch.rand(4, 3, 224, 224)
labels = torch.tensor([0, 1, 2, 3])

# Paste a random box from each image's neighbor in the batch and mix the labels by area
cutmix = v2.CutMix(num_classes=10)
mixed_images, mixed_labels = cutmix(images, labels)

# Image 0 received its patch from image 3
pasted = (mixed_images[0] != images[0]).any(dim=0).float().mean()
print(f"pasted area: {pasted:.3f}")
print(f"label weights for classes 0-3: {mixed_labels[0, :4].numpy().round(3)}")

貼り付けた領域の割合として0.187、クラス0のラベル重みとして0.813、クラス3のラベル重みとして0.187が出力されます。各クラスに割り当てられた目標値の割合は、そのクラスが占めるピクセルの割合と一致します。

CutMixが有効な理由#

画像全体で学習した画像分類モデルは、犬の顔など、小さくても識別力の高い部分を見分けるだけで高い精度を出すことがあります。CutMixでその部分を別の画像で覆うと、モデルは体、脚、毛並みから犬を認識する必要があるため、各物体のより多くの部分を活用するようになり、弱教師ありの位置特定性能とオクルージョンへの頑健性が向上します。混合画像のすべてのピクセルは実際の写真から得られるため、モデルが空白領域や不自然に重ね合わせた画像で学習することはありません。他の強力な拡張手法と同様に、CutMixは正則化として機能し、過学習を抑えます。MetaのData-efficient Image Transformers(DeiT)で使われたものを含め、ビジョントランスフォーマー(ViT)の最新の学習レシピでは、CutMixとMixUpを組み合わせて適用します。

  • MixUp: 2枚の画像全体を重みλでピクセルごとにブレンドし、ラベルも同じ方法で混合します。その結果、実際のシーンにはない半透明の重ね合わせ画像が生成されます。
  • Cutout: ランダムな正方形領域をゼロでマスクし、元のラベルを維持します。そのため、マスクされたピクセルは学習に情報を与えません。
  • Mosaic: サイズを変更した4枚の画像を1枚にタイル状に配置します。物体検出器の学習に標準的に使われる拡張手法で、フレーム内に残るすべての物体のボックスラベルを保持します。
  • インスタンスセグメンテーション向けCopy-paste: 長方形ではなく、セグメンテーションされた物体インスタンスを別の画像に貼り付けます。

物体検出におけるCutMix#

物体検出では、ラベルをすべて明示的に保持します。クラスベクトルを混合するのではなく、物体が見えている範囲で両方の画像のボックスを保持します。デフォルトでは無効になっているUltralytics YOLOのcutmix拡張では、確率を0~1で指定します。実装では、対象画像の既存ボックスと重ならない切り取り領域を選び、2枚目の画像から同じ領域をコピーします。貼り付けたバウンディングボックスは、領域内に面積の少なくとも10%が残るものを保持し、セグメンテーションラベルの場合は1%を基準にします。CutMixはデフォルトで、学習の最後の10エポックに入るとMosaicとともに無効になります。この設定はclose_mosaic=10で指定します。

Explore solutions

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

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

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

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

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

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

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

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

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の未来を一緒に築きましょう!

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