web-dev-qa-db-ja.com

同じ画像で複数のオブジェクトを見つける方法は?

私はTensorFlowの初心者です。

現在、TensorFlowウェブサイトでいくつかの分類の例「たたみ込みニューラルネットワーク」をテストしています。これは、入力画像を事前定義されたクラスに分類する方法を説明していますが、問題は次のとおりです。同じ画像。たとえば、猫と犬の入力画像があり、画像に「猫と犬」の両方がいることを出力にグラフで表示したいとします。

10
user3425890

すばらしい質問です。同じ画像内の複数のオブジェクトを検出することは、本質的に「セグメンテーションの問題」です。 2つの優れた人気のあるアルゴリズムは、YOLO(You Only Look One)とSSD(Single Shot Multibox Detector)です。下部にそれらへのリンクを含めました。

YOLOがどのように機能するかについてのビデオをいくつか見て、そのアイデアを理解しているかどうかを確認します。次に、SSDに関するペーパーを読み、このアルゴリズムがさらに高速で正確である理由を理解しているかどうかを確認してください。

どちらのアルゴリズムもシングルパスです。「一度」画像を見て、見つけたカテゴリの境界ボックスを予測するだけです。より正確なアルゴリズムはありますが、アルゴリズムは遅くなります(最初に、見たいスポットを多数選択してから、そのスポットのみで分類子を実行します。その結果、画像ごとにこの分類子を何度も実行するため、時間がかかります)。

あなたがTensorflowの初心者であると述べたように、他の人が作った次のコードを試すことができます: https://github.com/thtrieu/darkflow 。非常に広範囲にわたるreadmeは、独自のデータセットを使い始める方法を示しています。

幸運を祈ります。他に質問がある場合や、これらのアルゴリズムがユースケースに適合しない場合はお知らせください。

27
rmeertens

あなたがやろうとしていることに対する素朴なアプローチは、画像の一部を独立して分類することです。

しかし、オブジェクト検出にはいくつかの優れた手法があります。実際、 TensorFlow Object Detection API があり、Faster R-CNNやSSDなどの最も一般的なオブジェクト検出方法にアクセスできます。

2
rettenda