🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

7808閲覧

keras-yolo3を使った動画の物体検出がすごく遅い。。

python_2019

総合スコア68

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/12/23 04:12

以下のような環境で動画の物体検知を実行したのですが、すごく遅いのです。
検知はしているものの、カクカクと1秒1コマぐらいごとに検知しているようです。
YOLO自体が遅いのでしょうか?
それとも環境に問題があるのでしょうか?(GPUを使用しています)

アドバイス頂ければ助かります。

win10
I7-7700(32G) Geforce gtx1050(4G)
keras 2.2.4
pyhon 3.7.3
tensorflow-gpu 1.14.0

YOLOv3 weightsをKerasモデルのyolo.h5ファイルに変換
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
動画サイズ 4mbyte

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

検知はしているものの、カクカクと1秒1コマぐらいごとに検知しているようです。YOLO自体が遅いのでしょうか?

YOLOv3 自体重たいモデルであるということと、keras 実装版の YOLOv3 は本家の darknet より遅いです。
以前試した際は Pascal Titan X で 30FPS ぐらいしかでなかったので、GTX1050Ti だと5FPSぐらいしかでないのではないでしょうか。

なので、遅いのはやり方が間違っている等ではなくて、GPU の性能の問題と思います。

以下、3D Mark のベンチ結果です。3D グラフィクスと Deep Learning に求められる演算は多少異なるので参考までに。

イメージ説明

投稿2019/12/23 05:26

編集2019/12/23 05:27
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

python_2019

2019/12/23 05:47

ご回答ありがとうございます。 結局、GPUの性能を上げなければ速くならないということなんですね。 これくらいのスペックでリアルタイム検知をスムーズに行う手段はないのでしょうか? 他手法(たとえばSSDなど)でも同じなのでしょうか? よろしくお願いいたします。
tiitoi

2019/12/23 05:53 編集

リアルタイムがどのぐらいの FPS を指すのかにもよります。例えば、カメラの FPS が30 FPS だとしても毎フレーム検出を行うのではなく、数フレームに1回だけ検出を行うようにすることで、動画はカクつかないようにすることも考えられます。 またモデル自体を軽くする方向で考えるには、モデルの入力解像度を小さくするとか、SSD-MobileNet など YOLOv3 より軽いモデルを使うという手もあるでしょう。
python_2019

2019/12/23 07:02

ご回答ありがとうございます。 今、SSDで実行しても遅いことが確認できました。 一度、SSD-MobileNet を検討してみたいと思います。
python_2019

2019/12/23 07:40 編集

追加でお教えください。 https://qiita.com/PonDad/items/6f9e6d9397951cadc6be こちらのサイトの中ほどの記述で、高速リアルタイム物体検出を実現されているようです。 スペック的にさほど高くないのですが、「メソッド名を変更」することで実現されたようです。 この再ナイト内のリンク先のgithubを見てもよく理解できません。 https://github.com/rykov8/ssd_keras/issues/60 どのように修正されたのでしょうか? もし何かアドバイス頂戴できれば幸いです。 よろしくお願いいたします。
tiitoi

2019/12/23 07:50 編集

Qitta を拝見しましたが、追記のところは、記事を執筆したときに試した GPU とは条件が違います。 3FPS が 20FPS ぐらいでたのは、単に性能が高い GPU を使ったからです。 issue のリンクは記事のコメント欄でやり取りされてるエラーを解消するための修正ですので、高速化とは関係ありません。 以下、記事から関連する部分抜粋 ``` > メインPCをMacからWindowsに変えたので改めて試してみました。 > GeForce® GTX 1080 Ti > iMacのGPUで2〜3FPSだったのですが、20FPS位とほぼリアルタイムに物体検出が出来ています。 ``` 1080Ti は一世代前の GPU の中では Pascal Titan X とほぼ同等の性能の GPU ですので、それぐらい性能が出てもおかしくないです。
python_2019

2019/12/23 08:08

これも高性能のGPUを使ったからなのですね。 PCの買い替えも含めて高速化を検討したいと思います。 (できれば、今のPCで高速化したい...) 貴重なアドバイス どうもありがとうございました。
tiitoi

2019/12/23 08:19 編集

ノートパソコンまたは一体型 PC でなく、ミドルタワーのケースであれば、PC を買い換えなくても GPU だけ買って差し替えることもできると思います。 電源容量が足りるかやマザボが対応してるか等は事前に確認する必要はありますが。 あとは推論だけであれば、先程紹介した MobileNet-SSD のように軽いモデルを使えばもう少し FPS は出ると思います。近年、スマホなどエッジでも動く軽いモデルというのもいろいろ開発されてはきてるので。 学習まで行うのであれば、どのみち性能がいい GPU がないと時間がかかってしまうので厳しいとは思います。
python_2019

2019/12/23 08:20

今はノートパソコンなので、今後のことを考えてボード差し替えが可能なミドルタワーを検討したいと思います。 電源容量やマザボについてはよく留意したいと思います。 いろいろ多岐にわたり貴重なアドバイス、どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問