OpenCVビルド時のCUDAのccbinの指定方法

リンネの生物階級分類において,「スズキ目」というのは脊椎動物中で最大の規模を誇る「目」なんだそうです.
スズキ目スズキ科スズキはまさに全生物中における最大勢力を束ねる王者と言えましょう.だから何.

さかな前線 » CMakeでCUDAの-ccbinの正しい指定方法の姉妹記事です.

さて,Linux上でOpenCVでCUDAサポートをONにしてビルドするとき,GCCのバージョンを指定したいことがあります.
基本的にはデフォルトGCCなんですが,4.8系などは現在のCUDAのnvccではサポートされていませんので,CUDAビルド時に限りGCC4.4や4.6を使うという設定です.

具体的には,CMakeのときに以下のように書きます

$ pwd
/home/hogehogehogehogeho/opencv-2.4.6.1/build

$ cmake -DWITH_CUDA=ON -DCUDA_HOST_COMPILER=/usr/bin/g++-4.4 ..

$ make -j40 -s; sudo make install

WITH_CUDAとともにCUDA_HOST_COMPILERを正しく設定すればいいのですが,CUDA_HOST_COMPILERに指定するgccはPATHが通っていても絶対パスで指定する必要があるようです.
CUDA_HOST_COMPILER=g++-4.4と書くと,ないよ>< って言われます.

以上です.

参考:OpenCV – Bug #2844: build with CUDA 5.0 on macosx – OpenCV DevZone

root権限の無い哀れな子魚ちゃんたちのためのgcc野良インストール(Linux)

僕の専門は画像パターン認識でして,魚画像からの種類判別とかいつかやっていみたいなぁとか思ってるんですがなかなかこれは問題として難しそうです.ここ(PDF注意)とかにそういう文献が出てるんですがこれは何の本なんでしょう?知ってる方いたら教えて欲しいです.使われてる技術を見ると2000年代以降のものではないなという印象.それより昔のことは体系的には知りません・・・w

さて,常に最新のgccが使いたいという人のためのにgccを野良ビルドしてインストールする手順を以前さかな前線 » GCC 4.6.2が出たので手動インストール方法メモ(Linux)に書きました.

一方で,共用計算機などではroot権限がなく勝手にプログラムをインストールできないことがよくあります.
そんなときでも,自分の領域が割り当てられていればそこに野良ビルドしてインストールして使うことは可能です.
そういう構成を可能にするためのgccのビルド方法をメモっときました.
今回はGCC 4.7.2を64bit版Linuxに入れることを考えています.

基本的にはさかな前線 » GCC 4.6.2が出たので手動インストール方法メモ(Linux)と同じです.
ただし一部,gcc4.6.2の手動インストールメモ – N_Nao’s logを参考にしています.

Continue reading

Intel製CPU内蔵GPU使用時にLinuxホスト上のVMWareのゲストの3Dアクセラレーションが有効化できない場合の対処

先週金曜日(2013/1/25)から猛烈な寒波が全国を襲ったらしいのですが今日辺りからやっとゆるんで,名古屋の最低気温も0度越えでした.
もう晩冬になりますね.晩冬と言えば,綺麗なプロポーションで個人的に好きなお魚であるサヨリが旬ということでぜひ楽しんでみたいです.

さて,ホストをLinuxとしてVMWare上でWindowsゲストを動かす場合などで,GPUがIntel製である(HD Graphics 3000とかである)場合に,ゲストの3Dアクセラレーションが有効にできないようです.

Continue reading

MATEデスクトップ環境のマルチディスプレイ設定

お魚の目にはDHAって物質がたくさん含まれてて,その神経細胞に与える影響のおかげで,魚の目を食べると頭良くなるとかって言うんだそうですね.
IQの不足を実感する今日この頃であります.

さて,Linux Mintのデスクトップ環境の一つであるMATEですが,マルチディスプレイにしたときのデスクトップ周りの設定があまりなかったのでメモ.

基本的にはさかな前線 » Xfceのマルチディスプレイ設定をXfceからMATEにした話です.

表示する位置関係の設定

2枚のディスプレイの物理的配置と論理的配置を整合させる設定.
[メニュー]→[設定]→[モニタの設定]をクリック.

で,表示されてるディスプレイをD&Dして適切に配置しなおして,適用.
ま,この設定はググれば普通にでてきてくれますw

20130125_monitor_setting

パネルの表示位置

パネル(下のバー)はデフォルトでは「0番目のディスプレイ」に表示されます.
ディスプレイの配置によっては「0番目として認識されたディスプレイ」が適切な位置にないことも普通にあるので,パネルをどのディスプレイに表示するか設定します.

[メニュー]→[システムツール]→[設定エディタ]から設定エディタを開き,下のスクショのように[apps]→[panel]→[toplevels]→[panel0]へと辿ります.
そこにあるmonitorの項目が,何番目のディスプレイにパネルを表示するかの設定なので,0から1や2など適切な番号に変えることで,意図した配置になります.

20130125_setting_editor

壁紙をディスプレイに応じて変えることはできないのか(´・ω・`)

MATEデスクトップ環境では調べた限りできないみたいですね・・・

ssh -Xでevinceが動かない場合の対処

ぶっちゃけるとわりと最近までそれほど魚食べるのは好きじゃなかったんですね.
でも魚キャラを2年かそこらくらいやってて,自分の中に変化が….
というわけでお魚食べたいです.お魚.

さて,sshのX転送は便利でよく使わしてもらってるんですが,アプリによっては特有のエラーで使えなかったり.

Ubuntu系ディストロにて標準で使えるevince(PDFのドキュメントビューア)もそんなアプリの一つで,ssh -Xで普通に実行すると次のようなエラーが出ます(ちゃんと環境変数設定してても).

% DISPLAY=localhost:10.0 evince hogehoge.pdf
(evince:xxxxx): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported
                Cannot parse arguments: ディスプレイをオープンできません:

ぐぐると,日本語の情報はあんま見つかんなかったのですが,
My Meaningless Scribbles …: Evince would not start over SSH X-forwarding
で解決法が紹介されました.エラーメッセージだけでぐぐるとこれは見つからなかったですね.
これしてからsshで入った先で,

% sudo ln -s /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable
% sudo /etc/init.d/apparmor restart

を実行すると,他のアプリと同様にX転送してくれるようになって(゚д゚)ウマーです.

おっと論文書いてることバレるぞ(違

sshプロキシ設定

あけましておめでとうございます.
蛇年ですね.年男ですが,今年も魚でやっていきます.

さて,ラボのLAN内の自分のマシンに学外からsshで入りたいです.
そのためには,ラボのゲートウェイを超える必要があって,多段SSHをする必要があります.

家PCから,ラボGWにsshして,そこからラボPCにssh,これを,SSHプロキシ機能で一度にやってくれる設定.
いわゆるport forwardingではなくて,ncとかも不要で原理もわかりやすく設定もラクです.

基本的にはこのあたりを参考にしてるというかそのままです.
The Weight @northeye: sshコマンドだけで多段ログインする
あとこのやり方の手がかり?は@ton1517が教えてくれました.thx!

家PC,ラボGW,ラボPCどれもLinuxです.

家PCの自分のssh設定を記述します.$HOME/.ssh/configを編集してください.

  • 家PCホスト名: HOMEPC
  • ラボGWホスト名: LABGW (外から普通にsshできる完全な名前で)
  • ラボPCホスト名: LABPC
  • ラボPCに入るときのユーザ名: labgw_name
  • ラボGWに入るときのユーザ名: labpc_name

として,

% cat ~/.ssh/config
Host LABPC
    Hostname        LABPC
    User            labpc_name
    ProxyCommand    ssh labgw_name@LABGW -W %h:%p

ホスト名はIPアドレスでもおkです.

何段階かのGWを経る必要がある場合はHostのホスト名やプロキシ先を変えながら経由するGWの分だけ線形リストのように書き足して行けるようです.

これで,家PCにて

HOMEPC% ssh LABPC

でラボPCに一気につながります.ユーザ名修飾も不要で(゚д゚)ウマーです.
また,

HOMEPC% ssh -XY LABPC

としてXの転送もできて超(゚д゚)ウマーです.

以上,2013年最初の記事は完全に自分用メモでした.

私事ですが,こうしてラボ外からでも自由に研究できるようにしないとヤバい状況です.なんという年明け.
研究という名のエクストリームスポーツ.

Linuxでの野良ビルドのOpenCVでカメラをちゃんと使うにはlibv4l-devが必要みたい

地元に鮎の美味しいお店があって,そこの背ごしは最高の絶品だったりします.また行きたいですが,地元でも山の中なので,行くこと自体がけっこう大変.

さて,Computer Vision Advent Calendarの担当日からすでに3時間遅刻していますがこれはその記事ではありません.
今,がんばって書いてるところです(←

手元のLinux環境でOpenCVを野良ビルドするとき,libv4l-devをインストールしてからでないと,cv::VideoCaptureが動かないみたいです.

$ sudo apt-get install libv4l-dev
 ...
 --   Video I/O:
 --     DC1394 1.x:                  NO
 --     DC1394 2.x:                  YES (ver 2.2.0)
 --     FFMPEG:                      YES
 --       codec:                     YES (ver 53.35.0)
 --       format:                    YES (ver 53.21.0)
 --       util:                      YES (ver 51.22.1)
 --       swscale:                   YES (ver 2.1.0)
 --       gentoo-style:              YES
 --     GStreamer:                   NO
 --     OpenNI:                      NO
 --     OpenNI PrimeSensor Modules:  NO
 --     PvAPI:                       NO
 --     GigEVisionSDK:               NO
 --     UniCap:                      NO
 --     UniCap ucil:                 NO
 --     V4L/V4L2:                    Using libv4l (ver 0.8.6)
 --     XIMEA:                       NO
 --     Xine:                        NO
 ...

ここでUsing libv4lとなってることが重要みたいです.

cv::VideoCaptureが無言でエラーだけ返すので困りましたがそういうことだったみたいです.

HDDが複数ある状態で片方にWindows 7を新規インストールすると出るエラー

さいきん鮭にはまっています.旬ですからね,旬.シンプルにグリルで焼くと美味しい.

さて,デスクトップPCを自作しまして,SSDとHDD構成にしました.
SSDにはメイン使いのためにLinuxを,HDDには何かで必要なときのためにWindows 7を入れます.
なのでSSDが一番上に認識されてる状態です.
その状態でHDDにWindowsを入れようとすると,インストール先パーティションの設定の画面でHDDを選んで進もうとしても

新しいシステムパーティションを作成できなかったか、既存システムパーティションが見つかりませんでした。詳細については、セットアップログファイルを確認してください。

なんて言われて進めません.

こんなときは,SSDを一旦物理的に抜いてしまうと問題なくいけました.
う〜ん.謎でございます.Windowsさんはイチバンでなきゃ気が済まないんですかね.運動会シーズンは過ぎたのでその思いは封印して欲しかったな.

Xfceのマルチディスプレイ設定

もうそろそろかれこれ1年近くXfce派です.
最近はLinux Mint 13のXfce版を使ってます.

さて,マルチディスプレイをするときですが,標準の設定ツール(「ディスプレイ」ダイアログ)は全く使い物になりません.並べて表示すらできない.
ですが,「設定エディタ」ダイアログを使うと自由自在に設定できるので,メモ.

Continue reading

Tesseract OCRのUbuntuでのインストール手順

オープンソースOCRライブラリのTesseract OCRをUbuntu 11.10に入れる手順です.

最近ネタが無いのでずっと昔のメモを掘り起こして記事にしてみたw

インストール手順

http://code.google.com/p/tesseract-ocr/downloads/listから最新版(tesseract-3.01.tar.gz)をダウンロードしてから,

% sudo apt-get install m4 autoconf libtool libleptonica
% tar xf tesseract-3.01.tar.gz 
% cd tesseract-3.01
% ./autogen.sh
% ./configure
% make
% sudo make install
% tesseract --version
tesseract 3.01

他のLinuxディストロの場合も最初のapt-getの行を適切に置き換えるだけでよいと思います.

make時にエラーが出たら,viewer/svutil.cppの頭に

#include <unistd.h>

を追加してmakeしなおすといけます.

Tesseract OCRについて

Tesseract OCRについては@takminさんの資料
Tesseract OCRに触ってみた (2011/07/19 JapanCV発表資料)- takminの書きっぱなし備忘録
がおすすめです.

JapanCVは昨年2011年に開催されてて僕も行きましたが最高のイベントでした.
さかな前線 » 全日本CV勉強会に参加しました.ついでに少ししゃべりました.
という宣伝(を