私はコンピューター ビジョンに不慣れで、画像 (またはビデオ フレーム) 内の特定の平らなオブジェクトを検出したいと考えています。
具体的でフラットとはどういう意味ですか?
平らな
平らな物体は物体のようなものですが、ご存知のとおり、平らです... 私にとっての意味:
- オブジェクトは常にほぼ同じ「正面」角度から表示されます。つまり、カメラの軸は (多かれ少なかれ) オブジェクトの表面法線に対応します。(ただし、それらはその軸を中心に回転する場合があります)。
- 照明の角度が変化しないオブジェクト (つまり、影を落とす隆起や折り目がない)。
明確な
- 正確な外観と形状を知っているオブジェクト。それらはすべてまったく同じで、バリエーションはありません。
- 私はそれらの (正確な) 写真 (または表現) を持っています。
そのようなオブジェクトの例
- 1ドル紙幣の表面
- モナ・リザ
- (お気に入りの雑誌はこちら)の最終号の表紙
- ...
問題は簡単なので、基本的にそのように機能するコンピューター ビジョン ライブラリの関数を見つけることができるはずです。
> findObjects("object.png", "image.png")
[object at x1, y1, rotated z1 degrees, size height1*width1,
object at x2, y2, rotated z2 degrees, size height2*width2,
...]
実際、私はオブジェクトのサイズや位置をあまり気にしません。数が必要なだけです。
しかし、私はこのようなものを見つけることができません。私が見つけることができるのは、ハール分類器と呼ばれるものを使用した無数の顔認識の例だけです。これは、私の問題にはまったく適していないようです。
- 面は平らではないため、分類器はさまざまな照明や影などの問題に対処する必要があります...
- 顔、つまり、似ているが完全に同一ではないオブジェクトを認識しなければなりません。
- 顔が「似ている」という理由だけで、トレーニングされていない顔を認識しなければなりません。
- これが適していないことの証明: 数百または数千の正と負のサンプルでトレーニングする必要があります。私の問題では、必要なすべての情報が 1 つのサンプルに含まれています。だから、それは正しくありません。
それで、このようなものは存在しますか?
これは標準のコンピューター ビジョン ライブラリのように思われるため、OpenCV を使用したいと思いますが、どのようなソリューションにも対応しています。