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のスマートスピーカー「フィオナ」と「アロハ」が今月下旬に発売される

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

サービスロボットは大きな将来性があり、すぐに何千もの家庭に導入されるだろう

親が子どもの世話をしたり、子どもと遊んだり勉強したり、看護師や介護士の仕事を手伝ったりするロボットに...

人工知能はどのようにしてデジタル経済の新しい時代を導くのでしょうか?デジタルサミットの専門家は言う

[[346344]] 「人類の技術発展の歴史を振り返ると、機械化、電化、情報化の時代を経験し、生産や...

AIとブロックチェーンが壊れたサプライチェーンを修復する方法

2020年にコロナウイルス危機が発生した際、医療上の緊急事態に伴って、特に一部の医療機器に関して深刻...

...

...

IBM Cloud Paks コミュニティ リリース: スキルの共有、クラウドなし、知恵なし

[[396563]] 2021年4月27日IBM Cloud Paks コミュニティ リリースここに...

...

...

...

AI、ブロックチェーン、IoT、5Gの未来は統合だ

企業は業務を最適化し、現在の誇大宣伝サイクルを活用するために AI の導入に躍起になっています。報告...

教育用人工知能における倫理的リスクを排除する方法

人工知能は国際競争の新たな焦点となりつつあり、同時に人類社会に新たな発展の機会をもたらしています。機...

...

古代にタイムスリップしてAI技術を使った会議を開催しよう

会議と聞いて、どんなイメージが思い浮かびますか? 真剣で緊張した雰囲気でしょうか? それとも退屈で眠...

Facebookは、数億のノードでタスクを迅速に完了できる大規模なグラフ埋め込みアルゴリズムをオープンソース化しました。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ソフトウェアと自動化機器が持続可能性と回復力を向上させる方法

近年、需要の増加、エネルギーコストの高騰、持続可能性の問題が続く中、データセンターが注目を集めていま...