Skip to content

Commit c5bf536

Browse files
committed
feat: adding code for release v0.5.0 (beta-3) of CV-CUDA
1 parent 707391b commit c5bf536

File tree

323 files changed

+25741
-2249
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

323 files changed

+25741
-2249
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,6 @@
2222
[submodule "3rdparty/dlpack"]
2323
path = 3rdparty/dlpack
2424
url = https://github.com/dmlc/dlpack.git
25+
[submodule "3rdparty/nvbench"]
26+
path = 3rdparty/nvbench
27+
url = https://github.com/NVIDIA/nvbench.git

3rdparty/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,11 @@ set(DLPACK_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dlpack" PARENT_SCOPE)
3838

3939
# cuOSD -----------------------------
4040
set(CUOSD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cuOSD" PARENT_SCOPE)
41+
42+
# NVBench --------------------------------
43+
set(NVBENCH_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/nvbench" PARENT_SCOPE)
44+
45+
if(BUILD_BENCH)
46+
set(NVBench_ENABLE_CUPTI off)
47+
add_subdirectory(nvbench)
48+
endif()

3rdparty/nvbench

Submodule nvbench added at 7521229

CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
cmake_minimum_required(VERSION 3.18)
16+
cmake_minimum_required(VERSION 3.20.1)
1717

1818
# We need to check this variable before starting a CUDA project - otherwise it will appear
1919
# as set, with the default value pointing to the oldest supported architecture (52 as of CUDA 11.8)
@@ -23,7 +23,7 @@ endif()
2323

2424
project(cvcuda
2525
LANGUAGES C CXX
26-
VERSION 0.4.0
26+
VERSION 0.5.0
2727
DESCRIPTION "CUDA-accelerated Computer Vision algorithms"
2828
)
2929

@@ -48,6 +48,7 @@ endif()
4848
# Options to configure the build tree =======
4949
option(BUILD_TESTS "Enable testsuite" OFF)
5050
option(BUILD_PYTHON "Build python bindings" OFF)
51+
option(BUILD_BENCH "Build benchmark" OFF)
5152
option(ENABLE_SANITIZER "Enabled sanitized build" OFF)
5253

5354
# Configure build tree ======================
@@ -85,6 +86,10 @@ if(BUILD_SAMPLES)
8586
add_subdirectory(samples)
8687
endif()
8788

89+
if(BUILD_BENCH)
90+
add_subdirectory(bench)
91+
endif()
92+
8893
# Must be done after build tree is defined
8994
include(ConfigCPack)
9095

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Contributing to CV-CUDA
22

3-
**As of release v0.4.0-beta, CV-CUDA is not accepting outside contribution.**
3+
**As of release v0.5.0-beta, CV-CUDA is not accepting outside contribution.**
44

55
Contributions to CV-CUDA fall into the following categories:
66

@@ -12,7 +12,7 @@ Contributions to CV-CUDA fall into the following categories:
1212
1. To propose a new feature, please file a new feature request
1313
[issue](https://github.com/CVCUDA/CV-CUDA/issues/new/choose). Describe the
1414
intended feature and discuss the design and implementation with the team and
15-
community. NOTE: Currently, as of release v0.4.0-beta, CV-CUDA is not accepting
15+
community. NOTE: Currently, as of release v0.5.0-beta, CV-CUDA is not accepting
1616
outside contribution.
1717
1. To ask a general question, please sumbit a question
1818
[issue](https://github.com/CVCUDA/CV-CUDA/issues/new/choose). If you need

DEVELOPER_GUIDE.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ CV-CUDA includes:
2424
| Advanced Color Format Conversions | Performs color conversion from interleaved RGB/BGR <-> YUV/YVU and semi planar. Supported standards: BT.601. BT.709. BT.2020 |
2525
| AverageBlur | Reduces image noise using an average filter |
2626
| BilateralFilter | Reduces image noise while preserving strong edges |
27-
| Bounding Box | Draws an rectangular border using the X-Y coordinates and dimensions typically to define the location and size of an object in an image |
27+
| Bounding Box | Draws a rectangular border using the X-Y coordinates and dimensions typically to define the location and size of an object in an image |
2828
| Box Blurring | Overlays a blurred rectangle using the X-Y coordinates and dimensions that define the location and size of an object in an image |
2929
| Brightness_Contrast | Adjusts brightness and contrast of an image |
3030
| CenterCrop | Crops an image at its center |
@@ -38,32 +38,36 @@ CV-CUDA includes:
3838
| DataTypeConvert | Converts an image’s data type with optional scaling |
3939
| Erase | Erases image regions |
4040
| Find Contours | Extract closed contours from an input binary image |
41+
| FindHomography | Calculates a perspective transform from four pairs of the corresponding points |
4142
| Flip | Flips a 2D image around its axis |
4243
| GammaContrast | Adjusts image contrast |
4344
| Gaussian | Applies a gaussian blur filter to the image |
4445
| Gaussian Noise | Generates a statistical noise with a normal (Gaussian) distribution |
4546
| Histogram | Provides a grayscale value distribution showing the frequency of occurrence of each gray value. |
4647
| Histogram Equalizer | Allows effective spreading out the intensity range of the image typically used to improve contrast |
4748
| Inpainting | Performs inpainting by replacing a pixel by normalized weighted sum of all the known pixels in the neighborhood |
48-
| Joint Bilateral Filter | Provides a edge-preserving denoising filter |
49+
| Joint Bilateral Filter | Reduces image noise while preserving strong edges based on a guidance image |
50+
| Label | Labels connected regions in an image using 4-way connectivity for foreground and 8-way for background pixels |
4951
| Laplacian | Applies a Laplace transform to an image |
5052
| MedianBlur | Reduces an image’s salt-and-pepper noise |
5153
| MinArea Rect | Finds the minimum area rotated rectangle typically used to draw bounding rectangle with minimum area |
5254
| MinMaxLoc | Finds the maximum and minimum values in a given array |
5355
| Morphology | Performs morphological erode and dilate transformations |
54-
| Morphology (close) | Performs morphological operation that involves dilation followed by erosion on an image |
55-
| Morphology (open) | Performs morphological operation that involves erosion followed by dilation on an image |
56+
| Morphology (close) | Performs a morphological operation that involves dilation followed by erosion on an image |
57+
| Morphology (open) | Performs a morphological operation that involves erosion followed by dilation on an image |
5658
| Non-max Suppression | Enables selecting a single entity out of many overlapping ones typically used for selecting from multiple bounding boxes during object detection |
5759
| Normalize | Normalizes an image pixel’s range |
58-
| OSD (Polyline Line Text Rotated Rect Segmented Mask) | Displays an overlay on the image of of different forms including polyline line text rotated rectangle segmented mask |
60+
| OSD (Polyline Line Text Rotated Rect Segmented Mask) | Displays an overlay on the image of different forms including polyline line text rotated rectangle segmented mask |
5961
| PadStack | Stacks several images into a tensor with border extension |
62+
| PairwiseMatcher | Matches features computed separately (e.g. via the SIFT operator) in two images using the brute force method |
6063
| PillowResize | Changes the size and scale of an image using python-pillow algorithm |
6164
| RandomResizedCrop | Crops a random portion of an image and resizes it to a specified size. |
6265
| Reformat | Converts a planar image into non-planar and vice versa |
6366
| Remap | Maps pixels in an image with one projection to another projection in a new image. |
6467
| Resize | Changes the size and scale of an image |
6568
| Rotate | Rotates a 2D array in multiples of 90 degrees |
6669
| SIFT | Identifies and matches features in images that are invariant to scale rotation and affine distortion. |
70+
| Stack | Concatenates two input tensors into a single output tensor |
6771
| Thresholding | Chooses a global threshold value that is the same for all pixels across the image. |
6872
| WarpAffine | Applies an affine transformation to an image |
6973
| WarpPerspective | Applies a perspective transformation to an image |

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ END OF TERMS AND CONDITIONS
7474

7575
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
7676

77-
Copyright [yyyy] [name of copyright owner]
77+
Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
7878

7979
Licensed under the Apache License, Version 2.0 (the "License");
8080
you may not use this file except in compliance with the License.

0 commit comments

Comments
 (0)