@@ -1964,8 +1964,6 @@ def five_crop(
1964
1964
if not torch .jit .is_scripting ():
1965
1965
_log_api_usage_once (five_crop )
1966
1966
1967
- # TODO: consider breaking BC here to return List[datapoints.ImageTypeJIT/VideoTypeJIT] to align this op with
1968
- # `ten_crop`
1969
1967
if torch .jit .is_scripting () or is_simple_tensor (inpt ):
1970
1968
return five_crop_image_tensor (inpt , size )
1971
1969
elif isinstance (inpt , datapoints .Image ):
@@ -1983,40 +1981,90 @@ def five_crop(
1983
1981
)
1984
1982
1985
1983
1986
- def ten_crop_image_tensor (image : torch .Tensor , size : List [int ], vertical_flip : bool = False ) -> List [torch .Tensor ]:
1987
- tl , tr , bl , br , center = five_crop_image_tensor (image , size )
1984
+ def ten_crop_image_tensor (
1985
+ image : torch .Tensor , size : List [int ], vertical_flip : bool = False
1986
+ ) -> Tuple [
1987
+ torch .Tensor ,
1988
+ torch .Tensor ,
1989
+ torch .Tensor ,
1990
+ torch .Tensor ,
1991
+ torch .Tensor ,
1992
+ torch .Tensor ,
1993
+ torch .Tensor ,
1994
+ torch .Tensor ,
1995
+ torch .Tensor ,
1996
+ torch .Tensor ,
1997
+ ]:
1998
+ non_flipped = five_crop_image_tensor (image , size )
1988
1999
1989
2000
if vertical_flip :
1990
2001
image = vertical_flip_image_tensor (image )
1991
2002
else :
1992
2003
image = horizontal_flip_image_tensor (image )
1993
2004
1994
- tl_flip , tr_flip , bl_flip , br_flip , center_flip = five_crop_image_tensor (image , size )
2005
+ flipped = five_crop_image_tensor (image , size )
1995
2006
1996
- return [ tl , tr , bl , br , center , tl_flip , tr_flip , bl_flip , br_flip , center_flip ]
2007
+ return non_flipped + flipped
1997
2008
1998
2009
1999
2010
@torch .jit .unused
2000
- def ten_crop_image_pil (image : PIL .Image .Image , size : List [int ], vertical_flip : bool = False ) -> List [PIL .Image .Image ]:
2001
- tl , tr , bl , br , center = five_crop_image_pil (image , size )
2011
+ def ten_crop_image_pil (
2012
+ image : PIL .Image .Image , size : List [int ], vertical_flip : bool = False
2013
+ ) -> Tuple [
2014
+ PIL .Image .Image ,
2015
+ PIL .Image .Image ,
2016
+ PIL .Image .Image ,
2017
+ PIL .Image .Image ,
2018
+ PIL .Image .Image ,
2019
+ PIL .Image .Image ,
2020
+ PIL .Image .Image ,
2021
+ PIL .Image .Image ,
2022
+ PIL .Image .Image ,
2023
+ PIL .Image .Image ,
2024
+ ]:
2025
+ non_flipped = five_crop_image_pil (image , size )
2002
2026
2003
2027
if vertical_flip :
2004
2028
image = vertical_flip_image_pil (image )
2005
2029
else :
2006
2030
image = horizontal_flip_image_pil (image )
2007
2031
2008
- tl_flip , tr_flip , bl_flip , br_flip , center_flip = five_crop_image_pil (image , size )
2009
-
2010
- return [tl , tr , bl , br , center , tl_flip , tr_flip , bl_flip , br_flip , center_flip ]
2011
-
2012
-
2013
- def ten_crop_video (video : torch .Tensor , size : List [int ], vertical_flip : bool = False ) -> List [torch .Tensor ]:
2032
+ flipped = five_crop_image_pil (image , size )
2033
+
2034
+ return non_flipped + flipped
2035
+
2036
+
2037
+ def ten_crop_video (
2038
+ video : torch .Tensor , size : List [int ], vertical_flip : bool = False
2039
+ ) -> Tuple [
2040
+ torch .Tensor ,
2041
+ torch .Tensor ,
2042
+ torch .Tensor ,
2043
+ torch .Tensor ,
2044
+ torch .Tensor ,
2045
+ torch .Tensor ,
2046
+ torch .Tensor ,
2047
+ torch .Tensor ,
2048
+ torch .Tensor ,
2049
+ torch .Tensor ,
2050
+ ]:
2014
2051
return ten_crop_image_tensor (video , size , vertical_flip = vertical_flip )
2015
2052
2016
2053
2017
2054
def ten_crop (
2018
2055
inpt : Union [datapoints .ImageTypeJIT , datapoints .VideoTypeJIT ], size : List [int ], vertical_flip : bool = False
2019
- ) -> Union [List [datapoints .ImageTypeJIT ], List [datapoints .VideoTypeJIT ]]:
2056
+ ) -> Tuple [
2057
+ ImageOrVideoTypeJIT ,
2058
+ ImageOrVideoTypeJIT ,
2059
+ ImageOrVideoTypeJIT ,
2060
+ ImageOrVideoTypeJIT ,
2061
+ ImageOrVideoTypeJIT ,
2062
+ ImageOrVideoTypeJIT ,
2063
+ ImageOrVideoTypeJIT ,
2064
+ ImageOrVideoTypeJIT ,
2065
+ ImageOrVideoTypeJIT ,
2066
+ ImageOrVideoTypeJIT ,
2067
+ ]:
2020
2068
if not torch .jit .is_scripting ():
2021
2069
_log_api_usage_once (ten_crop )
2022
2070
0 commit comments