Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Welcome to DiscoCal! (CVPR24, highlight)
Super Accurate, Fast, and Robust Calibration tool.

For decades, the checkerboard pattern has been the go-to method for camera calibration, providing only pixel-level precision. But what if we could improve accuracy even further? Discocal reveals the power of the circular pattern: a game-changer offering subpixel precision to meet challenges even from unconventional visual sensors.

Visit the official Document for details!

[Paper][Video][OpenCV Webinar][BibTex]

Discocal supports:

  • RGB camera calibration
  • Thermal infrared camera calibration
  • Extrinsic calibration of N cameras
  • RGB-TIR extrinsic calibartion
  • LiDAR-Camera extrinsic calibration

News

(25.12.24) Stereo calibration update — significantly improved accuracy

Previously, the code did not incorporate measurement uncertainty during the stereo calibration process, and the relative camera pose was computed by simple averaging. We now integrate uncertainty into the extrinsic calibration and add an optimization step to further improve accuracy and robustness.

  • 25.12.24. 📍 Enhance the performance of stereo calibration.
  • 25.09.22. 📍 Now discocal supports asymmetyric grids.
  • 25.05.30. 📍 The uncertainty-aware version is released. It is more accurate and robust.
  • 24.07.19. 🎉 This work is invited to OpenCV Webinar
  • 24.06.17. 📍Add a description of how to undisort images using our method.
  • 24.04.17. 📍We update circular pattern detector! Now, you don't need to tune hyperparameters for detections
  • 24.04.05. 🎉 Discocal is selected for highlight poster. (11.9% of accepted papers, 2.8% of total submissions.)

How to use

1. Prepare runfiles

Option 1) Download runfile (Easy but only works on Ubuntu PC)

Option 2) Build with docker (Supports all architectures)

git clone https://github.com/chaehyeonsong/discocal.git
cd discocal
docker compose up --build

After build, runfiles will be created in discocal folder. You Don't have to additionally build or run docker container

2. Run

Note: Revise the config file before run. (refer to Docs)

  • Intrinsic calibration
     sudo chmod +x run_mono && ./run_mono [config_path]
  • Extrinsic calibration
     sudo chmod +x run_stereo && ./run_stereo [config_path]

You can download sample images in here

Citation

@INPROCEEDINGS{chsong-2024-cvpr, author = {Song, Chaehyeon and Shin, Jaeho and Jeon, Myung-Hwan and Lim, Jongwoo and Kim, Ayoung},
title = {Unbiased Estimator for Distorted Conics in Camera Calibration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {373-381}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • This work is protected by a patent.
  • All codes on this page are copyrighted by Seoul National University published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. You must attribute the work in the manner specified by the author. You may not use the work for commercial purposes, and you may only distribute the resulting work under the same license if you alter, transform, or create the work.
  • For commercial purposes, please contact to chaehyeon@snu.ac.kr

About

fork of chaehyeonsong/discocal

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages