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, optional) – 移除邊界框的最小尺寸。預設值為 1。
min_area (float, optional) – 移除邊界框的最小面積。預設值為 1。
labels_getter (callable 或 str 或 None, optional) –
指示如何在輸入中識別標籤(或任何其他需要與邊界框一起清理的內容)。預設情況下,如果輸入是字典或其第二個元素是字典的元組,這將嘗試在輸入中尋找 “labels” 鍵(不區分大小寫)。這種啟發式方法應該適用於許多資料集,包括內建的 torchvision 資料集。
它也可以是一個可呼叫物件,它接受與轉換相同的輸入,並傳回以下其中一項
單個張量(標籤)
張量的元組/列表,每個張量都將受到與邊界框相同的清理。這對於清理多個張量很有用,例如標籤和 COCO 中的 “iscrowd” 或 “area” 屬性。
如果
labels_getter
為 None,則僅清理邊界框。
使用
SanitizeBoundingBoxes
的範例