Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • L laser_plane_scanner
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Cmíral Jakub
  • laser_plane_scanner
  • Wiki
  • estimate_laser_plane

estimate_laser_plane · Changes

Page history
cmirajak created page: estimate_laser_plane authored Aug 17, 2016 by Cmíral Jakub's avatar Cmíral Jakub
Hide whitespace changes
Inline Side-by-side
estimate_laser_plane.md
View page @ 36d152bd
# Estimation of the Laser Plane position # Estimation of the Laser Plane position
--- ---
We will use pinhole camera model for finding 3D points in camera coordinate system ![alt text](http://mathurl.com/hj835tq.png) in projection coordinate ![alt text](http://mathurl.com/hw2kh9a.png) described as: We will use pinhole camera model for finding 3D points in camera coordinates system ![alt text](http://mathurl.com/hj835tq.png) in projection coordinates ![alt text](http://mathurl.com/hw2kh9a.png) described as:
<img src="http://mathurl.com/hbtk24o.png" /> , <img src="http://mathurl.com/hbtk24o.png" /> ,
...@@ -12,7 +12,7 @@ Picture is borrowed from [there](http://docs.opencv.org/2.4/modules/calib3d/doc/ ...@@ -12,7 +12,7 @@ Picture is borrowed from [there](http://docs.opencv.org/2.4/modules/calib3d/doc/
### Inverse transformation of pinhole camera equation ### Inverse transformation of pinhole camera equation
The equation for pinhole camera is under-determined so we have to add one more condition to estimate the position ![alt text](http://mathurl.com/hj835tq.png) using only projection coordinates ![alt text](http://mathurl.com/hw2kh9a.png). OpenCV is able to find the transformation between the chessboard coordinate and the camera coordinate. Hence, we use chessboard plane. Furthermore, we can say that in chessboard coordinates all points are laying on plane described as z = 0. We are able to transform this plane to the camera coordinate like: The equation for pinhole camera is under-determined so we have to add one more condition to estimate the position ![alt text](http://mathurl.com/hj835tq.png) using only projection coordinates ![alt text](http://mathurl.com/hw2kh9a.png). OpenCV is able to find the transformation between the chessboard coordinates and the camera coordinates. Hence, we use chessboard plane. Furthermore, we can say that in chessboard coordinates all points are laying on plane described as z = 0. We are able to transform this plane to the camera coordinates like:
<img src="http://mathurl.com/gw8dwdp.png" /> , <img src="http://mathurl.com/gw8dwdp.png" /> ,
<img src="http://mathurl.com/zwt5qhc.png" />. <img src="http://mathurl.com/zwt5qhc.png" />.
...@@ -41,8 +41,15 @@ In first, when we want to track a laser path, we convert an image with the laser ...@@ -41,8 +41,15 @@ In first, when we want to track a laser path, we convert an image with the laser
As you can see on the picture above the laser path has slightly higher intensity then anything around. Therefore, we determine the laser position with pixel precision as the pixel with maximal intensity in some direction (i.e. row/column). As you can see on the picture above the laser path has slightly higher intensity then anything around. Therefore, we determine the laser position with pixel precision as the pixel with maximal intensity in some direction (i.e. row/column).
To refine it, we know that the laser light should have normal distribution around the maximum. Hence, we choose the specific neighborhood around maximum and calculate logarithm of intensities inside of it. These point are describing some kind of parabola now. Due to that we use LSQ and fit one there. Finally, we call its local maximum as a place with maximal intensity in specific direction. To refine it, we know that the laser light should have normal distribution around the maximum. Hence, we choose the specific neighborhood around maximum and calculate logarithm of intensities inside of it. These point are describing some kind of parabola now. Due to that we use LSQ and fit one there. Finally, we call its local maximum as a place with maximal intensity in a specific direction.
### Estimating Laser Plane Position
As you can see on pictures bellow, not all laser points are laying on chessboard so we select the only the one that does and transform them from image points to the camera coordinates.
We obtain these points for two different positions of chessboard and get a set of points, which are laying on the laser plane. Thereafter, we fit plane in-between points using singular value decomposition (svd) and receive the laser plane.
![cal_down](http://gitlab.ciirc.cvut.cz/cmirajak/laser_plane_scanner/uploads/7841763e62cef8cf4847b530d4ad1ca9/cal_down.png) ![cal_down](http://gitlab.ciirc.cvut.cz/cmirajak/laser_plane_scanner/uploads/7841763e62cef8cf4847b530d4ad1ca9/cal_down.png)
![cal_up](http://gitlab.ciirc.cvut.cz/cmirajak/laser_plane_scanner/uploads/f8e41d456454a719cda6aed062b392cb/cal_up.png) ![cal_up](http://gitlab.ciirc.cvut.cz/cmirajak/laser_plane_scanner/uploads/f8e41d456454a719cda6aed062b392cb/cal_up.png)
Clone repository
  • estimate_laser_plane
  • find_camera_mtx
  • Home
  • laser_trace
  • new_base_coords
  • rotation_table
  • simple setup