DeepLabv3
各ピクセルを分類する前に、複数のdilation rateで特徴量を並列にプーリングするセマンティックセグメンテーションネットワーク(atrous spatial pyramid pooling)です。LibreYOLOはセマンティックセグメンテーション専用で提供します。
- タスク
- semantic
- サイズ
- インストール
pip install libreyolo- サポートティア
- 推論のみ、v以降。推論、検証、エクスポートのみです。学習機能は対象外です。
- ライセンス
- コード:BSD-3-Clause、重み:BSD-3-Clause。商用利用
インストール
DeepLabv3に任意の追加パッケージは必要ありません。インポートするものはすべて基本 インストールに含まれます。
pip install libreyolo推論
重みは初回使用時にHugging Faceからダウンロードされ、ローカルにキャッシュされます。この
ファミリーではファイル名の-sem接尾辞が必要です。
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDeepLabv3r50-sem.pt")result = model(SAMPLE_IMAGE, save=True) mask = result.semantic_maskprint(mask.data.shape) # (H, W)クラスIDprint(mask.classes) # 画像内に存在するクラスIDをソートlibreyolo predict model=LibreDeepLabv3r50-sem.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueセマンティックセグメンテーションはボックスではなく、ピクセルごとに1個のクラスIDを返します。
result.semantic_maskの.dataには(H, W)配列、.classesには画像内に存在するクラスIDの
一覧が入ります。conf、iou、max_detはAPIの一貫性のため受け付けますが、効果はありません。
モデルはargmaxで各ピクセルへクラスを割り当て、信頼度のしきい値処理もNMS処理も行わないためです。
入力ソース、ストリーミング、結果の処理については推論を参照してください。
バリアント
バックボーンは、dilated ResNet-50、dilated ResNet-101、dilated MobileNetV3-Largeの 3種類です。これはDeepLabv3でありDeepLabv3+ではないため、デコーダー段階もCRF refinementも ありません。論文独自の参照コードではなく、torchvisionの実装に準拠しています。
LibreYOLOはDeepLabv3を学習しません。このファミリーでtrain()を呼び出すと
NotImplementedErrorが発生し、上記のサポート層でも推論専用と示されています。
公開されている3個のチェックポイントは、torchvision独自のCOCO-with-VOC-label重みを
LibreYOLOのローダー向けに変換したものです。
検証
val()は、学習に使った形式の任意のデータセットに対して測定したmetrics/mIoUと
metrics/pixel_accuracyを返します。
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeepLabv3r50-sem.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mIoU"])print(metrics["metrics/pixel_accuracy"])libreyolo val model=LibreDeepLabv3r50-sem.pt data=my-dataset.yamlエクスポート
| タスク | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| semantic | semantic to ONNX:対応 | semantic to TorchScript:対応 | semantic to ExecuTorch:非対応 | semantic to TensorRT:対応 | semantic to OpenVINO:対応 | semantic to Paddle:非対応 | semantic to MNN:非対応 | semantic to RKNN:非対応 | semantic to ncnn:非対応 | semantic to TFLite:非対応 | semantic to CoreML:非対応 | semantic to Core AI:非対応 |
エクスポートした成果物はファイル接尾辞に基づいてLibreYOLO()から再読み込みされます。そのため、
.onnxまたは.engineファイルはチェックポイントと同様に動作し、同じResultsを返します。
エクスポートには各形式が受け付ける引数の一覧があります。
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeepLabv3r50-sem.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreDeepLabv3r50-sem.pt format=onnxlibreyolo export model=LibreDeepLabv3r50-sem.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # ファクトリがファイル接尾辞で振り分けるため、エクスポートした成果物も# 通常のチェックポイントと同様に読み込まれ、同じResultsオブジェクトを返すmodel = LibreYOLO("LibreDeepLabv3r50-sem.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)チェックポイント
このファミリーで公開されているすべての重みファイルです。
| ファイル | 入力(px) | 重みのライセンス |
|---|---|---|
| semantic | ||
| LibreDeepLabv3r50-sem.pt | bsd-3-clause | |
| LibreDeepLabv3r101-sem.pt | bsd-3-clause | |
| LibreDeepLabv3mv3-sem.pt | bsd-3-clause | |
上記のすべてのファイルは現在LibreYOLO orgにあり、初回使用時にダウンロードされます。
ライセンス
ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。
これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。
- 原著作物
- DeepLabv3, PyTorch
- アップストリームのライセンス
- BSD-3-Clause
- アップストリームのソース
- github.com/pytorch/vision
- LibreYOLOのコード
- MIT
- 重み
- BSD-3-Clause、huggingface.co/LibreYOLOで再公開
- 解釈
- BSD-3-Clause is a permissive license, so this code and these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, license text and a non-endorsement clause with any copy you redistribute. LibreYOLO's inference graph is torchvision's ASPP head over its ResNet-50, ResNet-101 and MobileNetV3-Large backbones; it is DeepLabv3, not DeepLabv3+, so there is no decoder or CRF, and the paper's training-only auxiliary FCN classifier is excluded. The three published checkpoints are torchvision's official COCO-with-VOC-label weights; their separate LibreYOLO Hugging Face mirrors carry BSD-3-Clause on an implied basis disclosed by torchvision rather than an explicit checkpoint-specific grant, and torchvision's own documentation notes that pretrained-model terms can depend on the training data, leaving that determination to the user.