快捷方式

SanitizeBoundingBoxes

class torchvision.transforms.v2.SanitizeBoundingBoxes(min_size: float = 1.0, min_area: float = 1.0, labels_getter: Optional[Union[Callable[[Any], Any], str]] = 'default')[source]

移除退化/無效的邊界框及其對應的標籤和掩碼。

此變換會移除低於給定 min_sizemin_area 的邊界框及其相關的標籤/掩碼:

  • 預設情況下,它還會移除退化框,例如 X2 <= X1。

  • 如果任何座標超出其對應的影像。您可能需要先呼叫 ClampBoundingBoxes 以避免不必要的移除。

它還可以清除其他張量,例如 COCO 中的“iscrowd”或“area”屬性(請參閱 labels_getter 引數)。

建議在管道的末尾,將輸入傳遞給模型之前呼叫它。如果呼叫了 RandomIoUCrop,則呼叫此變換至關重要。如果您想格外小心,可以在所有可能修改邊界框的變換之後呼叫它,但在大多數情況下,在最後呼叫一次就足夠了。

引數:
  • min_size (float, 可選) – 邊界框被移除的最小尺寸。預設為 1。

  • min_area (float, 可選) – 邊界框被移除的最小面積。預設為 1。

  • labels_getter (可呼叫物件strNone, 可選) –

    指示如何識別輸入中的標籤(或任何其他需要與邊界框一起清除的內容)。預設情況下,如果輸入是字典或其第二個元素是字典的元組,它將嘗試在輸入中查詢“labels”鍵(不區分大小寫)。這種啟發式方法對於許多資料集(包括內建的 torchvision 資料集)都適用。

    它也可以是一個可呼叫物件,它接受與變換相同的輸入,並返回

    • 單個張量(標籤)

    • 張量元組/列表,每個張量都將與邊界框進行相同的清除。這對於清除多個張量(如標籤以及 COCO 中的“iscrowd”或“area”屬性)很有用。

    如果 labels_getter 為 None,則只清除邊界框。

使用 SanitizeBoundingBoxes 的示例

變換 v2:端到端目標檢測/分割示例

變換 v2:端到端目標檢測/分割示例

變換 v2 入門

變換 v2 入門
forward(*inputs: Any) Any[source]

不要覆蓋此方法!請使用 transform() 代替。

transform(inpt: Any, params: dict[str, Any]) Any[source]

用於覆蓋自定義變換的方法。

請參閱 如何編寫自己的 v2 變換

文件

訪問全面的 PyTorch 開發者文件

檢視文件

教程

為初學者和高階開發者提供深入的教程

檢視教程

資源

查詢開發資源並讓您的問題得到解答

檢視資源