2017年1月17日火曜日

組織の知識ネットワーク:多次元Simulator

僕は、農業も、ロボットもしているけど、、、

さらに、「はたらき方改革」の仕事もしている。

どっちかというと、後者が一番得意かなぁ。

特に、方法論で実現する事が得意。

これは、前職で、外資系からこられた役員に言われたこと。

コンサルは、メソッドで価値を提供しろ。

同じ事は、ヘッドハンティングされた世界最大のコンピュータ会社の役員も言っていた。結局断ったけど、、、

だから、僕はメソッドで「はたらき方改革」を実現する。

このメソッドは、僕が開発した、すでに100社以上で実績のある方法論をさらに、バージョンアップしたもの


詳しくは、説明しないけど、、、

やっと、僕が目指す「メソッド」実現できるかも

Peace!!


2017年1月16日月曜日

streo_matching of OpenCV320

Windows10上で問題なく、Eclipse+OpenCV320+msys2が稼働するのかと

で、ちゃんと動きそうなので、、、

ただ、msys2に関しては、もう少し詳しくみる必要があるかと、、、

streo_matchを動かしながら、パラメーターのチェック

eclipseで下記のパラメータを変化させながら処理内容を確認

steeo_match left-image right-image --algorithm=sgbm --max-disparity=256  --blocksize=1


パラメータで、こんな感じに変化する。

楽しいね。(^^)


Peace!!


An Instllation of OpenCV 3.2.0 on Windows10 using msys2

これも自分用のメモなので悪しからず。。。(^^)
でも、これで、Windows PCだけでもロボット用の画像処理ができるので良かったです。(^^)

1.目標

Windows10上で、eclipseをIDEとして使って、OpenCV開発環境をつくる事
Windowsなので、Visual StudioをIDEとして選択できますが、僕の場合は、マルチプラットフォームで開発しているので、IDEとしてeclipseを使っています。
windowsだけしか使わない人は、Visual Studioが一番です。

2.手順

2.1 環境準備

2.1.1 msys2環境構築、開発環境をpacmanで導入する

pacman懐かしい。mingw32とmingw64の2つがセットアップされる。
実際は、minigw32は空っぽです。
Windowsの環境設定のPathは、C:/msys2/mingw64/binに設定。
下の様な感じで、Windowsの中でUNIX的に使えちゃマス。
アイコンが3つできます。僕は「MYSY2 MinGW 64-bit」を使っています。
msys2をインストールしてから、開発環境としてmingw64を設定する方法を実行しました。
基本的な環境設定は、これで終わり。あとは順次必要な物をインストールします。

$ pacman -Syu
$ pacman -S base-devel
$ pacman -S msys2-devel
$ pacman -S mingw-w64-x86_64-toolchain


2.1.2 vtkをインストールする

OpenCVの画面表示の機能などがvtkに依存しているのでインストール

$pacman -S mingw-w64-x86_64-vtk

2.2 ビルド準備、ビルド

2.2.1 opencvのダウンロードと展開

opencv.orgから、windows用の圧縮ファイルをダウンロードします。
展開すると、sourcesフォルダーがあります。この中にbuildディレクトリを作成して、ここで作業をします。msys2でコマンドラインで作業をする時は、buildディレクトリに移動して作業をします。
sourcesフォルダーと同じ位置にbuildディレクトリーがあります。これと上記のディレクトリを間違わないように、、、

2.2.2 cmake

sourcesのbuildディレクトリーを、出力先として設定して使います。
OpenCVのソース展開をしてbuildディレクトリを作成してConfigureする。
図のように赤い状態になったらエラーメッセージを読んで設定を変更する。
赤い部分が無くなるまで繰り返す。赤い部分が無くなれば、Generateして終了。



2.2.2 mingw32-make

もちろん、パスはmingw64/binなのでそのモジュール。
32という数字がややっこしい。i5のPCで35分くらい


2.2.3 mingw32-make install

cmakeの時に指定したディレクトリーにインストールされる。
cmake のデフォルト値は、buildの下のinstall
ここの下のx64を、sources/x64に上書きする。
ただ、IDEを使って開発する場合は、別に上書きしてもしなくても関係ないです。その時はWindowsのパスでは、ここで作成される「x64/mingw/bin」を指定する必要があります。忘れずに設定します。


2.3 eclipseで確認

eclipseの設定は、Includeと、Libraryです。
下のソースを実行すると画像のように赤い四角が出現。
これで、めでたしめでたし\(^o^)/



#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

int main(int argc, const char* argv[])
{
  // 幅320px、高さ240pxで赤色の画像データを生成
  cv::Mat redImg(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 255));

  // 画像表示用のウィンドウを生成
  cv::namedWindow("red", cv::WINDOW_AUTOSIZE);

  // ウィンドウに画像を表示
  cv::imshow("red", redImg);

  // キー入力を待機
  cv::waitKey(0);

  // 作成したウィンドウを全て破棄
  cv::destroyAllWindows();

  return 0;
}

Windowsのpath設定(僕の場合)

c:\msys2\mingw64\bin
e:\dev\opencv\build/x64/mingw/bin

事件

vtkをインストール後に、、、
なんと、makefie等に、「C:/building/msys64」とハードコーディングされた
部分があり、これを下記のコマンドで検索し、手動で「C:/msys2」と自分の環境に変更した。
find ./ -type f -print | xargs grep 'building/msys64' > /tmp/qq.txt

qq.txtの内容を確認して、問題の記述があるファイルを特定して、秀丸エディターで読み込み、一括返還した。この対応をしながらbiludを数回繰り返し、、、
結局、丸一日。。。。

Peace!!





2017年1月15日日曜日

OpenCV3.2 開発環境:WindowsにXserverを立ち上げる

基本的に、私の作業記録なので、悪しからず、、、(^^♪

1.目的
Raspberry Piで、OpenCVを使ったロボット自走用の画像処理アプリケーションの開発をしている。
開発はRaspberry Piをホストに、WindowsやMacからリモート接続して実施している。

Macからの接続は問題なく行える。WindowsではCygwinを使ってリモート接続の環境構築をしていたけど、C:/Cygwin64以下が10GBを超えて、かつWindows上でも開発をしたいので、環境変更をする事にした。

利用する開発環境は可能な限り、マシン依存にしたくなので、、、
・GNUコンパイラーをつかう
・IDEは、Eclipse CDT

従って、OpenCVは、buildして環境構築する。

2.実施項目
(1)Teratermのインストール
これは、そのままインストールする。
そして、「設定」→「SSHポート転送」で、
「リモートの(X)アプリケーションをローカルのXサーバーに表示する」に
チェックをいれる。
そして、「設定」→「設定の保存」で、上書きをした。

3.Xmingのインストール
SourceForge.netからダウンロードする。

インストール時には、Select Componetsの画面で、
「Don't install an SSH client」にチェックする。
その後は、デフォルトでインストール

4.起動
(1)Xmingの起動
         XlaunchではなくてXmingを使う。

(2)Teratermで、リモートログイン

これで、すっきり(^^♪

Peace!!



2017年1月14日土曜日

An Installation opencv 3.2 on Raspberry Pi 3

更新 2017/06/03

Raspberry Pi 3に、opencv 3.2 をインストールした忘備録

大まかな手順は、

1.依存するソフトのインストール

2.ソースをopencv.orgからダウンロードし、解凍、および作業dir作成

3.cmake

4.make

5.opencv インストール

では、記録の始まり


1.依存するソフトのインストール

http://plantuml.com/download から、plantumljarをダウンロードする
sudo cp plantuml.jar /usr/share/java

sudo /sbin/ldconfig

sudo apt install -y build-essential cmake  pkg-config

sudo apt install cmake-qt-gui

sudo apt install mesa-utils

sudo apt install libgl1-mesa-dri

sudo apt install -y libjpeg-dev libtiff5-dev  libpng12-dev libjasper-dev

sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev

sudo apt install -y libgtk2.0-dev

sudo apt install libprotobuf-dev protobuf-compiler

sudo apt install libvtk5-dev libvtk5-qt4-dev

sudo apt install python-vtk tcl-vtk

sudo apt install -y libatlas-base-dev gfortran libeigen3-dev

sudo apt install libv4l-dev

sudo apt install -y python3-dev

sudo apt install libqt4-core libqtgui4 libqt4-test libqt4-opengl-dev

sudo apt install -y sphinx-common doxygen

こっちを使う

インストール -----------------------------------------
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 libvtk5-dev libvtk5-qt4-dev python-vtk tcl-vtk  libatlas-base-dev gfortran libeigen3-dev libv4l-dev python3-dev libqt4-core libqtgui4 libqt4-test libqt4-opengl-dev sphinx-common doxygen


python3の開発環境があれば下はいらない。30分位かかる
sudo apt-get install python3-dev python3-pip

-----------------------------------------------------------

sudo cp plantuml.8053.jar /usr/share/java
( http://plantuml.com/download からダウンロードする)
cd /usr/share/java
sudo ln -s plantuml.8053.jar plantuml.jar
ls -l plantuml.jar
cd ~/opencv_3.2.0/build
sudo apt install -y sphinx-common doxygen
sudo /sbin/ldconfig

2.ソースをopencv.orgからダウンロードし、解凍、および作業dir作成

ダウンロード後に、~/で解凍すると次のディレクトリーができるので、その中に入って、作業ディレクトリーを作成

参考
wget https://github.com/opencv/opencv/archive/3.2.0.zip
wget https://github.com/opencv/opencv_contrib/archive/3.2.0.tar.gz

wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip

unzip opencv-3.2.0.zip
unzip opencv_contrib-3.2.0.zip

cd opencv-3.2.0

mkdir build

cd build

3.cmake

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=OFF -D BUILD_TBB=OFF  \
     -D WITH_QT=ON -D WITH_OPENGL=OFF \
     -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules \
     -D BUILD_opencv_freetype=OFF \
     -D BUILD_EXAMPLES=OFF ..

上記のcmakeは、サンプルプログラムのbuildがOFF
もし、buildするならONにする。

4.make

make -j4

5.opencv インストール

sudo make install
sudo ldconfig

samples/cppに移動してお決まりのlenaさん

g++ `pkg-config opencv --cflags --libs` facedetect.cpp -o facedetect

./facedetect  --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 ../data/lena.jpg




Peace!!

補足
fatal error: sys/videoio.h: No such file or directory
このエラーは、cmake でopencv_contrib-3.2.0を、
opencv-contrib-3.2.0と間違った指定で発生
で、3時間つぶした(´;ω;`)