人々の頭の上のヘルメットを見つけるために現代のニューラルネットワークテクノロジーを適用しようとした方法に関する記事





以前は、従来のビデオ分析アルゴリズムに基づいてすべてのインテリジェントモジュールを構築していました(以降、それらを「クラシック」と呼びます)。 もちろん、ニューラルネットワークについては知っていて、2008年にそれらを適用しようとしました。特に、クラスタごとに人の画像を比較しました。 しかし、結果は顕著ではありませんでした(ニューラルネットワークの開発レベルの低さを含む)。 そして長年にわたり、マシンビジョンの「クラシック」の支持者になりました。 そして、すべてのニューラルネットワークは私たちの頭の中にありました:)



畳み込みニューラルネットワークの出現により、ビデオ分析の問題を解決する上で、彼らが自分自身をうまく示すことができるようになるという希望が現れました。まず、以前のアルゴリズムを使用したのと同じ条件下でより高い精度を提供し、次に、これらの非常に動作する条件の範囲を拡大します。



その上、この開発方法ははるかに信頼性が高いように見えました-すぐに「行くかしないか」という結論を下すことができます。「古典的な」アルゴリズムで作業を開始すると、パスが正しいかどうかすぐには分からず、問題を解決できるかどうかがわかります。 そして、推定可能な結果に達するには、ある程度の(多くの場合かなりの)時間がかかります。 そのため、たとえば、約1か月間、カメラのステレオノズルで新しい訪問者数を実装するのに忙しかったのですが、最終的には賢明なことは何も得られませんでした( 記事「超新星の誕生:3D訪問者カウントの例を使用した新機能の登場」を参照)。 ニューラルネットワークを使用すると、すべてがより明確になります。すでにいくつかの写真の小さなサンプルを使用することで、それが可能かどうかを評価できます。 そうでない場合は、選択を変更して再度確認してください。 適切なデータ型とアプローチを見つけるのははるかに高速です。その後、選択を改善するだけで、より高い結果を得ることができます。



ヘルメットがないことの検出器を作成するというタスクが発生したとき( 「ビデオ監視用製品の開発におけるCustdev」の記事で詳しく説明されています )、従来の方法を使用してそれを解決する方法をすぐには理解しませんでした 。 ニューラルネットワークを使用してこれを実行できるかどうかを確認することにしました。 そして一般的に、現代のニューラルネットワークは本当にとても良いのでしょうか?



そのため、検出器の作業は、人の頭を見つけて、ヘルメットが付いているかどうかを判断することまで減らす必要があります。 開発プロセスでは、2つの方法で問題を解決しようとしました



ニューラルネットワークは、ヘルメットの存在によって2種類の人々を正確に区別する必要があることを事前に知りません。 彼女が持っているのは2組の画像(ヘルメットを着用している人とヘルメットを着用していない人)であり、彼女はこれらの2組を区別できる標識を見つけようとします。 彼女はどの写真がどのセットに対応するかを知っていますが、その理由を知りません。そして、できるだけ頻繁に正しい答えをすることができるように、自分のパラメーターを選択しようとします。



私の方法



最初に、私たちは画像をニューラルネットワークに送信しました。このネットワークでは、人々は完全な高さでフレームに落ちました。 すぐに十分な精度が得られないのではないかと心配していましたが、うまくいけば、開発は可能な限り迅速かつ簡単になります。







恐怖が確認されました。そのような写真では、ニューラルネットワークは実際には学習できませんでした-新しいテストセットでヘルメットを見つける精度は約70%でした。 モジュールが機能することはまったく受け入れられませんでしたが、同時に、ニューラルネットワークを使用して問題を解決できることが証明されました。



一般に、ヘルメット検出器の精度は、感度(ヘルメットのない人を「捕まえる」の責任)と誤検知の割合(ヘルメットに誤って人を「捕まえる」の責任)で構成されます。 検出器が使用される実際の企業では、ほとんどの場合、人々はヘルメットを着用しているため、誤検出がわずかな割合であっても、出力で大量の誤ったデータになります。



精度が初期ベンチマークとして採用されました。感度の60%以上、誤検知の3%以下です。 実際、これらは深刻な要求でした。



人物の全身画像でトレーニングを行うと、このような精度を達成できませんでした。 おそらく、そのような写真には、ヘルメットをかぶった人やヘルメットをかぶっていない人の頭に加えて、ニューラルネットワークが「気を散らしている」要素が他にもたくさんあるという事実に影響を受けました。



II法



身長全体ではなく、頭のみ(ヘルメットの有無にかかわらず)を見せれば、ニューラルネットワークを支援できると判断しました。 頭部の画像を強調するために、長い間モジュールの1つに記述された適切な分類器を適用し、その作業結果を使用して新しい畳み込みニューラルネットワークをトレーニングしました。





ところで、実践では、ニューラルネットワーク内にいくつの層とニューロンがあるかはそれほど重要ではないことが示されており、一般にそのパラメーターはそれほど重要ではありません。 主なものは、トレーニングサンプルの品質です。 大規模で多様なサンプルでは、​​成功の可能性が高く、小規模なサンプルでは、​​ニューラルネットワークは単純に正しい答えを覚えていますが、一般化する能力は得られず、新しい写真で正しい答えを与えることはできません。



サンプルのサイズは中くらい(ヘルメットを着用し、ヘルメットを着用していない頭部の数千枚の写真)、さまざまな色とわずかに異なる形状のヘルメットが含まれていました。 結果を改善し、再トレーニングを回避するために、増強(トレーニングサンプルの人工的な拡張)と正則化(ニューラルネットワークのパラメーターの制限)の手法に真剣に取り組む必要がありました。 その結果、テストサンプルでは、​​精度は85〜88%に達しました。 これは良い指標ですが、エラーをさらに減らすために、後処理を行いました:ヘルメットのない人と「アラーム」を出力する必要があるという決定は、1つのフレームではなく、連続した複数のフレームの個々の人の分析の結果によって行われます。



また、テスト中、頭部検出器の動作にあまり満足していなかったため、ニューラルネットワークを使用して、画像で見つかった頭部を改良しました。 実際、1つの場合と他の場合では、これは1つのネットワークではなく、精度を高めるためにいくつかがカスケードに組み合わされています(ただし、ここでは単にニューラルネットワークと呼びます)。



ニューラルネットワークでは、分類タスクで実証されている古典的な畳み込みアーキテクチャを採用しました。 しかし、彼らは最も近代的で複雑なものを含むさまざまなアーキテクチャを試してみました-何億ものパラメータを持つ何百ものレイヤーから。 基本的に、ニューラルネットワークの複雑さにより、結果は改善しませんでした。 私たちの経験では、Vapnik-Chervonenkisの定理が機能することを確認しました。分類器の複雑さは問題の複雑さに対応する必要があります。 分類子が複雑すぎる場合、すべての回答が単純に記憶され、機能しません。 彼があまりにも単純な場合、彼は学ぶことができません。



ヘルメットを検出するという比較的単純なタスクを解決するのに十分なかなり単純なニューラルネットワークがありました。



2番目の方法が最も効果的でした。 その結果、問題を解決し、



1)2.5か月間、テスト用の最初のオブジェクトに移動する作業モジュールを開発しました。 推定では、古典的な方法による開発には少なくとも6か月かかります。



2)ヘルメットの不在の検出器で、異なるデータでトレーニングされた2セットのニューラルネットワークを使用します。 最初はフレーム内の人々の頭を見つけ、2番目はこの頭がヘルメットにあるかどうかを判断します。



3)宣言された精度のしきい値に達しました-誤検知の1.5%に対して感度の60%以上。



結論:ビデオ分析の問題を解決するためにニューラルネットワークを使用することは可能であり、さらに必要です。特に、人のヘルメットがないことを検出します。



最初に成功した経験は論理的な疑問を提起します 。今、ニューラルネットワークを使用して開発するビデオ分析のすべてのモジュールですか? そして、それに答えることは間違いなく難しいです。

ニューラルネットワーク上では、現在そのポイントが見えていないモジュールが翻訳にあります。 なぜなら、すべてが古典的な方法でとてもうまく解決されているからです。 たとえば、訪問者のカウント(特に新しい3D実装)。 現在では、マシンビジョンの従来の方法で非常にうまく機能し、98%の精度に達します。 そして、ニューラルネットワークを使用した場合、それらが機能するかどうかはまだわかりません。 しかし、ニューラルネットワークは、煙と火の検出に間違いなく適しています。



ビデオ分析におけるニューラルネットワークの適用可能性の基準を推定する場合、次のように定式化できます:使用する属性と方法が事前に明確な場合は、「クラシック」で取得できます。そうでない場合は、ニューラルネットワークを試すことができます。



3Dカウントには良い兆候があります-これはポイントまでの距離です。 または、放棄されたオブジェクトの検出器では、たとえば、オブジェクトの境界上の特別なポイントで、それを追跡して比較したり、アウトラインを見つけたりするのも簡単です。 しかし、火事では、どの兆候を取るべきかは明確ではありません。 色? -常に火と同じ色のものがあります。 フォーム? -火は最も多様な形をとることができます。 時間のちらつき? -しかし、それがどうあるべきかは明確ではありません。 ここで事前に兆候を見つけ出すことは悲惨なことなので、ニューラルネットワークでそれを改善しましょう。



しかし、タスクに戻ります。



それで解決します。 回答と関連する結論が得られました。










All Articles