MobileNetは、スマートフォンの出現をサポートするために作成されたオープンソースモデルです。 CNNアーキテクチャを使用して、画像分類やオブジェクト検出などのコンピュータービジョンタスクを実行します。このアーキテクチャを使用するモデルには通常、多くの計算コストとハードウェアリソースが必要ですが、MobileNetはモバイルデバイスと埋め込みで作業して作られました。
長年にわたり、このモデルはさまざまな現実世界のアプリケーションに使用されてきました。また、深度分離の畳み込みを使用してパラメーターを削減するなど、いくつかの機能もあります。したがって、モバイルデバイスのハードウェアリソースが限られているため、この手法はモデルを機能させるのに役立ちます。このモデルが、事前に訓練された予測クラスを使用して画像を効率的に分類する方法を深さでどのように分類するかについて説明します。
学習目標
データサイエンスブログの一部として公開されました。 目次 MobileNetの動作原理標準的な告発
深さとポイントワイズの畳み込み作業はどのように機能しますか?画像画像分類のために事前に訓練されたモデルをロードするしかし、これには計算コストが高く、パラメーターカウントが増加するため、深さと点ごとの畳み込みが必要です。
したがって、ここでの違いは、深さに単一のフィルターのみを適用すると、乗算タスクが削減されることです。つまり、出力は入力と同じ数のチャネルを持っていることを意味します。これは、ポイントワイズの畳み込みにつながります
tbeポイントワイズコンボリューションは、機能を組み合わせたり拡張したりする1×1フィルターを使用します。これにより、モデルがチャネル機能に分配されるさまざまなパターンを学習して、新しい機能マップを作成するのに役立ちます。これにより、ポイントワイズの畳み込みは、出力機能マップのチャネルの数を増やすか減少させることができます。MobileNet Architecure
このコンピュータービジョンモデルは、画像分類とオブジェクト検出タスクを実行するためにCNNアーキテクチャに基づいて構築されています。深さに分離可能な畳み込みの使用は、軽量の深いニューラルネットワークの構築を可能にするため、このモデルをモバイルおよび埋め込みデバイスに適応させることです。
このメカニズムは、リソースの制約を満たすために、パラメーター数とレイテンシの削減をもたらします。アーキテクチャにより、モデルの出力の効率と精度が可能になります。 このモデルの2番目のバージョン(MobileNETV2)は、強化により構築されました。 MobileNet V2は、ボトルネックを使用して反転した残差と呼ばれる特別なタイプのビルディングブロックを導入しました。これらのブロックは、処理されたチャネルの数を減らすのに役立ち、モデルをより効率的にします。また、情報の流れを改善するためのボトルネック層間のショートカットも含まれています。最後のレイヤーで標準のアクティベーション関数(RELU)を使用する代わりに、線形アクティベーションを使用します。これは、データの空間サイズがその段階で低いため、より適切に機能します。 このモデルの実行方法 画像分類にこのモデルを使用するには、いくつかのステップが必要です。モデルは、組み込み予測クラスを使用して入力画像を受信および分類します。 MobileNetの実行方法についてのステップに飛び込みましょう:このモデルを実行するには、いくつかの重要なモジュールをインポートする必要があります。これは、トランスライブラリから画像プロセッサと画像分類モジュールのインポートから始まります。それらは、画像を事前に処理し、事前に訓練されたモデルをそれぞれロードするのに役立ちます。また、PILは画像の操作に使用されますが、「リクエスト」を使用すると、Webから画像を取得できます。
from transformers import AutoImageProcessor, AutoModelForImageClassification from PIL import Image import requests
image = Image.open('/content/imagef-ishfromunsplash-ezgif.com-webp-to-jpg-converter.jpg')
関数「Image.Open」は、PILライブラリから使用され、ファイルパスから画像をロードします。この場合、ローカルデバイスからアップロードされました。もう1つの選択肢は、URLを使用して画像を取得することです。
画像分類のために事前に訓練されたモデルをロードする
入力処理
preprocessor = AutoImageProcessor.from_pretrained("google/mobilenet_v2_1.0_224") model = AutoModelForImageClassification.from_pretrained("google/mobilenet_v2_1.0_224")
inputs = preprocessor(images=image, return_tensors="pt") outputs = model(**inputs) logits = outputs.logits
# model predicts one of the 1000 ImageNet classes predicted_class_idx = logits.argmax(-1).item() print("Predicted class:", model.config.id2label[predicted_class_idx])
ここにcolabファイルへのリンクがあります。
このモデルのアプリケーション
covidパンデミック中に、MobileNetを使用して、胸部X線を3つに分類しました:正常、covid、およびウイルス性肺炎。結果は非常に高い精度もありました。
農業では、このモデルはトマト作物の葉疾患を検出する上でも重要でした。したがって、モバイルアプリケーションを使用すると、このモデルは10の一般的な葉疾患を検出するのに役立ちます。
q1。他のCNNモデルとMobileNETV2の違いは何ですか? MobileNETV2は、深さごとの分離可能な畳み込みと倒立残差を使用しているため、従来のCNNと比較してモバイルおよび埋め込みシステムにより効率的です。 MobileNETV2はリアルタイムアプリケーションに使用できますか?
ans。 MobileNETV2は、低遅延およびリアルタイムの画像分類タスクに最適化されており、モバイルデバイスとエッジデバイスに適しています。 MobileNetv2は、より大きなモデルと比較してどれくらい正確ですか? ans。 MobileNETV2は効率のために最適化されていますが、より大きなモデルに近い高精度を維持しているため、モバイルAIアプリケーションに強い選択肢になります。 MobileNetv2は、より大きなモデルと比較してどれくらい正確ですか? MobileNETV2は効率のために最適化されていますが、より大きなモデルに近い高精度を維持しているため、モバイルAIアプリケーションに強い選択肢になります。以上がMobileNETV2モデルで画像分類を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。