๐ก ๋ณธ ๋ฌธ์๋ 'Depth Estimation์ ํ๊ฐ ์งํ (Metric)'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
์ด๋ฒ ๊ธ์์๋ Depth Estimation ๋ ผ๋ฌธ์์ ์ฑ๋ฅ ์งํ๋ก ์ฌ์ฉํ๋ metric์ ๋ํ์ฌ ๊ฐ๋ตํ๊ฒ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.์ฃผ๋ก ์ฌ์ฉํ๋ metric์ Absolute Relative Error(AbsRel), Square Relative Error(SqRel), Root Mean Square Error(RMSE), log scale RMSE(RMSE log), Accuracy under a threshold(δ, 1.25) ์ ๋๋ค. ์ metric์ Regression ๋ชจ๋ธ์ ํ๊ฐํ๋ ์งํ์ด๋ฉฐ ๊ฐ ์งํ์ ์๋ฏธ๋ ์๋์ ๊ฐ์ต๋๋ค. ์ metric์ Regression ๋ชจ๋ธ์ ํ๊ฐํ๋ ์งํ์ด๋ฉฐ ๊ฐ ์งํ์ ์๋ฏธ๋ ์๋์ ์์ธํ ์ ๋ฆฌํ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1. Depth Estimation Metrics์ ์ข ๋ฅ์ ์์
2. Depth Estimation Metrics์ ์๋ฏธ
Absolute Relative Error, Square Relative Error, Root Mean Square Error, log scale RMSE์ ์ ํต์ ์ผ๋ก Regression ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ธก์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋ Metric์ด๋ฉฐ Accuracy under threshold๋ Depth Estimation ๋ชจ๋ธ์ Accuracy๋ฅผ ์ธก์ ํ๊ธฐ ์ํด ๋์ ๋์์ต๋๋ค.
Absolute/Square Relative Error
Absolute Relative Error์ Sqaure Relative Error๋ L1 or L2๋ฅผ ์ฌ์ฉํ๋์ง์ ๊ด๋ จํ์ฌ ์ฐจ์ด๊ฐ ์กด์ฌํฉ๋๋ค. ๋ํ ๋ชจ๋ ๋ถ๋ชจ์ d_{p}๊ฐ ์ ์ฉ๋๋๋ฐ, ์ด๋ ๊ฒ ์ ๊ทํํ๋ ์ด์ ๋ scale์ ๋ฒ์์ ๋ฐ๋ผ์ ๊ฐ์ ํฌ๊ธฐ๊ฐ ๋ง์ด ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ์ 0 ~ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ์ ๊ทํํ๋ ๊ฒ์ ๋๋ค. Depth Estimation์ ์ถ๋ ฅ ํน์ฑ ์ ๊ฑฐ๋ฆฌ๊ฐ์ด ์ปค์ง์๋ก ์๋ฌ๊ฐ ์ปค์ง๊ธฐ ๋๋ฌธ์ ๊ฑฐ๋ฆฌ ๊ฐ์ ๋ฒ์๊ฐ ๋ฌ๋ผ์ง๋ฉด ์๋ฌ๊ฐ์ ํฌ๊ธฐ๊ฐ ์์ ํ ๋ฌ๋ผ์ง๊ธฐ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
Depth Estimation์์ ๋ Metric์ ์ฌ์ฉํ ๋, Absolute Relative Error๋ ๋ชจ๋ ์์ญ์ ๋ํ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํ์ธํ๊ณ , Square Relative Error์ ๊ฒฝ์ฐ์๋ ํ๊ณ ์ํฉ์ ๋ํ ์ด์ ํจ ์ ๋๋ฅผ ํ์ธํ ๋ ์ฌ์ฉํฉ๋๋ค. ํ๊ณ ์ํฉ์์ ์๋ฌ๊ฐ ํฌ๊ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ข ๋ ํฐ ํ๋ํฐ๊ฐ ์ ์ฉํ ์ํ๋ก ๊ณ์ฐ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ๊ณ ์ํฉ์ ๋ํ์ ์ธ ์์๋ ์๊ฑฐ๋ฆฌ ์์ญ๊ณผ ๊ฐ์ฒด์ ๋ฐฐ๊ฒฝ์ ๊ฒฝ๊ณ ์์ญ์ ๋๋ค.
Root Mean Square Error์ log scale RMSE
Root Mean Squre Error (RMSE)์ log scale RMSE์ ๊ฐ ์ log๊ฐ ์ ์ฉ๋ ๊ฒ ์ธ์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
log scale RMSE๋ Absolute Relative Error์ ์ ์ฌํ ์ฑํฅ์ด ์๊ณ RMSE๋ Square Relative Error์ ์ ์ฌํ ์ฑํฅ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฆ, log scale RMSE๋ฅผ ํตํด ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ๊ด์ธกํ ์ ์๊ณ RMSE๋ฅผ ํตํด ์ด์์น ์ฆ, Depth Estimation์์์ ํ๊ณ ์ํฉ์ ๋ํ ์ฑ๋ฅ์ ์ข ๋ ๋ช ํํ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
์ข ๋ ์์์ ์ผ๋ก ํ์ธํด๋ณด๋ฉด, RMSE๋ ์์์ ๋ค๋ฃฌ Square Relative Error์ ์ ์ฌํ์ง๋ง Relative ๊ฐ์ด ์๋ ๊ฐ ๊ทธ๋๋ก ์๋ฌ๊ฐ์ ๊ตฌํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ด์์น์ ๋ฏผ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ๊ทธ ๋ฌธ์ ๋ฅผ ์ผ๋ถ ๊ฐ์ ํ๊ธฐ ์ํ์ฌ Root๋ฅผ ์ ์ฉํฉ๋๋ค. ๋ฐ๋ฉด์ log scale RMSE๋ ์๋ณธ ๊ฐ์ log๋ฅผ ์ ์ฉํ์ฌ ๊ฐ์ ๋ฒ์์ ๋ฏผ๊ฐํ์ง ์๋๋ก ๋ง๋ ํ RMSE๋ฅผ ์ ์ฉํฉ๋๋ค. ์ด์ ๊ฐ์ ๋ฐฉ์์ ์ด์ฉํ์ฌ ์ด์์น์ ๊ฐ๊ฑดํด์ง๊ณ ๊ธฐ์กด ๊ฐ์ ๋ฒ์๊ฐ ์๋ log ๊ฐ์ ๋ฒ์์์ ์๋ฌ๋ฅผ ๊ณ์ฐํจ์ผ๋ก์จ log ๊ฐ์ ๋ฒ์์์ ์๋์ ์ธ ๋น๊ต๋ฅผ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ธ ๋ณ log scale RMSE์ ๊ฐ์ ๋น๊ตํ๋ฉด ๊ฐ์ ๋ณ๋์ด ์๋์ ์ผ๋ก ์์ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Accuracy under threshold
Accuracy๋ ๋ผ์ด๋ค ํฌ์ธํธ ํด๋ผ์ฐ๋๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ sparse depthmap GT์ Depth Estimation ๋ชจ๋ธ์ ํตํด ์ป์ dense depthmap prediction ๊ฐ์ Accuracy๋ฅผ ์ธก์ ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํธ์๋ฅผ ์ํ์ฌ ์ ์ค ํฐ ๊ฐ์ ๋ถ์, ์์ ๊ฐ์ ๋ถ๋ชจ์ ๋์ด ๋ ์ค ํฐ ๊ฐ์ ์ป๋๋ก ํฉ๋๋ค. ์ฆ, ์์ธก๊ฐ๊ณผ ์ ๋ต๊ฐ ์ค ํฐ ๊ฐ๊ณผ ์์ ๊ฐ์ ๋น์จ์ ๋ํ๋ ๋๋ค.
์ด ๋, ๋น์จ์ด threshold ๊ฐ์ธ ๋ณด๋ค ์์ผ๋ฉด True Positive๋ก ๊ฐ์ฃผํฉ๋๋ค. Depth Estimation์์๋ ์ ํต์ ์ผ๋ก δ ๊ฐ์ , , ๋ก ์ ์ํฉ๋๋ค.
์ด ๊ฐ์ ๋ฒ์๋ฅผ 5(m) ~ 100 (m) ๊น์ง ์ดํดํ๊ธฐ ์ฝ๊ฒ ํ๋ก ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ์ฐ์ธก ํ๋ δ์ ๊ฐ์ 1.1, 1.15, 1.2๋ก ๋ณ๊ฒฝํ์์ ๋์ ๋ฒ์๋ฅผ ์ ๋ฆฌํ์์ต๋๋ค.
Depth์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์ค์ฐจ ๋ฒ์๋ ์ปค์ง๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ Depth Estimation์ Depth๊ฐ ์ปค์ง์๋ก ์ ๋ฐํ ์์ธก์ด ์ด๋ ต๋ค๋ Task ์์ฒด์ ํ๊ณ๋ฅผ ๋ฐ์ํ ๊ฒ์ ๋๋ค.
3. Depth Estimation Metrics: Pytorch Code
์ง๊ธ๊น์ง ์ค๋ช ํ 7๊ฐ์ง์ ๋ํ์ ์ธ Depth Estimation์ Metric์ ๊ณ์ฐ ๊ณผ์ ์ ์๊ฐํ๋ฉด ์๋ ์ฝ๋์ ๊ฐ์ต๋๋ค.
def compute_depth_errors(gt, pred):
abs_rel = torch.mean(torch.abs(gt - pred) / gt)
sq_rel = torch.mean((gt - pred) ** 2 / gt)
rmse = (gt - pred) ** 2
rmse = torch.sqrt(rmse.mean())
rmse_log = (torch.log(gt) - torch.log(pred)) ** 2
rmse_log = torch.sqrt(rmse_log.mean())
delta = torch.max((gt / pred), (pred / gt))
a1 = (delta < 1.25 ).float().mean()
a2 = (delta < 1.25 ** 2).float().mean()
a3 = (delta < 1.25 ** 3).float().mean()
return abs_rel, sq_rel, rmse, rmse_log, a1, a2, a3
์ฐธ๊ณ
- [Blog] Depth Estimation์ ํ๊ฐ ์งํ (Metric): https://gakussian37.github.io/vision-depth-metrics/
- [Blog] All about Depth Estimations Metrics: https://kalelpark.tistory.com/203
- ์ฐธ์กฐ : http://ylatif.github.io/papers/IROS2016_ccadena.pdf
- ์ฐธ์กฐ : https://medium.com/analytics-vidhya/mae-mse-rmse-coefficient-of-determination-adjusted-r-squared-which-metric-is-better-cd0326a5697e
- ์ฐธ์กฐ : https://towardsdatascience.com/ways-to-evaluate-regression-models-77a3ff45ba70
- ์ฐธ์กฐ : https://towardsdatascience.com/what-does-rmse-really-mean-806b65f2e48e
- ์ฐธ์กฐ : https://www.analyticsvidhya.com/blog/2021/10/evaluation-metric-for-regression-models/