While trying to generate DSM using UAV acquired data, I am confused with step by step processes that are carried out. I believe, it all starts with extracting keypoints/tiepoints, then we get multiple image pairs and we extract Z for each image pair? How do we extract single Z for a single pixel in final orthomosaicked image? Then where do exactly bundle block adjustment fit-in in this process? Please help me to understand.