オブジェクト検出の実践ラボ!AIチームの冒険 | エピソード02 | Intel Software
朗读文本内容:"皆さん、こんにちは。今日はオブジェクト検出について深く掘り下げていきます。私たちはビデオで見たように、この背後で取り組んでおり、今日はAdrianが開発したソースコードと私が開発したカーゴコードの両方を紹介します。これらの素材を使って、自宅で試すか、AIについてさらに学ぶことができます。画面を表示して、ここでどのように機能するかと、どのように使用することができるかを説明します。画面に表示されているのは、ノートブックです。ノートブックは、ソースコードがPythonで書かれているため、非常に理解しやすく読みやすい方法の一つです。また、必要なドキュメントも提供しています。今日行うオブジェクト検出では、MobileNetV3-SSDを使用します。これが分からない場合は心配しないでください。このリンクをクリックすると、詳細な説明と論文を読むことができます。より重要なのは、モデルの入力と出力、使用されているデータセットなどの基本原則を把握することです。それでは、宿題として残しておきます。ここで説明した方法を使えば、環境に入ると、OpenVINOとモデル用のリポジトリからモデルをダウンロードするための手順が実行されます。このモデルはサイズを変換し、パフォーマンスが向上します。ダウンロードが完了したら、モデルを読み込みます。これは標準的なコードですが、OpenVINOを使い慣れると、理解できるようになります。モデルを読み込んだら、どこに配置するかを定義します。この例では、CPUに配置して実行することができます。GPUやその他のIntelの対応デバイスを使うこともできます。このモデルでできることは何でしょうか。オブジェクト検出の例では、90のカテゴリのオブジェクトを認識できます。鳥や猫、馬、羊、牛などです。具体的には、牛の検出について詳しく説明します。それでは、結果を見てみましょう。ウェブカムでリアルタイムにオブジェクト検出を実行しています。録画もしていますが、今は少し遅く見えるかもしれません。ただ、お持ちのノートパソコンやウェブカムでは、はるかに高速なパフォーマンスを得ることができます。ウェブカムだけでなく、ビデオでも実行できます。監視カメラなどのオフラインビデオや、牛の位置を追跡したいプロジェクトなど、さまざまな用途に使用できます。では、実際のコード自体について説明しましょう。オブジェクト検出を実行するために、OpenCVを使ってウェブカムの映像をキャプチャし、フレームごとにリサイズしてネットワークに入力します。このリサイズは非常に重要です。イメージのサイズをネットワークに合わせる必要があります。入力のサイズは300×300ピクセルで、3チャンネルとなっています。これがネットワークに合致するようにリサイズしています。画像をモデルに投入し、結果を得るために、この処理を行います。結果の処理は、ボックスの描画です。ただし、非最大値抑制という処理を行わないと、ボックスがたくさん表示されてしまいます。ネットワークは、この領域がフレームであり、この領域が犬であると判断しますが、少し動くとまだ犬だと判断してしまうためです。したがって、重複したボックスの中から最も目立つボックスを見つけ出すために、非最大値抑制という方法を用います。ソースコードをこちらに示しますので、参照してください。以上です。この方法を使って、異なるモデルに対応するためのコードを簡単に作成できます。例えば、YOLOなどを使うこともできます。構造は非常に似ていますが、モデルのサイズや出力については異なることがあります。しかし、少なくとも、正しい場所にたどり着くための構造はわかります。開発者としては、ポータブルな作業ができることが重要です。実際に、このコードをKaggleプラットフォームに持ち込んで、デモンストレーションしてみました。これが、同じ作業のほぼ同じ例ですが、Kaggleで動作するように書き換えたものです。実際にご覧ください。ほとんど同じですが、サーバー上でのプリインストールを行いました。ここで、一度だけインストールを行いました。その他は、先ほど紹介したものと非常に似ています。ライブラリやモデルのインポート、変換などが必要です。面白いのは、この結果を元にラッパーを書き換えました。これで、任意のデータセットから自分の画像を入力できます。例えば、猫や犬のデータセットを使って試してみることができます。画像を追加し、パスを置き換えることで、異なる例を試すことができます。ここで試してみましょう。なるほど、これは犬を検出しました。さらに興味深いですね。これは、犬のようにも見えますが、はっきりしないですね。これは、新しいネットワークには正確に合わないデータセットを持っているかもしれません。Kaggleを使って、自分の作業を検証し、モデルが必要な動作をしているか確認することができます。どのニューラルネットワークも完璧ではありません。完璧とは、100%の正確さを意味しません。ここで、ケースごとの失敗を見つけ出し、そこから学ぶことが、データサイエンティストとして成長するために重要です。今夜、自分の画像を使って様々なものを検出するために、このコードをコピー&ペーストして試すことができます。チュートリアルはこれで終了です。私の説明から何かを学んでくれたことを願っています。どんな質問でもあれば、ソースコードをチェックしてコメントを残してください。皆さん、ありがとうございました。"