A computer-implemented method for real-time 2D to 3D video conversion, comprising: receiving a decoded 2D video frame having an original resolution; downscaling the decoded 2D video frame into an associated 2D video frame having a lower resolution; segmenting objects present in the downscaled 2D video frame into background objects and foreground objects; generating (604, 606, 704, 706) a background depth map and a foreground depth map for the downscaled 2D video frame based on the segmented background and foreground objects, wherein the generating the foreground depth map comprises applying foreground skeleton depth estimation to the foreground objects segmented from the downscaled 2D video frame, wherein the foreground skeleton depth estimation comprises decomposing the foreground object into a skeleton and distances of boundary points from the skeleton in a horizontal direction, wherein the skeleton comprises connected midpoints between two boundary points in the horizontal direction, and deriving the foreground depth map based on the skeleton depth estimation; deriving a frame depth map in the original resolution based on the background depth map and the foreground depth map; and providing a 3D video frame for display at a real-time playback rate, wherein the 3D video frame is generated in the original resolution based on the frame depth map, wherein applying foreground skeleton depth estimation further comprises: obtaining the skeleton by scanning the foreground object and finding a middle point of the horizontal scan-line segment within the object; determining the depth of the bottom point of the skeleton based on the depth of its neighboring background; determining the depth of all other skeleton points as being the same as the bottom point of the skeleton; determining the depth of the boundary points as being the same as the depth of their neighboring background; and deteimining the depth of internal points between each skeleton point and its horizontal boundary points by interpolation with a Gaussian distribution function. receiving a decoded 2D video frame having an original resolution; downscaling the decoded 2D video frame into an associated 2D video frame having a lower resolution; segmenting objects present in the downscaled 2D video frame into background objects and foreground objects; generating (604, 606, 704, 706) a background depth map and a foreground depth map for the downscaled 2D video frame based on the segmented background and foreground objects, wherein the generating the foreground depth map comprises applying foreground skeleton depth estimation to the foreground objects segmented from the downscaled 2D video frame, wherein the foreground skeleton depth estimation comprises decomposing the foreground object into a skeleton and distances of boundary points from the skeleton in a horizontal direction, wherein the skeleton comprises connected midpoints between two boundary points in the horizontal direction, and deriving the foreground depth map based on the skeleton depth estimation; applying foreground skeleton depth estimation to the foreground objects segmented from the downscaled 2D video frame, wherein the foreground skeleton depth estimation comprises decomposing the foreground object into a skeleton and distances of boundary points from the skeleton in a horizontal direction, wherein the skeleton comprises connected midpoints between two boundary points in the horizontal direction, and deriving the foreground depth map based on the skeleton depth estimation; deriving a frame depth map in the original resolution based on the background depth map and the foreground depth map; and providing a 3D video frame for display at a real-time playback rate, wherein the 3D video frame is generated in the original resolution based on the frame depth map, wherein applying foreground skeleton depth estimation further comprises: obtaining the skeleton by scanning the foreground object and finding a middle point of the horizontal scan-line segment within the object; determining the depth of the bottom point of the skeleton based on the depth of its neighboring background; determining the depth of all other skeleton points as being the same as the bottom point of the skeleton; determining the depth of the boundary points as being the same as the depth of their neighboring background; and deteimining the depth of internal points between each skeleton point and its horizontal boundary points by interpolation with a Gaussian distribution function. obtaining the skeleton by scanning the foreground object and finding a middle point of the horizontal scan-line segment within the object; determining the depth of the bottom point of the skeleton based on the depth of its neighboring background; determining the depth of all other skeleton points as being the same as the bottom point of the skeleton; determining the depth of the boundary points as being the same as the depth of their neighboring background; and deteimining the depth of internal points between each skeleton point and its horizontal boundary points by interpolation with a Gaussian distribution function.