1. 17 Mar, 2020 1 commit
    • Francisco Massa's avatar
      Update video reader to use new decoder (#1978) · 32e16805
      Francisco Massa authored
      * Base decoder for video. (#1747)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1747
      
      Pull Request resolved: https://github.com/pytorch/vision/pull/1746
      
      Added the implementation of ffmpeg based decoder with functionality that can be used in VUE and TorchVision.
      
      Reviewed By: fmassa
      
      Differential Revision: D19358914
      
      fbshipit-source-id: abb672f89bfaca6351dda2354f0d35cf8e47fa0f
      
      * Integrated base decoder into VideoReader class and video_utils.py (#1766)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1766
      
      Replaced FfmpegDecoder (incompativle with VUE) by base decoder (compatible with VUE).
      Modified python utilities video_utils.py for internal simplification. Public interface got preserved.
      
      Reviewed By: fmassa
      
      Differential Revision: D19415903
      
      fbshipit-source-id: 4d7a0158bd77bac0a18732fe4183fdd9a57f6402
      
      * Optimizating base decoder performance. (#1852)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1852
      
      Changed base decoder internals for a faster clip processing.
      
      Reviewed By: stephenyan1231
      
      Differential Revision: D19748379
      
      fbshipit-source-id: 58a435f0a0b25545e7bd1a3edb0b1d558176a806
      
      * Minor fix and decoder class members access.
      
      Summary:
      Found and fix a bug in cropping algorithm (simple mistyping).
      Also derived classes need access to some decoder class members, like initialization parameters - make it protected.
      
      Reviewed By: stephenyan1231, fmassa
      
      Differential Revision: D19895076
      
      fbshipit-source-id: 691336c8e18526b085ae5792ac3546bc387a6db9
      
      * Added missing header for less dependencies. (#1898)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1898
      
      Include streams/samplers shouldn't depend on decoder headers. Add dependencies directly to the place where they are required.
      
      Reviewed By: stephenyan1231
      
      Differential Revision: D19911404
      
      fbshipit-source-id: ef322a053708405c02cee4562b456b1602fb12fc
      
      * Implemented VUE Asynchronous Decoder
      
      Summary: For Mothership we have found that asynchronous decoder provides a better performance.
      
      Differential Revision: D20026194
      
      fbshipit-source-id: 627b91844b4e3f917002031dd32cb19c239f4ba8
      
      * fix a bug in API read_video_from_memory (#1942)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1942
      
      In D18720474, it introduces a bug in `read_video_from_memory` API. Thank weiyaowang for reporting it.
      
      Reviewed By: weiyaowang
      
      Differential Revision: D20270179
      
      fbshipit-source-id: 66348c99a5ad1f9129b90e934524ddfaad59de03
      
      * extend decoder to support new video_max_dimension argument (#1924)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1924
      
      Extend `video reader` decoder python API in Torchvision to support a new argument `video_max_dimension`. This enables the new video decoding use cases. When setting `video_width=0`, `video_height=0`, `video_min_dimension != 0`, and `video_max_dimension != 0`, we can rescale the video clips so that its spatial resolution (height, width) becomes
       - (video_min_dimension, video_max_dimension) if original height < original width
       - (video_max_dimension, video_min_dimension) if original height >= original width
      
      This is useful at video model testing stage, where we perform fully convolution evaluation and take entire video frames without cropping as input. Previously, for instance we can only set `video_width=0`, `video_height=0`, `video_min_dimension = 128`, which will preserve aspect ratio. In production dataset, there are a small number of videos where aspect ratio is either extremely large or small, and when the shorter edge is rescaled to 128, the longer edge is still large. This will easily cause GPU memory OOM when we sample multiple video clips, and put them in a single minibatch.
      
      Now, we can set (for instance) `video_width=0`, `video_height=0`, `video_min_dimension = 128` and `video_max_dimension = 171` so that the rescale resolution is either (128, 171) or (171, 128) depending on whether original height is larger than original width. Thus, we are less likely to have gpu OOM because the spatial size of video clips is determined.
      
      Reviewed By: putivsky
      
      Differential Revision: D20182529
      
      fbshipit-source-id: f9c40afb7590e7c45e6908946597141efa35f57c
      
      * Fixing samplers initialization (#1967)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1967
      
      
      
      No-ops for torchvision diff, which fixes samplers.
      
      Differential Revision: D20397218
      
      fbshipit-source-id: 6dc4d04364f305fbda7ca4f67a25ceecd73d0f20
      
      * Exclude C++ test files
      Co-authored-by: default avatarYuri Putivsky <yuri@fb.com>
      Co-authored-by: default avatarZhicheng Yan <zyan3@fb.com>
      32e16805
  2. 29 Jan, 2020 1 commit
  3. 27 Jan, 2020 1 commit