Ubuntu 18.04上での作業メモ
とりあえず,openCVをソースからインストール.
cd ~/Download wget https://raw.githubusercontent.com/milq/milq/master/scripts/bash/install-opencv.sh chmod +x install-opencv.sh ./install-opencv.sh
CUDA をソースから入れてみましょう.
cd ~/Download wget http://developer.download.nvidia.com/compute/cuda/opensource/10.1.243/cuda-gdb-10.1.243.src.tar.gz tar -xf cuda-gdb-10.1.243.src.tar.gz cd cuda-gdb-10.1.243 ./configure make
面倒なら,パッケージで入れても良さそうですね.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" sudo apt-get update sudo apt-get -y install cuda
これで,darknet が動くかな っと思ったけど,ダメそう.
cd ~/Download git clone https://github.com/pjreddie/darknet.git cd darknet make
「Package opencv was not found in the pkg-config search path.」のエラーが出たら,pkg-configを使ってg++でコンパイルできるようになるまでを参考に/usr/share/pkgconfigにopencv.pc のファイルを作って,PKG_CONFIG_PATHの環境変数を設定しましょう.
cat /usr/share/pkgconfig/opencv.pc Package Information for pkg-config prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir_old=${prefix}/include/opencv4/opencv includedir_new=${prefix}/include/opencv4 Name: OpenCV Description: Open Source Computer Vision Library Version: 4.1.1 Libs: -L${exec_prefix}/lib -lopencv_dnn -lopencv_gapi -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core Libs.private: -ldl -lm -lpthread -lrt Cflags: -I${includedir_old} -I${includedir_new}
「include/darknet.h:16:14: fatal error: cudnn.h: No such file or directory」のエラーが出たら,さてさて,cudnn.h は,どこだ.
Ubuntu 18.04へのCUDAインストール方法より,cuDNN のレポジトリの追加が必要そうです.
echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" | sudo tee /etc/apt/sources.list.d/nvidia-ml.list sudo apt-get update sudo apt-get install libcudnn7 libcudnn7-dev
今度は,OpenCV でエラーが!
./src/image_opencv.cpp:12:1: error: ‘IplImage’ does not name a type; did you mean ‘image’? IplImage *image_to_ipl(image im)
「darknet IplImage」で検索してみると,Opencv 3.4.0のインストール(darknetでエラーの出まくっている方へ)が出てきて,そこには以下のことが書かれていました.
作成者本人曰く。
「今回のバージョンアップでなぜか知らんけど OpenCVの3.4.1だと動かなくなっちゃった。もし3.4.1入れてるんだったら、それ以前のモノ入れてね、というかREADMEにも書いてあるよ。」
へっ.今も,そうなんかなぁ.っていうか,OpenCV3どころかOpenCV4を入れちゃっていたよ….
というわけで,まずは,Opencv3.4.0に入れ直してみます.
次は,dynlink_nvcuvid.hが足りないと言われるので,Cuda 10.0 fatal error: dynlink_nvcuvid.h: No such file or directory #1786を参考に,使わないように変更.
-DBUILD_opencv_cudacodec=OFF
IplImageのエラー,かわらんかった….
↑ 違った、make clean し忘れていただけでした.
通って,darknet ができあがりました.ふぅ.
YOLOv2で物体検出を学習させてみようを試してみます.
cd ~/Download/darknet wget https://pjreddie.com/media/files/darknet19_448.conv.23 cd .. git clone https://github.com/sudamasahiko/dataset100jpy cp -r dataset100jpy/* darknet cd darknet ./darknet detector train cfg/obj.data cfg/yolo-obj.cfg darknet19_448.conv.23
ふぅ.なんとかなりますかねぇ.
コメントを残す