この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。 コンピュータビジョンの基礎としての画像セグメンテーションは、画像理解の重要な部分であり、画像処理における難しさの 1 つです。 では、画像をエレガントかつ適切に分割するにはどうすればよいでしょうか? わずか 5 行のコードで数分で実装できるライブラリ、 PixelLibをご覧ください。 もちろん、このような有用なプロジェクトにはオープンソースが必須です。 画像セグメンテーションを使用する理由は何ですか?コンピューター ビジョンの研究者は、画像セグメンテーションの問題に頻繁に遭遇しますが、それでも、初心者の便宜のために、その「詳細な説明」を行う必要があります。 各画像はピクセル値のセットで構成されていることは誰もが知っています。簡単に言えば、画像セグメンテーションはピクセルレベルで画像を分類するタスクです。 画像セグメンテーションで使用される「独自のトリック」のいくつかにより、いくつかの重要なコンピューター ビジョン タスクを処理できるようになります。主に2つのカテゴリーに分かれています:
重要なシーンで頻繁に登場します。
したがって、画像セグメンテーション技術の応用は依然として非常に重要です。 次に、早速本題に入り、この魔法のような使いやすいライブラリ、PixelLib について学習してみましょう。 PixelLibのクイックインストールPixelLib は、画像のセグメンテーションを非常に簡単にするライブラリです。セマンティック セグメンテーションとインスタンス セグメンテーションは、わずか 5 行のコードで実現できます。 いつものように、まずはインストール環境の紹介をさせていただきます。 TensorFlow、Pillow、OpenCV-Python、scikit-image、PixelLib の最新バージョンをインストールします。
PixelLibはセマンティックセグメンテーションを実装しますセマンティック セグメンテーション タスクを実行する場合、PixelLib は Deeplabv3+ フレームワークと pascalvoc で事前トレーニングされた Xception モデルを使用します。 pascalvoc で事前トレーニングされた Xception モデルを使用してセマンティック セグメンテーションを実行します。
コードの各行を見てみましょう。
セマンティックセグメンテーションを実行するために使用されるクラスがpixellibからインポートされ、クラスのインスタンスが作成されます。
関数を呼び出して、pascal voc でトレーニングされた xception モデルをロードします (xception モデルは、記事の最後にあるリンクからダウンロードできます)。
これは画像をセグメント化するコード行です。この関数には 2 つのパラメータが含まれます。
次に、写真を見て何が起こっているのか見てみましょう。 画像ファイルの名前は、下の図に示すように、sample1.jpg です。 実行コードは次のとおりです。
コードを実行すると、保存された画像内のすべてのオブジェクトがセグメント化されていることがわかります。 コードを少し変更して、対象オブジェクトのセグメンテーションオーバーレイを含む画像を取得することもできます。
セグメント化されたオーバーレイを含む画像を生成するために、追加のパラメータが追加され、True に設定されます。 以下のコードを変更することで、セグメンテーションを実行するために必要な推論時間を確認できます。
出力は次のようになります。
ご覧のとおり、画像に対するセマンティックセグメンテーションの実行にはわずか 8.19 秒しかかかりませんでした。 この Xception モデルは、20 個の一般的なオブジェクト カテゴリを含む PascalVOC データセットを使用してトレーニングされます。 オブジェクトとそれに対応するカラーマップを以下に示します。 PixelLibはインスタンスセグメンテーションを実装するセマンティックセグメンテーションの結果は良さそうに見えますが、画像セグメンテーションの特定のタスクには理想的ではない可能性があります。 セマンティック セグメンテーションでは、同じカテゴリのオブジェクトに同じカラーマップが割り当てられるため、セマンティック セグメンテーションでは特に十分な画像情報が提供されない可能性があります。 このようにして、インスタンス セグメンテーションが誕生しました。同じカテゴリのオブジェクトには異なるカラーマップが割り当てられます。 PixelLib がインスタンスのセグメンテーションを実行するときは、Mask RCNN フレームワークに基づいています。コードは次のとおりです。
もう一度、まずコードの各行を分解してみましょう。
インスタンス分割を実行するためのクラスがインポートされ、クラスのインスタンスが作成されます。
これは、インスタンスのセグメンテーションを実行するために Mask RCNN モデルをロードするコードです (Mask RCNN モデルは、記事の最後にあるリンクからダウンロードできます)。
これは画像に対してインスタンスのセグメンテーションを実行するコードであり、次の 2 つのパラメータが必要です。
上の写真は実戦2ラウンド目の様子です! 画像ファイルの名前は、下の図に示すように、sample2.jpg です。 実行コードは次のとおりです。
上の画像はディレクトリに保存された画像です。これで、セマンティック セグメンテーションとインスタンス セグメンテーションの明らかな違いがわかります。インスタンス セグメンテーションでは、同じカテゴリのすべてのオブジェクトに異なるカラーマップが割り当てられます。 境界ボックスを使用してセグメンテーションを実装する場合は、コードを少し変更します。
この方法では、セグメンテーション マスクと境界ボックスを含む保存された画像が得られます。 同様に、コードを通じてインスタンス セグメンテーションの推論時間を照会することもできます。
出力は次のようになります。
ご覧のとおり、画像のインスタンスのセグメンテーションを実行するには 12.55 秒かかります。 最後に、プロジェクトとモデルのダウンロード アドレスを示します。ぜひ試してみてください。 ポータルPixelLib プロジェクト アドレス: xception モデルのダウンロード アドレス: Mask RCNN モデルをダウンロードします: |
<<: AIがスマート交通建設を推進し、警察ドローンの高速任務を加速
>>: 機械学習アルゴリズムのコレクション: ベイズ学習からディープラーニングまで、それぞれの長所と短所
機械学習では数学が非常に重要です。アルゴリズムにおけるモデルコードの理解と、エンジニアリングにおける...
[[380661]] [51CTO.com クイック翻訳] 会話型 AI により、アプリケーションは...
AI の力を活用することで、人事チームは複雑な課題に対処し、効率性を向上させ、前向きな職場環境を育む...
学習に関しては、GPT-4 は優れた生徒です。大量の人間のデータを消化することで、さまざまな知識を習...
今日、ほぼすべての分野やビジネスが何らかの変革を遂げており、多くの企業がデジタル技術の波の推進力を受...
[[252987]] AIは徐々に成熟し、さまざまな産業に導入され、人々の生活を微妙に変えています。...
敵対的生成ネットワーク (GAN) は、非常に幅広い応用が期待できる非常に強力なタイプのニューラル ...
コンピュータービジョンはアメリカ手話を学習して聴覚障害者を助けることができるでしょうか?データサイエ...
膨大な数の演算回路を搭載した NVIDIA GPU により、AI、高性能コンピューティング、コンピュ...
11月5日、Wave Summit+2019 Deep Learning Developer Sum...
[[385257]]ビッグデータダイジェスト制作出典: iflscience編集:赤道のパンダボデ...