1. 30 Jun, 2020 2 commits
    • Edgar Andrés Margffoy Tuay's avatar
      PR: Add libpng and libjpeg-turbo requirement into conda recipe (#2301) · 766721b1
      Edgar Andrés Margffoy Tuay authored
      
      
      * Add libpng requirement into conda recipe
      
      * Try to install libjpeg-turbo
      
      * Add PNG reading capabilities
      
      * Remove newline
      
      * Add image extension to compilation instructions
      
      * Include png functions as part of the main library
      
      * Update CMakeLists
      
      * Detect if building on conda-build
      
      * Debug
      
      * More debug messages
      
      * Print globbed libreries
      
      * Print globbed libreries
      
      * Point to correct PNG path
      
      * Remove libJPEG preventively
      
      * Debug extension loading
      
      * Link libpng explicitly
      
      * Link with PNG
      
      * Add PNG reading capabilities
      
      * Add libpng requirement into conda recipe
      
      * Try to install libjpeg-turbo
      
      * Remove newline
      
      * Add image extension to compilation instructions
      
      * Include png functions as part of the main library
      
      * Update CMakeLists
      
      * Detect if building on conda-build
      
      * Debug
      
      * More debug messages
      
      * Print globbed libreries
      
      * Print globbed libreries
      
      * Point to correct PNG path
      
      * Remove libJPEG preventively
      
      * Debug extension loading
      
      * Link libpng explicitly
      
      * Link with PNG
      
      * Install libpng on conda-based wheel distributions
      
      * Add -y flag
      
      * Add -y flag to yum
      
      * Locate LibPNG on windows conda
      
      * Remove empty else
      
      * Copy libpng16.so
      
      * Copy dylib on Mac
      
      * Improve check on Windows
      
      * Try to install ninja using conda on windows
      
      * Use libpng on Windows
      
      * Package lib on windows wheel
      
      * Point library to the correct place
      
      * Include binaries as part of wheel
      
      * Copy libpng.so on linux
      
      * Look for png.h on Windows when using conda-build
      
      * Do not skip png tests on Mac/Win
      
      * Restore libjpeg-turbo
      
      * Install jpeg-turbo on wheel distributions
      
      * Install libjpeg-turbo from conda-forge on wheel distributions
      
      * Do not pull av on conda-build
      
      * Add pillow disclaimer
      
      * Vendors libjpeg-turbo 2.0.4
      
      * Merge JPEG work
      
      * Remove submodules
      
      * Regenerate circle config
      
      * Fix style issues
      
      * Fix C++ style issues
      
      * More style corrections
      
      * Add JPEG-turbo to linking libraries
      
      * More style corrections
      
      * More style corrections
      
      * More style corrections
      
      * Install libjpeg-turbo-devel
      
      * Install libturbo-jpeg on typing pipeline
      
      * Update Circle template
      
      * Windows and Unix turbojpeg have the same linking name
      
      * Install turbojpeg-devel instead of libjpeg-turbo
      
      * Copy TurboJPEG binaries to wheel
      
      * Move test image
      
      * Move back test image
      
      * Update JPEG test path
      
      * Remove dot from extension
      
      * Move image functions to extension
      
      * Use stdout arg in subprocess
      
      * Disable image extension if libpng or turbojpeg are not found
      
      * Append libpng stdout
      
      * Prevent list appending on lists
      
      * Minor path correction
      
      * Minor error correction
      
      * Add linking flags
      
      * Style issues correction
      
      * Address minor review corrections
      
      * Refactor library search
      
      * Restore access index
      
      * Fix JPEG tests
      
      * Update libpng version in Travis
      
      * Add -y flag
      
      * Remove dot
      
      * Update libpng using apt
      
      * Check libpng version
      
      * Change libturbojpeg binary
      
      * Update import
      
      * Change call
      
      * Restore av in conda recipe
      
      * Minor error correction
      
      * Remove unused comment in travis.yml
      
      * Update README
      
      * Fix missing links
      
      * Remove fixes for 16.04
      Co-authored-by: default avatarRyad ZENINE <r.zenine@gmail.com>
      766721b1
    • Edward Z. Yang's avatar
      Port roi_align to actually use dispatcher (#2366) · 44806038
      Edward Z. Yang authored
      
      
      * Switch torchvision registrations to new operator registration API.
      
      This is still registering everything as catchalls, so we're really just
      moving deck chairs around, but payoff is coming soon.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@fb.com>
      
      * Port roi_align to actually use dispatcher
      Signed-off-by: default avatarEdward Z. Yang <ezyang@fb.com>
      44806038
  2. 09 Jun, 2020 1 commit
  3. 18 May, 2020 1 commit
  4. 23 Apr, 2020 1 commit
  5. 07 Apr, 2020 1 commit
  6. 03 Apr, 2020 3 commits
  7. 02 Apr, 2020 1 commit
  8. 01 Apr, 2020 1 commit
  9. 30 Mar, 2020 2 commits
    • Yuwen Xiong's avatar
      Fix shape error for deform conv (#2027) · 7ee5a8b7
      Yuwen Xiong authored
      * fix shape error for deform conv gpu op
      
      recover shape of columns for next iteration in for loops, previous version will cause error when batch_sz / n_parallel_imgs > 1
      
      * fix shape error for deform conv cpu op
      
      recover shape of columns for next iteration in for loops, previous version will cause error when batch_sz / n_parallel_imgs > 1
      7ee5a8b7
    • Mikhail Lobanov's avatar
      Fix Tensor::data<> deprecation. (#2028) · 561a014b
      Mikhail Lobanov authored
      561a014b
  10. 24 Mar, 2020 1 commit
  11. 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
  12. 04 Mar, 2020 1 commit
    • AhnDW's avatar
      `aligned` flag in ROIAlign (#1908) · e1e975f9
      AhnDW authored
      * Aligned flag in the interfaces
      
      * Aligned flag in the impl, and remove unused comments
      
      * Handling empty bin in forward
      
      * Remove raise error in roi_width
      
      * Aligned flag in the Testcodes
      e1e975f9
  13. 29 Jan, 2020 1 commit
  14. 27 Jan, 2020 1 commit
  15. 16 Dec, 2019 1 commit
  16. 06 Dec, 2019 1 commit
  17. 04 Dec, 2019 1 commit
    • pedrofreire's avatar
      Add Deformable Convolution operation. (#1586) · 52b8685b
      pedrofreire authored
      * Add Deformable Convolution operation.
      
      This adds the deformable convolution operation, as described in Deformable Convolutional Networks (https://arxiv.org/abs/1703.06211).
      
      - The code is based on https://github.com/open-mmlab/mmdetection/blob/master/mmdet/ops/dcn/src/deform_conv_cuda.cpp ; the whole code was modified and refactored to remove redundancies and increase clarity, and to adapt it to torchvision.
      
      - The CPU part is a direct copy of the CUDA code; it might make sense to do follow-up adjustments in the CPU code to simplify it / optimize it, or to reuse functionality between CPU and CUDA..
      
      - We also add tests (with a non-trivial set of parameters); they can be made more robust by randomizing the parameters and executing multiple times.
      
      * Update DeformConv to be more consistent w/ Conv2d
      
      * rename some variables and arguments to match Conv2d;
      * add optional bias;
      * add weight, offset and bias as module parameters;
      * remove the n_parallel_imgs parameter;
      * Fix __repr__;
      * etc..
      
      Initialization of weight and bias is the same as in Conv2d, and
      initialization of offsets to zero is the same as in the paper.
      
      This also includes some other small unrelated fixes/improvements.
      
      * Apply clang-format in DeformConv files.
      
      * Import Optional type annotation
      
      * Remove offset param from DeformConv2d module
      
      - We pass the offset in the forward of DeformConv2d, instead of having
      an internal parameter. This adds some complexity to creating the module
      (e.g. now you have to worry about the output size, to create the
      offset), but it gives more flexibility.
      - We also use make_tuple for tuple creation, in an attempt to fix error
      w/ older compilers.
      
      * Replace abs by std::abs
      
      Old gcc versions were giving wrong results here, because they would
      resolve abs as int -> int, thus causing undesired truncation. Replacing
      abs by std::abs should allow for correct overloading of abs as float -> float.
      
      * Reorder declarations for clarity
      
      * Reorder weight and offset args in deform_conv2d
      
      We place offset arg before the weight arg, to be more
      consistent with DeformConv2d.forward(input, offset)
      
      * Replace abs by std::abs in DeformConv_cuda
      52b8685b
  18. 05 Nov, 2019 1 commit
  19. 16 Oct, 2019 1 commit
  20. 12 Oct, 2019 1 commit
  21. 20 Sep, 2019 1 commit
    • Zhicheng Yan's avatar
      [video reader] inception commit (#1303) · 31fad34f
      Zhicheng Yan authored
      * [video reader] inception commit
      
      * add method save_metadata to class VideoClips in video_utils.py
      
      * add load_metadata() method to VideoClips class
      
      * add Exception to not catch unexpected events such as memory erros, interrupt
      
      * fix bugs in video_plus.py
      
      * [video reader]remove logging. update setup.py
      
      * remove time measurement in test_video_reader.py
      
      * Remove glog and try making ffmpeg finding more robust
      
      * Add ffmpeg to conda build
      
      * Add ffmpeg to conda build [again]
      
      * Make library path finding more robust
      
      * Missing import
      
      * One more missing fix for import
      
      * Py2 compatibility and change package to av to avoid version conflict with ffmpeg
      
      * Fix for python2
      
      * [video reader] support to decode one stream only (e.g. video/audio stream)
      
      * remove argument _precomputed_metadata_filepath
      
      * remove save_metadata method
      
      * add get_metadata method
      
      * expose _precomputed_metadata and frame_rate arguments in video dataset __init__ method
      
      * remove ssize_t
      
      * remove size_t to pass CI check on Windows
      
      * add PyInit__video_reader function to pass CI check on Windows
      
      * minor fix to define PyInit_video_reader symbol
      
      * Make c++ video reader optional
      
      * Temporarily revert changes to test_io
      
      * Revert changes to python files
      
      * Rename files to make it private
      
      * Fix python lint
      
      * Fix C++ lint
      
      * add a functor object EnumClassHash to make Enum class instances usable as key type of std::unordered_map
      
      * fix cpp format check
      31fad34f
  22. 29 Aug, 2019 1 commit
  23. 25 Jun, 2019 1 commit
  24. 23 May, 2019 1 commit
    • Varun Agrawal's avatar
      nms_cuda signature update (#945) · 249cfbf5
      Varun Agrawal authored
      Updated nms_cuda signature to accept detections and scores as separate tensors.
      This also required updating the indexing in the NMS CUDA kernel.
      
      Also made the iou_threshold parameter name consistent across implementations.
      249cfbf5
  25. 19 May, 2019 1 commit
  26. 07 May, 2019 1 commit
    • Francisco Massa's avatar
      Add C++ ops to torchvision (#826) · dc3ac290
      Francisco Massa authored
      * Initial layout for layers with cpp extensions
      
      * Move files around
      
      * Fix import after move
      
      * Add support for multiple types to ROIAlign
      
      * Different organization
      
      CUDA extensions work now
      
      * Cleanups
      
      * Reduce memory requirements for backwards
      
      * Replace runtime_error by AT_ERROR
      
      * Add nms test
      
      * Add support for compilation using CPP extensions
      
      * Change folder structure
      
      * Add ROIPool cuda
      
      * Cleanups
      
      * Add roi_pool.py
      
      * Fix lint
      
      * Add initial structures folder for bounding boxes
      
      * Assertion macros compatible with pytorch master (#540)
      
      * Support for ROI Pooling (#592)
      
      * ROI Pooling with tests. Fix for cuda context in ROI Align.
      
      * renamed bottom and top to follow torch conventions
      
      * remove .type().tensor() calls in favor of the new approach to tensor initialization (#626)
      
      * Consistent naming for rois variable (#627)
      
      * remove .type().tensor() calls in favor of the new approach to tensor initialization
      
      * Consistent naming for rois variable in ROIPool
      
      * ROIPool: Support for all datatypes (#632)
      
      * Use of torch7 naming scheme for ROIAlign forward and backward
      
      * use common cuda helpers in ROIAlign
      
      * use .options() in favor of .type() where applicable
      
      * Added tests for forward pass of ROIAlign, as well as more consistent naming scheme for CPU vs CUDA
      
      * working ROIAlign cuda backwards pass
      
      * working ROIAlign backwards pass for CPU
      
      * added relevant headers for ROIAlign backwards
      
      * tests for ROIAlign layer
      
      * replace .type() with .options() for tensor initialization in ROIAlign layers
      
      * support for Half types in ROIAlign
      
      * gradcheck tests for ROIAlign
      
      * updated ROIPool on CPU to work with all datatypes
      
      * updated and cleaned tests for ROI Pooling
      
      * Fix rebase problem
      
      * Remove structures folder
      
      * Improve cleanup and bugfix in test_layers
      
      * Update C++ headers
      
      * Add CUDAGuard to cu files
      
      * Add more checks to layers
      
      * Add CUDA NMS and tests
      
      * Add multi-type support for NMS CUDA
      
      * Avoid using THCudaMalloc
      
      * Add clang-format and reformat c++ code
      
      * Remove THC includes
      
      * Rename layers to ops
      
      * Add documentation and rename functions
      
      * Improve the documentation a bit
      
      * Fix some lint errors
      
      * Fix remaining lint inssues
      
      * Area computation doesn't add +1 in NMS
      
      * Update CI to use PyTorch nightly
      
      * Make NMS return indices sorted according to the score
      
      * Address reviewer comments
      
      * Lint fixes
      
      * Improve doc for roi_align and roi_pool
      
      * move to xenial
      
      * Fix bug pointed by @lopuhin
      
      * Fix RoIPool reference implementation in Python 2
      
      Also fixes a bug in the clip_boxes_to_image -- this function needs a test!
      
      * Remove change in .travis
      dc3ac290