HTML5(Canvus)、Javascript向けの画像処理ライブラリについてまとめました。
2015年08月06日17:57
CCV.js(Core Computer Vision Library)
作者様のサイト
ccv - a modern computer vision library
CCV.js (Core Computer Vision Library)とは、OpenCVをJavaScript向けに移植させた画像処理ライブラリです。(ただし、2015年1月4日現在完全に移植はされていないようです。)
しかしながら顔検出などの機能は既に簡素化されて移植されているため、色々な事に活用できそうです。
jsdo.it:CCV.jsで顔検出をしている例とサンプルコード
HTML5のCanvas機能を用いて画像を操作しているので、ライブラリは軽量です。
しかし、軽量と言ってもjavascriptなので、「他言語+正規版OpenCV」よりも処理時間はかかります。また、軽量化のためにアルゴリズムが簡素化されているので、顔などの検出精度もOpenCV本家と比べると低いようです。
参考文献[5]では、CCV.jsのソースコードの一部を改善し、顔検出の処理速度を2倍近く向上させています。
OpenCVjs
作者様のサイト
OpenCVjsは、画像処理ライブラリのOpenCVをjavascript向けに移植したライブラリです。
こちらもCCV.jsと同様に、HTML5のCanvasを利用しています。
画像のフィルタリングや機械学習(SVM)などがサポートされています。
CCV.jsの対抗馬といった感じでしょうか。
関数名や引数がOpenCV1.0系と似ていますので、OpenCVを使ったことのある人には使いやすいライブラリだと思います。
jsfeat
作者様のサイト
JSFeat - JavaScript Computer Vision Library.
jsfeatはjavascript向けの画像処理ライブラリです。
実装されている機能は、基本的な画像処理(画像のロード・保存・フィルタリング)、線形代数の計算、特徴点抽出などで、開発は現在も続いているようです。
ちなみの作者がこのライブラリを開発している目的は、「HTML5とjavascriptの可能性を追い求めるため」だそうです。かっこいいですね、惚れそうになります。
参考文献[1]のレビューによると、「(jsfeatは)思ったよりも精度よく、かつなかなか高速に動作した」そうです。Fabric.js
作者様のサイト
Fabric.js Javascript Canvas Library
Fabric.sは、HTML5のCanvas機能を使いやすくしたJavaScript向けのライブラリです。
具体的には、Canvus上に図形を描いたり、画像に対してフィルタ処理、回転処理をかける場合に
CanvusのAPIをそのまま使うよりも簡単にプログラムを書くことが出来ます。
また、内部にSVGパーサーを内蔵しているので、svgで描かれた図をcanvasに転写する優れた機能があります。