Detailed Description
The present disclosure is described in further detail below with reference to the accompanying drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the relevant invention and not restrictive of the invention. It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings.
It should be noted that, in the present disclosure, the embodiments and features of the embodiments may be combined with each other without conflict. The present disclosure will be described in detail below with reference to the accompanying drawings in conjunction with embodiments.
Fig. 1 illustrates an exemplary architecture 100 to which the disclosed method for labeling keypoints or apparatus for labeling keypoints may be applied.
As shown in fig. 1, system architecture 100 may include a server 101, a terminal device 102, and a terminal device 103. The server 101 and the terminal device 102 and the terminal device 103 interact with each other via a network to receive or transmit messages and the like. The network may include various connection types, such as wired, wireless communication links, or fiber optic cables, among others.
Various communication client applications, such as a web browser application, a key point labeling application, a search application, a browser application, etc., may be installed on the terminal device 102 and the terminal device 103. In practice, the terminal device 102 may be a user side for providing the data for annotation, and the terminal device 103 may be a user side for performing annotation processing on the data for annotation.
The terminal device 102 and the terminal device 103 may be hardware or software. When the terminal device is hardware, it may be various electronic devices having a display screen and supporting the key point labeling, including but not limited to a smart phone, a tablet computer, a laptop portable computer, a desktop computer, and the like. When the terminal device is software, the terminal device can be installed in the electronic devices listed above. It may be implemented as multiple pieces of software or software modules (e.g., to provide distributed services) or as a single piece of software or software module. And is not particularly limited herein.
The server 101 may be a server providing various services, such as a background server for the web page version labeling tool on the terminal device 102 and the terminal device 103. As an example, after the terminal device 102 sends a certain amount of data for labeling to the background server of the webpage version labeling tool thereon, the terminal device 103 may obtain a plurality of data for labeling from the background server, perform labeling processing on the obtained data for labeling to obtain a plurality of data after labeling, and then store the obtained plurality of data after labeling to the background server, so that the background server may feed back the received plurality of data after labeling to the terminal device 102.
The server 101 may be hardware or software. When the server is hardware, it may be implemented as a distributed server cluster formed by multiple servers, or may be implemented as a single server. When the server is software, it may be implemented as multiple pieces of software or software modules (e.g., to provide distributed services), or as a single piece of software or software module. And is not particularly limited herein.
It should be noted that the method for labeling the keypoints provided by the embodiments of the present disclosure is generally performed by the server 101, and accordingly, the apparatus for labeling the keypoints is generally disposed in the server 101.
It should be understood that the number of servers and terminal devices in fig. 1 is merely illustrative. There may be any number of servers and terminal devices, as desired for implementation.
With continued reference to FIG. 2, a flow 200 of one embodiment of a method for annotating keypoints according to the present disclosure is illustrated. The method for labeling the key points comprises the following steps:
step 201, sending a first amount of data for labeling to the first user end, so that the first user end executes the following labeling steps: and for the marking data in the first quantity of marking data, marking the image to be marked in the marking data based on the coordinate information to be marked in the marking data to obtain a first quantity of marked data.
In this embodiment, an execution subject (such as the server 101 shown in fig. 1) of the method for labeling the keypoints may send a first amount of data for labeling to the first user side.
The data for labeling may include an image to be labeled and coordinate information to be labeled. The image to be annotated can be various images suitable for annotating key points, such as a face image. The coordinate information to be labeled may include various information related to the keypoints to be labeled, and may include, for example, coordinates of the keypoints to be labeled.
The first user end is generally a user end capable of performing annotation processing on the data for annotation. The first amount is generally the amount of marking data to be processed by the first user. In practice, the first number may be preset or may be determined according to the selection of the first user terminal.
In this embodiment, after receiving the first amount of data for labeling, the first user end may perform a labeling step on each piece of data for labeling to obtain the first amount of data for labeling.
Specifically, for each piece of data for labeling, the first user end may label, based on the coordinate information to be labeled included in the piece of data for labeling, the image to be labeled included in the piece of data for labeling, so as to obtain corresponding data after labeling. As an example, the first user end may label a key point indicated by the coordinate information to be labeled in the image to be labeled, and then adjust the position of the labeled key point to obtain the labeled image. As yet another example, after adjusting the position of the labeled keypoint, the first user end may generate coordinates of the position where the adjusted keypoint is located. As another example, after adjusting the position of the labeled key point, the first user end may further label the visibility of the adjusted key point to obtain identification information for identifying the visibility of the adjusted key point. It is understood that the annotation process described above may include, but is not limited to: and marking key points in the image to be marked, adjusting the marked key points, generating coordinates of the adjusted key points, and marking the visibility of the adjusted key points. Accordingly, annotated data may include, but is not limited to: the marked image, the coordinates of the adjusted key points and identification information for identifying the visibility of the adjusted key points. Optionally, the annotated data may further include an image to be annotated.
In some optional implementation manners of this embodiment, before sending the first amount of data for annotation to the first user end, the execution main body may receive a third amount of data for annotation sent by a second user end.
The second user end is usually the user end which can provide the marking data. The third amount is generally the amount of the marking data to be provided by the second user. In practice, the third number may be preset or may be determined according to the selection of the second user terminal.
In these implementations, the sending the first amount of data for tagging to the first user end may include: and sending the first quantity of marking data selected from the third quantity of marking data to the first user terminal.
Specifically, after receiving the third amount of the data for labeling sent by the second user, the execution main body may select the first amount of the data for labeling from the third amount of the data for labeling, and then send the selected first amount of the data for labeling to the first user.
Therefore, in a scene that a large amount of marking data needs to be marked, the second user side can serve as a provider of the marking data, the large amount of marking data to be processed is uploaded to the server side, and then a certain amount of marking data is selected from the large amount of marking data through the server side and sent to the first user side, so that the first user side can process the marking data to obtain marked data. In practice, the to-be-processed data for labeling can be distributed to the plurality of first user ends through the server end, the data for labeling is labeled together, manual distribution of the data for labeling is not needed, and therefore the processing flow is simplified.
In some optional implementation manners of this embodiment, before sending the first amount of data for labeling to the first user end, the executing main body may further receive account information and password information sent by the first user end.
The account information may include various information related to a login account of a tagging tool on which the first user terminal logs, and may include the login account, for example. Accordingly, the password information may include various information related to a login password of a tagging tool on which the first user terminal logs, and may include a login password, for example.
In these implementations, the sending the first amount of data for tagging to the first user end may include: and sending a first amount of data for marking to the first user terminal in response to determining that the account information is matched with the password information.
In practice, the execution main body stores a large amount of account information and password information, and the account information and the password information correspond to each other one to one. Therefore, after the account information and the password information sent by the first user terminal are received, the execution main body matches the received account information and the received password information with the account information and the password information which are pre-selected and stored, and then determines whether the login account indicated by the received account information corresponds to the login password indicated by the password information. If the two are corresponding, it can be determined that the received account information and the password information are matched. Further, the execution body may send a first amount of data for tagging to the first user terminal.
Therefore, in a scene that a plurality of second user terminals provide the to-be-processed data for labeling to the server terminal, on the premise that the received account information is matched with the password information, the server terminal can distribute the data for labeling to the corresponding first user terminal according to the login account indicated by the account information. And further can satisfy the demand of a plurality of clients providing data for marking.
In some optional implementation manners of this embodiment, the sending the first amount of data for tagging to the first user end may include: receiving acquisition operation information sent by a first user end; and sending the first quantity of marking information indicated by the acquisition operation information to the first user terminal.
The obtaining operation information may include various information related to the first user-side obtaining tagging data. For example, at least one of the following may be included, but not limited to: the number of the data for marking to be acquired; the label of the data for labeling to be acquired, and the like.
As an example, after receiving the obtaining operation information sent by the first user, the executing entity may randomly obtain the to-be-obtained amount of the marking data from the first amount of the marking data, and then send the obtained to-be-obtained amount of the marking data to the first user.
As another example, after receiving the operation information sent by the first user, the execution main body may obtain the labeling data indicated by the label from the first amount of labeling data, and then send the obtained labeling data to the first user.
In these implementation manners, the server may send corresponding data for labeling to the first user according to the obtaining operation of the first user, thereby implementing flexible distribution of the data for labeling to be processed.
Step 202, receiving a first amount of labeled data returned by the first user.
In this embodiment, after obtaining the first amount of post-labeling data, the first user end may send the obtained first amount of post-labeling data to the execution main body, so that the execution main body may receive the first amount of post-labeling data returned by the first user end.
Step 203, sending a second amount of labeled data selected from the first amount of labeled data to a second user end.
In this embodiment, after receiving the first amount of labeled data returned by the first user, the execution main body may select a second amount of labeled data from the first amount of labeled data, and then send the selected second amount of labeled data to the second user.
The second quantity is generally the quantity of the labeled data to be selected by the second user. In practice, the second number may be preset or may be determined according to the selection of the second user terminal.
As an example, the execution body may randomly select a second amount of the labeled data from the first amount of the labeled data, and then send the selected second amount of the labeled data to the second user end.
In some optional implementations of this embodiment, the executing entity may obtain a time when the second amount of the annotated data is sent to the second user terminal. Therefore, after the second amount of labeled data is sent to the second user end, the execution main body can also acquire the current time. And then, determining whether the difference between the current time and the time of sending the second quantity of labeled data to the second user end is greater than or equal to a preset time length. In response to determining that a difference between the current time and the time of sending the second amount of labeled data to the second user is greater than or equal to a preset time, the execution subject may generate a prompt message and control the target device to execute the target operation.
The prompt message may include various information related to the second user. For example, the following items may be included, but are not limited to: the login account of the second user end, and the quantity of the marked data to be sent to the second user end. The target device may be an alarm lamp or an alarm connected in communication with the execution main body, and correspondingly, the target operation may be an alarm lamp flashing or an alarm alarming.
As an example, after determining that a difference between the current time and the time of sending the second amount of labeled data to the second user end is greater than or equal to a preset time length, the execution main body may control an alarm lamp of the communication connection to flash, or control an alarm of the communication connection to alarm.
In the implementation modes, the alarm lamp is controlled to flash or the alarm is controlled to give an alarm, so that the prompting effect can be achieved, namely, the post-labeling data which is not sent to the second user end for a long time is stored in the prompting technician server.
With continued reference to fig. 3, fig. 3 is a schematic diagram of an application scenario of the method for labeling keypoints according to the present embodiment. In the application scenario of fig. 3, an annotation tool for annotating the image key points is running on the terminal device 302 and the terminal device 303, and the server 301 is a background server of the annotation tool. The terminal device 302 is a user side for providing data for annotation, and the terminal device 303 is a user side for performing annotation processing on the data for annotation. The data for annotation may include an image to be annotated and coordinate information to be annotated.
First, alternatively, the terminal apparatus 302 may transmit the third amount of the data for annotation 304 to the server 301, and after receiving the third amount of the data for annotation 304, the server 301 may select the first amount of the data for annotation 305 from the third amount of the data for annotation 304 and transmit the selected data to the terminal apparatus 303.
Then, after receiving the first amount of data for labeling 305, the terminal device 303 may perform labeling processing on the image to be labeled included in each piece of data for labeling based on the coordinate information to be labeled included in the data for labeling, and further generate a first amount of data 306 after labeling.
The terminal device 303 may then return the first quantity of annotated data 306 to the server 301.
Further, after receiving the first amount of labeled data 306, the server 301 may select a second amount of labeled data 307 from the first amount of labeled data 306 and feed back the second amount of labeled data 307 to the terminal device 307.
At present, when a large number of images to be annotated are subjected to key point annotation, one of the prior art generally distributes the images to be annotated to a plurality of user terminals in a manual manner, and then the plurality of user terminals label the key points of the received images to be annotated. After the annotation is completed, the annotated data obtained by the plurality of user terminals usually needs to be manually summarized. In the whole labeling process, a long time is needed, and errors such as missed sending of the image to be labeled, data loss after labeling and the like are easily caused. This increases the complexity of the process. The method provided by the above embodiment of the present disclosure implements the distribution of the data to be labeled by the server by sending the first amount of data for labeling to the first user end to perform the labeling step on the received data for labeling to obtain the first amount of labeled data, and implements the feedback of the labeled data by the server by sending the second amount of labeled data selected from the first amount of labeled data to the second user end, thereby simplifying the process of labeling a large number of images to be labeled with key points.
With further reference to FIG. 4, a flow 400 of yet another embodiment of a method for labeling keypoints is illustrated. The process 400 of the method for labeling keypoints comprises the following steps:
step 401, sending a first amount of data for tagging to the first user end, so that the first user end executes the following tagging steps: and for the marking data in the first quantity of marking data, marking the image to be marked in the marking data based on the coordinate information to be marked in the marking data to obtain a first quantity of marked data.
Step 402, receiving a first amount of labeled data returned by a first user.
Step 401 and step 402 are the same as step 201 and step 202, and the above description for step 201 and step 202 also applies to step 401 and step 402, which is not described herein again.
Step 403, receiving the selection operation information sent by the second user end.
In this embodiment, after receiving the first amount of labeled data returned by the first user, an execution main body (for example, the server 101 shown in fig. 1) of the method for labeling the keypoint may receive the selection operation information sent by the second user.
The selection operation information includes various information related to the second user terminal selecting the labeled data. For example, at least one of the following may be included, but not limited to: selecting the quantity to be selected of the marked data; the label of the data to be selected after labeling; uploading time of the marked data to be selected; and uploading information (such as an account) of the user side of the to-be-selected marked data, and the like.
Step 404, selecting a second amount of labeled data indicated by the selection operation information from the first amount of labeled data, and sending the selected second amount of labeled data to the second user.
In this embodiment, after receiving the selection operation information sent by the second user, the execution main body may select a second amount of labeled data indicated by the selection operation information from the first amount of labeled data, and send the selected second amount of labeled data to the second user.
As an example, the execution main body may randomly obtain the number of labeled data to be selected from the first number of labeled data, and then send the selected number of labeled data to be selected to the second user side.
As another example, the execution body may select the labeled data indicated by the label from the first number of labeled data, and then send the selected labeled data to the second user end
As another example, the execution main body may select the labeled data indicated by the upload time from the first number of labeled data, and then send the selected labeled data to the second user.
As another example, the execution main body may select the labeled data indicated by the information of the user terminal from the first amount of labeled data, and then send the selected labeled data to the second user terminal.
As can be seen from fig. 4, compared with the embodiment corresponding to fig. 2, the process 400 of the method for labeling the keypoints in this embodiment embodies a step of receiving the selection operation information sent by the second user end, and also embodies a step of sending the second amount of labeled data indicated by the selection operation information to the second user end. Therefore, according to the scheme described in this embodiment, corresponding labeled data can be sent to the second user end according to the selection operation of the second user end, and flexible feedback of the labeled data is further achieved.
With continued reference to FIG. 5, a timing sequence of a method for labeling keypoints is illustrated. The time sequence of the method for marking the key points comprises the following steps:
step 501, the second user terminal sends a third amount of data for labeling to the server terminal.
Step 502, the server receives a third amount of marking data sent by the second user.
The descriptions in the optional implementation manners in step 501, step 502, and step 201 are similar, and are not described again here.
In step 503, the first user side obtains the first amount of data for labeling in the third amount of data for labeling from the server side, and executes the following labeling steps: and for the marking data in the first quantity of marking data, marking the image to be marked in the marking data based on the coordinate information to be marked in the marking data to obtain a first quantity of marked data.
In this embodiment, the first user side may obtain the first amount of data for labeling from the third amount of data for labeling obtained in advance by the server side, and then perform the labeling step to obtain the first amount of data for labeling. Regarding the method for the first user end to obtain the third amount of data for labeling and the process of executing the labeling step, there is a related description in step 201, and details are not repeated here.
In step 504, the first user returns the obtained first amount of labeled data to the server.
In this embodiment, after obtaining the first amount of labeled data, the first user side may return the obtained first amount of labeled data to the server side.
And 505, the second user terminal selects a second amount of labeled data in the first amount of labeled data from the server terminal.
In this embodiment, after the first user returns the obtained first amount of labeled data to the server, the second user may select a second amount of labeled data from the first amount of labeled data obtained by the server. The method for the second user to select the second amount of labeled data corresponds to the description in step 404, and is not further described here.
With further reference to fig. 6, as an implementation of the method shown in the above-mentioned figures, the present disclosure provides an embodiment of an apparatus for labeling a keypoint, where the embodiment of the apparatus corresponds to the embodiment of the method shown in fig. 2, and the apparatus may be specifically applied to various electronic devices.
As shown in fig. 6, the apparatus 500 for labeling keypoints provided in the present embodiment includes a sending unit 601, a first receiving unit 602, and a selecting unit 603. Wherein the sending unit 601 may be configured to: sending a first amount of data for labeling to a first user end, wherein the data for labeling comprises an image to be labeled and coordinate information to be labeled, so that the first user end executes the following labeling steps: for the marking data in the first quantity of marking data, marking the image to be marked in the marking data based on the coordinate information to be marked in the marking data to obtain a first quantity of marked data; the first receiving unit 602 may be configured to: receiving a first amount of labeled data returned by a first user end; the selecting unit 603 may be configured to: and sending a second quantity of labeled data selected from the first quantity of labeled data to a second user end.
In the present embodiment, in the apparatus 600 for labeling the keypoints: the specific processing of the sending unit 601, the first receiving unit 602, and the selecting unit 603 and the technical effects thereof can refer to the related descriptions of step 201, step 202, and step 203 in the corresponding embodiment of fig. 2, which are not described herein again.
In some optional implementations of this embodiment, the apparatus 600 may further include: a second receiving unit (not shown in the figure). Wherein the second receiving unit may be configured to: and receiving a third amount of marking data sent by the second user terminal. At this time, the transmitting unit 601 may be further configured to: and sending the first quantity of marking data selected from the third quantity of marking data to the first user terminal.
In some optional implementations of this embodiment, the apparatus 600 may further include: a third receiving unit (not shown in the figure). Wherein the third receiving unit may be configured to: and receiving account information and password information sent by the first user terminal. At this time, the transmitting unit 601 may be further configured to: and sending a first amount of data for marking to the first user terminal in response to determining that the account information is matched with the password information.
In some optional implementations of this embodiment, the sending unit 601 may be further configured to: receiving acquisition operation information sent by a first user end; and sending the first quantity of marking information indicated by the acquisition operation information to the first user terminal.
In some optional implementations of the present embodiment, the selecting unit 603 may be further configured to: receiving selection operation information sent by a second user end; and selecting a second amount of labeled data indicated by the selection operation information from the first amount of labeled data, and sending the selected second amount of labeled data to a second user end.
In some optional implementations of this embodiment, the apparatus 600 may further include: a control unit (not shown in the figure). Wherein the control unit may be configured to: and generating prompt information and controlling the target equipment to execute target operation in response to the fact that the difference between the current time and the time of sending the second amount of labeled data to the second user end is greater than or equal to the preset time length.
The apparatus provided in the foregoing embodiment of the present disclosure may first send a first amount of labeled data to a first user end through the sending unit 601, so that the first user end performs a labeling step, then receive a first amount of labeled data returned by the first user end through the first receiving unit 602, and then send a second amount of labeled data selected from the first amount of labeled data to a second user end through the selecting unit 603. Therefore, the process of labeling key points of a large number of images to be labeled is simplified.
Referring now to FIG. 7, a block diagram of an electronic device (e.g., the server of FIG. 1) 700 suitable for use in implementing embodiments of the present disclosure is shown. The server shown in fig. 7 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
As shown in fig. 7, electronic device 700 may include a processing means (e.g., central processing unit, graphics processor, etc.) 701 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM)702 or a program loaded from storage 708 into a Random Access Memory (RAM) 703. In the RAM703, various programs and data necessary for the operation of the electronic apparatus 700 are also stored. The processing device 701, the ROM 702, and the RAM703 are connected to each other by a bus 704. An input/output (I/O) interface 705 is also connected to bus 704.
Generally, the following devices may be connected to the I/O interface 705: input devices 707 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 707 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; storage 708 including, for example, magnetic tape, hard disk, etc.; and a communication device 709. The communication means 709 may allow the electronic device 700 to communicate wirelessly or by wire with other devices to exchange data. While fig. 7 illustrates an electronic device 700 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided. Each block shown in fig. 7 may represent one device or may represent multiple devices as desired.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In such embodiments, the computer program may be downloaded and installed from a network via the communication means 709, or may be installed from the storage means 708, or may be installed from the ROM 702. The computer program, when executed by the processing device 701, performs the above-described functions defined in the methods of embodiments of the present disclosure. It should be noted that the computer readable medium described in the embodiments of the present disclosure may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having 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. In embodiments of the disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In embodiments of the present disclosure, however, a computer readable signal medium may comprise a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
The computer readable medium may be embodied in the server; or may exist separately and not be assembled into the server. The computer readable medium carries one or more programs which, when executed by the server, cause the server to: sending a first amount of data for labeling to a first user end, wherein the data for labeling comprises an image to be labeled and coordinate information to be labeled, so that the first user end executes the following labeling steps: for the marking data in the first quantity of marking data, marking the image to be marked in the marking data based on the coordinate information to be marked in the marking data to obtain a first quantity of marked data; receiving a first amount of labeled data returned by a first user end; and sending a second quantity of labeled data selected from the first quantity of labeled data to a second user end.
Computer program code for carrying out operations for embodiments of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in the embodiments of the present disclosure may be implemented by software or hardware. The described units may also be provided in a processor, and may be described as: a processor includes a transmitting unit, a first receiving unit, and a selecting unit. Where the names of the units do not in some cases constitute a limitation of the units themselves, for example, the first receiving unit may also be described as a "unit that receives the first amount of labeled data returned by the first user".
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention in the present disclosure is not limited to the specific combination of the above-mentioned features, but also encompasses other embodiments in which any combination of the above-mentioned features or their equivalents is possible without departing from the inventive concept as defined above. For example, the above features and (but not limited to) the features disclosed in this disclosure having similar functions are replaced with each other to form the technical solution.