~11/15までの活動報告
Jetson Nanoのセットアップについて、SDカードをフォーマットしてSwapfileを作成するところまで進めていましが、やはりopencvのバージョン確認のところで躓いてしまい、再度SDカードの初期化を行いました。ご指導頂きながら、opencvのバージョン確認、YOLOのテストまで終えることができたので、ここまでの記録をまとめたいと思います。
まず、opencvのバージョン確認について
セットアップの初めのころは作業手順がばらばらであったためにエラーが出ているのかと思っていましたが、今回のバージョン確認で原因が分かったように思います。
前回の作業報告でnanoについて理解が深まったと書いていましたが、まだ甘かったようです。
build_opencv.shファイルの編集の際に、テキストエディタ―ではなく、nanoで書き換えるということを学んで、自宅で実践しましたが、
$nano build_opencv.sh
このコードの返答は、空のファイルのみで何のコードも書かれておらず、編集不可能でした。この理由は単純でbuild_opencv.shが存在するディレクトリで上記のコードを入力する必要があったのに、デスクトップなどの適当なディレクトリで、
$nano build_opencv.sh
と入力していたからでした。
そこで、ディレクトリをbuild_opencv.shが格納されているnano_build_opencvに変更しnanoを開くと編集可能になりました。同様のミスがのちのYOLOインストールのとき、.bashrcの編集の際に起きてしまいました。
次回からは、実行するファイルは現在のディレクトリに存在するのかしっかり確認してから作業していきたいと思います。
このような問題を解決した後は
$./build_opencv.sh
と入力して6時間ほど待ち、最後のバージョン確認へと移るわけですが、
$python
>>>cv2.__versiion__
の結果は前回と同じく'cv2' is not definedでありました。
エラーの原因としては色々考えられたのですが、最終的には、>>>cv2.__version__の前に
>>>import cv2
を入力する必要がありました。
$python
>>>import cv2
>>>cv2.__version__
と入力すると、
'4.1.0'と返ってきたのでバージョン確認は成功しました。
続いて、YOLOのインストールについて
前回まではgit clone URLでディレクトリを作成し、Pre-Trained Modelをdarknetにダウンロードし、パスを通してMakefileを変更するところまでは上手くいっている、そう考えていましたが、Makefileの書き換えで見落としている部分がありました。
具体的には、コメントアウトする部分と、コードをコメントに変更する部分でした。
ここを変更したら、さすがにサンプルの認識は成功するだろうと考えていましたが、実際は成功しませんでした。
他に何が必要だったかというと
$make -j4
というコードでした。このコードの意味はよく分かってなくてとりあえず入力してのですが
usage: darknet
という返答がきたので、makeは完了しているらしいです。
それから、サンプルを認識させると、上手く動作してYOLOのテストは完了したのですが、やはり$make -j4のコードの意味が気になります。動作しないときに打ち込むためのコードにも思えませんし、次回、$make -j4を入力するべきところで気づいて入力できるのか不安です。Makefileを変更したために、make -j4でコンパイル?みたいなのをする必要があるのでしょうか。
長々と書いてしまいましたが、二度のフォーマットを行うほど苦戦したopencvとdarknetのYOLOの動作確認ができてよかったです。今回の作業で得られたことは、ファイルがあるディレクトリでコードを実行すること、実行しようとしているファイルが現在のディレクトリに存在するのかをllコマンドで調べられること、などがありました。
makeとはmakefileの条件に従って関連ファイルをコンパイルしてリンクしていく作業です。この変の理解はC言語の本を読む必要があります。
返信削除