今まで自分が見つけたコンピュータビジョンの研究に役に立ちそうなフリーのライブラリやソースコードをまとめてみました。自分ではまだ使っていないものも多いので、そこはご容赦を。主に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
Matlab用CVツールボックス
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
大規模一般物体認識のためのライブラリ。Matlab、Python、C++から利用可能。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さんからの情報。MatlabとOpenCVを用いた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さん作成のiOS用ARソフトウェア。
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
ここもコンピュータビジョンのソースへのリンク集