Sign inSign up

tuttelikz/opencv-cuda

By tuttelikz

•Updated 9 months ago

This repository contains pre-built docker image for OpenCV CUDA. Ready to use with Python.

Image
Machine learning & AI
Data science
Operating systems
3

4.7K

tuttelikz/opencv-cuda repository overview

⁠Available images

OPENCV_VERSIONCUDA_VERSIONCUDA_COMPUTEUBUNTU_VERSIONImage
4.12.012.8.012.022.044.12.0-cuda12.8.0-arch12.0-ubuntu22.04⁠
4.10.012.6.38.922.044.10.0-cuda12.6.3-arch8.9-ubuntu22.04⁠
4.10.012.4.18.922.044.10.0-cuda12.4.1-arch8.9-ubuntu22.04⁠
4.10.012.6.38.622.044.10.0-cuda12.6.3-arch8.6-ubuntu22.04⁠
4.10.011.8.08.922.044.10.0-cuda11.8.0-arch8.9-ubuntu22.04⁠
4.10.011.8.08.622.044.10.0-cuda11.8.0-arch8.6-ubuntu22.04⁠

⁠Usage

Pull: docker pull tuttelikz/opencv-cuda:{TAG}
Run: docker run -it --gpus all tuttelikz/opencv-cuda:{TAG}

⁠Expected output

==========
== CUDA ==
==========

CUDA Version 11.8.0

Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license

A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.

Check OpenCV version

>>> import cv2
>>> cv2.__version__
'4.10.0'

Check GPU devices available to OpenCV

>>> import cv2
>>> count = cv2.cuda.getCudaEnabledDeviceCount()
>>> print(count)
1

⁠Build from scratch

OPENCV: 4.10.0 CUDA_VERSIO 12.6.3/11.8.0 CUDA_ARCH: 8.9/8.6 UBUNTU_VERSION: 22.04

Use this command line to build from scratch:

# For CUDA==12.6.3  
docker build --build-arg OPENCV_VERSION=4.10.0 --build-arg CUDA_VERSION=12.6.3 --build-arg CUDA_ARCH=8.9 --build-arg UBUNTU_VERSION=22.04 -t {your-tag} .

# For CUDA==11.8.0, we need to add `CUDNN` argument:  
docker build --build-arg OPENCV_VERSION=4.10.0 --build-arg CUDA_VERSION=11.8.0 --build-arg CUDA_ARCH=8.9 --build-arg UBUNTU_VERSION=22.04 --build-arg CUDNN=8 -t {your-tag} .

Dockerfile to build from scratch:

# Define the build arguments
ARG CUDA_VERSION=11.4.3
ARG UBUNTU_VERSION=20.04
ARG CUDNN=

FROM nvidia/cuda:${CUDA_VERSION}-cudnn${CUDNN}-devel-ubuntu${UBUNTU_VERSION}

# Set environment variables using build arguments
ARG OPENCV_VERSION=4.8.1
ARG CUDA_ARCH=8.9
ENV OPENCV_VERSION=$OPENCV_VERSION
ENV CUDA_ARCH=$CUDA_ARCH

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get upgrade -y &&\
    # Install build tools, build dependencies and python
    apt-get install -y \
	python3-pip \
    build-essential \
    cmake \
    git \
    wget \
    unzip \
    yasm \
    pkg-config \
    libswscale-dev \
    libtbb2 \
    libtbb-dev \
    libjpeg-dev \
    libpng-dev \
    libtiff-dev \
    libavformat-dev \
    libpq-dev \
    libxine2-dev \
    libglew-dev \
    libtiff5-dev \
    zlib1g-dev \
    libjpeg-dev \
    libavcodec-dev \
    libavformat-dev \
    libavutil-dev \
    libpostproc-dev \
    libswscale-dev \
    libeigen3-dev \
    libtbb-dev \
    libgtk2.0-dev \
    pkg-config \
    python3-dev \
    python3-numpy \
    && rm -rf /var/lib/apt/lists/*

RUN cd /opt/ &&\
    # Download and unzip OpenCV and opencv_contrib and delte zip files
    wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip &&\
    unzip ${OPENCV_VERSION}.zip &&\
    rm ${OPENCV_VERSION}.zip &&\
    wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip &&\
    unzip ${OPENCV_VERSION}.zip &&\
    rm ${OPENCV_VERSION}.zip &&\
    # Create build folder and switch to it
    mkdir /opt/opencv-${OPENCV_VERSION}/build && cd /opt/opencv-${OPENCV_VERSION}/build &&\
    # Cmake configure
    cmake \
        -DOPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib-${OPENCV_VERSION}/modules \
        -DWITH_CUDA=ON \
        -DCUDA_ARCH_BIN=${CUDA_ARCH} \
        -DCMAKE_BUILD_TYPE=RELEASE \
        # Install path will be /usr/local/lib (lib is implicit)
        -DCMAKE_INSTALL_PREFIX=/usr/local \
        .. &&\
    # Make
    make -j $(nproc --all) && \
    make install && \
    ldconfig &&\
    rm -rf /opt/opencv-${OPENCV_VERSION} && rm -rf /opt/opencv_contrib-${OPENCV_VERSION}

RUN apt-get update && apt-get upgrade -y &&\
    apt-get install -y \
        libvips \
        libvips-dev \
        vim
RUN apt-get update
RUN pip install --upgrade pip

Tag summary

Content type

Image

Digest

sha256:db5d08335…

Size

5.1 GB

Last updated

9 months ago

docker pull tuttelikz/opencv-cuda:4.10.0-cuda12.4.1-arch8.9-ubuntu22.04