通常のデータシンターをレスキューします。プロジェクトを完了し、自分を失うことのないようにコンピュータービジョンに取り組む方法



私の名前はアレクサンドラ・ツァレバです。同僚と私は、JetInfosystemsのMachineLearningCenterでコンピュータービジョンの分野のプロジェクトに取り組んでいます。コンピュータビジョンの分野でのプロジェクトの開発と実施における私たちの経験を共有したいと思います。



この記事では、プロジェクトでのデータセット担当者の作業プロセスが、「精神的」な観点からではなく、実際にはデータ署名者の観点からではなく、組織的な観点からどのように見えるかについて説明します。そして、この投稿の後にさらにいくつかが続き、小さなシリーズを書くことができるようになることを願っています。



すぐに2つの重要なポイントを述べます。



  1. これらの手順は、ほとんどすべてのデータセットプロジェクトに適用されます。しかし、いくつかの瞬間は、CVの周りの誇大広告効果、コンピュータービジョンの「銀の弾丸」の栄光、および「ニューラルネットワークでそれを持ちたい」という顧客の願望によって引き起こされます。
  2. , , — , - . , , ( , ..) , — - .


: ?



顧客がデータセット作成者と彼を助けるある種の人工的な知性が必要であると決定するとき、まず第一に、彼は彼が解決しようとしている問題を理解する必要があります。この段階で、データ署名者はデータの「心理分析者」として機能し、データ、ビジネスの観点からの外部制約、および理想的な世界で解決したい問題について詳細に質問します。多くの場合、顧客は将来のタスクについてすべてをすでに知っています。この知識を理解して形式化するのを支援する必要があります(内部データの世界を理解し、場合によってはその特性に同意する必要があります)。



もちろん、コンピューターのビジョンは非常に興味深い分野です。常に数え、手で行うことがあります。しかし、これはすべて、開発時間、スペシャリストのコスト、およびスペシャリストに必要な機器の両方の点で非常に高価です。問題の最適な解決策には本当にCVが必要かどうか疑問に思わざるを得ません。おそらく、より適切で、より短い開発時間とより高い精度で問題をよりよく解決できる他の機械学習ツールがありますか?



簡単な例でアイデアをお見せします。ある小売業者は、CCTV画像認識を実装して、チェックアウト時にキューに入れている人の数を追跡したいと考えていました。それは明らかな仕事のように思われるでしょう-ビデオアーカイブがあり、事前に訓練されたニューラルネットワークさえあります-「カウンター」。スケジュールに署名し、それを行います。



しかし、小売業者との会話から、datasinterは、タスクが特定の時点でのキャッシャーの負荷に関連していないことを知ります。グローバルなタスクは、不要な従業員を呼び出して交換することではなく、同時にキューを回避することです。小売業者は、来店した顧客の数(売り手が店の出口でフレームを曲げているのを見た場合、そのようなカウンターの最も簡単な実装を見た場合)、チェックアウトからの購入に関するデータを示す大規模なデータベースを持っています...そして実際には、タスクはそうではありませんキューにいる人を数え、キャッシャーの作業負荷を予測し、作業スケジュールを最適化します。



もちろん、アーカイブされたビデオの人数を数えることで解決できます。ただし、表形式のデータは通常、より深く保存され、処理が簡単です。代替案を提供することは公正です-おそらく顧客はCVがすごいことを聞いただけです。



そのため、最初の段階で、お客様が解決したい問題が実際にはマシンビジョンの問題であり、このテクノロジーがそれを解決するのに最適であることを確認します。



ステップ2:CVの問題をどのように解決し、解決策の成功を評価しますか?



第2段階は、数学的問題の定式化、メトリックの選択です。



この問題を解決できる既知のソリューション、ニューラルネットワークはありますか?たぶん箱入りの製品でさえ?タスクが新しい場合-信頼できる出版物があり、達成可能な品質を予備的に評価できるでしょうか?



この段階では、データサイエンティストとしての仕事の観点から、またビジネス上の問題を解決するという文脈で顧客の観点から、問題を解決するための指標について説明します。



データの操作は、ソリューションとメトリックの合意と同時に開始される場合がありますが、便宜上、データを別のステップに分けます。



ステップ3:データを調べて理解する



手元のタスクを解決するのに十分なデータがあるかどうかを評価することは非常に重要です。もちろん、小さなデータセットは設定の段階でも拒否されますが、ビジネス上の問題を理解する過程で、新しいニュアンスが生じる可能性があります。状況は異なります。1000個の画像を作成できますが、必要なクラスに属するのは10個だけであり、秘密のマシンビジョンテクノロジーは役に立ちません。



たぶん、既存のデータセットを改善することは難しくないことをすぐに理解するでしょう-従業員に通常撮影されるよりも多くのオブジェクトを撮影するように依頼し、アウトソーシングまたはオープンデータセットを通じていくつかの追加データを収集します。



同じ段階で、将来のモデル学習の観点から欠点が指摘されており、それらの多くは、問題の根本的な解決可能性について再検討する際のステップに戻る可能性があります。最も一般的な例は、データの多様性が低いこと、またはクラスの1つが過小評価されていることです。さまざまな拡張手法を使用して多様性を高めるために競争することは可能ですが、これによってモデルを現実の世界に向けて準備できるとは限りません。しかし、データの難しさに対処できると思われる場合は、4番目のステップが役に立ちます。



ステップ4:プロトタイプモデルを開発する



この段階では、実装の準備ができているモデルについて話しているのではなく、この方向で作業を続ける価値があるかどうか、可能な結果が期待(私たち、そして最も重要なのは顧客)を満たすかどうかという質問に私たちと顧客に答えるプロトタイプについて話します。データを処理した後、パイロットモデルの開発を開始し、その品質を評価します。いくつかの明らかなこと:この段階で、モデルは遅延データセットに対して検証されます。 2つの主なオプションは、私たちが取っておいた画像、またはプロジェクトの作業中にクライアントが入力した画像です。



プロトタイプ開発のパイロット段階でのプロジェクトの作業期間は、少なくとも1か月です。この間、ほとんどの場合、顧客はテスト用のデータを蓄積できます。これは、データセット担当者が問題の解決にどれほど深刻であるかを確認するための良いテストです。これまでに見たことのないデータを取得する場合、モデルがどのように一般化できるか、検証データセットへの回答に適合するかどうかを確認します(もちろん、これも延期されます)。しかし、それ以来、現実の世界ですべてが変わったことを知るには遅すぎます。それは非常に残念なことです)。



一方、延期されたデータセットを受け取った時点で、プロジェクトの顧客の関心領域に分類されるオブジェクト(およびこれは内部の顧客にも当てはまります)がどの程度安定しており、モデルのトレーニングと検証に使用されるサンプルに対応しているかを確認できます。結局のところ、このような状況は非常に可能です。コンピュータビジョンは、すべてとすべての人をデジタル化する大規模なプロジェクトとして実装され、同時にデータソースに重要な変更が行われます(たとえば、メインコンベヤが完全に再構築され、そこからの画像が根本的に変更されました)。



パイロットの結果の分析は、プロジェクトの将来を決定するのに役立ちます。顧客は正確さのレベルに対して非常に高い要件を持っていることが判明する場合があります。たとえば、回答の99%が正解である必要があり、前の手順では、これは基本的に達成可能であるように見えました。しかし、パイロットでは、93%の精度を達成しました。もちろん、6%のゲインを保証することはできません。プロジェクトの開発オプションについて、利用可能なパイロット結果とともに顧客と話し合うことは論理的です。追加データの収集、必要なメトリックの削減、またはCV領域での新たなブレークスルーまでプロジェクトの凍結についてです。



最初の4つのステップは、次の図で示すことができます。







実際の開発よりもはるかに短い時間で済みます。それにもかかわらず、プロジェクトの将来の成功は、顧客の期待にどれだけ応え、実際に彼の問題を解決するかということです。



ステップ5:残りを行う;)



コンセプトの確認から実装されたソリューションまで、プロジェクト全体は次のようになります。





プロジェクト開発の計画と条件はおおよそのものです。実際のプロジェクトでは、データは人によって異なり、収集される速度も異なるため、さまざまなニュアンスが常に発生します。また、統合の計画や実施者などによって、社内にコンピュータビジョンを導入する段階が大きく異なる場合があります。 .P。結局のところ、監視カメラからの長期間の記録に基づいてオフィスに入る従業員の識別システムをインストールすることになると、それは1つのことです。概念を証明するためのサンプル画像の数が少ない場合は別の問題です。問題が原則的に解決できるかどうか、本格的なデータセットの収集にかかる時間はわかりません。



このように、スライドは真空状態での抽象的なプロジェクトの非常に大まかな時間枠を示していますが、概念の証明から実装および実装までの全サイクルには約1年かかることを知っておくと便利だと思います。これらの用語は、複雑なタスクでは増加する可能性があり、「箱から出してすぐに使用できる」ソリューションが望ましい場合、または問題がよく知られており、調査作業を必要としない場合は減少する可能性があります。



All Articles