再起動したらカメラを接続してください。
そしてアプリ検索するとflycapture2がいるのでそれを立ち上げてみましょう
そうするとカメラが認識されていますね。
見てわかる通り20fpsしか出てません。悲しい...
さっさとssl-visionをインストールしましょう。ここからの手順は公式wikiと同様のなのでさくっと行きます。
sudo apt install git
git clone https://github.com/RoboCup-SSL/ssl-vision.git
gitってデフォルトでインストールされてないと思わなかった...
あとはもうおまじないをとなえるだけですね。
cd ssl-vision
sudo ./InstallPackagesUbuntu.sh
----------------------------------------------------------------------------------------------------------------
make
mkdir -p build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Release .. && \
cp ../CMakeLists.txt ./CMakeLists.txt.copy
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so
-- Found PROTOBUF Compiler: /usr/bin/protoc
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'eigen3'
-- Found eigen3, version 3.2.92
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found suitable version "4.8.7", minimum required is "4.8.0")
CMake Error at /usr/share/OpenCV/OpenCVConfig.cmake:183 (message):
opencv_imgcodecs is required but was not found
Call Stack (most recent call first):
CMakeLists.txt:88 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/oden/ssl-vision/build/CMakeFiles/CMakeOutput.log".
See also "/home/oden/ssl-vision/build/CMakeFiles/CMakeError.log".
Makefile:9: ターゲット 'build/CMakeLists.txt.copy' のレシピで失敗しました
make: *** [build/CMakeLists.txt.copy] エラー 1
あれエラーやん....
cmakelist読んだ感じOpenCV3じゃないといけないみたいなので手動インストールですね。
おっと口が滑りました。そういえばAIのslackにパッチあったなと思いつつ、
めんどくさいのでOpenCVをビルドしたいと思います。
参考にしたサイトさんはこちら「Ubuntu16.04: OpenCV3.4.0のインストール」
sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libhdf5-dev libwebp-dev libtiff-dev libjasper-dev
sudo apt install checkinstall auto-apt ccache
今回はバージョンOpenCV3.4.7で行きたいと思います。ダウンロードしたら解凍します。
cd opencv-3.4.7
mkdir build
cd build
cmake ..
make -j4
結構時間かかるので気長に待ちます。
sudo make install
インストールしたライブラリを反映するために再起動します、
sudo reboot
そしたら再度ssl-visionをgitから引っ張ってきて綺麗な状態でビルドを行います。
git clone https://github.com/RoboCup-SSL/ssl-vision.git
cd ssl-vision
(追記)よく考えたらflycaptureのドライバを当てるとこのカメラはieee1394にデータ転送されるようになってるのでこんなことしないでmakeして大丈夫です。
make -j4
終わったらvisionを立ち上げてみましょう。
~/ssl-vision$ ./bin/vision -s
そしてThread0>Image Capture>Capture Controlへ行き、
Capture ModuleをDC 1304へ変更しstartを押すと、
見事に映像が出力されます。
cmakeのflycaptureの部分おそらく今までどおりGigEカメラ用みたいですね。関係なかったや。
カメラの解像度などは手動で設定しないといけないので、そこは気をつけます。
今回のカメラだと設定はこんな感じですね。解像度最大にしたら一気にフレームレートが落ちました。
USB2.0の限界ですね。
あとは設定をこつこつ詰めていくだけですが、楽にキャリブレーションするためのコツを少しだけ
カメラの設定変更はThread0>Image Capture>DC1394>Camera Parametersから行います。
そして一番の要になるパラメータはWhite Balanceです。カメラやっている人は解ると思いますが、白の色をとるのがやはり一番基本です。これがしっかりできているだけで色取りが15分かからずに終わるようになります。おそらく最初はオートになっているはずなので、手動で調整しましょう。
ホワイトバランスの調整方法ですが、普通なら色温度なのですがssl-visionはUV色空間というもので調整します。本来ならcie1960に準拠しているはずですが、このパラメータは完全にカメラのハードウェア依存です。
オートでもいい線いくんですが、大会中の照明の変化とか、照明の光源なんかでがばがばなことがあるので、必ず手動にして、微調整してください。
CIE 1960 色空間 (wikipediaより)
ちなみにこの調整は勘です。パラメーターがカメラ依存なので、カメラを使ってる学校の人がなれてます。
ロボットのマーカーの画用紙を真ん中とどこかの角において、色がちゃんと分離できているか確認しながら行ってください。色温度をわざとずらして黄色と緑、青とピンクの画用紙の色を完全に分離するプロみたいな技もあったりなかったり。
これさえできれば、あとはシャッター速度を微調整したりサテライトで色の濃度調整すればぱぱっと動作環境がつくれます。色取りはなんかオートキャリブレーションが追加されてましたが、昨年までそんなものはなかったので知りません。
というわけで今回はこんな感じにやればできるよってお話でした。
最後に、解像度が増えると、シングルタスクで処理してるっぽいssl-visionはとても重くなります。なので、設定変更して反映されるまで固まりますがそこは気長に待ってください。
というわけでssl-visionで大会の公式環境を立てる方法でした。
それでは。
0 件のコメント:
コメントを投稿