3行で
- jetson nanoを購入してはやりのディープラーニング?ってやつをやってみたい!!!!
- ネットに落ちてる記事を参考に構築してみるけどエラーになる・・・なんで・・・
- 答え:古いイメージを使いましょう
モチベーション
jetson nanoを買ってみて早速試しに画像認識系の有名なモデルを動かしてみたい。
私はその一つとして、YOLOを選んだ。さすが有名なモデルだけあって、ネットにやってみた系の記事がたくさんあって試しには良さそう。
で、(環境構築系にはありがちな話だけど)実際やってみると結構ハマったので、ハマったところと解消方法をメモしておきます。
環境
バージョン | |
---|---|
最終的に使ったイメージ | JetPack 4.2 |
諦めたイメージ | JetPack 4.3 |
jetpack archive
https://developer.nvidia.com/embedded/jetpack-archive
結論
darknetのmakeで
opencv was not found in the pkg-config search path
のようなエラーが出るときはJetPack 4.2などの古いイメージを使いましょう。
(2020/1/13時点では)
「Getting Started With Jetson Nano Developer Kit」
https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit
で誘導されるイメージはJetPack 4.3で、これはpkg-config --libs opencv
が通りません。
やってハマってしまったこと
「Getting Started With Jetson Nano Developer Kit」
https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit
に従ってSDカードにイメージを入れる。
https://www.nakasha.co.jp/future/ai/vol2_yolov3nvidia_jetson_nano.html
に従いdarknetをmake
やるとどうなるのか
-
makeで失敗します
opencv was not found in the pkg-config search path
などというエラーがでてopencvがインクルードされません。 -
pythonからはopencvが見える
ターミナルにpython
と打ち込みpythonの対話モードに入って
import cv2
cv2.__version__
すると4.1.1が表示されます。
-
pkg-config --libs opencv4
は通る
JetPack 4.3は4.x系のopencvが入っておりイメージらしく、pkg-config --libs opencv4
は通ります。
darknetのMakefileではpkg-config --libs opencv
を使いますがこれは通りません。
対処方法
特にこだわりがなければJetPack 4.2を使えばいいと思います。
opencvのバージョンは3.3.1になります。
JetPack 4.3を使いつつdarknetのmakeを通すことが不可能だという確証は得られませんでした。
参考
jetpack archive
https://developer.nvidia.com/embedded/jetpack-archive