A detection system to detect moving objects in image data of a monocular video stream, the detection system comprising: an object-feature extractor comprising a first trained convolutional neural network structure, the object-feature extractor being configured to receive image data of said monocular video stream and to generate an output comprising object features; a motion-feature extractor comprising a second trained convolutional neural network structure, the motion-feature extractor being configured to receive image data of said monocular video stream and to generate an output comprising motion features; and a detection head comprising a third trained convolutional neural network structure, the detection head being configured to receive the outputs of the object-feature extractor and the motion-feature extractor and to output segmentation masks identifying respective regions, in a subject image frame ( I t) of the monocular video stream, where moving objects are located; wherein the object-feature extractor is configured to generate an output comprising class-agnostic object features; said detection system being characterised in that the motion-feature extractor is configured to generate an output comprising first motion features indicative of motion between the subject image frame ( I t) and the previous image frame ( I t-1) and second motion features indicative of motion between the subject image frame ( I t) and the next image frame ( I t+1), the motion-feature extractor comprises a motion-cost-volume calculator configured to generate first motion cost volume parameters (V t-i) in respect of backward motion from the subject frame ( I t) to the previous frame ( I t-1), and second motion cost volume parameters (V t+1) in respect of forward motion from the subject frame ( I t) to the next frame ( I t+1); and the second trained convolutional neural network structure is configured to generate motion-feature tensors ( M t − 1, M t + 1) from inputs consisting of the first and second motion cost volume parameters (V t-1, V t+1) generated by the motion-cost-volume calculator, wherein the motion-cost-volume calculator is configured to determine, from the image data of the monocular video stream, estimates of monocular depth, optical flow, optical expansion and ego-motion, and to generate said first and second motion cost volume parameters (V t-1, V t+1) from the estimates of monocular depth, optical flow, optical expansion and ego-motion. an object-feature extractor comprising a first trained convolutional neural network structure, the object-feature extractor being configured to receive image data of said monocular video stream and to generate an output comprising object features; a motion-feature extractor comprising a second trained convolutional neural network structure, the motion-feature extractor being configured to receive image data of said monocular video stream and to generate an output comprising motion features; and a detection head comprising a third trained convolutional neural network structure, the detection head being configured to receive the outputs of the object-feature extractor and the motion-feature extractor and to output segmentation masks identifying respective regions, in a subject image frame ( I t) of the monocular video stream, where moving objects are located; wherein the object-feature extractor is configured to generate an output comprising class-agnostic object features; said detection system being characterised in that the motion-feature extractor is configured to generate an output comprising first motion features indicative of motion between the subject image frame ( I t) and the previous image frame ( I t-1) and second motion features indicative of motion between the subject image frame ( I t) and the next image frame ( I t+1), the motion-feature extractor comprises a motion-cost-volume calculator configured to generate first motion cost volume parameters (V t-i) in respect of backward motion from the subject frame ( I t) to the previous frame ( I t-1), and second motion cost volume parameters (V t+1) in respect of forward motion from the subject frame ( I t) to the next frame ( I t+1); and the second trained convolutional neural network structure is configured to generate motion-feature tensors ( M t − 1, M t + 1) from inputs consisting of the first and second motion cost volume parameters (V t-1, V t+1) generated by the motion-cost-volume calculator, wherein the motion-cost-volume calculator is configured to determine, from the image data of the monocular video stream, estimates of monocular depth, optical flow, optical expansion and ego-motion, and to generate said first and second motion cost volume parameters (V t-1, V t+1) from the estimates of monocular depth, optical flow, optical expansion and ego-motion.