Licenzero:シンプルな動き

 この投稿では、ポルノフィルターの作成方法に関する一連の記事を続けます。 次に、フレーム内の特徴的な動きによってポルノコンテンツを分類する試みに焦点を当てます。



それはすべて会話からの冗談として始まりました。 確かに、ポルノの動きを分類することは簡単ではありません-それらは共通点を見つけるにはあまりにも異なっています。 しかし、試してみましたが、結果は完全に私たちに合っており、モーションディテクタはポルノビデオコンテンツの一般的な分類に置き換わりました。



もう一度分類について



ほとんどの機械学習システムの動作原理は非常に簡単です。 オブジェクトをクラスAとBに分類するために、何らかの方法で測定できるいくつかの機能の組み合わせとしてオブジェクトを説明します。 次に、特定のオブジェクトの属性の具体的な値を代入すると、クラスAのオブジェクトに値> 0、クラスBのオブジェクトに値<0を与える式または式を統計的に導出します。



たとえば、赤キャビアと黒を自動的に区別したいとします。 標識は卵の色と大きさです。 黒キャビアと赤キャビアの卵をいくつか選択して測定し、チャートに状況を反映します。



破線は、オブジェクトの2つのクラスをよく分離しています。 赤キャビアは黒より大きくて軽いことがわかります。 この行の式を作成してみましょう。例えば:



z =サイズ* c1-色* c2 + c0、

ここで:

c1とc2は、観測結果に従って統計的に選択されたいくつかの係数です。

c0は定数です。



さらに、未知の卵があるため、式でそのサイズと色を代入します。z> 0の場合、キャビアは赤、z <= 0の場合は黒です。



これは、もちろん広く知られています。 膨大な数の分類アルゴリズムがあります。 たとえば、検出器を作成するとき、次のような方法を使用しました。



そこで、ポルノの断片を分類する最初の機能に移ります。これが運動の性質です。 おそらく、性交を描写するシーンがフレーム内のオブジェクトのリズミカルで反復的な動きによって特徴付けられることを誰も否定しないでしょう。 それらを探します。



運動解析



よく知られ一般的に使用されている運動解析の方法の1つは、オプティカルフローです。 たとえば、オプティカルフローの実装は、有名なOpenCVライブラリにあります。 動作の原理は、MPEG形式でビデオをエンコードするときの動きベクトルの検索に似ています-1つのフレームで画像の一部が選択され、次のフレームで検索されます(たとえば、 SADメソッドを使用)。 オブジェクトの動きは、フレーム間の画像の断片の変位に対応します。



しかし、自宅でオプティカルフローを実装しようとすると、次のことがわかりました。

つまり、私たちは私たち自身の道を行くことに決めました。



私たちと同じ



移動の方向を決定するために、畳み込み演算と加算演算の使用に基づく時空フィルターを使用しました。 このアプローチは、たとえばこの開発で使用されます。 この方法は広く使用され始めたばかりであり、私たちは実際にこの方法を使用した最初の研究者の一人です。 特に、上記のリンクで説明されているプロジェクトに参加している人々とチャットする機会がありました。 この機会を利用して、実装に関する詳細な協議と支援に感謝します。



単純な2次元の例で畳み込みの使用について説明します。 グラフィックエディターでエッジ検出操作を画像に適用するとします。



グラフィックスエディターは3x3マスクを作成し、各ピクセルから開始して画像に適用し、対応する数値を乗算し、乗算結果を要約します。 結果は1つの数字です-マスク下の信号はマスク自体に似ているため、それ以上であると言えます。



 同様に、3次元空間(フレーム内のピクセルの2次元座標+ 3番目の次元としての時間またはフレーム番号)では、使用したフィルターも機能します。



私たちがすること:



下の図は、ポルノ映画の小さな抜粋でモーションフィルターを操作した結果を示しています。 ビデオホスティングサイトの禁止を回避するために、ビデオ自体をWebサイトに掲載しています。 中央の画像は、ビデオの現在のフレームです。 周囲の写真は、一連のフレームをフィルターでフィルタリングした結果です。 各結果は、選択された12の移動方向のいずれかに対応します。 緑の曲線は、数十フレームにわたる各方向の移動量のグラフです。







ポルノ動画の特徴的な動きは、特徴的で容易に認識可能な曲線で表されていることが注目に値します。 また、この曲線から、ビデオ内の文字数とその動きの方向と速度を推定できます。



上記のビデオ例では、2人の参加者が反対方向に移動しています。 緑の曲線上の大きな周期的なバーストは、左への人間の強い動きに対応しています。 小さな破裂は、女性の相互の動きに対応し、男性の弱い、戻りの動きに対応します。



ビデオに参加者が1人だけの場合(これはビデオチャットでよく見られます)、曲線には2番目のバーストがなく、正弦曲線を連想させ、分析が容易です。 3人以上の参加者の場合、状況は非常に複雑です。 あなたはおそらく、パートナーのめったに出会わない行動のいくつかは数学的にモデル化できず、口頭で説明することすらできないことに同意するでしょう。



動作速度を使用して、行動時間を推定できます。 ビデオの終わりに近づくと、動きの振幅が増加し、周期が減少することがデータで顕著です。 (この評価は興味深いものですが、信頼性が低く、実際には使用していません)。



運動分類



上記の曲線を取得した後、最後の手順を実行します-ポルノ素材に対応する曲線を他の曲線と区別するようにコンピューターに教えることです。 2つの方法を試しました。



曲線を評価するには、ベイズ法に基づいた既存の言語スパムフィルタリングシステムを使用できます。 各曲線は、次のように一連の「単語」に変換できます。

  1. 単語の長さを選択します。 各単語は、たとえばビデオから3秒に相当します。
  2. 各時間間隔で曲線の振幅の平均値を見つけます。
  3. 各フレームで、平均より上の曲線の各振幅に対して、「単語」に「文字」1を追加し、平均より下の各振幅に「文字」0を追加します。


したがって、ビデオは「単語」のセットになります。 0110011に似た言葉は、ポルノビデオでよく見られます。



ビデオをこのような「単語」のセットの形式の説明に変えた後、ポルノをフィルタリングするために通常のスパムフィルターをトレーニングすることは、単なるテクニックの問題です。



SVMも試してみましたが、ソースデータの特定の性質のため、スパムフィルターを使用しました。



分類精度



どの自動分類システムも、100%正しい結果を出しません。 モーション推定のみを使用して、78.3%の分類精度を達成しました。



それはたくさんまたは少しです。 一方では、これはそれほど多くありませんが、それでもエラーは非常に高くなります。 しかし、ここではいくつかの点に注意する価値があります。



もちろん、仕事の過程でいくつかの奇妙な点がありました。 モーション検出器が非常にポルノ的であると記録するムービーの例を次に示します。 私たちはすぐに自宅で彼を「メカニックはジンバルとセックスします」と呼びました。







モーション検出器の結果が表示される同じページに、検出器が誤っているビデオの例がまだあります。



All Articles