Machine learning is used to train a network to estimate a three-dimensional (3D) body surface and body regions of a patient from surface images of the patient. The estimated 3D body surface of the patient is used to determine an isocenter of the patient. The estimated body regions are used to generate heatmaps representing visible body region boundaries and unseen body region boundaries of the patient. The estimation of 3D body surfaces, the determined patient isocenter, and the estimated body region boundaries may assist in planning a medical scan, including automatic patient positioning.