Skip to content

Commit fc9e7bb

Browse files
Merge pull request CVCUDA#127 from CVCUDA/feat/milesp/release_v0.5.0-beta3
feat: adding code for release v0.5.0 (beta-3) of CV-CUDA
2 parents f5e4f6b + 0a26f9f commit fc9e7bb

File tree

324 files changed

+25822
-2246
lines changed

Some content is hidden

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

324 files changed

+25822
-2246
lines changed

.github/workflows/codeql.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#
16+
name: "CodeQL"
17+
18+
on: [push, pull_request]
19+
20+
jobs:
21+
analyze:
22+
name: Analyze
23+
runs-on: ${{ (matrix.language == 'c-cpp' && 'ubuntu-20.04-64core') || 'ubuntu-latest' }}
24+
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
25+
permissions:
26+
actions: read
27+
contents: read
28+
security-events: write
29+
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
language: [ 'c-cpp', 'javascript-typescript', 'python' ]
34+
35+
steps:
36+
- name: Checkout repository
37+
uses: actions/checkout@v3
38+
with:
39+
lfs: true
40+
submodules: 'recursive'
41+
42+
- if: matrix.language == 'c-cpp'
43+
name: Setup environment
44+
run: |
45+
sudo apt update -y && sudo apt install -y --no-install-recommends \
46+
git git-lfs gcc-11 g++-11 ninja-build ccache libgtest-dev libgmock-dev \
47+
shellcheck curl doxygen python3 python3-pip python3-dev python3-distutils
48+
49+
- if: matrix.language == 'c-cpp'
50+
name: Install Python Dependencies
51+
run: |
52+
python3 -m pip install sphinx-rtd-theme sphinx==4.5.0 breathe exhale \
53+
recommonmark graphviz numpy==1.24.1
54+
55+
- if: matrix.language == 'c-cpp'
56+
name: Install CUDA Toolkit
57+
uses: Jimver/[email protected]
58+
id: cuda-toolkit
59+
with:
60+
cuda: '11.7.1'
61+
linux-local-args: '["--toolkit"]'
62+
63+
- if: matrix.language == 'c-cpp'
64+
name: Verify CUDA installation
65+
run: |
66+
echo "Installed CUDA version is: ${{ steps.cuda-toolkit.outputs.cuda }}"
67+
echo "CUDA install location: ${{ steps.cuda-toolkit.outputs.CUDA_PATH }}"
68+
sudo ln -s ${{ steps.cuda-toolkit.outputs.CUDA_PATH }}/lib64/libcudart.so \
69+
/usr/lib/x86_64-linux-gnu/libcuda.so
70+
nvcc -V
71+
72+
- name: Initialize CodeQL
73+
uses: github/codeql-action/init@v2
74+
with:
75+
languages: ${{ matrix.language }}
76+
queries: +security-and-quality
77+
78+
- if: matrix.language != 'c-cpp'
79+
name: Autobuild
80+
uses: github/codeql-action/autobuild@v2
81+
82+
- if: matrix.language == 'c-cpp'
83+
name: Build CMake project
84+
run: |
85+
echo "Running CMake project build script"
86+
./ci/build.sh debug build "-DBUILD_SAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PYTHON=0" $*
87+
88+
- name: Perform CodeQL Analysis
89+
uses: github/codeql-action/analyze@v2
90+
with:
91+
category: "/language:${{matrix.language}}"

.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: 8 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,25 +38,28 @@ 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 |

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)