IP Library › Granted Patent US 12,469,188
Granted Patent B2
US 12,469,188 · App. 18/370,286 · Granted Nov 11, 2025

Stochastic color mapping to generate multiple color palette variations

Inventors: Vishwas Jain (Bengaluri, IN); Vineet Batra (Delhi, IN); Sumit Dhingra (Delhi, IN); Sumit Chaturvedi (Noida, IN); Souymodip Chakraborty (Bengaluru, IN); Ankit Phogat (Noida, IN)
Assignee: Adobe Inc.
G06T11/001
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 12,469,188
App. No.
18/370,286
Granted
Nov 11, 2025
Kind
B2
Abstract

Recoloring a target graphic using color palettes generated using a stochastic color mapping process. One method of recoloring a target graphic using the stochastic color mapping process includes obtaining a target graphic to be recolored and a source color palette defining source colors for recoloring the target graphic. A target color set of target colors is extracted from the target graphic. The method includes computing a mapping to map source colors of a source color palette to target colors extracted from a target color set of the target graphic based on a transition probability. A destination color palette of destination colors is determined based on the mapping. The target graphic is modified by recoloring at least one object in the target graphic with a destination color from the destination color palette.

Claims (65)

1 . A method, comprising:

obtaining a target graphic to be recolored;

obtaining a source color palette defining source colors for recoloring the target graphic;

extracting a target color set comprising target colors from a target graphic;

computing a mapping to map the source colors to the target colors based on a transition probability;

determining a destination color palette of destination colors based on the mapping;

modifying the target graphic by recoloring at least one object in the target graphic with a destination color from the destination color palette; and

causing display of the recolored target graphic on a graphical user interface (GUI).

2 . The method of claim 1 , wherein the transition probability is computed by minimizing an amount of work required to transform a source color distribution of the source color palette into a target color distribution of the target color set.

3 . The method of claim 1 , wherein the destination color palette is determined based on the mapping by exchanging each of the target colors with one of the source colors stochastically selected based on the transition probability.

4 . The method of claim 1 , wherein the target color palette comprises a clustered color palette generated by clustering the target color set via:

segmenting the target colors into at least one cluster based on a relationship of at least one color property of the target colors, and

determining a cluster color to represent the at least one cluster, the cluster color determined as an average of the colors segmented into the at least one cluster.

5 . The method of claim 4 , wherein segmenting the target colors into the clustered color palette comprises, for each target color:

comparing the at least one color property of the target color and one or more segmented colors assigned to an active cluster;

adding the target color to the active cluster if the at least one color property of the target color and the one or more segmented colors is within a predefined threshold; and

initializing a new cluster and adding the target color to the new cluster if the at least one color property of the target color and the one or more segmented colors is not within the predefined threshold.

6 . The method of claim 5 , further comprising generating a de-clustered destination color palette by de-clustering the destination color palette, prior to recoloring the target graphic, via, for each original target color associated with the destination color palette:

determining at least one color property difference value based on a difference of the at least one color property of the original target color and a corresponding cluster color determined for a cluster of the clustered color palette;

transforming the original target color to a modified color based on the at least one color property difference and the at least one color property of the corresponding destination color assigned to the cluster; and

adding the modified color to the de-clustered destination color palette.

7 . The method of claim 1 , wherein computing the transition probability is based on a uniform randomness factor configured to facilitate randomization of the colors of the destination color palette by giving a non-zero probability to each color of the source color palette.

8 . The method of claim 1 , wherein the transition probability is determined based on minimizing an earth mover distance (EMD).

9 . A non-transitory computer-readable medium storing executable instructions, which when executed by one or more processing devices, cause the one or more processing devices to perform operations comprising:

obtaining a target graphic to be recolored;

obtaining source colors for recoloring the target graphic;

determining a clustered color palette via clustering target colors extracted from the target graphic;

determining a destination color palette by exchanging each color of the clustered color palette with one of a plurality of source colors stochastically selected based on a randomized transition probability;

determining a de-clustered color set via de-clustering the destination color palette; and

modifying the target graphic by recoloring at least one object in the target graphic with a color from the destination color palette.

10 . The non-transitory computer-readable medium of claim 9 , wherein the randomized transition probability is computed as a probability of selecting a particular color of the plurality of source colors to replace a color of the clustered color palette.

11 . The non-transitory computer-readable medium of claim 9 , the executable instructions, when executed by the one or more processing devices, causing the one or more processing devices to perform operations comprising:

determining the transition probability based on minimizing an earth mover distance (EMD) for transforming a first color distribution of the clustered color palette into a second color distribution of the plurality of source colors.

12 . The non-transitory computer-readable medium of claim 9 , wherein computing the transition probability uses a uniform randomness factor determined based on a weight of each color in the target colors configured to correspond with an amount of each color in the target graphic.

13 . The non-transitory computer-readable medium of claim 9 , the executable instructions, when executed by the one or more processing devices, causing the one or more processing devices to perform operations for clustering comprising:

segmenting the target colors into at least one cluster based on a relationship of at least one color property of the target colors; and

determining a cluster color to represent the at least one cluster, the cluster color determined as an average of the colors segmented into the at least one cluster.

14 . The non-transitory computer-readable medium of claim 13 , wherein segmenting the target colors into the clustered color palette comprises, for each target color:

comparing the at least one color property of the target color and one or more segmented colors assigned to an active cluster;

adding the target color to the active cluster if the at least one color property of the target color and the one or more segmented colors is within a predefined threshold; and

initializing a new cluster and adding the target color to the new cluster if the at least one color property of the target color and the one or more segmented colors is not within the predefined threshold.

15 . The non-transitory computer-readable medium of claim 14 , the executable instructions, when executed by the one or more processing devices, causing the one or more processing devices to perform operations for clustering comprising, for each original target color associated with the destination color palette:

determining at least one color property difference value based on a difference of the at least one color property of the original target color and a corresponding cluster color determined for a cluster of the clustered color palette;

transforming the original target color to a modified color based on the at least one color property difference and the at least one color property of a corresponding destination color assigned to the cluster; and

adding the modified color to the de-clustered destination color palette.

16 . A system, comprising:

a memory component; and

one or more processing devices coupled to the memory component, the one or more processing devices to perform operations comprising:

obtaining a target graphic to be recolored;

obtaining a source color palette defining source colors for recoloring the target graphic;

extracting a target color set comprising target colors from a target graphic;

computing a mapping to map the source colors to the target colors based on a transition probability computed by minimizing an earth mover distance (EMD) of transforming a source color distribution of the source color palette into a target color distribution of the target color set, modified by a randomization factor;

determining a destination color palette of destination colors based on the mapping; and

modifying the target graphic by recoloring at least one object in the target graphic with a destination color from the destination color palette.

17 . The system of claim 16 , wherein the destination color palette is determined based on the mapping by exchanging each of the target colors with one of the source colors stochastically selected based on the transition probability.

18 . The system of claim 16 , wherein the target color palette comprises a clustered color palette generated by clustering the target color set via:

segmenting the target colors into at least one cluster based on a relationship of at least one color property of the target colors, and determining a cluster color to represent the at least one cluster, the cluster color determined as an average of the colors segmented into the at least one cluster.

19 . The system of claim 18 , wherein segmenting the target colors into the clustered color palette comprises, for each target color:

comparing the at least one color property of the target color and one or more segmented colors assigned to an active cluster;

adding the target color to the active cluster if the at least one color property of the target color and the one or more segmented colors is within a predefined threshold; and

initializing a new cluster and adding the target color to the new cluster if the at least one color property of the target color and the one or more segmented colors is not within the predefined threshold.

20 . The system of claim 19 , the one or more processing devices to perform operations comprising generating a de-clustered destination color palette via de-clustering the destination color palette, prior to recoloring the target graphic, for each original target color associated with the destination color palette:

determining at least one color property difference value based on a difference of the at least one color property of the original target color and a corresponding cluster color determined for a cluster of the clustered color palette;

transforming the original target color to a modified color based on the at least one color property difference and the at least one color property of the corresponding destination color assigned to the cluster; and

adding the modified color to the de-clustered destination color palette.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2023
From: JAIN, VISHWAS; BATRA, VINEET; DHINGRA, SUMIT; CHATURVEDI, SUMIT; CHAKRABORTY, SOUYMODIP; PHOGAT, ANKIT
To: ADOBE, INC.
Reel/Frame 064958/0186 →
Continuity (1)
Related Publication 20250095228A1 · Mar 20, 2025
References Cited (15)
US 10168879B1 · Duan · 2019 [cited by examiner]
US 11043012B2 · Phogat et al. · 2021 [cited by applicant]
US 11551384B2 · Phogat · 2023 [cited by examiner]
US 12217459B2 · Batra · 2025 [cited by examiner]
US 20160357713A1 · Tocchini · 2016 [cited by examiner]
US 20190279402A1 · Panetta · 2019 [cited by examiner]
Afifi et al. “Image recoloring based on object color distributions” May 2019. https://www.researchgate.net/publication/337934924 (Year: 2019). [cited by examiner]
Bahng et al., “Coloring with Words: Guiding Image Colorization Through Text-based Palette Generation,” arXiv: 1804.04128v2: 22 pages (2018). [cited by applicant]
Bertsekas, “An Auction/Sequential Shortest Path Algorithm for the Minimum Cost Network Flow Problem,” Department of Engineering and Computer Science, M.I.T.: 20 pages (Feb. 1995). [cited by applicant]
Chang et al., “Palette-based photo recoloring,” ACM Transactions on Graphics, vol. 34(4): Article No. 139: 11 pages (Jul. 27, 2015). [cited by applicant]
Goldberg et al., “Finding Minimum-Cost Circulations by Successive Approximation,” Mathematics of Operations Research, vol. 15(3): 430-466 (1990). [cited by applicant]
Goodfellow et al., “Generative Adversarial Networks,” arXiv: 1406.2661v1, 9 pages (Jun. 10, 2014). [cited by applicant]
Ho et al., “Denoising Diffusion Probabilistic Models,” ArXiv:2006.11239v1, abs/2006.11239: 24 pages (Jun. 19, 2020). [cited by applicant]
Rubner et al., “The Earth Movers Distance as a Metric for Image Retrieval,” International Journal of Computer Vision, vol. 40: 99-121 (2000). [cited by applicant]
Shrugrina et al., “Playful Palette: An Interactive Parametric Color Mixer for Artists,” ACM Transactions on Graphics, vol. 36(4): Article 61: 10 pages (Jul. 2017). [cited by applicant]