Foreground detection
First Claim
Patent Images
1. A machine implemented method for producing virtual camera motion, comprising:
- receiving a set of two or more images of a scene;
identifying foreground for at least a subset of said images of said scene; and
creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of identifying foreground comprises the steps of,subtracting a first image of said scene from a second image of said scene to create a first difference, said first image and said second image are from a first camera,subtracting a third image of said scene from said second image to create a second difference, said third image is from said first camera, andcreating a union of said first difference and said second difference, said union identifies said foreground.
11 Assignments
0 Petitions
Accused Products
Abstract
A system is disclosed that can find an image of a foreground object in a still image or video image. Finding the image of the foreground object can be used to reduce errors and reduce the time needed when creating morphs of an image. One implementation uses the detection of the image of the foreground object to create virtual camera movement, which is the illusion that a camera is moving around a scene that is frozen in time.
-
Citations
57 Claims
-
1. A machine implemented method for producing virtual camera motion, comprising:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of identifying foreground comprises the steps of, subtracting a first image of said scene from a second image of said scene to create a first difference, said first image and said second image are from a first camera, subtracting a third image of said scene from said second image to create a second difference, said third image is from said first camera, and creating a union of said first difference and said second difference, said union identifies said foreground. - View Dependent Claims (2, 3, 4)
-
-
5. A machine implemented method for producing virtual camera motion, comprising:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein, said step of receiving includes receiving a first video image, a second video image and a third video image, said first video image views a foreground object at a first angle, said second video image views said foreground object at a second angle, said third video image views said foreground object at a third angle, said step of creating a video includes creating a first set of one or more new video images and a second set of one or more video images, said first set of one or more video images appear to view said foreground object at angles between said first angle and said second angle, said second set of one or more video images appear to view said foreground object at angles between said second angle and said third angle, and said video includes said first set of one or more video images and said second set of one or more video images. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for producing virtual camera motion, comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating a video comprises the steps of, warping a first image from a first camera to a second image from a second camera; warping a third image from a third camera to said second image from said second camera; removing foregrounds from said first image, said second image and said third image; filling in background for said removed foreground in said first image, said second image and said third image; creating new images by blending backgrounds of said first image with said second image and said second image with said third image; blurring said new images; morphing said removed foregrounds; adding said morphed foregrounds to said new images; and unwarping said new images.
-
-
14. A method for producing virtual camera motion, comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating includes the steps of, creating one or more video images having blurred backgrounds based on said step of identifying foreground; and assembling said created one or more video images into said video.
-
-
15. A method for producing virtual camera motion, comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating includes the steps of, creating one or more video images by blending a first image from a first camera with a second image from a second camera using different blending factors to create different backgrounds for said one or more video images; blurring said backgrounds of said one or more video images using different blurring factors for at least a subset of said one or more video images; and assembling said created one or more video images into said video.
-
-
16. A method for producing virtual camera motion, comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating includes the steps of, creating one or more video images having solid backgrounds based on said step of identifying foreground, said video includes said video images having solid backgrounds; and assembling said created one or more video images into said video.
-
-
17. A method for producing virtual camera motion, comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating comprises the steps of, finding edges in a first video image from a first camera; finding edges in a second video image from a second camera; finding edges in a third video image from a third camera; creating matches of at least portions edges in said first video image, said second video image and said third video image; creating chains of said matches; discarding bad chains; creating morphs of at least a portion of said first video image and said second video image based on said chains; creating a new set of video images, adding said morphs to said new set of video images; and assembling said new set of images into said video.
-
-
18. A machine implemented method for producing virtual camera motion, comprising the steps of:
-
receiving two or more images of a scene which view a foreground object from a first set of different angles; identifying foreground for said two or more images of said scene; and creating one or more new images of said scene based on said two or more images and step of identifying, said new images appear to view said foreground object from new angles different than said first set of different angles. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A machine implemented method for identifying foreground, comprising the steps of:
-
receiving a first image from a first camera; receiving a second image from said first camera; receiving a third image from said first camera; subtracting said second image from said first image to create a first difference subtracting said third image from said first image to create a second difference; and creating a union of said first difference and said second difference, said union identifies said foreground. - View Dependent Claims (26, 27, 28)
-
-
29. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of identifying foreground comprises the steps of, subtracting a first image of said scene from a second image of said scene to create a first difference, said first image and said second image are from a first camera; subtracting a third image of said scene from said second image to create a second difference, said third image is from said first camera; and creating a union of said first difference and said second difference, said union identifies said foreground.
-
-
30. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating includes the steps of, creating one or more video images having blurred backgrounds based on said step of identifying foreground; and assembling said created one or more video images into said video.
-
-
31. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating includes the steps of, creating one or more video images by blending a first image from a first camera with a second image from a second camera using different blending factors to create different backgrounds for said one or more video images; blurring said backgrounds of said one or more video images using different blurring factors for at least a subset of said one or more video images; and assembling said created one or more video images into said video.
-
-
32. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating comprises the steps of, finding edges in a first video image from a first camera; finding edges in a second video image from a second camera; finding edges in a third video image from a third camera; creating matches of at least portions edges in said first video image, said second video image and said third video image; creating chains of said matches; discarding bad chains; creating morphs of at least a portion of said first video image and said second video image based on said chains; creating a new set of video images, adding said morphs to said new set of video images; and assembling said new set of images into said video.
-
-
33. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving a set of two or more images of a scene; identifying foreground for at least a subset of said images of said scene; and creating a video of said scene conveying an illusion of a camera moving around said scene, said step of creating a video is based on said set of two or more images and said step of identifying foreground, wherein said step of creating a video comprises the steps of, warping a first image from a first camera to a second image from a second camera; warping a third image from a third camera to said second image from said second camera; removing foregrounds from said first image, said second image and said third image; filling in background for said removed foreground in said first image, said second image and said third image; creating new images by blending backgrounds of said first image with said second image and said second image with said third image; blurring said new images; morphing said removed foregrounds; adding said morphed foregrounds to said new images; and unwarping said new images.
-
-
34. An apparatus, comprising:
-
a communication interface; one or more storage devices; and one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors receive a set of two or more images of a scene, identify foreground for at least a subset of said images of said scene, and create a video of said scene conveying an illusion of a camera moving around said scene frozen in time, said creating said video is based on said set of two or more images and said step of identifying foreground. - View Dependent Claims (35, 36, 37, 38)
-
-
39. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving two or more images of a scene which view a foreground object from a first set of different angles; identifying foreground for said two or more images of said scene; and creating one or more new images of said scene based on said two or more images and step of identifying, said new images appear to view said foreground object from new angles different than said first set of different angles. - View Dependent Claims (40, 41, 42, 43)
-
-
44. An apparatus, comprising:
-
a communication interface; one or more storage devices; and one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors receive two or more images of a scene which view a foreground object from a first set of different angles, identify foreground for said two or more images of said scene, and create one or more new images of said scene based on said two or more images and said identify, said new images appear to view said foreground object from new angles different than said first set of different angles. - View Dependent Claims (45, 46, 47, 48, 49)
-
-
50. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving a first image from a first camera; receiving a second image from said first camera; receiving a third image from said first camera; subtracting said second image from said first image to create a first difference subtracting said third image from said first image to create a second difference; and creating a union of said first difference and said second difference, said union identifies said foreground. - View Dependent Claims (51, 52, 53)
-
-
54. An apparatus, comprising:
-
a communication interface; one or more storage devices; and one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors receive a first image from a first camera, receive a second image from said first camera, receive a third image from said first camera, subtract said second image from said first image to create a first difference, subtract said third image from said first image to create a second difference, and create a union of said first difference and said second difference, said union identifies said foreground. - View Dependent Claims (55, 56, 57)
-
Specification