YOLOv3を使って手軽に物体認識を体験する! 第1回

Python

YOLOv3とは巷によく聞く機械学習による物体認識手法の一種です。

当ブログでは物体認識やYOLOv3の大まかな解説、そしてPython環境があれば誰でも簡単に自分のパソコンにインストールして、物体認識を体験できる方法を2回に分けて紹介します。

要点要点分かりやすく噛み砕いた解説をしていきたいと思います。(というよりも筆者が情弱なのでざっくりな解説しか出来ないw)

第1回では物体認識そしてYOLOについて紹介したいと思います。

スポンサーリンク

物体認識とは?

その名前の通り、物体が写っている画像などからコンピュータを通して、その物体は何なのか判別するというものです。また、物体認識には

  • 特定物体認識
  • 一般物体認識

の2種類があります。

特定物体認識とは画像の中に特定のある物体はあるのか?を判別します。

対し一般物体認識はその物体は何なのか(人間?犬?猫?車?など)当てるシステムです。

当記事で扱うYOLOv3は一般物体認識が可能なアルゴリズムとなっています。

こちらが後に紹介する論文上に掲載されていたYOLOによる物体認識の結果画像です。人間、犬、馬それぞれ識別していることが分かりますね。

“YouOnlyLookOnce: Unified,Real-TimeObjectDetection”, p.1 Figure.1より引用

YOLOとは?

YOLOとはコンピュータビジョンの研究者Joseph Redmon氏が開発したCNN(畳み込みニューラルネットワーク)ベースの物体認識アルゴリズムです。”You Only Look Once”の頭文字から名付けたもので、意味としては”見るのは一度きり”、その名の通り一度画像を見ただけで物体を識別出来ることを示しています。”人生一度きり(YOLO)”から来ているのでしょうか。

CNNとはニューラルネットワークの一種で特性上、画像認識に強い

開発者の論文のアブストラクトを読むと

“アルゴリズムは1つのニューラルネットワーク(以下NN)で構成しているから、ほかの手法による物体認識よりも速くて凄いんだぞ”

的なことが書いてあります。要はシンプルなアルゴリズムってことなんでしょう。

筆者が確認したところバージョン3までアップデートされていました。そのためYOLOv3という名称なんですね。YOLOv3の論文では

“認識速度が犠牲になったものの精度は良くなった。それでもまだまだ速い。”

と紹介されています。速いというのはGPU(ビデオカード)を用いた演算処理が前提だと思われます。GPUの増設および諸々の設定をしない限りCPUに演算させることになると思いますので、大抵のPCによる認識速度はとても遅いと思います。筆者のPCでもCPUで演算させているので認識速度に関しては本記事では調査しませんでした。ちなみに筆者は増設不可&7年前のCPU搭載ノートでやっているので激遅です…いつか自作したい

そして筆者はニューラルネットワークをはじめアルゴリズムの仕組みについて、現状知識が乏しいので学術的な部分は割愛させていただきます…。勉強せねば。(ウッ頭が…!

NNをはじめディープラーニングは演算量が膨大なので並列演算が得意なGPUに演算させることが多い

次回はさっそくインストールについて書こうと思います。

YOLO以外にも様々な手法によるメジャーな認識アルゴリズムがたくさんありますので、調査を重ねつつ今後皆様に紹介できたらなと思います!

マスルキン

当ブログ管理人のマスルキンです。

高専電気系学科に5年間在籍。卒業後は専攻科に進学し現在に至る。

生まれつき聴覚障害があり
補聴器の使用、コミュニケーションでは読唇や手話などを用いています。

当ブログでは
・プログラミング・研究関係の備忘録
・趣味(筋トレ、カメラ、プラモデル、etc...)
・自身の日常
などを自由気ままに皆様に発信いたします。

記事が皆様のお役に立てば幸いです。

マスルキンをフォローする
Python コンピュータビジョン プログラミング
スポンサーリンク
マスルキンをフォローする
マスルキンの部屋

コメント

タイトルとURLをコピーしました