<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def deproject_pixel(self, depth, pixel):
 """Deprojects a single pixel with a given depth into a 3D point. Parameters depth : float The depth value at the given pixel location. pixel : :obj:`autolab_core.Point` A 2D point representing the pixel's location in the camera image. Returns ------- :obj:`autolab_core.Point` The projected 3D point. Raises ------ ValueError If pixel is not a valid 2D Point in the same reference frame as the camera. """

        if not isinstance(pixel, Point) and not pixel.dim == 2:
            raise ValueError('Must provide 2D Point object for pixel projection')
        if pixel.frame != self._frame:
            raise ValueError('Cannot deproject pixel in frame %s from camera with frame %s' %(pixel.frame, self._frame))

        point = np.r_[pixel.data, depth]
        point_3d = np.linalg.inv(self.S).dot(point - self.t)
        return Point(data=point_3d, frame=self._frame)