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月末にオープンソース化

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

推薦する

...

人工知能を活用した新しい小売無人店舗の発展展望は?

[[253800]] 2017年にジャック・マーがニューリテールの概念を提唱して以来、雨後の筍のよ...

Pytorch Lightning の 6 つのヒントを使用して、ディープラーニング パイプラインを 10 倍高速化します。

[[427508]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitA...

人工知能≠ロボット!

[[379103]]技術革新が時代のメインテーマとなる中、 「自動運転がドライバーに代わる」「仕事...

...

...

データマイニングの専門家がプログラムアルゴリズムを使って人生の選択をする

[[118153]]毎年、就職活動の時期になると、どうやって内定を選んだらいいのか、テンセントに行く...

442人の著者による100ページの論文! Googleは2年かけて大規模モデル向けの新しいベンチマーク「BIG-Bench」をリリースした。

1 件の AI 論文、442 人の著者。著者の貢献のために特別な章も設けられています。 100ペー...

...

なぜドローンが5Gの商用利用の第一選択肢なのでしょうか?その理由はこの3点です!

近年、私たちの生活におけるドローンの応用はますます一般的になっています。当初は軍事分野でしたが、その...

Google の 10 秒動画生成モデルが世界記録を更新しました。 LLMは拡散モデルを終わらせ、その影響は第2世代のトップを圧倒する

AI ビデオ生成は、2024 年には次の最先端分野になる可能性があります。過去数ヶ月を振り返ると、R...

Windows 11 AI「パーソナルアシスタント」、Microsoft Windows Copilot が近日登場

6月26日のニュースによると、今年5月、マイクロソフトは毎年恒例のBuild開発者会議で、Windo...

産業インテリジェンスは「新しいインフラ」の下で非常に人気がありますが、まだ多くの問題があります

「新しいインフラ」が流行っています。これらは5G、人工知能、モノのインターネットなどの情報デジタルイ...

...