JP2023529380A - ユーザの好みを反映した機械学習ベースの画像圧縮設定 - Google Patents
ユーザの好みを反映した機械学習ベースの画像圧縮設定 Download PDFInfo
- Publication number
- JP2023529380A JP2023529380A JP2022574798A JP2022574798A JP2023529380A JP 2023529380 A JP2023529380 A JP 2023529380A JP 2022574798 A JP2022574798 A JP 2022574798A JP 2022574798 A JP2022574798 A JP 2022574798A JP 2023529380 A JP2023529380 A JP 2023529380A
- Authority
- JP
- Japan
- Prior art keywords
- user
- machine learning
- learning model
- image
- features
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 265
- 230000006835 compression Effects 0.000 title claims abstract description 120
- 238000007906 compression Methods 0.000 title claims abstract description 120
- 238000001514 detection method Methods 0.000 claims abstract description 134
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000012549 training Methods 0.000 claims description 85
- 230000015654 memory Effects 0.000 claims description 34
- 230000009471 action Effects 0.000 claims description 24
- 238000013527 convolutional neural network Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 23
- 238000013528 artificial neural network Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000004913 activation Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013526 transfer learning Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/778—Active pattern-learning, e.g. online learning of image or video features
- G06V10/7784—Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/778—Active pattern-learning, e.g. online learning of image or video features
- G06V10/7784—Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors
- G06V10/7788—Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors the supervisor being a human, e.g. interactive learning with a human teacher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/162—User input
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/766—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using regression, e.g. by projecting features on hyperplanes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本明細書で説明する実施形態は、圧縮設定を決定するための方法、デバイス、およびコンピュータ読取可能媒体に関する。入力画像が、ユーザアカウントに関連付けられている場合に取得され得る。入力画像の1つ以上の特徴が、特徴検出機械学習モデルを使用して決定され得る。入力画像の圧縮設定が、ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、入力画像内の1つ以上の特徴に基づいて決定され得る。入力画像は、圧縮設定に基づいて圧縮され得る。
Description
背景
スマートフォンおよび他のポータブルカメラの人気が高まるにつれて、ユーザは、ますます多くの画像を取り込んでいる。しかしながら、クラウドまたはサーバストレージと同様に、オンデバイスも有限リソースである。画像圧縮は、画像を格納するために必要とされる記憶空間の量を低減する効果的な方法である。しかしながら、非可逆圧縮では、圧縮画像は知覚できるほど低い品質となり、最適なユーザ体験が得られない場合がある。
スマートフォンおよび他のポータブルカメラの人気が高まるにつれて、ユーザは、ますます多くの画像を取り込んでいる。しかしながら、クラウドまたはサーバストレージと同様に、オンデバイスも有限リソースである。画像圧縮は、画像を格納するために必要とされる記憶空間の量を低減する効果的な方法である。しかしながら、非可逆圧縮では、圧縮画像は知覚できるほど低い品質となり、最適なユーザ体験が得られない場合がある。
本明細書で提供される背景技術の説明は、本開示の文脈を概して提示するためのものである。現在名前を挙げている発明者の研究は、この背景技術のセクションに記載されている限りにおいて、出願時に従来技術とみなされないことがある説明の態様と同様に、本開示に対する従来技術として明示的にも暗示的にも認められない。
概要
本明細書で説明する実施形態は、圧縮設定を生成するための方法、デバイス、およびコンピュータ読取可能媒体に関する。方法は、ユーザアカウントに関連付けられた入力画像を取得することと、特徴検出機械学習モデルを使用して、入力画像の1つ以上の特徴を決定することと、ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、入力画像内の1つ以上の特徴に基づいて、入力画像の圧縮設定を決定することと、圧縮設定に基づいて、入力画像を圧縮することとを備えてもよい。
本明細書で説明する実施形態は、圧縮設定を生成するための方法、デバイス、およびコンピュータ読取可能媒体に関する。方法は、ユーザアカウントに関連付けられた入力画像を取得することと、特徴検出機械学習モデルを使用して、入力画像の1つ以上の特徴を決定することと、ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、入力画像内の1つ以上の特徴に基づいて、入力画像の圧縮設定を決定することと、圧縮設定に基づいて、入力画像を圧縮することとを備えてもよい。
いくつかの実施形態では、特徴検出機械学習モデルは、デジタル画像の訓練セットと、対応する特徴とを取得することと、訓練セットと対応する特徴とに基づいて、特徴検出機械学習モデルを訓練することとによって生成され、訓練後、特徴検出機械学習モデルは、特徴検出機械学習モデルに提供される入力画像内の画像特徴を識別することが可能である。いくつかの実施形態では、特徴検出機械学習モデルは、複数のネットワーク層を有する畳み込みニューラルネットワーク(convolutional neural network:CNN)を含み、各ネットワーク層は、異なる抽象化レベルで1つ以上の画像特徴を抽出する。いくつかの実施形態では、ユーザ固有機械学習モデルは、1つ以上の先行画像を参照したユーザアクションを示す、ユーザに関連付けられたユーザ固有の特徴の訓練セットを取得することと、ユーザ固有の特徴と1つ以上の先行画像とに基づいて、ユーザ固有機械学習モデルを訓練することとによって生成され、訓練後、ユーザ固有機械学習モデルは、ユーザ固有機械学習モデルに提供される入力画像のレーティングを決定する。いくつかの実施形態では、1つ以上の先行画像のそれぞれの画像特徴は、特徴検出機械学習モデルを1つ以上の先行画像に適用することによって得られる。
いくつかの実施形態では、方法はさらに、各々が異なる圧縮設定で圧縮されたサンプル画像の2つ以上のバージョンを有するユーザアカウントに関連付けられたユーザに、第1のユーザインターフェースを提供することと、特定のバージョンのサンプル画像を識別するユーザ入力を、ユーザから取得することと、サンプル画像の特定のバージョンに関連付けられた圧縮設定を、ユーザアカウントのベースライン圧縮設定として選択することとを備え得る。いくつかの実施形態では、圧縮設定を決定することは、ユーザ固有機械学習モデルが、入力画像のレーティングを決定することと、レーティングを圧縮設定にマッピングすることとを含み、マッピングはベースライン圧縮設定に基づく。
いくつかの実施形態では、方法はさらに、入力画像のレーティングが重要度閾値を満たすと判断することと、レーティングが重要度閾値を満たすという判断に応答して、ユーザが入力画像を共有するという提案を提供すること、重要度閾値を満たさないユーザアカウントに関連付けられた他の画像のバックアップよりも、入力画像のバックアップを優先すること、または、後続画像内に描写されるシーンが入力画像の1つ以上の特徴のうちの少なくとも1つを有する場合、後続画像の取り込みのための命令を含む第2のユーザインターフェースを提供することのうちの1つ以上を行うこととを備え得る。
いくつかの実施形態は、コンピューティングデバイスを備えてもよく、コンピューティングデバイスは、プロセッサと、プロセッサによって実行されると、プロセッサに動作を実行させる命令を格納したメモリとを備え、動作は、ユーザアカウントに関連付けられた入力画像を取得することと、特徴検出機械学習モデルを使用して、入力画像の1つ以上の特徴を決定することと、ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、入力画像内の1つ以上の特徴に基づいて、入力画像の圧縮設定を決定することと、圧縮設定に基づいて、入力画像を圧縮することとを含む。
いくつかの実施形態では、特徴検出機械学習モデルは、デジタル画像の訓練セットと、対応する特徴とを取得することと、訓練セットと対応する特徴とに基づいて、特徴検出機械学習モデルを訓練することとによって生成され、訓練後、特徴検出機械学習モデルは、特徴検出機械学習モデルに提供される入力画像内の画像特徴を識別することが可能である。いくつかの実施形態では、ユーザ固有機械学習モデルは、1つ以上の先行画像を参照したユーザアクションを示す、ユーザに関連付けられたユーザ固有の特徴の訓練セットを取得することと、ユーザ固有の特徴と1つ以上の先行画像とに基づいて、ユーザ固有機械学習モデルを訓練することとによって生成され、訓練後、ユーザ固有機械学習モデルは、ユーザ固有機械学習モデルに提供される入力画像のレーティングを決定する。
いくつかの実施形態では、メモリはさらに、プロセッサによって実行されると、プロセッサにさらに別の動作を実行させる命令を格納し、さらに別の動作は、各々が異なる圧縮設定で圧縮されたサンプル画像の2つ以上のバージョンを有するユーザアカウントに関連付けられたユーザに、第1のユーザインターフェースを提供することと、特定のバージョンのサンプル画像を識別するユーザ入力を、ユーザから取得することと、サンプル画像の特定のバージョンに関連付けられた圧縮設定を、ユーザアカウントのベースライン圧縮設定として選択することとを含む。いくつかの実施形態では、圧縮設定を決定することは、ユーザ固有機械学習モデルが、入力画像のレーティングを決定することと、レーティングを圧縮設定にマッピングすることを含み、マッピングはベースライン圧縮設定に基づく。
いくつかの実施形態は、1つ以上のコンピュータによって実行されると、1つ以上のコンピュータに動作を実行させる命令を格納した非一時的なコンピュータ読取可能媒体を備えてもよく、動作は、ユーザアカウントに関連付けられた入力画像を取得することと、特徴検出機械学習モデルを使用して、入力画像の1つ以上の特徴を決定することと、ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、入力画像内の1つ以上の特徴に基づいて、入力画像の圧縮設定を決定することと、圧縮設定に基づいて入力画像を圧縮することとを含む。
いくつかの実施形態では、特徴検出機械学習モデルは、デジタル画像の訓練セットと、対応する特徴とを取得することと、訓練セットと対応する特徴とに基づいて、特徴検出機械学習モデルを訓練することとによって生成され、訓練後、特徴検出機械学習モデルは、特徴検出機械学習モデルに提供される入力画像内の画像特徴を識別することが可能である。いくつかの実施形態では、ユーザ固有機械学習モデルは、1つ以上の先行画像を参照したユーザアクションを示す、ユーザに関連付けられたユーザ固有の特徴の訓練セットを取得することと、ユーザ固有の特徴と1つ以上の先行画像とに基づいて、ユーザ固有機械学習モデルを訓練することとによって生成され、訓練後、ユーザ固有機械学習モデルは、ユーザ固有機械学習モデルに提供される入力画像のレーティングを決定する。いくつかの実施形態では、訓練セットはさらに、1つ以上の先行画像のそれぞれの画像特徴を含む。
いくつかの実施形態では、動作はさらに、各々が異なる圧縮設定で圧縮された2つ以上のバージョンのサンプル画像を有するユーザアカウントに関連付けられたユーザに、第1のユーザインターフェースを提供することと、特定のバージョンのサンプル画像を識別するユーザ入力を、ユーザから取得することと、サンプル画像の特定のバージョンに関連付けられた圧縮設定を、ユーザアカウントのベースライン圧縮設定として選択することとを含む。いくつかの実施形態では、圧縮設定を決定することは、ユーザ固有機械学習モデルが、入力画像のレーティングを決定することと、レーティングを圧縮設定にマッピングすることとを含み、マッピングはベースライン圧縮設定に基づく。
詳細な説明
ユーザは、スマートフォンまたは他のデバイスを介してなど、カメラを使用して画像を取り込む。たとえば、画像は、静止画像、シネマグラフ/動画像、またはビデオからの画像フレームを含み得る。ユーザは、クライアントデバイスまたはサーバ、たとえば、画像ホスティングサービスを提供するサーバに画像を格納し得る。画像の閲覧および/または編集、スライドショー、コラージュなどの画像等の画像ベースの創作物の生成、画像の共有、画像をソーシャルネットワークまたはチャットアプリケーションに投稿し、他のユーザが画像に「いいね!」とする、または画像に載せることなどで画像に対する承認の指示を提供するなど、ユーザが画像を管理できるようにするアプリケーションを、ユーザのクライアントデバイスおよび/またはサーバを介して提供することができる。
ユーザは、スマートフォンまたは他のデバイスを介してなど、カメラを使用して画像を取り込む。たとえば、画像は、静止画像、シネマグラフ/動画像、またはビデオからの画像フレームを含み得る。ユーザは、クライアントデバイスまたはサーバ、たとえば、画像ホスティングサービスを提供するサーバに画像を格納し得る。画像の閲覧および/または編集、スライドショー、コラージュなどの画像等の画像ベースの創作物の生成、画像の共有、画像をソーシャルネットワークまたはチャットアプリケーションに投稿し、他のユーザが画像に「いいね!」とする、または画像に載せることなどで画像に対する承認の指示を提供するなど、ユーザが画像を管理できるようにするアプリケーションを、ユーザのクライアントデバイスおよび/またはサーバを介して提供することができる。
クライアントデバイス上またはサーバにおける記憶空間は有限である。画像を削除せずに追加の記憶空間を得る1つの方法は、画像のファイルサイズを縮小するために画像圧縮を使用することである。しかしながら、非可逆圧縮は、画質を劣化させて、ユーザに関連付けられた全ての画像が画像圧縮を受けるときに、最適なユーザ経験が得られない可能性がある。
ユーザアカウントが多数の画像を有する場合、それらの画像のサブセットは、ユーザが特に好む画像である可能性が高い。たとえば、一部のユーザは、風景写真の印刷を楽しむため、それらの風景写真の品質についてこだわりが強い場合がある。他の人々は、これらの人物写真を家族と共有することを楽しむか、または写真撮影ビジネスを経営していることもあるので、人の高解像度人物写真についてこだわりが強い場合がある。領収書、スクリーンショット、または他の機能画像(たとえば、ミーム画像、名刺の写真、新聞記事など)の画質は、それほど重要ではない場合がある。このように、画像圧縮による損失に対するユーザの認識は、画像のタイプおよび画像に関連付けられたユーザアカウントに応じて決まる可能性がある。したがって、どの画像がユーザにとって重要である可能性が高いかを識別することが有利である。いくつかの実施形態では、画像管理アプリケーションは、第1の画像内の特徴を識別する特徴検出機械学習モデルを生成および利用する。画像管理アプリケーションはまた、ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを生成し得る。画像管理アプリケーションは、ユーザ固有機械学習モデルを使用して、第1の画像の圧縮設定を決定し得る。画像管理アプリケーションは、圧縮設定に基づいて第1の画像を圧縮して、結果として生じる圧縮画像が元の画像よりも小さいファイルサイズであるため、記憶空間を解放し得る。
図面は、同様の要素を識別するために同様の参照番号を使用する。「103a」などの参照番号の後の文字は、本文がその特定の参照番号を有する要素に具体的に言及していることを示す。「103」などの後に文字がない本文中の参照番号は、その参照番号を有する図中の要素のいずれかまたはすべてを指す(たとえば、本文中の「103」は、図中の参照番号「103a」および/または「103b」を指す)。
ネットワーク環境100の例
図1は、本明細書で説明するいくつかの実施形態において使用され得るネットワーク環境100の例を示すブロック図である。いくつかの実施形態では、ネットワーク環境100は、1つ以上のサーバシステム、たとえば、図1の例におけるサーバシステム101を含む。サーバシステム101は、たとえば、ネットワーク105と通信することができる。サーバシステム101は、サーバデバイス104およびデータベース199または他のストレージデバイスを含み得る。データベース199は、1つ以上の画像および/またはビデオと、1つ以上の画像および/またはビデオに関連付けられたメタデータとを格納し得る。いくつかの実施形態では、サーバデバイス104は、画像管理アプリケーション103aを提供し得る。画像管理アプリケーション103aは、データベース199に格納された画像にアクセスし得る。
図1は、本明細書で説明するいくつかの実施形態において使用され得るネットワーク環境100の例を示すブロック図である。いくつかの実施形態では、ネットワーク環境100は、1つ以上のサーバシステム、たとえば、図1の例におけるサーバシステム101を含む。サーバシステム101は、たとえば、ネットワーク105と通信することができる。サーバシステム101は、サーバデバイス104およびデータベース199または他のストレージデバイスを含み得る。データベース199は、1つ以上の画像および/またはビデオと、1つ以上の画像および/またはビデオに関連付けられたメタデータとを格納し得る。いくつかの実施形態では、サーバデバイス104は、画像管理アプリケーション103aを提供し得る。画像管理アプリケーション103aは、データベース199に格納された画像にアクセスし得る。
ネットワーク環境100はまた、ネットワーク105を介して互いにおよび/またはサーバシステム101と通信し得る1つ以上のクライアントデバイス、たとえばクライアントデバイス115a,115nを含み得る。ネットワーク105は、インターネット、ローカルエリアネットワーク(LAN)、無線ネットワーク、スイッチまたはハブ接続等のうちの1つ以上を含む、任意のタイプの通信ネットワークであり得る。いくつかの実施形態では、ネットワーク105は、たとえば、ピア・ツー・ピア(peer-to-peer)ワイヤレスプロトコル(たとえば、Bluetooth(登録商標)、Wi-Fi Direct、Ultrawideband等)などを使用する、デバイス間のピア・ツー・ピア通信を含み得る。2つのクライアントデバイス115aと115bとの間のピア・ツー・ピア通信の一例が、矢印132によって示されている。
説明を容易にするために、図1は、サーバシステム101、サーバデバイス104、およびデータベース199について1つのブロックを示し、クライアントデバイス115aおよび115nについて2つのブロックを示す。サーバブロック101,104および199は、複数のシステム、サーバデバイス、およびネットワークデータベースを表してもよく、ブロックは、図示されるものとは異なる構成で提供され得る。たとえば、サーバシステム101は、ネットワーク105を介して他のサーバシステムと通信することができる複数のサーバシステムを表し得る。いくつかの実施形態では、サーバシステム101は、たとえば、クラウドホスティングサーバを含み得る。いくつかの例では、データベース199および/または他のストレージデバイスは、サーバデバイス104とは別個のサーバシステムブロック(複数可)内に設けることができ、ネットワーク105を介してサーバデバイス104および他のサーバシステムと通信することができる。
任意の数のクライアントデバイス115が存在し得る。各クライアントデバイスは、任意のタイプの電子デバイス、たとえば、デスクトップコンピュータ、ラップトップコンピュータ、ポータブルまたはモバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、カメラ、スマートディスプレイ、テレビ、TVセットトップボックスまたは娯楽デバイス、ウェアラブルデバイス(たとえば、ディスプレイ眼鏡またはゴーグル、腕時計、ヘッドセット、アームバンド、宝飾品など)、携帯情報端末(PDA)、メディアプレーヤ、ゲームデバイスなどであり得る。いくつかのクライアントデバイスはまた、データベース199または他のストレージと同様のローカルデータベースを含み得る。いくつかの実施形態では、ネットワーク環境100は、図示されるコンポーネントのすべてを有していなくてもよく、および/または本明細書で説明するものの代わりに、またはそれらに加えて、他のタイプの要素を含む他の要素を有してもよい。
さまざまな実施形態では、ユーザ125は、それぞれのクライアントデバイス115a,115nを使用して、サーバシステム101と、および/または互いに通信し得る。いくつかの例では、ユーザ125は、サーバシステム101上で実装されるネットワークサービス、たとえば、ソーシャルネットワークサービス、画像ホスティングサービス、または他のタイプのネットワークサービスを介して、それぞれのクライアントデバイスおよび/またはサーバシステム101上で実行されるアプリケーションを介して互いに対話してもよい。たとえば、それぞれのクライアントデバイス115a,115nは、1つ以上のサーバシステム、たとえばサーバシステム101との間でデータを通信し得る。
いくつかの実施形態では、サーバシステム101は、各クライアントデバイス115がサーバシステム101および/またはネットワークサービスにアップロードされた通信コンテンツまたは共有コンテンツを受信することができるように、適切なデータをクライアントデバイス115a,115nに提供してもよい。いくつかの例では、ユーザ125は、音声もしくはビデオ会議、音声、ビデオ、もしくはテキストチャット、または他の通信モードもしくはアプリケーションを介して対話することができる。サーバシステム101によって実装されるネットワークサービスは、ユーザ125が、さまざまな通信を実行すること、リンクおよび関連付けを形成すること、画像、テキスト、ビデオ、音声、および他のタイプのコンテンツなどの共有コンテンツをアップロードおよびポストすること、ならびに/または他の機能を実行することを可能にするシステムを含み得る。たとえば、クライアントデバイス115は、クライアントデバイス115に送信またはストリーミングされ、サーバおよび/もしくはネットワークサービスを介して異なるクライアントデバイス115から(または直接異なるクライアントデバイス115から)発信されるか、またはサーバシステム101および/もしくはネットワークサービスから発信されるコンテンツポストなどの受信データを表示することができる。いくつかの実施形態では、クライアントデバイス115a,115nは、たとえば、上述したようにクライアントデバイス115,115n間のピア・ツー・ピア通信を使用して、互いに直接通信することができる。いくつかの実施形態では、「ユーザ」は、1つ以上のプログラムまたは仮想エンティティに加えて、システムまたはネットワーク105とインターフェースする人物を含み得る。
いくつかの実施形態では、クライアントデバイス115a,115nのいずれかは、1つ以上のアプリケーションを提供することができる。たとえば、図1に示すように、クライアントデバイス115aは、カメラアプリケーション152および画像管理アプリケーション103bを提供し得る。クライアントデバイス115nはまた、同様のアプリケーションを提供し得る。カメラアプリケーション152は、それぞれのクライアントデバイス115aのユーザ125aに、それぞれのクライアントデバイス115aのカメラを使用して画像を取り込む能力を提供し得る。たとえば、カメラアプリケーション152は、クライアントデバイス115a上で実行するソフトウェアアプリケーションでもよい。
いくつかの実施形態では、カメラアプリケーション152は、ユーザインターフェースを提供してもよい。たとえば、ユーザインターフェースは、クライアントデバイス115aのユーザが、画像取り込みモード、たとえば、静止画像(または写真)モード、バーストモード(たとえば、短時間での連続枚数の画像の取り込み)、動画モード、ビデオモード、高ダイナミックレンジ(high dynamic range:HDR)モード、解像度設定などを選択することを可能にし得る。たとえば、ビデオモードは、複数のフレームを含むビデオの取り込みに対応してもよく、任意の長さでもよい。さらに、ビデオモードは、異なるフレームレート、たとえば、25フレーム/秒(fps)、30fps、50fps、60fpsなどをサポートし得る。画像取り込みの1つ以上のパラメータは、画像またはビデオの取り込み中に変更され得る。たとえば、ユーザは、ビデオを取り込んでいる間に、シーンにズームインまたはズームアウトするためにクライアントデバイス115aを使用し得る。
いくつかの実施形態では、カメラアプリケーション152は、図3および図4A~図4Bを参照して本明細書で説明する方法を(たとえば、部分的にまたは全体的に)実装してもよい。いくつかの実施形態では、画像管理アプリケーション103aおよび/または画像管理アプリケーション103bは、図3および図4A~図4Bを参照して本明細書で説明する方法を(たとえば、部分的にまたは全体的に)実装してもよい。
カメラアプリケーション152および画像管理アプリケーション103bは、クライアントデバイス115aのハードウェアおよび/またはソフトウェアを使用して実装され得る。異なる実施形態では、画像管理アプリケーション103bは、たとえば、クライアントデバイス115a,115nのいずれかで実行されるスタンドアロンアプリケーションでもよい、またはサーバシステム101上に設けられる画像管理アプリケーション103aと連携して動作してもよい。
ユーザの許可を得て、画像管理アプリケーション103は、画像またはビデオを格納すること(たとえば、サーバシステム101のデータベース199にバックアップすること)、画像またはビデオを向上させること、画像またはビデオを安定させること、画像内の1つ以上の特徴、たとえば、顔、身体、オブジェクトのタイプ、動きのタイプを認識すること、画像を圧縮すること等の、1つ以上の自動機能を行い得る。いくつかの例では、画像またはビデオ安定化は、クライアントデバイス115aの加速度計、ジャイロスコープ、もしくは他のセンサからの入力に基づいて、および/または動画もしくはビデオの複数のフレームの比較に基づいて実行され得る。
画像管理アプリケーション103はまた、ユーザインターフェースにおける(たとえば、単一の画像を含むワンアップビューにおける、複数の画像を含むグリッドビューにおける)画像および/またはビデオの表示、画像またはビデオの編集(たとえば、画像設定の調整、フィルタの適用、画像焦点の変更、動画もしくはビデオの1つ以上のフレームの除去)、(たとえば、クライアントデバイス115a,115nの)他のユーザとの画像の共有、画像のアーカイブ(たとえば、一次ユーザインターフェースに現れないような画像の保存)、画像ベースの創作物の生成(たとえば、コラージュ、フォトブック、アニメーション、ストーリー、ビデオループなどの動画のモーションベースのアーチファクトなど)等の画像管理機能を提供し得る。いくつかの実施形態では、画像ベースの創作物を生成するために、画像管理アプリケーション103は、画像またはビデオと関連付けられた1つ以上のラベルを利用してもよい。
いくつかの実施形態では、画像管理アプリケーション103は、画像の1つ以上の特徴を決定し、画像内の1つ以上の特徴に基づいて、画像の圧縮設定を決定してもよい。いくつかの実施形態では、画像管理アプリケーション103は、画像またはビデオに関連付けられた圧縮設定および圧縮画像またはビデオを、データベース199および/またはクライアントデバイス115上のローカルデータベース(図示せず)に格納してもよい。いくつかの実施形態では、画像管理アプリケーション103は、元の画像を直ちに削除するか、元の画像を保存してユーザに削除を確認させるか、または元の画像を一定日数保存した後、元の画像を削除する。
クライアントデバイス115上のユーザインターフェースは、画像、ビデオ、データ、および他のコンテンツ、ならびに通信、プライバシー設定、通知、および他のデータを含む、ユーザコンテンツおよび他のコンテンツの表示を可能にすることができる。そのようなユーザインターフェースは、クライアントデバイス115上のソフトウェア、サーバデバイス104上のソフトウェア、および/またはサーバデバイス104上で実行されるクライアントソフトウェアとサーバソフトウェアとの組み合わせ、たとえば、サーバシステム101と通信するアプリケーションソフトウェアまたはクライアントソフトウェアを使用して表示することができる。ユーザインターフェースは、クライアントデバイス115またはサーバデバイス104の表示デバイス、たとえば、タッチスクリーンまたは他のディスプレイ画面、プロジェクタなどによって表示することができる。いくつかの実施形態では、サーバシステム101上で実行されるアプリケーションプログラムは、クライアントデバイス115でユーザ入力を受信し、クライアントデバイス115で視覚データ、音声データなどのデータを出力するために、クライアントデバイス115と通信することができる。
いくつかの実施形態では、サーバシステム101および/または1つ以上のクライアントデバイス115a,115nのうちのいずれかは、通信アプリケーションプログラムを提供することができる。通信プログラムは、システム(たとえば、クライアントデバイス115またはサーバシステム101)が他のデバイスと通信するためのオプションを提供することを可能にし得る。通信プログラムは、サーバシステム101またはクライアントデバイス115に関連付けられた表示デバイス上に表示される1つ以上の関連付けられたユーザインターフェースを提供し得る。ユーザインターフェースは、通信モード、通信するユーザまたはデバイスなどを選択するためのさまざまなオプションを、ユーザに提供し得る。いくつかの例では、通信プログラムは、コンテンツ投稿を、たとえば放送エリアに送信またはブロードキャストするオプションを提供することができ、かつ/または、コンテンツ投稿がデバイスによって受信されており、たとえばデバイスが投稿のために定義されたブロードキャストエリア内にあることを示す通知を出力することができる。通信プログラムは、送信されたコンテンツ投稿および受信されたコンテンツ投稿を、たとえば、さまざまなフォーマットのいずれかで表示または他の態様では出力することができる。コンテンツ投稿は、たとえば、他のユーザと共有される画像を含み得る。
本明細書で説明する特徴の他の実施形態は、任意のタイプのシステムおよび/またはサービスを使用することができる。たとえば、ソーシャルネットワーキングサービスの代わりに、またはこれに加えて、(たとえば、インターネットに接続された)他のネットワークサービスを使用することができる。任意のタイプの電子デバイスが、本明細書で説明する特徴を利用することができる。いくつかの実施形態は、コンピュータネットワークから切断された、またはコンピュータネットワークに断続的に接続された1つ以上のクライアントまたはサーバデバイス上で、本明細書で説明する1つ以上の特徴を提供することができる。いくつかの例では、表示デバイスを含むかまたはそれに接続されたクライアントデバイス115は、クライアントデバイス115にローカルなストレージデバイスに格納された、たとえば、通信ネットワークを介して以前に受信されたデータ(たとえば、コンテンツ)を表示することができる。
デバイス200の例
図2は、本明細書で説明する1つ以上の特徴を実装するために使用され得るデバイス200の例を示すブロック図である。一例では、デバイス200は、クライアントデバイス115、たとえば、図1に示すクライアントデバイス115a,115nのいずれかを実装するために使用され得る。または、デバイス200は、サーバデバイス、たとえば、図1に示すサーバデバイス104を実装することができる。いくつかの実施形態では、デバイス200は、クライアントデバイス、サーバデバイス、またはクライアントデバイスとサーバデバイスとの両方を実装するために使用されてもよい。デバイス200は、任意の適切なコンピュータシステム、サーバ、または上述のような他の電子もしくはハードウェアデバイスであり得る。
図2は、本明細書で説明する1つ以上の特徴を実装するために使用され得るデバイス200の例を示すブロック図である。一例では、デバイス200は、クライアントデバイス115、たとえば、図1に示すクライアントデバイス115a,115nのいずれかを実装するために使用され得る。または、デバイス200は、サーバデバイス、たとえば、図1に示すサーバデバイス104を実装することができる。いくつかの実施形態では、デバイス200は、クライアントデバイス、サーバデバイス、またはクライアントデバイスとサーバデバイスとの両方を実装するために使用されてもよい。デバイス200は、任意の適切なコンピュータシステム、サーバ、または上述のような他の電子もしくはハードウェアデバイスであり得る。
本明細書で説明する1つ以上の方法は、任意のタイプのコンピューティングデバイス上で実行することができるスタンドアロンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、携帯電話、スマートフォン、スマートディスプレイ、タブレットコンピュータ、ウェアラブルデバイス(腕時計、アームバンド、宝飾品、ヘッドウェア、仮想現実ゴーグルまたは眼鏡、拡張現実ゴーグルまたは眼鏡、ヘッドマウントディスプレイ等)、ラップトップコンピュータ等)上で実行されるモバイルアプリケーション(「アプリ」)で実行することができる。一例では、クライアント/サーバアーキテクチャを使用することができ、たとえば、(クライアントデバイスとしての)モバイルコンピューティングデバイスは、ユーザ入力データをサーバデバイスに送信し、出力用の(たとえば、表示用の)最終出力データをサーバから受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリケーション(および/または他のアプリケーション)内で実行され得る。別の例では、計算は、モバイルコンピューティングデバイスと1つ以上のサーバデバイスとの間で分割され得る。
いくつかの実施形態では、デバイス200は、プロセッサ202と、メモリ204と、入出力(I/O)インターフェース206と、カメラ208と、表示デバイス210とを含む。プロセッサ202は、プログラムコードを実行し、デバイス200の基本動作を制御するための1つ以上のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号もしくは他の情報を処理する任意の適切なハードウェアシステム、機構またはコンポーネントを含む。プロセッサは、1つ以上のコア(たとえば、シングルコア、デュアルコア、またはマルチコア構成)を有する汎用中央処理装置(CPU)、複数の処理ユニット(たとえば、マルチプロセッサ構成)、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、複合プログラマブル論理デバイス(CPLD)、機能実現専用回路、ニューラルネットワークモデルベース処理を実装する専用プロセッサ、神経回路、行列計算(たとえば、行列乗算)に最適化したプロセッサを有するシステムを含んでもよい、または他のシステムを含んでもよい。いくつかの実施形態では、プロセッサ202は、ニューラルネットワーク処理を実装する1つ以上のコプロセッサを含み得る。いくつかの実施形態では、プロセッサ202は、確率的出力を生成するためにデータを処理するプロセッサでもよく、たとえば、プロセッサ202によって生成される出力は、不正確な場合もあり、または予期される出力からの範囲内で正確な場合もある。処理は、特定の地理的位置に限定される必要はなく、時間的な制限もない。たとえば、プロセッサは、リアルタイム、オフライン、バッチモード等でその機能を実行してもよい。処理の一部は、異なる時間に、異なる位置で、異なる(または同じ)処理システムによって実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
メモリ204は、典型的には、プロセッサ202によるアクセスのためにデバイス200内に設けられ、プロセッサまたはプロセッサのセットによる実行のための命令の格納に好適な、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能読取り専用メモリ(EEPROM)、フラッシュメモリ等の任意の好適なプロセッサ読取可能記憶媒体でもよく、プロセッサ202とは別に配置されてもよい、および/またはプロセッサ202と統合されてもよい。メモリ204は、オペレーティングシステム212、他のアプリケーション214、アプリケーションデータ216、および画像管理アプリケーション103を含む、プロセッサ202によってサーバデバイス200上で動作するソフトウェアを記憶することができる。
他のアプリケーション214は、カメラアプリケーション、画像ギャラリまたは画像ライブラリアプリケーション、画像管理アプリケーション、データ表示エンジン、ウェブホスティングエンジンまたはアプリケーション、画像表示エンジンまたはアプリケーション、メディア表示アプリケーション、通信エンジン、通知エンジン、ソーシャルネットワーキングエンジン、メディア共有アプリケーション、マッピングアプリケーションなどのアプリケーションを含み得る。本明細書で開示される1つ以上の方法は、いくつかの環境およびプラットフォームにおいて、たとえば、任意のタイプのコンピューティングデバイス上で実行することができるスタンドアロンコンピュータプログラムとして、ウェブページを有するウェブアプリケーションとして、モバイルコンピューティングデバイス上で実行されるモバイルアプリケーション(「アプリ」)などとして動作可能である。いくつかの実施形態では、他のアプリケーション214は各々、プロセッサ202が、本明細書で説明する機能、たとえば、図3および図4A~図4Bの方法のうちの一部または全てを行うことを可能にする命令を含み得る。
アプリケーションデータ216は、デバイス200用の他のアプリケーション214またはハードウェアによって生成されるデータであり得る。たとえば、アプリケーションデータ216は、カメラ208によって取り込まれた画像、他のアプリケーション214(たとえば、ソーシャルネットワーキングアプリケーション)によって識別されたユーザアクションなどを含み得る。
入出力インターフェース206は、デバイス200を他のシステムおよびデバイスとインターフェースすることを可能にする機能を提供することができる。インターフェースされたデバイスは、デバイス200の一部として含まれ得るか、または別個であり得、デバイス200と通信し得る。たとえば、ネットワーク通信デバイス、ストレージデバイス(たとえば、メモリおよび/またはデータベース199)、ならびに入出力デバイスは、入出力インターフェース206を介して通信することができる。いくつかの実施形態では、入出力インターフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど)および/または出力デバイス(表示デバイス、スピーカデバイス、プリンタ、モータなど)等のインターフェースデバイスに接続することができる。
入出力インターフェース206に接続することができるインターフェースされたデバイスのいくつかの例は、コンテンツ、たとえば、画像、ビデオ、および/または本明細書で説明するような出力アプリケーションのユーザインターフェースを表示するために使用することができる1つ以上の表示デバイス210を含み得る。表示デバイス210は、ローカル接続(たとえば、ディスプレイバス)を介して、および/またはネットワーク接続を介してデバイス200に接続することができ、任意の適切な表示デバイスであり得る。表示デバイス210は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、またはプラズマディスプレイ画面、陰極線管(CRT)、テレビ、モニタ、タッチスクリーン、三次元ディスプレイ画面、または他の視覚表示デバイスなどの任意の好適な表示デバイスを含み得る。たとえば、表示デバイス210は、モバイルデバイス上に提供されるフラットディスプレイ画面、眼鏡フォームファクタもしくはヘッドセットデバイスに埋め込まれた複数のディスプレイ画面、またはコンピュータデバイス用のモニタスクリーンであり得る。
入出力インターフェース206は、他の入力および出力デバイスにインターフェースすることができる。いくつかの例は、画像を取り込むことができる、カメラ208などの1つ以上のカメラを含む。いくつかの実施形態は、音を(たとえば、取り込まれた画像の一部、音声コマンドなどとして)取り込むためのマイクロフォン、音を出力するための音声スピーカデバイス、または他の入力および出力デバイスを提供することができる。
カメラ208は、複数のフレームを含むビデオを取り込むことができる任意のタイプのカメラであり得る。本明細書で使用されるカメラは、任意の画像取り込みデバイスを含み得る。いくつかの実施形態では、カメラ208は、異なる能力、たとえば、前向き対後向き、異なるズームレベル、取り込まれた画像の画像解像度等を有する複数のレンズを含んでもよい。いくつかの実施形態では、デバイス200は、深度センサ、加速度計、位置センサ(たとえば、全地球測位システム(GPS))、ジャイロスコープなどの1つ以上のセンサを含んでもよい。いくつかの実施形態では、1つ以上のセンサは、カメラ208とともに動作して、カメラ208を使用して取り込まれたビデオの異なるフレームに対応するセンサ読取値を取得してもよい。
画像管理アプリケーション103の例
画像管理アプリケーション103は、特徴検出機械学習モジュール218と、ユーザ固有機械学習モジュール220と、圧縮モジュール222と、ユーザインターフェースモジュール224とを含み得る。
画像管理アプリケーション103は、特徴検出機械学習モジュール218と、ユーザ固有機械学習モジュール220と、圧縮モジュール222と、ユーザインターフェースモジュール224とを含み得る。
いくつかの実施形態では、特徴検出機械学習モジュール218は、画像から特徴を識別するために特徴検出機械学習モデルを生成する。たとえば、特徴は、多次元特徴空間(埋め込み)におけるベクトルでもよい。同様の特徴を有する画像は、同様の特徴ベクトルを有してもよく、たとえば、そのような画像の特徴ベクトル間のベクトル距離は、異なる画像間のベクトル距離より小さくてもよい。特徴空間は、画像のさまざまな要因、たとえば、描写された主題(画像内で検出されたオブジェクト)、画像の合成、色情報、画像配向、画像メタデータ、画像内で認識される特定のオブジェクト(たとえば、ユーザの許可を得た既知の顔)等の関数でもよい。
ユーザ固有機械学習モジュール220は、ユーザに関連付けられたユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを生成し得る。ユーザ固有機械学習モジュール220は、ユーザ固有機械学習モデルを使用して、画像内の特徴に基づいて画像の圧縮設定を決定し得る。これによって、有利なことに、ユーザが関心を有するものに基づいてできるだけ高品質の画像を保ちながら、記憶空間が保存される。たとえば、ユーザ固有機械学習モデルは、夕日の画像が高圧縮比で圧縮されるべきであるという指示を出力し得る。たとえば、そのような指示は、特徴検出機械学習モジュール218によって検出された特徴を含む、画像を分析するユーザ固有機械学習モデルに基づいて決定され得る。画像は夕日を含むので、画像がユーザにとって重要ではないと判断する特徴に画像が関連付けられていない場合、圧縮設定は、画像に対して最高レベルの圧縮でなければならない。
特徴検出機械学習モジュール218の例
特徴検出機械学習モジュール218は、入力画像の1つ以上の特徴を決定する特徴検出機械学習モデルを生成する。いくつかの実施形態では、特徴検出機械学習モジュール218は、特徴検出機械学習モデルを生成するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、特徴検出機械学習モジュール218は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能であり得る。
特徴検出機械学習モジュール218は、入力画像の1つ以上の特徴を決定する特徴検出機械学習モデルを生成する。いくつかの実施形態では、特徴検出機械学習モジュール218は、特徴検出機械学習モデルを生成するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、特徴検出機械学習モジュール218は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能であり得る。
いくつかの実施形態では、特徴検出機械学習モジュール218は、訓練済みモデル、具体的には、特徴検出機械学習モデルを生成するために、訓練データを使用してもよい。たとえば、訓練データは、画像(たとえば、静止画像、シネマグラフ/動画像、またはビデオからの画像フレームなど)および任意に、対応する特徴(たとえば、画像内のオブジェクトを識別する、画像の各々と関連付けられたラベルまたはタグ)等の任意の種類のデータを含んでもよい。
たとえば、訓練データは、複数のデジタル画像を含む訓練セットと対応する特徴とを含み得る。いくつかの実施形態では、訓練データは、回転され得るか、または異常な特性(たとえば、画像を取り込むために使用されるカメラのアーチファクト)を有し得るユーザ写真が提供される場合に、モデルに不変性をもたらすために、回転、光シフト、および色シフト等の拡張を有する画像を含んでもよい。訓練データは、任意のソース、たとえば、訓練のために具体的にマークされたデータリポジトリ、機械学習用の訓練データとして使用するための許可が提供されるデータ等から取得されてもよい。1人以上のユーザが、機械学習モデルを訓練するために、それぞれのユーザデータの使用を許可する実施形態では、訓練データは、そのようなユーザデータを含んでもよい。ユーザがそれぞれのユーザデータの使用を許可する実施形態では、データは、画像/ビデオまたは画像/ビデオメタデータ(たとえば、画像、手動のタグまたはラベルを提供するユーザから生じ得る対応する特徴など)、通信(たとえば、ソーシャルネットワーク上のメッセージ;電子メール;テキストメッセージ、音声、ビデオなどのチャットデータ)、文書(たとえば、スプレッドシート、テキスト文書、プレゼンテーションなど)等の許可されたデータを含み得る。
いくつかの実施形態では、訓練データは、訓練されている文脈におけるユーザ入力またはアクティビティに基づかないデータ、たとえば、シミュレーションまたはコンピュータ生成画像/ビデオから生成されたデータ等の、訓練目的で生成された合成データを含んでもよい。いくつかの実施形態では、特徴検出機械学習モジュール218は、別のアプリケーションから取り込まれ、編集されていない/転送された重みを使用する。たとえば、これらの実施形態では、訓練済みモデルは、たとえば、異なるデバイス上で生成され、画像管理アプリケーション103の一部として提供されてもよい。さまざまな実施形態では、訓練済みモデルは、(たとえば、ニューラルネットワークノードの数およびタイプ、ノード間の接続性、ならびにノードの複数の層への編成を定義する)モデル構造または形式と、関連付けられた重みとを含むデータファイルとして提供されてもよい。特徴検出機械学習モジュール218は、訓練済みモデル用のデータファイルを読み取り、訓練済みモデルにおいて指定されたモデル構造または形式に基づいて、ノード接続性、層、および重みを伴うニューラルネットワークを実装してもよい。
特徴検出機械学習モジュール218は、本明細書では特徴検出機械学習モデルと呼ばれる訓練済みモデルを生成する。いくつかの実施形態では、特徴検出機械学習モジュール218は、アプリケーションデータ216(たとえば、入力画像)などのデータに特徴検出機械学習モデルを適用して、入力画像内の1つ以上の特徴を識別し、画像を表す特徴ベクトル(埋め込み)を生成するように構成されている。いくつかの実施形態では、特徴検出機械学習モジュール218は、プロセッサ202によって実行されるソフトウェアコードを含んでもよい。いくつかの実施形態では、特徴検出機械学習モジュール218は、プロセッサ202が特徴検出機械学習モデルを適用することを可能にする回路構成(たとえば、プログラマブルプロセッサの場合、フィールドプログラマブルゲートアレイ(FPGA)の場合など)を指定し得る。いくつかの実施形態では、特徴検出機械学習モジュール218は、ソフトウェア命令、ハードウェア命令、または組み合わせを含んでもよい。いくつかの実施形態では、特徴検出機械学習モジュール218は、特徴検出機械学習モジュール218を呼び出すために、たとえば、入力画像の1つ以上の特徴を決定するために特徴検出機械学習モデルをアプリケーションデータ216に適用するために、オペレーティングシステム212および/または他のアプリケーション214によって使用可能なアプリケーションプログラミングインターフェース(API)を提供してもよい。
いくつかの実施形態では、特徴検出機械学習モデルは、1つ以上のモデル形式または構造を含んでもよい。いくつかの実施形態では、特徴検出機械学習モデルは、サポートベクターマシンを使用することができるが、いくつかの実施形態では、畳み込みニューラルネットワーク(CNN)が好ましい。たとえば、モデル形式または構造は、線形ネットワーク、複数の層(たとえば、入力層と出力層との間の「隠れ層」であり、各層は線形ネットワークである)を実装する深層ニューラルネットワーク、畳み込みニューラルネットワーク(CNN)(たとえば、入力データを複数の部分もしくはタイルに分割または区画し、1つ以上のニューラルネットワーク層を使用して各タイルを別々に処理し、各タイルの処理からの結果を集約するネットワーク)、シーケンス・ツー・シーケンス(sequence-to-sequence)ニューラルネットワーク(たとえば、文中の単語、ビデオ中のフレームなどのシーケンシャルデータを入力として受信し、結果シーケンスを出力として生成するネットワーク)等の任意のタイプのニューラルネットワークを含み得る。
モデル形式または構造は、さまざまなノード間の接続性およびノードの層への編成を指定し得る。たとえば、第1の層(たとえば、入力層)のノードは、入力データまたはアプリケーションデータ216として、データを受信し得る。そのようなデータは、たとえば、特徴検出機械学習モデルが、たとえば、ユーザアカウントと関連付けられた第1の画像等の入力画像の分析のために使用される場合、たとえば、ノードあたり1つ以上のピクセルを含み得る。後続の中間層は、モデル形式または構造において指定される接続性に従って、先行層のノードの出力を入力として受信し得る。これらの層は、隠れ層と呼ばれることもある。最終層(たとえば、出力層)は、機械学習アプリケーションの出力を生成する。たとえば、出力は、入力画像に関連付けられた画像特徴でもよい。いくつかの実施形態では、モデル形式または構造はまた、各層内のノードの数および/またはタイプも指定する。
特徴検出機械学習モジュール218によって出力される特徴は、対象(たとえば、夕日対特定の人);画像に存在する色(緑色の丘対青色の湖);色バランス;光源、角度、および強度;画像内のオブジェクトの位置(たとえば、三分割法に準拠);物体の互いに対する位置(たとえば、被写界深度)、ショットの位置;焦点(前景対背景);または影を含み得る。上述した特徴は人間が理解できるものであるが、出力される特徴は画像を代表する埋め込みまたは他の数学的な値でもよく、人間が解析できるものではない(たとえば、個々の特徴値が存在する色、オブジェクト位置などの特定の特徴に対応していない場合がある)ことが理解されるであろう。しかしながら、訓練済みモデルは、類似した画像について類似した特徴が出力されるように画像に対してロバストであり、有意な相違を有する画像は、相応して異なる特徴を有する。
いくつかの実施形態では、モデル形式は、ネットワーク層を有するCNNであり、各ネットワーク層は、異なる抽象化レベルで画像特徴を抽出する。画像内の特徴を識別するために使用されるCNNは、画像分類のために使用され得る。いくつかの実施形態では、CNNは、画像の特徴を識別するために使用されてもよく、次に、以下で説明されるように、分類層、またはより具体的には、完全接続フィードフォワードニューラルネットワーク出力層をユーザ固有機械学習モデルで置換することによって、転移学習が適用される。いくつかの実施形態では、CNNは、VGGnet、ResNet、AlexNet、Inceptionネットワーク、または画像処理用途と見なされる任意の他の最先端のニューラルネットワークであり、ImageNet等のデジタル画像の訓練セットを使用して訓練される。モデルアーキテクチャは、多次元畳み込み、平均プーリング、最大プーリング、活性化関数、正規化、正則化、および適用される深層ニューラルネットワークのために実際に使用される他の層およびモジュールで構成される層の組合せならびに順序付けを含み得る。
異なる実施形態では、特徴検出機械学習モデルは、1つ以上のモデルを含み得る。モデルの1つまたは複数は、複数のノードを、またはCNNの場合、モデル構造または形式ごとに層に配列されたフィルタバンクを含み得る。いくつかの実施形態では、ノードは、たとえば、1単位の入力を処理して1単位の出力を生成するように構成された、メモリのない計算ノードでもよい。ノードによって実行される計算は、たとえば、複数のノード入力の各々に重みを掛けることと、加重和を取得することと、加重和をバイアスまたは切片値で調整してノード出力を生成することとを含み得る。
いくつかの実施形態では、ノードによって実行される計算はまた、調整された加重和にステップ/活性化関数を適用することを含んでもよい。いくつかの実施形態では、ステップ/活性化関数は非線形関数でもよい。さまざまな実施形態では、そのような計算は、行列乗算などの演算を含み得る。いくつかの実施形態では、複数のノードによる計算は、たとえば、マルチコアプロセッサの複数のプロセッサコアを使用して、GPUの個々の処理ユニットを使用して、または専用ニューラル回路を使用して、並列に実行され得る。いくつかの実施形態では、ノードはメモリを含んでもよく、たとえば、後続の入力を処理する際に1つ以上の以前の入力を格納し、使用することができる。たとえば、メモリを有するノードは、長短記憶メモリ(long short-term memory:LSTM)ノードを含み得る。LSTMノードは、ノードが有限状態機械(finite state machine:FSM)のように作用することを可能にする状態を維持するために、メモリを使用し得る。そのようなノードを有するモデルは、連続データ、たとえば、文または段落内の単語、一連の画像、ビデオ内のフレーム、発話または他の音声等を処理する際に有用であり得る。たとえば、ゲーティングモデルにおいて使用されるヒューリスティックスベースのモデルは、先行画像に対応する1つ以上の以前に生成された特徴を格納し得る。
いくつかの実施形態では、特徴検出機械学習モデルは、個々のノードの埋め込みまたは重みを含んでもよい。たとえば、特徴検出機械学習モデルは、モデル形式または構造によって指定されるような層に編成された複数のノードとして開始されてもよい。初期化において、それぞれの重みが、モデル形式に従って接続される各対のノード、たとえば、ニューラルネットワークの連続層内のノード間の接続に適用され得る。たとえば、それぞれの重みは、ランダムに割り当てられてもよい、またはデフォルト値に初期化されてもよい。特徴検出機械学習モデルは、次に、たとえば、デジタル画像の訓練セットを使用して訓練されて、結果を生成してもよい。いくつかの実施形態では、全アーキテクチャのサブセットは、事前訓練された重みを活用するために、転移学習アプローチとして他の機械学習アプリケーションから再利用されてもよい。
たとえば、訓練は、教師あり学習技術の適用を含み得る。教師あり学習では、訓練データは、複数の入力(たとえば、デジタル画像のセット)と、入力ごとの対応する期待出力(たとえば、画像ごとの1つ以上の特徴)とを含み得る。特徴検出機械学習モデルの出力と期待出力との比較に基づいて、重みの値は、たとえば、特徴検出機械学習モデルが同様の入力を提供されたときに期待出力を生成する確率を高めるように、自動的に調整される。
いくつかの実施形態では、訓練は、教師なし学習技術の適用を含み得る。教師なし学習では、入力データ(たとえば、ラベル付けされた特徴を有する画像)のみが提供されてもよく、特徴検出機械学習モデルは、データを区別するように、たとえば、画像の特徴を複数のグループにクラスタリングするように訓練されてもよく、各グループは、何らかの態様で類似する特徴を有する画像を含む。
さまざまな実施形態では、訓練済みモデルは、モデル構造に対応する重みのセットを含む。デジタル画像の訓練セットが省略される実施形態では、特徴検出機械学習モジュール218は、たとえば、特徴検出機械学習モジュール218の開発者、第三者等によって、事前訓練に基づく特徴検出機械学習モデルを生成してもよい。いくつかの実施形態では、特徴検出機械学習モデルは、固定された、たとえば、重みを提供するサーバからダウンロードされた重みのセットを含んでもよい。
いくつかの実施形態では、特徴検出機械学習モジュール218は、オフライン方式で実装されてもよい。これらの実施形態では、特徴検出機械学習モデルは、第1の段階で生成され、特徴検出機械学習モジュール218の一部として提供され得る。いくつかの実施形態では、特徴検出機械学習モデルのわずかな更新は、オンライン方式で実装されてもよい。そのような実施形態では、特徴検出機械学習モジュール218(たとえば、オペレーティングシステム212、他のアプリケーション214の1つ以上など)を呼び出すアプリケーションは、特徴検出機械学習モジュール218によって生成された特徴検出を利用することができ、たとえば、特徴検出をユーザ固有機械学習モジュール220に提供することができ、システムログ(たとえば、ユーザによって許可される場合、特徴検出に基づいてユーザによって取られるアクションであり、さらに別の処理のための入力として利用される場合、さらに別の処理の結果である)を生成することができる。システムログは、定期的に、たとえば、時間ごと、月ごと、四半期ごとなどに生成されてもよく、ユーザの許可を得て、特徴検出機械学習モデルを更新するために、たとえば、特徴検出機械学習モデルの埋め込みを更新するために使用されてもよい。
いくつかの実施形態では、特徴検出機械学習モジュール218は、特徴検出機械学習モジュール218が実行されるデバイス200の特定の構成に適合可能な方式で実装され得る。たとえば、特徴検出機械学習モジュール218は、利用可能な計算リソース、たとえばプロセッサ202を利用する計算グラフを決定し得る。たとえば、特徴検出機械学習モジュール218が複数のデバイス上の分散アプリケーションとして実装される場合、特徴検出機械学習モジュール218は、計算を最適化する態様で個々のデバイス上で実行される計算を決定し得る。別の例では、特徴検出機械学習モジュール218は、プロセッサ202が特定の数(たとえば、1000個)のGPUコアを有するGPUを含むと判断し、それに応じて(たとえば、1000個の個々のプロセスまたはスレッドとして)特徴検出機械学習モジュール218を実装することができる。
いくつかの実施形態では、特徴検出機械学習モジュール218は、訓練済みモデルのアンサンブルを実装してもよい。たとえば、特徴検出機械学習モデルは、同じ入力データに各々適用可能である複数の訓練済みモデルを含み得る。これらの実施形態では、特徴検出機械学習モジュール218は、たとえば、利用可能な計算リソース、以前の推論による成功率等に基づいて、特定の訓練済みモデルを選択してもよい。
いくつかの実施形態では、特徴検出機械学習モジュール218は、複数の訓練済みモデルを実行してもよい。これらの実施形態では、特徴検出機械学習モジュール218は、たとえば、各々の訓練済みモデルの適用からの個々の出力を得点付けする投票技法を使用して、または1つ以上の特定の出力を選択することによって、個々のモデルの適用からの出力を組み合わせてもよい。いくつかの実施形態では、そのようなセレクタは、モデル自体の一部であり、訓練済みモデル間の接続層として機能する。さらに、これらの実施形態では、特徴検出機械学習モジュール218は、個々の訓練済みモデルを適用するための時間閾値(たとえば、0.5ms)を適用し、この時間閾値内で利用可能な個々の出力のみを利用することができる。時間閾値内に受信されない出力は、利用されなくてもよい、たとえば破棄されてもよい。たとえば、そのようなアプローチは、たとえば、オペレーティングシステム212または1つ以上のアプリケーション612によって、特徴検出機械学習モジュール218を呼び出す間に指定される時間制限がある場合に好適なことがある。
ユーザ固有機械学習モジュール200の例
ユーザ固有機械学習モジュール220は、特徴検出機械学習モジュール218によって分析された同じ入力画像の圧縮設定を決定するユーザ固有機械学習モデルを生成する。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、ユーザ固有機械学習モデルを生成するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
ユーザ固有機械学習モジュール220は、特徴検出機械学習モジュール218によって分析された同じ入力画像の圧縮設定を決定するユーザ固有機械学習モデルを生成する。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、ユーザ固有機械学習モデルを生成するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
いくつかの実施形態では、ユーザ固有機械学習モジュール220は、訓練済みモデル、具体的には、ユーザ固有機械学習モデルを生成するために訓練データを使用してもよい。訓練データは、特徴検出機械学習モデルのための1つ以上の先行画像を参照したユーザアクションを示すユーザ固有の特徴等の、任意の種類のデータを含み得る。たとえば、ユーザ固有の特徴は、ユーザが画像に関心を有する程度を示してもよい。画像がお気に入りである(たとえば、明示的なユーザ入力を介してお気に入りとしてマークされている)と示すことは、圧縮されるべきでない重要な画像と見なされ得る。ユーザ固有の特徴の他の例は、画像内の他のユーザのタグ付け;画像の共有;フォトアルバムまたは他の画像ベースの創作物の作成;画像に対するコメント;ユーザにとって重要なメタデータ、たとえば、画像が重要な場所で取り込まれたことを示すジオロケーションデータ;画像のダウンロード、画像の編集、画像の印刷の注文;画像の編集;ユーザが画像を好むかどうかをユーザに明示的に尋ねるデータ等のいずれか等のユーザアクションを含み得る。いくつかの実施形態では、ユーザアクションは、画像内の関心のある信号として別のユーザの画像に対するコメントの感情を判断するために自然言語処理を使用すること、別のユーザの画像に対する承認(たとえば、いいね)を示すこと、別のユーザの画像を保存すること、別のユーザの画像をダウンロードすることなど、別のユーザの画像に対するアクションを含んでもよい。これらのユーザアクションは、画像の値の信号であり、モデルへの入力として使用することができる。
訓練データは、任意のソース、たとえば、訓練のために具体的にマークされたデータリポジトリ、機械学習用の訓練データとして使用するための許可が提供されるデータ等から取得され得る。1人以上のユーザが、機械学習モデルを訓練するためにそれぞれのユーザデータの使用を許可する実施形態では、訓練データは、そのようなユーザデータを含んでもよい。ユーザがそれぞれのユーザデータの使用を許可する実施形態では、データは、画像/ビデオまたは画像/ビデオメタデータ(たとえば、画像、画像の対応する特徴、ユーザに関連付けられたユーザ固有の特徴、ユーザ固有の特徴が1つ以上の先行画像を参照してどのようにユーザアクションを示すかの説明など)、通信(たとえば、ソーシャルネットワーク上のメッセージ;電子メール;テキストメッセージ、音声、ビデオなどのチャットデータ)、文書(たとえば、スプレッドシート、テキスト文書、プレゼンテーションなど)等の許可されたデータを含み得る。いくつかの実施形態では、1つ以上の特徴をどのように識別するかに関する特徴検出機械学習モデルを生成するために特徴検出機械学習モジュール218によって使用された先行画像は、ユーザ固有機械学習モジュール220によって、ユーザアクションを示すユーザ固有の特徴と先行画像のそれぞれの画像特徴とに基づいて圧縮設定を決定するためのユーザ固有機械学習モデルを生成するために使用される。
たとえば、訓練済みモデルは、たとえば、異なるデバイス上で生成されてもよく、画像管理アプリケーション103の一部として提供されてもよい。さまざまな実施形態では、訓練済みモデルは、(たとえば、ニューラルネットワークノードの数およびタイプ、ノード間の接続性、およびノードの複数の層への編成を定義する)モデル構造または形式と、関連付けられた重みとを含むデータファイルとして提供されてもよい。ユーザ固有機械学習モジュール220は、訓練済みモデル用のデータファイルを読み取り、訓練済みモデルにおいて指定されたモデル構造または形式に基づいて、ノード接続性、層、および重みを有するニューラルネットワークを実装し得る。
ユーザ固有機械学習モジュール220は、本明細書ではユーザ固有機械学習モデルと呼ばれる訓練済みモデルを生成する。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、圧縮モジュール222用のデータなどのデータにユーザ固有機械学習モデルを適用して、入力画像用の圧縮設定を識別するように構成されている。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、プロセッサ202によって実行されるソフトウェアコードを含んでもよい。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、プロセッサ202がユーザ固有機械学習モデルを適用することを可能にする(たとえば、プログラマブルプロセッサ用、フィールドプログラマブルゲートアレイ(FPGA)用などの)回路構成を指定してもよい。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、ソフトウェア命令、ハードウェア命令、または組み合わせを含んでもよい。
いくつかの実施形態では、ユーザ固有機械学習モデルは、1つ以上のモデル形式または構造を含んでもよい。たとえば、モデル形式または構造は、線形ネットワーク、多層フィードフォワード完全接続ニューラルネットワーク、CNN、または上記でより詳細に論じたようなシーケンス・ツー・シーケンスニューラルネットワークなどのディープニューラルネットワークといった、任意のタイプのニューラルネットワークを含み得る。
モデル形式または構造は、さまざまなノード間の接続性およびノードの層への編成を指定し得る。たとえば、第1の層(たとえば、入力層)のノードは、入力データまたはアプリケーションデータ216としてデータを受信し得る。そのようなデータは、たとえば、特徴検出機械学習モデルが、たとえば、画像と関連付けられたユーザアクションを示すユーザ固有特徴の分析のために使用される場合、たとえば、ノードあたり1つ以上のユーザ固有特徴を含み得る。後続の中間層は、モデル形式または構造において指定される接続性に従って、先行層のノードの出力を入力として受信し得る。これらの層は隠れ層と呼ばれることもある。最終層(たとえば、出力層)は、機械学習アプリケーションの出力を生成する。たとえば、出力は、ユーザ固有の特徴に基づく画像の圧縮設定でもよい。より具体的には、出力は、ユーザが画像に関心を有する程度の判定でもよく、これは、ユーザ固有機械学習モジュール220が圧縮設定にマッピングする画像に対するレーティングに対応する。いくつかの実施形態では、モデル形式または構造は、各層内のノードの数および/またはタイプも指定する。
ユーザ固有機械学習モデルは、ユーザ固有機械学習モデルに供給される入力画像から特徴を識別するために、特徴検出機械学習モジュール218から入力を受信する。入力によって、特徴検出機械学習モデルが入力画像から特徴を識別し、入力画像がユーザにとって興味深いかどうかを決定することが可能になる。ユーザ固有機械学習モデルは、写真の共有、写真の閲覧などの信号に基づいて、ユーザが画像内のどの特徴に関心があるかを識別するために、ユーザアクションを示すユーザ固有の特徴に対して訓練される。いくつかの実施形態では、信号は、ユーザに対する相対的重要度を明示的に推定するためのラベル(たとえば、ユーザランキング、写真上の星、少なくとも1つのシェア、x回のビューなど)である。いくつかの実施形態では、これらは、クラスタを作成するためにスタックランクに配置されてもよい。クラスタ内で、ユーザ固有機械学習モデルは、特徴検出アルゴリズムを使用して類似性メトリックを生成し、次に類似性メトリックを使用してユーザに対する相対的重要度を推定する。
利用可能なユーザ固有の特徴が存在しないいくつかの実施形態では、ユーザ固有機械学習モデルは、ベースライン圧縮設定を生成してもよい。たとえば、ベースライン圧縮設定は、他のユーザからのユーザ入力から生成されてもよく、入力は、ぼけ具合または関心の低い画像の他のタイプの指標に基づく画像のランキングである。
ユーザ固有機械学習モデルの出力は、1~5、1~10などのスケールまたは回帰出力(アナログ値)、たとえば7.83790を使用するなど、ユーザの関心レベルを識別するレーティングであり得る。ユーザ固有機械学習モデルは、レーティングを圧縮率などの圧縮設定にマッピングし得る。以下は、レーティングが圧縮比にどのようにマッピングされ得るかの例である。この例では、レーティングが1の場合、圧縮画像は、元の画像の元の解像度の0.2を占めることになる。
上記の例は、圧縮比にマッピングされたレーティングを含む圧縮設定について説明しているが、圧縮設定の他の例も可能である。たとえば、ユーザ固有機械学習モデルは、圧縮技術、画像フォーマット(たとえば、JPEG、WebP、HEIF等の使用)、最適化のために選択されたパラメータ(たとえば、ダイナミックレンジ、画像解像度、色、圧縮が漸進的であるか否か)などを決定し得る。別の例では、圧縮設定は、画像内の1つ以上の特徴を高解像度に保ち、画像内の1つ以上の関心領域を決定することなどによって画像の残りを圧縮するという決定でもよい。別の例では、ユーザ固有機械学習モデルが画像内の異なる特徴に対するレーティングを決定することに加えて、ユーザ固有機械学習モデルはまた、品質トレードオフが特定のタイプの画像に対して考慮されると決定してもよい。たとえば、ダイナミックレンジは夕日画像にとって極めて重要な場合があり、解像度はクローズアップにとってより重要な場合がある、などである。
さらに別の例では、ユーザ固有機械学習モデルはまた、異なる特徴が同じ画像に含まれる場合にレーティングを適用する態様を示し得る。たとえば、画像に夕日が含まれていれば通常5レーティングを有し、食物を含む場合は2レーティングを有する場合、ユーザ固有機械学習モデルは、最も関心が高いことを示すレーティング、すなわち5レーティングを適用し得る。別の実施形態では、ユーザ固有機械学習モデルは、画像に対する特定のユーザの反応が、複数の特徴に対するレーティングが平均化されるべきであること、特定の特徴がより高い重みと関連付けられるべきであることなどを示唆すると判断してもよい。
いくつかの実施形態では、ユーザ固有機械学習モデルは、入力画像のレーティングが重要度閾値を満たすと判断してもよく、レーティングが重要度閾値を満たすことに応答して、ユーザ固有機械学習モデルは、ユーザが入力画像を共有するという提案を提供する。別の実施形態では、レーティングが重要度閾値を満たすことに応答して、ユーザ固有機械学習モデルは、重要度閾値を満たさない、ユーザアカウントに関連付けられた他の画像よりも入力画像のバックアップを優先する。たとえば、クライアントデバイス115がインターネットアクセスが制限されたエリア内に位置する場合、ユーザ固有機械学習モデルは、クライアントデバイス115に、格納のためにサーバシステム101に転送されるべき最高のレーティングを有する(またはレーティングに基づいて降順でソートされた)画像を送信するように指示し得る。別の実施形態では、レーティングが重要度閾値を満たすことに応答して、ユーザ固有機械学習モデルは、後続画像内に描写されるシーンが入力画像の1つ以上の特徴のうちの少なくとも1つを有する場合、ユーザインターフェースモジュール220に、後続画像の取り込みのための命令を含むユーザインターフェースを提供するように指示する。たとえば、ユーザが植物の写真を撮ることに関心がある場合、ユーザインターフェースは、写真に水滴が付くと花弁をぼかすかもしれないとユーザに知らせることができる。別の例では、関心のある特徴が画像内で観察される場合、カメラは、関心のある特徴にオートフォーカスをロックする(および、ユーザがタップで焦点を変更することを可能にする)ことができる。
異なる実施形態では、ユーザ固有機械学習モデルは、1つ以上のモデルを含み得る。モデルのうちの1つ以上は、モデル構造または形式ごとに層内に配列される複数のノードを含み得る。いくつかの実施形態では、ノードは、たとえば、1単位の入力を処理して1単位の出力を生成するように構成された、メモリのない計算ノードでもよい。ノードによって実行される計算は、たとえば、複数のノード入力の各々に重みを掛けることと、加重和を取得することと、加重和をバイアスまたは切片値で調整してノード出力を生成することとを含み得る。いくつかの実施形態では、ノードによって実行される計算はまた、調整された加重和にステップ/活性化関数を適用することを含んでもよい。いくつかの実施形態では、ステップ/活性化関数は非線形関数でもよい。
さまざまな実施形態では、そのような計算は、行列乗算などの演算を含み得る。いくつかの実施形態では、複数のノードによる計算は、たとえば、マルチコアプロセッサの複数のプロセッサコアを使用して、GPUの個々の処理ユニットを使用して、または専用ニューラル回路を使用して、並列に実行されてもよい。いくつかの実施形態では、ノードはメモリを含んでもよく、たとえば、後続の入力を処理する際に1つ以上の以前の入力を格納し、使用してもよい。たとえば、メモリを有するノードは、LSTMノードを含み得る。LSTMノードは、ノードがFSMのように作用することを可能にする状態を維持するために、メモリを使用し得る。
いくつかの実施形態では、ユーザ固有機械学習モデルは、個々のノードに対する埋め込みまたは重みを含み得る。たとえば、ユーザ固有機械学習モデルは、モデル形式または構造によって指定されるような層に編成された複数のノードとして開始されてもよい。初期化において、それぞれの重みが、モデル形式に従って接続される各対のノード、たとえば、ニューラルネットワークの連続層内のノードの間の接続に適用され得る。たとえば、それぞれの重みは、ランダムに割り当てられてもよい、またはデフォルト値に初期化されてもよい。次に、ユーザ固有機械学習モデルは、結果を生成するために、たとえば、ユーザ固有の訓練セットを使用して訓練され得る。
訓練は、教師あり学習技術を適用することを含み得る。教師あり学習では、訓練データは、複数の入力(たとえば、異なるタイプの画像に与えられるレーティング)と、入力ごとの対応する期待出力(たとえば、圧縮設定)とを含み得る。特徴検出機械学習モデルの出力(たとえば、予測レーティング)と期待出力(たとえば、ユーザによって提供されるレーティング)との比較に基づいて、重みの値は、たとえば、同様の入力が与えられた場合にユーザ固有機械学習モデルが期待出力を生成する確率を高めるように、自動的に調整される。ユーザに関連付けられた画像の異なるタイプのカテゴリについてユーザによって提供されるレーティングの一例は、以下に含まれる。この例では、最低のレーティングが最も低い重要度に関連付けられ、最高のレーティングが最も高い重要度に関連付けられている。
さまざまな実施形態では、訓練済みモデルは、モデル構造に対応する重みまたは埋め込みのセットを含む。デジタル画像の訓練セットが省略される実施形態では、ユーザ固有機械学習モジュール220は、たとえば、ユーザ固有機械学習モジュール220の開発者、第三者などによる事前の訓練に基づくユーザ固有機械学習モデルを生成し得る。いくつかの実施形態では、ユーザ固有機械学習モデルは、固定された、たとえば、重みを提供するサーバからダウンロードされた重みのセットを含んでもよい。
ユーザ固有機械学習モジュール220は、オフライン方式で、および/または訓練済みモデルのアンサンブルとして、異なるフォーマットで実装され得る。これは、特徴検出機械学習モジュール218を参照して上述されたので、同じ説明がユーザ固有機械学習モジュール220にも当てはまるであろうことが理解される。したがって、再度の説明は繰り返さない。
圧縮モジュール222の例
圧縮モジュール222は、ユーザ固有機械学習モジュール220により決定された圧縮設定に基づいて、入力画像を圧縮する。いくつかの実施形態では、圧縮モジュール222は、入力画像を圧縮するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、圧縮モジュール222は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
圧縮モジュール222は、ユーザ固有機械学習モジュール220により決定された圧縮設定に基づいて、入力画像を圧縮する。いくつかの実施形態では、圧縮モジュール222は、入力画像を圧縮するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、圧縮モジュール222は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
圧縮モジュール222は、特徴検出機械学習モジュール218から入力画像を、ユーザ固有機械学習モジュール220から圧縮設定を受信し得る。圧縮モジュール222は、入力画像に圧縮設定を適用する。圧縮モジュール222は、ファイルサイズを縮小して、メモリ204および/または画像が格納されることになるストレージデバイスをより効率的に使用するために、元の入力画像を圧縮された入力画像に置き換え得る。いくつかの実施形態では、圧縮モジュール222は、圧縮された入力画像を格納のために別の場所に送信してもよい。たとえば、画像管理アプリケーション103bがクライアントデバイス115aの一部である場合、圧縮モジュール222は、圧縮された入力画像を格納のためにサーバシステム101に送信し得る。
ユーザインターフェースモジュール224の例
ユーザインターフェースモジュール224は、ユーザからの入力を受信するユーザインターフェースを生成する。いくつかの実施形態では、ユーザインターフェースモジュール224は、入力画像を圧縮するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、ユーザインターフェースモジュール224は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
ユーザインターフェースモジュール224は、ユーザからの入力を受信するユーザインターフェースを生成する。いくつかの実施形態では、ユーザインターフェースモジュール224は、入力画像を圧縮するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、ユーザインターフェースモジュール224は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
いくつかの実施形態では、ユーザインターフェースモジュール224は、画像管理アプリケーション103に関連する異なる設定を変更するためのユーザインターフェースを生成する。いくつかの実施形態では、ユーザインターフェースモジュール224は、ベースライン圧縮設定を決定するために、ユーザインターフェースを生成し、ユーザ入力を受信する。たとえば、ユーザインターフェースモジュール224は、ユーザアカウントに関連付けられたユーザによって閲覧可能なユーザインターフェースを生成し得る。
ユーザインターフェースは、2つ以上のバージョンのサンプル画像を含んでもよく、画像の各々は、異なる圧縮設定で圧縮される。ユーザインターフェースは、ユーザに、ユーザアカウントのベースライン圧縮設定として特定のバージョンのサンプル画像を識別するように要求するプロンプトを含み得る。たとえば、ベースライン圧縮設定は、ユーザがユーザアカウントに関連付けられた画像に対して受け入れる最低の圧縮設定を表し得る。ユーザインターフェースモジュール224は、ベースライン圧縮設定の精度を確認するために、ベースライン圧縮設定に関するユーザ入力を複数回要求し得る。たとえば、ユーザインターフェースモジュール224は、異なる特徴を有する画像を提供し、ユーザインターフェースを周期的に(週に1回、月に1回、画像管理アプリケーション103のソフトウェア更新があるたびに)表示したりしてもよい。
いくつかの実施形態では、ユーザインターフェースモジュール224は、ユーザの選択に応答して警告を生成してもよい。たとえば、ユーザが高解像度圧縮設定を選択するか、または圧縮設定を全く選択しない場合、ユーザインターフェースモジュール224は、記憶空間が、ある日数で、またはある数の付加的な画像が取り込まれた後に使い果たされるであろうとユーザに警告してもよい。この推定は、ユーザが最後のx日間にアップロードした写真サイズの平均に基づいて行われてもよい。
ユーザインターフェースモジュール224は、入力画像の圧縮設定の決定に使用するために、ユーザの選択結果をユーザ固有機械学習モジュール220に送信し得る。次に、機械学習モジュール220は、ベースライン圧縮設定に基づいて、レーティングを圧縮設定にマッピングし得る。
メモリ204内のソフトウェアのいずれも、代替として、任意の他の好適な記憶場所またはコンピュータ読取可能媒体上に格納することができる。さらに、メモリ204(および/または他の接続されたストレージデバイス(複数可))は、1つ以上のメッセージ、1つ以上のタクソノミー、電子百科事典、辞書、シソーラス、知識ベース、メッセージデータ、文法、ならびに/または本明細書で説明する特徴で使用される他の命令およびデータを格納することができる。メモリ204および任意の他のタイプのストレージ(磁気ディスク、光ディスク、磁気テープ、または他の有形媒体)は、「ストレージ」または「ストレージデバイス」と見なすことができる。
説明を容易にするために、図2は、プロセッサ202、メモリ204、入出力インターフェース206、カメラ208、表示デバイス210、ならびにソフトウェアブロック103,218,220,220,222および224の各々について、1つのブロックを示す。これらのブロックは、1つ以上のプロセッサまたは処理回路、オペレーティングシステム、メモリ、入出力インターフェース、アプリケーション、および/またはソフトウェアモジュールを表し得る。他の実施形態では、デバイス200は、示されるコンポーネントの全てを有さなくてもよい、および/または、本明細書に示されるものの代わりに、もしくはそれらに加えて、他の種類の要素を含む他の要素を有してもよい。いくつかのコンポーネントは、本明細書のいくつかの実施形態で説明されるようなブロックおよび動作を実行するものとして説明されるが、環境100、デバイス200、同様のシステム、またはそのようなシステムの任意の適切なコンポーネントもしくはコンポーネントの組み合わせ、またはそのようなシステムに関連する任意の適切な1つもしくは複数のプロセッサは、説明されるブロックおよび動作を実行してもよい。
本明細書で説明する方法は、コンピュータ上で実行可能なコンピュータプログラム命令またはコードによって実装可能である。たとえば、コードは、1つ以上のデジタルプロセッサ(たとえば、マイクロプロセッサまたは他の処理回路)によって実装することができ、非一時的コンピュータ読取可能媒体(たとえば、記憶媒体)、たとえば、半導体または固体メモリ、磁気テープ、取り外し可能コンピュータディスケット、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、磁気ハードディスク、光ディスク、固体メモリドライブなどの磁気、光学、電磁、または半導体記憶媒体などを含むコンピュータプログラム製品上に格納することができる。プログラム命令はまた、たとえば、サーバ(たとえば、分散システムおよび/またはクラウドコンピューティングシステム)から配信されるソフトウェア・アズ・ア・サービス(SaaS)の形式で、電子信号に含まれることも、電子信号として提供されることも可能である。または、1つ以上の方法は、ハードウェア(論理ゲートなど)において、またはハードウェアとソフトウェアとの組合せにおいて実装可能である。ハードウェアの例は、プログラマブルプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブル論理デバイス)、汎用プロセッサ、グラフィックプロセッサおよび特定用途向け集積回路(ASIC)などであり得る。1つ以上の方法は、システム上で実行されるアプリケーションの一部もしくはコンポーネントとして、または他のアプリケーションおよびオペレーティングシステムと連携して実行されるアプリケーションもしくはソフトウェアとして実行することができる。
方法例
図3は、いくつかの実施形態に係る、入力画像302内の1つ以上の特徴306を識別するために特徴検出機械学習モデル304を使用し、画像の1つ以上の特徴から圧縮設定310を決定するためにユーザ固有機械学習モデル308を使用する方法300の例を示すフロー図である。
図3は、いくつかの実施形態に係る、入力画像302内の1つ以上の特徴306を識別するために特徴検出機械学習モデル304を使用し、画像の1つ以上の特徴から圧縮設定310を決定するためにユーザ固有機械学習モデル308を使用する方法300の例を示すフロー図である。
特徴検出機械学習モデル304は、画素からより抽象的なオブジェクトへと構築する層のセットを有する畳み込みニューラルネットワーク(CNN)などのディープニューラルネットワークを含み得る。いくつかの実装例では、CNNのより初期の層がエッジを検出し、層が深くなるにつれて、人間が定義した特徴の意味が増す。たとえば、中間段階の層は、オブジェクトのコンポーネントを検出することができ、後の段階の層は、オブジェクト(または顔)自体を検出することができる。
入力画像302は、特徴検出機械学習モデル304への入力として提供される。入力画像302は、ユーザアカウントに関連付けられたユーザからのものである。入力画像302は、層のセットのうちの入力層によって受信され得る。入力層は、層のセットのうちの第2の層に接続され得る。いくつかの実施形態では、1つ以上の追加の層は各々、入力として先行層の出力を受け取り、次の層に入力を与える。特徴検出機械学習モデル304は、入力画像302に基づいて1つ以上の特徴306を生成する。層のセットのうちの最後の層は出力層であり得る。この例を続けると、出力層は、1つ以上の特徴306を出力し得る。
いくつかの実施形態では、出力は、特徴の各々が画像内で正確に識別された対応する確率を含んでもよい。特徴検出機械学習モデル304の出力は、数のベクトル、確率値、または確率値のセット(たとえば、各々がビデオフレームの特定のスタックに対応する)であり得る。特徴検出機械学習モデル304の出力は、ユーザ固有機械学習モデル308への入力として提供される。
ユーザ固有機械学習モデル308はまた、CNNなどのディープニューラルネットワークを含み得る。いくつかの実施形態では、ユーザ固有機械学習モデル308は、特徴検出機械学習モデル304の分類層を、ユーザに関連付けられたユーザ固有の特徴で訓練されるコンポーネントで置き換えることによって、転移学習を使用して生成されてもよく、ユーザ固有の特徴は、先行画像を参照したユーザアクションを示す。いくつかの実施形態では、先行画像はまた、特徴検出機械学習モデル304を訓練するために使用される。
ユーザ固有機械学習モデル308は、入力層を介して1つ以上の特徴306を受信し得る。入力層は、複数の層のうちの第2の層に接続され得る。いくつかの実施形態では、各々が入力として前の層の出力を受信し、次の層に入力を提供する1つ以上の追加の層が、ユーザ固有機械学習モデル308に含まれてもよい。ユーザ固有機械学習モデル308の最後の層は、出力層であり得る。いくつかの実装例では、モデル308は、圧縮設定310を直接出力するただ1つの入力層を有してもよい。
ユーザ固有機械学習モデル308は、出力として圧縮設定310(予測310)、および任意に、圧縮設定310に関連する確率を生成し得る。いくつかの実施形態では、圧縮設定310は、入力画像302内の1つ以上の特徴に対する1つ以上のレーティングを含んでもよい。確率は、確率値、確率値のセット(たとえば、各々は、入力画像302における特定の特徴に対するレーティングに対応する)、またはユーザ固有機械学習モデル308の出力層によって生成されたベクトル表現を含み得る。
いくつかの実施形態では、方法300は、たとえば、画像管理アプリケーション103bの一部として、クライアントデバイス115a,115nのうちの1つ以上で実装されてもよい。いくつかの実施形態では、方法300は、たとえば、画像管理アプリケーション103aの一部として、サーバデバイス104上で実装されてもよい。いくつかの実施形態では、方法300は、サーバデバイス104上で、およびクライアントデバイス115a,115nのうちの1つまたは複数上で実装されてもよい。
いくつかの実施形態では、方法300は、汎用プロセッサ、たとえば、デバイスの中央処理装置(CPU)上で実行可能なソフトウェアとして実装されてもよい。いくつかの実施形態では、方法300は、専用プロセッサ、たとえば、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、機械学習プロセッサなどで実行可能なソフトウェアとして実装されてもよい。いくつかの実施形態では、方法300は、専用ハードウェアとして、たとえば特定用途向け集積回路(ASIC)として実装されてもよい。
図4は、いくつかの実施形態に係る、訓練モデルを作成するための方法400の例を示すフロー図である。
方法400は、ブロック402で開始することができる。ブロック402において、ユーザデータの使用に対するユーザ同意が取得されたかどうかが判断される。たとえば、ユーザインターフェースモジュール224は、ユーザに、特徴検出機械学習モデルおよび/またはユーザ固有機械学習モデルの生成においてユーザデータを使用する許可を要求するユーザインターフェースを生成し得る。ユーザ同意が得られなかった場合、ブロック404において、特徴検出機械学習モデルおよび/またはユーザ固有機械学習モデルの代わりに、ベースラインモデルが使用される。
ユーザの同意が得られた場合、方法400はブロック406に進むことができ、デジタル画像の訓練セットと対応する特徴とが得られる。ブロック406の後にブロック408が続く場合がある。ブロック408では、特徴検出機械学習モデルが、訓練セットと対応する特徴とに基づいて訓練され、訓練後、特徴検出機械学習モデルは、特徴検出機械学習モデルに提供される入力画像内の画像特徴を識別することができる。ブロック408の後にブロック410が続く場合がある。
ブロック410において、ユーザに関連付けられたユーザ固有の特徴の訓練セットが取得され、ユーザ固有の特徴は、1つ以上の先行画像を参照したユーザアクションを示す。いくつかの実施形態では、先行画像はデジタル画像のセットと同じである。ブロック410の後にブロック412が続く場合がある。ブロック412において、ユーザ固有機械学習モデルは、ユーザ固有の特徴と1つ以上の先行画像とに基づいて訓練され、訓練後、ユーザ固有機械学習モデルは、ユーザ固有機械学習モデルに提供される入力画像のレーティングを決定する。
図5は、いくつかの実施形態に係る、モデルを入力画像に適用するための方法500の例を示すフロー図である。
ブロック502において、ユーザアカウントに関連付けられた入力画像が取得される。ブロック502の後にブロック504が続く場合がある。ブロック504において、特徴検出機械学習モデルを使用して、入力画像の1つ以上の特徴が決定される。ブロック504の後にブロック506が続く場合がある。ブロック506において、入力画像内の圧縮設定は、ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、入力画像内の1つ以上の特徴に基づいて決定される。ブロック506の後にブロック508が続く場合がある。ブロック508において、入力画像は圧縮設定に基づいて圧縮される。
訓練の前に、ノードの各々に初期重みを割り当ててもよく、ニューラルネットワークの異なる層のノード間の接続を初期化してもよい。訓練は、1つ以上のノードの重みおよび/または1つ以上のノードのペア間の接続を調整することを含み得る。
いくつかの実施形態では、訓練セットのサブセットが、初期訓練段階において除外されてもよい。このサブセットは、初期訓練段階の後に提供されてもよく、予測の精度(ビデオを分析するかどうかの指示)が決定されてもよい。精度が閾値を下回る場合、モデルがそれらの出力を正確に予測するまでモデルパラメータを調整するように、訓練セットからのそれぞれの追加のデジタル画像またはユーザ固有の特徴を用いて、さらに別の訓練が行われてもよい。
さらに別の訓練(第2の段階)は、たとえば、モデルが満足のいくレベルの精度を達成するまで、任意の回数繰り返されてもよい。いくつかの実施形態では、訓練済みモデルは、さらに修正されてもよく、たとえば、(より少ないノードまたは層を使用するために)圧縮されてもよく、(たとえば、異なるタイプのハードウェア上で使用可能になるために)変換されてもよい。いくつかの実施形態では、モデルの異なるバージョンが提供されてもよく、たとえば、モデルのクライアントバージョンは、サイズについて最適化されてもよく、計算複雑性が低減されてもよく、一方、モデルのサーババージョンは、精度について最適化されてもよい。
図4Aおよび図4Bのさまざまなブロックを参照して方法400,450について説明してきたが、本開示で説明する技法は、図4Aおよび図4Bのブロックのうちの一部を実行せずに実行可能であることが理解されるであろう。いくつかの実施形態では、図4Aおよび図4Bに示すブロックのうちの1つまたは複数を組み合わせてもよい。
さらに、訓練セットを参照して訓練について説明したが、特徴検出機械学習モデルおよびユーザ固有機械学習モデルは、動作中に訓練されてもよい。たとえば、ユーザが特定の圧縮設定を使用して画像が圧縮されることを要求する場合、特徴検出機械学習モデルおよびユーザ固有機械学習モデルは、ユーザ情報を含むように更新され得る。いくつかの実施形態では、ユーザは、手動で注釈を提供してもよく、たとえば、特徴のリストと、それらの特徴の対応するレーティングとを提供する。ユーザの許可を得て、いくつかの実施形態は、そのような注釈を利用して、特徴検出機械学習モデルおよびユーザ固有機械学習モデルを訓練してもよい。
その特定の実施形態に関して説明されているが、これらの特定の実施形態は単なる例示であり、制限的なものではない。例において例示される概念は、他の例および実施形態に適用されてもよい。
本明細書で論じられる特定の実施形態がユーザに関する個人情報(たとえば、ユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの場所およびその場所における時間、ユーザのバイオメトリック情報、ユーザの活動および人口統計情報)を収集または使用し得る状況では、ユーザには、情報が収集されるかどうか、個人情報が格納されているかどうか、個人情報が使用されるかどうか、および情報がユーザに関してどのように収集され、格納され、使用されるかを制御する1つ以上の機会が提供される。すなわち、本明細書で論じられるシステムおよび方法は、特に、そうするための明示的な承認を該当するユーザから受信すると、ユーザ個人情報を収集、格納、および/または使用する。ユーザは、これらのモデルを永久的に削除する能力を有する。
たとえば、ユーザには、プログラムまたは機能が、その特定のユーザまたはプログラムもしくは機能に関連する他のユーザに関連するユーザ情報を収集するかどうかに対する制御が提供される。個人情報が収集されるべき各ユーザには、そのユーザに関連する情報収集を制御し、情報が収集されるかどうか、および情報のどの部分が収集されるかについて許可または承認を与えることができる1つ以上のオプションが提示される。たとえば、ユーザには、通信ネットワークを介して1つ以上のそのような制御オプションが提供され得る。くわえて、特定のデータは、個人的に識別可能な情報が除去されるように、格納または使用される前に1つ以上の方法で処理されてもよい。一例として、ユーザのアイデンティティは、個人的に識別可能な情報が判断できないように扱われてもよい。別の例として、クライアントデバイスの地理的位置は、ユーザの特定の位置を判断することができないように、より大きい領域に一般化されてもよい。
なお、本開示で説明した機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組合せに統合または分割され得る。任意の好適なプログラミング言語およびプログラミング技法が、特定の実施形態のルーチンを実装するために使用され得る。異なるプログラミング技法、たとえば、手続き型またはオブジェクト指向の技法が採用されてもよい。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行され得る。ステップ、動作、または計算は、特定の順序で提示され得るが、順序は、異なる特定の実施形態において変更され得る。いくつかの実施形態では、本明細書で連続的として示される複数のステップまたは動作は、同時に行われてもよい。
いくつかの実施形態では、特徴検出機械学習モジュール218は、複数の訓練済みモデルを実行してもよい。これらの実施形態では、特徴検出機械学習モジュール218は、たとえば、各々の訓練済みモデルの適用からの個々の出力を得点付けする投票技法を使用して、または1つ以上の特定の出力を選択することによって、個々のモデルの適用からの出力を組み合わせてもよい。いくつかの実施形態では、そのようなセレクタは、モデル自体の一部であり、訓練済みモデル間の接続層として機能する。さらに、これらの実施形態では、特徴検出機械学習モジュール218は、個々の訓練済みモデルを適用するための時間閾値(たとえば、0.5ms)を適用し、この時間閾値内で利用可能な個々の出力のみを利用することができる。時間閾値内に受信されない出力は、利用されなくてもよい、たとえば破棄されてもよい。たとえば、そのようなアプローチは、たとえば、オペレーティングシステム212または1つ以上のアプリケーション216によって、特徴検出機械学習モジュール218を呼び出す間に指定される時間制限がある場合に好適なことがある。
ユーザ固有機械学習モジュール220の例
ユーザ固有機械学習モジュール220は、特徴検出機械学習モジュール218によって分析された同じ入力画像の圧縮設定を決定するユーザ固有機械学習モデルを生成する。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、ユーザ固有機械学習モデルを生成するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
ユーザ固有機械学習モジュール220は、特徴検出機械学習モジュール218によって分析された同じ入力画像の圧縮設定を決定するユーザ固有機械学習モデルを生成する。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、ユーザ固有機械学習モデルを生成するためにプロセッサ202によって実行可能な命令のセットを含む。いくつかの実施形態では、ユーザ固有機械学習モジュール220は、デバイス200のメモリ204に格納され、プロセッサ202によってアクセス可能かつ実行可能でもよい。
説明を容易にするために、図2は、プロセッサ202、メモリ204、入出力インターフェース206、カメラ208、表示デバイス210、ならびにソフトウェアブロック103,218,220,222および224の各々について、1つのブロックを示す。これらのブロックは、1つ以上のプロセッサまたは処理回路、オペレーティングシステム、メモリ、入出力インターフェース、アプリケーション、および/またはソフトウェアモジュールを表し得る。他の実施形態では、デバイス200は、示されるコンポーネントの全てを有さなくてもよい、および/または、本明細書に示されるものの代わりに、もしくはそれらに加えて、他の種類の要素を含む他の要素を有してもよい。いくつかのコンポーネントは、本明細書のいくつかの実施形態で説明されるようなブロックおよび動作を実行するものとして説明されるが、環境100、デバイス200、同様のシステム、またはそのようなシステムの任意の適切なコンポーネントもしくはコンポーネントの組み合わせ、またはそのようなシステムに関連する任意の適切な1つもしくは複数のプロセッサは、説明されるブロックおよび動作を実行してもよい。
Claims (20)
- コンピュータによって実現される方法であって、
ユーザアカウントに関連付けられた入力画像を取得することと、
特徴検出機械学習モデルを使用して、前記入力画像の1つ以上の特徴を決定することと、
前記ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、前記入力画像内の前記1つ以上の特徴に基づいて、前記入力画像の圧縮設定を決定することと、
前記圧縮設定に基づいて、前記入力画像を圧縮することとを備える、コンピュータによって実現される方法。 - 前記特徴検出機械学習モデルは、
デジタル画像の訓練セットと、対応する特徴とを取得することと、
前記訓練セットと前記対応する特徴とに基づいて、前記特徴検出機械学習モデルを訓練することとによって生成され、訓練後、前記特徴検出機械学習モデルは、前記特徴検出機械学習モデルに提供される前記入力画像内の画像特徴を識別することが可能である、請求項1に記載のコンピュータによって実現される方法。 - 前記特徴検出機械学習モデルは、複数のネットワーク層を有する畳み込みニューラルネットワーク(CNN)を含み、各ネットワーク層は、異なる抽象化レベルで前記1つ以上の画像特徴を抽出する、請求項2に記載のコンピュータによって実現される方法。
- 前記ユーザ固有機械学習モデルは、
1つ以上の先行画像を参照したユーザアクションを示す、ユーザに関連付けられたユーザ固有の特徴の訓練セットを取得することと、
前記ユーザ固有の特徴と前記1つ以上の先行画像とに基づいて、前記ユーザ固有機械学習モデルを訓練することとによって生成され、訓練後、前記ユーザ固有機械学習モデルは、前記ユーザ固有機械学習モデルに提供される前記入力画像のレーティングを決定する、請求項2に記載のコンピュータによって実現される方法。 - 前記訓練セットはさらに、前記1つ以上の先行画像のそれぞれの画像特徴を含む、請求項4に記載のコンピュータによって実現される方法。
- 前記1つ以上の先行画像の前記それぞれの画像特徴は、前記特徴検出機械学習モデルを前記1つ以上の先行画像に適用することによって得られる、請求項5に記載のコンピュータによって実現される方法。
- 各々が異なる圧縮設定で圧縮されたサンプル画像の2つ以上のバージョンを有する前記ユーザアカウントに関連付けられたユーザに、第1のユーザインターフェースを提供することと、
特定のバージョンの前記サンプル画像を識別するユーザ入力を、前記ユーザから取得することと、
前記サンプル画像の前記特定のバージョンに関連付けられた圧縮設定を、前記ユーザアカウントのベースライン圧縮設定として選択することとをさらに備える、請求項1に記載のコンピュータによって実現される方法。 - 前記圧縮設定を決定することは、
前記ユーザ固有機械学習モデルが、前記入力画像のレーティングを決定することと、
前記レーティングを前記圧縮設定にマッピングすることとを含み、前記マッピングは前記ベースライン圧縮設定に基づく、請求項7に記載のコンピュータによって実現される方法。 - 前記入力画像の前記レーティングが重要度閾値を満たすと判断することと、
前記レーティングが前記重要度閾値を満たすという判断に応答して、
前記ユーザが前記入力画像を共有するという提案を提供すること、
前記重要度閾値を満たさない前記ユーザアカウントに関連付けられた他の画像のバックアップよりも、前記入力画像のバックアップを優先すること、または
後続画像内に描写されるシーンが前記入力画像の前記1つ以上の特徴のうちの少なくとも1つを有する場合、前記後続画像の取り込みのための命令を含む第2のユーザインターフェースを提供することのうちの1つ以上を行うこととをさらに備える、請求項8に記載のコンピュータによって実現される方法。 - コンピューティングデバイスであって、
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサに動作を実行させる命令を格納したメモリとを備え、前記動作は、
ユーザアカウントに関連付けられた入力画像を取得することと、
特徴検出機械学習モデルを使用して、前記入力画像の1つ以上の特徴を決定することと、
前記ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、前記入力画像内の前記1つ以上の特徴に基づいて、前記入力画像の圧縮設定を決定することと、
前記圧縮設定に基づいて、前記入力画像を圧縮することとを含む、コンピューティングデバイス。 - 前記特徴検出機械学習モデルは、
デジタル画像の訓練セットと、対応する特徴とを取得することと、
前記訓練セットと前記対応する特徴とに基づいて、前記特徴検出機械学習モデルを訓練することとによって生成され、訓練後、前記特徴検出機械学習モデルは、前記特徴検出機械学習モデルに提供される前記入力画像内の画像特徴を識別することが可能である、請求項10に記載のコンピューティングデバイス。 - 前記ユーザ固有機械学習モデルは、
1つ以上の先行画像を参照したユーザアクションを示す、ユーザに関連付けられたユーザ固有の特徴の訓練セットを取得することと、
前記ユーザ固有の特徴と前記1つ以上の先行画像とに基づいて、前記ユーザ固有機械学習モデルを訓練することとによって生成され、訓練後、前記ユーザ固有機械学習モデルは、前記ユーザ固有機械学習モデルに提供される前記入力画像のレーティングを決定する、請求項11に記載のコンピューティングデバイス。 - 前記メモリは、前記プロセッサによって実行されると、前記プロセッサにさらに別の動作を実行させるさらに別の命令を格納し、前記さらに別の動作は、
各々が異なる圧縮設定で圧縮されたサンプル画像の2つ以上のバージョンを有する前記ユーザアカウントに関連付けられたユーザに、第1のユーザインターフェースを提供することと、
特定のバージョンの前記サンプル画像を識別するユーザ入力を、前記ユーザから取得することと、
前記サンプル画像の前記特定のバージョンに関連付けられた圧縮設定を、前記ユーザアカウントのベースライン圧縮設定として選択することとを備える、請求項10に記載のコンピューティングデバイス。 - 前記圧縮設定を決定することは、
前記ユーザ固有機械学習モデルが、前記入力画像のレーティングを決定することと、
前記レーティングを前記圧縮設定にマッピングすることとを含み、前記マッピングは前記ベースライン圧縮設定に基づく、請求項13に記載のコンピューティングデバイス。 - 1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに動作を実行させる命令を格納した非一時的なコンピュータ読取可能媒体であって、前記動作は、
ユーザアカウントに関連付けられた入力画像を取得することと、
特徴検出機械学習モデルを使用して、前記入力画像の1つ以上の特徴を決定することと、
前記ユーザアカウントに合わせてパーソナライズされたユーザ固有機械学習モデルを使用して、前記入力画像内の前記1つ以上の特徴に基づいて、前記入力画像の圧縮設定を決定することと、
前記圧縮設定に基づいて、前記入力画像を圧縮することとを含む、非一時的なコンピュータ読取可能媒体。 - 前記特徴検出機械学習モデルは、
デジタル画像の訓練セットと、対応する特徴とを取得することと、
前記訓練セットと前記対応する特徴とに基づいて、前記特徴検出機械学習モデルを訓練することとによって生成され、訓練後、前記特徴検出機械学習モデルは、前記特徴検出機械学習モデルに提供される前記入力画像内の画像特徴を識別することが可能である、請求項15に記載のコンピュータ読取可能媒体。 - 前記ユーザ固有機械学習モデルは、
1つ以上の先行画像を参照したユーザアクションを示す、ユーザに関連付けられたユーザ固有の特徴の訓練セットを取得することと、
前記ユーザ固有の特徴と前記1つ以上の先行画像とに基づいて、前記ユーザ固有機械学習モデルを訓練することとによって生成され、訓練後、前記ユーザ固有機械学習モデルは、前記ユーザ固有機械学習モデルに提供される前記入力画像のレーティングを決定する、請求項16に記載のコンピュータ読取可能媒体。 - 前記訓練セットはさらに、前記1つ以上の先行画像のそれぞれの画像特徴を含む、請求項17に記載のコンピュータ読取可能媒体。
- 前記動作はさらに、
各々が異なる圧縮設定で圧縮されたサンプル画像の2つ以上のバージョンを有する前記ユーザアカウントに関連付けられたユーザに、第1のユーザインターフェースを提供することと、
特定のバージョンの前記サンプル画像を識別するユーザ入力を、前記ユーザから取得することと、
前記サンプル画像の前記特定のバージョンに関連付けられた圧縮設定を、前記ユーザアカウントのベースライン圧縮設定として選択することとをさらに含む、請求項15に記載のコンピュータ読取可能媒体。 - 前記圧縮設定を決定することは、
前記ユーザ固有機械学習モデルが、前記入力画像のレーティングを決定することと、
前記レーティングを前記圧縮設定にマッピングすることとを含み、前記マッピングは前記ベースライン圧縮設定に基づく、請求項15に記載のコンピュータ読取可能媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/037646 WO2021251988A1 (en) | 2020-06-13 | 2020-06-13 | Machine learning-based image compression setting reflecting user preferences |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023529380A true JP2023529380A (ja) | 2023-07-10 |
Family
ID=71452760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022574798A Pending JP2023529380A (ja) | 2020-06-13 | 2020-06-13 | ユーザの好みを反映した機械学習ベースの画像圧縮設定 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220053195A1 (ja) |
EP (1) | EP3942467A1 (ja) |
JP (1) | JP2023529380A (ja) |
KR (1) | KR20230021144A (ja) |
CN (1) | CN114080615A (ja) |
WO (1) | WO2021251988A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449771B2 (en) * | 2018-09-21 | 2022-09-20 | Woven Planet North America, Inc. | Systems and methods for processing vehicle data |
US11625806B2 (en) * | 2019-01-23 | 2023-04-11 | Qualcomm Incorporated | Methods and apparatus for standardized APIs for split rendering |
JP6800453B1 (ja) * | 2020-05-07 | 2020-12-16 | 株式会社 情報システムエンジニアリング | 情報処理装置及び情報処理方法 |
US11729387B1 (en) * | 2020-12-03 | 2023-08-15 | Amazon Technologies, Inc. | Automatic configuration of settings for a video encoder |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008099012A (ja) * | 2006-10-12 | 2008-04-24 | Mitsubishi Electric Corp | コンテンツ再生システム及びコンテンツ蓄積システム |
US9361666B2 (en) * | 2013-10-07 | 2016-06-07 | Adobe Systems Incorporated | Learning user preferences for photo adjustments |
US9536045B1 (en) * | 2015-03-16 | 2017-01-03 | D.R. Systems, Inc. | Dynamic digital image compression based on digital image characteristics |
CN105513100B (zh) * | 2015-12-03 | 2018-07-17 | 广州一刻影像科技有限公司 | 一种自动选择图片压缩质量并压缩图片的方法 |
US11496769B2 (en) * | 2019-09-27 | 2022-11-08 | Apple Inc. | Neural network based image set compression |
-
2020
- 2020-06-13 EP EP20736512.3A patent/EP3942467A1/en active Pending
- 2020-06-13 CN CN202080009025.1A patent/CN114080615A/zh active Pending
- 2020-06-13 WO PCT/US2020/037646 patent/WO2021251988A1/en unknown
- 2020-06-13 JP JP2022574798A patent/JP2023529380A/ja active Pending
- 2020-06-13 US US17/420,875 patent/US20220053195A1/en active Pending
- 2020-06-13 KR KR1020237001053A patent/KR20230021144A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
CN114080615A (zh) | 2022-02-22 |
US20220053195A1 (en) | 2022-02-17 |
EP3942467A1 (en) | 2022-01-26 |
KR20230021144A (ko) | 2023-02-13 |
WO2021251988A1 (en) | 2021-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11778028B2 (en) | Automatic image sharing with designated users over a communication network | |
CN112740709B (zh) | 一种执行用于视频分析的门控的计算机实现的方法、计算设备及计算机可读介质 | |
EP3815042B1 (en) | Image display with selective depiction of motion | |
US11829404B2 (en) | Functional image archiving | |
JP2023529380A (ja) | ユーザの好みを反映した機械学習ベースの画像圧縮設定 | |
US11949848B2 (en) | Techniques to capture and edit dynamic depth images | |
CN110678861B (zh) | 图像选择建议 | |
US20220366191A1 (en) | Automatic generation of events using a machine-learning model | |
JP2024073439A (ja) | 選択的な動きの描画を伴う画像表示 | |
US20240193731A1 (en) | Face region based automatic white balance in images | |
JP2024514728A (ja) | 機械学習を用いた選択的な画像ぼやけ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230118 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230118 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240229 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240305 |