ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

PTAMコミュの質問板

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ARに関する質問!
PTAMに関する質問!
HandyARに関する質問!
...etc
やりたいけどできない人を助けてください。。。

お願いします。

コメント(18)

ゆいめいさんの「PTAMとHandyARでbulletしてみた」

を見てHandyARを使ってみたいと思い、さっそくHandyARをDLしたものの。。。

頑張っていろいろしてエラーは減ったものの、、、うまくいきません。。。

簡単なことなんだろうけど、、、お願いします!

問題のエラーは

flycap.h(41) : fatal error C1083: include ファイルを開けません。'PGRFlyCapture.h': No such file or directory

です。。。お願いいたします。。。
はじめまして。
tktkと申します。

PGRFlyCapture.hがディスク上にあるのであれば、パスが通っていないだけだと思いますが...どういった環境なのかよく分からないので、コメントしづらいです。

質問される時は、OS等の環境や「いろいろした」事について書いた方が良いと思いますよ。
tktkさん回答ありがとうございます。

「いろいろした」とは、
デスク上にPGRFlyCapture.hがないか探したことと、
PGRFlyCapture.hをググってみたこと
エラーのC1083を調べてみたこと
の三つのことをやりました

VC++2008ExpressEdition
HandyAR-ver0.2
を使っています。

tktkさんの言うようにパスが通っていないだけで
PGRFlyCapture.hのパスが必要な場合
どこから入手するのか教えていただけると助かります。

本当にVC++もARについても初心者のためわからないことだらけで、、、すいません。。。
http://www.ne.jp/asahi/hishidama/home/tech/vcpp/setting.html

「インクルードファイルのパス」VC++.NET/2005の場合
といった感じです。

PGRFlyCapture.hのある場所をVCに教えるだけです。
ひっこりーさん、はじめまして。

「いろいろした」ことについては分かりましたが、その結果はどうだったのでしょう?
PGRFlyCapture.hは見つかったのですか?
みつかったのなら、tktkさんのやり方でよいと思います。

HandyARについてよく知りませんが、PGRFlyCapture.hはPoint Grey Research社のカメラを動かすための開発ライブラリに付属しているものです。
もしひっこりーさんがPoint Grey Research社のカメラを使っているのであれば
Point Grey Research社のサイトから製品のシリアル番号を入力することにより開発ライブラリがダウンロードできます。
そうでないならば、ご自分の使用しているカメラに合わせてソースコードを修正するしかありません。
tktkさん
わかりやすいサイトを教えていただきありがとうございます。
基礎に関してはわかる範囲で勉強していきます。

ゆうさん
Point Grey Research社のカメラを使ってませんでした。
logicoolのQCAMを使っていますので、ソースコードの書き換えが必要のようですね、、、
ありがとうございます。

指摘をいただいてから自分でソースの書き換えをしようとしたのですが、どこをどう手をつけて良いかわからないままで、、、時間だけがたってしまっている状況です。

もし他の方でもlogicoolのQCAMを使ってHandyARを動かせた方がいらっしゃいましたら
指摘をしていただけると嬉しいです。

お願いします。
しおみさん、はじめまして。

情報が少ないので何が原因なのか、わからないのですが
VisualC++を使われていると思うのでデバッグモードで起動し、
どこで止まるのか確認してみてはいかがでしょうか。

グラフィックボードがNVIDIAじゃないのがよくないのかな?
しおみさん

そういえば数ヶ月前に同じようなことに遭遇した記憶があります。
tracker.ccの以下の部分を書き換えるとできるかもしれません。

---オリジナル
if(mbDraw)
{
glDrawPixels(mCurrentKF.aLevels[0].im);


---改造後
if(mbDraw)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glRasterPos2i(0, 0);
CVD::glDrawPixels(mCurrentKF.aLevels[0].im);
初めまして、よんじゅうにといいます。

PTAMのキャリブレーションができません。

環境は
Windows Xp
VC++2008 pro
です。

ビデオカードはOpenGL Extensions ViewerにてOpenGL2.0とでましたので、問題なさそうです。
ビデオカメラはLogicool制でUstream用として使えていたため、問題なさそうです。



以下に経緯を記します。

コンパイルは警告がいっぱい出てましたが無事に終了しました。
そこでPTAM\Releaseフォルダの中のCameraCalibrator.exeとPTAM.exeをPTAMフォルダに移し、CameraCalibrator.exeを実行しました。
するとウィンドウが出て来ますが中に何も表示されず、後ろのデスクトップ画面やウインドウなどが写ってしまいます。
しばらく待っていても変わらないため、Ctl-Cにて強制終了したことろ、以下のようにコマンドプロンプトには表示されていました。


Welcome to CameraCalibrator
--------------------------------------
Parallel tracking and mapping for Small AR workspaces
Copyright (C) Isis Innovation Limited 2008

Parsing calibrator_settings.cfg ....
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
> forrtl: error (200): program aborting due to control-C event
Image PC Routine Line Source
lapack_win32.dll 007E95A2 Unknown Unknown Unknown
lapack_win32.dll 007E6EE9 Unknown Unknown Unknown
lapack_win32.dll 007946E7 Unknown Unknown Unknown
lapack_win32.dll 007A1954 Unknown Unknown Unknown
kernel32.dll 7C87655C Unknown Unknown Unknown
kernel32.dll 7C80B729 Unknown Unknown Unknown


Webcamで動作させるようにしています。
一応IEEE接続バージョンでコンパイル、実行してみましたが、カメラを持っていなく、接続しなかったため、カメラが見つかりませんとでて終了しました。
lapack_win32は公式サイトが変わり、shared-libs.zipが無くなってしまったため
http://sourceforge.jp/projects/sfnet_ngsolve/downloads/ngsolve/Additional%20Files/Lapack-shared-libs.zip/
よりダウンロードしています。
また、system32フォルダ下にあるのは確認しています。
TooN,libcvd,gvars3は2008-9-5版でPTAMをコンパイルしようとしたことろ、
KeyFrame.hの81行目において"<"が不正な構文であるというのを筆頭に500ほどのエラーが出たため最新版でコンパイルしたことろ、エラーはなくなりました。

特にエラーもないためどこが悪いのか解らないのですが、どなたか解決法をご存じの方いらっしゃいませんでしょうか?
初めまして。

PTAMをコンパイルしようとしたことろ、
大量のエラーで出てしまって中々先に進めません。。。
PTAMをコンパイルする手順まで出来ました。
自力でエラーを直していって、
今のところ2つのエラーだけになりました。

環境は
Windows XP
Microsoft Visual C++ 2008 Express Edition

// Add re-weighted measurements to WLS:
for(unsigned int i=0; i<mvHomographyInliers.size(); i++)
{
double dWeight = Tukey::Weight(vdErrorSquared[i], dSigmaSquared);
wls.add_mJ(vvErrors[i][0], vmJacobians[i][0], dWeight);
wls.add_mJ(vvErrors[i][1], vmJacobians[i][1], dWeight);

}

ptam\homographyinit.cc(165) : error C2039: 'add_mJ' : 'TooN::WLS<Size>' のメンバではありません。

ptam\homographyinit.cc(166) : error C2039: 'add_mJ' : 'TooN::WLS<Size>' のメンバではありません。


間違いを教えてほしいのですがよろしいでしょうか?
600個ぐらいのエラーを自力で直していったので、
自信のないところだけ確認してもらえませんか?

ファイル名とキーワードを書いたので、
このキーワードの周りの1・2行部分を教えてください。


問題のあるファイル名    問題のあるキーワード/文


Bundle.cc ・ Zeros



EyeGame.cc ・ Identity



HomographyInit.cc  ・   Identity


HomographyInit.cc

// Add re-weighted measurements to WLS:
for(unsigned int i=0; i<mvHomographyInliers.size(); i++)
{
double dWeight = Tukey::Weight(vdErrorSquared[i], dSigmaSquared);
wls.add_mJ(vvErrors[i][0], vmJacobians[i][0], dWeight);
wls.add_mJ(vvErrors[i][1], vmJacobians[i][1], dWeight);
}



MapMaker.cc ・ Identity



PatchFinder.h ・  Identity



PatchFinder.cc ・  Zeros
・ Identity



PatchFinder.h ・ Identity



SmallBlurryImage.cc

SO3 so3;
for(int it = 0; it<3; it++)
{
WLS<3> wls; // lazy; no need for the 'W'
wls.add_prior(10.0);
for(int i=0; i<2; i++)
{
// Project into the image to find error
Vector<3> v3Cam = so3 * av3OrigPoints[i];
Vector<2> v2Implane = project(v3Cam);
Vector<2> v2Pixels = camera.Project(v2Implane);
Vector<2> v2Error = av2Turned[i] - v2Pixels;

Matrix<2> m2CamDerivs = camera.GetProjectionDerivs();
Matrix<2,3> m23Jacobian;
double dOneOverCameraZ = 1.0 / v3Cam[2];
for(int m=0; m<3; m++)
{
const Vector<3> v3Motion = SO3::generator_field(m, v3Cam);
Vector<2> v2CamFrameMotion;
v2CamFrameMotion[0] = (v3Motion[0] - v3Cam[0] * v3Motion[2] * dOneOverCameraZ) * dOneOverCameraZ;
v2CamFrameMotion[1] = (v3Motion[1] - v3Cam[1] * v3Motion[2] * dOneOverCameraZ) * dOneOverCameraZ;
m23Jacobian.T()[m] = m2CamDerivs * v2CamFrameMotion;
};
wls.add_mJ(v2Error[0], m23Jacobian[0], 1.0);
wls.add_mJ(v2Error[1], m23Jacobian[1], 1.0);
};

wls.compute();
Vector<3> v3Res = wls.get_mu();
so3 = SO3::exp(v3Res) * so3;
};



Tracker.cc

// The TooN WLSCholesky class handles reweighted least squares.
// It just needs errors and jacobians.
WLS<6> wls;
wls.add_prior(100.0); // Stabilising prior
for(unsigned int f=0; f<vTD.size(); f++)
{
TrackerData &TD = *vTD[f];
if(!TD.bFound)
continue;
Vector<2> &v2 = TD.v2Error_CovScaled;
double dErrorSq = v2 * v2;
double dWeight;

if(nEstimator == 0)
dWeight= Tukey::Weight(dErrorSq, dSigmaSquared);
else if(nEstimator == 1)
dWeight= Cauchy::Weight(dErrorSq, dSigmaSquared);
else
dWeight= Huber::Weight(dErrorSq, dSigmaSquared);

// Inlier/outlier accounting, only really works for cut-off estimators such as Tukey.
if(dWeight == 0.0)
{
if(bMarkOutliers)
TD.Point.nMEstimatorOutlierCount++;
continue;
}
else
if(bMarkOutliers)
TD.Point.nMEstimatorInlierCount++;

Matrix<2,6> &m26Jac = TD.m26Jacobian;
wls.add_mJ(v2[0], TD.dSqrtInvNoise * m26Jac[0], dWeight); // These two lines are currently
wls.add_mJ(v2[1], TD.dSqrtInvNoise * m26Jac[1], dWeight); // the slowest bit of poseits
}

wls.compute();
return wls.get_mu();
}



初めまして。
PTAMではARの表示が自動で行われるため、なかなか上手く表示されません。
そこで、表示の部分をマーカで決めれば安定するのではと考えたのですが、自分はc++は畑違いなため、思うように行きません。
此処(http://render.s73.xrea.com/pipe_render/2009/03/ptam-2-2.html)
で手順みたいなのは示されているのですが、自分には難しいです。
そこで、よろしかったらどの部分を変更すればいいのか、具体的に教えていただけないでしょうか?
よろしくお願いします

ログインすると、残り6件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

PTAM 更新情報

PTAMのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング