目次
2.1 yolov8 に追加されたダイナミック スネーク コンボリューション
1. 産業用油汚染データセットの概要
サムスンの油汚れ欠陥カテゴリ: 髪の毛と小さな黒い斑点、["TFS"、"XZW"]
データ セット サイズ: 660 画像 (背景検出機能を向上させるためのいくつかの優れた製品画像を含む)。
データセットのアドレス: https://download.csdn.net/download/m0_63774211/87741209
欠陥の特徴: 以下の図に示すように、検出が困難な小さなターゲット欠陥。
1.1 小さな目標の定義
1) 物体検出の分野で一般的なデータセットの COCO オブジェクト定義を例にとると、小さいオブジェクトは 32×32 ピクセル未満を指します (中オブジェクトは 32*32-96*96 を指し、大きいオブジェクトは 32×32 ピクセルを指します)。 96*96 より大きい);
2) 実際のアプリケーション シナリオでは、通常、元のイメージに対する比率を使用して定義する方が望ましい: オブジェクト ラベル ボックスの長さと幅の積を、オブジェクト ラベル ボックスの長さと幅の積で割ったもの。画像全体を見て平方根を開き、結果が 3% 未満の場合は、それを小さな目標と呼びます。
1.2 困難
1) 小さなターゲットを含むサンプルの数が少ないため、ターゲット検出モデルが中型および大型のターゲットの検出により注意を払うことができる可能性があります。
2) 小さなターゲットがカバーするエリアは狭いため、小さなターゲットの位置は多様性に欠けます。このため、小さな物体検出の一般化可能性を検証することが困難になっていると推測されます。
3) アンカーマッチングの問題が難しい。これは主にアンカーベースの方法で、小さなターゲットの gt ボックスとアンカーが非常に小さいため、アンカーと gt ボックスがわずかにオフセットされ、IoU が非常に低くなり、ネガティブ サンプルとして判定されやすくなります。ネットワークによって。
4) それらは小さいだけでなく、さまざまな程度の閉塞、ぼやけ、不完全さを伴い、困難でもあります。
1.3 工業用欠陥検出アルゴリズムの概要
産業用欠陥検出で最も人気のあるディープ ラーニング フレームワークはPaddle と Pytorch で、その中で最も人気のある検出アルゴリズムはYOLOv8、YOLOV5、PP-YOLOEです。この記事では YOLOv8 を使用して欠陥検出機能を向上させます。
1.3.1 YOLOv8
Ultralytics YOLOv8 は、Ultralytics が開発した YOLO ターゲット検出および画像セグメンテーション モデルの最新バージョンです。YOLOv8 は、これまでの YOLO の成功を基盤とし、パフォーマンスと柔軟性をさらに向上させるための新機能と改善を導入した最先端の最先端 (SOTA) モデルです。大規模なデータセットでトレーニングでき、CPU から GPU まで、さまざまなハードウェア プラットフォームで実行できます。
具体的な改善点は以下の通りです。
バックボーン: CSP のアイデアを引き続き使用していますが、YOLOv5 の C3 モジュールが C2f モジュールに置き換えられ、さらなる軽量化が実現されています。同時に、YOLOv8 は YOLOv5 や他のアーキテクチャで使用されている SPPF モジュールを引き続き使用しています。
PAN-FPN: YOLOv8 が依然として PAN の考え方を使用していることに疑いの余地はありませんが、YOLOv5 と YOLOv8 の構造図を比較すると、YOLOv8 は YOLOv5 の PAN-FPN アップサンプリング段階の畳み込み構造を削除していることがわかります、C3 も削除されます。モジュールは C2f モジュールに置き換えられます。
分離頭: 何か違う匂いがしますか? はい、YOLOv8 は分離ヘッドに移行します。
アンカーフリー: YOLOv8 は以前のアンカーベースを放棄し、アンカーフリーのアイデアを使用しました。
損失関数: YOLOv8 は、VFL 損失を分類損失として使用し、DFL 損失 + CIOU 損失を分類損失として使用します。
サンプル マッチング: YOLOv8 は、以前の IOU マッチングまたは一方的な割合割り当て方法を放棄し、代わりに Task-Aligned Assigner マッチング方法を使用します。
2.ダイナミックスネークコンボリューション
論文: 2307.08388.pdf (arxiv.org)
要約:血管や道路などのトポロジカルな管状構造の正確なセグメンテーションは、下流タスクの精度と効率を確保するためにさまざまな分野で非常に重要です。ただし、薄い局所構造や可変的な全体的な形態など、多くの要因がこの作業を複雑にします。この研究では、管状構造の特殊性に注目し、この知識を活用して DSCNet が 3 つの段階 (特徴抽出、特徴融合、損失制約) で同時に知覚を強化できるように導きます。まず、細長く曲がりくねった局所構造に適応的に焦点を合わせることで、管状構造の特徴を正確に捕捉するための動的なスネーク畳み込みを提案します。続いて、特徴融合プロセス中に特徴に対するマルチアングル焦点を補完し、さまざまなグローバルモダリティからの重要な情報が確実に保持されるようにする、マルチビュー特徴融合戦略を提案します。最後に、セグメンテーションの位相的連続性をより適切に制約するために、永続的な相同性に基づく連続性制約損失関数が提案されています。2D および 3D データセットの実験では、DSCNet が複数の方法と比較して管状構造セグメンテーション タスクの精度と連続性が優れていることが示されています。私たちのコードは公開されています。
主な課題は、細くて弱い局所的な構造的特徴と、複雑で変化しやすい全体的な形態学的特徴から生じます。この論文は、管状構造の細長く連続的な特性に焦点を当て、この情報を使用して、ニューラル ネットワークの次の 3 つの段階 (特徴抽出、特徴融合、損失制約) での知覚を同時に強化します。動的スネーク畳み込み、マルチビュー特徴融合戦略、および連続性トポロジー制約損失がそれぞれ設計されました。
私たちは、コンボリューション カーネルが構造学習の特徴に自由に適合できる一方で、制約の下でターゲット構造から大きく逸脱しないことを望んでいます。管状構造の細長く連続した特徴を観察した後、ある動物が頭に浮かびました -ヘビ。私たちは、コンボリューション カーネルがターゲットの構造に合わせて蛇のように動的にひねることができることを期待しています。
2.1 yolov8 に追加されたダイナミック スネーク コンボリューション
コアコード:
class DySnakeConv(nn.Module):
def __init__(self, inc, ouc, k=3) -> None:
super().__init__()
self.conv_0 = Conv(inc, ouc, k)
self.conv_x = DSConv(inc, ouc, 0, k)
self.conv_y = DSConv(inc, ouc, 1, k)
def forward(self, x):
return torch.cat([self.conv_0(x), self.conv_x(x), self.conv_y(x)], dim=1)
詳細については、以下を参照してください。
3. トレーニング結果の分析
訓練結果は以下の通りです。
元の [email protected] 0.679 が 0.743 に改善されました
YOLOv8-C2f-DySnakeConv summary: 249 layers, 3425894 parameters, 0 gradients, 8.7 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 2/2 [00:04<00:00, 2.15s/it]
all 66 187 0.722 0.668 0.743 0.342
TFS 66 130 0.582 0.6 0.638 0.295
XZW 66 57 0.862 0.737 0.847 0.388
詳細については、https: //cv2023.blog.csdn.net/article/details/133125904を参照してください。
4.シリーズ
1) Yolov8 に基づく産業用小型ターゲット欠陥検出 (1)
2) ダイナミックサーペンタインコンボリューション | ICCV2023
Dynamic Snake Convolution (Dynamic Snake Convolution)、猛烈なゲインを達成 | ICCV2023