2018年4月8日日曜日

OpenCV3.4.1 ERROR ocv_append_source_files_cxx_compiler_options

このエラーは、opencv contrib moduleのメンテナンス版で発生している。

datasetのCmakefile.txt内の構文のエラー

OpenCV3.4.1 公開当時の contribでは、発生しない。


新しいのは、、、

set(the_description "datasets framework")

set(filter_srcs "${CMAKE_CURRENT_LIST_DIR}/src/tinyxml2/tinyxml2.cpp")
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
  ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-suggest-override")  # GCC
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
  ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-inconsistent-missing-override")  # Clang
endif()

ocv_define_module(datasets opencv_core opencv_imgcodecs opencv_ml opencv_flann OPTIONAL opencv_text WRAP python)

ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267) # flann, Win64


メンテ前は、、、

set(the_description "datasets framework")
ocv_define_module(datasets opencv_core opencv_imgcodecs opencv_ml opencv_flann OPTIONAL opencv_text WRAP python)

ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267) # flann, Win64


という事で、古いもので、、、

Contribは、うまくいったものを保存しておく必要があるということかぁ、、、

因みに、cmakeのパラメータは、、、
QTとOpenGLは取った
あと、contribのパスは確認する事 opencv_contrib-masterになっているかも

cmake -D CMAKE_BUILD_TYPE=RELEASE \
                        -D CMAKE_INSTALL_PREFIX=/usr/local \
                        -D INSTALL_PYTHON_EXAMPLES=ON \
                        -D PLANTUML_JAR=/usr/share/java/plantuml.jar \
                        -D ENABLE_NEON=ON \
                        -D WITH_TBB=ON -D BUILD_TBB=ON \
                        -D WITH_QT=ON -D WITH_OPENGL=ON \
                        -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.1/modules \
                        -D BUILD_EXAMPLES=ON ..

あっ、、、これも、、、でも、TBBは止めた

sudo apt-get install libtbb-dev


Peace!!

2018年3月14日水曜日

OpenCVのビルド整理

ここらで、OpenCV buildの整理。いままで、ザクっとやっていたので、、、

1.必須モジュール
build-essential cmake pkg-config cmake-qt-gui mesa-utils libgl1-mesa-dri
cmake-qt-gui は、UIでパラメータの設定をしなければ不要

2.基本演算系
libatlas-base-dev gfortran libeigen3-dev

3.画像、動画モジュール
libjpeg-dev libtiff5-dev  libpng12-dev libjasper-dev
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libv4l-dev

4.OpenCVのGUIモジュール
libgtk2.0-dev libgtk-3-dev

5.3Dモデル表示モジュール
libvtk5-dev libvtk5-qt4-dev  python-vtk tcl-vtk 
libqt4-core libqtgui4 libqt4-test libqt4-opengl-dev (Qt系が必要なら)

6.python
python3-dev     2系は使わないので、、、

7.深層学習
libprotobuf-dev protobuf-compiler

8.ドキュメント系
sphinx-common doxygen
でも、インストールしない

9.PlantUML
http://plantuml.com/download からダウンロードして、リネームかシンボリックリンク
cd /usr/share/java  にコピーする
sudo ln -s plantuml.8048.jar plantuml.jar


10. cmake 設定
contrib不要の場合
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D PLANTUML_JAR=/usr/share/java/plantuml.jar \
    -D ENABLE_NEON:BOOL=ON \
    -D WITH_TBB=ON -D BUILD_TBB=ON \
    -D WITH_QT=ON -D WITH_OPENGL=ON \
    -D BUILD_EXAMPLES=ON ..

contribを含める場合
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D PLANTUML_JAR=/usr/share/java/plantuml.jar \
    -D ENABLE_NEON=ON \
    -D WITH_TBB=ON -D BUILD_TBB=ON \
    -D WITH_QT=ON -D WITH_OPENGL=ON \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.1/modules \
    -D BUILD_EXAMPLES=ON ..

一発shellはこれ(^^)

#! /bin/bash

date;

if [[ `lsb_release -d` =~ .*Raspbian.* ]]
then
        echo "";
        read -p " Continue installing OpenCV (y/n) ? " CONTINUE
        if [[ "$CONTINUE" == "y" || "$CONTINUE" == "Y" ]]; then
                echo "";
                echo "Installing OpenCV";
                echo "";
#                sudo apt-get update -y && sudo apt-get upgrade -y
#                sudo apt-get install -y build-essential cmake pkg-config
#                sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
#                sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
#                sudo apt-get install -y libxvidcore-dev libx264-dev
#                sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
#                sudo apt-get install -y libatlas-base-dev gfortran
#                sudo apt-get install -y python2.7-dev python3-dev

                  sudo apt-get install -y build-essential cmake pkg-config cmake-qt-gui mesa-utils libgl1-mesa-dri
                  sudo apt-get install -y libatlas-base-dev gfortran libeigen3-dev
                  sudo apt-get install -y libjpeg-dev libtiff5-dev  libpng12-dev libjasper-dev
                  sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libv4l-dev
                  sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
                  sudo apt-get install -y libvtk5-dev libvtk5-qt4-dev  python-vtk tcl-vtk
                  sudo apt-get install -y libqt4-core libqtgui4 libqt4-test libqt4-opengl-dev
                  sudo apt-get install -y python3-dev
                  sudo apt-get install -y libprotobuf-dev protobuf-compiler
                  sudo apt-get install -y sphinx-common doxygen

                cd ~
                wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.1.zip
                unzip opencv.zip
                wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/master.zip
                unzip opencv_contrib.zip
                                mv ~/opencv_contrib-master ~/opencv_contrib-3.4.1
                cd ~/opencv-3.4.1/
                mkdir build
                cd build

#                cmake -D CMAKE_BUILD_TYPE=RELEASE \
#                      -D CMAKE_INSTALL_PREFIX=/usr/local \
#                      -D INSTALL_PYTHON_EXAMPLES=OFF \
#                      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.0/modules \
#                      -D BUILD_EXAMPLES=OFF ..

                 cmake -D CMAKE_BUILD_TYPE=RELEASE \
                        -D CMAKE_INSTALL_PREFIX=/usr/local \
                        -D INSTALL_PYTHON_EXAMPLES=ON \
                        -D PLANTUML_JAR=/usr/share/java/plantuml.jar \
                        -D ENABLE_NEON=ON \
                        -D WITH_TBB=ON -D BUILD_TBB=ON \
                        -D WITH_QT=ON -D WITH_OPENGL=ON \
                        -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.1/modules \
                        -D BUILD_EXAMPLES=ON ..

                make
                sudo make install
                sudo ldconfig
        else
                echo "";
                echo "Skipping OpenCV installation";
                echo "";
        fi
else
        echo "Installing opencv python for non-Raspbian";
        sudo -H pip3 install opencv-python
        sudo -H pip3 install opencv-contrib-python
fi
date;

2018年3月12日月曜日

Raspberry Pi /tmpをメモリー上に確保する

SDカードは、各込み速度が遅くて, いろいろ処理速度を高めようとすると
「データ量の見積もりが可能」であれば
/tmpをメモリー上に取る事が有効なはず
古典的な手法だけど、その手順

(1) メモリー上に/tmpを設定、最後に追記する
sudo vi /etc/fstab

tmpfs     /tmp            tmpfs    defaults,size=84m,noatime,mode=1777      0       0
tmpfs     /var/tmp        tmpfs    defaults,size=16m,noatime,mode=1777      0       0
tmpfs     /var/log        tmpfs    defaults,size=32m,noatime,mode=0755      0       0

(2) /etc/rsyslog.confの編集

sudo vi /etc/rsyslog.conf


(3) /etc/rc.local

sudo vi /etc/rc.local
cat /etc/rc.local

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi


# create folder on ram disk

mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/samba
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
mkdir -p /tmp/motion
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp

exit 0

(4) sudo reboot

(5) 確認   ホスト名が違うのは、ご愛敬(^^)/
before


after

Peace!!

2018年3月1日木曜日

Setup PiTFT3.5 on Stretch

ロボットのUIは、タッチパネルがなんといってもダントツに良い。
紆余曲折があり、Adafruit PiTFT3.5を一点だけ除けば満足して使っている。
一番の良いのは、タッチパネルで使っているGPIO以外が使える事。
だから、I2Cなどのセンサが活用できる。これは、以外に重要なポイントなんです。

一点だけ除くと書いたのは、Easy InstallのモジュールがJessieって事。
ところが、、、
なんと、Device Treeの導入でStretchでも動くとな、、、
「感謝の記事」は、こちら、、、

https://qiita.com/hishi/items/bdd630666277e4f8162a

おかげで、こんな感じで使えるようになりました。



注意点(1)
この説明と違うの所は、僕が使っているのは3.5inchなので/boot/config.txtのこの設定。

dtoverlay=pitft35-resistive,rotate=90,speed=62000000,fps=25

画面も90度回転して電源が下になり、これも良し!
満足満足、、、
この数値の説明は、下記Adafruitページの中ほど、、、

https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/help-faq

注意点(2)
sudo rmmod stmpe_ts; sudo modprobe stmpe_ts

のあとは、sudo rebootが必要

ただ、ちょっと不明な点が多くて、安定しないかも、、、

Peace!!

2018年2月24日土曜日

いつも隣に、死がある

20代で余命宣言されて、、、

いろいろあり、

まずは、40まで生きる事

そして、次は60まで生きる事

そんな人生を僕は送って来た

ただ、予感は60

だから、どう考えても、それ以降が

脳みそのなかでデッドロック状態

バカでかいコンクリートブロックが、思考を進ませない

でも、常に死を意識していたから、何気に納得しているかも、、、

世の中で、絶対は、生きている人間には、死だけ

母が言っていた

絶対の世界に、行くのは確実

残された人が困らないように、

かたずけが、この半年の仕事

2018年2月7日水曜日

memo : Repeat on the command line

個人的なメモ、、、
コマンドラインで繰り返し処理をする。


while true; do date; sleep 1s; done
i=1; while [ $i -le 10 ]; do echo $i; i=$(expr $i + 1);done
watch -n 1 date

Peace!!

2018年2月6日火曜日

An installation of opencv2.4.13.5 on raspberry Pi

raspberry piでopencv 通常にインストール(apt-get) すると
なんと、2.4.9という4年前のモノ

なんでなんだろう。。。

そんな事より、都合で2.4.X使いたいので、buildしてインストールする。
現時点は、2.4.13.5。

いろいろ面倒な事をしたくなので、通常通りにインストール
sudo apt-get -y install libopencv-dev

これにかぶせる形で、インストールする
C言語だけしか使わないので余計なものはインストールしない
とは言っても、最初の通常インストールは意味なかったりして。
wget https://github.com/opencv/opencv/archive/2.4.13.5.zip
unzip 2.4.13.5.zip

cd opencv-2.4.13.5
mkdir build
cd build

sudo apt-get install -y build-essential git cmake pkg-config cmake-qt-gui mesa-utils  libgl1-mesa-dri libjpeg-dev libtiff5-dev libpng12-dev libjasper-dev  libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk2.0-dev libprotobuf-dev protobuf-compiler  libatlas-base-dev gfortran libeigen3-dev libv4l-dev python3-dev libqtgui4 libqt4-test libqt4-opengl-dev libvtk6-dev

cmake -D CMAKE_BUILD_TYPE=RELEASE      -D CMAKE_INSTALL_PREFIX=/usr/local      -D INSTALL_PYTHON_EXAMPLES=OFF       -D ENABLE_NEON=ON      -D WITH_TBB=OFF -D BUILD_TBB=OFF       -D WITH_QT=OFF -D WITH_OPENGL=OFF      -D BUILD_opencv_freetype=OFF      -D BUILD_EXAMPLES=OFF -D WITH_VTK=ON ..

make -j4
sudo ldconfig

例の如く小一時間





2.4.13.5 だす
cd samples/c
./build_all.sh
./facedetect  --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 ./lena.jpg


Peace!!