Thursday, October 8, 2015

Memo of Image Processing Resources 画像処理関連メモ


(negativemindは大変面白いブログでいろいろいい情報を教えてくれました)

ImageMagickは(イメージマジック)は画像を操作したり表示したりするためのソフトウェアスイートです。

IPPはIntelによって無料提供されている「マルチメディア、データ処理、通信アプリケーション向けに最適化されたライブラリー」です。

HALCONはMVTec Software Gmbhによって開発されたマシンビジョン用ライブラリです。

TEOはj2002年まで筑波大・産総研・岡山大によって開発されたものです。TEOライブラリによる画像処理プログラミングガイド

openIPはUniversity of DebrecenのImage Processing Group of Debrecenによって開発された画像処理のオープンソースライブラリです。 

ImageJはオープンソースでパブリックドメインの画像処理ソフトウェアです。Java1.1以降のVM上で動作します。アメリカ国立衛生研究所 (NIH) でWayne Rasbandが開発を始めました。

Computer Vision Source Code魚拓キャッシュ)は2005年6月30日までまとめられたコンピュータビジョン関係のソースコードリンク集です。物によってはあまり使われない環境になったりします。

OpenBR (Open Source Biometric Recognition)はオープンソースの生体識別ライブラリです。顔写真から年齢や性別の判別が可能だそうです。

OpenMVG(open Multiple View Geometry)はマルチビュー・コンピュータビジョンのライブラリです。

OpenGVは幾何学コンピュータビジョン(geometric computer vision)のためのアルゴリズムライブラリです。

ALGIBは改良されたRandom Forest (RDF、機械学習のアルゴリズム)の実装ライブラリで、C#, C++, Pascal, VBA.などをサポートします。

Caffeは読みやすくて高速なディープラーニングのフレームワークです。

ところで、話は少し違うが、開発プラットフォームで悩む人は、Natronという便利なものがありますよ!Natronはオープンソースでクロスプラットフォーム(OSX/LINUX/WINDOWS) の合成ソフトウェアです。OpenFX100%互換でオープンソースのコンポジットソフトウェアです。

似たようなもので、OpenCL(オープンシーエル、Open Computing Language)は、OpenCL C言語による、マルチコアCPUやGPU、Cellプロセッサ、DSPなどによる異種混在の計算資源(ヘテロジニアス環境、ヘテロジニアス・コンピューティング、Heterogeneous)を利用した並列コンピューティングのためのクロスプラットフォームなフレームワークです。なんとアップル社によって提案されたものです。

2012年5月20日付のコンピュータビジョンのソースコード/ライブラリのまとめ(魚拓キャッシュ)では、以下のリストをまとめました。

定番(Standard)
OpenCV定番中の定番です。コンピュータビジョンに関して広範なアルゴリズムが実装されています。
http://code.opencv.org/projects/OpenCV/wiki/WikiStart
Point Cloud Library3次元点群データを扱うならこれ。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

No comments:

Post a Comment