CN113393367B - Image processing method, apparatus, device and medium - Google Patents
Image processing method, apparatus, device and medium Download PDFInfo
- Publication number
- CN113393367B CN113393367B CN202110773604.XA CN202110773604A CN113393367B CN 113393367 B CN113393367 B CN 113393367B CN 202110773604 A CN202110773604 A CN 202110773604A CN 113393367 B CN113393367 B CN 113393367B
- Authority
- CN
- China
- Prior art keywords
- image
- processed
- version
- processing
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
The present disclosure provides an image processing method, apparatus, device, and medium, which relate to the field of computers, and in particular to computer vision, image processing, augmented reality technology, and cloud computing technology. The method comprises the following steps: allocating computing resources in response to receiving an initialization request from a client; responding to the received first image to be processed from the client, generating a first conversation identifier and first conversation information for the first image to be processed, and sending the first conversation identifier to the client; in response to receiving a first processing request including a first session identifier, processing a first image to be processed by using computing resources to obtain a first version of the first image to be processed; updating the first session information based on the first processing request and the first version of the first image to be processed; and sending the first version of the first image to be processed to the client.
Description
Technical Field
The present disclosure relates to the field of computers, and in particular, to computer vision, image processing, augmented reality technology, and cloud computing technology, and in particular, to an image processing method, an apparatus, an electronic device, a computer-readable storage medium, and a computer program product.
Background
Artificial intelligence is the subject of research that makes computers simulate some human mental processes and intelligent behaviors (such as learning, reasoning, thinking, planning, etc.), both at the hardware level and at the software level. The artificial intelligence hardware technology generally comprises technologies such as a sensor, a special artificial intelligence chip, cloud computing, distributed storage, big data processing and the like, and the artificial intelligence software technology mainly comprises a computer vision technology, a voice recognition technology, a natural language processing technology, machine learning/deep learning, a big data processing technology, a knowledge graph technology and the like.
With the development of the related technology, the operations of portrait beautifying, image beautifying, video special effect processing and the like are becoming simple and the effects are high, and application programs such as beautifying software and a beautifying camera are increasingly favored by users. Along with the increase of user demands, the requirements of users on beautification, special effect complexity, fineness and speed of images are gradually increased, and the computing resources required by the image processing methods are also gradually increased.
The approaches described in this section are not necessarily approaches that have been previously conceived or pursued. Unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. Similarly, unless otherwise indicated, the problems mentioned in this section should not be considered as having been acknowledged in any prior art.
Disclosure of Invention
The present disclosure provides an image processing method, an apparatus, an electronic device, a computer-readable storage medium, and a computer program product.
According to an aspect of the present disclosure, there is provided an image processing method. The image processing method comprises the following steps: allocating computing resources in response to receiving an initialization request from a client; in response to receiving a first image to be processed from a client, generating a first session identifier and first session information for the first image to be processed, and sending the first session identifier to the client; in response to receiving a first processing request including a first session identification, processing a first image to be processed by using computing resources to obtain a first version of the first image to be processed; updating the first session information based on the first processing request and the first version of the first image to be processed; and sending the first version of the first image to be processed to the client.
According to an aspect of the present disclosure, there is provided an image processing method. The image processing method comprises the following steps: sending an initialization request to a server; sending a first image to be processed to a server, and receiving a first session identifier sent back by the server; sending a first processing request comprising a first session identification to a server; and receiving a first version of the first image to be processed sent back by the server.
According to another aspect of the present disclosure, an image processing apparatus is provided. The image processing apparatus includes: an allocation unit configured to allocate computing resources in response to receiving an initialization request from a client; the generating unit is configured to respond to receiving a first to-be-processed image from the client, generate a first conversation identification and first conversation information for the first to-be-processed image, and send the first conversation identification to the client; a processing unit configured to process the first image to be processed by using the computing resource to obtain a first version of the first image to be processed in response to receiving a first processing request including the first session identifier; an updating unit configured to update the first session information based on the first processing request and the first version of the first image to be processed; and a first sending unit configured to send a first version of the first image to be processed to the client.
According to another aspect of the present disclosure, an image processing apparatus is provided. The image processing apparatus includes: a second transmitting unit configured to transmit an initialization request to the server; the third sending unit is configured to send the first image to be processed to the server and receive the first session identification sent back by the server; a fourth transmitting unit configured to transmit a first processing request including the first session identification to the server; and a receiving unit configured to receive the first version of the first image to be processed sent back by the server.
According to another aspect of the present disclosure, there is provided an electronic device including: at least one processor; and a memory communicatively coupled to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the image processing method described above.
According to another aspect of the present disclosure, there is provided a non-transitory computer-readable storage medium storing computer instructions for causing a computer to execute the above-described image processing method.
According to another aspect of the present disclosure, a computer program product is provided, comprising a computer program, wherein the computer program realizes the above-described image processing method when executed by a processor.
According to one or more embodiments of the present disclosure, by processing an image using cloud server resources, the image processing capability is enhanced, and a better image processing result is obtained; and by allocating the cloud server resources after receiving an initialization request (corresponding to opening the client, for example) from the client and not releasing the resources after completing the single image processing, the serious problem of time consumption caused by frequent allocation and release of the resources in the image beautification and special effect processing processes is avoided. In addition, tracking and version control of the user and the image to be processed are achieved by using the session identifier and the session information, so that the situation that the image needs to be uploaded again when the processed image or the original image is further processed in the follow-up process is avoided, the image processing flow is simplified, the image processing speed is increased, and the user experience is improved.
It should be understood that the statements in this section do not necessarily identify key or critical features of the embodiments of the present disclosure, nor do they limit the scope of the present disclosure. Other features of the present disclosure will become apparent from the following description.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the embodiments and, together with the description, serve to explain the exemplary implementations of the embodiments. The illustrated embodiments are for purposes of illustration only and do not limit the scope of the claims. Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
FIG. 1 illustrates a schematic diagram of an exemplary system in which various methods described herein may be implemented, according to an embodiment of the present disclosure;
FIG. 2 shows a flow chart of an image processing method according to an exemplary embodiment of the present disclosure;
fig. 3 shows a block diagram of a cloud server according to an exemplary embodiment of the present disclosure;
FIG. 4 shows a flowchart for generating a first session identification and first session information for a first to-be-processed image and sending the first session identification to a client according to an example embodiment of the present disclosure;
5-7 illustrate a flow chart of an image processing method according to an exemplary embodiment of the present disclosure;
fig. 8 to 9 illustrate block diagrams of structures of an image processing apparatus according to an exemplary embodiment of the present disclosure; and
FIG. 10 illustrates a block diagram of an exemplary electronic device that can be used to implement embodiments of the present disclosure.
Detailed Description
Exemplary embodiments of the present disclosure are described below with reference to the accompanying drawings, in which various details of the embodiments of the disclosure are included to assist understanding, and which are to be considered as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope of the present disclosure. Also, descriptions of well-known functions and constructions are omitted in the following description for clarity and conciseness.
In the present disclosure, unless otherwise specified, the use of the terms "first", "second", etc. to describe various elements is not intended to limit the positional relationship, the timing relationship, or the importance relationship of the elements, and such terms are used only to distinguish one element from another. In some examples, a first element and a second element may refer to the same instance of the element, and in some cases, based on the context, they may also refer to different instances.
The terminology used in the description of the various described examples in this disclosure is for the purpose of describing particular examples only and is not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the elements may be one or more. Furthermore, the term "and/or" as used in this disclosure is intended to encompass any and all possible combinations of the listed items.
In the related art, the existing image beautification and special effect processing methods are executed on the end, and because the computing capability of the end equipment is weak, the processing effect of the end equipment is limited, and the satisfactory effect of a user cannot be achieved. In addition, due to the fact that computing power of different devices on different terminals is different, processing results of different devices are greatly different, and user experience is affected.
In order to solve the problems, the cloud server resource is used for processing the image, so that the image processing capacity is enhanced, and a better image processing result is obtained; and by allocating the cloud server resources after receiving an initialization request (corresponding to opening the client, for example) from the client and not releasing the resources after completing the single image processing, the serious problem of time consumption caused by frequent allocation and release of the resources in the image beautification and special effect processing processes is avoided. In addition, tracking and version control of the user and the image to be processed are achieved by using the session identifier and the session information, so that the situation that the image needs to be uploaded again when the processed image or the original image is further processed in the follow-up process is avoided, the image processing flow is simplified, the image processing speed is increased, and the user experience is improved.
Embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.
Fig. 1 illustrates a schematic diagram of an exemplary system 100 in which various methods and apparatus described herein may be implemented in accordance with embodiments of the present disclosure. Referring to fig. 1, the system 100 includes one or more client devices 101, 102, 103, 104, 105, and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. Client devices 101, 102, 103, 104, 105, and 106 may be configured to execute one or more applications.
In an embodiment of the present disclosure, the server 120 may run one or more services or software applications that enable the method of image processing to be performed.
In some embodiments, the server 120 may also provide other services or software applications that may include non-virtual environments and virtual environments. In some embodiments, these services may be provided as web-based services or cloud services, for example, provided to users of client devices 101, 102, 103, 104, 105, and/or 106 under a software as a service (SaaS) model.
In the configuration shown in fig. 1, server 120 may include one or more components that implement the functions performed by server 120. These components may include software components, hardware components, or a combination thereof, which may be executed by one or more processors. A user operating a client device 101, 102, 103, 104, 105, and/or 106 may, in turn, utilize one or more client applications to interact with the server 120 to take advantage of the services provided by these components. It should be understood that a variety of different system configurations are possible, which may differ from system 100. Accordingly, fig. 1 is one example of a system for implementing the various methods described herein and is not intended to be limiting.
A user may use client devices 101, 102, 103, 104, 105, and/or 106 to implement the image processing methods in this disclosure. The client device may provide an interface that enables a user of the client device to interact with the client device. The client device may also output information to the user via the interface. Although fig. 1 depicts only six client devices, those skilled in the art will appreciate that any number of client devices may be supported by the present disclosure.
The server 120 may include one or more general purpose computers, special purpose server computers (e.g., PC (personal computer) servers, UNIX servers, mid-end servers), blade servers, mainframe computers, server clusters, or any other suitable arrangement and/or combination. The server 120 may include one or more virtual machines running a virtual operating system, or other computing architecture involving virtualization (e.g., one or more flexible pools of logical storage that may be virtualized to maintain virtual storage for the server). In various embodiments, the server 120 may run one or more services or software applications that provide the functionality described below.
The computing units in server 120 may run one or more operating systems including any of the operating systems described above, as well as any commercially available server operating systems. The server 120 may also run any of a variety of additional server applications and/or middle tier applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, and the like.
In some embodiments, server 120 may be a cluster comprising a plurality of machines, wherein at least a portion of the machines include a Central Processing Unit (CPU) and a Graphics Processing Unit (GPU) and another portion of the machines include only a central processing unit. A machine including only a central processor can be used for accessing data uploaded by a client, for evenly distributing a request (i.e., load of image processing) of the client to a plurality of machines including a graphics processor, and for acquiring a URL address of an image processing material as a data interface and downloading it, and the like.
In some embodiments, in a machine including a central processor and a graphics processor, the central processor is configured to perform scheduling tasks and send image processing tasks to the graphics processor, and the graphics processor is configured to perform only image processing tasks. Such machines may include a platform in the cloud for splitting graphics processing computing resources of a graphics processing server into multiple copies of the graphics processing computing resources available for simultaneous use by multiple users. The cloud center platform can also be responsible for managing a plurality of operators/engines executing different image processing tasks, and after receiving an image processing request, the corresponding operators/engines are accessed to corresponding image processing computing resources according to the type of the image processing task in the request. The machine including only the central processor and the machine including the graphics processor may communicate with each other via an http protocol. Inside a machine comprising a graphic processor, external data access can be carried out through an http/socket/rpc protocol to be communicated with a cloud platform, and a plurality of operator/engine source code levels are accessed into the cloud platform.
In some implementations, the server 120 may include one or more applications to analyze and consolidate data feeds and/or event updates received from users of the client devices 101, 102, 103, 104, 105, and 106. Server 120 may also include one or more applications to display data feeds and/or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105, and 106.
In some embodiments, the server 120 may be a server of a distributed system, or a server incorporating a blockchain. The server 120 may also be a cloud server, or a smart cloud computing server or a smart cloud host with artificial intelligence technology. The cloud Server is a host product in a cloud computing service system, and is used for solving the defects of high management difficulty and weak service expansibility in the traditional physical host and Virtual Private Server (VPS) service.
The system 100 may also include one or more databases 130. In some embodiments, these databases may be used to store data and other information. For example, one or more of the databases 130 may be used to store information such as audio files and video files. The data store 130 may reside in various locations. For example, the data store used by the server 120 may be local to the server 120, or may be remote from the server 120 and may communicate with the server 120 via a network-based or dedicated connection. The data store 130 may be of different types. In certain embodiments, the data store used by the server 120 may be a database, such as a relational database. One or more of these databases may store, update, and retrieve data to and from the database in response to the command.
In some embodiments, one or more of the databases 130 may also be used by applications to store application data. The databases used by the application may be different types of databases, such as key-value stores, object stores, or regular stores supported by a file system.
The system 100 of fig. 1 may be configured and operated in various ways to enable application of the various methods and apparatus described in accordance with this disclosure.
The various methods and apparatus described in this disclosure may be applied in augmented reality technology. In certain embodiments, the client devices 101, 102, 103, 104, 105, and 106 of fig. 1 transmit the real-time captured image or video stream to the server 120, which, after processing the image or video frames using augmented reality techniques using the methods described in this disclosure, transmits the processed image or video stream back to the respective client device to display the augmented reality processed results via one or more of the client devices 101, 102, 103, 104, 105, and 106. It is understood that the various methods and apparatus described in this disclosure may be combined with augmented reality technology in other ways by those skilled in the art, and are not limited thereto.
According to an aspect of the present disclosure, there is provided an image processing method. As shown in fig. 2, the image processing method includes: step S201, responding to an initialization request received from a client, and allocating computing resources; step S202, responding to a first image to be processed received from a client, generating a first session identifier and first session information for the first image to be processed, and sending the first session identifier to the client; step S203, responding to a first processing request including a first session identifier, and processing a first image to be processed by utilizing computing resources to obtain a first version of the first image to be processed; step S204, updating first session information based on the first processing request and the first version of the first image to be processed; and step S205, sending the first version of the first image to be processed to the client.
Therefore, the image is processed by using the cloud server resource, so that the image processing capacity is enhanced, and a better image processing result is obtained; and by allocating the cloud server resources after receiving an initialization request (corresponding to opening the client, for example) from the client and not releasing the resources after completing the single image processing, the serious problem of time consumption caused by frequent allocation and release of the resources in the image beautification and special effect processing processes is avoided. In addition, tracking and version control of the user and the image to be processed are achieved by using the session identifier and the session information, so that the situation that the image needs to be uploaded again when the processed image or the original image is further processed in the follow-up process is avoided, the image processing flow is simplified, the image processing speed is increased, and the user experience is improved.
According to some embodiments, step S201, in response to receiving an initialization request from a client, allocates a computing resource. Because the process of allocating the computing resources is relatively time-consuming, allocating the computing resources in advance can solve the problem of overlong waiting time caused by reallocation of the resources after the user sends the processing request, and therefore the user experience is improved. The transmission time of the initialization request can be freely set by those skilled in the art according to the bearer of the image processing service on the client. For example, when the image processing service carrier on the client is a beauty program, the initialization request may be sent when the user opens the software, or may be sent when the user starts the beauty module; and when the image processing service carrier on the client is a webpage, the initialization request can be sent when the webpage is opened by the client. According to the initialization request, the server allocates computing resources for the client. It is to be understood that the present disclosure is not intended to limit the form and content of the initialization request, and those skilled in the art can make corresponding settings as needed.
According to some embodiments, allocating computing resources may include: determining a target machine that is not fully loaded among at least one machine included in a cluster, the target machine including a central processing unit and a graphics processor, the graphics processor including graphics processing computing resources; and claiming graphics processing computing resources from the graphics processor of the target machine. Therefore, by determining a non-full-load target machine still available for the current client in at least one machine included in the cluster and claiming graphics processing computing resources in a graphics processor of the machine, graphics processing methods such as image beautification and special effects can be executed in the cloud server.
According to some embodiments, the cloud server to which the graphics processing method is applied may be a cluster including a plurality of machines. At least one part of the machines comprises a Central Processing Unit (CPU) and a Graphic Processing Unit (GPU), and the other part of the machines only comprises the CPU. A machine including only a central processor can be used for accessing data uploaded by a client, for evenly distributing a request (i.e., load of image processing) of the client to a plurality of machines including a graphics processor, and for acquiring a URL address of an image processing material as a data interface and downloading it, and the like. The function of these central processors will be described in detail below.
According to some embodiments, determining a target machine that is not fully loaded among the at least one machine included in the cluster comprises: among the at least one machine, a machine that is not fully loaded and has the lowest load rate, including the graphics processor, is determined as the target machine. Thus, by selecting the machine that includes the graphics processor that is not fully loaded and has the lowest load rate as the target machine for use by the client, load balancing among the machines that include the graphics processor within the cluster is achieved. Illustratively, the load balancing module may be implemented by a machine in the cluster that includes only a central processor. It is understood that one skilled in the art may use other methods to determine a machine for use by a client among the at least one machine and to ensure load balancing among the at least one machine within the cluster, which is not limited herein.
According to some embodiments, in a machine comprising a central processor and a graphics processor, the central processor is configured to perform scheduling tasks and send image processing tasks to the graphics processor, while the graphics processor is configured to perform only image processing tasks. A cloud-in-the-middle stage may be included in such a machine to divide the graphics processing computing resources of the graphics processing server into multiple copies of the graphics processing computing resources available for simultaneous use by multiple users. The cloud center platform can also be responsible for managing a plurality of operators/engines executing different image processing tasks, and after receiving an image processing request, the corresponding operators/engines are accessed to corresponding image processing computing resources according to the type of the image processing task in the request. The machine including only the central processor and the machine including the graphics processor may communicate with each other via an http protocol. Inside a machine comprising a graphic processor, external data access is carried out, then communication is carried out with a cloud center through an http/socket/rpc protocol, and a plurality of operator/engine source code levels are accessed into the cloud center.
According to some embodiments, a cloud console may be configured to use multiple processes to divide graphics processing computing resources included by a graphics processor in a target machine into multiple sub-graphics processing computing resources that can be used by multiple clients simultaneously. Wherein the graphics processor of the target machine includes at least one unused sub-graphics processing computing resource. Therefore, the graphics processing computing resources included by the graphics processor can be divided into multiple sub-graphics processing computing resources which can be used by multiple clients simultaneously by using multiple processes, so that the utilization rate and the processing efficiency of the server are greatly improved, and the graphics processor is prevented from being occupied by one user for a long time due to the fact that the graphics processor is not divisible.
According to some embodiments, as shown in FIG. 3, multiple machines including only central processors may form a CPU virtual cluster 310, while multiple machines including image processors may form a GPU virtual cluster 350. The CPU virtual cluster 310 and the GPU virtual cluster 350 may constitute a cloud server 300. CPU virtual cluster 310 may include a machine 312 that functions as a load balancing module, GPU virtual cluster 350 may include a plurality of machines 352 (only one shown), and machines 352 may include a cloud stage 354 and a plurality of operators/engines 356.
Therefore, by the setting mode, the framework of the cluster is optimized, the multiple machines included in the cluster are combined into a whole, each machine in the cluster executes a specific function or task as far as possible, the computing power of the cluster is utilized to the maximum extent, the working efficiency of the cluster is improved, the overall processing speed and the service quality of the cloud image processing service are improved, and the use experience of a user is improved.
According to some embodiments, as shown in fig. 4, the step S202 of generating a first session identifier and first session information for the first to-be-processed image, and sending the first session identifier to the client may include: step S2021, in response to receiving the first image to be processed, verifying the first image to be processed; and step S2022, in response to detecting that the first to-be-processed image is successfully verified, generating a first session identifier and first session information for the first to-be-processed image, and sending the first session identifier to the client. Therefore, the image to be processed is verified, the image which is successfully verified is preprocessed, and the session identifier and the session information are generated, so that the robustness of the image processing method can be improved, unnecessary problems caused by the image which does not accord with the preset rule are avoided, and the session identifier and the session information are set only for the image which is successfully verified, so that resource waste is avoided.
According to some embodiments, the first to-be-processed image may comprise a frame in a video stream transmitted by the client or an image transmitted by the client. It is to be understood that the first to-be-processed image may also be an image acquired from another channel specified by the client, and is not limited herein.
In some exemplary embodiments, the image sent by the client may be received through a user interface access module of the cloud server based on an http protocol. Illustratively, as shown in FIG. 3, the user interface access module may be implemented by one of the machines 314 in the CPU virtual cluster 310. It can be understood that a plurality of machines in the CPU virtual machine cluster may be physical machines, or may be virtual machines; in addition, the modules shown in fig. 3 may be implemented by a plurality of machines, or may be implemented by one machine, which is not limited herein. In other exemplary embodiments, the video stream may be received from the client based on the webrtc scheme, and the video frames are separated by demultiplexing (demux), decoding (decode), and the like, so that each video frame can be subjected to image beautification and special effect processing. In addition, for the video streams sent by the multiple clients, the cloud server can set a unique identifier for each client or each video stream, so as to distinguish the video streams in different paths and avoid confusion. Illustratively, the webrtc scheme may be implemented by one machine 316 in a virtual cluster of CPUs. It is understood that, those skilled in the art can also acquire the image to be processed in a richer manner according to the requirement, and the method is not limited herein.
According to some embodiments, the step S2021 of verifying the first image to be processed may include determining whether an aspect ratio of the first image to be processed satisfies a preset criterion. It can be understood that, those skilled in the art may set a richer preset standard according to a requirement, so as to improve robustness of the image processing method based on the cloud server and save computing resources, which is not limited herein.
According to some embodiments, as shown in fig. 4, step S202 may further include: step S2023, in response to detecting that the first to-be-processed image fails to be verified, sending re-uploading prompt information to the client; and step S2024, in response to receiving the re-uploaded first to-be-processed image and in response to detecting that the verification of the re-uploaded first to-be-processed image is successful, generating a first session identifier and first session information for the re-uploaded first to-be-processed image, and sending the first session identifier to the client. Therefore, after the verification fails, the client is prompted to upload the image to be processed again and verify the image by sending prompt information of the verification failure to the client, and the image processing business process can be continued until the uploaded image conforms to the preset verification rule.
According to some embodiments, step S202 may further comprise: and preprocessing the first image to be processed which is successfully verified. The sizes of the first to-be-processed images uploaded by the user may be various, so that inconvenience is brought to image processing, and therefore the first to-be-processed images successfully verified can be subjected to preprocessing such as scaling and cropping, so that the sizes of the first to-be-processed images conform to the preset input size of the image processing method. For example, the preset input size may include 1080 × 720, 1440 × 900, and may also include other sizes, which are not limited herein. It is understood that those skilled in the art can set more abundant preprocessing means to make the image meet the corresponding requirements, and the method is not limited herein.
According to some embodiments, after pre-processing the first image to be processed, the first image to be processed may be stored on the server and a session generated for it. The unique session identifier is generated for each image to be processed, the session identifier is sent to the client, and the session information used for storing the image processing history is generated at the same time, so that the server can be helped to associate the client, the image to be processed from the client (or the image to be processed from the client through other channels) and the subsequent image processing request from the client, and the server can be prevented from being unable to know the relationship between the image to be processed and the client and the image processing request. Illustratively, the uploading traffic of the first to-be-processed image may be implemented by one machine 318 in the CPU virtual cluster 310, and the session management module may be implemented by another machine 320 in the CPU virtual cluster 310.
According to some embodiments, the first session information may also include an identification of the target machine. Therefore, by including the identification of the target machine allocated to the corresponding client in the first session information, the user interface access module can find the target machine for processing the request of the client through the identification when receiving the processing request from the client and other subsequent to-be-processed images, thereby avoiding the situation that the to-be-processed images and the processing request are sent to different machines.
According to some embodiments, after receiving a first processing request including a first session identification corresponding to a first image to be processed, it may be detected whether corresponding image processing material is stored in the server. Illustratively, in response to detecting that no corresponding image processing material is currently stored in the server, a material management module in the server may be accessed by using a data interface module of the server, wherein the material management module stores download addresses (URLs) of the corresponding image processing material, and the download addresses point to a cloud storage server different from the server for image processing. And after the download address of the image processing material is acquired, downloading the image processing material from the cloud storage server to a server for image processing. By such a method, only the download address of the image processing material needs to be stored in the server for image processing, so that the storage resource for the server can be saved. Illustratively, the data interface module may be implemented by one of the machines 322 in the CPU virtual cluster 310.
It is to be understood that the image processing material may also be downloaded based on an initialization request from the client terminal after receiving the initialization request. In an exemplary embodiment, the initialization request is an initialization request for a beauty service, and all beauty-related materials may be downloaded to the server after the initialization request is received. In another exemplary embodiment, the initialization request is an initialization request for a video effect, and all materials related to the video effect may be downloaded to the server after the initialization request is received. Thus, the time consumed by the subsequent downloading process can be further reduced by advancing the time for downloading the image processing material.
According to some embodiments, the image processing material includes corresponding materials for beautifying, such as various whitening, face thinning, hair style, eyelashes, pupils, lip color, accessories, and the like, may also include corresponding materials for video effect processing, such as different filters, different background effects, and the like, and may also include other image processing materials, which are not limited herein.
According to some embodiments, after detecting that the server stores the corresponding image processing material, an image processing flow may be initiated to process the first to-be-processed image using the allocated graphics processing computing resources and the operator/engine corresponding to the processing request. Illustratively, the image processing flow includes: creating a canvas (graph) in an engine; starting a graph; feeding first image data to be processed into a graph in a pipeline (pipeline) form for rendering processing; acquiring an image processing result (e.g., a first version of a first image to be processed); and returning the processing result and the processing parameter.
According to some embodiments, the programming language used in the server and the programming language used in the operators/engines are different. Illustratively, the golang language is used in the server, and the c + + language is used in the operator/engine. To solve the problem of cross-language calling, cgo technology can be used, and calling of the operator/engine by the server through cgo can be realized by packaging a c + + interface in the operator/engine as a c interface.
According to some embodiments, after obtaining the first version of the first to-be-processed image, the first session information may be updated based on the first processing parameter and the first version, so that all image processing histories and corresponding intermediate processing versions of the image are stored in the first session information (or a manner in which the version of the image can be directly obtained, for example, a storage address of the version of the image on a server, etc.). By the method, when the server subsequently receives a processing request aiming at the original version or some intermediate version of the image to be processed from the client, the corresponding version can be found in the server according to the first session identification and the first session information, so that the client is not required to upload the image to be processed of the version to the server and then process the image, the image uploading time is saved, the service flow is simplified, and the user experience is improved.
According to some embodiments, after updating the first session information, the processed first version of the first image to be processed may be sent back to the client for confirmation by a user of the client. In some exemplary embodiments, when the first image to be processed is an image sent by the client, the first version of the first image to be processed may be sent back to the client based on the http protocol. In other exemplary embodiments, when the first to-be-processed image is a frame of a video stream, the first version of the processed first to-be-processed image may be encoded (encode), multiplexed (mux) to obtain a new video stream, and the new video stream may be sent back to the client based on the webrtc scheme. It is to be understood that the processed first version of the first to-be-processed image or the new video stream may also be sent to other clients, which is not limited herein.
According to some embodiments, as shown in fig. 5, the image processing method may further include: step S506, in response to receiving a second processing request including the first session identifier, processing the first version of the first image to be processed by using the computing resource to obtain a second version of the first image to be processed; step S507, updating the first session information based on the second processing request and the second version of the first image to be processed; and step S508, sending the second version of the first image to be processed to the client. It is understood that steps S501 to S505 in fig. 5 are similar to steps S201 to S205 in fig. 2, and are not repeated herein. Therefore, the to-be-processed image needing to be processed is determined by using the session identifier, and multiple image beautifying and special effect processing requests aiming at the same to-be-processed image are ensured to be sequentially reflected on the same to-be-processed image.
According to some embodiments, each processing request may comprise a plurality of processing steps, which may comprise a revocation step of a previous processing request. For example, the first processing request for the first image to be processed may be, for example, "modify pupil color to black", and the second processing request may include, for example, "undo the first processing request (undo the modification of pupil color)" and "modify color to chestnut color". Since the image of the previous version (or the acquisition mode thereof) is saved in the first session information of the first image to be processed, the image processing of "modifying color to maroon color" can be directly performed on the image to be processed of the previous version. It is to be understood that similar effects can also be achieved by other ways, such as specifying, in the processing request, the version of the image on which the image processing is performed as the original version, the latest version, or any intermediate version, which is not limited herein.
Therefore, the method realizes the multi-step processing of the image to be processed, and simultaneously realizes more flexible image beautifying and special effect processing modes which can process the image based on any intermediate processing version, thereby improving the use experience of users.
According to some embodiments, after the complete image processing flow of the first to-be-processed image is finished (for example, after the user clicks to finish beautifying), the first session identifier and the first session information corresponding to the first to-be-processed image are destroyed, and a part of temporary resources corresponding to the first session are released, so as to mark the final end of the first session. In this way, the first session identification and the first session information are kept in the multi-step processing flow of the first to-be-processed image, so that the cloud server can track the first to-be-processed image, the client and the corresponding image processing request; and corresponding resources are released after the complete image processing flow is finished so as to save the use of cloud server resources.
According to some embodiments, as shown in fig. 5, the image processing method may further include: step S509, in response to receiving the second to-be-processed image from the client, generating a second session identifier and second session information for the second to-be-processed image, and sending the second session identifier to the client. Therefore, different session identifications are generated for different images to be processed, so that different images to be processed are distinguished, and the cloud server is prevented from mixing up a plurality of different images to be processed uploaded by the same client.
According to some embodiments, as shown in fig. 5, the image processing method may further include: step S510, in response to receiving the termination request from the client, releasing the computing resource. Therefore, by releasing the computing resources of the cloud server after receiving a termination request (for example, closing the image beautification software, exiting the image beautification interface, ending the image beautification service, and the like) of the client instead of releasing the computing resources after finishing beautification each time, the serious time-consuming problem caused by frequent allocation and release of the computing resources in a multi-step image processing process is avoided, and the user experience is improved.
In conclusion, by using the method, the image processing method based on the cloud server with stronger computing capability and more stable processing effect is realized, the computing resources and the processing capability on the client are released, and the problems of insufficient beautifying effect and power consumption and heating during image processing of the client are solved. In addition, the method solves the serious problem of time consumption caused by frequent allocation and release of resources in the process of continuously beautifying the same image for multiple times and carrying out special effect processing or continuously beautifying different images and carrying out special effect processing on the same image, and realizes tracking and version control on the user and the image to be processed by using the session identifier and the session information, thereby avoiding the need of uploading the image again when further processing is carried out on the processed image or the original image in the follow-up process, further simplifying the image processing flow, improving the image processing speed and improving the user experience.
According to another aspect of the present disclosure, an image processing method is provided. As shown in fig. 6, the image processing method includes: step S601, sending an initialization request to a server; step S602, sending a first image to be processed to a server, and receiving a first session identifier sent back by the server; step S603, sending a first processing request comprising a first session identifier to a server; and step S604, receiving the first version of the first image to be processed sent back by the server. Therefore, the image is processed by using the cloud server resource, so that the image processing capacity is enhanced, and a better image processing result is obtained; and by sending an initialization request to the cloud server (for example, when the client is opened), the cloud server allocates the cloud server resources after receiving the initialization request, so that the serious problem of time consumption caused by frequent allocation and release of resources in the image beautification and special effect processing processes is avoided. In addition, the tracking of the user and the image to be processed is realized by using the session identifier, so that the situation that the image needs to be uploaded again when the processed image or the original image is further processed in the follow-up process is avoided, the image processing flow is simplified, the image processing speed is increased, and the user experience is improved.
According to some embodiments, as shown in fig. 7, the image processing method may further include: step S705, sending a second processing request including the first session identifier to the server; and step S706, receiving a second version of the first image to be processed sent back by the server. It is understood that steps S701 to S704 in fig. 7 are similar to steps S601 to S604 in fig. 6, and are not repeated herein. Therefore, the to-be-processed image needing to be processed is determined by using the session identifier, and multiple image beautifying and special effect processing requests aiming at the same to-be-processed image are ensured to be sequentially reflected on the same to-be-processed image.
According to some embodiments, as shown in fig. 7, the image processing method may further include: and step S707, sending the second image to be processed to the server, and receiving a second session identifier sent back by the server. Therefore, different session identifications are generated for different images to be processed, so that different images to be processed are distinguished, and the cloud server is prevented from mixing up a plurality of different images to be processed uploaded by the same client.
According to some embodiments, as shown in fig. 7, the image processing method may further include: step S708, a termination request is sent to the server. Therefore, by sending the termination request (for example, closing the image beautification software, exiting the image beautification interface, ending the image beautification service and the like) to the server, the server releases the computing resources of the cloud server after receiving the termination request of the client, instead of releasing the computing resources after beautifying each time, so that the serious time-consuming problem caused by frequent distribution and release of the computing resources in the multi-step image processing process is avoided, and the user experience is improved.
According to another aspect of the present disclosure, there is also provided an image processing apparatus. As shown in fig. 8, the image processing apparatus 800 includes: an allocation unit 810 configured to allocate computing resources in response to receiving an initialization request from a client; a generating unit 820 configured to generate a first session identifier and first session information for a first image to be processed in response to receiving the first image to be processed from the client, and send the first session identifier to the client; a processing unit 830 configured to, in response to receiving a first processing request including a first session identification, process the first image to be processed with the computing resources to obtain a first version of the first image to be processed; an updating unit 840 configured to update the first session information based on the first processing request and the first version of the first image to be processed; and a first transmitting unit 850 configured to transmit the first version of the first image to be processed to the client.
The operations of the units 810-850 of the image processing apparatus 800 are similar to the operations of the steps S201-S205 of the image processing method, and are not described herein again.
According to another aspect of the present disclosure, there is also provided an image processing apparatus. As shown in fig. 9, the image processing apparatus 900 includes: a second transmitting unit 910 configured to transmit an initialization request to the server; a third sending unit 920, configured to send the first to-be-processed image to the server and receive the first session identifier sent back by the server; a fourth transmitting unit 930 configured to transmit the first processing request including the first session identification to the server; and a receiving unit 940 configured to receive the first version of the first image to be processed sent back by the server.
The operations of the units 910-940 of the image processing apparatus 900 are similar to the operations of the steps S601-S604 of the image processing method, and are not described herein again.
In the technical scheme of the disclosure, the acquisition, storage, application and the like of the personal information of the related user all accord with the regulations of related laws and regulations, and do not violate the good customs of the public order.
According to an embodiment of the present disclosure, there is also provided an electronic device, a readable storage medium, and a computer program product.
Referring to fig. 10, a block diagram of a structure of an electronic device 1000, which may be a server or a client of the present disclosure, which is an example of a hardware device that may be applied to aspects of the present disclosure, will now be described. Electronic device is intended to represent various forms of digital electronic computer devices, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the disclosure described and/or claimed herein.
As shown in fig. 10, the apparatus 1000 includes a computing unit 1001 that can perform various appropriate actions and processes according to a computer program stored in a Read Only Memory (ROM)1002 or a computer program loaded from a storage unit 1008 into a Random Access Memory (RAM) 1003. In the RAM1003, various programs and data necessary for the operation of the device 1000 can be stored. The calculation unit 1001, the ROM 1002, and the RAM1003 are connected to each other by a bus 1004. An input/output (I/O) interface 1005 is also connected to bus 1004.
A number of components in device 1000 are connected to I/O interface 1005, including: input section 1006, output section 1007, storage section 1008, and communication section 1009. Input unit 1006 may be any type of device capable of inputting information to device 1000, and input unit 1006 may receive input numeric or character information and generate key signal inputs related to user settings and/or function controls of the electronic device, and may include, but is not limited to, a mouse, a keyboard, a touch screen, a track pad, a track ball, a joystick, a microphone, and/or a remote control. Output unit 1007 may be any type of device capable of presenting information and may include, but is not limited to, a display, speakers, a video/audio output terminal, a vibrator, and/or a printer. The storage unit 1008 may include, but is not limited to, a magnetic disk, an optical disk. The communications unit 1009 allows the device 1000 to exchange information/data with other devices via a computer network, such as the internet, and/or various telecommunications networks, and may include, but is not limited to, modems, network cards, infrared communication devices, wireless communication transceivers, and/or chipsets, such as bluetooth (TM) devices, 1302.11 devices, WiFi devices, WiMax devices, cellular communication devices, and/or the like.
Various implementations of the systems and techniques described here above may be implemented in digital electronic circuitry, integrated circuitry, Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), system on a chip (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include: implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, receiving data and instructions from, and transmitting data and instructions to, a storage system, at least one input device, and at least one output device.
Program code for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program code may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program code, when executed by the processor or controller, causes the functions/acts specified in the flowchart and/or block diagram to be performed. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to a user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which a user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: local Area Networks (LANs), Wide Area Networks (WANs), and the Internet.
The computer system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The Server can be a cloud Server, also called a cloud computing Server or a cloud host, and is a host product in a cloud computing service system, so as to solve the defects of high management difficulty and weak service expansibility in the traditional physical host and VPS service ("Virtual Private Server", or simply "VPS"). The server may also be a server of a distributed system, or a server incorporating a blockchain.
It should be understood that various forms of the flows shown above may be used, with steps reordered, added, or deleted. For example, the steps described in the present disclosure may be performed in parallel, sequentially or in different orders, and are not limited herein as long as the desired results of the technical solutions disclosed in the present disclosure can be achieved.
Although embodiments or examples of the present disclosure have been described with reference to the accompanying drawings, it is to be understood that the above-described methods, systems and apparatus are merely exemplary embodiments or examples and that the scope of the present invention is not limited by these embodiments or examples, but only by the claims as issued and their equivalents. Various elements in the embodiments or examples may be omitted or may be replaced with equivalents thereof. Further, the steps may be performed in an order different from that described in the present disclosure. Further, various elements in the embodiments or examples may be combined in various ways. It is important that as technology evolves, many of the elements described herein may be replaced with equivalent elements that appear after the present disclosure.
Claims (17)
1. An image processing method comprising:
allocating computing resources in response to receiving an initialization request from a client;
in response to receiving a first image to be processed from the client, generating a first session identifier and associated first session information for the first image to be processed, and sending the first session identifier to the client, wherein the first session information includes a storage location of the first image to be processed;
in response to receiving a first processing request including the first session identification, processing the first image to be processed using the computing resource and based on the first session information to obtain a first version of the first image to be processed, the first processing request including a processing step for the first image to be processed;
updating the first session information based on the first processing request and the first version of the first image to be processed, wherein the updated first session information comprises at least one of a storage location of the first version of the first image to be processed and a processing parameter for obtaining the first version of the first image to be processed based on the first image to be processed;
sending the first version of the first image to be processed to the client;
in response to receiving a second processing request including the first session identification indicating to process the first version of the first image to be processed, processing the first version of the first image to be processed using the computing resource and based on the updated first session information to obtain a second version of the first image to be processed, the second processing request including a processing step for the first version of the first image to be processed;
further updating the first session information based on the second processing request and the second version of the first image to be processed, wherein the further updated first session information comprises at least one of a storage location indicating the second version of the first image to be processed and a second processing parameter for deriving the second version of the first image to be processed based on the first version of the first image to be processed; and
and sending the second version of the first image to be processed to the client.
2. The method of claim 1, further comprising:
and responding to a second image to be processed received from the client, generating a second session identifier and associated second session information for the second image to be processed, and sending the second session identifier to the client, wherein the second session information comprises a storage position of the second image to be processed.
3. The method of claim 1 or 2, further comprising:
in response to receiving a termination request from the client, the computing resources are released.
4. The method of claim 1, wherein allocating computing resources comprises:
determining a target machine that is not fully loaded among at least one machine included in a cluster, the target machine including a central processor and a graphics processor, the graphics processor including graphics processing computing resources; and
claiming the graphics processing computing resource from a graphics processor of the target machine.
5. The method of claim 4, wherein the target machine comprises a cloud stage configured to use multiple processes to divide graphics processing computing resources comprised by a graphics processor in the target machine into multiple sub-graphics processing computing resources that can be used by multiple clients simultaneously,
wherein the graphics processor of the target machine includes at least one unused sub-graphics processing computing resource.
6. The method of claim 5, wherein determining a target machine that is not fully loaded among the at least one machine included in the cluster comprises:
among the at least one machine, a machine that is not fully loaded and has a lowest load rate, including a graphics processor, is determined as the target machine.
7. The method of claim 4, wherein the first session information comprises an identification of the target machine.
8. The method of claim 1, wherein generating a first session identification and associated first session information for the first image to be processed and sending the first session identification to the client comprises:
in response to receiving the first image to be processed, verifying the first image to be processed; and
and in response to detecting that the first to-be-processed image is successfully verified, generating a first session identifier and associated first session information for the first to-be-processed image, and sending the first session identifier to the client.
9. The method of claim 8, wherein generating a first session identification and associated first session information for the first image to be processed and sending the first session identification to the client further comprises:
in response to the detection that the first to-be-processed image is failed to be checked, sending re-uploading prompt information to the client; and
in response to receiving the re-uploaded first to-be-processed image and in response to detecting that the re-uploaded first to-be-processed image is successfully verified, generating a first session identifier and associated first session information for the re-uploaded first to-be-processed image, and sending the first session identifier to the client.
10. The method of claim 8, wherein verifying the first image to be processed comprises determining whether an aspect ratio of the first image to be processed meets a preset criterion.
11. The method of claim 1, wherein the first to-be-processed image comprises a frame in a video stream transmitted by the client or an image transmitted by the client.
12. An image processing method, comprising:
in response to receiving the first operation, sending an initialization request to a server;
in response to receiving a second operation after the first operation, sending a first image to be processed to the server and receiving a first session identifier sent back by the server;
in response to receiving a third operation after the second operation, sending a first processing request including the first session identification to the server, wherein the first processing request includes a processing step of the first image to be processed;
receiving a first version of the first image to be processed sent back by the server;
in response to receiving a fourth operation subsequent to the third operation, sending a second processing request including the first session identification to the server, the second processing request including a processing step of the first version of the first image to be processed; and
and receiving a second version of the first image to be processed sent back by the server.
13. The method of claim 12, further comprising:
and responding to a fifth operation after the first operation is received, sending a second image to be processed to the server, and receiving a second session identifier sent back by the server.
14. An image processing apparatus comprising:
an allocation unit configured to allocate computing resources in response to receiving an initialization request from a client;
the generating unit is configured to respond to receiving a first image to be processed from the client, generate a first conversation identification and associated first conversation information for the first image to be processed, and send the first conversation identification to the client, wherein the first conversation information comprises a storage position of the first image to be processed;
a processing unit configured to process, using the computing resource and based on the first session information, the first to-be-processed image to obtain a first version of the first to-be-processed image in response to receiving a first processing request including the first session identification, the first processing request including a processing step for the first to-be-processed image;
an updating unit configured to update the first session information based on the first processing request and the first version of the first image to be processed, wherein the updated first session information includes at least one of a storage location of the first version of the first image to be processed and a processing parameter for obtaining the first version of the first image to be processed based on the first image to be processed;
a first transmission unit configured to transmit a first version of the first image to be processed to the client,
wherein the processing unit is further configured to, in response to receiving a second processing request comprising the first session identification indicating to process the first version of the first image to be processed, process the first version of the first image to be processed using the computing resource and based on the updated first session information to obtain a second version of the first image to be processed, the second processing request comprising a processing step of the first version of the first image to be processed;
wherein the updating unit is further configured to further update the first session information based on the second processing request and the second version of the first image to be processed, wherein the further updated first session information includes at least one of a storage location indicating the second version of the first image to be processed and a second processing parameter for deriving the second version of the first image to be processed based on the first version of the first image to be processed; and
wherein the first sending unit is further configured to send the second version of the first image to be processed to the client.
15. An image processing apparatus comprising:
a second transmitting unit configured to transmit an initialization request to the server in response to receiving the first operation;
a third sending unit, configured to send a first image to be processed to the server and receive a first session identifier sent back by the server in response to receiving a second operation after the first operation;
a fourth transmitting unit configured to transmit, to the server, a first processing request including the first session identifier in response to receiving a third operation subsequent to the second operation, the first processing request including a processing step on the first image to be processed;
a receiving unit configured to receive the first version of the first image to be processed sent back by the server,
wherein the fourth sending unit is further configured to send, in response to receiving a fourth operation subsequent to the third operation, a second processing request including the first session identification to the server, the second processing request including a processing step of the first version of the first image to be processed; and
wherein the receiving unit is further configured to receive a second version of the first image to be processed sent back by the server.
16. An electronic device, comprising:
at least one processor; and
a memory communicatively coupled to the at least one processor; wherein
The memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-13.
17. A non-transitory computer readable storage medium having stored thereon computer instructions for causing the computer to perform the method of any one of claims 1-13.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110773604.XA CN113393367B (en) | 2021-07-08 | 2021-07-08 | Image processing method, apparatus, device and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110773604.XA CN113393367B (en) | 2021-07-08 | 2021-07-08 | Image processing method, apparatus, device and medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113393367A CN113393367A (en) | 2021-09-14 |
CN113393367B true CN113393367B (en) | 2022-06-03 |
Family
ID=77625642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110773604.XA Active CN113393367B (en) | 2021-07-08 | 2021-07-08 | Image processing method, apparatus, device and medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113393367B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114501139A (en) * | 2022-03-31 | 2022-05-13 | 深圳思谋信息科技有限公司 | Video processing method and device, computer equipment and storage medium |
CN116756444B (en) * | 2023-06-14 | 2024-08-06 | 北京百度网讯科技有限公司 | Image processing method, device, equipment and storage medium |
CN116760791B (en) * | 2023-08-21 | 2023-11-17 | 腾讯科技(深圳)有限公司 | Image transmission method, device, equipment and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023269A (en) * | 1994-06-02 | 2000-02-08 | International Business Machines Corporation | Image processing system which stores a modified image as an unmodified source image and modifications thereto in separate files |
CN101557389A (en) * | 2008-04-11 | 2009-10-14 | 北京闻言科技有限公司 | Method for dynamically scaling picture as required in request |
CN102685080A (en) * | 2011-03-17 | 2012-09-19 | 腾讯科技(北京)有限公司 | Picture processing method and system |
CN105049268A (en) * | 2015-08-28 | 2015-11-11 | 东方网力科技股份有限公司 | Distributed computing resource allocation system and task processing method |
CN107147732A (en) * | 2017-06-02 | 2017-09-08 | 广州爱九游信息技术有限公司 | Image processing method, device, client and service end |
CN109448075A (en) * | 2018-10-15 | 2019-03-08 | 网宿科技股份有限公司 | A kind of image processing method and server |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102595208B (en) * | 2012-01-13 | 2014-04-09 | 河海大学 | Cloud terminal control networking video image processing streaming media service system and method |
US9769205B2 (en) * | 2013-04-06 | 2017-09-19 | Citrix Systems, Inc. | Systems and methods for SSL session management in a cluster system |
US10579431B2 (en) * | 2017-08-12 | 2020-03-03 | Facebook, Inc. | Systems and methods for distributed management of computing resources |
CN108012156B (en) * | 2017-11-17 | 2020-09-25 | 深圳市华尊科技股份有限公司 | Video processing method and control platform |
CN109597912A (en) * | 2018-12-05 | 2019-04-09 | 上海碳蓝网络科技有限公司 | Method for handling picture |
US11394772B2 (en) * | 2019-12-06 | 2022-07-19 | Citrix Systems, Inc. | Systems and methods for persistence across applications using a content switching server |
CN111475255A (en) * | 2020-03-18 | 2020-07-31 | 西安万像电子科技有限公司 | Image processing method, server and system |
-
2021
- 2021-07-08 CN CN202110773604.XA patent/CN113393367B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023269A (en) * | 1994-06-02 | 2000-02-08 | International Business Machines Corporation | Image processing system which stores a modified image as an unmodified source image and modifications thereto in separate files |
CN101557389A (en) * | 2008-04-11 | 2009-10-14 | 北京闻言科技有限公司 | Method for dynamically scaling picture as required in request |
CN102685080A (en) * | 2011-03-17 | 2012-09-19 | 腾讯科技(北京)有限公司 | Picture processing method and system |
CN105049268A (en) * | 2015-08-28 | 2015-11-11 | 东方网力科技股份有限公司 | Distributed computing resource allocation system and task processing method |
CN107147732A (en) * | 2017-06-02 | 2017-09-08 | 广州爱九游信息技术有限公司 | Image processing method, device, client and service end |
CN109448075A (en) * | 2018-10-15 | 2019-03-08 | 网宿科技股份有限公司 | A kind of image processing method and server |
Non-Patent Citations (1)
Title |
---|
《图像处理 关于撤销重做的实现》;jerry5612897;《https://bbs.csdn.net/topics/310267525》;20090901;第1页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113393367A (en) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113393367B (en) | Image processing method, apparatus, device and medium | |
US11194999B2 (en) | Integrated facial recognition method and system | |
CN111433743B (en) | APP remote control method and related equipment | |
RU2679242C2 (en) | Task continuance across devices | |
JP2022519478A (en) | Directing the vehicle client device to use on-device functionality | |
US11212129B1 (en) | Profile virtual conference attendees to enhance meeting interactions | |
EP3637771A1 (en) | Cloud desktop system, and image sequence compression and encoding method, and medium therefor | |
WO2020156199A1 (en) | Application login method and device, terminal and storage medium | |
WO2016197590A1 (en) | Method and apparatus for providing screenshot service on terminal device and storage medium and device | |
CN104035683A (en) | Split-screen multitask interaction method for communication terminal | |
CN113656423B (en) | Method and device for updating data, electronic equipment and storage medium | |
US9535723B2 (en) | Methods and apparatuses for generating desktop cloud instances based upon mobile device user file selections | |
CN112948018B (en) | Dynamic library loading method, device, equipment and medium for applet | |
CN114091672B (en) | Distributed model reasoning method and device, electronic equipment and medium | |
CN113971048A (en) | Application program starting method and device, storage medium and electronic equipment | |
CN114968567A (en) | Method, apparatus and medium for allocating computing resources of a compute node | |
CN116306396A (en) | Chip verification method and device, equipment and medium | |
CN113419865B (en) | Cloud resource processing method, related device and computer program product | |
CN105763545B (en) | A kind of BYOD method and device | |
CN112243016A (en) | Middleware platform, terminal equipment, 5G artificial intelligence cloud processing system and processing method | |
EP3828739B1 (en) | Parallelization of authentication strategies | |
CN116401462A (en) | Interactive data analysis method and system applied to digital sharing | |
CN115756696A (en) | Information processing method, device, equipment and medium | |
CN114610446B (en) | Method, device and system for automatically injecting probe | |
CN114095758B (en) | Cloud image intercepting method and related device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |