diff --git a/apps/calibration/Readme.md b/apps/calibration/Readme.md index 2f2b2e5..2eb9ef7 100644 --- a/apps/calibration/Readme.md +++ b/apps/calibration/Readme.md @@ -29,7 +29,11 @@ First, you should record a video with your chessboard for each camera separately In this tutorial, we use our sample datasets as an example. In that dataset, the intri data is just like the picture below. -![sample intri data](assets/intri_sample.png) +
+ +
+ Example Intrinsic Dataset +
For the extrinsic parameters, you should place the chessboard pattern where it will be visible to all the cameras (on the floor for example) and then take a picture or a short video on all of the cameras. @@ -45,7 +49,13 @@ For the extrinsic parameters, you should place the chessboard pattern where it w The sample extri data is like the picture below. -![sample extri data](assets/extri_sample.png) + +
+ +
+ Example Extrinsic Dataset +
+ ## 2. Detect the chessboard For both intrinsic parameters and extrinsic parameters, we need detect the corners of the chessboard. So in this step, we first extract images from videos and second detect and write the corners. @@ -63,10 +73,18 @@ Repeat this step for `` and ``. After this step, you should get the results like the pictures below. +
+ +
+ Result of Detecting Extrinsic Dataset +
-![visualization result](assets/extri_chessboard.jpg) -![vis intri](assets/intri_chessboard.jpg) +
+ +
+ Result of Detecting Intrinsic Dataset +
## 2.5 Finetune the Chessboard Detection Result @@ -78,39 +96,74 @@ python apps/annotation/annot_calib.py $data --mode chessboard --pattern 9,6 --an After running the script above, a OpenCV GUI prompt will show, like below: -![](assets/ft1.png) +
+ +
+ Calibration Annotation Toolkit GUI Interface +
-> This tool is component of our awesome annotation toolkits, so some key mapping is similar. To learn more about our annotation tools, please check [the document](../annotation/Readme.md) + +> This tool is component of our awesome annotation toolkits, so some key mapping is similar. To learn more about our annotation tools, please check [the document](../annotation/Readme.md). At the same time, you can see that the CLI presents some auxilary information. -![](assets/ft2.png) + +
+ +
+ CLI Prompt of the Annotation Tool +
+ You can learn from the CLI prompt to know the information and which point you are labeling. -In the GUI, the current edited point is highlighted by a circle. If you want to make some modification, use mouse to click the correct place, then a white anchor point is presented to show the potential position. +In the GUI, the current edited corner is highlighted by a red circle. If you want to make some modification, use mouse to click the correct place, and then a white anchor "+" is presented there. -![](assets/ft3.png) -If you find this position is the correct position, press `Z` to confirm. Then the point position will be changed. +
+ +
+ Use mouse to specify the correct position +
-![](assets/ft4.png) +If you think the newly specified coordinate(marked as white anchor) should be the correct position for this corner, rather than old one, press `Space` to confirm. Then the corner position will be changed. -After finish modifing this point, press `Space` to move to next point. +
+ +
+ The result after modifing the position of point +
-![](assets/ft5.png) +After finish modifying this point, press `Space` to move on to next point. + + +
+ +
+ Press Space to move on to next point +
> Currently we only support move to next point. If you want to move to previous point, please `Space` for many times until it back to start. -If you're satisfied to this frame, you can press `D` move on to next frame. +If you're satisfied with this frame, you can press `D` move on to next frame. + + +
+ +
+ Press D to move on to next frame +
-![](assets/ft6.png) If you press `A`, you can move back to previous frame. After finish annotating every frames, press `q` to quit. -![](assets/ft7.png) +
+ +
+ CLI prompt to save the result. Press Y to save and N to discard +
Then you can choose whether to save this annotation. @@ -119,7 +172,7 @@ Then you can choose whether to save this annotation. ## 3. Intrinsic Parameter Calibration -After extracting chessboard, it is available to calib the intri parameter. +After extracting chessboard, it is available to calibrate the intrinsic parameter. ```bash python3 apps/calibration/calib_intri.py ${data} --step 5 @@ -127,12 +180,12 @@ python3 apps/calibration/calib_intri.py ${data} --step 5 After the script finishes, you'll get `intri.yml` under `${data}/output`. -> This step may takes a long time, please be patient. :-) +> This step may take a long time, so please be patient. :-) ## 4. Extrinsic Parameter Calibration -Then you can calib the extri parameter. +Then you can calibrate the extrinsic parameter. ``` python3 apps/calibration/calib_extri.py ${extri} --intri ${intri}/output/intri.yml @@ -148,23 +201,32 @@ Coming soon To check whether your camera parameter is correct, we provide several approaches to make verification. -1. Check the calibration results with chessboard: +1. **Check the calibration results with chessboard:** ```bash python3 apps/calibration/check_calib.py ${extri} --out ${intri}/output --vis --show ``` A window will be shown for checking. -![](assets/vis_check.png) +
+ +
+ Use chessboard to check results +
- -Check the results with a cube. +**Check the results with a cube.** ```bash python3 apps/calibration/check_calib.py ${extri} --out ${extri}/output --cube ``` You'll get results in `$data/output/cube`. -![](assets/cube.jpg) + +
+ +
+ Use cube to check results +
+ 2. (TODO) Check the calibration results with people. \ No newline at end of file diff --git a/apps/calibration/assets/ft1.png b/apps/calibration/assets/ft1.png index d33d3e2..7868b48 100644 Binary files a/apps/calibration/assets/ft1.png and b/apps/calibration/assets/ft1.png differ diff --git a/apps/calibration/assets/ft3.png b/apps/calibration/assets/ft3.png index 8b20df3..6e352cf 100644 Binary files a/apps/calibration/assets/ft3.png and b/apps/calibration/assets/ft3.png differ diff --git a/apps/calibration/assets/ft4.png b/apps/calibration/assets/ft4.png index 3c10cd1..06fc9ad 100644 Binary files a/apps/calibration/assets/ft4.png and b/apps/calibration/assets/ft4.png differ diff --git a/apps/calibration/assets/ft5.png b/apps/calibration/assets/ft5.png index 25a706b..7d084da 100644 Binary files a/apps/calibration/assets/ft5.png and b/apps/calibration/assets/ft5.png differ diff --git a/apps/calibration/assets/intri_chessboard.jpg b/apps/calibration/assets/intri_chessboard.jpg index 80e66f4..d28d6f9 100644 Binary files a/apps/calibration/assets/intri_chessboard.jpg and b/apps/calibration/assets/intri_chessboard.jpg differ diff --git a/apps/calibration/assets/intri_sample.png b/apps/calibration/assets/intri_sample.png index 861c93e..076dbf0 100644 Binary files a/apps/calibration/assets/intri_sample.png and b/apps/calibration/assets/intri_sample.png differ