takminの書きっぱなし備忘録 このページをアンテナに追加 RSSフィード Twitter

2012-05-20

コンピュータビジョンのソースコード/ライブラリのまとめ

| 19:49 | コンピュータビジョンのソースコード/ライブラリのまとめを含むブックマーク コンピュータビジョンのソースコード/ライブラリのまとめのブックマークコメント

今まで自分が見つけたコンピュータビジョンの研究に役に立ちそうなフリーのライブラリソースコードをまとめてみました。自分ではまだ使っていないものも多いので、そこはご容赦を。主にC/C++が中心です。

またライブラリ形式でない、いわゆる学会で発表した研究のコードをそのまま公開しているという人がたくさんいて、それに関しては特にメジャーなもののみ紹介しています。なにぶん僕の観測範囲は限られてますので、「このライブラリに触れないのはおかしい」、「説明が間違っている」等、ご意見大歓迎です。


定番(Standard)

OpenCV

定番中の定番です。コンピュータビジョンに関して広範なアルゴリズムが実装されています。

http://code.opencv.org/projects/OpenCV/wiki/WikiStart


Point Cloud Library

3次元点群データを扱うならこれ。Kinectの登場で一気に注目されました。

http://www.pointclouds.org/


コンピュータビジョン全般(General Computer Vision Libraries)

FastCV

QualcommモバイルCVライブラリ。ソース非公開。

https://developer.qualcomm.com/mobile-development/mobile-technologies/computer-vision-fastcv


Leptonica

TesseractOCRでも使用されている画像処理ライブラリOpenCVと比べて独自の方向に進化しているようです。

http://www.leptonica.com/


VLFeat

Cのコンピュータビジョンライブラリ。局所特徴量のアルゴリズムや近似最近傍探索アルゴリズムが強いみたいだが、OpenCVとの明確な違いはわからず。Matlabインターフェースを持つ。

http://www.vlfeat.org/


VIGRA

データ構造とアルゴリズムのカスタマイズ性に重点を置いたCVライブラリ

http://hci.iwr.uni-heidelberg.de/vigra/


Machine Vision Toolbox

MatlabCVツールボックス

http://petercorke.com/Machine_Vision_Toolbox.html


SimpleCV

Python向けCVライブラリOpenCV他、数値計算ライブラリなどを、とにかく簡単に使えるようパッケージ化したもの。(2012/05/22追記)

http://simplecv.org/


VXL

広範なCVとその周辺アルゴリズムを実装したらC++ライブラリ。(2012/05/22追記)

http://vxl.sourceforge.net/


LTI-Lib

線形代数クラスタリング、識別器、画像処理、表示などのアルゴリズムを実装したC++ライブラリ(2012/05/22追記)

http://ltilib.sourceforge.net/doc/homepage/index.shtml


そしてOpenCVとVXL、LTIを比較した記事(2012/05/22追記)

http://www.aishack.in/2010/07/opencv-vs-vxl-vs-lti-performance-test/


Media Integration Standard Toolkit(MIST)

@dandelion1124さんからの情報。名古屋大学を中心に開発された、音声と画像の両方を扱えるライブラリ。(2012/05/22追記)

http://mist.murase.m.is.nagoya-u.ac.jp/trac/


OpenVIDIA

@dandelion1124さんからの情報。CVアルゴリズムGPU上に実装したライブラリ。(2012/05/22追記)

http://openvidia.sourceforge.net/index.php/OpenVIDIA


GPU4Vision

@fukushima1981さんからの情報。こちらもGPU上に実装した画像処理アルゴリズムとその論文Matlabかまたはバイナリ提供。(2012/05/22追記)

http://gpu4vision.icg.tugraz.at/


AForge.NET Framework

@fararrow9さんからの情報。コンピュータビジョン全般のC#実装。特に拡張現実感(AR)が充実している模様。(2012/05/23追記)

http://www.aforgenet.com/


物体検出(Object Localization)

INRIA Object Localization Toolkit (OLT)

Histogram of Oriented Gradients(HOG)の実装など。

http://www.navneetdalal.com/software/


Discriminatively Trained Deformable Part Models

Deformable Part Modelの実装。Deformable Part Modelについては、こんな記事を書いた。

http://www.cs.brown.edu/~pff/latent/


一般物体認識(Object Recognition)

Caltech Large Scale Image Search Toolbox

大規模一般物体認識のためのライブラリMatlabPythonC++から利用可能。BoVWやHierarchical Kd-Tree、LSH、などのアルゴリズムが実装されている。(2012/06/24追記)

http://vision.caltech.edu/malaa/software/research/image-search/


物体追跡(Object Tracking)

OpenTL

物体追跡を行うためのライブラリ。特徴点抽出や、Kalman FilterやParticle Filterなどの追跡用関数が充実。

http://www.opentl.org/


文字認識(Optical Character Recognition)

TesseractOCR

文字認識のオープンソースライブラリ。日本語文字認識にも対応。過去、こんな記事も書きました。

http://code.google.com/p/tesseract-ocr/


Ocropus

文書解析(レイアウト等)のオープンソースライブラリ。TesseractOCRをラップしてるので文字認識も含む。

http://code.google.com/p/ocropus/


バーコード認識(Barcode Recognition)

ZXing ("Zebra Crossing")

1次元バーコードと2次元バーコード(QRコード)を認識させるためのライブラリ

http://code.google.com/p/zxing/


Active Shape Model

asmlibrary

ASMのOpenCVによる実装

http://code.google.com/p/asmlibrary/


Active Appearance Model

AAM-OpenCV

OpenCVで実装されたActive Appearance Model

http://code.google.com/p/aam-opencv/


AAM-API

AAMのC++実装

http://www2.imm.dtu.dk/~aam/


AAMtools: An Active Appearance Modeling Toolbox

AAMのMatlab実装

http://cvsp.cs.ntua.gr/software/AAMtools/


Constrained Local Model

Constrained Local Model (CLM) Implementation

@derivecvさんからの情報MatlabOpenCVを用いたCLM実装。(2012/05/22追記)

http://sites.google.com/site/xgyanhome/home/projects/clm-implementation


FaceTracker

こちらで解説した手法です。ソースコードを入手するためには、著者に直接メールする必要があります。

http://web.mac.com/jsaragih/FaceTracker/FaceTracker.html


Structure-from-Motion

Bundler: Structure from Motion (SfM) for Unordered Image Collections

SfMソフトウェアの定番。Bundle Adjustmentというアルゴリズムを用いて、カメラキャリブレーションを行う。

http://phototour.cs.washington.edu/bundler/


Multicore Bundle Adjustment

Bundle AdjustmentをマルチコアGPU上で計算できるようにしたソフトウェア

http://grail.cs.washington.edu/projects/mcba/


V3DSfMToolkit

SfMのためのツールキット。Bundlerとの違いなど知っている方教えて下さい。

http://www.visual-experiments.com/2011/02/22/new-toolkits-released/


Multi-View Stereo

Patch-based Multi-view Stereo Software

Multi-view Stereoのソフトウェア。入力として画像+キャリブレーションデータを与えると密な3次元モデルを生成してくれる。

http://grail.cs.washington.edu/software/pmvs/


Clustering Views for Multi-view Stereo (CMVS)

SfMソフトからの出力を元に画像をクラスタリングして、MVSソフトへの入力を効率化してくれる。

http://grail.cs.washington.edu/software/cmvs/


因子分解法(Factorization)

鹿児島大学川崎研究室で公開されているソースコード

http://www.ibe.kagoshima-u.ac.jp/~cgv/ja/ssii10.html


ステレオマッチング(Stereo Matching)

Middlebury Stereo Vision Page

alt-nativeさんより情報を頂きました。ステレオマッチングの各種アルゴリズムのコード、データセット+Ground Truth、評価用オンラインプログラムなどを提供しているサイトです。(2012/05/22追記)

http://vision.middlebury.edu/stereo/


LIBELAS: Library for Efficient LArge-scale Stereo Matching

@fukushima1981さんより情報を頂きました。2枚の画像からDisparity Mapを作成するC++コードとそのMatlabラッパー(2012/05/22追記)

http://www.rainsoft.de/software/libelas.html


領域分割(Segmentation)

Insight Segmentation and Registration Toolkit (ITK)

多次元データの領域分割とレジストレーションのためのライブラリ。尚、OpenCVとITKをつなぐ方法についてのチュートリアルこちら

http://www.itk.org/


背景差分(Background Subtraction)

OpenCV C++ Background Subtraction Library (bgslibrary)

様々な背景差分アルゴリズムが実装されたライブラリ

http://code.google.com/p/bgslibrary/


ProCam

VPC library

ビデオプロジェクタキャリブレーションを行うためのライブラリ

http://free-dee.org/vpc/


機械学習(Machine Learning)

とりあえず以下にリストがまとまってます。(朱鷺の杜Wiki)

http://ibisforest.org/index.php?Freeware


Support Vector Machine

SVMツールと関連する論文まとめ - EchizenBlog-Zwei

http://d.hatena.ne.jp/echizen_tm/20110214/1297700725


SVM-Struct

svmlightベースで実装された、Structual SVMライブラリ

http://www.cs.cornell.edu/people/tj/svm_light/svm_struct.html


Multiboost

AdaBoostのライブラリ

http://mloss.org/software/view/246/


Shogun - A Large Scale Machine Learning Toolbox

C++/Python/R/Matlabなど様々なインターフェースを持つ機械学習ライブラリ。特にSVMカーネルの実装に力を入れている。

http://www.shogun-toolbox.org/


拡張現実感(Augmented Reality)

ARToolkit

ARライブラリの定番。Java/C#/Android実装(NyAR Toolkit)やFlash実装(FLAR Toolkit)などもある。これら派生プロジェクトについてまとめたブログ”ARToolKitとその周辺技術のまとめ - 毛の生えたようなもの”

http://www.hitl.washington.edu/artoolkit/


OpenCV-AR

OpenCVベースのARライブラリ

http://sourceforge.net/projects/opencv-ar/


ArUco

これもOpenCVベースのARライブラリ

http://www.uco.es/investiga/grupos/ava/node/26

http://sourceforge.net/projects/aruco/files/1.1.0/


Core AR

@sonsonさん作成のiOSARソフトウェア

http://sonson.jp/?page_id=1699


OpenCV MarkerlessAR

僕が作ったこれです。その名の通り、OpenCVで作成した自然特徴点ベースのARです。(メンテする時間がない。。。誰か手伝って。)

https://github.com/takmin/OpenCV-Marker-less-AR


Parallel Tracking and Mapping for Small AR Workspaces (PTAM)

SLAMベースARの定番。

http://www.robots.ox.ac.uk/~gk/PTAM/


以下、企業が作成したソース非公開の無料ARライブラリ

Vuforia(旧QCAR)

SATCH(D'Fusion SDK)

metaio


その他(Misc)

http://www.cs.cmu.edu/~cil/txtv-source.html

ここもコンピュータビジョンのソースへのリンク集

alt-nativealt-native 2012/05/21 22:18 貴重な情報ありがとうございます。参考にさせて頂きます。

余計な情報ですが、ステレオマッチングのソフトウェアでは以下がオススメです。
米Middlebury大のMRFライブラリです。各地の研究者さんのソースコードをまとめたライブラリです。OpenCVより多くのステレオマッチングの手法を試すことができます。
http://vision.middlebury.edu/stereo/code/

takmintakmin 2012/05/21 23:45 お、これは知りませんでした。情報ありがとうございました。
Szeliskiのプロジェクトなんですね。
データセット+Ground Truth情報+評価プログラムと、まさに研究者には嬉しいプログラムですね。
大変ありがとうございました。

adachiadachi 2012/06/20 15:43 貴重な情報ありがとうございます。
とても参考になりました。

Structure from Motionについてですが、
Washington大学の Changchang Wu さんらの研究グループが
PBAを利用したSfMのGUIソフトウェア「VisualSFM」を提供しています。
http://www.cs.washington.edu/homes/ccwu/vsfm/
このソフトウェアはPMVSにも対応しており、PMVSをもっとも簡単に利用できる方法かと思います。
以上ご参考までに。

takmintakmin 2012/06/20 22:57 adachi様
情報ありがとうございました。色々なライブラリを束ねて、マルチコア/GPUで高速化という感じですか。初心者には嬉しいですね。