Jetson Nanoで Yolo(試行錯誤編)

YOLO v3をオリジナルデータで学習させてRealSenseで物体の距離を取得してみたをベースに作業してみましたが,学習に時間がかかってちょっと心配になったので,次はYOLOv2で物体検出を学習させてみようを参考にもう一度作業してみました.

cd Downloads
git clone https://github.com/pjreddie/darknet
cd darknet
vi Makefile
# 以下を書き換え
# ↓ここから
GPU=1
CUDNN=1
OPENCV=1
...
nvcc=/usr/local/cuda/bin/nvcc
# ↑ここまで.
make

# サンプルの学習
cd ..
wget https://pjreddie.com/media/files/darknet19_448.conv.23
cp -r dataset100jpy/* darknet
./darknet detector train cfg/obj.data cfg/yolo-obj.cfg darknet19_448.conv.23

そして,上記が28-29ステップ目でKilled されてしまいます….

なんでだろ….っていうか,他の学習ができなかったので,サンプルに戻ってきたのですが,やっぱり無理でした….
メモリ周り,再確認します.

メモリ不足の可能性があるので,Swapの調整をしてみます.

sudo swapoff /mnt/swapfile
sudo swapon /mnt/swapfile -p 6
swapon

まったく同じSDカードのイメージで2台(家と大学)のJetson Nanoを試しているのですが,
大学の方だけ,上記のKilled になってしまいます….
もしかして,SDカードの問題なのかなぁ.

—-


—-
もいちど挑戦してみました.

まず,複数クラスの学習をするには,ちょつと工夫が必要だったみたいです.
ご注文はYOLOですか!?(Windows10でYOLOを学習して動かすまで)YOLO-VOCでのカスタムオブジェクトの作成の仕方を見る限りでは,001,002といったディレクトリ名がそれに対応しているっぽい感じだったのですが,どうもうまく動かなかったので,もう少し調べてみたら,[Python]YOLOv3を自学習させたデータで試してみるの方に,マルチクラス用はこちらとなります。なんて書いてあります.
ただ,一種類の場合とマルチクラスの場合が,どちらも同じに見える….
っていうか,git なので,ブランチがあるのでは?と思って,「branch」をクリックしてみたら,multi-classなるものが存在しました.
というわけで,BB-box-toolは,

git clone https://github.com/puzzledqs/BBox-Label-Tool
cd BBox-Label-Tool
git branch multi-class

で,マルチクラス用のブランチに切り替わってくれます.
これで,class.txt にクラスを書き込んで,python main.py を実行すれば,複数クラス用のBBoxが立ち上がります.
クラス指定後「ConfirmClass」を押すのを忘れないように.
そして,クラスが正しく変わっているのを確認しないと,あとで悲劇を見ます….

あとは,convert.py で変換して,How to train YOLOv2 to detect custom objectsのprocess.pyを使って,学習用とテスト用のデータに分けて,data.names にクラス名を入れて,volov3-voc.cfg をvolov3-obj.cfg にコピーして,中身のclass とfiltersを変更して,darknet をdetectorで動かします.

結果まで時間がかかるので,お茶飲んで,待ちます.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*