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_size或min_area的邊界框及其相關的標籤/掩碼:預設情況下,它還會移除退化框,例如 X2 <= X1。
如果任何座標超出其對應的影像。您可能需要先呼叫
ClampBoundingBoxes以避免不必要的移除。
它還可以清除其他張量,例如 COCO 中的“iscrowd”或“area”屬性(請參閱
labels_getter引數)。建議在管道的末尾,將輸入傳遞給模型之前呼叫它。如果呼叫了
RandomIoUCrop,則呼叫此變換至關重要。如果您想格外小心,可以在所有可能修改邊界框的變換之後呼叫它,但在大多數情況下,在最後呼叫一次就足夠了。- 引數:
min_size (float, 可選) – 邊界框被移除的最小尺寸。預設為 1。
min_area (float, 可選) – 邊界框被移除的最小面積。預設為 1。
labels_getter (可呼叫物件 或 str 或 None, 可選) –
指示如何識別輸入中的標籤(或任何其他需要與邊界框一起清除的內容)。預設情況下,如果輸入是字典或其第二個元素是字典的元組,它將嘗試在輸入中查詢“labels”鍵(不區分大小寫)。這種啟發式方法對於許多資料集(包括內建的 torchvision 資料集)都適用。
它也可以是一個可呼叫物件,它接受與變換相同的輸入,並返回
單個張量(標籤)
張量元組/列表,每個張量都將與邊界框進行相同的清除。這對於清除多個張量(如標籤以及 COCO 中的“iscrowd”或“area”屬性)很有用。
如果
labels_getter為 None,則只清除邊界框。
使用
SanitizeBoundingBoxes的示例