Information Processing Apparatus, Information Processing Method, and Program

The information processing apparatus addresses AI model biases by automatically extracting, labeling, and adjusting dataset attributes, improving efficiency and accuracy in AI model training.

JP7713507B2Active Publication Date: 2025-07-25SONY SEMICON SOLUTIONS CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023210706
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-12-14
Publication Date
2025-07-25
Estimated Expiration
2043-12-14

AI Technical Summary

Technical Problem

Existing AI models learn biases due to biased datasets, necessitating inefficient repeated dataset generation and inability to distinguish between dataset and model biases.

Method used

An information processing apparatus and method that includes an attribute extraction unit, labeling unit, bias detection unit, and dataset adjustment unit to automatically extract, label, and adjust dataset attributes to improve biases.

Benefits of technology

Efficiently improves dataset biases without repeated generation, allowing accurate AI model training by automatically detecting and adjusting dataset attributes, enhancing prediction accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007713507000001
    Figure 0007713507000001
  • Figure 0007713507000002
    Figure 0007713507000002
  • Figure 0007713507000003
    Figure 0007713507000003
Patent Text Reader

Abstract

To enable adjustment of a bias in the case where a bias exists in, for example, a data set for learning.SOLUTION: An information processing device comprises: an attribute extraction unit that extracts an attribute from an input dataset; a labeling unit that labels the attribute for each data forming the dataset; a bias detection unit that detects a bias for each attribute; and a dataset adjustment unit that adjusts the dataset so as to improve at least one bias detected by the bias detection unit.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present technology relates to an information processing apparatus, an information processing method, and a program.

Background Art

[0002] With the development of the field of artificial intelligence (AI), the use of AI is progressing in various fields. However, it is known that existing AI models (learning models) learn various biases. One of the causes of bias is that the learning dataset (hereinafter abbreviated as the dataset as appropriate) learned by the AI model contains bias. When the dataset contains bias, events may occur in which the AI model obtained using the dataset misidentifies a specific race as an animal or gives a negative evaluation to a specific gender. Therefore, methods for improving such biases have been proposed (see, for example, Patent Documents 1 and 2 below).

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Summary of the Invention

Problems to be Solved by the Invention

[0004] The technique described in Patent Document 1 has a problem in that it is necessary to repeatedly generate a dataset to improve bias, which is not efficient. Further, the technique described in Patent Document 2 is a method for reducing bias during the learning of an AI model, and has a problem in that it is impossible to determine whether the bias is caused by the model or the dataset.

[0005] One of the objectives of this technology is to provide an information processing apparatus, an information processing method, and a program that can improve the bias corresponding to at least one attribute included in a dataset.

Means for Solving the Problems

[0006] This technology is, for example, an attribute extraction unit that extracts attributes from the input dataset, a labeling unit that labels the attributes for each data constituting the dataset, a bias detection unit that detects the bias for each attribute based on the labeling result, and Ethical a dataset adjustment unit that improves the bias for the attribute detected by the bias detection unit and Ethical adjusts the dataset so as to change the bias for another attribute different from the attribute according to the task content of the AI model that performs machine learning based on the dataset after bias adjustment. When This is an information processing apparatus having the above components.

[0007] This technology is, for example, the attribute extraction unit extracts attributes from the input dataset, the labeling unit labels the attributes for each data constituting the dataset, the bias detection unit detects the bias for each attribute based on the labeling result, the dataset adjustment unit improves the bias for the attribute detected by the bias detection unit and Ethical adjusts the dataset so as to change the bias for another attribute different from the attribute according to the task content of the AI model that performs machine learning based on the dataset after bias adjustment. Ethical This is an information processing method. When

[0008] This technology is, for example, ​​​The attribute extraction unit extracts attributes from the input dataset, the labeling unit labels the attributes for each data constituting the dataset, the bias detection unit detects the bias for each attribute based on the labeling result, the dataset adjustment unit improves the bias for the attributes detected by the bias detection unit, Ethical and for the bias for another attribute different from the attribute, according to the task content of the AI model that performs machine learning based on the dataset after bias adjustment, Ethical the dataset is adjusted to change the bias, When It is a program that causes a computer to execute an information processing method.

Brief Description of Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Figure 29

Figure 30

Figure 31

Figure 32

Figure 33

Figure 34

Figure 35

Figure 36

Figure 37

Figure 38

Embodiments for Carrying Out the Invention

[0010] Hereinafter, embodiments of the present technology will be described with reference to the drawings. The description will be made in the following order. In this specification and the drawings, components having substantially the same function or configuration are denoted by the same reference numerals, and redundant descriptions will be omitted as appropriate. <First Embodiment> <Second Embodiment> <Third Embodiment> <Fourth Embodiment> <Fifth Embodiment> <Examples> <Modifications>

[0011] <First Embodiment> [Configuration Example of Information Processing Apparatus] FIG. 1 is a block diagram showing a configuration example of an information processing apparatus (information processing apparatus 1) according to the first embodiment. As the information processing apparatus 1, a cloud server is cited as an example, but it is not limited thereto. An edge device or a fog server existing between the edge device and the cloud server may be the information processing apparatus 1. Specific examples of the cloud server, edge device, and fog server will be described later.

[0012] A data set is input to the information processing apparatus 1. The data set is composed of a plurality of data (a large amount of data). The data set may be stored in a storage device of the information processing apparatus 1, or may be supplied from outside the information processing apparatus 1 via a network such as the Internet. The type of data constituting the data set is not particularly limited, but in the following description, image data will be used as an example of the data for explanation. Also, it is assumed that each image data is annotated with "male" or "female" as an attribute.

[0013] The information processing apparatus 1 has, for example, an attribute extraction unit 2, a labeling unit 3, a bias detection unit 4, a dataset adjustment unit 5, and an output unit 6.

[0014] The attribute extraction unit 2 extracts attributes from the input dataset. The method of extracting attributes is not limited to a specific method, but in this embodiment, as an example, CLIP2StyleGAN (Generative Adversarial Network) is used. CLIP2StyleGAN roughly extracts features by applying the image data constituting the dataset to the CLIP encoder, obtains the i-th principal component direction by applying the obtained image features to PCA (Principal Component Analysis), and automatically extracts (acquires) the linguistic expressions corresponding to the changes in the edit-directions corresponding to the i-th principal component direction, that is, the attributes. For the automatic extraction of attributes, it is made possible by searching for the vocabulary in the vocabulary of CLIP that is similar to the semantic concept of the i-th principal component. The automatically extracted attributes are those that are interpretable by humans and capture the characteristics of the dataset. The semantic concept is obtained, for example, in the following process. Each principal component of the above-mentioned PCA includes several attributes (for example, two attributes of "age" and "smile"). Next, data that reacts to each principal component is extracted from the dataset (extraction of a sample group including age and smile from a face image). For the acquisition of linguistic expressions, the attribute search is performed using the image encoder of CLIP, the text encoder of CLIP, and the vocabulary of CLIP for the extracted data. Specifically, a search is performed for the vocabulary in the vocabulary of CLIP that is similar to the expressions of the extracted sample group. Here, "smile" and "age" are acquired as languages.

[0015] The labeling unit 3 labels the attributes extracted by the attribute extraction unit 2 for each data (for example, image data) constituting the dataset. The labeling method is not limited to a specific method, but in this embodiment, CLIP is used as the labeling method. CLIP is a method that determines the similarity between each image data using the attributes extracted by the attribute extraction unit 2 as labels, and assigns a label to the image data having a similarity equal to or higher than a certain level. As a result, for each image data, the presence or absence of the attributes extracted by the attribute extraction unit 2 is classified. Thereby, even if the information processing apparatus 1 does not perform learning, it is possible to classify the presence or absence of attributes for each image data.

[0016] The bias detection unit 4 detects a bias for each attribute based on the labeling result by the labeling unit 3. The attributes extracted by the attribute extraction unit 2 may include those that are not biased within the dataset. Therefore, it is necessary to identify the attributes with bias. The bias detection unit 4 calculates, for example, the degree of imbalance for each attribute, and detects an attribute with a degree of imbalance equal to or higher than a certain level as an attribute with bias. As the distance or amount of information used when calculating the degree of imbalance, for example, "Euclidean distance", "Chebyshev distance", "Kullback Leibler divergence", "Hellinger distance", "Total variation distance", "Chi-square divergence" can be used.

[0017] The dataset adjustment unit 5 adjusts the dataset so as to improve at least one bias detected by the bias detection unit 4. Specific examples of adjusting the dataset will be described later.

[0018] The output unit 6 is a general term for devices that output various types of information. The output unit 6 includes, for example, a display unit 6A, an audio output unit 6B, and a communication unit 6C. The display unit 6A is an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence) display. The audio output unit 6B is a device that reproduces sound such as a speaker. The communication unit 6C is a communication device that transmits and receives data and commands to and from a device capable of communicating with the information processing apparatus 1 via a network such as the Internet or a wireless LAN (Local Area Network).

[0019] The output unit 6 outputs, for example, display information that visualizes the result of the labeling by the labeling unit 3. Further, the output unit 6 outputs, for example, display information that visualizes information based on the bias for each attribute detected by the bias detection unit 4. Further, the output unit 6 outputs, for example, display information that visualizes the result of bias improvement by the data set adjustment unit 5. Specific output examples will be described later. The output display information may be displayed on the display unit 6A of the information processing apparatus 1, or may be displayed on a display unit of another device (for example, the user terminal 200 described later).

[0020] [Flow of processing] (Overview) Referring to FIG. 2, the outline of the processing performed by the information processing apparatus 1 will be described. Attributes are automatically extracted by the attribute extraction unit 2 from the input data set. Then, the labeling unit 3 labels the attributes for each image data. In the illustrated example, attribute A is gender, attribute B is race, and attribute C is age. Each attribute includes a set of image data to which the attribute is assigned. Multiple attributes may be labeled for the image data. The result of the labeling by the labeling unit 3 is displayed in a tabular format (for example, a bar graph format) as shown on the left side of FIG. 2. For example, the number of image data with the attribute "gender" among the image data annotated as group 1 in the image data, and the number of image data with the attribute "gender" among the image data annotated as group 2 in the image data, are displayed side by side. Also, the number of image data with the attribute "race" among the image data annotated as group 1 in the image data, and the number of image data with the attribute "race" among the image data annotated as group 2 in the image data, are displayed side by side. Also, the number of image data with the attribute "age" among the image data annotated as group 1 in the image data, and the number of image data with the attribute "age" among the image data annotated as group 2 in the image data, are displayed side by side.

[0021] Based on the result of the labeling by the labeling unit 3, the bias detection unit 4 detects the bias for each attribute. For example, it is assumed that biases are detected for all attributes (gender, race, age in this example). The data set adjustment unit 5 adjusts the content of the data set so as to improve the bias of each attribute for which a bias is detected.

[0022] For example, the dataset adjustment unit 5 performs a process of equalizing the number of image data annotated as group 1 and having the attribute "gender" with the number of image data annotated as group 2 and having the attribute "gender".

[0023] (Processing flow) FIG. 3 is a flowchart showing the processing flow performed by the information processing apparatus 1. Hereinafter, the processing flow assuming an AI model for a male-female classification task will be described.

[0024] When the processing starts, in step S101, the attribute extraction unit 2 extracts interpretable attributes from the dataset. Specifically, the latent space representation of the images in the dataset is obtained using the image encoder of CLIP. The average of this latent space representation is the common theme of the dataset. For example, in the case of a face image dataset, the theme represents "face image". Subtract the average from each latent space representation. Next, PCA is performed on the obtained latent space representation. It is assumed that the first principal component and the like obtained here are such that they greatly change the linguistic expressions learned by CLIP. However, at this stage, multiple attributes may be changed. Assume that each attribute is an interpretable attribute. Next, automatic assignment of linguistic expressions is performed for the extracted attributes. Specifically, the linguistic expressions are assigned to the attributes using the text encoder of CLIP. The assignment of linguistic expressions may be performed automatically, or manual filtering may be performed to deal with the fact that the text of CLIP contains aggressive words.

[0025] In this example, each image constituting the dataset is pre-annotated with a label of "male" or "female". It will be described that the attribute extraction unit 2 extracts, as an example of attributes, "presence or absence of a smiling face", "race", and "age". Note that the attribute extraction unit 2 extracts not only attributes with bias but also attributes without bias. The attributes extracted by the attribute extraction unit 2 correspond to the perturbation ΔW applied to the latent variable W in CLIP2StyleGAN. Then, the process proceeds to step S102.

[0026] In step S102, for each image data, the labeling unit 3 labels the attributes extracted by the attribute extraction unit 2. Specifically, regarding the attributes extracted by the attribute extraction unit 2, the presence or absence of the attributes is binary-classified for each image data constituting the dataset. Thereby, the frequency of each attribute in the dataset can be calculated. Note that by presenting the calculated frequency to the user in a graph or the like, the quality of the dataset before bias improvement can be visualized. Then, the process proceeds to step S103.

[0027] In step S103, the bias detection unit 4 detects the presence or absence of attribute bias by calculating, for example, the degree of imbalance for each attribute. In step S101, interpretable attributes are automatically extracted. However, it is conceivable that not all of the extracted attributes are biases in the dataset. Therefore, it is necessary to extract attributes that are considered to be biases from among them. Dataset bias occurs when an attribute is imbalanced within the dataset or when attributes that are not originally related have a correlation due to sampling of the dataset. Examples of correlations between attributes that are not originally related are as follows. When considering a dataset existing from "dog" and "cat", assume that there are many images in the dataset where "cat" is taken in the bedroom. At this time, an inappropriate correlation occurs between "bed" and "cat" in the bedroom, and it is conceivable that an image with "bed" and "dog" is determined to be "cat". Therefore, attributes that are considered to have bias are likely to occur when an attribute occupies a majority in the dataset but is not originally related to the explanatory variable, or when there is a bias in the distribution between the attributes of the dataset and the explanatory variable. Finally, it is possible to identify attributes that are biases by calculating the degree of imbalance for each attribute from the graph and attribute frequencies described in step S102. For calculating the degree of imbalance, the above-mentioned "Euclidean distance" or the like is used. Then, the process proceeds to step S104.

[0028] In step S104, the dataset adjustment unit 5 improves the bias by expanding the image data constituting the dataset or the like. Note that improving the bias means, for example, setting the degree of imbalance to 0 or making the degree of imbalance fall below a certain level. Specific examples of the processing by the dataset adjustment unit 5 will be described later.

[0029] The dataset with improved bias may be stored in a storage device (not shown) of the information processing apparatus 1. The stored dataset with improved bias may be downloadable by other devices accessing it. Also, the dataset with improved bias may be transmitted from the information processing apparatus 1 to other devices via the communication unit 6C included in the output unit 6.

[0030] [Example of display of labeling result] (First display example) Next, an example of display information visualizing the result of labeling by the labeling unit 3 will be described. The following display examples may be displayed on the display unit 6A or on the display unit of a device capable of communicating with the information processing apparatus 1.

[0031] FIG. 4 is a diagram for explaining a first display example of the result of labeling by the labeling unit 3. The first display example is an example of visualizing the result of labeling by the labeling unit 3 (in other words, the content of the dataset before bias improvement) in a graph format, more specifically, in a bar graph format.

[0032] As shown in FIG. 4, along the horizontal axis direction, the attributes extracted by the attribute extraction unit 2 (in this example, "presence or absence of a smile", "race", "age") are displayed. The vertical axis (height of the bar) indicates the number of images. In the example of FIG. 4, 5000 images are shown as the number of images, but this is just an example. Lines for every 1000 images may be displayed so that the user can recognize more detailed numbers.

[0033] Among the image data annotated with "male" in the image data constituting the dataset, the number of image data with the attribute "presence or absence of a smile" is arranged and displayed, and among the image data annotated with "female" in the image data constituting the dataset, the number of image data with the attribute "presence or absence of a smile" is arranged and displayed. In this example, two bar graphs showing the respective numbers are displayed on the left side.

[0034] Among the image data constituting the dataset, the number of image data annotated with "male" and having the attribute "race" assigned, and the number of image data annotated with "female" and having the attribute "race" assigned among the image data constituting the dataset are displayed side by side. In this example, two bar graphs indicating the respective numbers are displayed near the center.

[0035] Among the image data constituting the dataset, the number of image data annotated with "male" and having the attribute "age" assigned, and the number of image data annotated with "age" and having the attribute "race" assigned among the image data constituting the dataset are displayed side by side. In this example, two bar graphs indicating the respective numbers are displayed near the right side.

[0036] By displaying in bar graph form, the user can intuitively recognize whether there is a difference in the number of images of men and women labeled with a certain attribute, that is, whether the attribute is a biased attribute. Also, since the user can intuitively recognize the difference in the number, the degree of bias can also be intuitively recognized by the user. In the example shown in Figure 4, since there is a large difference in the number of images of "men" and "women" labeled with the attribute "presence or absence of a smile", the user can recognize that the degree of bias of the attribute "presence or absence of a smile" is large.

[0037] (Second display example) Figure 5 is a diagram for explaining the second display example. As shown in Figure 5, in this example as well, a bar graph indicating the number of images for each attribute is displayed. This example is an example of displaying representative sample images indicating the attributes in addition to, for example, bar graphs.

[0038] As shown in FIG. 5, a sample image IM corresponding to the attribute "presence or absence of a smiling face", for example, is displayed on the left side of the bar graph. Specifically, a sample image IM including a sample image IMA corresponding to a smiling face of a man and a sample image IMB corresponding to a smiling face of a woman is displayed on the left side of the bar graph. Although not shown in the figure, a sample image corresponding to the attribute "race" (for example, images of men and women of various races) or a sample image corresponding to the attribute "age" (for example, images of men and women of various ages) may be displayed. Also, an attribute may be specified by a user operation, and a sample image corresponding to the specified attribute may be displayed.

[0039] In the case of data that requires specialized knowledge such as medical image classification, simply indicating the attribute with text information may make it difficult for the user to recognize the content of the attribute. As in this example, by visualizing the attribute with a sample image, the user can more easily recognize the content of the attribute.

[0040] [Example of display of bias detection result] Next, an example of the display information for visualizing the bias detection result by the bias detection unit 4 will be described. The bias detection unit 4 quantifies the degree of imbalance for each attribute and displays it as text information. The greater the degree of imbalance, the greater the degree of bias (for example, the difference in the number of images). Note that the following display example may be displayed on the display unit 6A or on the display unit of a device capable of communicating with the information processing apparatus 1.

[0041] For example, as shown in FIG. 6A, “40” is displayed as the degree of imbalance corresponding to the attribute “presence or absence of a smiling face”, “20” is displayed as the degree of imbalance corresponding to the attribute “race”, and “10” is displayed as the degree of imbalance corresponding to the attribute “age”. As shown in FIG. 6B, the degree of imbalance of the entire dataset may be displayed. As the degree of imbalance of the entire dataset, an average of the degrees of imbalance of each attribute can be used. Note that for the average, only the degrees of imbalance of the attributes defined by the user may be considered. For example, if the task of the AI model is an automatic attendance discrimination model for university lectures, since it is reasonable for the age to be biased, the degree of imbalance of the attribute “age” may be excluded and the average of the degrees of imbalance may be calculated. As shown in FIG. 6C, both the degree of imbalance of each attribute and the degree of imbalance of the entire dataset may be displayed.

[0042] [Processing of the Dataset Adjustment Unit] Next, a specific example of the processing of the dataset adjustment unit will be described. As shown in FIGS. 4 and 5, when learning is performed using a dataset with a bias in an attribute and the AI model generated by the learning is used, the determination result of the AI model will be disadvantageous. For example, among the three attributes “presence or absence of a smiling face”, “race”, and “age”, assume that the degree of imbalance of the attribute “presence or absence of a smiling face” is above a certain level and there is a bias in the attribute “presence or absence of a smiling face”. In this case, an AI model for a male-female classification task obtained using a dataset without improving the bias may misclassify a smiling female as male. Therefore, the dataset adjustment unit 5 improves the bias of such a dataset.

[0043] For example, the dataset adjustment unit 5 improves the bias by expanding the dataset. As schematically shown in FIG. 7, as an example, the dataset adjustment unit 5 expands the dataset by adding new image data to the dataset so that the number of male and female images corresponding to each attribute becomes equal. Note that it does not have to be exactly equal (the same number). Adjusting the number of image data so that the difference in the number is at a level where the bias can be ignored is also included in being equal.

[0044] New image data is collected manually. For example, a person searches an image database, obtains image data of a smiling woman, and adds the obtained image data to a dataset. Although it is time-consuming because it is done manually, since the direction (characteristics) of the target image data is determined, such as "a smiling woman", it is easy to collect the image data. Of course, the collection of image data may be automatically performed by a computer instead of manually.

[0045] The new image data may be generated image data. For example, it may be image data generated by a trained image generation model (image generator). Also, the new image data may be image data based on a virtual viewpoint generated based on image data from an actual viewpoint (actual image data). Also, the new image data may be a combination of the above-described image data.

[0046] The dataset adjustment unit 5 may improve the bias by deleting some of the image data constituting the dataset to equalize the number of images. For example, the dataset adjustment unit 5 may delete some of the image data of "men" labeled with the attribute "presence or absence of a smile" so that the number of image data of "men" labeled with the attribute "presence or absence of a smile" and the number of image data of "women" labeled with the attribute "presence or absence of a smile" become equal.

[0047] Display information visualizing the content of the dataset after bias improvement may be displayed on the display unit 6A or the display unit of a device communicable with the information processing apparatus 1. For example, as shown in FIG. 8, information indicating that the number of image data of men and women labeled with each attribute has become equal, that is, the bias has been improved, may be displayed in the form of a bar graph. Of course, instead of the bar graph form, text information or the like indicating that the degree of imbalance has become 0 may be displayed.

[0048] [Effects Obtained in the Present Embodiment] According to the information processing apparatus according to the present embodiment, for example, the following effects can be obtained. According to the information processing apparatus according to this embodiment, it is possible to improve the bias included in the data set. Regardless of the type of image data constituting the data set, the bias of the data set can be improved. It is not necessary to perform the process for improving the bias a plurality of times, and the bias of the data set can be efficiently improved. Since the bias can be explained in natural language, it is easy for the user to interpret. Different from the conventional case, instead of improving the bias by improving the AI model, the bias of the data set itself can be improved. Improving the data set itself is expected to improve the prediction accuracy more than improving the AI model. The bias of the data set can be improved without being restricted by the subsequent tasks (classification, object recognition, segmentation, etc.). It is possible to automatically detect the attributes with bias and present the results to the user. The user does not need to pre-define the attributes considered to have bias. Also, even when the attributes of the data set are unknown, the attributes can be extracted from the data set.

[0049] <Second Embodiment> Next, the second embodiment will be described. In the description of the second embodiment, the same or similar configurations in the above-described description are denoted by the same reference numerals, and the overlapping descriptions are appropriately omitted. Also, unless otherwise specified, the matters described in the first embodiment can be applied to the second embodiment.

[0050] FIG. 9 is a flowchart showing the flow of the process executed in the second embodiment. The process shown in FIG. 9 is basically the same as the flow of the process performed by the information processing apparatus 1 described in the first embodiment (see FIG. 3).

[0051] In the first embodiment, in the process of step S101, attributes were automatically extracted from the dataset using CLIP2StyleGAN. In this embodiment, it is different from the first embodiment in that the user can specify attributes. As a result, it becomes possible to handle attributes that cannot be automatically extracted by CLIP2StyleGAN. For example, it becomes possible to perform labeling regarding attributes that cannot be automatically extracted by CLIP2StyleGAN and to detect biases of the attributes.

[0052] The processing after step S102 is the same as that in the first embodiment. For example, the attributes labeled by the labeling unit 3 include the attributes specified by the user in step S101. Further, the bias detection unit 4 detects biases regarding at least the attributes specified by the user based on the labeling results of the labeling unit 3. The dataset adjustment unit 5 adjusts the dataset so as to improve the biases regarding the attributes specified by the user detected by the bias detection unit 4.

[0053] <The Third Embodiment> Next, the third embodiment will be described. In the description of the third embodiment, the same or similar components in the above description are denoted by the same reference numerals, and redundant descriptions are omitted as appropriate. Further, unless otherwise specified, the matters described in the first and second embodiments can be applied to the third embodiment.

[0054] FIG. 10 is a flowchart showing the flow of processing executed in the third embodiment. In this embodiment, an embodiment is provided in which the extraction of attributes by the attribute extraction unit 2, the labeling of attributes by the labeling unit 3, the detection of biases for each attribute by the bias detection unit 4, and the adjustment of the dataset by the dataset adjustment unit 5 are consistently performed using an AI model learned using a dataset.

[0055] In step S201, learning using a dataset is performed, and for example, a StyleGAN2 model, which is an example of an AI model, is generated. Then, the process proceeds to step S202.

[0056] In step S202, the dataset is converted into the latent space of StyleGAN2. After the conversion, for each of male and female, a matrix shown in FIG. 11 is obtained. Among the matrices shown in FIG. 11, the rows correspond to the number of training data (d), and the columns correspond to the number of attributes in the latent space (k). Then, the process proceeds to step S203.

[0057] In step S203, the distribution of tasks for each attribute is calculated to identify significant attributes. FIG. 12 shows an example of the distribution result of tasks. The horizontal axis of the distribution (graph) in FIG. 12 is the value of the attribute (here k = 4989), and the vertical axis shows the distribution of the number of data. Also, the dotted ones correspond to the distribution for "male", and the hatched ones correspond to the distribution for "female". Then, the process proceeds to step S204.

[0058] In step S204, the distance between the task distributions is calculated using, for example, "Wasserstein-1 Distance" to identify the attributes important for the task. "Important" means that the distance between the distributions is large. Here, by calculating the distance between the distributions, meaningful dimensions in the latent space of StyleGAN2 are identified. As shown in FIG. 13A, when the overlap between the distributions for male and female for a certain attribute is small, attributes such as age and expression can be manipulated by changing the latent space. On the other hand, as shown in FIG. 13B, when the overlap of the distributions is large, it is expected that even if the latent space is manipulated, it will be close to the original image. (The dimension does not hold significant attributes.) Then, the process proceeds to step S205.

[0059] In step S205, the numerical value of the target attribute is changed, and an image is generated using the generator of StyleGAN2. As shown in FIG. 14, an image (the middle image) with the numerical value of the attribute (k = 4989) changed for the source image (the left image) and an image (the right image) with the numerical value of the attribute (k = 5043) changed for the source image (the left image) are generated. Then, the process proceeds to step S206.

[0060] In step S206, using the pair of the source image (the original image) and the image generated in step S205, the semantic concept of the attribute is specified by CLIP. For example, as shown in FIG. 15, using the pair of the source image and the image with the numerical value of the attribute (k = 4989) changed, the semantic concept of the attribute (k = 4989) is specified as "aging around the mouth". The attributes with the specified semantic concepts are labeled in each image data. Note that, as for the specification of the semantic concept of the attribute, for example, two methods can be considered. The first method is a method of specifying the semantic concept of the attribute by judging with human eyes. Most of the latent space of StyleGAN has meaningless dimensions, and it is considered that there are only a few dimensions where attributes can be manipulated and there are also duplications. Therefore, it is considered that it does not take much man-hours to judge with human eyes and perform labeling. The second method is a method of specifying the semantic concept of the attribute using CLIP2StyleGAN. According to this method, it is possible to automatically specify the semantic concept of the attribute. Then, the process proceeds to step S207.

[0061] In step S207, for undesirable attributes that have a great impact on the task (for example, the male-female classification task), the number of image data is adjusted by generating images with the generator of StyleGAN2 to improve the bias.

[0062] For example, when the task is the male-female classification task, it is not applicable to classify males and females based on the presence or absence of "glasses" as an attribute. In this case, image data is generated and adjusted so that the number of images labeled with the attribute "glasses" is equal between males and females. FIG. 16 shows an example of the distribution after the adjustment of the image data.

[0063] In the above-described process, for example, the process performed in step S202 corresponds to the process by the attribute extraction unit 2, the processes performed in steps S205 and S206 correspond to the processes by the labeling unit 3 and the bias detection unit 4, and the process performed in step S207 corresponds to the process by the data set adjustment unit 5.

[0064] <Fourth Embodiment> Next, the fourth embodiment will be described. In the description of the fourth embodiment, the same or equivalent configurations in the above description are denoted by the same reference numerals, and redundant descriptions are omitted as appropriate. Also, unless otherwise specified, the matters described in the first to third embodiments can be applied to the fourth embodiment.

[0065] FIG. 17 is a block diagram showing a configuration example of the information processing apparatus (information processing apparatus 1A) according to the third embodiment. The information processing apparatus 1A is structurally different from the information processing apparatus 1 in that it has a learning unit 7.

[0066] The learning unit 7 performs learning using a data set with improved bias by the data set adjustment unit 5. An AI model corresponding to a predetermined task is generated by such learning. Since the bias of the data set used for learning is improved, it is possible to suppress inconveniences such as the generated AI model misidentifying a specific race as an animal or giving a negative evaluation to a specific gender.

[0067] Note that the learning unit 7 does not necessarily have to be included in the information processing apparatus 1A, and it may be included in a user terminal capable of communicating with the information processing apparatus 1A.

[0068] <Fifth Embodiment> Next, the fifth embodiment will be described. In the description of the fifth embodiment, the same or equivalent configurations in the above description are denoted by the same reference numerals, and redundant descriptions are omitted as appropriate. Also, unless otherwise specified, the matters described in the first to fourth embodiments can be applied to the fifth embodiment.

[0069] In the above-described first embodiment, for all attributes with bias, the dataset adjustment unit 5 was configured to improve the bias (see FIG. 8). However, instead of all attributes with bias, the bias may be improved for some attributes with bias. Hereinafter, an example of bias improvement according to this embodiment will be described.

[0070] (First improvement example) The first improvement example is an example of improving the bias when there is a bias of a certain level or more for a certain attribute. For example, when the degree of imbalance detected by the bias detection unit 4 is a certain level or more, the dataset adjustment unit 5 determines that there is a bias of a certain level or more, and the dataset adjustment unit 5 performs a process of improving the bias. When the degree of imbalance is below a predetermined threshold, the bias may not be improved on the assumption that the bias has little impact on the generation of the AI model. Thereby, the processing efficiency can be improved.

[0071] (Second improvement example) The second improvement example is an example in which, as in the second embodiment, when there is a bias in the attribute specified by the user, the dataset adjustment unit 5 performs a process of improving at least the bias of the attribute.

[0072] (Third improvement example) The third improvement example is an example in which the user specifies the attribute to improve the bias, and the dataset adjustment unit 5 performs a process of improving the bias of the specified attribute. As described in the first embodiment, the labeling result by the labeling unit 3 and the detection result by the bias detection unit 4 are presented to the user by display or the like. The user specifies the attribute for which the bias is to be improved based on the presented content.

[0073] (Fourth improvement example) This example is an example of changing the attributes for which bias should be improved according to the task content of the AI model. As described above, in order to suppress misrecognition and the like of the AI model, basically, it is preferable that the bias is improved for all attributes. However, depending on the task content of the AI model, there may be cases where it is preferable not to improve the bias for a certain attribute.

[0074] For example, consider a case where the task content of the AI model is "human recognition in a dark place" that can be applied to a security camera or a camera that captures an escalator in a building, and an example where the attribute "bright background" is extracted or user-defined. And assume that there is a bias in the attribute "bright background".

[0075] In the case of the above example, when performing the same processing as the processing described in the first embodiment, processing is performed so that the number of pieces of image data to which the attribute "bright background" is given and the number of pieces of image data to which the attribute "bright background" is not given become equal. However, when the task content of the AI model is "human recognition in a dark place", it is more likely that the accuracy of the generated AI model will be improved by learning with a dataset in which the number of pieces of image data to which the attribute "bright background" is not given is large. In other words, learning with a biased dataset is more likely to improve the accuracy of the generated AI model. Therefore, for example, when the number of pieces of image data to which the attribute "bright background" is given is less than the number of pieces of image data to which it is not given, that is, the number of pieces of image data with a dark background, the dataset adjustment unit 5 does not perform processing to improve the bias. If, on the other hand, the number of pieces of image data to which the attribute "bright background" is given is more than the number of pieces of image data to which it is not given, that is, the number of pieces of image data with a dark background, the dataset adjustment unit 5 may expand the image data so that the number of pieces of image data to which the attribute "bright background" is not given becomes larger, and create a bias. For example, when there is a pre-existing human recognition dataset and the number of bright backgrounds in that dataset is large and the number of dark backgrounds is small, it is considered useful because there is no need to build a dataset from scratch for dark place recognition.

[0076] In addition, when the task content of the AI model is, for example, always exposed to external light or in the case of a person recognition model at an entrance where illumination light is irradiated, the accuracy of the AI model is improved by learning with a dataset in which the number of image data with the attribute "bright background" is large. Therefore, when the number of image data with the attribute "bright background" is larger than the number of image data without the attribute, that is, the number of image data with a dark background, the dataset adjustment unit 5 does not perform a process to improve the bias. If the number of image data with the attribute "bright background" is smaller than the number of image data without the attribute, that is, the number of image data with a dark background, the dataset adjustment unit 5 may expand the image data so that the number of image data with the attribute "bright background" becomes larger and create a bias.

[0077] Regarding how to adjust the bias of which attribute according to the task content of the AI model, the user may define it, or a predetermined discrimination unit may automatically discriminate according to the task content.

[0078] In addition, in any of the above improvement examples, it is preferable to improve the bias of ethical attributes. An ethical attribute means an attribute for which bias should be eliminated from the viewpoint of fairness and is also referred to as a sensitive attribute. Examples of ethical attributes include gender, race, age, disability, skin color, nationality, religion or creed, medical history, and the like. However, even these attributes may not be ethical attributes depending on the task content of the AI model.

Embodiment

[0079] Next, an embodiment of the present technology will be described. However, the present technology is not limited to the content of the following embodiment.

[0080] [Configuration of Information Processing System] (1) Overall Configuration of Information Processing System FIG. 18 shows an example of the schematic configuration of an information processing system 1000 that constructs an imaging device system according to an embodiment. That is, the present technology can be applied to an example of a system in the information processing system 1000.

[0081] As shown in FIG. 18, the information processing system 1000 according to the embodiment includes at least a cloud server 100, a user terminal 200, cameras 300 as a plurality of imaging devices, a fog server 400, and a management server 500. Here, at least the cloud server 100, the user terminal 200, the fog server 400, and the management server 500 are configured to be communicable with each other via a network 600 such as the Internet.

[0082] The cloud server 100, the user terminal 200, the fog server 400, and the management server 500 are all configured as information processing devices provided with a microcomputer having a CPU, a ROM (Read Only Memory), and a RAM (Random Access Memory).

[0083] The camera 300 as an imaging device includes an image sensor such as a CCD (Charge Coupled Device) type image sensor or a CMOS (Complementary Metal Oxide Semiconductor) type image sensor. These image sensors construct an imaging unit (see reference numeral 410 shown in FIG. 24). The camera 300 can capture a subject and obtain image information (captured image information) as digital data. The camera 300 also has a function of performing processing using AI on the captured image. Examples of this processing include image recognition processing and image detection processing. Here, in the following description, various processes on images such as image recognition processing and image detection processing are simply described as "image processing". For example, various processes on images using AI or an AI model are described as "AI image processing".

[0084] The plurality of cameras 300 are configured to be capable of data communication with the fog server 400. For example, various data such as processing result information indicating the results of image processing using AI and the like are transmitted from the cameras 300 to the fog server 400. Also, the cameras 300 receive various data from the fog server 400.

[0085] Here, in the information processing system 1000, for example, the following applications are assumed. First, based on the processing result information obtained by image processing of the plurality of cameras 300, the fog server 400 or the cloud server 100 generates analysis information of the subject. This generated analysis information can be browsed by the user via the user terminal 200.

[0086] In this case, the plurality of cameras 300 are used as surveillance cameras. For example, they can be used as surveillance cameras for monitoring the inside of a store, office, house, etc., or as surveillance cameras for monitoring the outside of a parking lot, street, etc. The surveillance cameras for monitoring the outside include traffic surveillance cameras for monitoring traffic conditions and the like. Also, they can be used as surveillance cameras for monitoring manufacturing lines such as FA (Factory Automation) and IA (Industrial Automation). Furthermore, they can also be used as surveillance cameras for monitoring the inside or outside of a vehicle such as a car or a train.

[0087] Also, in the case of the application of surveillance cameras in a store, the plurality of cameras 300 can be respectively arranged at predetermined positions inside the store. By using the plurality of cameras 300, the user can confirm the customer layer (gender, age group, etc.) of the customers visiting the store and the behavior (flow line) inside the store. In this case, information on the customer layer of the customers visiting the store, information on the flow line inside the store, information on the congestion state at the checkout register (for example, the waiting time at the checkout register), etc. can be generated as analysis information.

[0088] In the case of traffic monitoring cameras, a plurality of cameras 300 can be arranged at each position near the road. By using a plurality of cameras 300, users can recognize information such as the number (license plate number) of passing vehicles, the color of the vehicles, and the vehicle types. In this case, information such as numbers, vehicle colors, and vehicle types can be generated.

[0089] In the case of surveillance cameras installed in parking lots, the camera 300 can be arranged at a position where parked vehicles can be monitored. By using the camera 300, for example, it is possible to monitor whether there are any suspicious persons performing suspicious actions around the vehicle. Furthermore, when there is a suspicious person, a notification device can be provided to notify the presence of the suspicious person and their attributes (gender or age group).

[0090] In the case of surveillance cameras for monitoring empty spaces in the city or parking lots, the location of spaces where users can park their cars can be notified to the users.

[0091] The fog server 400 is arranged inside the store to be monitored together with a plurality of cameras 300, for example, in the above-described store monitoring application. That is, the fog server 400 is arranged for each monitoring target. When the fog server 400 is arranged for each monitoring target such as a store in this way, it is not necessary for the cloud server 100 to directly receive the transmission data from the plurality of cameras 300 in the monitoring target. As a result, the processing load on the cloud server 100 can be reduced.

[0092] Note that when there are a plurality of stores to be monitored and all the plurality of stores belong to the same series, it is preferable that the fog server 400 is arranged for each plurality of stores rather than for each single store. That is, it is not limited to arranging one fog server 400 for each monitoring target, and one fog server 400 can be arranged for each plurality of monitoring targets.

[0093] Also, when the cloud server 100 or a plurality of cameras 300 have processing capabilities or the like, the functions of the fog server 400 can be provided on the cloud server 100 or a plurality of cameras 300 side. As a result, in the information processing system 1000, the fog server 400 is omitted, and a plurality of cameras 300 can be directly connected to the network 600, and the transmission data from the plurality of cameras 300 can be directly received by the cloud server 100.

[0094] The above various devices are roughly classified into an information processing device on the cloud side and an information processing device on the edge side. The information processing devices on the cloud side include the cloud server 100 and the management server 500. The information processing devices on the cloud side are a group of devices that provide services assumed to be used by a plurality of users. In addition, the information processing devices on the edge side include the camera 300 and the fog server 400. The information processing devices on the edge side are a group of devices that are prepared by users who use cloud services and are arranged in the environment.

[0095] However, both the information processing device on the cloud side and the information processing device on the edge side may be arranged in an environment prepared by the same user. Note that the fog server 400 may be an on-premises server.

[0096] (2) Registration of AI Model and AI Application As described above, in the information processing system 1000, AI image processing is performed in the camera 300, which is an information processing device on the edge side. Then, in the cloud server 100, which is an information processing device on the cloud side, advanced application functions are realized using the result information of the AI image processing on the edge side. The result information of the AI image processing is, for example, the result information of image recognition processing using AI.

[0097] Here, various methods for registering application functions in the cloud server 100, which is an information processing device on the cloud side, or the cloud server 100 including the fog server 400 are as follows. FIG. 19 shows a configuration example of each device that performs registration or download of an AI model or an AI application through a marketplace function provided in an information processing device on the cloud side in the information processing system 1000. In FIG. 19, the illustration of the fog server 400 is omitted, but the fog server 400 may be provided. In this case, the fog server 400 may bear a part of the functions on the edge side.

[0098] The above-described cloud server 100 and management server 500 are information processing devices that constitute the cloud-side environment. Also, the camera 300 is an information processing device that constitutes the edge-side environment. Note that the camera 300 can be constructed as a device including a control unit that performs overall control of the camera 300. Also, the camera 300 can be constructed as a device including an image sensor IS (see FIG. 22) having an arithmetic processing unit that performs various processes including AI image processing on the captured image. That is, an image sensor IS, which is another edge-side information processing device, may be mounted inside the camera 300, which is an edge-side information processing device.

[0099] Also, the user terminal 200 used by a user who uses various services provided by the information processing device on the cloud side includes an application developer terminal 200A, an application user terminal 200B, an AI model developer terminal 200C, and the like. In the application developer terminal 200A, a user who develops an application used for AI image processing uses it. In the application user terminal 200B, a user who uses the application uses it. In the AI model developer terminal 200C, a user who develops an AI model used for AI image processing uses it. Note that the application developer terminal 200A may also be used by a user who develops an application that does not use AI image processing.

[0100] A learning dataset for performing learning by AI is prepared in the information processing device on the cloud side. A user who develops an AI model uses the AI model developer terminal 200C to communicate with the information processing device on the cloud side and downloads these learning datasets (the datasets described in the above-described embodiments). At this time, the learning dataset may be provided for a fee. For example, the AI model developer may register personal information in a marketplace (electronic market) prepared as a cloud-side function, and purchase the learning dataset in a state where the purchase of various functions and materials registered in the marketplace is enabled.

[0101] After developing the AI model using the learning dataset, the AI model developer registers the developed AI model in the marketplace using the AI model developer terminal 200C. Thereby, an incentive may be paid to the AI model developer when the AI model is downloaded.

[0102] In addition, a user who develops an application uses the application developer terminal 200A to download an AI model from the marketplace and develops an application (hereinafter simply referred to as an "AI application") that uses this AI model. At this time, as described above, an incentive may be paid to the AI model developer.

[0103] A user who develops an application registers the developed AI application in the marketplace using the application developer terminal 200A. Thereby, an incentive may be paid to the user who developed the AI application when the AI application is downloaded.

[0104] Users who utilize AI applications perform operations to deploy (deploy) AI applications and AI models from a marketplace to a camera 300 as an edge-side information processing device managed by themselves using an application user terminal 200B. At this time, incentives may be paid to AI model developers. As a result, in the camera 300, it becomes possible to perform AI image processing using AI applications and AI models. Specifically, not only can an image be captured, but it also becomes possible to detect arriving customers and vehicles through AI image processing.

[0105] Here, the deployment of AI applications and AI models refers to the installation of AI applications and AI models on a target (device) as an execution entity so that the target can utilize the AI applications and AI models. Furthermore, deployment includes installation on a target as an execution entity so that at least a part of the program as an AI application can be executed.

[0106] Also, in the camera 300, it may be possible to extract attribute information of arriving customers from the captured image captured by the camera 300 through AI image processing. These attribute information are transmitted from the camera 300 to an information processing device on the cloud side via the network 600.

[0107] Cloud-side information processing devices have cloud applications deployed. Each user can utilize cloud applications via the network 600. And among the cloud applications, there are applications such as those for analyzing the movement routes of arriving customers using the attribute information and captured images of arriving customers. Such cloud applications are uploaded by application development users and the like.

[0108] Users who use the application utilize a cloud application for flow analysis using the application user terminal 200B. As a result, it is possible to perform flow analysis of customers visiting their own stores and view the analysis results. Viewing the analysis results refers to, for example, viewing the flow of customers visiting the store presented graphically on the store map. In addition, the results of the flow analysis may be displayed in the form of a heat map, presenting the density of customers visiting the store, etc., and the analysis results may be viewed. In addition, the information may be sorted by the attribute information of the customers visiting the store.

[0109] In the cloud-side marketplace, AI models optimized for each user may be registered respectively. For example, the captured images captured by the cameras 300 installed in the stores managed by a certain user are appropriately uploaded to the information processing device on the cloud side and stored.

[0110] In the information processing device on the cloud side, every time a certain number of uploaded captured images are accumulated, a process of re-training the AI model, updating the AI model, and re-registering it in the marketplace is executed. Note that the re-training process of the AI model may be made selectable by the user as an option on the marketplace, for example.

[0111] For example, an AI model re-trained using dark images from the cameras 300 installed in the store is deployed to the cameras 300. As a result, it is possible to improve the recognition rate of image processing for the captured images taken in dark places. In addition, an AI model re-trained using bright images from the cameras 300 installed outside the store is deployed to the cameras 300. As a result, it is possible to improve the recognition rate of image processing for the images taken in bright places. That is, for the user who uses the application, by redeploying the updated AI model to the camera 300 again, it becomes possible to always obtain the optimized processing result information. Note that the retraining process of the AI model will be described again.

[0112] Also, when the information uploaded from the camera 300 to the information processing device on the cloud side (for example, information such as a captured image) contains personal information, data with the information related to privacy deleted may be uploaded from the perspective of privacy protection. The data with the information related to privacy deleted may be made available to the user who develops the AI model or the user who develops the application.

[0113] FIG. 20 and FIG. 21 are flowcharts showing an example of the above-described processing flow. Note that the information processing device on the cloud side corresponds to the cloud server 100, the management server 500, etc. shown in FIG. 18.

[0114] The AI model developer browses the list of data sets registered in the marketplace using the AI model developer terminal 200C having a display unit made of an LCD or an organic EL panel or the like. When the AI model developer selects a desired data set, in response to this selection, the AI model developer terminal 200C transmits a download request for the selected data set to the information processing device on the cloud side (step S21).

[0115] The information processing device on the cloud side accepts the request (step S1). The information processing device on the cloud side performs a process of transmitting the requested data set to the AI model developer terminal 200C (step S2).

[0116] The AI model developer terminal 200C performs a process of receiving the data set (step S22). As a result, the AI model developer can develop an AI model using the data set.

[0117] After the AI model developer finishes developing the AI model, the AI model developer performs an operation to register the developed AI model in the marketplace. This operation is, for example, an operation of specifying the name of the AI model, the address where the AI model is located, and the like. As a result, the AI model developer terminal 200C sends a registration request for the AI model to the information processing device on the cloud side (step S23).

[0118] On the cloud side information processing device, the registration request is received (step S3). The cloud side information processing device performs the registration process of the AI model (step S4). On the cloud side information processing device, for example, the AI model can be displayed on the marketplace. As a result, users other than the AI model developer can download the AI model from the marketplace.

[0119] For example, the developer of an application who wants to develop an AI application browses the list of AI models registered in the marketplace using the application developer terminal 200A. The application developer terminal 200A sends a download request for the selected AI model to the information processing device on the cloud side according to the operation of the application developer (step S31). The operation here is, for example, an operation of selecting one of the AI models on the marketplace.

[0120] The cloud side information processing device receives the request (step S5) and sends the AI model to the application developer terminal 200A (step S6).

[0121] The application developer terminal 200A receives the AI model (step S32). As a result, the application developer can develop an AI application using an AI model developed by others.

[0122] After the developer of the application finishes developing the AI application, the developer performs operations to register the AI application in the marketplace. This operation is, for example, an operation of specifying the name of the AI application and the address where the AI model is located. As a result, the application developer terminal 200A transmits a registration request for the AI application to the information processing device on the cloud side (step S33).

[0123] On the cloud side information processing device, the registration request is received (step S7). The cloud side information processing device registers the AI application (step S8). On the cloud side information processing device, for example, the AI application can be displayed on the marketplace. As a result, users other than the application developer can select and download the AI application on the marketplace.

[0124] For example, as shown in FIG. 21, the application user terminal 200B makes a purpose selection (step S41) by the user who intends to use the AI application. In the purpose selection, the selected purpose is transmitted to the information processing device on the cloud side.

[0125] In response to this, the cloud side information processing device selects an AI application according to the purpose (step S9). Then, the cloud side information processing device performs preparatory processing (deployment preparatory processing) for deploying the AI application and the AI model to each device (step S10).

[0126] In the deployment preparatory processing, according to the information of the devices targeted for the deployment processing of the AI model and the AI application, for example, the information of the camera 300 and the fog server 400, and the performance required by the user, etc., the determination of the AI model is performed. Also, in the deployment preparation process, based on the performance information of each device and the user's requirement information, it is determined on which device each SW (Software) component that constitutes an AI application for realizing the functions desired by the user is to be executed.

[0127] Each SW component may be a container as described later or a microservice. Note that the SW component can also be realized using Web Assembly technology.

[0128] For an AI application that counts the number of customers visiting the store for each attribute such as gender and age, it includes an SW component that detects a person's face from a captured image using an AI model. Furthermore, in addition to this, it includes an SW component that extracts the attribute information of the person from the face detection result, an SW component that aggregates the results, an SW component that visualizes the aggregation result, and the like.

[0129] Some examples of the deployment preparation process will be described again.

[0130] In the information processing device on the cloud side, a process of deploying each SW component to each device is performed (step S11). In this process, the AI application and the AI model are transmitted to each device such as the camera 300.

[0131] In response to this, in the camera 300, a deployment process of the AI application and the AI model is performed (step S51). As a result, AI image processing can be performed on the captured image captured by the camera 300. Although not shown in FIG. 21, similarly in the fog server 400, a deployment process of the AI application and the AI model is performed as necessary.

[0132] However, when all processes are executed in the camera 300, the deployment process for the fog server 400 is not performed.

[0133] The camera 300 acquires an image by performing an imaging operation (step S52). Then, the camera 300 performs AI image processing on the acquired image to obtain, for example, an image recognition result (step S53).

[0134] Furthermore, the camera 300 performs a transmission process of the captured image and the result information of the AI image processing (step S54). For the transmission of the information in step S54, both the captured image and the result information of the AI image processing may be transmitted. Also, only the information of either one may be transmitted.

[0135] The information processing device on the cloud side that receives this information performs an analysis process (step S12). By this analysis process, for example, processes such as the flow line analysis of customers visiting the store and vehicle analysis for traffic monitoring are performed.

[0136] The information processing device on the cloud side performs a presentation process of the analysis result (step S13). This process is realized, for example, when the user uses the above-described cloud application.

[0137] The application user terminal 200B receives the presentation process of the analysis result and performs a process of displaying the analysis result on a monitor or the like (step S42).

[0138] When the processing up to this point is completed, the user who is the user of the AI application can obtain an analysis result corresponding to the purpose selected in step S41.

[0139] Note that the information processing device on the cloud side may update the AI model after step S13. By updating and deploying the AI model, an analysis result suitable for the user's usage environment can be obtained.

[0140] (3) System Function Outline In the embodiment, as a service using the information processing system 1000, a service is assumed in which a user as a customer can select the type of function regarding the AI image processing of a plurality of cameras 300. As the selection of the type of function, for example, an image recognition function, an image detection function, etc. may be selected, or a finer type may be selected so as to exhibit an image recognition function, an image detection function, etc. for a specific subject.

[0141] For example, as a business model, a service provider sells cameras 300 and fog servers 400 having an image recognition function by AI to users, and installs those cameras 300 and fog servers 400 at locations to be monitored. Then, the service provider deploys a service of providing the above-described analysis information to the user.

[0142] At this time, the uses required by the system for each customer, such as the use for store monitoring and the use for traffic monitoring, are different. Therefore, the AI image processing function of the camera 300 can be selectively set so as to obtain analysis information corresponding to the use required by the customer. In the embodiment, the management server 500 has a function of selectively setting the AI image processing function of the camera 300 as described above. Note that the cloud server 100 or the fog server 400 may have the function of the management server 500.

[0143] FIG. 22 shows an example of a connection mode between the cloud server 100 or the management server 500 which is an information processing device on the cloud side and the camera 300 which is an information processing device on the edge side.

[0144] As shown in FIG. 22, the information processing device on the cloud side has a relearning function, a device management function, and a marketplace function which are functions available via a hub (Hub) implemented.

[0145] The Hub performs highly reliable communication protected by security with the information processing device on the edge side. Thereby, various functions can be provided to the information processing device on the edge side.

[0146] The re-learning function is a function that performs re-learning and provides a newly optimized AI model. As a result, an appropriate AI model based on new learning materials is provided.

[0147] The device management function is a function for managing devices such as the camera 300 as an edge-side information processing device. For example, the device management function manages and monitors the AI model deployed on the camera 300, and provides functions such as problem detection and troubleshooting.

[0148] Also, the device management function is a function for managing the information of the camera 300 and the fog server 400. The information of the camera 300 and the fog server 400 includes information on the chip used as the arithmetic processing unit, information on the memory capacity and storage capacity, information on the usage rate of the CPU and memory, and the like. Furthermore, the information includes software information such as the operating system (OS) installed in each device. Furthermore, the device management function protects secure access by authenticated users.

[0149] The marketplace function provides functions such as registering the AI models developed by the developers of the above-mentioned AI models and the AI applications developed by the developers of applications, and deploying those developed products to the permitted edge-side information processing devices. In addition, the marketplace function also provides a function related to the payment of incentives according to the deployment of the developed products.

[0150] The camera 300 as an edge-side information processing device includes an edge runtime, an AI application and an AI model, and an image sensor IS.

[0151] The edge runtime functions as embedded software or the like for managing the applications deployed on the camera 300 and communicating with the cloud-side information processing device.

[0152] As described above, the AI model is one in which the AI model registered in the marketplace in the information processing device on the cloud side is deployed. As a result, the camera 300 can obtain result information of AI image processing according to the purpose using the captured image.

[0153] FIG. 23 shows an example of the functions provided by the information processing device on the cloud side. Note that the information processing device on the cloud side is a collective name for devices such as the cloud server 100 and the management server 500. As shown in FIG. 23, the information processing device on the cloud side includes a license authentication function F1, an account service function F2, a device monitoring function F3, a marketplace function F4, and a camera service function F5.

[0154] The license authentication function F1 is a function that performs processes related to various types of authentication. Specifically, in the license authentication function F1, processes related to device authentication of a plurality of cameras 300 and authentication of each of the AI model, software, and firmware used in the camera 300 are performed.

[0155] Here, the above software is software necessary for appropriately realizing AI image processing in the camera 300. In order for AI image processing based on the captured image to be appropriately performed and the result of the AI image processing to be transmitted to the fog server 400 or the cloud server 100 in an appropriate format, it is required to control the data input to the AI model or appropriately process the output data of the AI model. The above software is software including peripheral processes necessary for appropriately realizing AI image processing. Such software is software for realizing a desired function using the AI model and corresponds to the above-described AI application.

[0156] Note that the AI application is not limited to using only one AI model, and two or more AI models may be used. For example, an AI application may be formed that has a process flow in which information on recognition results obtained by an AI model that performs AI image processing using a captured image as input data is input to another AI model to execute a second AI image processing. Here, the information on the recognition results is image data or the like, and is hereinafter referred to as "recognition result information".

[0157] In the license authorization function F1, for the authentication of the camera 300, when the camera 300 is connected via the network 600, a process of issuing a device ID (Identification) for each camera 300 is performed. Also, for the authentication of the AI model and software, a process of issuing unique IDs is performed for the AI model and AI application registered and applied from the AI model developer terminal 200C and the software developer terminal 700. The unique ID is an AI model ID, a software ID, etc.

[0158] In addition, in the license authorization function F1, various keys, certificates, etc. for enabling secure communication are issued to the manufacturer of the camera 300 (especially the manufacturer of the image sensor IS described later), the AI model developer, and the software developer between each of the camera 300, the AI model developer terminal 200C, the software developer terminal 700, and the cloud server 100. In addition, in the license authorization function F1, processes for updating and stopping the proof effectiveness are performed. Furthermore, in the license authorization function F1, when user registration is performed by the account service function F2 described below, a process of associating the camera 300 (the above device ID) purchased by the user with the user ID is performed. Here, user registration is the registration of account information accompanied by the issuance of a user ID.

[0159] The account service function F2 is a function for generating and managing user account information. In the account service function F2, it accepts the input of user information, and account information is generated based on the input user information. Here, at least account information including a user ID and password information is generated. Also, in the account service function F2, a registration process (registration of account information) is performed for AI model developers and AI application developers (hereinafter sometimes abbreviated as "software developers").

[0160] The device monitoring function F3 is a function for performing processing to monitor the usage status of the camera 300. For example, monitoring is performed on various elements related to the usage status of the camera 300, such as the usage location of the camera 300, the output frequency of the output data of AI image processing, and the free capacity of the CPU and memory used for AI image processing, including information such as the usage rate of the CPU and memory described above.

[0161] The marketplace function F4 is a function for selling AI models and AI applications. For example, a user can purchase an AI application and an AI model used by the AI application via a sales web site (sales site) provided by the marketplace function F4. Also, a software developer can purchase an AI model for creating an AI application via the above-mentioned sales site.

[0162] The camera service function F5 is a function for providing services related to the use of the camera 300 to users. As one of this camera service function F5, for example, a function related to the generation of the above-mentioned analysis information can be cited. That is, one function of the camera service function F5 is a function for generating analysis information of a subject based on the processing result information of image processing in the camera 300 and performing processing for allowing the user to view the generated analysis information via the user terminal 200.

[0163] In addition, the camera service function F5 includes an imaging setting exploration function. Specifically, this imaging setting exploration function is a function that acquires recognition result information of AI image processing from the camera 300 and explores the imaging setting information of the camera 300 using AI based on the acquired recognition result information. Here, the imaging setting information is setting information related to the imaging operation for obtaining an imaging image. Specific setting information includes optical setting information such as focus and aperture, setting information related to the readout operation of the imaging image signal such as frame rate, exposure time, and gain, and further includes at least setting information related to image signal processing for the readout imaging image signal such as gamma correction processing, noise reduction processing, and super-resolution processing.

[0164] In addition, the camera service function F5 includes an AI model exploration function. This AI model exploration function is a function that acquires recognition result information of AI image processing from the camera 300 and uses AI to explore the optimal AI model used for AI image processing in the camera 300 based on the acquired recognition result information. The exploration of the AI model here means a process of optimizing various processing parameters such as weight coefficients and setting information related to the neural network structure (for example, including information on kernel size) when AI image processing is realized by a CNN (Convolutional Neural Network) or the like that includes a convolutional operation.

[0165] In addition, the camera service function F5 has a processing sharing determination function. In the processing sharing determination function, when deploying an AI application to an edge-side information processing device, as the above-described deployment preparation process, a process of determining the device for the deployment destination in units of SW components is performed. Note that some SW components may be determined to be executed on a cloud-side device. In this case, it may be considered that they have already been deployed on the cloud-side device, and the deployment process may not be performed.

[0166] For example, in the case of an AI application having an SW component for detecting a person's face, an SW component for extracting the person's attribute information, an SW component for aggregating the extraction results, and an SW component for visualizing the aggregation results as in the above example, the camera service function F5 makes the following determinations. The SW component for detecting a person's face determines the image sensor IS of the camera 300 as the deployment destination device. The SW component for extracting the person's attribute information determines the camera 300 as the deployment destination device. The SW component for aggregating the extraction results determines the fog server 400 as the deployment destination device. Then, the SW component for visualizing the aggregation results determines to execute it on the cloud server 100 without newly deploying it to a device.

[0167] In this way, the camera service function F5 determines the processing load sharing in each device by determining the deployment destination of each SW component. Note that the processing load sharing is determined in consideration of the specifications and performance of each device and the user's requirements.

[0168] By providing the imaging setting search function and the AI model search function as described above, it is possible to perform an imaging setting that improves the result of AI image processing and perform AI image processing using an appropriate AI model according to the actual usage environment. In addition to this, by providing a processing load sharing determination function, AI image processing and its analysis processing can be executed on an appropriate device.

[0169] Note that the camera service function F5 has an application setting function prior to deploying each SW component. The application setting function is a function for setting an appropriate AI application according to the user's purpose.

[0170] For example, in response to the user selecting applications such as store monitoring or traffic monitoring, an appropriate AI application is selected. As a result, the SW components that make up the AI application are automatically determined. Note that, as will be described later, there may be multiple combinations of SW components for realizing the user's purpose using the AI application. In this case, one combination of SW components is selected according to the information of the edge-side information processing device and the user's request.

[0171] For example, when the user aims at store monitoring, the combination of SW components may differ depending on whether the user's request emphasizes privacy or speed.

[0172] In the application setting function, in the user terminal 200 (here, corresponding to the application user terminal 200B shown in FIG. 19), processes such as receiving an operation for the user to select a purpose (application) and selecting an appropriate AI application according to the selected application are performed.

[0173] Here, in the above description, a configuration for realizing the license authentication function F1, the account service function F2, the device monitoring function F3, the marketplace function F4, and the camera service function F5 in the cloud server 100 alone is exemplified. It is possible to adopt a configuration in which a plurality of information processing devices share and realize these functions. For example, each of the above-described plurality of functions may be borne by one information processing device. Also, a configuration in which a plurality of information processing devices share a single function among the above-described functions may be adopted. For example, a configuration in which a single function is shared by the cloud server 100 and the management server 500 can be adopted.

[0174] The AI model developer terminal 200C shown in FIG. 19 is an information processing device used by the developer of the AI model. Also, the software developer terminal 700 is an information processing device used by the developer of the AI application.

[0175] (4) Configuration of the imaging device FIG. 24 shows an example of the internal configuration of the camera 300. As shown in FIG. 24, the camera 300 includes an imaging optical system 310, an optical system driving unit 320, an image sensor IS, a control unit 330, a memory unit 340, and a communication unit 350. Each of the image sensor IS, the control unit 330, the memory unit 340, and the communication unit 350 is connected via a bus 360, and the bus 360 enables data communication between them.

[0176] The imaging optical system 310 includes lenses such as a cover lens, a zoom lens, and a focus lens, and a diaphragm (iris) mechanism. The imaging optical system 310 guides light (incident light) from a subject, and the light is focused on the light receiving surface of the image sensor IS.

[0177] The optical system driving unit 320 comprehensively shows the driving units of the zoom lens, the focus lens, and the diaphragm mechanism included in the imaging optical system 310. Specifically, the optical system driving unit 320 has actuators for driving each of these zoom lens, focus lens, and diaphragm mechanism, and a driving circuit for the actuators.

[0178] The control unit 330 is configured to include, for example, a microcomputer having a CPU, a ROM, and a RAM, and performs overall control of the camera 300 by executing various processes according to a program stored in the ROM or a program loaded into the RAM by the CPU.

[0179] In addition, the control unit 330 issues driving instructions for the zoom lens, the focus lens, the diaphragm mechanism, etc. to the optical system driving unit 320. The optical system driving unit 320 performs driving such as movement of the focus lens or the zoom lens, and opening and closing of the diaphragm blades of the diaphragm mechanism in response to these driving instructions.

[0180] In addition, the control unit 330 controls writing and reading operations of various data to and from the memory unit 340. The memory unit 340 includes, for example, a non-volatile storage device such as a hard disk drive (HDD) or a flash memory device. The memory unit 340 is used as a storage destination (recording destination) for the image data output from the image sensor IS.

[0181] Furthermore, the control unit 330 performs various data communications with an external device via the communication unit 350. In the communication unit 350 in the embodiment, data communication is enabled at least between the fog server 400 (or the cloud server 100) shown in FIG. 18.

[0182] The image sensor IS is configured as an image sensor such as a CCD type or a CMOS type, for example.

[0183] The image sensor IS includes an imaging unit 410, an image signal processing unit 420, an in-sensor control unit 430, an AI image processing unit 440, a memory unit 450, and a communication I / F 460. These are connected via a bus 470 and are capable of data communication with each other.

[0184] The imaging unit 410 includes a pixel array unit in which a plurality of pixels are two-dimensionally arranged and a readout circuit. The pixel includes a photoelectric conversion element such as a photodiode. The readout circuit reads out the electrical signal obtained by photoelectric conversion from each pixel of the pixel array unit. In the imaging unit 410, the obtained electrical signal is output as an imaging image signal.

[0185] The readout circuit executes, for example, CDS (Correlated Double Sampling) processing, AGC (Automatic Gain Control) processing, etc. on the electrical signal obtained by photoelectric conversion, and further performs A / D (Analog / Digital) conversion processing.

[0186] The image signal processing unit 420 performs preprocessing, synchronization processing, YC generation processing, resolution conversion processing, codec processing, etc. on the imaging image signal as digital data after A / D conversion processing.

[0187] In the preprocessing, operations such as clamp processing for clamping the black levels of R, G, and B in the captured image signal to predetermined levels and correction processing between the color channels of R, G, and B are performed. In the synchronization processing, color separation processing is performed so that the image data for each pixel has all the color components of R, G, and B. For example, in the case of an image sensor using a Bayer array color filter, demosaicing processing is performed as the color separation processing. In the YC generation processing, a luminance (Y) signal and a color (C) signal are generated (separated) from the R, G, and B image data. In the resolution conversion processing, resolution conversion processing is executed on the image data subjected to various signal processes.

[0188] In the codec processing, for the image data subjected to the above various processes, for example, encoding processing for recording or communication is performed, and file generation is performed. In the codec processing, as the file format of the moving image, for example, file generation in formats such as MPEG-2 (MPEG: Moving Picture Experts Group), H.264, etc. is possible. Also, as the file of the still image, file generation in formats such as JPEG (Joint Photographic Experts Group), TIFF (Tagged Image File Format), GIF (Graphics Interchange Format), etc. is possible.

[0189] The in-sensor control unit 430 gives instructions to the imaging unit 410 and performs execution control of the imaging operation. Similarly, the in-sensor control unit 430 also performs execution control of the processing on the image signal processing unit 420.

[0190] The AI image processing unit 440 performs image recognition processing as AI image processing on the captured image. The image recognition function using AI can be realized by using a programmable arithmetic processing device such as a CPU, FPGA (Field Programmable Gate Array), DSP (Digital Signal Processor), etc.

[0191] The image recognition functions that can be realized in the AI image processing unit 440 can be switched by changing the algorithms of AI image processing. In other words, by switching the AI models used in AI image processing, the functional types of AI image processing can be switched. The functional types of AI image processing are as follows, for example. · Class identification · Semantic segmentation · Person detection · Vehicle detection · Target tracking · Optical character recognition (OCR)

[0192] Among the above functional types, class identification is a function for identifying the class of a target. This "class" is information representing the category of an object. For example, classes are distinguished such as "person", "automobile", "airplane", "ship", "truck", "bird", "cat", "dog", "deer", "frog", "horse", etc. Target tracking is a function for tracking a subject targeted. In other words, target tracking is a function for obtaining historical information on the position of a subject.

[0193] The memory unit 450 is used as a storage destination for various data such as captured image data obtained by the image signal processing unit 420. Also, in the embodiment, the memory unit 450 is also used for temporarily storing data used by the AI image processing unit 440 in the process of AI image processing.

[0194] Also, information on AI applications and AI models used in the AI image processing unit 440 is stored in the memory unit 450. Note that the information of the AI application or AI model may be deployed in the memory unit 450 as a container or the like using the container technology described later. Further, the information of the AI application or AI model may be deployed using the microservice technology. By deploying the AI model used for AI image processing in the memory unit 450, the function type of the AI image processing can be changed, or the AI model can be changed to an AI model with improved performance by retraining.

[0195] Note that the above-described embodiments are described based on examples of the AI model and AI application used for image recognition. In the present technology, the present invention is not limited to this, and a program or the like executed using the AI technology may be targeted. Further, when the capacity of the memory unit 450 is small, the information of the AI application or AI model is deployed as a container or the like in the memory outside the image sensor IS, such as the memory unit 340, using the container technology, and then only the AI model is stored in the memory unit 450 in the image sensor IS via the communication I / F 460 described below.

[0196] The communication I / F 460 is an interface that communicates with the control unit 330, the memory unit 340, etc. outside the image sensor IS. The communication I / F 460 performs communication for acquiring from the outside a program executed by the image signal processing unit 420, an AI application used by the AI image processing unit 440, an AI model, etc. These information are stored in the memory unit 450 provided in the image sensor IS. Thereby, the AI model or the like is stored in a part of the memory unit 450 provided in the image sensor IS and can be used by the AI image processing unit 440.

[0197] The AI image processing unit 440 performs a predetermined image recognition process using the AI application or AI model thus obtained to recognize a subject according to the purpose. The recognition result information of the AI image processing is output to the outside of the image sensor IS via the communication I / F 460. That is, from the communication I / F 460 of the image sensor IS, not only the image data output from the image signal processing unit 420 but also the recognition result information of the AI image processing is output. Note that from the communication I / F 460 of the image sensor IS, only either one of the image data and the recognition result information can be output.

[0198] For example, when using the above-described retraining function of the AI model, the captured image data used for the retraining function is uploaded from the image sensor IS to the information processing device on the cloud side via the communication I / F 460 and the communication unit 350.

[0199] Also, when performing inference using the AI model, the recognition result information of the AI image processing is output from the image sensor IS to another information processing device outside the camera 300 via the communication I / F 460 and the communication unit 350.

[0200] The image sensor IS is configured with various structures. The embodiment will describe the configuration of the image sensor IS having a structure laminated in two layers. FIG. 25 shows an example of the configuration of the image sensor IS as an imaging device. As shown in FIG. 25, the image sensor IS is formed by laminating dies D1 and D2 as two semiconductor chips and a semiconductor device configured as one semiconductor chip.

[0201] Die D1 has the function as the imaging unit 410 shown in FIG. 24. Die D2 has the functions of the image signal processing unit 420, the in-sensor control unit 430, the AI image processing unit 440, the memory unit 450, and the communication I / F 460, respectively.

[0202] Each of dies D1 and D2 has terminals on the opposing surface. The terminals are formed using, for example, copper (Cu) as a wiring material. That is, each of dies D1 and D2 is electrically connected by a Cu-Cu junction joining the terminals.

[0203] An example of using container technology to describe a method of deploying an AI model, an AI application, etc. to the camera 300 will be described. FIG. 26 shows an example of the software configuration of the imaging device.

[0204] As shown in FIG. 26, on the various hardware 501 such as the CPU, GPU (Graphics Processing Unit), ROM, and RAM as the control unit 330 shown in FIG. 24, an operation system 510 is installed in the camera 300.

[0205] The operation system 510 is basic software that performs overall control of the camera 300 in order to realize various functions in the camera 300. General-purpose middleware 520 is installed on the operation system 510.

[0206] The general-purpose middleware 520 is software for realizing basic operations such as a communication function using the communication unit 350 as the hardware 501 and a display function using a display unit (monitor, etc.) as the hardware 501.

[0207] Not only the general-purpose middleware 520 but also an orchestration tool 530 and a container engine 540 are installed on the operation system 510.

[0208] The orchestration tool 530 and the container engine 540 deploy and execute the container 550 by constructing a cluster 560 as an operating environment for the container 550. Note that the edge runtime shown in FIG. 22 corresponds to the orchestration tool 530 and the container engine 540 shown in FIG. 26.

[0209] The orchestration tool 530 has a function to appropriately allocate the resources of the above-described hardware 501 and the operation system 510 to the container engine 540. By the orchestration tool 530, each container 550 is grouped into a predetermined unit (a pod described later), and each pod is deployed to a worker node (described later) that is logically different areas.

[0210] The container engine 540 is one of the middleware installed in the operation system 510 and is an engine that operates the container 550. Specifically, the container engine 540 has a function to allocate the resources (memory, computing power, etc.) of the hardware 501 and the operation system 510 to the container 550 based on a configuration file or the like provided in the middleware in the container 550.

[0211] Also, in the embodiment, the allocated resources include not only the resources such as the control unit 330 provided in the camera 300 but also the resources such as the in-sensor control unit 430, the memory unit 450, and the communication I / F 460 provided in the image sensor IS.

[0212] The container 550 is configured to include an application for realizing a predetermined function and middleware such as a library. The container 550 operates to realize a predetermined function by using the resources of the hardware 501 and the operation system 510 allocated by the container engine 540.

[0213] In the embodiment, the AI application and the AI model shown in FIG. 22 correspond to one of the containers 550. That is, one of the various containers 550 deployed in the camera 300 realizes a predetermined AI image processing function using the AI application and the AI model.

[0214] Figure 27 shows an example of the specific configuration of the cluster 560 constructed by the container engine 540 and the orchestration tool 530. Note that the cluster 560 may be constructed across multiple devices so that the functions are realized by using not only the hardware 501 included in one camera 300 but also the resources of other hardware included in other devices.

[0215] The orchestration tool 530 manages the execution environment of the container 550 in units of worker nodes 570. In addition, the orchestration tool 530 constructs a master node 580 that manages the entire worker node 570.

[0216] In the worker node 570, a plurality of pods 590 are deployed. The pod 590 is configured to include one or more containers 550 and realizes a predetermined function. The pod 590 is used as a management unit for the orchestration tool 530 to manage the container 550.

[0217] The operation of the pod 590 in the worker node 570 is controlled by the pod management library 601. The pod management library 601 is configured to include a network proxy and the like. As the network proxy, it includes a container runtime for allowing the pod 590 to use the resources of the logically assigned hardware 501, an agent that receives control from the master node 580, communication between pods 590, communication with the master node 580, and the like. That is, the plurality of pods 590 can realize a predetermined function using each resource by the pod management library 601.

[0218] The master node 580 includes an application server 610, a manager 620, a scheduler 630, and a data sharing unit 640. The application server 610 deploys the pod 590. The manager 620 manages the deployment status of the container 550 by the application server 610. The scheduler 630 determines the worker node 570 where the container 550 is to be placed. And the data sharing unit 640 performs data sharing.

[0219] By using the configurations shown in FIGS. 26 and 27, it becomes possible to deploy the aforementioned AI application and AI model to the image sensor IS of the camera 300 using container technology.

[0220] As described above, the AI model may be stored in the memory unit 450 in the image sensor IS via the communication I / F 460 shown in FIG. 24, and AI image processing may be executed within the image sensor IS. Also, the AI application and the AI model may be deployed to the memory unit 450 and the sensor internal control unit 430 in the image sensor IS with the configurations shown in FIGS. 26 and 27, and executed using container technology within the image sensor IS.

[0221] Also, as will be described later, when the AI application and the AI model, or either one of them, are deployed to the fog server 400 or the information processing device on the cloud side, container technology may be used. In this case, the information of each of the AI application and the AI model is deployed and executed as a container or the like in a memory such as the non-volatile memory unit 740, the storage unit 790, or the RAM 730 shown in FIG. 28 described later.

[0222] (5) Hardware Configuration of Information Processing Device FIG. 28 shows an example of the hardware configuration of information processing devices such as the cloud server 100, the user terminal 200, the fog server 400, and the management server 500 included in the information processing system 1000.

[0223] The information processing apparatus includes a CPU 710. The CPU 710 functions as an arithmetic processing unit that performs the various processes described above. The CPU 710 executes various processes according to a program stored in the ROM 720 or the non-volatile memory unit 740, or a program loaded from the storage unit 790 to the RAM 730. For the non-volatile memory unit 740, for example, an EEPROM (Electrically Erasable Programmable Read Only Memory) or the like is used. Also, in the RAM 730, data and the like necessary for the CPU 710 to execute various processes are appropriately stored.

[0224] Note that the CPU 710 included in the information processing apparatus as the cloud server 100 functions as a license authentication unit, an account service providing unit, a device monitoring unit, a marketplace function providing unit, a camera service providing unit, etc. in order to realize the above-described various functions.

[0225] The CPU 710, ROM 720, RAM 730, and non-volatile memory unit 740 are interconnected via a bus 830. Also, an input / output interface (I / F) 750 is connected to the bus 830.

[0226] Connected to the input / output interface 750 is an input unit 760 composed of an operator and an operation device. The input unit 760 is various operators and operation devices such as, for example, a keyboard, a mouse, keys, a dial, a touch panel, a touch pad, a remote controller, etc. An operation of the user is detected by the input unit 760, and a signal corresponding to the input operation is interpreted by the CPU 710.

[0227] Also, connected to the input / output interface 750 is a display unit 770 composed of an LCD, an organic EL panel, etc. and an audio output unit 780 composed of a speaker, etc., either integrally or separately. The display unit 770 is a display unit that performs various displays. The display unit 770 is composed of, for example, a display device provided on the housing of a computer device, a separate display device connected to the computer device, and the like.

[0228] Based on the instructions from the CPU 710, the display unit 770 executes displays such as images for various image processes and videos to be processed on the display screen. Also, based on the instructions from the CPU 710, the display unit 770 performs displays of various operation menus, icons, messages, and the like. A GUI (Graphical User Interface) is used for these displays.

[0229] The input / output interface 750 may be connected to a storage unit 790 composed of a hard disk, a solid-state memory, etc., and a communication unit 801 composed of a modem, etc.

[0230] The communication unit 801 performs communication processing via a transmission path such as the Internet, wired / wireless communication with various devices, and communication by bus communication.

[0231] The input / output interface 750 is connected to a drive 810 as necessary. A removable storage medium 820 is appropriately mounted on the input / output interface 750 via the drive 810. The removable storage medium 820 includes a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, and the like.

[0232] The drive 810 can read data files such as programs used for each process from the removable storage medium 820. The read data files are stored in the storage unit 790. Also, the images included in the data files are output by the display unit 770, and the voices included in the data files are output by the voice output unit 780. Also, computer programs and the like read from the removable storage medium 820 are installed in the storage unit 790 as necessary.

[0233] In this computer device, for example, software for the processing of the embodiments can be installed via network communication by the communication unit 801 or a removable storage medium 820. Further, the software may be stored in advance in the ROM 720, the storage unit 790, etc. Also, the captured image captured by the camera 300 and the processing result by AI image processing may be received, and the captured image and the processing result may be stored in the storage unit 790 or the removable storage medium 820.

[0234] When the CPU 710 performs a processing operation based on various programs, the necessary information processing and communication processing as the cloud server 100, which is an information processing device provided with the above-described arithmetic processing unit, are executed. Note that the cloud server 100 is not limited to being configured by a single computer device shown in FIG. 23, and may be configured by a plurality of computer devices systematized. The plurality of computer devices are systematized by, for example, a LAN (Local Area Network) or the like. Also, a plurality of computer devices arranged at remote locations may be systematized by a VPN (Virtual Private Network) or the like using the Internet or the like. The plurality of computer devices may include computer devices as a server group (cloud) available by cloud computing services.

[0235] An imaging device and an imaging device system to which the present technology can be further applied will be described with reference to FIG. 29. FIG. 29 shows an example of a schematic configuration for explaining the processing flow when updating an AI model or an AI application in an imaging device and an imaging device system.

[0236] After the SW components of the AI application and the AI model described in the embodiments are deployed, the relearning of the AI model and the update of the AI model (hereinafter referred to as "edge-side AI model") and the AI application deployed in a plurality of cameras 300 or the like are triggered by the operations of service providers and users. In FIG. 29, one of the plurality of cameras 300 that is the focus is shown. Also, in the following description, as an example, the edge-side AI model to be updated is deployed in the image sensor IS provided in the camera 300. Note that the edge-side AI model may be deployed outside the image sensor IS in the camera 300.

[0237] First, in processing step PS1, a retraining instruction for the AI model is given by a service provider or user. This instruction is given using the API function of the API (Application Programming Interface) module provided in the information processing device on the cloud side. Also, in this instruction, the amount of images (for example, the number of images) used for learning is specified. Hereinafter, when referring to the amount of images used for learning, it may be described as "predetermined number of images".

[0238] When receiving the instruction, the API module transmits a retraining request and image amount information to the Hub (see FIG. 22) in processing step PS2.

[0239] In processing step PS3, the Hub transmits an update notification and image amount information to the camera 300 as the edge-side information processing device.

[0240] In processing step PS4, the camera 300 transmits the captured image data obtained by performing imaging to the image DB (Database) in the storage group. This imaging process and transmission process are performed until the predetermined number of images required for retraining is reached.

[0241] Note that when the camera 300 obtains an inference result by performing an inference process on the captured image data, in processing step PS4, the inference result may be stored in the image DB as metadata of the captured image data.

[0242] By storing the inference results in the camera 300 as metadata in the image database, it is possible to carefully select the data necessary for the retraining of the AI model executed on the cloud side. Specifically, retraining can be performed using only the image data in which the inference result in the camera 300 differs from the result of the inference executed using abundant computer resources in the information processing device on the cloud side. Therefore, it is possible to shorten the time required for retraining.

[0243] After finishing shooting and transmitting a predetermined number of images, the camera 300 notifies the Hub in processing step PS5 that the transmission of the imaging image data of the predetermined number has been completed.

[0244] Upon receiving the notification, the Hub notifies the orchestration tool in processing step PS6 that the preparation of the data for retraining has been completed.

[0245] The orchestration tool sends an instruction to execute the labeling process to the labeling module in processing step PS7.

[0246] The labeling module acquires the image data targeted for the labeling process from the image database (processing step PS8) and performs the labeling process.

[0247] Here, the labeling process is a process for performing the above-described class identification. Further, the labeling process is a process for estimating the gender and age of the subject in the image and attaching a label. Further, the labeling process is a process for estimating the pose of the subject and attaching a label. Furthermore, the labeling process is a process for estimating the action of the subject and attaching a label.

[0248] The labeling process may be performed manually or automatically. Further, the labeling process may be completed in the information processing device on the cloud side, or may be realized by using the service provided by another server device.

[0249] After completing the labeling process, the labeling module stores the result information of the labeling in the dataset DB in processing step PS9. Here, the information stored in the dataset DB may be a set of label information and image data, or may be image ID (Identification) information for specifying the image data instead of the image data itself.

[0250] The storage management unit that detects that the result information of the labeling has been stored notifies the orchestration tool in processing step PS10.

[0251] The orchestration tool that receives the notification confirms that the labeling process for a predetermined number of image data has been completed, and sends a relearning instruction to the relearning module in processing step PS11.

[0252] The relearning module that receives the relearning instruction acquires a dataset for learning from the dataset DB in processing step PS12, and acquires an AI model to be updated from the learned AI model DB in processing step PS13.

[0253] The relearning module performs relearning of the AI model using the acquired dataset and AI model. The updated AI model thus obtained is stored in the re-learned AI model DB again in processing step PS14.

[0254] The storage management unit that detects that the updated AI model has been stored notifies the orchestration tool in processing step PS15.

[0255] The orchestration tool that receives the notification sends a conversion instruction for the AI model to the conversion module in processing step SP16.

[0256] Upon receiving the conversion instruction, the conversion module retrieves the updated AI model from the learned AI model DB in processing step PS17 and performs the conversion process of the AI model. In this conversion process, a process of converting according to the specification information of the destination device, the camera 300, etc. is performed. In this process, downsizing is performed so as not to reduce the performance of the AI model as much as possible, and file format conversion, etc. is performed so that it can operate on the camera 300.

[0257] The AI model converted by the conversion module is the above-described edge-side AI model. This converted AI model is stored in the converted AI model DB in processing step PS18.

[0258] The storage management unit that has detected that the converted AI model has been stored performs a notification to the orchestration tool in processing step PS19.

[0259] The orchestration tool that has received this notification sends a notification to the Hub in processing step PS20 to execute the update of the AI model. This notification includes information for specifying the location where the AI model used for the update is stored.

[0260] The Hub that has received this notification sends an AI model update instruction to the camera 300. The update instruction also includes information for specifying the location where the AI model is stored.

[0261] The camera 300 performs a process of acquiring and deploying the target converted AI model from the converted AI model DB in processing step PS22. Thereby, the AI model used in the image sensor IS of the camera 300 is updated.

[0262] After completing the update of the AI model by deploying the AI model, the camera 300 sends a notification of update completion to the Hub in processing step PS23. Upon receiving the notification, the Hub notifies the orchestration tool in processing step PS24 that the AI model update process for the camera 300 has been completed.

[0263] Here, an example is described in which the AI model is deployed and used within the image sensor IS (e.g., the memory unit 450 shown in FIG. 24) of the camera 300. In the present technology, the AI model may be deployed and used outside the image sensor IS (e.g., the memory unit 340 shown in FIG. 24) in the camera 300 or in a storage unit (not shown) within the fog server 400. Similarly, the AI model can be updated. In this case, when the AI model is deployed, the device (location) where the AI model is deployed is stored in a storage management unit on the cloud side or the like. The Hub reads the device (location) where the AI model is deployed from the storage management unit and sends an AI model update instruction to the device where the AI model is deployed. Upon receiving the update instruction, the device performs a process of acquiring and deploying the target converted AI model from the converted AI model DB in processing step PS22. Thereby, the AI model of the device that has received the update instruction is updated.

[0264] Note that when only updating the AI model, the processing up to this point is completed. When updating the AI application that uses the AI model in addition to the AI model, the processes described below are further executed.

[0265] Specifically, in processing step PS25, the orchestration tool sends a download instruction for the AI application such as the updated firmware to the deployment control module.

[0266] In the processing step PS26, the deployment control module sends a deployment instruction for the AI application to the Hub. This instruction includes information for identifying the location where the updated AI application is stored.

[0267] In the processing step PS27, the Hub sends the deployment instruction to the camera 300. In the processing step PS28, the camera 300 downloads and deploys the updated AI application from the container DB of the deployment control module.

[0268] Note that in the above, an example of sequentially updating the AI model operating on the image sensor IS of the camera 300 and the AI application operating outside the image sensor IS in the camera 300 has been described. Also, here the AI application is simply described. As described above, the AI application is defined by a plurality of software components such as software components B1, B2, B3,..., Bn. When the AI application is deployed, the cloud-side storage management department or the like stores where the plurality of software components are deployed. When performing the processing of the processing step PS27, the Hub reads out the device (location) where each software component is deployed from the storage management department, and sends a deployment instruction to the deployed device. The device that receives the deployment instruction downloads and deploys the updated software component from the container DB of the deployment control module in the processing step PS28. Here, the AI application is a software component other than the AI model.

[0269] Also, when both the AI model and the AI application operate on one device, both the AI model and the AI application may be updated together as one container. In this case, the update of the AI model and the update of the AI application may be performed simultaneously, rather than sequentially. And by executing each of the processing steps PS25, processing step PS26, processing step PS27, and processing step PS28, the update can be realized.

[0270] For example, when it is possible to deploy both containers of the AI model and the AI application to the image sensor IS of the camera 300, by executing each of the processing steps PS25, processing step PS26, processing step PS27, and processing step PS28 as described above, the AI model and the AI application can be updated.

[0271] By performing the above-described processing, the AI model is retrained using the captured image data captured in the user's usage environment. Therefore, an edge-side AI model capable of outputting a highly accurate recognition result in the user's usage environment can be generated.

[0272] Also, even if the user's usage environment changes, such as when the layout of the store is changed or when the installation location of the camera 300 is changed, the AI model can be appropriately retrained each time. For this reason, it is possible to maintain the recognition accuracy by the AI model without degrading it. Note that each of the above-described processes may be executed not only during the retraining of the AI model but also when the system is first operated in the user's usage environment.

[0273] Using FIGS. 30 to 32, an imaging device and an imaging device system to which the present technology can be further applied will be described. FIG. 30 shows an example of a display presented to the user regarding the marketplace in the imaging device and the imaging device system.

[0274] On the login screen G1, an ID input field 910 for entering a user ID and a password input field 920 for entering a password are displayed.

[0275] Below the password input field 920, a login button 930 for logging in and a cancel button 940 for canceling the login are arranged.

[0276] Further below, operators for transitioning to a page for users who have forgotten their passwords, operators for transitioning to a page for newly registering users, etc. are appropriately arranged.

[0277] After entering an appropriate user ID and password and pressing the login button 930, a process for transitioning to a user-specific page is executed in each of the cloud server 100 and the user terminal 200.

[0278] FIG. 31 shows a display example presented to, for example, an AI application developer using the application developer terminal 200A, an AI model developer using the AI model developer terminal 200C, etc.

[0279] Each developer can purchase a learning dataset, an AI model, and an AI application, respectively, for development through the marketplace. Also, an AI application or an AI model developed by oneself can be registered in the marketplace.

[0280] On the developer-oriented screen G2 shown in FIG. 31, purchasable learning datasets, AI models, AI applications, etc. (hereinafter, collectively referred to simply as "data") are displayed on the left side. Although not shown in the figure, when purchasing a learning dataset, an image of the learning dataset can be displayed on the display, and only a desired part of the image can be framed using an input device such as a mouse, and the learning can be prepared just by entering a name.

[0281] For example, when you want to perform AI learning using an image of a cat, you can surround only the cat part in the image with a frame and input "cat" as text input, thereby preparing an image with cat annotation added for AI learning. Also, in order to make it easier to find desired data, it is possible to enable selection of purposes such as "traffic monitoring", "flow analysis", and "customer count in the store". That is, display processing such that only data that matches the selected purpose is displayed is executed in each of the cloud server 100 and the user terminal 200.

[0282] Note that on the developer-oriented screen G2, the purchase price of each data may be displayed.

[0283] Also, on the right side of the developer-oriented screen G2, there are provided an input field 950 for registering a learning data set collected or created by the developer, an AI model developed by the developer, an AI application, and the like.

[0284] On the developer-oriented screen G2, for each data, an input field 950 for inputting the name and the storage location of the data is provided. Also, for the AI model, a check box 960 for setting whether retraining is required or not is provided.

[0285] Note that a price setting field (shown as the input field 950 in FIG. 31) or the like that can set the price required when purchasing the data to be registered may be provided.

[0286] Also, on the upper part of the developer-oriented screen G2, as part of the user information, the user name, the last login date, etc. are displayed. Note that in addition to this, the amount of currency that the user can use when purchasing data, the number of points, etc. may also be displayed.

[0287] FIG. 32 shows a display example presented to an application user. This display example is, for example, a display example of a user-oriented screen G3 presented to an application user who performs various analyses and the like by deploying an AI application or an AI model on a camera 300 as an edge-side information processing device managed by the user himself / herself.

[0288] The user can purchase the camera 300 to be placed in the space to be monitored via the marketplace. Therefore, on the left side of the user-oriented screen G3, radio buttons 970 are arranged for selecting the type and performance of the image sensor IS mounted on the camera 300 and the performance of the camera 300.

[0289] Also, the user can purchase an information processing device as the fog server 400 via the marketplace. Therefore, on the left side of the user-oriented screen G3, radio buttons 970 for selecting each performance of the fog server 400 are arranged. Also, for a user who already has the fog server 400, the performance of the fog server 400 can be registered by inputting the performance information of the fog server 400 here.

[0290] The user can realize a desired function by installing the camera 300 purchased at an arbitrary location such as a store operated by the user himself / herself. In the marketplace, information about the installation location of the camera 300 can be registered in order to maximize the functions of a plurality of cameras 300. Note that the camera 300 may be purchased without going through the marketplace.

[0291] On the right side of the user-oriented screen G3, radio buttons 980 for selecting environmental information about the environment where the camera 300 is installed are arranged. By appropriately selecting the environmental information about the environment where the camera 300 is installed, the user can set the above-described optimal imaging settings for the target camera 300.

[0292] In addition, when purchasing the camera 300 and the installation location of the camera 300 to be purchased is determined, by selecting each item on the left side and each item on the right side of the user-oriented screen G3, it is possible to purchase the camera 300 with optimal imaging settings according to the planned installation location.

[0293] The user-oriented screen G3 is provided with an execution button 990. By pressing the execution button 990, it is possible to transition to a confirmation screen for confirming the purchase or a confirmation screen for confirming the setting of environmental information. As a result, the user can purchase the desired camera 300 or fog server 400 and set the environmental information for the camera 300.

[0294] In the marketplace, it is possible to change the environmental information of a plurality of cameras 300 in case the installation location of the camera 300 is changed. On the change screen (not shown), when re-entering the environmental information regarding the installation location of the camera 300, it becomes possible to reset the optimal imaging settings for the camera 300.

[0295] The present technology is not limited to the above-described embodiments, and various modifications can be made without departing from the gist thereof. For example, solid-state imaging devices according to two or more embodiments may be combined.

[0296] [Application Example of Information Processing Apparatus] Next, an application example of the information processing apparatus on the cloud side will be described. The functions of the information processing apparatus described in each embodiment can be realized by the information processing apparatus on the cloud side according to the embodiment.

[0297] (First Application Example) FIG. 33 is a diagram for explaining a first application example of the information processing apparatus on the cloud side. In this example, it is an example in which the user terminal 200 (for example, the AI model developer terminal 200C) downloads a learning image dataset from the information processing apparatus on the cloud side. In this example, the information processing apparatus on the cloud side functions as a dataset improvement tool for improving the bias included in the dataset.

[0298] The information processing device on the cloud side reads out a data set before improvement of attribute bias (hereinafter, appropriately referred to as the data set before improvement) from a storage unit (for example, storage unit 790). The data set to be read out may be a data set designated by the user terminal 200, or may be one automatically selected by the information processing device on the cloud side according to the task content of the AI model planned for development.

[0299] The information processing device on the cloud side performs processing by the attribute extraction unit 2, the labeling unit 3, and the bias detection unit 4 on the data set before improvement. The content of the processing can apply the processing described in each embodiment.

[0300] Display information indicating the labeling result by the labeling unit 3 is transmitted to the user terminal 200. Then, the number of image data for each attribute is displayed on the display unit etc. of the user terminal 200 as an example of the display information. The user of the user terminal 200 inputs, for example, that they want to eliminate the influence of the attribute "race", that is, they want to improve the bias of the attribute "race". Such input is transmitted from the user terminal 200 to the information processing device on the cloud side.

[0301] The information processing device on the cloud side adjusts the content of the data set before improvement based on the information transmitted from the user terminal 200. For example, the data set adjustment unit 5 adjusts the number of image data so that the number of image data of the attribute "race" designated by the user terminal 200 is equal between men and women. Thereby, on the information processing device on the cloud side, a data set after improvement in which at least one attribute existing in the data set before improvement is improved is generated. The data set after improvement is transmitted by the user terminal 200.

[0302] Note that the result of the bias detection unit 4 may be displayed on the user terminal 200. The number of images in the improved dataset may be displayed on the user terminal 200. The bias improvement of the dataset may be performed for a fee. Also, when the attribute for improving the bias is not specified by the user terminal 200, all biases may be improved.

[0303] By applying the information processing apparatus as the above-described dataset improvement tool, biases overlooked by humans can be detected. Also, the user can specify the attribute for which the bias is to be eliminated on the user terminal 200. Combinations of attributes with biases and combinations of attributes with improved biases can also be considered.

[0304] (Second Application Example) Next, the second application example will be described. This example is also an example of using the information processing apparatus on the cloud side as a dataset improvement tool.

[0305] FIG. 34 is a diagram for explaining a second application example of the information processing apparatus on the cloud side. In this example, first, the process described in the first application example is performed. That is, for the dataset before improvement, when the user specifies the attribute "race", the bias existing in the attribute "race" is improved, and an improved dataset is generated.

[0306] Furthermore, the user can check the presence or absence of bias for attributes that were not presented. For example, when the user wants to check whether there is a bias for the attribute "makeup", the user specifies the attribute "makeup" and transmits it from the user terminal 200 to the information processing apparatus on the cloud side.

[0307] In the information processing device on the cloud side, the attribute extraction unit 2 extracts whether or not the attribute "makeup" is included in the image data constituting the data set (in this case, the data set in which the bias regarding the attribute "race" has been improved). Then, as shown in FIG. 34, the labeling result by the labeling unit 3 regarding the attribute "makeup" and the detection result of the bias detection unit 4 are displayed on the user terminal 200. When there is a bias in the attribute "makeup", a request to improve the bias may be made from the user terminal 200 to the information processing device on the cloud side.

[0308] According to this example, the user can also define an arbitrary attribute for an attribute not discovered by the data set improvement tool, and further inspect whether there is a bias in the attribute. Based on the inspection result, the user can further specify another attribute. In this way, regarding the presence or absence of bias in the attribute, the user can confirm and improve the content of the data set until the user is satisfied.

[0309] (The third application example) Next, the third application example will be described. This example is an example of using the information processing device on the cloud side as a data set assessment tool.

[0310] FIGS. 34A and 34B are diagrams for explaining the third application example of the information processing device on the cloud side. As shown in FIG. 34A, the information processing device on the cloud side performs processing by the attribute extraction unit 2, the labeling unit 3, and the bias detection unit 4 on the data set before bias improvement. Then, the attribute in which the bias is detected by the bias detection unit 4 is transmitted to the user terminal 200.

[0311] In the user terminal 200, attributes detected by the information processing device on the cloud side (in the illustrated example, attributes such as "glasses", "presence or absence of makeup", "age", etc. are listed and displayed. For the listed attributes, the user himself / herself can compare them with the attributes defined as having biases. That is, according to this example, it is possible to compare the attributes (attributes considered to have biases) defined in advance by the user making use of specialized knowledge with the attributes having biases detected by the information processing device on the cloud side. As a result of the comparison, the degree of matching between the two can be obtained.

[0312] Note that, as shown in FIG. 35B, the degree of imbalance calculated when the bias detection unit 4 detects a bias may be displayed. In this case, the degree of imbalance of each attribute may be displayed, or the average of the degrees of imbalance of each attribute may be displayed, or both may be displayed.

[0313] (Fourth application example) Next, the fourth application example will be described. As described above, a learning data set can be downloaded from the information processing device on the cloud side. This example enables the user to recognize the content regarding the bias of the data set via the user terminal 200.

[0314] For example, when the user terminal 200 accesses the information processing device on the cloud side, the screen illustrated in FIG. 36 is displayed on the display unit or the like of the user terminal 200. For example, information indicating the first data set and information indicating the second data set are shown as an example of a plurality of data sets. Of course, the number of data sets may be other than two. The information indicating the first data set includes, for example, information such as text information for identifying the first data set, the labeling result by the labeling unit 3 for the first data set, and / or the detection result of the bias for each attribute by the bias detection unit 4 (for example, a numerical value indicating the degree of imbalance). The information indicating the second data set includes, for example, information such as text information for identifying the second data set, the labeling result by the labeling unit 3 for the second data set, and / or the detection result of the bias for each attribute by the bias detection unit 4 (for example, a numerical value indicating the degree of imbalance).

[0315] As described above, depending on the task content of the AI model, it may be preferable for there to be a bias in some attributes. By displaying the labeling result by the labeling unit 3 and / or the detection result of the bias for each attribute by the bias detection unit 4 together with the information for identifying the data, the user can select and download a data set suitable for the AI model to be developed. Note that the content shown in FIG. 36 may be displayed on the display unit 6A or the like instead of the user terminal 200.

[0316] As shown in FIG. 37, for each data set, only the information regarding the attributes defined by the user may be displayed. Thereby, the presence or absence of bias regarding the attributes required by the user can be easily compared between data sets.

[0317] In addition, the information processing device on the cloud side may be able to search for a data set using the attribute and the presence or absence of the bias of the attribute as keys. For example, when a user requests a data set in which a bias exists only in the attribute "presence or absence of a smiling face", the information processing device on the cloud side may search for a data set suitable for the request. Also, when there is no data set suitable for the request, the data set adjustment unit 5 may perform processing so that a bias exists only in the attribute "presence or absence of a smiling face", and the information processing device on the cloud side may generate a data set suitable for the request.

[0318] (Fifth Application Example) Next, the fifth application example will be described. This example is an example in which the information processing device on the cloud side performs quality assurance on the data set used for learning the AI model.

[0319] For example, as shown in FIG. 38, consider a gender classification model and a person detection model as examples of AI models to be published by the information processing device on the cloud side. The information processing device on the cloud side inspects the data set used for learning each AI model. Specifically, the information processing device on the cloud side inspects whether there is a bias in the data set used for learning each AI model, at least with respect to ethical attributes. The presence or absence of a bias regarding ethical attributes is determined by applying the method described in the embodiment.

[0320] When the AI model is made public on the cloud-side information processing device, test result information corresponding to the test result is also presented. For example, the bias detection unit 4 or the like detects that the dataset used to train the gender classification model has a bias with respect to the attribute "race," which is an example of an ethical attribute. In this case, when the gender classification model is made public on the cloud-side information processing device, it is clearly indicated that a bias exists with respect to the ethical attribute. In other words, it is clearly indicated that the content of the dataset used to train the gender classification model is inappropriate. Note that, when a bias exists with respect to the ethical attribute, the AI model trained using the dataset including the bias may not be made public on the cloud-side information processing device.

[0321] Also, for example, it is assumed that no bias was detected with respect to ethical attributes in the dataset used to train the human detection model. In this case, when the human detection model is made public in the information processing device on the cloud side, it is clearly indicated that there is no bias with respect to ethical attributes. In other words, it is clearly indicated that the contents of the dataset used to train the human classification model are appropriate. The absence of bias with respect to ethical attributes may be indicated by the words "no bias" as shown in FIG. 38, or may be indicated by a mark or the like that guarantees the quality of the dataset used by the AI model for training.

[0322] In this example, by associating inspection result information corresponding to the inspection results of a dataset with an AI model, it is possible to guarantee the quality of the dataset when the AI model was learned at the time of public release of the AI model. Also, it is possible to prevent the public release of an AI model obtained by learning a dataset that is biased with respect to ethical attributes. Note that the inspection result information may be associated with the dataset. As a result, the dataset can be treated in the same way as an AI model. For example, when publicly releasing a dataset on an information processing device on the cloud side, it is also possible to prevent the public release of a dataset that is biased with respect to ethical attributes. The inspection result information may be associated with both the AI model and the dataset used when learning the AI model.

[0323] <Modification example> As described above, a plurality of embodiments and examples of the present technology have been specifically described. However, the content of the present technology is not limited to the above-described embodiments and the like, and various modifications based on the technical idea of the present technology are possible. Hereinafter, modification examples will be described.

[0324] The content of the training dataset may be other than image data (such as audio data). In this case, as an example, a model that automatically estimates emotions and ambient sounds (surrounding sounds) from audio data can be considered, and the emotions and ambient sounds can be considered as an example of attributes. Also, a dataset in which "male" and "female" are not pre-annotated may be used.

[0325] For example, the configurations, methods, processes, shapes, materials, numerical values, etc. of the above-described embodiments can be combined with each other or replaced as long as they do not deviate from the gist of the present technology. Also, it is possible to divide one thing into two or more, and it is also possible to omit a part. Also, the matters described in the embodiments and modification examples can be combined with each other. Also, each of the above-described processes may be performed in a distributed manner by a plurality of information processing devices.

[0326] Note that the effects described in this specification are merely illustrative and not limiting, and there may be other effects.

[0327] Note that this technology can also adopt the following configurations. (1) An attribute extraction unit that extracts attributes from the input dataset, A labeling unit that labels the attributes for each data constituting the dataset, A bias detection unit that detects biases for each attribute based on the labeling results, A dataset adjustment unit that adjusts the dataset so as to improve at least one bias detected by the bias detection unit, Having An information processing apparatus. (2) The dataset adjustment unit improves the bias by expanding the dataset, The information processing apparatus according to (1). (3) The dataset adjustment unit expands the dataset by adding new data to the dataset, The information processing apparatus according to (2). (4) The dataset adjustment unit expands the dataset by adding the generated new data to the dataset, The information processing apparatus according to (2). (5) The generated new data includes data based on a virtual viewpoint generated based on real data, The information processing apparatus according to (4). (6) The dataset adjustment unit improves the bias by deleting some data constituting the dataset, The information processing apparatus according to (1). (7) Having an output unit, The information processing apparatus according to any one of (1) to (6). (8) The output unit outputs display information that visualizes the result of the labeling by the labeling unit. The information processing apparatus according to (7). (9) The display information includes display information in which the result of the labeling is graphed and data of representative samples corresponding to at least one attribute. The information processing apparatus according to (8). (10) The output unit outputs display information that visualizes information based on the bias for each attribute detected by the bias detection unit. The information processing apparatus according to any one of (7) to (9). (11) The information based on the bias for each attribute includes at least one of the degree of bias of each attribute and the degree of bias of the entire dataset. The information processing apparatus according to (10). (12) The output unit outputs display information that visualizes the result of the bias improvement by the dataset adjustment unit. The information processing apparatus according to any one of (7) to (11). (13) The output unit outputs at least one dataset in which the bias has been improved. The information processing apparatus according to any one of (7) to (12). (14) It has a learning unit that performs machine learning based on at least one dataset in which the bias has been improved. The information processing apparatus according to any one of (1) to (13). (15) The attributes to be labeled by the labeling unit include attributes specified by the user. The bias detection unit detects a bias for at least the attributes specified by the user based on the result of the labeling. The dataset adjustment unit adjusts the dataset so as to improve the bias for the attribute specified by the user, which is detected by the bias detection unit. The information processing apparatus according to any one of (1) to (14). (16) Using the AI model learned using the dataset, extraction of attributes by the attribute extraction unit, labeling of attributes by the labeling unit, detection of bias for each attribute by the bias detection unit, and adjustment of the dataset by the dataset adjustment unit are performed. The information processing apparatus according to any one of (1) to (15). (17) The dataset adjustment unit adjusts the dataset so as to improve the bias of ethical attributes. The information processing apparatus according to any one of (1) to (16). (18) The dataset adjustment unit adjusts the dataset so as to improve the bias specified by the user among the biases detected by the bias detection unit. The information processing apparatus according to any one of (1) to (17). (19) The dataset is a dataset used for learning a predetermined AI model. The bias detection unit detects at least the presence or absence of bias of ethical attributes, and associates detection result information corresponding to the detection result with at least one of the dataset and the AI model learned using the dataset. The information processing apparatus according to any one of (1) to (18). (20) The output unit outputs display information obtained by visualizing information on the first dataset and information on the second dataset. The information on the first dataset includes at least one of the labeling result of attributes by the labeling unit for the first dataset and the detection result of bias for each attribute by the bias detection unit for the first dataset. The information of the second dataset includes at least one of the labeling result of attributes by the labeling unit for the second dataset and the detection result of bias for each attribute by the bias detection unit for the second dataset. The information processing apparatus according to (7). (21) The attribute extraction unit extracts attributes from the input dataset. The labeling unit labels each data constituting the dataset with the attributes. The bias detection unit detects bias for each attribute based on the labeling result. The dataset adjustment unit adjusts the dataset so as to improve at least one bias detected by the bias detection unit. Information processing method. (22) The attribute extraction unit extracts attributes from the input dataset. The labeling unit labels each data constituting the dataset with the attributes. The bias detection unit detects bias for each attribute based on the labeling result. The dataset adjustment unit adjusts the dataset so as to improve at least one bias detected by the bias detection unit. A program for causing a computer to execute the information processing method.

Explanation of Signs

[0328] 1 ··· Information processing apparatus 2 ··· Attribute extraction unit 3 ··· Labeling unit 4 ··· Bias detection unit 5 ··· Dataset adjustment unit 6 ··· Output unit 6A ··· Display unit 100 ··· Cloud server 200C ··· AI model developer terminal 500 ··· Management server 1000 ··· Information processing system

Claims

1. An attribute extraction unit that extracts attributes from the input dataset, a labeling unit that labels the attributes for each data constituting the dataset, a bias detection unit that detects a bias for each attribute based on the result of the labeling, a dataset adjustment unit that improves the bias for the ethical attributes detected by the bias detection unit and changes the bias so as to adjust the dataset according to the task content of the AI model that performs machine learning based on the dataset after bias adjustment for biases for other attributes different from the ethical attributes, having an information processing apparatus.

2. The dataset adjustment unit improves the bias by expanding the dataset, The information processing apparatus according to Claim 1.

3. The dataset adjustment unit expands the dataset by adding new data to the dataset, The information processing apparatus according to Claim 2.

4. The dataset adjustment unit expands the dataset by adding the generated new data to the dataset, The information processing apparatus according to Claim 2.

5. The generated new data includes data based on a virtual viewpoint generated based on real data, The information processing apparatus according to Claim 4.

6. The dataset adjustment unit improves the bias by deleting some data constituting the dataset, The information processing apparatus according to Claim 1.

7. having an output unit, The information processing apparatus according to Claim 1.

8. The output unit outputs display information in which the result of labeling by the labeling unit is visualized, The information processing apparatus according to Claim 7.

9. The display information includes display information in which the result of the labeling is graphed and data of representative samples corresponding to at least one attribute, The information processing apparatus according to Claim 8.

10. The output unit outputs display information in which information based on the bias for each attribute detected by the bias detection unit is visualized, The information processing apparatus according to Claim 7.

11. The information based on the bias for each attribute includes at least one of the degree of bias of each attribute and the degree of bias of the entire dataset, The information processing apparatus according to Claim 10.

12. The output unit outputs display information visualizing the result of the bias improvement by the dataset adjustment unit. The information processing apparatus according to claim 7.

13. The output unit outputs the dataset adjusted by the dataset adjustment unit. The information processing apparatus according to claim 7.

14. Having a learning unit that performs the machine learning. The information processing apparatus according to claim 1.

15. The attributes labeled by the labeling unit include attributes specified by a user. The bias detection unit detects a bias for at least the attributes specified by the user based on the result of the labeling. The dataset adjustment unit adjusts the dataset so as to improve the bias for the attributes specified by the user detected by the bias detection unit. The information processing apparatus according to claim 1.

16. Using the AI model learned using the dataset, extraction of attributes by the attribute extraction unit, labeling of attributes by the labeling unit, detection of bias for each attribute by the bias detection unit, and adjustment of the dataset by the dataset adjustment unit are performed. The information processing apparatus according to claim 1.

17. The dataset adjustment unit adjusts the dataset so as to improve the bias specified by the user among the biases detected by the bias detection unit. The information processing apparatus according to claim 1.

18. The dataset is a dataset used for learning a predetermined AI model. The bias detection unit detects at least the presence or absence of a bias of an ethical attribute, and associates detection result information corresponding to the detection result with at least one of the dataset and the AI model learned using the dataset. The information processing apparatus according to claim 1.

19. The output unit outputs display information visualizing information of the first dataset and information of the second dataset. The information of the first dataset includes at least one of the labeling result of the attributes by the labeling unit for the first dataset and the detection result of the bias for each attribute by the bias detection unit for the first dataset. The information of the second dataset includes at least one of the labeling result of attributes by the labeling unit for the second dataset and the detection result of bias for each attribute by the bias detection unit for the second dataset. The information processing apparatus according to claim 7.

20. The attribute extraction unit extracts attributes from the input dataset. The labeling unit labels the attributes for each data constituting the dataset. The bias detection unit detects bias for each attribute based on the labeling result. The dataset adjustment unit improves the bias for the ethical attributes detected by the bias detection unit, and adjusts the dataset so as to change the bias for attributes other than the ethical attributes according to the task content of the AI model that performs machine learning based on the dataset after bias adjustment. An information processing method.

21. The attribute extraction unit extracts attributes from the input dataset. The labeling unit labels the attributes for each data constituting the dataset. The bias detection unit detects bias for each attribute based on the labeling result. The dataset adjustment unit improves the bias for the ethical attributes detected by the bias detection unit, and adjusts the dataset so as to change the bias for attributes other than the ethical attributes according to the task content of the AI model that performs machine learning based on the dataset after bias adjustment. A program for causing a computer to execute the information processing method.

Citation Information

Patent Citations

  • Polyvinyl chloride resin composition

    JP2020002255A

  • Training device, model generation method and program

    JP2021189553A

  • Data generation device, method, and program

    WO2023171335A1

  • Information processing device, information processing method, and computer program

    WO2023188790A1