キカベン
機械学習でより便利な世の中へ
G検定対策
お問い合わせ
   

画像処理APIが沢山ある謎

thumb image

OpenCV、Pillow、Scikit-Imageなどが有名ですが、他にもいろいろあります。どれも似たような機能を提供しているのですが、なぜたくさんあるのでしょうか?

グラフを描画するライブラリーもたくさんありますね。不思議なものです。

おそらく誰もが納得するような答えはないでしょう。

ただ、理由の一つとして考えられるのは「画像処理はシステムの一部であって、それが第一目的でないことも多く、使う側の好みや便宜に対応するように改良されてきた」結果なのかもしれません。

あるAPIがとあるユーザー群の目的にオーバーフィットしてしまえば、他のユーザーがもとめる微妙に異なるAPIが生み出されるきっかけになる。

ディープラーニングのライブラリはそれぞれ異なる画像処理APIを採用しています。TensorFlowは独自の画像APIをもっているし、Kerasにも独自の画像APIがあります。

また、PyTorchではPillowを使うことが多いですが、OpenCVで読み込んだデータもPyTorchのTensorに変更すれば問題なく使えます。とは言うものの、TorchvisionのTransformsなどはPillowをベースにしているので合わせていた方が自然な気もします。

そんなわけで、機械学習やディープラーニングのライブラリを使う立場から考えるとライブラリに採用されている画像APIを使うことになり面倒です。

冒頭でもいったように、どの画像処理APIも似たようなことをしているので、どれか一つを学べば他のAPIもすぐに使えるようにはなります。

なので画像処理APIを学ぶのであれば、よく使われるOpenCVなどを勉強するのが無難でしょう。あるいは、使っているライブラリに採用されているものに慣れてそのライブラリーだけを使うようにしてもそんなに問題はないでしょう。

ちょっとまとまりがないですが、それが画像処理APIの運命なのかもしれません。



コメントを残す

メールアドレスは公開されません。