• Computer Vision Algorithm Implementations


    Participate in Reproducible Research

    General Image Processing

    OpenCV
    (C/C++ code, BSD lic) Image manipulation, matrix manipulation, transforms
    Torch3Vision
    (C/C++ code, BSD lic) Basic image processing, matrix manipulation and feature extraction algorithms: rotation, flip, photometric normalisations (Histogram Equalization, Multiscale Retinex, Self-Quotient Image or Gross-Brajovic), edge detection, 2D DCT, 2D FFT, 2D Gabor, PCA to do Eigen-Faces, LDA to do Fisher-Faces. Various metrics (Euclidean, Mahanalobis, ChiSquare, NormalizeCorrelation, TangentDistance, ...)
    GradientShop
    (C/C++ code, GPL lic) GradientShop: A Gradient-Domain Optimization Framework for Image and Video Filtering
    ImLab
    (C/C++ code, MIT lic) A Free Experimental System for Image Processing (loading, transforms, filters, histogram, morphology, ...)
    CIMG
    (C/C++ code, GPL and LGPL lic) CImg Library is an open source C++ toolkit for image processing
    Generic Image Library (GIL) - boost integration
    (C/C++ code, MIT lic) Adobe open source C++ Generic Image Library (GIL)
    SimpleCV a kinder, gentler machine vision library
    (python code, MIT lic) SimpleCV is a Python interface to several powerful open source computer vision libraries in a single convenient package
    PCL, The Point Cloud Library
    (C/C++ code, BSD lic) The Point Cloud Library (or PCL) is a large scale, open project for point cloud processing. The PCL framework contains numerous state-of-the art algorithms including filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation.
    Population, imaging library in C++ for processing, analysing, modelling and visualising
    (C/C++ code, CeCill lic) Population is an open-source imaging library in C++ for processing, analysing, modelling and visualising including more than 200 algorithms designed by V. Tariel.
    qcv
    (C/C++ code, LGPL 3) A computer vision framework based on Qt and OpenCV that provides an easy to use interface to display, analyze and run computer vision algorithms. The library is provided with multiple application examples including stereo, SURF, Sobel and and Hough transform.
    Machine Vision Toolbox
    (MATLAB/C, LGPL lic) image processing, segmentation, blob/line/point features, multiview geometry, camera models, colorimetry.
    BoofCV
    (Java code, Apache lic) BoofCV is an open source Java library for real-time computer vision and robotics applications. BoofCV is organized into several packages: image processing, features, geometric vision, calibration, visualize, and IO.
    Simd
    (C++ code, MIT lic) Simd is free open source library in C++. It includes high performance image processing algorithms. The algorithms are optimized with using of SIMD CPU extensions such as SSE2, SSSE3, SSE4.2 and AVX2.
    Free but not open source - ArrayFire (formely LibJacket) is a matrix library for CUDA
    (CUDA/C++, free lic) ArrayFire offers hundreds of general matrix and image processing functions, all running on the GPU. The syntax is very Matlab-like, with the goal of offering easy porting of Matlab code to C++/ArrayFire.

    Image Acquisition, Decoding & encoding

    FFMPEG
    (C/C++ code, LGPL or GPL lic) Record, convert and stream audio and video (lot of codec)
    OpenCV
    (C/C++ code, BSD lic) PNG, JPEG,... images, avi video files, USB webcam,...
    Torch3Vision
    (C/C++ code, BSD lic) Video file decoding/encoding (ffmpeg integration), image capture from a frame grabber or from USB, Sony pan/tilt/zoom camera control using VISCA interface
    lib VLC
    (C/C++ code, GPL lic) Used by VLC player: record, convert and stream audio and video
    Live555
    (C/C++ code, LGPL lic) RTSP streams
    ImageMagick
    (C/C++ code, GPL lic) Loading & saving DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, TIFF, and more
    DevIL
    (C/C++ code, LGPL lic) Loading & saving various image format
    FreeImage
    (C/C++ code, GPL & FPL lic) PNG, BMP, JPEG, TIFF loading
    VideoMan
    (C/C++ code, LGPL lic) VideoMan is trying to make the image capturing process from cameras, video files or image sequences easier.

    Segmentation

    OpenCV
    (C/C++ code, BSD lic) Pyramid image segmentation
    Branch-and-Mincut
    (C/C++ code, Microsoft Research Lic) Branch-and-Mincut Algorithm for Image Segmentation
    Efficiently solving multi-label MRFs (Readme)
    (C/C++ code) Segmentation, object category labelling, stereo

    Machine Learning

    Torch
    (C/C++ code, BSD lic) Gradient machines ( multi-layered perceptrons, radial basis functions, mixtures of experts, convolutional networks and even time-delay neural networks), Support vector machines, Ensemble models (bagging, adaboost), Non-parametric models (K-nearest-neighbors, Parzen regression and Parzen density estimator), distributions (Kmeans, Gaussian mixture models, hidden Markov models, input-output hidden Markov models, and Bayes classifier), speech recognition tools

    Object Detection

    OpenCV
    (C/C++ code, BSD lic) Viola-jones face detection (Haar features)
    Torch3Vision
    (C/C++ code, BSD lic) MLP & cascade of Haar-like classifiers face detection
    Hough Forests
    (C/C++ code, Microsoft Research Lic) Class-Specific Hough Forests for Object Detection
    Efficient Subwindow Object Detection
    (C/C++ code, Apache Lic) Christoph Lampert "Efficient Subwindow" algorithms for Object Detection
    INRIA Object Detection and Localization Toolkit
    (C/C++ code, Custom Lic) Histograms of Oriented Gradients library for Object Detection

    Object Category Labelling

    Efficiently solving multi-label MRFs (Readme)
    (C/C++ code) Segmentation, object category labelling, stereo
    Multi-label optimization
    (C/C++/MATLAB code) The gco-v3.0 library is for optimizing multi-label energies. It supports energies with any combination of unary, pairwise, and label cost terms.

    Optical flow

    OpenCV
    (C/C++ code, BSD lic) Horn & Schunck algorithm, Lucas & Kanade algorithm, Lucas-Kanade optical flow in pyramids, block matching.
    GPU-KLT+FLOW
    (C/C++/OpenGL/Cg code, LGPL) Gain-Adaptive KLT Tracking and TV-L1 optical flow on the GPU.
    RLOF
    (C/C++/Matlab code, Custom Lic.) The RLOF library provides GPU / CPU implementation of Optical Flow and Feature Tracking method.

    Features Extraction & Matching

    SIFT by R. Hess
    (C/C++ code, GPL lic) SIFT feature extraction & RANSAC matching
    OpenSURF
    (C/C++ code) SURF feature extraction algorihtm (kind of fast SIFT)
    ASIFT (from IPOL)
    (C/C++ code, Ecole Polytechnique and ENS Cachan for commercial Lic) Affine SIFT (ASIFT)
    VLFeat (formely Sift++)
    (C/C++ code) SIFT, MSER, k-means, hierarchical k-means, agglomerative information bottleneck, and quick shift
    SiftGPU
    A GPU Implementation of Scale Invariant Feature Transform (SIFT)
    Groupsac
    (C/C++ code, GPL lic) An enhance version of RANSAC that considers the correlation between data points

    Nearest Neighbors matching

    FLANN
    (C/C++ code, BSD lic) Approximate Nearest Neighbors (Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration)
    ANN
    (C/C++ code, LGPL lic) Approximate Nearest Neighbor Searching

    Tracking

    OpenCV
    (C/C++ code, BSD lic) Kalman, Condensation, CAMSHIFT, Mean shift, Snakes
    KLT: An Implementation of the Kanade-Lucas-Tomasi Feature Tracker
    (C/C++ code, public domain) Kanade-Lucas-Tomasi Feature Tracker
    GPU_KLT
    (C/C++/OpenGL/Cg code, ) A GPU-based Implementation of the Kanade-Lucas-Tomasi Feature Tracker
    GPU-KLT+FLOW
    (C/C++/OpenGL/Cg code, LGPL) Gain-Adaptive KLT Tracking and TV-L1 optical flow on the GPU
    On-line boosting trackers
    (C/C++, LGPL) On-line boosting tracker, semi-supervised tracker, beyond semi-supervised tracker

    Simultaneous localization and mapping

    Real-Time SLAM - SceneLib
    (C/C++ code, LGPL lic) Real-time vision-based SLAM with a single camera
    PTAM
    (C/C++ code, Isis Innovation Limited lic) Parallel Tracking and Mapping for Small AR Workspaces
    GTSAM
    (C/C++ code, BSD lic) GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices

    Camera Calibration & constraint

    OpenCV
    (C/C++ code, BSD lic) Chessboard calibration, calibration with rig or pattern
    Geometric camera constraint - Minimal Problems in Computer Vision
    Minimal problems in computer vision arise when computing geometrical models from image data. They often lead to solving systems of algebraic equations.
    Camera Calibration Toolbox for Matlab
    (Matlab toolbox) Camera Calibration Toolbox for Matlab by Jean-Yves Bouguet (C implementation in OpenCV)

    Multi-View Reconstruction

    Bundle Adjustment - SBA
    (C/C++ code, GPL lic) A Generic Sparse Bundle Adjustment Package Based on the Levenberg-Marquardt Algorithm
    Bundle Adjustment - SSBA
    (C/C++ code, LGPL lic) Simple Sparse Bundle Adjustment (SSBA)

    Stereo

    Efficiently solving multi-label MRFs (Readme)
    (C/C++ code) Segmentation, object category labelling, stereo
    LIBELAS: Library for Efficient LArge-scale Stereo Matching
    (C/C++ code) Disparity maps, stereo

    Structure from motion

    Bundler
    (C/C++ code, GPL lic) A structure-from-motion system for unordered image collections
    Patch-based Multi-view Stereo Software (Windows version)
    (C/C++ code, GPL lic) A multi-view stereo software that takes a set of images and camera parameters, then reconstructs 3D structure of an object or a scene visible in the images
    libmv - work in progress
    (C/C++ code, MIT lic) A structure from motion library
    Multicore Bundle Adjustment
    (C/C++/GPU code, GPL3 lic) Design and implementation of new inexact Newton type Bundle Adjustment algorithms that exploit hardware parallelism for efficiently solving large scale 3D scene reconstruction problems.
    openMVG
    (C/C++/GPU code, MPL2 lic) OpenMVG (Multiple View Geometry) "open Multiple View Geometry" is a library for computer-vision scientists and especially targeted to the Multiple View Geometry community. It is designed to provide an easy access to the classical problem solvers in Multiple View Geometry and solve them accurately..

    Visual odometry

    LIBVISO2: Library for VISual Odometry 2
    (C/C++ code, Matlab, GPL lic) Libviso 2 is a very fast cross-platfrom (Linux, Windows) C++ library with MATLAB wrappers for computing the 6 DOF motion of a moving mono/stereo camera.
  • 相关阅读:
    函数依赖(转)
    C++对象的深拷贝和浅拷贝
    C++临时匿名对象
    C++操作符重载
    C数组和指针
    动态开发入门之Servlet
    数据库的CURD操作 以及经典的sql语句
    如何删除07版word页眉页脚的横线
    数据库的连接查询
    经典面试题 详细解析Java中抽象类和接口的区别
  • 原文地址:https://www.cnblogs.com/sheshouyanhun/p/3772897.html
Copyright © 2020-2023  润新知