IP Library Granted Patent US 11,640,686
Granted Patent B2
US 11,640,686 · App. 17/234,443 · Granted May 2, 2023

Systems and method for dynamic insertion of advertisements

Inventors: Susanto Sen (Karnataka, IN); Radhika Dewan (Haryana, IN); Vikram Makam Gupta (Karnataka, IN)
Assignee: ROVI GUIDES, INC.
G06T11/60G06T7/60G06T7/70G06T7/90G06T2207/10016G06T2207/10024
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,640,686
App. No.
17/234,443
Granted
May 2, 2023
Kind
B2
Abstract

Systems and methods are described to detect a location to place an advertisement in a media asset, the method comprising, identifying a plurality of points in a video frame of a media asset, detecting a color associated with each point of the plurality of points, calculating a change in color between each point of the plurality of points, comparing the change in color between each point of the plurality of points with a threshold, identifying, based on the comparing, an area within the frame that constitutes a surface; and selecting an advertisement to be placed on the surface.

Claims (87)

1. A method comprising:

selecting a first point in a video frame of a media asset;

detecting a color associated with the first point;

selecting a plurality of points, wherein the plurality of points comprises points within a threshold distance of the first point that are not adjacent to the first point;

calculating a change in color between the first point and each point of the plurality of points;

comparing the calculated change in color between the first point and each point in the plurality of points with a threshold color change;

generating, based on the comparing, a modifiable data structure representing a surface within the video frame, wherein the surface corresponds to the first point and a subset of points of the plurality of points that are within the threshold color change of the first point;

determining a type associated with the surface;

comparing the type associated with the surface with metadata associated with each advertisement of a plurality of advertisements;

selecting, based on the modifiable data structure and the type associated with the surface, an advertisement for display with the video frame; and

modifying the modifiable data structure to include the advertisement such that the advertisement is displayed with the video frame and appears on the surface within the video frame.

2. The method of claim 1 , further comprising:

determining that the type associated with the surface is associated with a video object to be displayed on the surface; and

modifying the video object to include the advertisement on the video object.

3. The method of claim 2 , wherein modifying the modifiable data structure to include the advertisement such that the advertisement is displayed with the video frame and appears on the surface within the video frame comprises generating for display the advertisement so that it appears on the surface.

4. The method of claim 1 , wherein determining the type associated with the surface comprises:

retrieving a color range associated with the surface;

comparing the color range with color ranges for known surfaces; and

determining, based on comparing the color range with the color ranges for known surfaces, the type that matches the color range.

5. The method of claim 1 , wherein determining the type associated with the surface comprises:

detecting a shape associated with the surface;

comparing the shape with shapes for known surfaces; and

determining, based on comparing the shape with the shapes for known surfaces, the type that matches the shape.

6. The method of claim 1 , wherein selecting the plurality of points comprises:

detecting a resolution of the video frame; and

selecting the plurality of points based on the resolution of the video frame.

7. The method of claim 1 , wherein calculating the change in color between the first point and each point of the plurality of points comprises:

retrieving a first plurality of color values for a plurality of color components for the first point;

retrieving a second plurality of color values for a second plurality of color components for a second point, wherein the second point is in the plurality of points;

comparing each color value in the first plurality of color values representing a color of the first point with a corresponding color value in the second plurality of color values; and

determining, based on comparing each color value in the first plurality of color values representing the color of the first point with the corresponding color value in the second plurality of color values, a difference between each color component; and

storing the different between each color component.

8. The method of claim 1 , wherein generating, based on the subset of points, the modifiable data structure representing the surface within the video frame comprises:

comparing coordinates within the video frame of each point of the subset of points with coordinates of other points with the subset of points;

determining, based on comparing the coordinates within the video frame of each point of the subset of points with the coordinates of other points with the subset of points, edges of the surface; and

storing coordinates of the edges in the modifiable data structure.

9. The method of claim 8 , further comprising:

retrieving a plurality of frames that are scheduled to be displayed subsequent to the video frame;

comparing colors associated with coordinates of the edges in the modifiable data structure with colors associated with corresponding coordinates within each frame of the plurality of frames;

determining, for each frame of the plurality of frames and based on comparing the colors associated with coordinates of the edges in the modifiable data structure with the colors associated with corresponding coordinates within each frame of the plurality of frames, whether the colors associated with each coordinate of the edges in the modifiable data structure matches the colors associated with a respective coordinate associated with the video frame;

adding the advertisement to those frames where the colors associated with each coordinate of the edges in the modifiable data structure matches the colors associated with a respective coordinate associated with the video frame; and

refraining from adding the advertisement to those frames where the colors associated with each coordinate of the edges in the modifiable data structure does not match the colors associated with a respective coordinate associated with the video frame.

10. A system to detect a location to place an advertisement in a media asset, the system comprising:

a communication port;

a memory storing instructions; and

control circuitry communicably coupled to the memory and the communication port and configured to execute the instructions to:

select a first point in a video frame of a media asset;

detect a color associated with the first point;

select a plurality of points, wherein the plurality of points comprises points within a threshold distance of the first point that are not adjacent to the first point;

calculate a change in color between the first point and each point of the plurality of points;

compare the calculated change in color between the first point and each point in the plurality of points with a threshold color change;

generate, based on the comparison, a modifiable data structure representing a surface within the video frame, wherein the surface corresponds to the first point and a subset of points of the plurality of points that are within the threshold color change of the first point;

determine a type associated with the surface;

compare the type associated with the surface with metadata associated with each advertisement of the plurality of advertisements;

select, based on the modifiable data structure and the type associated with the surface, an advertisement for display with the video frame; and

modify the modifiable data structure to include the advertisement such that the advertisement is displayed with the video frame and appears on the surface within the video frame.

11. The system of claim 10 , wherein the control circuitry is further configured to:

determine that the type associated with the surface is associated with a video object to be displayed on the surface; and

modify the video object to include the advertisement on the video object.

12. The system of claim 11 , wherein the control circuitry configured to modify the modifiable data structure to include the advertisement such that the advertisement is displayed with the video frame and appears on the surface within the video frame is further configured to generate for display the advertisement so that it appears on the surface.

13. The system of claim 10 , wherein the control circuitry configured to determine the type associated with the surface is further configured to:

retrieve a color range associated with the surface;

compare the color range with color ranges for known surfaces; and

determine, based on comparing the color range with the color ranges for known surfaces, the type that matches the color range.

14. The system of claim 10 , wherein the control circuitry configured to determine the type associated with the surface is further configured to:

detect a shape associated with the surface;

compare the shape with shapes for known surfaces; and

determine, based on comparing the shape with the shapes for known surfaces, the type that matches the shape.

15. The system of claim 10 , wherein the control circuitry configured to select the plurality of points is further configured to:

detect a resolution of the video frame; and

select the plurality of points based on the resolution of the video frame.

16. The system of claim 15 , wherein the control circuitry configured to generate, based on the subset of points, the modifiable data structure representing the surface within the video frame is further configured to:

compare coordinates within the video frame of each point of the subset of points with coordinates of other points with the subset of points;

determine based on comparing the coordinates within the video frame of each point of the subset of points with the coordinates of other points with the subset of points, edges of the surface; and

store coordinates of the edges in the data structure.

17. The system of claim 15 , wherein the control circuitry is further configured to:

retrieve a plurality of frames that are scheduled to be displayed subsequent to the video frame;

compare colors associated with coordinates of the edges in the modifiable data structure with colors associated with corresponding coordinates within each frame of the plurality of frames;

determine, for each frame of the plurality of frames and based on comparing the colors associated with coordinates of the edges in the modifiable data structure with the colors associated with corresponding coordinates within each frame of the plurality of frames, whether the colors associated with each coordinate of the edges in the modifiable data structure matches the colors associated with a respective coordinate associated with the video frame;

add the advertisement to those frames where the colors associated with each coordinate of the edges in the modifiable data structure matches the colors associated with a respective coordinate associated with the video frame; and

refrain from adding the advertisement to those frames where the colors associated with each coordinate of the edges in the modifiable data structure does not match the colors associated with a respective coordinate associated with the video frame.

18. The system of claim 10 , wherein the control circuitry configured to calculate the change in color between the first point and each point of the plurality of points is further configured to:

retrieve a first plurality of color values for a plurality of color components for the first point;

retrieve a second plurality of color values for a second plurality of color components for a second point, wherein the second point is in the plurality of points;

compare each color value in the first plurality of color values representing a color of the first point with a corresponding color value in the second plurality of color values; and

determine, based on comparing each value in the first plurality of color values representing the color of the first point with the corresponding color value in the second plurality of color values, a difference between each color component; and

store the different between each color component.

Assignments (2)
CHANGE OF NAME Recorded Oct 3, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069112/0430 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2021
From: SEN, SUSANTO; DEWAN, RADHIKA; GUPTA, VIKRAM MAKAM
To: ROVI GUIDES, INC.
Reel/Frame 055972/0582 →
Continuity (2)
Continuation 16310887
Related Publication 20210264653A1 · Aug 26, 2021
Cited By (1)
US 12,340,451