10行のコードで物体検出を実行する方法

10行のコードで物体検出を実行する方法

導入

人工知能の重要な分野はコンピュータービジョンです。コンピューター ビジョンは、コンピューターとソフトウェア システムが画像やシーンを認識して理解できる科学です。コンピューター ビジョンには、画像認識、ターゲット検出、画像生成、画像超解像度などの側面も含まれます。物体検出は、現実世界での使用例が膨大にあることから、おそらくコンピューター ビジョンの最も重要な側面です。

[[316589]]

オブジェクト検出とは、コンピューターやソフトウェア システムが画像/シーン内のオブジェクトを見つけて各オブジェクトを識別する機能を指します。物体検出は、顔検出、車両検出、歩行者カウント、ネットワーク画像、セキュリティ システム、自動運転車で広く使用されています。多くの実践分野において、物体検出には多くの方法が存在します。他のコンピュータ技術と同様に、物体検出の幅広い創造的で驚くべき用途は、コンピュータ プログラマーとソフトウェア開発者の努力から生まれるに違いありません。

今回は、プログラマーやソフトウェア開発者がわずか数行のコードで最先端のコンピューター ビジョン テクノロジーを既存および新規のアプリケーションに簡単に統合できるようにする Python ライブラリである ImageAI というプロジェクトを紹介します。

ImageAI導入工事

ImageAI でオブジェクト検出を実行するには、次の手順に従います。

  1. コンピュータシステムにPythonをインストールする
  2. ImageAIとその依存関係をインストールする
  3. オブジェクト検出モデルファイルをダウンロードする
  4. サンプルコードを実行する(10行のみ)

それでは、今すぐ始めましょう:

  • 公式の Python 言語 Web サイトから Python 3 をダウンロードしてインストールします。
  • pip 経由でインストール: TensorFlow、OpenCV、Keras、ImageAI

  1. pip3 テンソルフローをインストール
  2. pip3 opencv-python をインストール
  3. pip3 keras をインストール
  4. pip3 イメージAI をインストール--upgrade  

3) この記事のリンクから、オブジェクト検出用の RetinaNet モデル ファイルをダウンロードします。

https://towardsdatascience.com/object-detection-with-10-lines-of-code-d6cb4d86f606

プログラムを実行する

とても良い。依存関係がインストールされたので、最初のオブジェクト検出コードを記述できます。 Python ファイルを作成し、名前を付けて (たとえば、FirstDetection.py)、次のコードを記述します。検出したい RetinaNet モデル ファイル イメージを、Python ファイルを含むフォルダーにコピーします。

  1. imageai.DetectionからObjectDetection をインポートします 
  2. インポートOS
  3.  実行パス = os.getcwd()  
  4. 検出器 = オブジェクト検出()  
  5. 検出器.setModelTypeAsRetinaNet()  
  6. detector.setModelPath( os.path.join (execution_path, "resnet50_coco_best_v2.0.1.h5" ))  
  7. 検出器.loadModel()  
  8. 検出 = detector.detectObjectsFromImage( 入力イメージ = os.path.join (実行パス、 「image.jpg」 ) 出力イメージパス= os.path.join (実行パス、 「imagenew.jpg」 ))
  9.  検出における各オブジェクトについて:  
  10. print(eachObject[ "name" ], ": " ,  
  11. 各オブジェクト[ "パーセンテージ確率" ] )

実行中にこのエラーが発生した場合は、次の点に注意してください。

  1. ValueError: バックエンドをインポートできません: theano python mymodel.py

次に、次のことを試すことができます。

  1. osos.environ[ 'KERAS_BACKEND' ] = 'tensorflow'インポートします  
  2. imageai.Detection インポート ObjectDetection

次に、コードを実行し、結果がコンソールに表示されるまで待ちます。結果がコンソールに表示されたら、FirstDetection.py が保存されているフォルダーに移動すると、新しい画像が保存されていることがわかります。以下の 2 つのサンプル画像と、検出後に保存された新しい画像をご覧ください。

テスト前:

[[316590]]

テスト後:

データ結果

プログラムは各オブジェクトの確率データを出力していることがわかります。

  • 人 : 55.8402955532074
  • 人 : 53.21805477142334
  • 人: 69.25139427185059
  • 人: 76.41745209693909
  • 自転車: 80.30363917350769
  • 人: 83.58567953109741
  • 人: 89.06581997871399
  • トラック: 63.10953497886658
  • 人: 69.82483863830566
  • 人 : 77.11606621742249
  • バス: 98.00949096679688
  • トラック: 84.02870297431946
  • 車: 71.98476791381836

プログラムは画像内の次のターゲットを検出できることがわかります。

人、バイク、トラック、車、バス。

検出したい写真をプログラムに直接入れて実行し、効果を確認することができます。

原理説明

それでは、この 10 行のコードがどのように機能するかを説明しましょう。

  1. imageai.DetectionからObjectDetection をインポートし、 osexecution_path をインポートします。
  2. = os.getcwd()

上記の 3 行のコードでは、最初の行で ImageAI オブジェクト検出クラスをインポートし、2 行目で python os クラスをインポートし、python ファイル、RetinaNet モデル ファイル、および画像が配置されているフォルダーへのパスを保持する変数を定義しました。

  1. 検出器 = ObjectDetection() 検出器.setModelTypeAsRetinaNet() 検出器.setModelP
  2. ath( os.path.join (execution_path, "resnet50_coco_best_v2.0.1.h5" ))detector.loadModel()検出=
  3. detector.detectObjectsFromImage(input_image=os.path.join (実行パス
  4. th 、 "image.jpg" )、 output_image_path=os.path.join (実行パス
  5. 「imagenew.jpg」 ))

上記のコードでは、1 行目で Object Detection クラスを定義し、2 行目でモデル タイプを RetinaNet に設定し、3 行目でモデル パスを RetinaNet モデルのパスに設定し、4 行目でモデルを Object Detection クラスにロードし、検出関数を呼び出して、5 行目で入力画像パスと出力画像パスを解析します。

  1. 検出内の各オブジェクトについて: print(eachObject[ "name" ] , " : "       
  2. 、各オブジェクト[ "percentage_probability" ] )

上記のコードでは、最初の行で detector.detectObjectsFromImage 関数によって返されたすべての結果を反復処理し、2 行目に画像内で検出された各オブジェクトのモデル名とパーセンテージ確率を出力します。

<<:  大手企業がどのように人工知能を活用し、実践しているのかご覧ください。

>>:  国産ディープラーニングフレームワーク「MegEngine」が3月末にオープンソース化

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

推薦する

...

米宇宙軍、データセキュリティ上の懸念から生成AIツールを禁止

10月12日、新たに流出したメモの中で、米国宇宙軍は、データセキュリティなどの懸念を理由に、ウェブベ...

マイクロソフトCEOナデラ氏:AIはルールを変えるインターネットの波のようなもの

8月18日、マイクロソフトが人工知能(AI)技術の研究開発に注力し、OpenAIに100億ドル以上を...

需要は拡大し続けており、配達ロボットには克服すべきいくつかの大きな技術的課題がある

特別なイベントの影響を受けて、非接触型の配達や食事が需要のトレンドになっています。その結果、業界にお...

Google Brain、ロボットアームの把持速度を2倍にする並行RLアルゴリズムを提案

RL アルゴリズムでは通常、観測値の取得、アクションの計算、およびそれらの実行の間で環境の状態が変化...

人間の姿勢評価技術の開発と実装

[51CTO.com クイック翻訳]関連調査レポートによると、デジタルフィットネス市場の規模は202...

人工知能への恐怖現象を探る

現在、人工知能は人類に大きな発展の機会をもたらす一方で、さまざまなリスクや課題も伴っています。科学技...

地球と宇宙の廃棄物問題を解決するためにAIを活用する4つの企業

人工知能は、世界中の組織において情報に基づいた意思決定を行うための重要なツールとなっています。人工知...

1分で10日間の世界の天気を予測します! Google DeepMindの新しいAI天気予報がScienceに掲載され、業界のSOTAを圧倒

1分以内に、10日間の高精度な世界天気予報が提供されます。 ChatGPT に続いて、別の AI モ...

このおもちゃからヒントを得たアクチュエータは、ソフトロボットにジャンプする能力を与える可能性がある。

[[327163]]海外メディアの報道によると、ポッパーという、押すと飛び上がるおもちゃで遊んだこ...

論文の90%はモデル中心です。AIの分野では、データとモデルのどちらが重要ですか?

モデルとデータは AI システムの基盤であり、これら 2 つのコンポーネントはモデルの開発において重...

AIが自動化に適した日常的なITタスク3つ

AIで自動化できる3つのITタスク幸いなことに、人工知能が役に立ちます。ここでは、AI が手動で実行...

生成 AI が運輸業界に登場します。準備はできていますか?

運輸業界は、人や物を輸送する 10 兆ドル規模の多様なグローバル ネットワークです。しかし現在、業界...

AI+教育はさまざまなシナリオに適用されていることをご存知ですか?

人工知能技術の継続的なアップグレードと革新的な変化に伴い、中国は時代の変化に対応し、人工知能関連のコ...