1. ホーム
  2. matlab

[解決済み] なぜSIFTはMatlabで利用できないのですか?

2022-02-08 02:49:13

質問

SIFTはコンピュータビジョンにおいて重要かつ有用なアルゴリズムですが、Matlabやそのツールボックスの一部には含まれていないようです。

なぜですか?Matlabはより良いもの、または同等のものを提供しているのでしょうか?

解決方法は?

MATLABにはComputer Vision Toolboxの一部としてSURFが用意されていますが、SIFTはありません。 http://www.mathworks.com/help/vision/ref/surfpoints-class.html . しかし、両アルゴリズムは、積分画像の使用や高速ヘシアン検出器など、いくつかの細かい(しかし重要な)違いを除き、ほとんど同じものです。 これらの違いについてこれ以上詳しく説明することはしませんが、この研究についてはこちらで読むことができます。 http://www.vision.ee.ethz.ch/~surf/eccv06.pdf . MathWorks社がSIFTではなくSURFを使うことにした理由については......本当にどんな理由でもいいんです。 どちらも特許の対象であるため、どちらかを選んだという公式な理由はないようです。

しかし、MATLABの中でSIFTを使いたい場合、一つの提案として VLFeat ツールボックスでは、キーポイント、検出、マッチングフレームワークのCおよびMATLAB実装が公開されており、オープンソースとなっています。 VLFeatには他にも様々な素晴らしいコンピュータビジョンアルゴリズムが実装されていますが、私が知る限り、VLFeatはオリジナルの特許アルゴリズムと同じくらい正確にSIFTを計算することができるライブラリの1つです。

もし、あなたがSIFTを使うことを決めているなら、VLFeatをチェックしてみてください。 特に、MATLABラッパーを使用したSIFTに関するVLFeatの公式チュートリアルをご覧ください。 http://www.vlfeat.org/overview/sift.html