Windows10でPSeyeを動かし、OpenCVで利用する(2019 年)
Windows10でPSeyeを動かしたい
PSeyeは320*240の解像度のときのみだが、187fpsのキャプチャができる代物。
センサ(レンズとセンサの間)にはIRカットフィルタがついている。
それを外し、逆に可視光カットフィルタをつけることで、高速なIRセンサーと出来る。
試行錯誤の末、OpenCV上でPSeyeが動作することを確認したので、備忘録程度にメモを載せておく。省略箇所も多々あるため、もしより詳しく知りたい方がいましたらコメントください。
まずWindows10でPSeyeがカメラとして利用できるようにする。
最初に、大事なこととして、あるタイミングまでPCにPSeyeを接続してはいけない。
CL-eyeというドライバで利用できるようになる。しかし、現在は有料だ。
archive.orgに無料だった頃のドライバが存在したのでこれを使う。
CL-Eye-Driver-5.3.0.0341-Emuline.exeをダウンロードし、実行する。
CL-eye(archive)
https://archive.org/download/CLEyeDriver5.3.0.0341Emuline/
動作確認
実行し終わるとデスクトップにCL-eye Testという実行ファイルがある。
ここでPSeyeを接続し、実行する。
上手くいくとカメラの赤いLEDが点灯し、動作する。
PC内蔵カメラなどがある人は、DevicesタブからPs3 Eye Cameraを選択する必要がある。
OpenCVで動かす
OpenCVで動かすために、まずOpenCVを導入する。OpenCV4.1を導入したら、なぜかPSeyeが動かなかった。試行錯誤の末、OpenCV3.46(x86)での動作を確認している。x86(x86,Win32)で、動作したので、CMakeを使って導入する。
※10/28追記:OpenCV3.46(x64)の動作を確認した
※10/29追記:気のせいだった、やはりCL-eyeを用いるとx64では動作しない。どうやら、ドライバがx86にしか対応していないようだ。
OpenCVx86(3.46)
https://cmake.org/download/
以下のサイトを参考にした。導入時の注意点をまとめる。
https://qiita.com/mine820/items/32fea085350b57e3f9bf
- https://opencv.org/releases/
米印のついていないバージョンをダウンロードする(3.16は問題ない) - CMakeのインストールディレクトリは無理に変えない(コケた)
- CMake:Configure時にPlatformはWin32にセット
- CMakeでのビルド時にBUILD_opencv_worldを有効化させる
Visual Studioでの設定は以下のサイトが参考になる。ただし、ソリューションプラットフォームやパスの部分などはCMakeのビルド先を参照しながら適宜読み替える必要あり。
https://qiita.com/h-adachi/items/aad3401b8900438b2acd
OpenCVでの動作確認
以下のソースコードでPS eyeの動作を確認した。
#include <opencv2/opencv.hpp> using namespace cv; int main(int argh, char* argv[]) { cv::VideoCapture cap(1);//内蔵カメラがあるため、PS eyeのカメラは1 if (!cap.isOpened()) { return -1; } //PS eyeのFPSと解像度の設定 //FPSと解像度の組み合わせの選択肢はCL-Eye TestのOptionsタブのVideo Capture Pinより確認できる cap.set(CAP_PROP_FPS,187.003); cap.set(CAP_PROP_FRAME_WIDTH, 320); cap.set(CAP_PROP_FRAME_HEIGHT, 240); cv::Mat frame; while (cap.read(frame)) { cv::imshow("PS eye", frame); const int key = cv::waitKey(1); if (key == 'q') { break; } else if (key == 's') { cv::imwrite("img.png", frame); } } cv::destroyAllWindows(); return 0; }
なにか、至らぬ点や不明な箇所があればコメントください。
以上。