# Vision Measurement Scheme Using Single Camera Rotation

Authors: Shidu Dong
Journal: ISRN Machine Vision
 (2013)

---

## Abstract

We propose vision measurement scheme for estimating the distance or size of the object in static scene, which requires single camera with 3-axis accelerometer sensor rotating around a fixed axis. First, we formulate the rotation matrix and translation vector from one coordinate system of the camera to another in terms of the rotation angle, which can be figured out from the readouts of the sensor. Second, with the camera calibration data and through coordinate system transformation, we propose a method for calculating the orientation and position of the rotation axis relative to camera coordinate system. Finally, given the rotation angle and the images of the object in static scene at two different positions, one before and the other after camera rotation, the 3D coordinate of the point on the object can be determined. Experimental results show the validity of our method.


---

## Body

## 1. Introduction

Nowadays, digital camera or mobile phone with camera is very popular. It is appealing and convenient, if they are utilized to estimate the distance or size of an object. For this purpose, stereo images with disparity should be taken [1, 2]. One obvious method for the stereo image acquisition is using two cameras with different view angles. With two images of an object from two cameras and the relative orientation and position of the two different viewpoints, through the correspondence between image points in the two views, the 3D coordinates of the points on the object can be determined [3, 4]. But, in general, mobile phone or professional camera has only one camera and cannot acquire two images from different views simultaneously. Fortunately, there have been many methods for stereo vision system with single camera. The methods may be broadly divided into three categories. First, to obtain virtual images from different viewpoints, additional optical devices are introduced, such as two planar mirrors [5], a biprism [6], convex mirrors [1, 7], or the double lobed hyperbolic mirrors [8]. But these optical devices are expensive and space consuming. Second, 3D information of an object is inferred directly from a still image under the knowledge of some geometrical scene constraints such as planarity of points and parallelism of lines and planes [9–11] or prior knowledge about the scene obtained from the supervised learning [12]. Nevertheless, these methods require constrained scenes or extra computation for training the depth models. Third, 3D information is extracted from sequential images with respect to camera movement, which is often adopted in robot area. Due to the uncertainties in the sequential camera position, however, it is difficult to get the accurate 3D information in that method [1].In this paper, we propose a novel vision measurement method for estimating the distance or size of the object in static scene, which requires single camera with 3-axis accelerometer rotating around a fixed axis. Through the 3-axis accelerometer sensor, the slope angle of the camera relative to gravity direction can be obtained [13]. The angle can uniquely determine the position of the camera if the camera is rotated around a fixed axis which is not parallel to gravity. Moreover, the relative position and orientation of the camera between two positions, one before and the other after camera rotation, can be determined by the rotation angle. Therefore, at the given two positions, if the camera is calibrated, the classical binocular view methods [4] can be adopted to extract the 3D coordinates of the points on objects. Unfortunately, it is very difficult for the user to rotate the camera to the same slope angle as the calibrated one.To deal with this problem, we firstly formulate the rotation matrix and translation vector from one coordinate system of the camera to another in terms of the rotation angle. Then, with camera calibration data at various positions, we calculate the orientation and position of the rotation axis relative to the camera coordinate system. Accordingly, at given two positions, the rotation matrix and translation vector from one coordinate system of the camera to another can be calculated by rotation angle, and with the collected two images at the two positions, the 3D coordinate of the points on the object can be determined.The paper is organized as follows: Section2 provides a stereo vision system from single camera through rotation, and Section 3 indicates calculation method of the rotation matrix and translation vector from one coordinate system of the camera to another by the rotation angle. The calculation method for the position and orientation of rotation axis relative to the camera coordination system is proposed in Section 4, and the complete calibration and the 3D coordinate calculation of the point on an object are presented in Section 5. Experimental results are given in Section 6, and some conclusions and discussions are drawn in Section 7.


## 2. Stereo Vision through Camera Rotation

In what follows, we adopt the following hypotheses.(H1) The camera is provided with a 3-axis accelerometer sensor, whose readouts,Gx, Gy, and Gz, are the divisions of gravity on the x, y, and z axes of the sensor coordinate system, respectively.(H2) In calibration and measurement processes, the camera rotates around the fixed rotation axis which is parallel to thez axis of the sensor coordinate system and is not parallel to the direction of gravity.Thus, in the course of the rotation, the readoutGz keeps steady. As a result, the division of gravity on the plane x-y of the sensor coordinate system G′ also keeps steady (see Figure 1). Therefore, the slope angle with respect to gravity division G′ (position, for short) can be determined by
(1)θ=arctan(GxGy).Figure 1
Position and rotation angle of the camera.G′ denotes gravity division on the x-y plane of the sensor coordinate system. Gx and Gy denote the divisions of gravity on the x and y axes of the sensor coordinate system, respectively, and θ1 and θ2 denote the camera positions. β21 indicates the rotation angle.From positionθ1 to θ2, the rotation angle of device β21 is governed by
(2)β21=θ2-θ1.Two images,I1 and I2, of an object are collected at the positions θ1 and θ2, respectively. O1-xyz and O2-xyz denote the camera coordinate systems at θ1 and θ2, respectively. (x1,y1,z1) and (x2,y2,z2) denote the coordinates of a point on the object relative to O1-xyz and O2-xyz, respectively, and (X1,Y1) and (X2,Y2) denote image coordinates of the point of the object on I1 and I2 (image coordinate for short), respectively.The projection of object coordinates relative toO1-xyz and O2-xyz into image coordinates is summarized by the following forms:
(3)s1[X1Y11]=[fx0cx0fycy001][x1y1z1],s2[X2Y21]=[fx0cx0fycy001][x2y2z2].Let(4)[x2y2z2]=[R21T21][x1y1z11]=[r1r2r3txr4r5r6tyr7r8r9tz][x1y1z11],
where R21 and T21 denote rotation matrix and translation vector between O2-xyz and O1-xyz.Substituting (3) into (4), we get
(5)ρ2[X2Y21]=[fxr1+cxr7fxr2+cxr8fxr3+cxr9fxtx+cxtzfyr4+cyr7fyr5+cyr8fyr6+cyr9fyty+cytzr7r8r9tz]×[(X1-cx)zfx(Y1-cy)zfyz11].Thus, the 3D coordinate of the point on the object relative toO1-xyz (object coordinate) can be determined by
(6)x1=(X1-cx)z1fx,y1=(Y1-cy)z1fy,z1=fxfy(fxtx+cxtz-X2tz)B,
where
(7)B=(X2-cx)[r7fy(X1-cx)+r8fx(Y1-cy)+r9fyfx]-fx[fyr1(X1-cx)+fxr2(Y1-cy)+fxr3fy].From (6), we can see that the object coordinate can be found provided that the intrinsic parameters fx, fy, cx, and cy, the rotation matrix R21, and translation vector T21 are available.With the camera calibration method proposed by Zhang [14], the camera intrinsic parameters and extrinsic parameters describing the camera motion around a static scene can be figured out. Let R1 and T1 denote the extrinsic parameters at θ1 and R2 and T2 the extrinsic parameters at θ2. For simplicity, Pw = (x,y,z), P1 = (x1,y1,z1), and P2 = (x2,y2, and z2) stand for the coordinates of the point on the object relative to the world coordinate system, O1-xyz and O2-xyz, respectively. Thus,
(8)P1=R1Pw+T1,P2=R2Pw+T2.From (8), we get
(9)Pw=R1-1P1-R1-1T1.Substituting (9) into (8), we get
(10)P2=R2R1-1P1-R2R1-1T1+T2.Equation (4) can be rewritten as
(11)P2=R21P1+T21.Thus,(12)R21=R2R1-1,T21=T2-R2R1-1T1.Based on the previous discussions, the object coordinate can be determined by the following process.(1)
The camera is calibrated, and the intrinsic parameters,fx, fy, cx, and cy, are obtained.(2)
At the positionsθ1 and θ2, the camera is calibrated, and the corresponding extrinsic parameters, R1, T1, R2, and T2, are obtained. Then, R21 and T21 can be acquired from (12).(3)
In the course of measurement, the camera is rotated carefully to the positionsθ1 and θ2. At these two positions, the two images of the object, I1 and I2, are collected. Once the image coordinates of the object, (X1,Y1) and (X2,Y2), are known, the object coordinate can be figured out by (6).It should be noticed that it is rather difficult for the user to rotate the camera accurately to the positionsθ1 and θ2, where camera is calibrated.


## 3. Calculation Method of Rotation Matrix and Translation Vector

Intuitively, the orientation and position ofO2-xyz relative to O1-xyz, R21 and T21, depend on the camera rotation angle, β21. Thus, R21 and T21 may be figured out by β21.LetOR-xyz be the coordinate system associated with the rotation axis, which is unit vector on the z axis of the coordinate system. Let Rx and Tx denote the orientation and position of OR-xyz relative to O1-xyz (orientation and position of the rotation axis). Its homogeneous matrix can be written as(13)MX=[RXTX01].The rotation matrix for the camera rotation around thez axis of OR-xyz from θ1 to θ2 (device rotation matrix) can be modeled as
(14)Rβ21=[cosβ21-sinβ210sinβ21cosβ210001].Its homogeneous matrix can be written as(15)Rot(β21)=[Rβ21001].The coordinate system transformation can be represented as a graph (Figure2). A directed edge represents a relationship between two coordinate systems and is associated with a homogeneous transformation. From Figure 2, we can get
(16)M21MX=MXRot(β21),
where
(17)M21=[R21T2101].Figure 2
Coordinate system transformation represented by a graph.Substituting (13), (15), and (17) into (16), we get
(18)[R21T2101][RXTX01]=[RXTX01][Rβ21001],(19)[R21RXR21TX+T2101]=[RXRβ21TX01],(20)R21=RXRβ21RX-1,(21)T21=TX-R21TX.From (20) and (21), we can see that the R21 and T21 can be calculated by the rotation angle β21 provided that Rx and Tx are available.


## 4. Calculation Method of Position and Orientation of Rotation Axis

### 4.1. Orientation of Rotation Axis

Suppose that the camera be calibrated at different positions. At positionθi, we get camera calibration data. Let βi1=θi-θ1, and let Rβi1 denote the device rotation matrix with respect to rotation angle βi1. Ri1 and Ti1 denote rotation matrix and translation vector between camera coordinate systems at the positions θi and θ1. Equation (20) can be written as
(22)Ri1RX=RXRβi1.When the rotation axis is fixed,Rx would be constant. Thus, given the values of Ri1, Ti1, and βi1, we can solve (22) for Rx.Using a normalized quaternion to define the rotation between two coordinate systems provides a simple and elegant way to formulate successive rotations [15–17]. Given rotation matrix
(23)R=[r1r2r3r4r5r6r7r8r9],it can be transformed to the quaternion with the following equation [18]:(24)q0=1+r1+r5+r9,qx=r8-r64×q0,qy=r7-r34×q0,qz=r4-r24×q0.Similarly, the quaternion can be transformed to the rotation matrix with the following equation [18]:
(25)R=[q02+qx2+qy2+qz22(qxqy-q0qz)2(qxqz+q0qy)2(qxqy+q0qz)q02+qy2-qx2-qz22(qyqz-q0qx)2(qxqz-q0qy)2(qyqz+q0qx)q02+qz2-qx2-qy2].LetqAi, qX, and qBi denote the quaternion of Ri1, Rx, and Rβi1, respectively. With quaternion, the sequence of rotation can be formulated as an equation without involving rotation matrices [15]. As a result, the problem of solving Ri1RX=RXRβi1 can be transformed into an equivalent problem involving the corresponding quaternion as follows [15]:
(26)qAi⊗qX=qX⊗qBi.Since the quaternion multiplication can be written in matrix form and with notations introduced in [19], we have the following [16]:(27)qAi⊗qX=Q(qAi)qX,qX⊗qBi=W(qBi)qX,
where, letting q=[q0,qx,qy,qz],
(28)Q(q)=[q0-qx-qy-qzqxq0-qzqyqyqzq0-qxqz-qyqxq0],W(q)=[q0-qx-qy-qzqxq0qz-qyqy-qzq0qxqzqy-qxq0].Moreover, these two matrices are orthogonal [16], that is,
(29)[Q(q)]TQ(q)=[W(q)]TW(q)=I.Thus,(30)Q(qAi)qX=W(qBi)qX,∥Q(qAi)qX-W(qBi)qX∥2=[Q(qAi)qX-W(qBi)qX]T[Q(qAi)qX-W(qBi)qX]=qXT{2I-[Q(qAi)]TW(qBi)-[W(qBi)]TQ(qAi)}qX=qXT[2I-Ci]qX,
where(31)Ci=[Q(qAi)]TW(qBi)+[W(qBi)]TQ(qAi).Thus, the total error function allowing us to computeqX becomes
(32)f(qx)=∑i=1nqXT[2I-Ci]qX=qXT[2nI-∑i=1nCi]qX=qXT[2nI-S]qX,
where n is the number of positions of the camera:
(33)S=∑i=1nCi,q
x is the unit quaternion. Therefore, qx can be obtained by solving the following problem:
(34)minf(qX)=min{qXT[2nI-S]qX}s.t.qXTqX=1.


### 4.2. Position of Rotation Axis

At positionθi, (21) can be written as
(35)(I-Ri1)TX=Ti1.When the rotation axis is fixed,Tx would be constant. Thus, given the values of Ri1 and Ti1, we can solve (35) for TX.LetEi=[-Ti1, I-Ri1], TY=[1,TxT]T, and thus
(36)EiTY=0,∥EiTY∥22=TYTEiTEiTY.Letn denote the number of positions of the camera. The total error function is
(37)g(TY)=∑i=1nTYTEiTEiTY=TYT[∑i=1nEiTEi]TY.Since the camera rotation axis is approximately vertical toTX, the value of tz approaches zero. Thus, Ty=[ty0,ty1,ty2,ty3] can be obtained by solving the following problem:
(38)ming(TY)=minTYT[∑i=1nEiTEi]TYs.t.ty0=1ty3<1.


## 4.1. Orientation of Rotation Axis

Suppose that the camera be calibrated at different positions. At positionθi, we get camera calibration data. Let βi1=θi-θ1, and let Rβi1 denote the device rotation matrix with respect to rotation angle βi1. Ri1 and Ti1 denote rotation matrix and translation vector between camera coordinate systems at the positions θi and θ1. Equation (20) can be written as
(22)Ri1RX=RXRβi1.When the rotation axis is fixed,Rx would be constant. Thus, given the values of Ri1, Ti1, and βi1, we can solve (22) for Rx.Using a normalized quaternion to define the rotation between two coordinate systems provides a simple and elegant way to formulate successive rotations [15–17]. Given rotation matrix
(23)R=[r1r2r3r4r5r6r7r8r9],it can be transformed to the quaternion with the following equation [18]:(24)q0=1+r1+r5+r9,qx=r8-r64×q0,qy=r7-r34×q0,qz=r4-r24×q0.Similarly, the quaternion can be transformed to the rotation matrix with the following equation [18]:
(25)R=[q02+qx2+qy2+qz22(qxqy-q0qz)2(qxqz+q0qy)2(qxqy+q0qz)q02+qy2-qx2-qz22(qyqz-q0qx)2(qxqz-q0qy)2(qyqz+q0qx)q02+qz2-qx2-qy2].LetqAi, qX, and qBi denote the quaternion of Ri1, Rx, and Rβi1, respectively. With quaternion, the sequence of rotation can be formulated as an equation without involving rotation matrices [15]. As a result, the problem of solving Ri1RX=RXRβi1 can be transformed into an equivalent problem involving the corresponding quaternion as follows [15]:
(26)qAi⊗qX=qX⊗qBi.Since the quaternion multiplication can be written in matrix form and with notations introduced in [19], we have the following [16]:(27)qAi⊗qX=Q(qAi)qX,qX⊗qBi=W(qBi)qX,
where, letting q=[q0,qx,qy,qz],
(28)Q(q)=[q0-qx-qy-qzqxq0-qzqyqyqzq0-qxqz-qyqxq0],W(q)=[q0-qx-qy-qzqxq0qz-qyqy-qzq0qxqzqy-qxq0].Moreover, these two matrices are orthogonal [16], that is,
(29)[Q(q)]TQ(q)=[W(q)]TW(q)=I.Thus,(30)Q(qAi)qX=W(qBi)qX,∥Q(qAi)qX-W(qBi)qX∥2=[Q(qAi)qX-W(qBi)qX]T[Q(qAi)qX-W(qBi)qX]=qXT{2I-[Q(qAi)]TW(qBi)-[W(qBi)]TQ(qAi)}qX=qXT[2I-Ci]qX,
where(31)Ci=[Q(qAi)]TW(qBi)+[W(qBi)]TQ(qAi).Thus, the total error function allowing us to computeqX becomes
(32)f(qx)=∑i=1nqXT[2I-Ci]qX=qXT[2nI-∑i=1nCi]qX=qXT[2nI-S]qX,
where n is the number of positions of the camera:
(33)S=∑i=1nCi,q
x is the unit quaternion. Therefore, qx can be obtained by solving the following problem:
(34)minf(qX)=min{qXT[2nI-S]qX}s.t.qXTqX=1.


## 4.2. Position of Rotation Axis

At positionθi, (21) can be written as
(35)(I-Ri1)TX=Ti1.When the rotation axis is fixed,Tx would be constant. Thus, given the values of Ri1 and Ti1, we can solve (35) for TX.LetEi=[-Ti1, I-Ri1], TY=[1,TxT]T, and thus
(36)EiTY=0,∥EiTY∥22=TYTEiTEiTY.Letn denote the number of positions of the camera. The total error function is
(37)g(TY)=∑i=1nTYTEiTEiTY=TYT[∑i=1nEiTEi]TY.Since the camera rotation axis is approximately vertical toTX, the value of tz approaches zero. Thus, Ty=[ty0,ty1,ty2,ty3] can be obtained by solving the following problem:
(38)ming(TY)=minTYT[∑i=1nEiTEi]TYs.t.ty0=1ty3<1.


## 5. Calculation of Position and Orientation of Rotation Axis and 3D Coordinate

### 5.1. Calculation of Position and Orientation of Rotation Axis

Based on the previous discussions, the complete process of calculation of position and orientation of rotation axis is outlined below:(1)
The chessboard (see Figure3) is printed and plastered on plane. By rotating and moving the camera properly, a set of chessboard images is collected. Then, the values of the intrinsic parameters of the camera, fx, fy, cx, and cy, are obtained by calling the method proposed in [14].
(2)
The camera is fixed on a camera tripod, and the rotation axis of the camera, which is parallel to thez axis of the sensor coordinate system, lies in an approximately horizontal plane.
(3)
By rotating the camera around the fixed axis to the different positions, another set of chessboard images are collected.
(4)
The extrinsic parameters of the camera at the positionsθi, Ri, and Ti are obtained by calling the function cvFindExtrinsicCameraParams2 in Opencv [20].
(5)
The rotation matrix and translation vector between the camera coordinate systems at the positionsθi and θ1, Ri1, and Ti1 are figured out by (12). The rotation angle βi1 and its corresponding rotation matrix Rβi1 are also calculated by (2) and (14).
(6)
TheRi1 and Rβi1 are converted into quaternions qAi and qBi, respectively, by using the method proposed by Bar-Itzhack [18].
(7)
q
X is found by solving problem (34). As a result, the Rx can be obtained.
(8)
T
X is obtained by solving problem (38).Figure 3
Chessboard.


### 5.2. 3D Coordinate Calculation

Based on the previous discussions, we present the complete process of 3D coordinate calculation as follows:(1)
The camera is fixed on a camera tripod whose rotation axis lies in an approximately horizontal plane.(2)
At certain positionθ1, the image of the object I1 is collected.(3)
By rotating the camera on the fixed axis to another positionθ2, we get another image of the object I2.(4)
The rotation angleβ21 and its corresponding rotation matrix Rβ21 are figured out by (2) and (14).(5)
WithRβ21, R21 and T21 are calculated by (20) and (21).(6)
The image coordinate of the point of the object, (X1,Y1), on the image I1 is appointed manually.(7)
The corresponding image coordinate in the imageI2, (X2,Y2), can be determined by stereo correspondence method, for example, the function FindStereoCorrespondenceBM in Opencv [20] or by manual.(8)
The 3D coordinate of the point on the object relative toO1-xyz, (x1,y1,z1), can be figured out by   (6).


## 5.1. Calculation of Position and Orientation of Rotation Axis

Based on the previous discussions, the complete process of calculation of position and orientation of rotation axis is outlined below:(1)
The chessboard (see Figure3) is printed and plastered on plane. By rotating and moving the camera properly, a set of chessboard images is collected. Then, the values of the intrinsic parameters of the camera, fx, fy, cx, and cy, are obtained by calling the method proposed in [14].
(2)
The camera is fixed on a camera tripod, and the rotation axis of the camera, which is parallel to thez axis of the sensor coordinate system, lies in an approximately horizontal plane.
(3)
By rotating the camera around the fixed axis to the different positions, another set of chessboard images are collected.
(4)
The extrinsic parameters of the camera at the positionsθi, Ri, and Ti are obtained by calling the function cvFindExtrinsicCameraParams2 in Opencv [20].
(5)
The rotation matrix and translation vector between the camera coordinate systems at the positionsθi and θ1, Ri1, and Ti1 are figured out by (12). The rotation angle βi1 and its corresponding rotation matrix Rβi1 are also calculated by (2) and (14).
(6)
TheRi1 and Rβi1 are converted into quaternions qAi and qBi, respectively, by using the method proposed by Bar-Itzhack [18].
(7)
q
X is found by solving problem (34). As a result, the Rx can be obtained.
(8)
T
X is obtained by solving problem (38).Figure 3
Chessboard.


## 5.2. 3D Coordinate Calculation

Based on the previous discussions, we present the complete process of 3D coordinate calculation as follows:(1)
The camera is fixed on a camera tripod whose rotation axis lies in an approximately horizontal plane.(2)
At certain positionθ1, the image of the object I1 is collected.(3)
By rotating the camera on the fixed axis to another positionθ2, we get another image of the object I2.(4)
The rotation angleβ21 and its corresponding rotation matrix Rβ21 are figured out by (2) and (14).(5)
WithRβ21, R21 and T21 are calculated by (20) and (21).(6)
The image coordinate of the point of the object, (X1,Y1), on the image I1 is appointed manually.(7)
The corresponding image coordinate in the imageI2, (X2,Y2), can be determined by stereo correspondence method, for example, the function FindStereoCorrespondenceBM in Opencv [20] or by manual.(8)
The 3D coordinate of the point on the object relative toO1-xyz, (x1,y1,z1), can be figured out by   (6).


## 6. Experiments

Since digital camera with 3-axis accelerometer sensor is not available for us, IPhone 4, which has the sensor, is adopted. To simulate digital camera, the phone is placed in a box which is fixed on a camera tripod. And it is ensured that thez axis of the sensor (experiment results show that the axis is parallel to the optical axis of the camera) is parallel to the rotation axis of the camera tripod, so that the value of Gz keeps steady in the course of the rotation. In calibration course, the distance between the camera and the chessboard is about 1000 mm.Figure4 illustrates the curve of the quaternion of the rotation matrix between the camera coordinate systems at the ith position and 1st position, with respect to the rotation angle. The quaternion q′=[q0′,qx′,qy′,qz′] was calculated by the proposed method with rotation angle, while q=[q0,qx,qy,qz] was converted directly from rotation matrix Ri1, which was from calibration data. From the graph, one can see that the proposed method can calculate the rotation matrix by rotation angle.Figure 4
Curve of the quaternion of rotation matrix with respect to rotation angle;q=[q0,qx,qy,qz] is converted from rotation matrix, and q′=[q0′,qx′,qy′,qz′] is calculated by the proposed method.Figure5 plots the curve of translation vector between the camera coordinate systems at the ith position and 1st position, with respect to rotation angle. The vector T′=[Tx′,Ty′,Tz′] was calculated by the proposed method with rotation angle, while T=[Tx,Ty,Tz] was directly from calibration data Ti1. From the graphs, one can see that the proposed method can calculate effectively translation vector by rotation angle.Figure 5
Curve of translation vector with respect to rotation angle;T=[Tx,Ty,Tz] was directly from calibration data, and T′=[Tx′,Ty′,Tz′] was calculated by (23) with rotation angle.In order to estimate the accuracy of 3D coordinate calculated by the proposed method, the chessboard which has a bigger block than the one for calibration is printed. The width of the block is 46.6 mm, and the distance between the chessboard and the camera is about 1200 mm. The distance between two neighbor corners rather than the distance between the camera and the chessboard is calculated, because the measurement of the former by manual is easier. For simplicity, the corners of the blocks in images are automatically detected by calling the Opencv function “cvFindChessboardCorners” [19]. Figure 6 depicts the measurement error ratio of the distance between two corners with respect to rotation angle.Figure 6
Measurement error ratio (%) of the distance between two corners with respect to rotation angle.


## 7. Conclusions

This paper proposed a stereo vision system with single camera, which requires digital camera with 3-axis accelerometer sensor rotating around the fixed axis which is parallel to the axisz of the sensor. Under these conditions, the slope angle relative to gravity, which can be figured out from the readouts of the sensor, can determine the camera position, and the rotation angle between two positions can determine the rotation matrix and translation vector from one coordinate system of the camera to another. Accordingly, given the rotation angle and the images of the object at two different positions, one before and the other after camera rotation, the 3D coordinates of the points on the object can be determined. Theoretical analysis and experimental results show the validity of our method.It should be noticed that few digital cameras are provided with 3-axis accelerometer sensor. However, to obtain stereo vision, we believe that the inexpensive sensor embedded in digital camera is worthy. Moreover, due to higher image quality and larger focus range, higher accuracy and larger range of measurement may be obtained. Furthermore, the smart phone which has the sensor is popular. If a mini fixed rotation axis is built in a corner of the phone and it does not move in the course of rotation, with the proposed method, the phone may estimate the size of the object being focused on and distance between the phone and the object.



---

*Source: 874084-2013-06-05.xml*