Neural Network Based Image Colorization in Image / Video Editing Applications
The neural network-based image coloring system automates the coloring process by using a reference color image, addressing the inefficiencies of manual dot placement in conventional methods, thereby enhancing efficiency and reducing user effort.
Patent Information
- Application Number
- JP2023530267
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-11-19
- Filing Date
- 2021-11-18
- Publication Date
- 2025-02-03
- Estimated Expiration
- 2041-11-18
AI Technical Summary
Conventional image/video editing methods require manual placement of dots around interest areas for coloring, which is time-consuming and cumbersome, especially when dealing with multiple video frames.
A neural network-based image coloring system that automatically applies color effects to objects in images or videos using a reference color image, eliminating the need for manual dot placement on each frame.
Enables efficient and streamlined coloring of images and videos by automating the process, reducing user effort and time required for coloring multiple frames.
Smart Images

Figure 0007625183000001 
Figure 0007625183000002 
Figure 0007625183000003
Abstract
Description
[Technical field]
[0001] CROSS REFERENCE TO RELATED APPLICATIONS / INCORPORATION BY REFERENCE none
[0002] Various embodiments of the present disclosure relate to image / video colorization, and more particularly, to methods and systems for neural network-based image colorization in image / video editing applications. [Background technology]
[0003] Advances in image / video editing applications have led to the development of image colorization techniques that add color to one or more regions in a grayscale image / video. Traditional rotoscoping-based methods require a user to manually place points around the region of interest in an image frame of a video. To colorize an entire sequence of frames in a video, the above process must be repeated manually for each frame of the video, which can be time-consuming and tedious for the user. Summary of the Invention [Problem to be solved by the invention]
[0004] The limitations and disadvantages of the conventional approach will become apparent to one skilled in the art by comparing the described system with certain aspects of the present disclosure illustrated in the remaining portions of this application and with reference to the drawings. [Means for solving the problem]
[0005] Provided is a computer system and method for neural network-based image colorization in image / video editing applications substantially as illustrated and / or described in connection with at least one of the figures and more fully set forth in the claims.
[0006] These and other features and advantages of the present disclosure will become apparent from a consideration of the following detailed description of the disclosure when taken in conjunction with the accompanying drawings, in which like reference characters refer to like elements throughout. [Brief description of the drawings]
[0007] [Figure 1] FIG. 1 is a block diagram illustrating an exemplary network environment for neural network-based image colorization in image / video editing applications, according to an embodiment of the present disclosure. [Diagram 2] FIG. 1 is a block diagram illustrating an exemplary computer system for neural network-based image colorization in image / video editing applications, according to an embodiment of the present disclosure. [Diagram 3] FIG. 1 illustrates an example operation of colorizing a grayscale image feed using a neural network-based colorization plug-in on an image / video editing application in accordance with an embodiment of the present disclosure. [Figure 4] 4A-4C illustrate example operations for obtaining a reference color image used in the example operations of FIG. 3 according to an embodiment of the present disclosure. [Diagram 5] 1 is a flowchart illustrating an exemplary method for neural network-based image colorization in image / video editing applications, according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] The disclosed computer system and method for neural network-based image colorization in image / video editing applications may find implementation as described below. An exemplary aspect of the present disclosure provides a computer system that implements a workflow using a neural network-based image colorization model for colorizing at least one object in one or more grayscale images of an image feed using a reference color image. In particular, the neural network-based colorization model transfers color effects on a region of interest in the reference color image to the object in each grayscale image of the image feed. Such an image feed may be a single image or a video including multiple images.
[0009] On the image / video editing application, a user can obtain a reference color image using a rotoscope tool of the image / video editing application. For example, a user can employ rotoscoping to change the color of a mask region of an image to obtain the reference color image. The application provides a node-based interface for constructing a node graph. For example, a user can simply add an image feed of a grayscale image as a source node to the colorization node and link its output to a result node. The colorization node can correspond to a software plug-in (such as an OpenFX (OFX) plug-in) that invokes a neural network-based colorization model at run time to apply a color effect from a region of interest in the reference color image to object(s) in the grayscale image(s) of the image feed. The reference color image, or a file path of the reference color image, can be passed as an input to the colorization node.
[0010] Conventional rotoscope-based methods require a user to manually place points around the region of interest in an image frame of a video. To colorize an entire series of frames in a video, the above process needs to be repeated for each frame of the video. This can be time-consuming and tedious. In contrast, the present disclosure does not require a user to mark any region of interest in every frame of a target grayscale video. A user simply selects a reference color image and a target image or video (including grayscale image(s)) as inputs to a colorization node on a node-based interface of an image / video editing application. The colorization node can represent a workflow that can invoke a neural network-based colorization model at run time to transfer color effects from an ROI in a reference color image to an object(s) in a frame of a target image / video.
[0011] 1 is a block diagram illustrating an exemplary network environment for neural network-based image colorization in an image / video editing application, according to an embodiment of the present disclosure. Shown in FIG. 1 is a network environment 100. The network environment 100 can include a computer system 102 and a display device 104 communicatively coupled to the computer system 102. Also shown is an image / video editing application 106, which can be installed on the computer system 102 or can be accessed via a web client, such as a web application or web browser on the computer system 102.
[0012] The network environment 100 may further include a server 110 capable of implementing the neural network-based colorization model 108. The server 110 may be communicatively coupled to the computer system 102 via a communications network 112. Although the computer system 102 and the display device 104 are depicted in FIG. 1 as two separate devices, in some embodiments, the entire functionality of the display device 104 may be incorporated into the computer system 102 without departing from the scope of the present disclosure.
[0013] The computer system 102 may include suitable logic, circuitry, code, and / or interfaces that may be configured to execute a first workflow for colorizing one or more objects in a first image feed including one or more grayscale images (such as grayscale image 114). The first workflow may be associated with a software plug-in that includes program instructions for executing the first workflow on the image / video editing application 106. Examples of the computer system 102 may include, but are not limited to, an image / video editor, a server, a computer workstation, a mainframe machine, a gaming device, a smartphone, a mobile phone, a laptop, a tablet, an augmented reality (XR) headset, and / or any other consumer electronics (CE) device having image / video editing capabilities.
[0014] The display device 104 may include suitable logic, circuitry, and / or interfaces that may be configured to display a graphical user interface (GUI) 116 of the image / video editing application 106. In one embodiment, the display device 104 may be a touch-enabled device that allows a user to provide user input via the display device 104. The display device 104 may include a display unit that may be implemented through a number of known technologies, such as, but not limited to, at least one of liquid crystal display (LCD) display, light emitting diode (LED) display, plasma display, or organic LED (OLED) display technology, or other display technologies.
[0015] The image / video editing application 106 may include suitable logic, code, and / or interfaces that may be configured to edit an image feed that includes one or more grayscale images. For example, the editing may include applying a color effect to an input image using rotoscoping to obtain a reference color image (such as the reference color image 118). Another editing may include transferring a color effect from a reference color image to an object in a grayscale image (such as the grayscale image 114) of the image feed using a software plug-in that may implement a neural network-based colorization model 108. The image / video editing application 106 may be implemented based on a node graph architecture. In the node graph architecture, a user may build a node graph that represents the workflow of any editing task, such as colorizing an image feed based on a reference color image (such as the reference color image 118). Examples of the image / video editing application 106 may include, but are not limited to, a node-based digital compositing and visual effects application, an image editor, a digital effects application, a motion graphics editing application, a compositing application, a non-linear editing (NLE) application, a raster graphics editor, or a combination thereof.
[0016] The neural network-based colorization model 108 may be an image colorization model that can be trained based on an image colorization task of colorizing objects in a single image frame or in a sequence of image frames of an image feed. The neural network-based colorization model 108 may be defined by hyperparameters such as, for example, activation function(s), number of weights, cost function, regularization function, input size, and number of layers.
[0017] The neural network-based colorization model 108 can be referred to as a computational network, or a system of artificial neurons (also called nodes). The nodes of the neural network-based colorization model 108 can be arranged in multiple layers as defined by the neural network topology of the neural network-based colorization model 108. The multiple layers of the neural network-based colorization model 108 can include an input layer, one or more hidden layers, and an output layer. Each layer of the multiple layers can include one or more nodes (or artificial neurons, e.g., represented by circles). The output of every node in the input layer can be coupled to at least one node in the hidden layer(s). Similarly, the input of each hidden layer can be coupled to the output of at least one node in the other layers of the neural network-based colorization model 108. The output of each hidden layer can be coupled to the input of at least one node in the other layers of the neural network-based colorization model 108. The node(s) of the final layer can receive inputs from at least one hidden layer and output a result. The number of layers and the number of nodes in each layer may be determined from hyper-parameters of the neural network-based colorization model 108. Such hyper-parameters may be set before or during training of the neural network-based colorization model 108 based on a training dataset of images.
[0018] Each node of the neural network-based colorization model 108 may correspond to a mathematical function (e.g., a sigmoid function or a rectified linear unit) having a set of parameters that can be adjusted during training of the network. The set of parameters may include, for example, weight parameters and regularization parameters. Each node may use a mathematical function to calculate an output based on one or more inputs from nodes in other layer(s) (e.g., previous layer(s)) of the neural network-based colorization model 108. All or some of the nodes of the neural network-based colorization model 108 may correspond to the same or different mathematical functions.
[0019] In training the neural network-based colorization model 108, one or more parameters of each node of the neural network-based colorization model 108 may be updated based on whether the output of the final layer for a given input (from the training dataset) matches the correct result based on a loss function of the neural network-based colorization model 108. The above process may be repeated for the same or different inputs until a minimum of the loss function is achieved and the training error is minimized. Several training methods are known in the art, such as gradient descent, stochastic gradient descent, batch gradient descent, gradient boosting, and metaheuristic methods.
[0020] In some embodiments, the neural network-based colorization model 108 may include electronic data that may be implemented as a software component of an application executable on, for example, the computer system 102 or the server 110. The neural network-based colorization model 108 may rely on libraries, external scripts, or other logic / instructions for execution by a processing device, such as the computer system 102 or the server 110. The neural network-based colorization model 108 may include computer-executable code or routines that enable a computing device, such as the computer system 102 or the server 110, to perform one or more operations to colorize objects in an input grayscale image. Additionally or alternatively, the neural network-based colorization model 108 may be implemented using hardware, including a processor, a microprocessor (e.g., performing or controlling one or more operations), a field programmable gate array (FPGA), or an application specific integrated circuit (ASIC). For example, the computer system 102 may include an inference accelerator chip that accelerates the computation of the neural network-based colorization model 108 for an image colorization task. In some embodiments, the neural network-based colorization model 108 may be implemented using a combination of both hardware and software.
[0021] Examples of neural network-based colorization models 108 may include, but are not limited to, autoencoders, convolutional neural networks (CNNs), Regions with CNN (R-CNN), Fast R-CNN, Faster R-CNN, You Only Look Once (YOLO) networks, residual neural networks (Res-Nets), feature pyramid networks (FPNs), retinal nets, and / or combinations thereof.
[0022] The server 110 may include suitable logic, circuits and interfaces, and / or code that may be configured to implement the neural network-based colorization model 108 for colorization of a grayscale image(s) using a reference color image (such as the reference color image 118). The server 110 may be a cloud server and may perform operations through web applications, cloud applications, HTTP requests, repository operations, file transfers, and the like. Other implementations of the server 110 may include, but are not limited to, a web server, a File Transfer Protocol (FTP) server, an application server, or a mainframe server.
[0023] In at least one embodiment, server 110 may be implemented as a number of distributed cloud-based resources using a number of techniques known to those skilled in the art. Those skilled in the art will appreciate that the scope of the present disclosure may not be limited to an implementation of server 110 and computer system 102 as two separate entities. In some embodiments, the functionality of server 110 may be incorporated in whole or at least in part into computer system 102 without departing from the scope of the present disclosure.
[0024] The communication network 112 may include a communication medium that allows the computer system 102 to communicate with the server 110 and other devices omitted from this disclosure for brevity. The communication network 112 may be either a wired or wireless connection. Examples of the communication network 112 may include, but are not limited to, the Internet, a cloud network, a Wireless Fidelity (Wi-Fi) network, a personal area network (PAN), a local area network (LAN), or a metropolitan area network (MAN). Various devices in the network environment 100 may be configured to connect to the communication network 112 according to various wired and wireless communication protocols. Examples of such wired and wireless communication protocols include, but are not limited to, at least one of Transmission Control Protocol and Internet Protocol (TCP / IP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), ZigBee, EDGE, IEEE 802.11, Light Fidelity (Li-Fi), 802.16, IEEE 802.11s, IEEE 802.11g, multi-hop communication, wireless access point (AP), device-to-device communication, cellular communication protocols, and Bluetooth (BT) communication protocols.
[0025] During operation, the computer system 102 can control the display device 104 to display a GUI 116 of the image / video editing application 106. The GUI 116 can include a node-based interface for creating a workflow of image processing tasks, such as an image colorization task or a rotoscoping task. For example, a user can simply place a series of image processing operations as nodes on the node-based interface. Such image operations can then be linked together by connecting such nodes to each other on the node-based interface to obtain a workflow. Together, these operations can generate a node graph.
[0026] Initially, the computer system 102 can obtain a reference color image (such as the reference color image 118) by selectively applying a color effect to a region of interest (ROI) (such as the ROI 120) of the input image. The computer system 102 can determine the ROI of the input image based on user input via the GUI 116. For example, the GUI 116 can include a preview window in which the input image can be displayed. The user input can include adding a number of points around the ROI in the input image to create a mask that can isolate the ROI from the remaining elements in the input image. The user input can appear as a first node of a node-based interface of the GUI 116. The computer system 102 can be configured to apply a color effect to the ROI of the input image to obtain the reference color image. The color effect can appear as a second node of the node-based interface of the GUI 116. In some cases, an image filter set can be applied to the ROI before or after the application of the color effect. Such a filter can appear as a node(s) connected to the first node or the second node. All such nodes may form a node graph that may represent an overall workflow that may select an ROI at run time and apply a set of image filters and color effects to the selected ROI to obtain a reference color image (such as ROI 120), details of which are further shown in, for example, FIG.
[0027] A user may create a project on the image / video editing application 106 at any point in time. The computer system 102 may receive user input to construct a first node graph via a node-based interface of the GUI 116. The computer system 102 may control the display device 104 to display the first node graph on the GUI 116 of the image / video editing application 106. The first node graph may include a colorization node that may represent a first workflow for colorizing at least a first object in one or more grayscale images (such as the grayscale image 114) of a first image feed. The first image feed may include a single image or a series of image frames of a video. Details related to the first node graph are shown, for example, in FIG. 3.
[0028] The computer system 102 may receive a first user input, which may include a selection of a reference color image (such as the reference color image 118) via the image / video editing application 106. The computer system 102 may then select the reference color image based on the first user input and execute a first workflow associated with the colorization node. When the first workflow is initiated, the computer system 102 may provide the selected reference color image and the first image feed as inputs to the neural network-based colorization model 108. The computer system 102 may receive a second image feed as an output of the neural network-based colorization model 108 for the inputs. The second image feed may include one or more colorized images (such as the colorized image 122). Each such colorized image may include at least a first object (such as the T-shirt of the soccer player 124) colorized based on a color effect on an ROI (such as the ROI 120).
[0029] FIG. 2 is a block diagram illustrating an example computer system for neural network-based image colorization in image / video editing applications, according to an embodiment of the present disclosure. FIG. 2 is described with reference to elements of FIG. 1. FIG. 2 illustrates a block diagram 200 of computer system 102. Computer system 102 may include circuitry 202, memory 204, input / output (I / O) devices 206, and a network interface 208. Circuitry 202 may be communicatively coupled to memory 204, I / O devices 206, and network interface 208. In some embodiments, I / O devices 206 may include a display device (such as display device 104 of FIG. 1).
[0030] The circuitry 202 may include suitable logic, circuits, and / or interfaces that may be configured to execute program instructions associated with different operations to be performed by the computer system 102. The circuitry 202 may include one or more specialized processing units that may be implemented as an integrated processor or processors that collectively perform the functions of one or more specialized processing units. The circuitry 202 may be implemented based on multiple processor technologies known in the art. Example implementations of the circuitry 202 may be an X86-based processor, a graphic processing unit (GPU), a reduced instruction set computing (RISC) processor, an application specific integrated circuit (ASIC) processor, a complex instruction set computing (CISC) processor, a microcontroller, a central processing unit (CPU), and / or other computing circuitry.
[0031] The memory 204 may include suitable logic, circuitry, and / or interfaces that may be configured to store program instructions to be executed by the circuit 202. In at least one embodiment, the memory 204 may be configured to store a reference color image (such as the reference color image 118) and a first image feed (such as the grayscale image 114). The memory 204 may further be configured to store a set of color effects to be used on a ROI (such as the ROI 120) of the input image. Example implementations of the memory 204 may include, but are not limited to, a random access memory (RAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a hard disk drive (HDD), a solid-state drive (SSD), a CPU cache, and / or a secure digital (SD) card.
[0032] The I / O device 206 may include suitable logic, circuitry, interfaces, and / or code that may be configured to receive input and provide output based on the received input. The I / O device 206 may include various input and output devices that may be configured to communicate with the circuit 202. For example, the computer system 102 may receive user input via the I / O device 206 for selecting a reference color image, an ROI from an input image, and applying a color effect to the selected ROI of the input image. Examples of the I / O device 206 may include, but are not limited to, a touch screen, a keyboard, a mouse, a joystick, a display device (e.g., the display device 210), a microphone, or a speaker.
[0033] The network interface 208 may include suitable logic, circuitry, interfaces, and / or code that may be configured to facilitate the circuitry 202 communicating with the server 110, the display device 104, and / or other communication devices over the communications network 112. The network interface 208 may be implemented using various known technologies that support wireless communication of the computer system 102 over the communications network 112. The network interface 208 may include, for example, an antenna, a radio frequency (RF) transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a coder-decoder (CODEC) chipset, a subscriber identity module (SIM) card, local buffer circuitry, and the like.
[0034] The network interface 208 may be configured to communicate via wireless communication with a network, such as the Internet, an intranet, a wireless network, a cellular telephone network, a wireless local area network (LAN) or a metropolitan area network (MAN), etc. The wireless communication may be configured to use one or more of a number of communication standards, protocols and technologies, such as Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (W-CDMA), Long Term Evolution (LTE), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth, Wireless Fidelity (WiFi) (such as IEEE 802.11a, IEEE 802.11b, IEEE 802.11g or IEEE 802.11n), Voice over Internet Protocol (VoIP), Light Fidelity (Li-Fi), or Worldwide Interoperability for Microwave Access (Wi-MAX).
[0035] 1 may be performed by circuitry 202. Operations performed by circuitry 202 are described in detail, for example, in FIGS.
[0036] Figure 3 illustrates an example operation of colorizing a grayscale image feed using a neural network-based colorization plug-in on an image / video editing application, according to an embodiment of the present disclosure. The description of Figure 3 is provided with reference to elements of Figures 1 and 2. Figure 3 illustrates a block diagram 300 illustrating example operations 302-308 described herein. The example operations illustrated in block diagram 300 may begin at 302 and may be performed by any computer system, apparatus, or device, such as computer system 102 of Figure 1 or Figure 2.
[0037] At 302, a first image feed can be acquired. The circuit 202 can acquire the first image feed from a data source. The data source can be, for example, an on-board image sensor of the computer system 102, persistent storage on the computer system 102, an image capture device, a cloud server, or a combination thereof. The first image feed can include one or more grayscale images (such as grayscale image 302A), each of which can include at least a first object (such as soccer player 302B). The first image feed can represent a static scene including a static foreground or background, or a dynamic scene including one or more moving objects.
[0038] At 304, input may be received to construct a first node graph 304A for colorization of the first image feed. For example, the input may be user input including selection of an option to create a project on the image / video editing application 106. When the GUI 116 displays a project window for the created project, the user input may include selection of nodes such as a colorization node 304B, a source node 304C, and a result node 304D via a toolbar accessible on the GUI 116 of the image / video editing application 106.
[0039] At 306, the constructed first node graph 304A can be displayed. The circuit 202 can control the display device 104 to display the constructed first node graph 304A on the GUI 116 of the image / video editing application 106. For example, the GUI 116 can include a node-based interface 306A that can be updated to include a colorization node 304B between a source node 304C and a result node 304D. The result node 304D can be linked to an output of the colorization node 304B, and the source node 304C can be linked to a first image feed (e.g., including the grayscale image 302A) and a reference color image 306B. The circuit 202 can select the reference color image 306B based on a first user input.
[0040] The first node graph 304A may include a colorization node 304B that may represent (or link to) a first workflow for colorization of a first object (such as soccer player 302B) in one or more grayscale images of the first image feed. In an embodiment, the colorization node may correspond to a software plug-in that may include program instructions for executing the first workflow. A user may select the software plug-in within a node-based interface of the GUI 116 to add it as a colorization node.
[0041] In an embodiment, the circuit 202 can control a display device to display settings of the colorization node on the GUI 116 of the image / video editing application 106. For example, the settings can be displayed based on a user selection of an option displayed with the colorization node 304B. The settings can include a set of options corresponding to a set of neural network-based colorization models. The circuit 202 can receive user input that can include a selection of a first option in the set of options. The circuit 202 can select the neural network-based colorization model 108 from among the set of neural network-based colorization models based on the received user input.
[0042] At 308, a first workflow may be executed. The circuit 202 may execute the first workflow associated with the colorization node 304B at any time. During execution, the circuit 202 may provide the selected reference color image 306B and a first image feed (such as the grayscale image 302A) as inputs to the selected neural network-based colorization model 108. The circuit 202 may then receive a second image feed as an output of the selected neural network-based colorization model 108. For example, the second image feed may include one or more colorized images (such as the colorized image 308A). Each of the one or more colorized images may include at least a first object (such as the soccer player 302B) colorized based on a color effect on the ROI 306C in the reference color image 306B.
[0043] In one embodiment, the neural network-based colorization model 108 can transfer a color effect from the ROI 306C of the reference color image 306B to at least a first object (such as the soccer player 302B) in each of the one or more grayscale images of the first image feed to output a second image feed (including one or more colorized images such as the colorized image 308A). For example, as shown, the black color on the soccer player's shirt (i.e., the ROI 306C) can be transferred to the shirt worn by the soccer player 302B in the grayscale image 302A of the first image feed. In one embodiment, the circuit 202 can control the display device 104 to display the second image feed on the GUI 116 of the image / video editing application 106.
[0044] Although example operations associated with one or more blocks of flowchart 500 are illustrated as discrete blocks, these may be divided into additional blocks, combined into fewer blocks, or eliminated depending on the implementation of the example operations.
[0045] Figure 4 illustrates an example operation for obtaining a reference color image for use in the example operation of Figure 3, according to an embodiment of the present disclosure. The description of Figure 4 is provided with reference to elements of Figures 1, 2, and 3. Figure 4 illustrates a block diagram 400 illustrating example operations 402-410 described herein. The example operations illustrated in block diagram 400 may begin at 402 and may be performed by any computer system, apparatus, or device, such as computer system 102 of Figure 1 or Figure 2.
[0046] At 402, an input image 402A may be loaded onto the GUI 116 of the image / video editing application 106. The input image 402A may be a color image that includes at least one object of interest, such as, for example, a soccer player 402B.
[0047] At 404, an ROI 404A of the input image 402A may be selected. Such selection may be based on user input via the GUI 116. For example, an input image to be used as a starting point for segmentation may be loaded onto the GUI 116 and the ROI 404A may be selected using a segmentation tool of the image / video editing application 106. For example, an ROI may be selected around the shirt of the soccer player 402B by placing points around the edge of the shirt as shown. The selection of the ROI 404A may be displayed as a node in a node-based interface of the GUI 116.
[0048] At 406, a first image filter set may be selected for the selected ROI 404A. For example, such filters may include a hue shift operation, an alpha blending operator, or an alpha compositing operator. Such filters may be selected via a menu displayed on the GUI 116 of the image / video editing application 106. In at least one embodiment, such filters may specify a color effect to be applied to the ROI 404A based on modifying color values in one or more color channels of the selected ROI 404A.
[0049] At 408, a second workflow for obtaining the reference color image 306B can be generated. The operations of 402-406 can be executed to generate the second workflow, which can be represented by a second node graph 408A. In an embodiment, the circuit 202 can control the display device 104 to display the second node graph 408A on the GUI 116 of the image / video editing application 106. The second node graph 408A can represent the second workflow for obtaining the reference color image 306B from the input image 402A. The input image 402A and all the operations of 402-406 can be included as nodes in the second node graph 408A and connected to each other to form the second node graph 408A.
[0050] At 410, a second workflow, i.e., a node-based workflow associated with the second node graph 408A, can be executed. The circuit 202 can select the ROI 404A from the input image 402A at run-time. For example, the node associated with the selection of the ROI 404A can load a mask that a user has drawn around the ROI 404A of the input image 402A using a segmentation tool, such as a digital rotoscope tool. A detailed implementation of the rotoscope tool is believed to be well known to those skilled in the art, and thus a detailed description of the rotoscope tool 408 is omitted from this disclosure for brevity. After the selection is made, the circuit 202 can apply the selected first image filter set on the selected ROI 404A and apply a color effect to the selected ROI 404A of the input image 402A based on the application of the first image filter set to obtain the reference color image 306B. By way of example and not limitation, application of a color effect may modify at least one of the saturation, brightness, contrast, color values of specific color channels, gamma or tonal changes of a selected ROI 404A in the input image 402A.
[0051] For example, as shown, the second node graph 408A can include the input image 402A as a source node, which can be connected to a first merge node (represented by "merge 1"). The first merge node can further be connected to an ROI node (represented by "ROI"). The first merge node can generate a mask by combining a selection around the ROI 404A with the input image 402A. The mask can remove all other regions from the input image 402A except for the ROI 404A. An image filter, such as a filter that modifies a color channel (e.g., green), can be applied to the ROI 404A (which is the output of the first merge node) to obtain a modified ROI. The input image 402A and the modified ROI can be passed as input to a second merge node (represented by "merge 2"), which can overlay the modified ROI on the input image 402A to output the reference color image 306B.
[0052] For example, as shown, the reference color image 306B includes a black color on the soccer player's shirt (i.e., the selected ROI 404A). This black color can be applied as a color effect to the ROI 404A of the input image 402A. The image / video editing application 106 can allow an end user to control and modify the reference color image 306B using a rotoscoping workflow. The reference color image 306B can be stored on the computer system 102 for later use in colorizing an image feed of grayscale images, for example as described in FIG. 3.
[0053] Although example operations associated with one or more blocks in block diagram 400 are illustrated as discrete blocks, these may be divided into further blocks, combined into fewer blocks, or eliminated depending on the implementation of the example operations.
[0054] Figure 5 is a flow chart illustrating an exemplary method for neural network based image colorization in image / video editing applications, according to an embodiment of the present disclosure. Figure 5 is described with reference to elements of Figures 1, 2, 3, and 4. Figure 5 illustrates a flow chart 500. The method illustrated in flow chart 500 may be performed by any computer system, such as computer system 102 or circuit 202. The method may start at 502 and proceed to 504.
[0055] At 504, a reference color image (such as reference color image 118) may be obtained. In one or more embodiments, circuit 202 may be configured to obtain the reference color image by selectively applying a color effect to a ROI (such as ROI 120) of an input image (such as input image 402A). More information regarding the reference color image is provided, for example, in FIG.
[0056] At 506, a display device (e.g., display device 104) may be controlled to display the first node graph (e.g., first node graph 304A). In one or more embodiments, the circuit 202 may be configured to control the display device 104 to display the first node graph on the GUI 116 of the image / video editing application 106. The first node graph may include a colorization node (e.g., colorization node 304B) representing a first workflow for colorization of at least a first object (e.g., soccer player 302B) in one or more grayscale images (e.g., grayscale image 302A) of the first image feed.
[0057] At 508, a captured reference color image can be selected. In one or more embodiments, the circuit 202 can be configured to select the captured reference color image based on a first user input. Details of the selection of the reference color image are described, for example, in FIG.
[0058] At 510, a first workflow may be executed. In one or more embodiments, the circuit 202 may be configured to execute a first workflow associated with a colorization node (such as the colorization node 304B). Details of the execution of the first workflow are described, for example, in FIG.
[0059] At 512, the selected reference color image and the first image feed can be provided as inputs to the neural network-based colorization model 108. In one or more embodiments, the circuit 202 can be configured to provide the selected reference color image and the first image feed as inputs to the neural network-based colorization model 108, for example, as described in FIG.
[0060] At 514, a second image feed may be received. In one or more embodiments, the circuit 202 may be configured to receive a second image feed including one or more colorized images (such as colorized image 308A), each of which may include at least a first object colorized based on a color effect on an ROI (such as ROI 306C), as an output of the neural network-based colorization model 108. Control may proceed to an end.
[0061] Although flowchart 500 has been described as discrete operations, such as 502, 504, 506, 508, 510, 512, and 514, the disclosure is not so limited. Thus, in some embodiments, such discrete operations may be further divided into additional operations, combined into fewer operations, or eliminated, depending on the particular implementation, without departing from the essence of the disclosed embodiments.
[0062] Various embodiments of the present disclosure may provide a non-transitory computer-readable medium and / or storage medium having instructions stored thereon executable by a machine and / or computer to operate a computer system (such as computer system 102). The instructions may cause the machine and / or computer to perform operations including obtaining a reference color image (such as reference color image 118) based on selectively applying a color effect to a region of interest (ROI) (such as ROI 120) of an input image (such as input image 402A). The operations may further include controlling a display device (such as display device 104) to display the first node graph (such as first node graph 304A) on a GUI (such as graphical user interface (GUI) 116) of an image / video editing application (such as image / video editing application 106). The first node graph may include a colorization node (such as colorization node 304B) representing a first workflow for colorization of at least a first object (such as a T-shirt of soccer player 302B) in one or more grayscale images (such as grayscale image 302A) of the first image feed. The operations may further include selecting the acquired reference color image based on a first user input and executing a first workflow associated with the colorization node. The execution includes providing the selected reference color image and the first image feed as inputs to a neural network-based colorization model (such as neural network-based colorization model 108) and receiving as an output of the neural network-based colorization model 108 for the inputs a second image feed including one or more colorized images (such as colorized image 308A), each including at least the first object colorized based on a color effect on an ROI.
[0063] An exemplary aspect of the disclosure may provide a computer system (such as computer system 102 of FIG. 1 ) including a circuit (such as circuit 202). The circuit 202 may be configured to obtain a reference color image (such as reference color image 118) based on selectively applying a color effect to a region of interest (ROI) (such as ROI 120) of an input image (such as input image 402A). The circuit 202 may be configured to control a display device (such as display device 104) to display a first node graph (such as first node graph 304A) on a GUI (such as graphical user interface (GUI) 116) of an image / video editing application (such as image / video editing application 106). The first node graph may include a colorization node (such as colorization node 304B) representing a first workflow for colorization of at least a first object (such as a T-shirt of soccer player 302B) in one or more grayscale images of a first image feed. The circuit 202 can be configured to perform a first workflow associated with the colorization node by selecting an acquired reference color image based on a first user input, providing the selected reference color image and the first image feed as inputs to a neural network-based colorization model (such as neural network-based colorization model 108), and receiving a second image feed including one or more colorized images (such as colorized image 308A) as an output of the neural network-based colorization model 108 for the input. Each of the one or more colorized images can include at least a first object that is colorized based on a color effect on an ROI of the reference color image.
[0064] According to an embodiment, the circuit 202 is further configured to control a display device to display a second node graph (such as the second node graph 408A) on a GUI of the image / video editing application. The second node graph can represent a second workflow for obtaining a reference color image from an input image.
[0065] According to an embodiment, the circuit 202 is further configured to perform a second workflow by selecting an ROI from the input image, applying a first image filter set to the selected ROI, and applying a color effect to the selected ROI of the input image based on the application of the first image filter set to obtain a reference color image.
[0066] According to an embodiment, the colorization node corresponds to a software plug-in including program instructions for executing the first workflow. According to an embodiment, the circuit 202 is further configured to control the display device 104 to display settings of the colorization node on a GUI of the image / video editing application. The settings may include a set of options corresponding to a set of neural network-based colorization models. The circuit 202 may be further configured to receive a second user input including a selection of a first option of the set of options. The circuit 202 may be further configured to select a neural network-based colorization model from among the set of neural network-based colorization models based on the second user input.
[0067] According to one embodiment, the neural network-based colorization model transfers the color effect on the ROI of the reference color image to at least a first object (such as the T-shirt of soccer player 302B) in each of one or more grayscale images of the first image feed to output a second image feed including one or more colorized images (such as colorized image 308A).
[0068] According to an embodiment, the circuitry 202 may be further configured to control the display device 104 to display the second image feed on a GUI of an image / video editing application.
[0069] The present disclosure can be realized in hardware or in a combination of hardware and software. The present disclosure can be realized in a centralized manner in at least one computer system, or in a distributed manner where different elements can be distributed across several interconnected computer systems. Any computer system or other device adapted to perform the methods described herein can be suitable. The combination of hardware and software can be a general-purpose computer system that includes a computer program that, when loaded and executed, can control a computer system to perform the methods described herein. The present disclosure can be realized in hardware, including parts of an integrated circuit that also perform other functions.
[0070] The present disclosure may also be embodied in a computer program product, which includes all features enabling the implementation of the methods described herein and which is capable of executing these methods when loaded into a computer system. A computer program in this context means any expression, in any language, code or notation, of a set of instructions intended to cause a system capable of processing information to execute a particular function, either directly, or after a) conversion into another language, code or notation, b) reproduction in a different content form, or both.
[0071] While the present disclosure has been described with reference to several embodiments, those skilled in the art will recognize that various modifications can be made and equivalents substituted without departing from the scope of the present disclosure. Many modifications can also be made to adapt a particular situation or material to the teachings of the present disclosure without departing from the scope of the present disclosure. Therefore, it is not intended that the present disclosure be limited to the particular embodiments disclosed, but rather, it is intended to include all embodiments falling within the scope of the appended claims. [Explanation of symbols]
[0072] 102 Computer Systems 104 Display device 106 Image / Video Editing Applications 108 Neural Network-Based Colorization Model 110 Server 112 Communication Networks 114 Graphical User Interface (GUI) 114 Grayscale Images 118 Reference Color Image 120 Regions of Interest (ROI) 122 Colorized Images 124 Soccer Player 502 start 504 Obtain a reference color image by selectively applying color effects to regions of interest (ROIs) of the input image 506. Control the display device 104 to display on a user interface (GUI) of the image / video editing application a first node graph including colorization nodes representing a first workflow for colorization of at least a first object in one or more grayscale images of the first image feed. 508 Selecting the acquired reference color image based on a first user input 510 Run the first workflow involving the Colorize node 512 Provide the reference color image and the first image feed as inputs to a neural network-based colorization model. 514 receives a second image feed including one or more colorized images as an output of the neural network-based colorization model, each of which may include at least a first object colorized based on a color effect on the ROI.
Claims
1. In a computer system, Obtaining a reference color image by selectively applying a color effect to a region of interest (ROI) of an input image; controlling a display device to display on a graphical user interface (GUI) of an image / video editing application a first node graph including colorization nodes representing a first workflow for colorizing at least a first object in one or more grayscale images of a first image feed using the reference color image; selecting the acquired reference color image based on a first user input; executing the first workflow associated with the colorization node; said performing comprising: providing the selected reference color image and the first image feed as inputs to a neural network based colorization model; receiving as an output of the neural network-based colorization model for the input a second image feed including one or more colorized images each including at least the first object colorized based on a color effect on the ROI; Including, controlling the display device to display, on the GUI of the image / video editing application, a second node graph representing a second workflow for obtaining the reference color image from the input image; and executing the second workflow; The performing selecting the ROI from the input image; applying a first image filter set to the selected ROI; applying the color effect to the selected ROI of the input image based on the application of the first set of image filters to obtain the reference color image; Including, A method comprising:
2. the colorization node corresponds to a software plug-in including program instructions for executing the first workflow; The method of claim 1.
3. controlling the display device to display settings of the colorization node on a GUI of the image / video editing application, the settings including a set of options corresponding to a set of neural network based colorization models; receiving a second user input including a selection of a first option in the series of options; selecting the neural network-based colorization model from among the set of neural network-based colorization models based on the second user input; and The method of claim 1 further comprising:
4. the neural network-based colorization model transfers the color effect on the ROI of the reference color image to at least the first object in each of the one or more grayscale images of the first image feed to output the second image feed including the one or more colorized images. The method of claim 1.
5. and controlling the display device to display the second image feed on the GUI of the image / video editing application. The method of claim 1.
6. A computer system comprising: Obtaining a reference color image by selectively applying a color effect to a region of interest (ROI) of an input image; controlling a display device to display on a graphical user interface (GUI) of an image / video editing application a first node graph including colorization nodes representing a first workflow for colorizing at least a first object in one or more grayscale images of a first image feed using the reference color image; selecting the acquired reference color image based on a first user input; executing the first workflow associated with the colorization node; said performing comprising: providing the selected reference color image and the first image feed as inputs to a neural network based colorization model; receiving as an output of the neural network-based colorization model for the input a second image feed including one or more colorized images each including at least the first object colorized based on a color effect on the ROI; Including, controlling the display device to display settings of the colorization node on a GUI of the image / video editing application, the settings including a set of options corresponding to a set of neural network based colorization models; receiving a second user input including a selection of a first option in the series of options; selecting the neural network-based colorization model from among the set of neural network-based colorization models based on the second user input; and Also includes A method comprising:
7. 1. A computer system comprising: Obtaining a reference color image based on selectively applying a color effect to a region of interest (ROI) of the input image; controlling a display device to display on a graphical user interface (GUI) of an image / video editing application a first node graph including colorization nodes representing a first workflow for colorizing at least a first object in one or more grayscale images of a first image feed using the reference color image; selecting the acquired reference color image based on a first user input; and providing the selected reference color image and the first image feed as inputs to a neural network based colorization model; receiving, as an output of the neural network-based colorization model for the input, a second image feed including one or more colorized images, each including at least the first object colorized based on a color effect on the ROI; executing the first workflow associated with the colorization node by A circuit configured as follows: the circuitry controls the display device to display, on the GUI of the image / video editing application, a second node graph representing a second workflow for obtaining the reference color image from the input image; Selecting the ROI from the input image; applying a first image filter set to the selected ROI; applying the color effect to the selected ROI of the input image based on the application of the first set of image filters to obtain the reference color image. and further configured to execute the second workflow by: A system characterized by:
8. the colorization node corresponds to a software plug-in including program instructions for executing the first workflow; 8. The computer system of claim 7.
9. The circuit comprises: controlling the display device to display settings of the colorization node on a GUI of the image / video editing application, the settings including a set of options corresponding to a set of neural network based colorization models; receiving a second user input including a selection of a first option in the series of options; selecting the neural network-based colorization model from among the set of neural network-based colorization models based on the second user input; The computer system of claim 7 further configured to:
10. the neural network-based colorization model transfers the color effect on the ROI of the reference color image to at least the first object in each of the one or more grayscale images of the first image feed to output the second image feed including the one or more colorized images.
8. The computer system of claim 7.
11. the circuitry is further configured to control the display device to display the second image feed on the GUI of the image / video editing application.
8. The computer system of claim 7.
12. A computer system comprising: Obtaining a reference color image based on selectively applying a color effect to a region of interest (ROI) of the input image; controlling a display device to display on a graphical user interface (GUI) of an image / video editing application a first node graph including colorization nodes representing a first workflow for colorizing at least a first object in one or more grayscale images of a first image feed using the reference color image; selecting the acquired reference color image based on a first user input; and providing the selected reference color image and the first image feed as inputs to a neural network based colorization model; receiving, as an output of the neural network-based colorization model for the input, a second image feed including one or more colorized images, each including at least the first object colorized based on a color effect on the ROI; executing the first workflow associated with the colorization node by A circuit configured as follows: The circuit comprises: controlling the display device to display settings of the colorization node on a GUI of the image / video editing application, the settings including a set of options corresponding to a set of neural network based colorization models; receiving a second user input including a selection of a first option in the series of options; selecting the neural network-based colorization model from among the set of neural network-based colorization models based on the second user input; further comprising:
23. A computer system comprising:
13. A non-transitory computer readable medium having computer executable instructions stored thereon, the computer executable instructions, when executed by a computer system, Obtaining a reference color image by selectively applying a color effect to a region of interest (ROI) of an input image; controlling a display device to display on a graphical user interface (GUI) of an image / video editing application a first node graph including colorization nodes representing a first workflow for colorizing at least a first object in one or more grayscale images of a first image feed using the reference color image; selecting the acquired reference color image based on a first user input; executing the first workflow associated with the colorization node; causing the computer system to perform operations including: providing the selected reference color image and the first image feed as inputs to a neural network based colorization model; receiving as an output of the neural network-based colorization model for the input a second image feed including one or more colorized images each including at least the first object colorized based on a color effect on the ROI; Including, The operations include controlling the display device to display, on the GUI of the image / video editing application, a second node graph representing a second workflow for obtaining the reference color image from the input image; executing the second workflow; and Further comprising: The performing selecting the ROI from the input image; applying a first image filter set to the selected ROI; applying the color effect to the selected ROI of the input image based on the application of the first set of image filters to obtain the reference color image; Includes A non-transitory computer-readable medium comprising:
14. the colorization node corresponds to a software plug-in including program instructions for executing the first workflow; 14. The non-transitory computer-readable medium of claim 13.
15. The operation includes: controlling the display device to display settings of the colorization node on a GUI of the image / video editing application, the settings including a set of options corresponding to a set of neural network based colorization models; receiving a second user input including a selection of a first option in the series of options; selecting the neural network-based colorization model from among the set of neural network-based colorization models based on the second user input; and 14. The non-transitory computer-readable medium of claim 13, further comprising:
16. the neural network-based colorization model transfers the color effect on the ROI of the reference color image to at least the first object in each of the one or more grayscale images of the first image feed to output the second image feed including the one or more colorized images.
14. The non-transitory computer-readable medium of claim 13.
17. A non-transitory computer-readable medium having computer-executable instructions stored thereon, the computer-executable instructions, when executed by a computer system, Obtaining a reference color image by selectively applying a color effect to a region of interest (ROI) of an input image; controlling a display device to display on a graphical user interface (GUI) of an image / video editing application a first node graph including colorization nodes representing a first workflow for colorizing at least a first object in one or more grayscale images of a first image feed using the reference color image; selecting the acquired reference color image based on a first user input; executing the first workflow associated with the colorization node; causing the computer system to perform operations including: providing the selected reference color image and the first image feed as inputs to a neural network based colorization model; receiving as an output of the neural network-based colorization model for the input a second image feed including one or more colorized images each including at least the first object colorized based on a color effect on the ROI; Including, The operation includes: controlling the display device to display settings of the colorization node on a GUI of the image / video editing application, the settings including a set of options corresponding to a set of neural network based colorization models; receiving a second user input including a selection of a first option in the series of options; selecting the neural network-based colorization model from among the set of neural network-based colorization models based on the second user input; and Further comprising: A non-transitory computer-readable medium comprising:
Citation Information
Patent Citations
Color information estimation model generating device, image colorization device and programs for the same
JP2019117558A
Specifying timing and triggering functionality in a graphical program using graphical program nodes
US20030234802A1
Video Color Propagation
US20200077065A1
Using abstract nodes to test the behavior of a dynamic system
US9594854B1