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

ブログ    
ブログ    
ブログ    

推薦する

JD Search EE リンクの進化

検索システムにはヘッド効果が存在する可能性が高く、高品質のミッドテールおよびロングテール製品が十分な...

ゼロから: Python で決定木アルゴリズムを実装する

決定木アルゴリズムは、非常に人気のある強力な予測方法です。初心者だけでなく専門家にも簡単に理解できる...

脚付きロボットの新たなスキル:ANYmalは山登りを学んでいる

ロボット工学の研究者がここ数年で脚付きロボットで成し遂げたことは実に驚くべきことだ。昨年7月、オレゴ...

人工知能はスマートシティの夢の実現にどのように役立つか

2008 年の金融危機後、都市計画とサービス提供に対する新しいアプローチが世界中で定着し始めました。...

インテル子会社が自動運転向け5nm RISC-Vプロセッサをリリース

CES(コンシューマーエレクトロニクスショー)がラスベガスで盛況だ。インテル、マイクロソフト、グーグ...

コンピュータービジョン技術によって変革が期待できる3つの業界

コンピューター ビジョン テクノロジー (マシン ビジョンとも呼ばれます) により、機械は周囲の世界...

AIをベースとしたイベントインテリジェント分析システム構築の実践

1. 背景現在、仮想化やクラウドコンピューティングなどの新技術の普及により、企業のデータセンター内の...

機械学習の博士課程での私の経験から得た洞察

2020 年は非常に困難な年でしたが、私にとってはコーネル大学でコンピューターサイエンスの博士号を取...

...

データマイニングの10の主要なアルゴリズムを、初心者でも一目で理解できるように平易な言葉で説明しました。

優秀なデータ アナリストは、基本的な統計、データベース、データ分析方法、考え方、データ分析ツールのス...

看護ロボットは医療従事者の仕事に完全に取って代わることができるのでしょうか?

研究によると、共感と前向きな指導は、医師が患者の痛みを和らげ、術後の回復を早め、精神科薬の使用を減ら...

人体の中で自由に動くロボット:柔軟でしなやか、毛細血管まで

[[408943]] 7月1日のニュースによると、最近、ヨーロッパの大学の中国の科学者は、シート状の...

5四半期連続で前年同期比で減少: AIはデルの危機を逆転できるか?

企業の時代はなく、時代の企業だけがある!新たなトレンドに直面しても、古い大手企業は反応が遅く、固定観...

アンドリュー・ン:機械学習の6つのコアアルゴリズム

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

IoTとAIがキャッシュレス小売業をどう推進するか

Amazon Go ストアのオープンは、私たちの買い物方法に大きな変化をもたらします。私たちは初め...