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

ふぅ.なんとかなりますかねぇ.

コメントを残す

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

*