私たちが取り組んでいるプロジェクトに基づいて興味深いディスカッションがありました。なぜテンプレートマッチングアルゴリズムに対してCNN目視検査システムを使用するのですか?
背景:特定のタイプのオブジェクトが「壊れている」/欠陥があるかどうか(この場合はPCB回路基板)を検出する単純なCNNビジョンシステム(ウェブカメラ+ラップトップ)のデモを示しました。私のCNNモデルは、静的な背景に適切な、壊れた回路基板(それぞれ約100枚の画像)の例を示していました。私たちのモデルは、事前に訓練されたVGG16(imagenet上)の最初のいくつかのconv / maxpoolレイヤーを使用し、次にいくつかの密集度を持ついくつかのさらにトレーニング可能なconvs / poolsを追加し、分類のためのdim-3 one hotエンコードされたベクトル化された出力に導きました:(is_empty、has_good_product、has_defective_product)。
モデルはかなり簡単にトレーニングされ、問題なく99%の検証に達しました。また、データセットが小さいことがわかっているため、さまざまなデータ拡張を使用してトレーニングを行いました。実際には、10回のうち約9回動作しましたが、同じ回路基板のいくつかのランダムな変換/回転により、逆のクラスに配置される場合があります。おそらく、より積極的なデータ拡張が役立つでしょう。とにかく、プロトタイプのコンセプトプロジェクトについては私たちは幸せでした。
今、私たちは別のエンジニアと彼の同僚に提示していました、そして彼はNNがこれには過剰であるという議論を持ち出しました、ただテンプレートマッチングを使うべきです、なぜCNNをしたいのでしょうか?
私たちのアプローチが特定のアプリケーション(たとえば、検査する他の部品)でより優れている理由について、良い答えはありませんでした。私たちが提起したいくつかのポイント:
1)不変性に対してよりロバスト(たとえば、データ拡張を介して)
2)システムを改善するためにオンライン学習を行うことができます(たとえば、人間はどの例が間違っているかをソフトウェアに伝えることができます)
3)従来のコンピュータービジョンアルゴリズムのようにしきい値を設定する必要はありません。皆さんはどう思いますか、このタイプの検査タスクのためのCNNシステムにはもっと利点がありますか?どのような場合に、テンプレートマッチングよりも優れていますか?
深いNNが仕事の技術になる可能性がある場合のいくつかのランダムなアイデア:入力の一部として3D深度センシングを必要とするシステム、または変形/ストレッチ/押しつぶすことができるが、依然として「良好」である任意のタイプのオブジェクト不良品ではない(例:ぬいぐるみ、ワイヤーなど)。あなたの考えを聞いて興味があります:)