10行のPythonコードで画像認識

10行のPythonコードで画像認識

[[226981]]

ディープラーニングアルゴリズムの台頭と普及により、人工知能の分野、特にコンピュータービジョンの分野では目覚ましい進歩を遂げています。 21 世紀の次の 10 年間では、畳み込みニューラル ネットワークが急速に導入され、最先端のアルゴリズムが発明され、大量のトレーニング データが利用可能になり、高性能でコスト効率の高いコンピューティングが発明されました。コンピューター ビジョンにおける重要な概念は画像分類です。これは、ソフトウェア システムが画像内の主要なオブジェクトに正しくラベルを付ける機能です。

ImageAI は、開発者が自己完結型のコンピューター ビジョン機能を備えたアプリケーションやシステムを構築できるように設計された Python ライブラリです。

1. Python 3.5.1以上をインストールし、pip

(すでに Python 3.5.1 以降がインストールされている場合は、このセクションをスキップしてください)

https://www.python.org/downloads/

2. ImageAIの依存関係をインストールする

- テンソルフロー

  1. pip3 インストール--upgrade tensorflow  

- ナンピー

  1. pip3 numpy をインストール

- サイパイ

  1. pip3 scipy をインストール

- オープンCV

  1. pip3 opencv-python をインストール

- マトプロットライブラリ

  1. pip3 matplotlib をインストール

- h5py

  1. pip3 h5pyをインストール

- ケラス

  1. pip3 keras をインストール

3. ImageAIライブラリをインストールする

pip3 インストール https://github.com/OlafenwaMoses/ImageAI/raw/master/dist/imageai-1.0.2-py3-none-any.whl

4. ImageNet-1000 データセットでトレーニングされた ResNet モデル ファイルをダウンロードし、そのファイルを Python プロジェクト フォルダーにコピーします。

https://github.com/fchollet/deep-learning-models/releases/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5

5. Python ファイル (たとえば、「FirstPrediction.py」) を作成し、次のコードを記述します。

  1. imageai.PredictionからImagePrediction をインポートします 
  2. インポートOS  
  3. 実行パス = os.getcwd()  
  4. 予測 = ImagePrediction()  
  5. 予測モデルタイプをResNetとして設定する()  
  6. 予測.setModelPath( 実行パス + " esnet50_weights_tf_dim_ordering_tf_kernels.h5 " )  
  7. 予測.loadModel()  
  8. 予測、percentage_probabilities = prediction.predictImage( "C:UsersMyUserDownloadssample.jpg" 、result_count=5)  
  9. のために 索引 範囲(len(予測)):  
  10. print(予測[インデックス] + " : " + パーセンテージ確率[インデックス])

サンプル.jpg

[[226982]]

コード結果:

  1. スポーツカー : 90.61029553413391  
  2. 車の車輪: 5.9294357895851135  
  3. レーサー: 0.9972884319722652  
  4. コンバーチブル: 0.8457873947918415  
  5. グリル: 0.581052340567112

コードの説明

それでは、コードがどのように機能するかを理解できるように、コードを分解してみましょう。上記のコードは次のように動作します。

  1. imageai.PredictionからImagePrediction をインポートします 
  2. インポートOS

上記のコードは、ImageAI ImagePrediction クラスと Python os クラスをインポートします。

  1. 実行パス = os.getcwd()

上記のコードは、Python ファイル (この場合は FirstPrediction.py) と ResNet モデル ファイルを含むパスへの参照を保持する変数を作成します。

  1. 予測 = ImagePrediction()  
  2. 予測モデルタイプをResNetとして設定する()  
  3. 予測.setModelPath(実行パス + "resnet50_weights_tf_dim_ordering_tf_kernels.h5")

上記のコードでは、1 行目で ImagePrediction() クラスのインスタンスを作成し、2 行目で .setModelTypeAsResNet() を呼び出して予測オブジェクトのモデル タイプを ResNet に設定し、3 行目で予測オブジェクトをモデル ファイル (resnet50_weights_tf_dim_ordering_tf_kernels.h5) のパスにコピーしてプロジェクト フォルダーにコピーするようにモデル パスを設定しています。

  1. 予測、percentage_probabilities = prediction.predictImage( "C:UsersMyUserDownloadssample.jpg" 、result_count=5)

上記の行では、画像を予測するために呼び出される関数に等しい 2 つの変数を定義しています。この関数は .predictImage() 関数で、画像のパスを解析し、取得する予測結果の数 (1 ~ 1000 の値) も示しています (result_count = 5 を解析)。 .predictImage() 関数は、最初の ***(配列 2 予測) が予測値で、2 番目(配列 percentage_probabilities)が各予測に対応するパーセンテージ確率の配列であるオブジェクトを返します。

  1. のために 索引 範囲(len(予測)):  
  2. print(予測[インデックス] + " : " + パーセンテージ確率[インデックス])

上記の行は、予測配列内の各オブジェクトを取得し、さらに percentage_probabilities から対応するパーセンテージ確率を取得し、両方の結果をコンソールに出力します。

.predictImage() 関数は、画像へのパスを受け取り、関数が返す予測の数も指定します (オプション、デフォルトは 5)。 ImageNet-1000 データセットには 1000 個の項目があり、ResNet モデルはこのデータセットでトレーニングされたため、.predictImage 関数は確率順にランク付けされた 1000 個の可能な予測を返します。

ImageAI を使用すると、Python で構築したあらゆるアプリケーション、Web サイト、システムに画像予測コードを簡単かつ便利に統合できます。 ImageAI ライブラリは追加のアルゴリズムとモデル タイプをサポートしており、速度に最適化されたものもあれば、精度に最適化されたものもあります。 ImageAI では、特殊な環境や特殊な分野での画像認識、カスタマイズされた画像予測など、コンピューター ビジョンのより専門的な側面をサポートしたいと考えています。

<<:  2018 年に知っておくべき 15 の人工知能統計

>>:  Facebookのスマートスピーカー「フィオナ」と「アロハ」が今月下旬に発売される

ブログ    
ブログ    

推薦する

AI がどのようにして人々に結婚や勉強をするように説得できるかを見てみましょう。

[[361065]]いたずら好きな老人の周伯同は、黄耀師によって桃花島に十数年閉じ込められていまし...

組み込みおよびベクターデータベースの実践ガイド

翻訳者 |ブガッティレビュー | Chonglouこの革命の中心にあるのは、ベクター データベースの...

ロボットコーチ+模擬運転、焦作全通自動車学校が運転訓練の先駆者

人工知能の発展に伴い、ロボット教育は全国の運転訓練業界で徐々に登場してきました。新しい時代の要求に適...

AIキーストロークパターン検出によるパスワードの認識を防ぐ方法

著者: Vision NP翻訳者:陳俊レビュー丨Chonglou最近、比較的隠れていたネットワーク ...

AIを新たな段階へ導くYLearn因果学習オープンソースプロジェクトがリリース

2022年7月12日、九張雲済DataCanvas社は、もう一つの画期的なオープンソース技術成果であ...

マイクロソフトが Project Brainwave リアルタイム AI プラットフォームの詳細を公開

Project Brainwave は、主にリアルタイムの人工知能アプリケーションを対象とした Mi...

4つのニューラルネットワークシーケンスデコードモデルとサンプルコードの説明

[[189448]]以下は、ニューラル ネットワーク モデルにおける 4 つのシーケンス デコード ...

...

...

...

大規模言語モデルの新しいレビューが発表されました。51ページの論文では、LLM分野の専門技術について説明しています。

大規模言語モデル (LLM) は、自然言語処理 (NLP) の分野で目覚ましい進歩を可能にし、幅広い...

ヘルスケアにおける人工知能の新たなフロンティア

[[262099]]医療機関が AI の導入を競う中、プロセス中心のアプローチを AI 戦略に組み込...

ディープラーニングと通常の機械学習の違いは何ですか?

[[212077]]本質的に、ディープラーニングは、ディープニューラルネットワーク構造(多くの隠れ...

Nature: 衣服をマイクとして使う?新しい素材は銃声の方向を検知し、胎児の心拍を監視できる

FPS ゲームをプレイしたことがある人なら、音で位置を識別できるはずですよね?銃声と足音は敵の方向...

...