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')[原始碼]¶
移除退化/無效的邊界框及其對應的標籤和掩碼。
此變換會移除邊界框及其關聯的標籤/掩碼,如果它們
低於給定的
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的示例