블로그 이미지
Leeway is... the freedom that someone has to take the action they want to or to change their plans.
maetel

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday

Category

'3D reconstruction'에 해당되는 글 5건

  1. 2010.09.18 Zenitum's 4th Open Lab
  2. 2009.06.10 photometric stereo 2009-06-10
  3. 2009.06.08 Photometric stereo 2009-06-07
  4. 2009.05.15 photometric stereo 2009-05-15
  5. 2009.05.06 Criminisi, Reid, Zisserman <Single View Metrology>
2010. 9. 18. 11:58 Footmarks

4th Open Lab


September 14, 2010 | Written by admin

마침내 오픈랩이 다시 돌아왔습니다. 벌써 4번째 행사네요.
꼭 방문하셔서 제니텀의 최근 작업들을 경험하면서 즐거운시간 가지시길 바랍니다.

Zenitum’s Open Lab is back! Our Open Lab 4 will showcase our latest work in the field of augmented reality, including 3D reconstruction, and various techniques for recognizing and tracking images.


전시내용:


1. 영상기반의 모바일 증강현실 트래킹 엔진 & GPS기반 모바일 증강현실 트래킹 엔진

http://youtu.be/OvLTOWoze0A
http://youtu.be/YcgebgYeU5M
http://youtu.be/ibWnY9ZXKzk
http://youtu.be/7jUaxlS52tU
http://youtu.be/O-myIJboPn0


2. 4Cast: Full 3D 재구성 시스템

http://youtu.be/LByly6rlZMg
http://youtu.be/577gv_xeWPU
http://youtu.be/xL8YSgdQEXM

- 원하시는 분은 자신의 Full 3D 재구성 모델을 만들어 드립니다.


3. Media Art Project: iWall

- 3D 질감을 표현하는 대형 액티브 미디어 월과 iPhone과의 만남

- 기존(작년의 프로토타입)의 Active Media Wall 프로젝트 동영상은

http://youtu.be/wLlAfTa2lVg

posted by maetel
2009. 6. 10. 17:07 Computer Vision

To do: to calculate depths for the surface reconstruction

ref.
P. D. Kovesi.   MATLAB and Octave Functions for Computer Vision and Image Processing.
School of Computer Science & Software Engineering,
The University of Western Australia.   Available from:
<http://www.csse.uwa.edu.au/~pk/research/matlabfns/>.

 

 

'Computer Vision' 카테고리의 다른 글

Linear Least Squares  (0) 2009.07.03
Reinhard Diestel <Graph Theory>  (0) 2009.06.16
Photometric stereo 2009-06-07  (0) 2009.06.08
Photometric stereo 2009-06-05  (0) 2009.06.05
photometric stereo 2009-05-15  (0) 2009.05.15
posted by maetel
2009. 6. 8. 15:17 Computer Vision
To do: Surface shape reconstruction
: Least squares surface fitting




- path integration
- least squares optimization
- Lucas-Kanade algorithm

http://mathworld.wolfram.com/LeastSquaresFitting.html


 /* We want to solve Mz = v in a least squares sense.  The
    solution is M^T M z = M^T v.  We denote M^T M as A and
    M^T v as b, so A z = b. */

 CMatrixSparse<double> A(M.mTm());
    assert(A.isSymmetric());
    CVector<double> r = A*z;  /* r is the "residual error" */
    CVector<double> b(v*M);

 // solve the equation A z = b
    solveQuadratic<double>(A,b,z,300,CGEPSILON);

 // copy the depths back from the vector z into the image depths
    copyDepths(z,zind,depths);


 

template <class T>
double solveQuadratic(const CMatrixSparse<T> & A, const CVector<T> & b,
       CVector<T> & x,int i_max, double epsilon)
{
  //my conjugate gradient solver for .5*x'*A*x -b'*x, based on the
  // tutorial by Jonathan Shewchuk  (or is it +b'*x?)
 
  printf("Performing conjugate gradient optimization\n");

  int numvars = x.Length();
  assert(b.Length() == numvars && A.rows() == numvars &&
  A.columns() == numvars);

  int i =0;

  CVector<T> r = b-A*x;
  CVector<T> d= r;
  double delta_new = r.dot(r);
  double delta_0 = delta_new;

  int numrecompute = (int)floor(sqrt(float(numvars)));
  //int numrecompute = 1;
  printf("numrecompute = %d\n",numrecompute);

  printf("delta_new = %f\n", delta_new);
  while (i < i_max && delta_new > epsilon)//epsilon*epsilon*delta_0)
    {
      printf("Step %d, delta_new = %f      \r",i,delta_new);
     
      CVector<T> q = A*d;
      double alpha = delta_new/d.dot(q);
      x.daxpy(d,alpha); //      x += d*alpha;
      if (i % numrecompute == 0)
 {
   //   printf(" ** recompute\n");
   r = b-A*x;
 }
      else
 r.daxpy(q,-alpha); //  r = r-q*alpha;
      double delta_old = delta_new;
      delta_new = r.dot(r);
      double beta = delta_new/delta_old;
      d = r+d*beta;
      i++;
    }

  return delta_new;
  //  return delta_new <= epsilon;
  //  return !(delta_new > epsilon*epsilon*delta_0);
}










 

'Computer Vision' 카테고리의 다른 글

Reinhard Diestel <Graph Theory>  (0) 2009.06.16
photometric stereo 2009-06-10  (0) 2009.06.10
Photometric stereo 2009-06-05  (0) 2009.06.05
photometric stereo 2009-05-15  (0) 2009.05.15
Criminisi, Reid, Zisserman <Single View Metrology>  (0) 2009.05.06
posted by maetel
2009. 5. 15. 21:10 Computer Vision
to do: compute surface normal vectors

TGA file format
Targa = Truevision Advanced Raster Graphics Adapter
http://en.wikipedia.org/wiki/Truevision_TGA

http://www.fileformat.info/format/tga/egff.htm

http://people.sc.fsu.edu/~burkardt/cpp_src/tga_io/tga_io.html


RLE = Run-length encoding
http://en.wikipedia.org/wiki/Run-length_encoding


openCV
http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html
lecture note
http://dasan.sejong.ac.kr/~sipark/class2008/mm/



Albedo
http://en.wikipedia.org/wiki/Albedo
In general, the albedo depends on the direction and directional distribution of incoming radiation. Exceptions are Lambertian surfaces, which scatter radiation in all directions in a cosine function, so their albedo does not depend on the incoming distribution.


typedef struct _IplImage
{
    int  nSize;             /* sizeof(IplImage) */
    int  ID;                /* version (=0)*/
    int  nChannels;         /* Most of OpenCV functions support 1,2,3 or 4 channels */
    int  alphaChannel;      /* Ignored by OpenCV */
    int  depth;             /* Pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S,
                               IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported.  */
    char colorModel[4];     /* Ignored by OpenCV */
    char channelSeq[4];     /* ditto */
    int  dataOrder;         /* 0 - interleaved color channels, 1 - separate color channels.
                               cvCreateImage can only create interleaved images */
    int  origin;            /* 0 - top-left origin,
                               1 - bottom-left origin (Windows bitmaps style).  */
    int  align;             /* Alignment of image rows (4 or 8).
                               OpenCV ignores it and uses widthStep instead.    */
    int  width;             /* Image width in pixels.                           */
    int  height;            /* Image height in pixels.                          */
    struct _IplROI *roi;    /* Image ROI. If NULL, the whole image is selected. */
    struct _IplImage *maskROI;      /* Must be NULL. */
    void  *imageId;                 /* "           " */
    struct _IplTileInfo *tileInfo;  /* "           " */
    int  imageSize;         /* Image data size in bytes
                               (==image->height*image->widthStep
                               in case of interleaved data)*/
    char *imageData;        /* Pointer to aligned image data.         */
    int  widthStep;         /* Size of aligned image row in bytes.    */
    int  BorderMode[4];     /* Ignored by OpenCV.                     */
    int  BorderConst[4];    /* Ditto.                                 */
    char *imageDataOrigin;  /* Pointer to very origin of image data
                               (not necessarily aligned) -
                               needed for correct deallocation */
}
IplImage;







'Computer Vision' 카테고리의 다른 글

Photometric stereo 2009-06-07  (0) 2009.06.08
Photometric stereo 2009-06-05  (0) 2009.06.05
Criminisi, Reid, Zisserman <Single View Metrology>  (0) 2009.05.06
Photometric stereo 2009-05-01  (0) 2009.05.01
camera calibration 09-04-24  (0) 2009.04.24
posted by maetel
2009. 5. 6. 19:47 Computer Vision
Criminisi, A., Reid, I., and Zisserman, A. 2000. Single View Metrology. Int. J. Comput. Vision 40, 2 (Nov. 2000), 123-148. DOI= http://dx.doi.org/10.1023/A:1026598000963


ref.
Constructing 3D Models from a Single View
3D Models from a Single View

Antonio Criminisi
http://research.microsoft.com/en-us/people/antcrim/
http://www.robots.ox.ac.uk/~criminis/

 


3D affine measurements
single perspective view
minimal geometric information - the vanishing line  & a vanishing point 
affine scene structure

first order error propagation analysis

(i) compute the distance between planes parellel to the reference plane (up to a common scale factor)
(ii) compute area and length ratios on any plane parallel to the reference plane
(iii) determine the camera's location


1. Introduction

perspective projection

reference plane
reference direction

three canonical types of measurement
(i) measurements of the distance between any of the planes which are parallel to the reference plane
(ii) measurements on these planes (and comparision of these measurements to those obtained on any parallel plane)
(iii) determining the camera's position in terms of the reference plane and direction

: independent of the camera's internal parammeters: focal length, aspect ratio, principal point, skew



http://en.wikipedia.org/wiki/Leon_Battista_Alberti


Maximum Likelihood estimates or measurements (when more than the minimum number of references are available)

1) planar homology to transfer measurements from one reference plane to another
2) analysing the uncertainty of the computted distances
3) statistical tests to validate the analytical uncertainty predictions


1) introduction
2) geometric derivations
3) algebraic representation
4) confidence intervals = a quantitative assessment of accuracy
5) applications


2. Geometry

central projection

vanishing point = projection of a point at infinity
: defined by any set of parallel lines on the plane
: Any parallel lines have the same vanishing point.

radial distortion

parallel projection

The vanishing line partitions all points in scene space. Any scene point which projects onto the vanishing line is at the same distance from the plane as the camera center; if it lies above the line it is farther from the plane, and if below the vanishing line, then it is closer to the plane than the camera center.


http://en.wikipedia.org/wiki/Projective_plane


2.1 Measurements Between Parallel Planes


Definition 1.
Two points X, X0 on separate planes (parallel to the reference plane) correspond if the line joining them is parallel to the reference direction.


The images of corresponding points and the vanishing point are collinear.

Theorem 1.
Given the vanishing line of a reference plane and the vanishing point for a reference direction; then distances from the reference plane parallel to the reference direction can be computed from their imaged end points up to a common scale factor. The scale factor can be determined from one known reference length.


cross-ratio
http://en.wikipedia.org/wiki/Cross-ratio
http://www.geom.uiuc.edu/docs/forum/photo/
http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT13/node5.html
http://www.lems.brown.edu/vision/people/leymarie/Refs/Maths/Perspective.html
http://www.mathpages.com/home/kmath543/kmath543.htm

Cross ratio

Although distances and ratios of distances are not preserved under projection, the cross ratio, defined as AC/BC ∙ BD/AD, is preserved. That is, AC/BC ∙ BD/AD = A′C′/B′C′ ∙ B′D′/A′D′. Encyclopædia Britannica, Inc.




Geometry and Analysis of Projective Spaces
line-to-line homography

eqn(2)

1) Given a known reference distance
2) Compute the distance of the camera
3) Apply to a new pair of end points and compute and compute the distance


Definition 2.
A set of parallel planes are linked if it is possible to go from one plane to any other plane in the set through a chain of pairs of corresponding points (see also Definition 1).


Theorem 2.
Given a set of linked parallel planes; the distance between any pair of planes is sufficient to determine the absolute distance between any other pair; the link being provided by a chain of point correspondences between the set of planes.



2.2 Measurements on Parallel Planes

affine calibrated plane : vanishing line known

pencil of planes
http://en.wikipedia.org/wiki/Pencil_(mathematics)


The vanishing line is shared by the pencil of planes parallel to the reference plane.

http://en.wikipedia.org/wiki/Projective_map


planar homology

A map in the world between parallel planes induces a projective map in the image between images of points on the two planes. This imagemapis a planar homology (Springer, 1964), which is a plane projective transformation with five degrees of freedom, having a line of fixed points called the axis, and a distinct fixed point not on the axis known as the vertex. Planar homologies arise naturally in an image when two planes related by a perspectivity in three-dimensional space are imaged (Van Gool et al., 1998).

Viéville, T. and Lingrand, D. 1999. Using Specific Displacements to Analyze Motion without Calibration. Int. J. Comput. Vision 31, 1 (Feb. 1999), 5-29. DOI= http://dx.doi.org/10.1023/A:1008082308694

homology mapping


2.3 Determining the Camera Position

back-projection

homography


3. Algebraic Representation


affine coordinate system

projection matrix P
http://en.wikipedia.org/wiki/Projection_matrix

http://en.wikipedia.org/wiki/Homogeneous_coordinates

Columns 1, 2 and 4 of the projection matrix are the three columns of the reference plane to image homogrphy.

The vanishing line determines two of the eight d.o.f. of the homography.


Coordinate measurements within the planes depend on the first two and the fourth columns of P.

Affine measurements (e.g. area ratios) depend only on the fourth column of P.


3.1. Measurements Between Parallel Planes


Metric Calibration from Multiple Reference
error minimization algorithm


3.2. Measurements on Parallel Planes

homology


3.3. Determining Camera Position

http://en.wikipedia.org/wiki/Cramer%27s_rule



4. Uncertainty Analysis

4.1. Uncertainty on the P Matrix

The uncertainty in P is modeled as a 6-by-6 homogeneous covariance matrix.


4.2. Uncertainty on Measurements Between Planes

Maximum Likelihood Estimates
minimizing the sum of the Mahalanobis distances

constrained minimization problem
Lagrange multiplier method

http://en.wikipedia.org/wiki/Levenberg-Marquardt


4.3. Uncertainty on Camera Position


4.4. Example - Uncertainty on Measurements Between Planes


4.5. Monte Carlo Test

 






'Computer Vision' 카테고리의 다른 글

Photometric stereo 2009-06-05  (0) 2009.06.05
photometric stereo 2009-05-15  (0) 2009.05.15
Photometric stereo 2009-05-01  (0) 2009.05.01
camera calibration 09-04-24  (0) 2009.04.24
[Ortega] Chapter 3. Filtering  (0) 2009.04.12
posted by maetel