1. HOME
  2. ブログ
  3. IT技術
  4. Pytorchを使ってYOLOv3で物体検出をしてみた!【機械学習】

Pytorchを使ってYOLOv3で物体検出をしてみた!【機械学習】

Pytorch(パイトーチ)とは?

今回は、Pytorch(パイトーチ) を使って、YOLOv3で物体検出してみたいと思います!

どんなものができるの?

最終的に目指すはこんなイメージです。

Pytorch(パイトーチ)は、2016年にリリースされた、比較的新しいディープラーニングのフレームワークです。

こちらの記事もオススメ!

Anaconda仮想環境の作成

いつものように、Anaconda 仮想環境を作成して動かしていきます。

仮想環境の作成

AnacondaPrompt を起動し、「pytorch」という名前の仮想環境を新規作成します。

作成を進めて良いか聞かれますので、「y」を返答します。

環境ができたか確認

環境ができたかどうか、conda infoコマンドで環境一覧を確認します。

ソースコードのダウンロードとパッケージのインストール

次に作成した仮想環境を起動して、ソースコードのダウンロードと、パッケージ(Pytorch など)のインストールを行います

仮想環境の起動

先ほど作った pytorch環境を、conda activateコマンドで起動します。

pytorch のインストール

pytorch をインストールします。

お使いの環境ごとに、pytorch のインストールコマンドがありますので、詳しくはpytorch公式サイトからご自身の環境を選択して、コマンドを確認ください。

【公式サイト】
https://pytorch.org/

ソースコードのダウンロード

git cloneコマンドで、ダウンロードしてきます。

「PyTorch-YOLOv3」というフォルダが新たに作成されます。

gitコマンドが使えない場合

gitコマンドが使えないからは、以下のサイトからzipファイルでダウンロードして展開してください。

【Github】
https://github.com/eriklindernoren/PyTorch-YOLOv3

追加パッケージのインストール

pytorch 以外で、ソースコードで使われているパッケージをインストールします。

tensorflow は2系だと動かない箇所があるので、「1.14.0」をインストールします。

weights、学習用画像、ラベルファイルなどの準備

weights のダウンロード

weights をダウンロードします。

テスト用データセットのダウンロード

データセットをダウンロードして解凍します。

※unzipコマンドがなかったため、2つのzipファイルはwindows側から手作業で解凍になります。

train2014.zipval2014.zip を解凍しておきます。

データセットリストとラベルの準備

データセットリストや、ラベルを準備していきます。

※こちらも、zipファイルはwindows側から手作業で解凍になります。

instances_train-val2014.zip を解凍します。

テキストエディタで開く

2つのファイル(5k.part、trainvalno5k.part)の拡張子を.txtに変更し、テキストエディタで開けるようにします

次に、5k.part.txt、trainvalno5k.part.txt を、テキストディタで開きます。

今回は、サクラエディタ を使って説明していきます。

全て相対パスで記載されていますので、サクラエディタの置換機能を使ってフルパスに書き換えます。

「検索」「置換」を選択し、以下を入力します。

置換前:images
置換後:(ご自身の現在のディレクトリパス)/images

「すべて置換」を押して保存してください。

動作テスト

全クラスを検出するかどうかの、動作テストをします。

class0~79までの80クラスのテストと、最後にmAPが出力されれば正常動作しています。

YOLOv3で物体検出!

data/samplesフォルダに、9枚のサンプル画像があります。

それらを入力にして、物体検出をかけて行きます。

サンプル画像で物体検出を行いますが、先に出力用のフォルダを作っておきます。

物体検出開始!

それでは、検出を行います。

上手く犬、自転車、トラック(車)が検出されています。

その他8枚の画像

あとの8枚も、このような感じになります。

さいごに

Pytorch で YOLOv3 は、上手く動きましたか?

そういえば、唯一の国産フレームワークだった「Chainer」が開発終了を宣言しました。

Pytorch は、その思想を引き継いでいるフレームワークと言っても過言ではありません

ただ、Pytorch と Tensorflowのどちらをメインに使っていくか迷いどころだとは思います…

ですが、いろいろ試してみるのが一番だと思いますので、楽しんで使ってみることをオススメします!

機械学習でのシステム開発依頼・お見積もりはこちらまでお願いします。
また、機械学習系エンジニアを積極採用中です!詳しくはこちらをご覧ください。

こちらの記事もオススメ!

関連記事

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界はお前の手の中に・・・ /

モバイルエンジニア

\ サービスの守り神! /

インフラエンジニア