この記事は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がスマート交通建設を推進し、警察ドローンの高速任務を加速
>>: 機械学習アルゴリズムのコレクション: ベイズ学習からディープラーニングまで、それぞれの長所と短所
Horizon Roboticsは1月22日、純粋な視覚ベースの自動運転アルゴリズムであるSpa...
ディープラーニングを使用して株価を予測することは、以前は少し神秘的に思えたかもしれませんが、新しいこ...
今のところ、AI とブロックチェーン技術がもたらす可能性について聞いたことも、気付いていないのであれ...
さまざまな依存環境によって常に荒廃していますか?コンピューターと携帯電話の両方で実行できる、C++ ...
[[354085]]人工知能 (AI) はもはや初期段階ではなく、影響力のある結果をもたらす重要なビ...
8月29日、国家発展改革委員会、科学技術部、工業情報化部、中国サイバースペース管理局、中国科学院、...
7月13日、新たな訴訟で、Googleがチャットボット「バード」などの人工知能(AI)製品のトレーニ...
環境保護の重要な部分として、都市環境衛生はますます重視されています。衛生産業をうまく発展させ、衛生業...
中国国家郵政局が2020年10月に郵便業界標準「ドローン速達サービス仕様」について通知したことを覚え...
ビッグニュース!連邦取引委員会の調査が始まります!調査の対象は、人気の OpenAI に他なりません...
[[202011]]クレタ島を海賊や侵略者から守るために、人々は巨大な青銅の戦士タロスを創造しました...