JP6412129B2 - 画像を変換するためのシステム及び方法 - Google Patents

画像を変換するためのシステム及び方法 Download PDF

Info

Publication number
JP6412129B2
JP6412129B2 JP2016531599A JP2016531599A JP6412129B2 JP 6412129 B2 JP6412129 B2 JP 6412129B2 JP 2016531599 A JP2016531599 A JP 2016531599A JP 2016531599 A JP2016531599 A JP 2016531599A JP 6412129 B2 JP6412129 B2 JP 6412129B2
Authority
JP
Japan
Prior art keywords
image
user
mobile device
motion sensor
control element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016531599A
Other languages
English (en)
Other versions
JP2016532954A (ja
Inventor
レストレポ、アレックス
シストロム、ケビン
Original Assignee
フェイスブック,インク.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2016532954A publication Critical patent/JP2016532954A/ja
Application granted granted Critical
Publication of JP6412129B2 publication Critical patent/JP6412129B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/64Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/606Rotation of whole images or parts thereof by memory addressing or mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/633Control of cameras or camera modules by using electronic viewfinders for displaying additional information relating to control or operation of the camera
    • H04N23/635Region indicators; Field of view indicators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Transforming Electric Information Into Light Information (AREA)
  • Gyroscopes (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、一般に画像処理分野におけるコンピュータによって実装される方法、システム、及びコンピュータ可読媒体に関する。
今日、人は写真を撮るために使用可能な多くの選択肢を有する。フィルム又はデジタル形式で画像を捕捉することを専用とする従来のカメラに加え、スマートフォン等の多くのモバイル装置も写真を撮る機能を備えている。例えばモバイル装置は、モバイル装置上のカメラを使って利用者が写真を撮ることを可能にするカメラ及び画像捕捉ソフトウェアを含み得る。それらの画像はモバイル装置に記憶し、後で見ることができる。更に、一部のインターネットソーシャルネットワークは、オンラインで写真を共有する機能を利用者に提供する。それらの写真共有ソーシャルネットワークのメンバは、自分のモバイル装置を使って写真を撮り、その写真を他者が見ることができるように写真共有ソーシャルネットワークにアップロードすることができる。
画像は捕捉後に修正することができる。例えば、モバイル装置又はソーシャルネットワークをサポートするシステムは、画像を手作業で変えることを可能にするためのフィルタや他の種類の編集ツールを提供する場合がある。ときに画像の所有者は、審美的な改善をもたらすためにそれらの編集ツールを使って画像の修正を決める場合がある。他の事例では、編集ツールは、不所望と見なされる画像の他の側面を画像の所有者が修正することを可能にし得る。
本発明は、傾きに対処するために画像を変換するための技法をとりわけ提供する。本開示の様々な態様では、モバイル装置を使って捕捉される画像を取得するシステム、方法、及びコンピュータ可読媒体を提供する。画像は、好ましくはモバイル装置に組み込まれるカメラによって捕捉される。モバイル装置は、これだけに限定されないが、とりわけ移動通信装置、好ましくは電子移動通信装置、例えば携帯電話、特にスマートフォンや、無線通信用の他の任意の携帯型移動通信装置である。
画像が捕捉された時点又はかかる時点の近くのモバイル装置の運動センサデータも取得される。そのためにモバイル装置は、モバイル装置の運動及び向きをモニタし、対応する運動センサデータを出力する少なくとも1つの運動センサを含み得る。運動センサは、例えば加速力及び回転力のうちの一方、又は速度を測定し得る。一実施形態では、運動センサデータを取得することが、ジャイロスコープからのデータをサンプリングすることを含む。サンプリングしたデータを低域フィルタによってフィルタリングし、雑音を減らすようにしてもよい。一実施形態では、運動センサデータを取得することが、モバイル装置上の加速度計からのデータをサンプリングすることを含む。
運動センサデータに基づいて回転角を計算し、その回転角に基づいて画像を変換する。
一実施形態では、画像を変換することが、計算済みの回転角に基づいて画像を回転させることを含む。画像を変換することは、モバイル装置のユーザインタフェースの表示フレームの寸法に基づいて画像を変倍することを更に、又は代わりに含み得る。
一実施形態では、モバイル装置上で変換画像を表示する。
一実施形態では、回転角を算出することがモバイル装置によって行われる。
一実施形態では、画像を変換することがモバイル装置によって行われる。
一実施形態では、画像の自動変換を利用者が選択することを可能にするユーザ入力要素を提供し、画像を自動変換する選択を受け取る。画像の変換は、選択を受け取ることに応答したものである。
一実施形態では、画像を変換する前、モバイル装置のディスプレイ上に取得画像を表示する。画像の変換後、取得画像ではなく変換画像をディスプレイ上に表示する。
一実施形態では、回転角を所定の閾値角度と比較する。回転角が所定の閾値角度を上回らない場合は変換画像を表示する。
一実施形態では、第1の粒度での変換画像のユーザ制御回転を可能にする第1の制御要素を含むユーザインタフェースを表示する。第1の制御要素に適用される第1のユーザ入力を受け取り、第1のユーザ入力に基づいて変換画像が第1の粒度で回転する。
一実施形態では、第2の粒度での変換画像のユーザ制御回転を可能にする第2の制御要素をユーザインタフェース内に表示する。第2の制御要素に適用される第2のユーザ入力を受け取り、第2のユーザ入力に基づいて変換画像が第2の粒度で回転する。
一実施形態では、第1の制御要素及び第2の制御要素を基準点から第1の方向に動かすことにより画像が第1の回転方向に回転し、第1の制御要素及び第2の制御要素を基準点から第2の方向に動かすことにより画像が第2の回転方向に回転する。
一実施形態では、回転点を利用者が定めてその回転点を中心に変換画像を回転させることをユーザインタフェースが可能にする。回転点を定めるためにユーザインタフェースに適用される第1のユーザ入力を受け取る。回転の方向及び粒度を定めるためにユーザインタフェースに適用される第2のユーザ入力を受け取る。第1のユーザ入力及び第2のユーザ入力に基づく回転の方向及び粒度に従い、回転点を中心に変換画像が回転する。
一実施形態では、画像を変換することが、ソーシャルネットワーキングシステムによって行われる。
本発明の他の多くの特徴及び実施形態が添付図面及び以下の詳細な説明から明らかになる。
これらの図面は本発明の様々な実施形態を専ら例示目的で示し、図面では同様の要素を識別するために同様の参照番号を使用する。本明細書に記載の本発明の原理から逸脱することなしに、図面に示されている構造及び方法の代替的実施形態が使用され得ることを当業者なら以下の解説から容易に理解されよう。
本開示の一実施形態によるモバイル装置の一例を示す。 本開示の一実施形態による、図1に示されている画像変換モジュールの一例を示す。 本開示の一実施形態による、運動センサデータに基づいて画像を変換するためのプロセスの一例を示す。 本開示の一実施形態による、変換前の画像を表示するユーザインタフェースの一例を示す。 本開示の一実施形態による、画像を回転させた後の図4Aに示されているユーザインタフェースの一例を示す。 本開示の一実施形態による、画像を変倍して回転させた後の図4Aに示されているユーザインタフェースの一例を示す。 本開示の一実施形態による、画像の変換に関するユーザ制御を可能にするユーザインタフェースの一例を示す。 本開示の一実施形態による、画像の変換後の図5Aに示されているユーザインタフェースの一例を示す。 本開示の一実施形態による制御要素の一例を示す。 本開示の一実施形態による制御要素の一例を示す。 本開示の一実施形態による、画像を変換するためのプロセスの一例を示す。 本開示の一実施形態による、利用者が定める回転点を中心に画像を変換するためのプロセスの一例を示す。 本開示の一実施形態による、図8のプロセスを行う前の画像を表示するユーザインタフェースの一例を示す。 本開示の一実施形態による、図8のプロセスに従って変換された画像を表示する図9Aのユーザインタフェースの一例を示す。 本開示の一実施形態による、画像を変換するためのシステムの一例のネットワーク図である。 本開示の一実施形態による、本明細書に記載の実施形態の1つ又は複数を実装するために使用され得るコンピュータシステムの一例を示す。
画像変換
モバイル装置に組み込まれるカメラを含め、カメラによって捕捉される画像は何らかの短所を有する場合がある。その短所は、画像捕捉過程におけるばらつきや他の要因を反映し得る。例えば、画像の捕捉時中にカメラが傾いている場合、その結果生じる捕捉画像はカメラの傾きを反映し得る。傾きは、カメラを操作している人がカメラを画像アラインメントの予期に準拠しない方法で位置付けるときに起こることがある。傾いた画像は審美的に望ましくなく、又は画像内に示されている内容の実態に忠実でない場合がある。
カメラはモバイル装置内に配置され得る。一実施形態では、モバイル装置の傾きは、基準軸からのモバイル装置の軸のずれに基づき得る。モバイル装置の縦軸(又は横軸)が垂直の基準軸又は水平の基準軸と揃っていない(即ち平行でない)場合、モバイル装置は傾いていると見なされ得る。画像の捕捉中に傾いているモバイル装置は、モバイル装置の表示フレーム内で表示するとき捕捉画像を傾けて表示させる場合がある。
本開示では、モバイル装置の傾きが垂直の基準軸からのモバイル装置の縦軸のずれに基づくものとして説明され得るが、モバイル装置の傾きは垂直の基準軸からのモバイル装置の横軸のずれに基づく場合もあることを理解すべきである。例えばモバイル装置の横軸(又は縦軸)が垂直の基準軸又は水平の基準軸と揃っていない(即ち平行でない)場合、モバイル装置は傾いていると見なされ得る。
上記の欠点に対処するために、本開示のシステム、方法、及びコンピュータ可読媒体の様々な実施形態は、傾いた画像の発生を直すためにモバイル装置の機能を利用することを含み得る。モバイル装置は、モバイル装置の運動及び向きをモニタする運動センサを含み得る。運動センサは、例えばx軸、y軸、及びz軸に沿って加速力及び回転力を測定することができる。運動センサの例には、例えばジャイロスコープや加速度計が含まれ得る。基準軸に対するモバイル装置の傾き(又は傾斜角)を算出するために、1つ又は複数の運動センサから生成される運動センサデータが使用され得る。
モバイル装置を使って捕捉される画像、並びに画像が捕捉された時点又はかかる時点の近くのモバイル装置の位置を反映するモバイル装置の運動センサデータが取得され得る。次いで、傾いた画像を補正するのに必要な回転角が運動センサデータに基づいて計算されても良く、その回転角に基づいて画像が変換され得る。
例えばモバイル装置は、モバイル装置上のカメラを使って利用者が写真を撮ることを可能にするカメラ及び画像捕捉ソフトウェアを含み得る。利用者がモバイル装置を傾けて持ちながら写真を撮る場合、捕捉画像はモバイル装置上の表示フレーム内で表示されるときそれ相応に傾く。本開示の実施形態は、画像をまっすぐにするために、それ以外にはモバイル装置の傾き及びその結果生じる画像を補正するために、利用者が画像を変換する(例えば回転させる)ことを可能にする。このようにして、例えば捕捉画像をモバイル装置上に記憶する前に、又は利用者がオンラインで写真を記憶し共有することを可能にするソーシャルネットワーキングシステムのリモートサーバ等の遠隔装置にアップロードする前に、捕捉画像をまっすぐにすることができる。一実施形態では、画像捕捉ソフトウェアがソーシャルネットワーキングシステム用のモバイルアプリケーションの一部でも良く、かかるアプリケーションは、利用者が画像を捕捉し、その画像をオンラインでソーシャルネットワーキングシステムに投稿することを可能にするために、利用者によってモバイル装置にダウンロードされ得る。運動センサに基づく傾き補正は、例えばモバイルアプリケーションの一部として含まれても良く、利用者が捕捉画像の傾きを補正することを可能にする。一実施形態では、画像の取得後、利用者が確認することなしに傾き補正が自動で行われ得る。別の実施形態では、画像の変換前に傾き補正が利用者による開始又は確認を必要とし得る。
図1は、本開示の一実施形態によるモバイル装置の一例を示す。モバイル装置100が、カメラ105、画像捕捉モジュール110、運動センサ115、画像変換モジュール120、ディスプレイ125、及び処理装置130を含んで示されている。図示の構成要素は限定的であることを意図せず、本開示の詳細を不明瞭にしないためにモバイル装置100の他の構成要素、例えばオペレーティングシステム、スピーカ、マイクロフォン、入力制御要素(例えばタッチスクリーン、キーパッド、テンキー等)、通信ポート、トランシーバ、メモリ等を図示していないことを理解すべきである。図11に関して論じるように、モバイル装置100の例には、これだけに限定されないが、スマートフォン、タブレット、ラップトップ、携帯情報端末(PDA)、携帯電話等が含まれ得る。
カメラ105がモバイル装置100上に配置され、利用者がモバイル装置105を使って画像を捕捉することを可能にする。カメラ105は、例えばカメラ105によって撮られる画像(例えば写真)を表す画像データを生成するために使用されるレンズや画像センサを含み得る。例えば画像センサには、これだけに限定されないが、光を捕捉してそれを電気信号に変換する電荷結合素子(CCD)画像センサや相補型金属酸化膜半導体(CMOS)センサが含まれ得る。画像センサからの電気信号を画像を表すデジタル信号に変換するための更なる電子回路が含まれても良い。
画像捕捉モジュール110は、カメラ105と連動して機能して画像を捕捉することを可能にする。例えば、画像捕捉モジュール110は、画像の捕捉中にカメラ105の動作を制御することができる。画像捕捉モジュール110は、例えばモバイル装置100上のカメラ105を使って利用者が写真を撮ることを可能にするユーザインタフェース又はファインダを生成することもできる。
運動センサ115がモバイル装置100上に配置され、モバイル装置100の運動センサデータを提供する。「運動センサデータ」という用語は、本明細書では広い意味で使用し、運動、位置、向き、速度等に関するデータを概して指し得る。運動センサ115は、加速度計、ジャイロスコープ、又は運動センサデータをもたらすことができる他の任意の種類のツール若しくは資源を含み得る。例えば運動センサ115は、(例えば加速度計からの)加速力、(例えばジャイロスコープからの)3軸に沿った回転力、加速力と回転力との組合せ等に基づき得る。運動センサ115は単一の運動センサに限定することを意図しておらず、1つ以上の運動センサ(例えば加速度計とジャイロスコープ)を包含し得ることを理解すべきである。
画像変換モジュール120は、捕捉画像を回転させることによって、及び場合によっては画像を更に変倍することによって捕捉画像を変換する。一実施形態では、変換が運動センサ115から得られる運動センサデータに基づく。捕捉画像及びモバイル装置100が画像を捕捉した時点又はかかる時点の近くのモバイル装置100の運動センサデータを取得した後、画像捕捉時のモバイル装置100の傾きを補正するために捕捉画像を回転させるために必要な回転角を画像変換モジュール120が算出する。例えば画像変換モジュール120は、モバイル装置100のオペレーティングシステムが運動センサデータを受け取って処理するためのアプリケーションプログラミングインタフェース(API)を使用することができる。例えばモバイル装置100のオペレーティングシステムのフレームワークは、本開示の傾き補正の実施形態を実装するアプリケーション等のアプリケーションが、装置のハードウェアから運動センサデータを受け取り、そのデータを処理することを可能にし得る。
一実施形態では、画像変換モジュール120が基準系を指定することができ、運動センサ115によってモバイル装置の向き又は運動がその基準系と比較され得る。運動センサデータは、形式の点で様々な実施形態で異なる場合があり、例えばベクトル、未処理の加速度値、1つ又は複数の基準軸に対する角度値等が含まれる。モバイル装置100の傾きは、運動センサデータに基づいて算出され、かつ傾いた画像を補正するのに必要な回転角を計算するために使用され得る。一実施形態では、画像変換モジュール120が基準系の一軸を指定することができ、その一軸に関する運動センサデータだけがモバイル装置100の傾きを算出するために、及び傾いた画像を変換するために使用される。
一実施形態では、画像変換モジュール120が、画像の変換に関するユーザ制御を可能にするユーザインタフェース上の制御要素を提供する。制御要素経由で適用される受け取られたユーザ入力に基づき、画像をしかるべく回転させ、変倍する。別の実施形態では、画像変換モジュール120が、運動センサデータに基づいて画像を変換すると共に、変換に関するユーザ制御を可能にする制御要素を提供することができる。例えば画像変換モジュール120は、まず運動センサデータに基づいて画像を変換し、その後、ユーザインタフェース経由で適用されるユーザ入力に基づいて画像を変換することができ、その逆もあり得る。
ディスプレイ125は、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)、電子ペーパ等、多岐にわたる任意の技術に基づき得る。一実施形態では、ディスプレイ125が、ディスプレイを介してユーザ入力を受け取ることを可能にするタッチスクリーンディスプレイである。
処理装置130は、カメラ105、運動センサ115、及びディスプレイ125に動作可能に結合され、画像捕捉モジュール110及び画像変換モジュール120と連動して機能して本開示に記載の様々な技法を実行する。「処理装置」という用語は、本明細書では広い意味で使用し、1個又は複数個のプロセッサ、マイクロプロセッサ、マイクロコントローラ等を含み得る。処理装置の例に関する更なる詳細について図11の中で説明する。
1つ又は複数の機能構成要素が単一の構成要素へと集約されても良いことを理解すべきである。例えば、画像捕捉モジュール110と画像変換モジュール120とを単一のモジュールに集約することができる。場合によっては、画像捕捉モジュール110と画像変換モジュール120とが、製造時にモバイル装置100上のソフトウェア及びハードウェアのうちの少なくとも一方によって完全に若しくは部分的に包含され得る。一部の例では、例えば画像捕捉モジュール110及び画像変換モジュール120が、モバイル装置100にダウンロード可能なソフトウェアプログラム(例えばモバイルアプリケーション)によって完全に又は部分的に包含され得る。更に一部の例では、画像捕捉モジュール110及び画像変換モジュール120が、オンラインで画像を共有することを可能にするソーシャルネットワーキングシステムと連動して機能することができ、又はその一部であり得る。
図2は、本開示の一実施形態による画像変換モジュールの一例を示す。画像変換モジュール120は、捕捉画像の傾きを補正するための回転角を求める傾き算出モジュール205を含む。モバイル装置100上のカメラ105で捕捉される画像は、画像捕捉時の(例えば利用者が写真を撮るときの)モバイル装置100の傾きを反映するので、モバイル装置100の傾きを使用して傾いたモバイル装置100を使って捕捉された画像の傾きを求めることができる。傾き算出モジュール205は、画像が捕捉された時点又はかかる時点の近くのモバイル装置100の運動センサデータに基づき、モバイル装置100の傾きを補正するのに必要な回転角を算出する。図示の実施形態では、傾き算出モジュール205が、サンプラ210、フィルタ215、運動センサデータリポジトリ220、タイミングモジュール225、及び角度算出モジュール230を含む。
サンプラ210は、運動センサ115(例えばジャイロスコープ)によって生成される運動センサデータをサンプリングするように構成される。例えばサンプラ210は、30サンプル/秒等の所定のサンプリングレートで運動センサデータをサンプリングすることができる。他のサンプリングレートを実行しても良いことを理解すべきである。
フィルタ215は、サンプラ210によってサンプリングされた運動センサデータを受け取り、フィルタリングするように構成される。例えば一実施形態では、フィルタ215が、よりきれいな信号を生成するために高周波雑音を除去する低域フィルタであり得る。例えば一実施形態では、カルマンフィルタを実装することができる。平滑化してデータ信号をより安定させるために、例えば運動センサデータ内の雑音を減らす平均法や他の平滑化アルゴリズムを実装することができる。
運動センサデータリポジトリ220は、サンプラ210及びフィルタ215から運動センサデータを受け取って記憶するように構成される。運動センサデータリポジトリ220は、例えば後で取得するために運動センサデータを記憶することができる1つ又は複数の揮発性メモリ(例えばRAM、SRAM等)及び不揮発性メモリ(例えばNVRAM、フラッシュメモリ、ハードドライブ等)を含み得る。一部の例では、運動センサデータリポジトリ220が、データバッファ等のより一時的な形式のメモリ内に保持され得る。例えば、データバッファは決まった量の運動センサデータを保持するように構成されても良く、モバイル装置100が画像捕捉モードに入るとサンプラ210が運動センサデータをサンプリングし始め、そのデータはフィルタ215によってフィルタリングされ、データバッファ220によって受け取られ得る。
角度算出モジュール230は、運動センサデータリポジトリ220から運動センサデータを受け取り、モバイル装置100の傾きを算出するように構成され、この傾きはひいてはモバイル装置100が傾いている間に捕捉される画像を補正するのに必要な回転角を決定し得る。例えば角度算出モジュール230は、運動センサデータリポジトリ220から運動センサデータを受け取り、運動センサデータに基づいて画像捕捉時のモバイル装置100の傾きを計算し、傾いた画像を補正するための回転角を提供することができる。
タイミングモジュール225は、傾きの計算のベースとなる適切な運動センサデータを求めるために使用される。例えばタイミングモジュール225は、傾きを計算するのに使用される1組の運動センサデータを求めるために使用されても良い。一実施形態では、タイミングモジュール225は、モバイル装置100が画像捕捉モードに入る(例えば利用者が写真を撮るための写真捕捉ユーザインタフェースを活性化する)とき、及び画像が捕捉される(例えば利用者が写真を撮る)ときを識別する。例えば、その場合、角度算出モジュール230が、画像捕捉モードに入った時点から画像捕捉時点までにサンプリングされ、かつフィルタリングされた運動センサデータの全セットについての角度の算出の拠点となる。一実施形態では、角度算出モジュール230が、他の期間又は他の事象の発生時における角度の算出の拠点となり得る。
一実施形態では、サンプラ210は、画像捕捉モードに入ったことをタイミングモジュール225が示すときに運動センサデータをサンプリングし始める。一実施形態では、サンプラ210が既に運動センサデータをサンプリングしていても良く、タイミングモジュール225は、画像捕捉モードに入る時点に対応するサンプルとして1組の運動センサデータの第1のサンプルを識別する。
一実施形態では、画像が捕捉されたことをタイミングモジュール225が示すとき、サンプラ210が運動センサデータのサンプリングを停止することができる。画像の捕捉後もサンプラ210がサンプリングを続ける実施形態では、タイミングモジュール225が、組のうちの最後のサンプル、例えば画像の捕捉時点に対応するサンプルを識別することができる。
別の実施形態では、画像の捕捉前の(即ち画像の捕捉と時間が近い)所定の期間又はサンプル数に基づき、タイミングモジュール225が角度の算出に使用するのに適切な運動センサデータを識別することができる。角度算出モジュール230は、所定の期間内の1組の対応する運動センサデータを使用して傾きを計算し、傾いた画像を補正するための回転角を算出する。例えば利用者が画像を捕捉する場合、捕捉時点からの最後の30サンプルが角度を算出する際に使用され得る。同様に、例えば画像捕捉時点からの最後の2秒のサンプリング済み運動センサデータが角度を算出する際に使用され得る。この所定の時間及びサンプル数は例示的であり、限定的であることを意図していないことを理解すべきである。他の実施形態では、他の所定の時間及び所定のサンプリングを実施することができる。回転角を計算するために単一のサンプルを使用しても良いことも理解すべきであり、例えば単一のサンプルは画像の捕捉時点に対応する。更に、他の実施形態では他の方法を実施して回転角計算の1組の特定の運動センサデータを求めても良いことを理解すべきである。
回転モジュール235、変倍モジュール240、及びフレーミングモジュール250は、連動して機能し、捕捉画像及び変換画像を表示するユーザインタフェースの表示フレーム内の画像を回転させ、変倍する。回転モジュール235は、角度算出モジュール230によって求められた回転角に基づいて捕捉画像を回転させる。例えば回転モジュール235は、回転角を使用して、オペレーティングシステムが画像を使用してしかるべく回転させるための(例えば行列形式の)回転変換を行う。
変倍モジュール240は、捕捉画像の傾きを補正するために算出される回転角に基づいて画像を変倍することができる。変倍モジュール240は、フレーミングモジュール245によって表示される表示フレームの寸法に基づいて倍率を決定することができる。例えば、画像を回転させたとき表示フレーム内に空きスペースができるのを避けるために画像を変倍することができる。一実施形態では、変倍モジュール240は、表示フレーム内のスペースを除去するのに必要な最低量だけ回転画像を変倍する。一実施形態では、フレーミングモジュール245が回転角に基づいて表示フレームの大きさを修正することができる。例えば、表示フレーム内の空きスペースを除去するために画像を拡大することが画像を不明瞭にする場合(例えば画像の解像度が低い場合)、フレーミングモジュール245は表示フレームを縮小して、画像の回転時に作り出される空きスペースを除去することができる。
図示の実施形態では、画像変換モジュール120がユーザ制御回転モジュール250も含む。ユーザ制御回転モジュール250は、画像の回転に関するユーザ制御を可能にするユーザインタフェースを提供する。例えば、このようにして、利用者は傾いた画像を手作業でしかるべく回転させることによって補正することができる。
一実施形態では、ユーザ制御回転モジュール250は、利用者が画像の回転を1つ以上の粒度レベルに従って制御することを可能にするユーザインタフェースを提供する。例えばユーザインタフェースは、第1の粒度での画像のユーザ制御回転を可能にする第1の制御要素と、第2の粒度での画像のユーザ制御回転を可能にする第2の制御要素とを含み得る。第2の粒度は、例えば利用者がより正確に回転させることを可能にするために、第1の粒度よりも遅い速度で画像を回転させることができる。一実施形態では、時計回り又は反時計回りそれぞれに画像を回転させるために、基準位置に対して動かすことができるダイヤルとして第1の制御要素及び第2の制御要素を同時に表示する。第1の制御要素及び第2の制御要素について受け取られるユーザ入力に基づき、ユーザ制御回転モジュール250が、フレーミングモジュール245によって提供される表示フレーム内で第1の粒度及び第2の粒度のそれぞれに基づいて画像を回転させる。
図示の実施形態は傾き算出モジュール205及びユーザ制御回転モジュール250の両方を含むが、他の実施形態では傾き算出モジュール205又はユーザ制御回転モジュール20の一方が他方なしに実装され得ることを理解すべきである。
図3は、本開示の一実施形態による、運動センサデータに基づいて画像を変換するためのプロセスの一例を示す。プロセス300のブロック305で、モバイル装置によって捕捉される画像を取得する。例えば一実施形態では、モバイル装置上のカメラ及び画像捕捉プログラムを使用して画像を捕捉することができる。例えば、図2に示す画像捕捉モジュール110は、モバイル装置100上のカメラ105を使って写真を撮るためのユーザインタフェースを利用者に示すことができる。
ブロック310で、捕捉時の又はかかる時点の近くのモバイル装置の運動センサデータを取得する。例えば一実施形態では、画像変換モジュール120が、画像の捕捉時中のモバイル装置100の傾きに基づく運動センサデータを取得する。例えば利用者がモバイル装置100上で画像捕捉モードに入ると、サンプラ210がモバイル装置100上に実装されるジャイロスコープ又は他の運動センサからの運動センサデータをサンプリングし始める。次いで、例えばフィルタ215及び運動センサデータリポジトリ220により、サンプリング済みの運動センサデータがフィルタリングされて記憶される。一実施形態では、利用者が写真を撮るまで運動センサデータをサンプリングし、フィルタリングし、記憶する。サンプリングし、フィルタリングし、又は記憶する運動センサデータの量、並びに運動センサデータをサンプリングし、フィルタリングし、又は記憶する期間は様々な方法で決めることができる。
ブロック315で、運動センサデータに基づいて回転角を計算する。例えば一実施形態では、図2に示す角度算出モジュール230が画像の傾きを補正するための回転角を算出する。角度算出モジュール230が運動センサデータリポジトリ220から運動センサデータを受け取り、モバイル装置の傾きを算出する。この傾きは、画像捕捉時のモバイル装置100の傾きを補正するために画像を回転させる回転角を決定し得る。
一実施形態では、画像を変換する前に回転角を所定の閾値と比較する。所定の閾値は、例えば画像の傾きが利用者によって意図された(例えば芸術的に傾けられ、それ以外には意図的に傾けられる)ものだと想定される閾値を表し得る。傾いた画像を補正するための回転角が所定の閾値を上回る場合、傾きを補正するために画像を回転させることはない。例えば閾値は、45度又は他の任意の所定の閾値とすることができる。一部の例では、所定の閾値が画像を保持するソーシャルネットワーキングシステム、画像をアップロードし若しくは閲覧する利用者、又はその両方によって選択され得る。一部の例では、傾きを補正するのに必要な画像の回転が閾値を上回ることを示す情報を利用者に提供する。一部の例では、回転角が閾値を上回るかどうかに関係なく、画像の変換を行うべきかどうかを判定するために利用者による確認又は検証が必要である。
ブロック320で、計算した回転角に基づいて画像を変換する。例えば、図2の回転モジュール235が角度算出モジュール230によって計算される回転角の分だけ捕捉画像を回転させるための回転変換を生成する。一実施形態では、回転角に基づいて捕捉画像の変倍も行う。例えば図2の変倍モジュール240は、ユーザインタフェース上に表示される表示フレームを埋めるために捕捉画像を変倍するのに必要な倍率を決定する。
ブロック325で、変換画像を表示する。例えば、図2のフレーミングモジュールが回転モジュール、変倍モジュール、及び画像捕捉プログラムと連動して機能し、モバイル装置のディスプレイ上に示されるユーザインタフェースの表示フレーム内に変換画像をレンダリングすることができる。一部の例では、捕捉画像が表示フレーム内に表示され、その後変換画像によって置換される。
一実施形態では、利用者がモバイル装置100のメモリ内に変換画像を保存するか、それ以外には記憶し、又はソーシャルネットワーキングシステム内に記憶するためにリモートサーバに変換画像を伝達することができる。一部の例では、捕捉画像をモバイル装置100上に保存すること、および遠隔装置に伝達することのうちの少なくとも一方が行われる。一部の例では、運動センサデータ及び傾いた画像を補正するための最終的に計算された回転角のうちの少なくとも一方が、例えば画像データと共に含まれるメタデータとして捕捉画像と一緒に保存される。
例えば一実施形態では、画像を取得するのと同じモバイル装置100(例えばカメラ105を使って画像を捕捉し、運動センサ115によって運動センサデータを提供する)上で画像の変換が行われる。例えば、モバイル装置100の利用者はモバイル装置100(例えばスマートフォン)を使って写真を撮ることができ、モバイル装置100は、画像捕捉時のモバイル装置100の運動センサデータに基づき、任意の傾きを補正するのに必要な回転角を計算することができる。
別の実施形態では、画像を捕捉したモバイル装置100以外の装置が捕捉画像及び運動センサデータを取得し、傾き補正を行うことができる。例えば、デスクトップコンピュータ又は他の遠隔装置(例えばサーバ)がモバイル装置100と有線通信又は無線通信し、画像を捕捉するモバイル装置100から捕捉画像及び運動センサデータを受け取ることができる。次いで、デスクトップコンピュータ又は他の遠隔装置は、運動センサデータに基づいて回転角を計算して画像を変換することができる。一部の例では、デスクトップコンピュータ又は他の遠隔装置がインターネット経由で、又はフラッシュメモリやCD−ROM等のポータブルメモリデバイスから捕捉画像及び運動センサデータを受け取ることができる。一部の例では、運動センサデータが画像ファイル内の画像データと一緒に(例えばメタデータ内に)記憶され、装置(例えば画像を捕捉したモバイル装置100や他の遠隔装置)上に記憶され得る。
図4A及び図4Bは、本開示の一実施形態による、変換前及び変換後それぞれの画像を表示するユーザインタフェースの一例を示す。ユーザインタフェース400が、モバイル装置のディスプレイ405上に表示されて示されている。ユーザインタフェース400は、捕捉画像及び変換画像を表示するための表示フレーム410を含む。ユーザインタフェース400は、本明細書に記載するように画像の変換を開始するか、その以外に有効化することに関するユーザ制御を可能にする制御要素415も含む。捕捉画像に対する1つ又は複数の変換を利用者が行うことを認め又は可能にするために、図示のように1つ又は複数の更なる制御要素420を表示しても良い。更なる制御要素420の例は、画像のトリミング、画像の鮮明化、画像のコントラストの変更等、様々な変換を行うことができる。他の実施形態では、多岐にわたる任意の追加の変換も実施することができる。
表示フレーム410内に家を含む捕捉画像425が表示されている。捕捉画像425はモバイル装置100が傾いている間に撮られ、従って示されている家の画像も表示フレーム410内で傾いて示されている。モバイル装置100の縦軸440を点線で示す。軸430は、画像捕捉時の垂直基準軸を表す。
捕捉画像425の縁435Aが表示フレーム410と揃うように、表示フレーム410内に捕捉画像425が示されている。他の実施形態では、縁435Aが表示フレーム410よりも大きくても小さくても良いことを理解すべきである。モバイル装置が傾きながら家の捕捉画像425が撮られたので、捕捉画像425は表示フレーム410内で傾いて表示されている。図示のように、角度Aは、捕捉画像が傾いている角度、従って傾きを補正するのに必要な回転角(即ち反時計回りの角度Aの回転)を表す。
図4Bは、中心点Cの周りを反時計回りに角度A回転させた後の捕捉画像425を示す。縁435Aは、角度A回転させた後の捕捉画像425の縁を表す。捕捉画像425が回転されているので、捕捉画像の縁435Aはもはや表示フレーム410と揃っておらず、表示フレーム410内に画像内容がないスペース445を作り出している。捕捉画像425が角度A回転されているので、垂直基準軸430が今度はモバイル装置100の縦軸440と揃い、表示フレーム410内の捕捉画像425の傾きが補正されている。
一実施形態では、捕捉画像425の変換が、捕捉画像425を回転させることに加えて捕捉画像425を変倍することを含む。このようにして、例えば縁のサイズを大きくしてスペース445を埋めるために、捕捉画像425を適切に変倍することができる。図4Cは、反時計回りに角度A回転させ、捕捉画像425の回転によって作り出されたスペース445を埋めるために変倍した後の捕捉画像425を示す。縁435Cは、表示フレーム410内にスペース445が残らないように、縁の中に表示フレーム410全体を収めるために大きくした後の縁435Aを表す。変倍は、捕捉画像の回転と同時に行うことができ、又は逐次的に行われ得る。
図5A及び図5Bは、本開示の一実施形態による、捕捉画像の変換に関するユーザ制御を可能にするユーザインタフェースの一例を示す。図5Aは、捕捉画像を表示する前のユーザインタフェースの一例を示し、図5Bは捕捉画像を変換した後のユーザインタフェースの一例を示す。
ユーザインタフェース500が、モバイル装置のディスプレイ505上に表示されて示されている。ユーザインタフェース500は、捕捉画像、変換画像、又はその両方を表示するための表示フレーム510を含む。ユーザインタフェース500は、捕捉画像の変換に関するユーザ制御を可能にする変換制御要素560、575A、575B、580A、580B、及び580Cも含む。垂直及び水平の基準を利用者に提供するために、表示フレーム510内にグリッド550が表示されている。
図5Aでは、捕捉画像525が表示フレーム510内に表示されている。利用者は変換制御要素560、575A、575B、580A、580B、及び580Cを利用して捕捉画像525の変換を制御することができる。例えば一実施形態では、接触によって活性化されるか、それ以外に接触によって制御される変換制御要素560、575A、575B、580A、580B、及び580Cを伴って、ユーザインタフェース500がタッチスクリーンディスプレイ上に表示されても良い。
変換制御要素560は、捕捉画像525の変換に関するユーザ制御を可能にする。変換制御要素560は、第1の粒度で捕捉画像を回転させることに関するユーザ制御を可能にする第1の制御要素565と、第2の粒度で捕捉画像を回転させるユーザ制御を可能にする第2の制御要素570とを含む。例えば、より高い粒度を有する制御要素は、捕捉画像525の回転に関するよりきめ細かい制御を利用者に提供する。図示の実施形態では、捕捉画像が表示フレーム510の中心点Cの周りを回転する。更に一実施形態では、表示フレーム内の画像内容がないスペースを避けるために、捕捉画像を更に変倍する。
利用者がより細かい粒度で第1の制御要素をスライドさせ、又は他の方法で動かす距離又は角度は、より大きい粒度を有する第2の制御要素を同じ又は同様の距離動かすよりも小さい回転度に相関し得る。例えば図示の実施形態では、制御要素565及び570がダイヤルとして具体化されており、このダイヤルは、利用者が(例えばダイヤルに触って時計回り又は反時計回りにスライドさせることにより)既定の位置から弧に沿って時計回り又は反時計回りに動かすことができ、制御要素570は制御要素565よりも細かい粒度を有する。既定の位置はダイヤルが垂直になる弧の中心であり、捕捉画像が回転されていない初期位置に対応する。利用者が制御要素565又は570を時計回りの方向に動かすと、捕捉画像525がそれぞれの粒度で時計回りに回転される。同様に、利用者が制御要素565又は570を反時計回りの方向に動かすと、捕捉画像525がそれぞれの粒度で反時計回りに回転される。このようにして、対応する弧に沿って制御要素570を既定の位置から一定度数動かすことにより、対応する弧に沿って制御要素565を同様の度数動かすよりも捕捉画像の回転度が小さくなる。例えば、既定の位置から制御要素565を90度動かすことは捕捉画像を45度動かし得るのに対し、既定の位置から制御要素570を90度動かすことは捕捉画像を15度だけ回転させ得る。これらの値は例示的であり、限定的であると解釈すべきでないことを理解すべきである。更に別の実施形態では、制御要素570に比べて更に細かい粒度の制御を有するように制御要素565を設定することができる。
ユーザインタフェース500は、ディスプレイ505上に表示されるユーザ制御ボタンとして具体化される変換制御要素575A及び575Bも含む。利用者が制御要素575A及び575Bをクリックするか、それ以外に活性化すると、捕捉画像が時計回り又は反時計回りにしかるべく回転させられる。例えば、制御要素575Aをクリックすると捕捉画像を反時計回りに所定の度数回転させることができ、制御要素575Bをクリックするか、それ以外に活性化すると捕捉画像を時計回りに所定の度数回転させることができる。
ユーザインタフェース500は、制御要素565の粒度に関する制御を利用者に提供する変換制御要素580A、580B、及び580Cも含む。例えば利用者が580Aを選択すると、ダイヤルの端まで制御要素565が完全に(例えば90度)動いて、捕捉画像が45度回転する。同様に、利用者が580Bを選択すると、ダイヤルの端まで制御要素565が完全に(例えば90度)動いて、捕捉画像が35度回転される。同様に、利用者が580Cを選択すると、ダイヤルの端まで制御要素565が完全に(例えば90度)動いて、捕捉画像がそれぞれの方向に15度回転される。一実施形態では、制御要素565の全般的な粒度に加え、制御要素570の全般的な粒度も制御要素580A、580B、及び580Cを選択することによってそれぞれ変更される。例えば制御要素565が設けられた実施形態では、制御要素580A、580B、及び580Cそれぞれに関する制御要素570の粒度が15度、10度、及び5度であり得る。これらの値は例示的であり、限定的であると解釈すべきでないことを理解すべきである。他の実施形態では他の値も実装され得る。
図5Bは、制御要素565及び570に適用されたユーザ入力に基づいて回転させ、変倍した後の捕捉画像525を示す。例えば利用者は、ほぼ水平な(例えば傾きのない)位置まで捕捉画像を回転させるためにまず制御要素565を使用し、その後、より高い精度で傾いた画像を水平にするためにより細かい粒度を有する制御要素570を使用する。この使用順序は例示的であり、場合によっては利用者がこの例で示すのと異なる順序で制御要素565及び570を使用し得る。更に、特定の例では、傾いた写真を水平にするために利用者は制御要素565及び570の一方しか使用することができない。
別の実施形態では、制御要素560が弧形の動きとは別に、利用者による別の種類の動き又は入力を含み得る。例えば一実施形態では、制御要素の動きが直線的であり得る。図6Aは、一実施形態による直線的である制御要素の一例を示す。制御要素665A及び670Aが既定の位置に示されており、時計回り又は反時計回りの方向に捕捉画像を回転できるようにするために利用者によって左右に直線的に動かされ得る。制御要素670Aは、例えば制御要素665Aよりも細かい粒度で捕捉画像を回転させることができる。
更に別の実施形態では、制御要素が、制御要素に与えられる1回のクリックや他の入力等のユーザ制御パラメータに基づいて実装され得る。例えば図6Bは、利用者がクリックすることができるボタン形式の制御要素665B及び670Bの一例を示す。制御要素665B、670Bをクリックすると捕捉画像を一定量回転させることができる。制御要素670Bは、より小さい回転度に相関する、制御要素665Bよりも細かい粒度の制御を有し得る。例えば、制御要素665Bを1回クリックすることで5度の傾きを引き起こすことができ、制御要素670Bを1回クリックすることで2度の傾きを引き起こすことができる。特定の例では、利用者が捕捉画像を継続的に回転させるために制御要素を押したままにするようにしてもよい。その場合、細かい粒度の制御要素が、大きい粒度の制御要素よりも遅い速度(例えば回転度/秒)で捕捉画像を回転させる。
図7は、本開示の一実施形態による、画像を変換するためのプロセスの一例を示す。プロセス700のブロック705で、モバイル装置のディスプレイ上に図5A、図5B、図6A、及び図6Bに関して説明したようなユーザインタフェースを表示する。ブロック710で、ユーザインタフェースの表示フレーム内に捕捉画像を表示する。ブロック715で、利用者が第1の粒度に従って捕捉画像を変換することを可能にする第1の制御要素に適用されるユーザ入力を受け取る。ブロック720で、第1の制御要素に関連するユーザ入力に基づいて捕捉画像を変換し、その結果、変換した通りに表示フレーム内に表示する。例えば図5A及び図5Bに示す実施形態では、ユーザ入力に基づいて第1の粒度で回転させた通りに捕捉画像の回転を表示フレーム510内に表示することができる。
ブロック725で、第2の制御要素に適用されるユーザ入力を受け取る。第2の制御要素も第1の制御要素に加えてユーザインタフェース上に表示される。第2の制御要素は、第1の制御要素の粒度と異なる第2の粒度に従って利用者が捕捉画像を変換することを可能にする。ブロック730で、第2の制御要素について受け取ったユーザ入力に基づいて捕捉画像を変換し、その結果、変換した通りに表示フレーム内に表示する。例えば図5A及び図5Bに示す実施形態では、ユーザ入力に基づいて第2の粒度で回転させた通りに捕捉画像の回転を表示フレーム510内に表示することができる。
ブロック735で、変換が完了する(例えば利用者が対応するボタンを押すことで変換の完了を示す)と、変換画像が最終決定される(例えば装置のメモリ内に保存されるか、それ以外に記憶され、又はソーシャルネットワーキングシステム内に記憶するためにインターネット経由でリモートサーバに伝達される)。一部の例では、捕捉画像が装置上に保存され、遠隔装置に伝達されても良い。
図3及び図7で説明したプロセスは組み合わせて実行し得ることを理解すべきである。例えば一実施形態では、ユーザインタフェース500が提供され、図3のプロセス300に従って捕捉画像を変換した後でプロセス700が実行される。このようにして、利用者は傾きを補正するために自動画像変換を行うことを決めることができ、その後、更なる手動のユーザ制御変換を可能にするためにユーザインタフェース500が提示される。一実施形態では、プロセス300から生じる変換画像がユーザインタフェース500と共にディスプレイ上に表示される場合、制御要素565及び570が既定の位置(例えば垂直方向)に置かれ得る。別の実施形態では、プロセス300から生じる変換画像がユーザインタフェース500と共にディスプレイ上に表示される場合、制御要素565及び570が捕捉画像の傾き角を反映するように置かれ得る。このようにして、利用者は制御要素565及び570を既定の位置に動かすことによって画像を変換前の状態に戻すことができる。
上記に示した実施形態では、捕捉画像が表示フレーム510の中心Cの周りを回転した。他の実施形態では、捕捉画像が表示フレームの中心ではない回転点の周りを回転しても良い。図8は、本開示の一実施形態による、利用者が選択した回転点を中心に捕捉画像を変換するためのプロセスの一例を示す。図9Aは、本開示の一実施形態による、図8のプロセスを行う前の画像を表示するユーザインタフェースの一例を示す。図9Bは、本開示の一実施形態による、図8のプロセスに従って変換された画像を表示する図9Aのユーザインタフェースの一例を示す。本明細書では図8、図9A、及び図9Bを一緒に説明する。
プロセス800のブロック805で、装置(例えばモバイル装置)のディスプレイ905上にユーザインタフェース902を表示し、ユーザインタフェース902の表示フレーム910内に捕捉画像を表示する。図9Aに示す捕捉画像では、家920が表示フレーム910の中心Cから外れて示されている。
ブロック810で、利用者による回転点の選択に関するユーザ入力を受け取る。例えば図9A及び図9Bの丸で囲んだ参照番号1で表わすように、利用者は表示フレーム910内の点Pを触って回転点を特定することができる。一実施形態では、回転点が例えば点や他の基準としてユーザインタフェース上で示され得る。
ブロック815で、回転の粒度を示すユーザ入力を受け取る。例えば一実施形態では、図9A及び図9B内の丸で囲んだ参照番号2で表わすように、利用者が自分で定めた回転点Pから粒度選択点まで自分の指をスライドさせることによって回転の粒度が定められる。指が回転点からスライドされた距離に基づいて回転の粒度が計算される。例えば一実施形態では、回転点から離れた粒度選択点は、回転点に近い粒度選択点からもたらされる粒度よりも細かい粒度をもたらす。更に別の実施形態では、回転点からの長い距離は、回転点からの短い距離からもたらされる粒度よりも粗い粒度をもたらす。利用者が自分の指を回転点から遠ざけるようにスライドさせるとき、回転点から利用者の指の位置までの線925を実時間で表示することができる。
ブロック820で、回転の方向及び程度を示すユーザ入力を受け取る。例えば一実施形態では、図9Bの丸で囲んだ参照番号3で表わすように、利用者が自分の指を回転点に対して時計回り又は反時計回りにスライドさせることによって回転方向が定められる。この方向は、指をスライドさせる時計回り又は反時計回りの方向によって定められても良く、例えば時計回りは捕捉画像を時計回りに回転させ、反時計回りは捕捉画像を反時計回りに回転させる。更に、時計回り又は反時計回りの方向に指をどの程度スライドさせるのかによって回転度を定めることができる。
ブロック825で、示された回転の粒度及び方向に基づき回転点を中心に捕捉画像を回転させる。図9Bに示すように、描かれている向きに画像が回転されるまで、丸で囲んだ参照番号3で表わす点まで利用者の指が反時計回りにスライドされている。
一実施形態では、利用者の指がスライドされるときにディスプレイ上で捕捉画像を回転させる。図示の実施形態では、回転点から粒度選択点までの線925が表示されており、この線の長さは、利用者が自分の指を丸で囲んだ参照番号3まで反時計回りの方向にスライドさせるときに、描かれている位置まで回転される場合は一定のままである。
一実施形態では、回転点、粒度選択点、及び回転の方向及び程度を選択する間、利用者は自分の指をずっとディスプレイ上に保つ必要がある。例えば利用者が自分の指をディスプレイから離す場合、利用者はこの情報の選択を繰り返さなければならない。
本明細書でより詳細に解説するように、一実施形態では、回転画像と表示フレームとの間の如何なるスペースもなくすために捕捉画像を回転させながら変倍する。
ソーシャルネットワーキングシステム−実装形態例
図10は、本開示の一実施形態による、画像を変換するためのシステム1000の一例のネットワーク図である。システム1000は、1つ又は複数のユーザ装置1010、1つ又は複数の外部システム1020、ソーシャルネットワーキングシステム1030、及びネットワーク1050を含む。一実施形態では、上記の実施形態に関して論じるソーシャルネットワーキングシステムがソーシャルネットワーキングシステム1030として実装され得る。例示目的で、図10に示すシステム1000の実施形態は単一の外部システム1020及び単一のユーザ装置1010を含む。しかし、他の実施形態ではシステム1000が更に多くのユーザ装置1010及び更に多くの外部システム1020のうちの少なくとも一方を含み得る。特定の実施形態では、ソーシャルネットワーキングシステム1030がソーシャルネットワークプロバイダによって運営されるのに対し、外部システム1020は別のエンティティによって運営され得る点でソーシャルネットワーキングシステム1030から切り離されている。しかし、様々な実施形態において、ソーシャルネットワーキングシステム1030及び外部システム1020は連動して機能し、ソーシャルネットワーキングシステム1030の利用者(又はメンバ)にソーシャルネットワーキングサービスを提供する。この意味で、ソーシャルネットワーキングシステム1030は、ソーシャルネットワーキングサービス及びその機能をインターネット経由で利用者に提供するために外部システム1020等の他のシステムが使用できるプラットフォーム又はバックボーンを提供する。
ユーザ装置1010は、利用者から入力を受け取り、ネットワーク1050経由でデータを送受信可能な1つ又は複数の計算装置を含む。一実施形態では、ユーザ装置1010が、例えばマイクロソフトウィンドウズ(Microsoft Windows(登録商標))互換オペレーティングシステム(OS)、アップル(Apple)OS X、及びリナックス(Linux(登録商標)ディストリビューションのうちの少なくとも一つを実行する従来型コンピュータシステムである。別の実施形態では、ユーザ装置1010が、スマートフォン、タブレット、携帯情報端末(PDA)、携帯電話等、コンピュータの機能性を有する装置であり得る。ユーザ装置1010は、ネットワーク1050経由で通信するように構成される。ユーザ装置1010は、ユーザ装置1010の利用者がソーシャルネットワーキングシステム1030と対話することを可能にするアプリケーション、例えばブラウザアプリケーションを実行することができる。別の実施形態では、アイオーエス(iOS)やアンドロイド(ANDROID)等のユーザ装置1010のネイティブオペレーティングシステムが提供するアプリケーションプログラミングインタフェース(API)により、ユーザ装置1010がソーシャルネットワーキングシステム1030と対話する。ユーザ装置1010は、ネットワーク1050経由で外部システム1020及びソーシャルネットワーキングシステム1030と通信するように構成され、ネットワーク1050は有線通信システム及び無線通信システムのうちの少なくとも一方を使用するローカルエリアネットワーク及び広域ネットワークのうちの少なくとも一方の任意の組合せを含み得る。
一実施形態では、ネットワーク1050が標準の通信技術及びプロトコルを使用する。従ってネットワーク1050は、イーサネット、702.11、WiMAX(worldwide interoperability for microwave access)、3G、4G、CDMA、GSM(登録商標)、LTE、デジタル加入者回線(DSL)等の技術を使用するリンクを含み得る。同様に、ネットワーク1050上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)等を含み得る。ネットワーク1050経由でやり取りされるデータは、ハイパテキストマーク付け言語(HTML)及び拡張可能マーク付け言語(XML)を含む技術及び形式のうちの少なくとも一方を使用して表すことができる。更に、セキュアソケットレイヤ(SSL)、トランスポートレイヤセキュリティ(TLS)、インターネットプロトコルセキュリティ(IPsec)等の従来の暗号化技術を使用し、全ての又は一部のリンクを暗号化することができる。
一実施形態では、ユーザ装置1010がブラウザアプリケーション1012を使用し、外部システム1020及びソーシャルネットワーキングシステム1030から受け取られるマーク付け言語ドキュメント1014を処理することにより、外部システム1020及びソーシャルネットワーキングシステム1030のうちの少なくとも一方からのコンテンツを表示することができる。マーク付け言語ドキュメント1014は、コンテンツ及びコンテンツのフォーマッティング又は提示について記述する1つ又は複数の命令を識別する。マーク付け言語ドキュメント1014内に含まれる命令を実行することにより、ブラウザアプリケーション1012が、マーク付け言語ドキュメント1014によって記述されるフォーマット又は提示を使用し、識別されたコンテンツを表示する。例えばマーク付け言語ドキュメント1014は、外部システム1020及びソーシャルネットワーキングシステム1030から取得されるテキスト及び画像データのうちの少なくとも一方を含む複数のフレームを有するウェブページを生成して表示するための命令を含む。様々な実施形態において、マーク付け言語ドキュメント1014は拡張可能マーク付け言語(XML)データ、拡張可能ハイパテキストマーク付け言語(XHTML)データ、又は他のマーク付け言語データを含むデータファイルを含む。更に、マーク付け言語ドキュメント1014は、外部システム1020とユーザ装置1010との間のデータ交換を助けるためのJSON(Java(登録商標)Script Object Notation)データ、JSONP(JSON with padding)、及びJavaScriptデータを含み得る。ユーザ装置1010上のブラウザアプリケーション1012は、JavaScriptコンパイラを使用してマーク付け言語ドキュメント1014を復号することができる。
マーク付け言語ドキュメント1014は、FLASH(商標)やUnity(商標)アプリケーション、SilverLight(商標)アプリケーションフレームワーク等のアプリケーション又はアプリケーションフレームワークを含み、又はそれらにリンクすることもできる。
一実施形態では、ユーザ装置1010は、ユーザ装置1010の利用者がソーシャルネットワーキングシステム1030にログインしているかどうかを示すデータを含む1つ又は複数のクッキー1016も含み、クッキー1016は、ソーシャルネットワーキングシステム1030からユーザ装置1010に伝えられるデータの修正を可能にし得る。
外部システム1020は、ネットワーク1050を使用してユーザ装置1010に伝えられる1つ又は複数のウェブページ1022a、1022bを含む1つ又は複数のウェブサーバを含む。外部システム1020は、ソーシャルネットワーキングシステム1030から切り離されている。例えば、外部システム1020は第1のドメインに関連するのに対し、ソーシャルネットワーキングシステム1030は別のソーシャルネットワーキングドメインに関連する。外部システム1020内に含まれるウェブページ1022a、1022bは、コンテンツを識別し、識別されたコンテンツのフォーマッティング又は提示を指定する命令を含むマーク付け言語ドキュメント1014を含む。
一実施形態では、モバイル装置100がユーザ装置1010として実装され得る。例えば、ユーザ装置1010は、画像捕捉モジュール1054及び画像変換モジュール1052を含むモバイル装置であり得る。一実施形態では、画像捕捉モジュール1054及び画像変換モジュール1052が画像捕捉モジュール110及び画像変換モジュール120のそれぞれとして実装され得る。ユーザ装置1010は、運動センサ、カメラ、ディスプレイ、処理装置等の不図示の他の構成要素も含むことができる。ユーザ装置1010は、本明細書に記載の画像変換を行うことができる。
ソーシャルネットワーキングシステム1030は、複数の利用者を含むソーシャルネットワーク用であり、ソーシャルネットワークの他の利用者と通信し対話する能力をソーシャルネットワークの利用者に提供する1つ又は複数の計算装置を含む。一部の例では、ソーシャルネットワークがグラフ、即ちエッジ及びノードを含むデータ構造によって表わされ得る。これだけに限定されないが、データベース、オブジェクト、クラス、メタエレメント、ファイル、又は他の任意のデータ構造を含む他のデータ構造もソーシャルネットワークを表すために使用され得る。ソーシャルネットワーキングシステム1030は、運営者によって運営され、管理され、又は制御され得る。ソーシャルネットワーキングシステム1030の運営者は人間、自動化アプリケーション、又はコンテンツを管理し、ポリシを調整し、ソーシャルネットワーキングシステム1030内の使用測度を集めるための一連のアプリケーションであり得る。任意の種類の運営者が使用され得る。
利用者はソーシャルネットワーキングシステム1030に参加し、自分がつながりをもちたいソーシャルネットワーキングシステム1030の他の任意の数の利用者とのつながりを追加することができる。本明細書で使用するとき、「友人」という用語は、利用者がソーシャルネットワーキングシステム1030によってつながり、関連、又は関係を形成したソーシャルネットワーキングシステム1030の他の任意の利用者を指す。例えば一実施形態では、ソーシャルネットワーキングシステム1030内の利用者がソーシャルグラフ内のノードとして表される場合、「友人」という用語は2つのユーザノード間に形成され、それらのノードを直接接続するエッジを指し得る。
つながりは利用者によって明示的に追加されても良く、又は利用者の共通の特徴に基づいて(例えば同じ教育機関の卒業生である利用者)ソーシャルネットワーキングシステム1030によって自動で作成されても良い。例えば、第1の利用者が他の特定の利用者を友人にするために明確に選ぶ。ソーシャルネットワーキングシステム1030内のつながりは通常は双方向だが、そうでなくても良く、そのため「利用者」及び「友人」という用語は準拠枠に依存する。ソーシャルネットワーキングシステム1030の利用者間のつながりは通常は双方向(「二方向」)又は「相互的」だが、単方向又は「一方向」でも良い。例えばボブとジョーがどちらもソーシャルネットワーキングシステム1030の利用者であり、互いにつながっている場合、ボブとジョーは互いのつながりである。他方で、ソーシャルネットワーキングシステム1030にジョーが伝達するデータを見るためにボブがジョーとつながりをもちたいが、ジョーが相互的なつながりをもちたくない場合、単方向のつながりを確立することができる。利用者間のつながりは直接的なつながりとすることができるが、ソーシャルネットワーキングシステム1030の一部の実施形態は、1つ又は複数のつながりのレベル若しくは分離度によってつながりが間接的であることを可能にする。
利用者間のつながりを確立して保持し、利用者間の対話を可能にすることに加え、ソーシャルネットワーキングシステム1030は、ソーシャルネットワーキングシステム1030によってサポートされる様々な種類のアイテムに対して行動を起こす能力を利用者に提供する。それらのアイテムは、ソーシャルネットワーキングシステム1030の利用者が属することができるグループやネットワーク(即ち、人、エンティティ、及び概念のソーシャルネットワーク)、利用者が興味をもつ可能性があるイベント又はカレンダエントリ、利用者がソーシャルネットワーキングシステム1030によって使用できるコンピュータベースアプリケーション、ソーシャルネットワーキングシステム1030によって又はそれを介して提供されるサービスにより、利用者がアイテムを売買することを可能にする取引、及び利用者がソーシャルネットワーキングシステム1030の内外で行うことができる広告との対話を含み得る。これらは利用者がソーシャルネットワーキングシステム1030に対して作用できるアイテムのほんの数例であり、他の多くのアイテムがあり得る。利用者は、ソーシャルネットワーキングシステム1030内で表示可能な、又はソーシャルネットワーキングシステム1030から切り離され、若しくはネットワーク1050経由でソーシャルネットワーキングシステム1030に結合される外部システム1020内で表示可能な如何なるものとも対話することができる。
ソーシャルネットワーキングシステム1030は、様々なエンティティを結び付けることもできる。例えばソーシャルネットワーキングシステム1030は、利用者がAPI、ウェブサービス、又は他の通信チャネルによって互いに並びに外部システム1020又は他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム1030は、複数のエッジによって互いにつながれる複数のノードを含む「ソーシャルグラフ」を生成して保持する。ソーシャルグラフ内の各ノードは、別のノードに作用可能なエンティティ、及び別のノードによって作用され得るエンティティのうちの少なくとも一方を表し得る。ソーシャルグラフは様々な種類のノードを含み得る。ノードの種類の例には、利用者、非人間エンティティ、コンテンツアイテム、ウェブページ、グループ、活動、メッセージ、概念、及びソーシャルネットワーキングシステム1030内のオブジェクトによって表わすことができる他の任意のものが含まれる。ソーシャルグラフ内の2つのノード間のエッジは2つのノード間の特定の種類のつながり又は関連を表すことができ、このつながり又は関連は、ノードの関係又はノードの一方が他方のノードに対して行った行動に起因し得る。一部の事例では、ノード間のエッジに重み付けすることができる。エッジの重みは、ノード間のつながり又は関連の強さ等、エッジに関連する属性を表し得る。様々な種類のエッジに様々な重みを与えることができる。例えば、或る利用者が別の利用者を「好き」になるときに作られるエッジに或る重みを与えることができる一方、利用者が別の利用者と友人になるときに作られるエッジには異なる重みを与えることができる。
一例として、第1の利用者が第2の利用者を友人として識別する場合、第1の利用者を表すノードと第2の利用者を表す第2のノードとをつなぐソーシャルグラフ内のエッジが生成される。様々なノードが互いに関係し又は互いと対話するので、それらの関係及び対話を反映させるためにソーシャルネットワーキングシステム1030が様々なノードをつなぐエッジを修正する。
ソーシャルネットワーキングシステム1030は、ソーシャルネットワーキングシステム1030との利用者の対話を向上させるユーザ生成コンテンツも含む。ユーザ生成コンテンツは、利用者がソーシャルネットワーキングシステム1030に追加し、アップロードし、送信し、又は「投稿」することができる如何なるものも含み得る。例えば、利用者がユーザ装置1010からソーシャルネットワーキングシステム1030に投稿を伝達する。投稿は、状況更新や他のテキストデータ、位置情報、写真等の画像、映像、リンク、音楽、他の同様のデータ及び媒体のうちの少なくとも一つを含み得る。サードパーティによってコンテンツがソーシャルネットワーキングシステム1030に追加されても良い。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム1030内のオブジェクトとして表わされる。このようにして、ソーシャルネットワーキングシステム1030の利用者は、様々な通信チャネルによってテキスト及び様々な種類の媒体のコンテンツアイテムを投稿することにより、互いにやり取りするよう促される。そのようなやり取りは、利用者の互いとの対話を増やし、利用者がソーシャルネットワーキングシステム1030と対話する頻度を高める。
ソーシャルネットワーキングシステム1030は、ウェブサーバ1032、APIリクエストサーバ1034、ユーザプロファイルストア1036、つながりストア1038、アクションロガー1040、活動ログ1042、承認サーバ1044、及び画像インポートモジュール1046を含む。本発明の一実施形態では、ソーシャルネットワーキングシステム1030が様々な用途向けの追加の、更に少ない、又は異なる構成要素を含み得る。システムの詳細を不明瞭にしないために、ネットワークインタフェース、セキュリティメカニズム、ロードバランサ、フェイルオーバサーバ、管理及びネットワーク運用コンソール等の他の構成要素は図示していない。
ユーザプロファイルストア1036は、経歴情報、人口統計情報、及び利用者が申告し又はソーシャルネットワーキングシステム1030が推論した職歴、学歴、趣味や好み、位置等の他の種類の記述的情報を含むユーザアカウントに関する情報を保持する。各利用者が一意に識別されるように、この情報はユーザプロファイルストア1036内に記憶される。ソーシャルネットワーキングシステム1030は、様々な利用者間の1つ又は複数のつながりを記述するデータもつながりストア1038内に記憶する。つながり情報は、同様の又は共通の職歴、集団帰属関係、趣味、又は学歴を有する利用者を示すことができる。更にソーシャルネットワーキングシステム1030は、利用者によって定義される様々な利用者間のつながりを含み、他の利用者と自分との関係を利用者が規定することを可能にする。例えば利用者によって定義されるつながりは、友人、同僚、配偶者等、自身の現実生活の関係に対応した他の利用者との関係を利用者が生成することを可能にする。利用者は予め定められたつながりの種類から選択することができ、又は必要に応じて独自のつながりの種類を定めることができる。非人間エンティティ、バケット、クラスタセンタ、画像、関心事、ページ、外部システム、概念等のソーシャルネットワーキングシステム1030内の他のノードとのつながりもつながりストア1038内に記憶される。
ソーシャルネットワーキングシステム1030は、利用者が対話し得るオブジェクトに関するデータを保持する。このデータを保持するために、ユーザプロファイルストア1036及びつながりストア1038が、ソーシャルネットワーキングシステム1030によって保持される対応する種類のオブジェクトのインスタンスを記憶する。それぞれのオブジェクトタイプは、オブジェクトの種類にふさわしい情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロファイルストア1036は、ユーザアカウント及びユーザアカウントに関する情報を記述するのに適したフィールドを有するデータ構造を含む。特定の種類の新規オブジェクトが作成されると、ソーシャルネットワーキングシステム1030が対応する種類の新たなデータ構造を初期設定し、それに一意のオブジェクト識別情報を割り当て、必要に応じてオブジェクトにデータを追加し始める。これは、例えば利用者がソーシャルネットワーキングシステム1030の利用者になり、ソーシャルネットワーキングシステム1030がユーザプロファイルストア1036内にユーザプロファイルの新たなインスタンスを生成し、ユーザアカウントに一意の識別情報を割り当て、利用者が提供する情報を用いてユーザアカウントのフィールドにデータ投入し始めるときに起こり得る。
つながりストア1038は、利用者の他の利用者とのつながり、外部システム1020とのつながり、又は他のエンティティとのつながりを記述するのに適したデータ構造を含む。つながりストア1038は、つながりの種類を利用者のつながりに関連付けることもでき、それを利用者のプライバシ設定と共に使用して利用者に関する情報へのアクセスを調整することができる。本発明の一実施形態では、ユーザプロファイルストア1036及びつながりストア1038が連合データベースとして実装され得る。
つながりストア1038、ユーザプロファイルストア1036、及び活動ログ1042内に記憶されるデータは、ソーシャルネットワーキングシステム1030が、様々なオブジェクトを識別するノードと、様々なオブジェクト間の関係を明らかにするためにノードをつなぐエッジとを使用するソーシャルグラフを生成することを可能にする。例えば、第1の利用者がソーシャルネットワーキングシステム1030内で第2の利用者とつながりを確立する場合、ユーザプロファイルストア1036からの第1の利用者及び第2の利用者のユーザアカウントがソーシャルグラフ内のノードとして働き得る。つながりストア1038が記憶する第1の利用者と第2の利用者との間のつながりは、第1の利用者及び第2の利用者に関連するノード間のエッジである。この例を続けると、第2の利用者はソーシャルネットワーキングシステム1030内で第1の利用者にメッセージを送ることができる。記憶され得るこのメッセージ送信行動は、第1の利用者及び第2の利用者を表すソーシャルグラフ内の2つのノード間の別のエッジである。更に、メッセージ自体を識別し、第1の利用者及び第2の利用者を表すノードにつながる別のノードとしてソーシャルグラフ内に含めても良い。
別の例では、ソーシャルネットワーキングシステム1030が保持する画像内(或いはソーシャルネットワーキングシステム1030の外部の別のシステムが保持する画像内)で第1の利用者が第2の利用者をタグ付けすることができる。画像自体がソーシャルネットワーキングシステム1030内のノードとして表されても良い。このタグ付け行動は、第1の利用者と第2の利用者との間のエッジを作ると共に、利用者それぞれと画像との間のエッジも作ることができ、画像もソーシャルグラフ内のノードである。更に別の例では、利用者がイベントに参加したことを確認する場合、その利用者及びイベントはユーザプロファイルストア1036から得られるノードであり、イベントの出席は活動ログ1042から取得され得るノード間のエッジである。ソーシャルグラフを生成して保持することにより、ソーシャルネットワーキングシステム1030は多くの異なる種類のオブジェクト、並びにそれらのオブジェクト間の対話及びつながりを記述するデータを含み、社会的に関係する情報の豊かな情報源を提供する。
ウェブサーバ1032は、ネットワーク1050経由でソーシャルネットワーキングシステム1030を1つ若しくは複数のユーザ装置1010及び1つ若しくは複数の外部システム1020のうちの少なくとも一方にリンクする。ウェブサーバ1032は、ウェブページ並びにJava、JavaScript、Flash、XML等の他のウェブ関連コンテンツを供給する。ウェブサーバ1032は、ソーシャルネットワーキングシステム1030と1つ又は複数のユーザ装置1010との間のメッセージの受信及びルーティング用のメールサーバ又は他のメッセージング機能を含み得る。メッセージは、インスタントメッセージ、待ち行列メッセージ(例えば電子メール)、テキストやSMSメッセージ、又は他の任意の適切なメッセージング形式とすることができる。
APIリクエストサーバ1034は、1つ又は複数のAPI関数を呼び出すことにより、1つ又は複数の外部システム1020及びユーザ装置1010がソーシャルネットワーキングシステム1030からアクセス情報を呼び出すことを可能にする。APIリクエストサーバ1034は、APIを呼び出すことにより、外部システム1020がソーシャルネットワーキングシステム1030に情報を送ることも可能にし得る。一実施形態では、外部システム1020がネットワーク1050経由でソーシャルネットワーキングシステム1030にAPIリクエストを送り、APIリクエストサーバ1034がそのAPIリクエストを受け取る。APIリクエストサーバ1034は、APIリクエストに関連するAPIを呼び出すことでリクエストを処理して適切な応答を生成し、その応答は、APIリクエストサーバ1034がネットワーク1050経由で外部システム1020に伝達する。例えばAPIリクエストに応答し、APIリクエストサーバ1034は、外部システム1020にログインしている利用者のつながり等、利用者に関連するデータを集め、集めたデータを外部システム1020に伝達する。別の実施形態では、ユーザ装置1010が、外部システム1020と同じ方法でAPIによりソーシャルネットワーキングシステム1030と通信する。
アクションロガー1040は、ソーシャルネットワーキングシステム1030内外の利用者の行動に関する通信をウェブサーバ1032から受け取ることができる。アクションロガー1040は、利用者の行動に関する情報で活動ログ1042にデータ投入し、ソーシャルネットワーキングシステム1030の内外で利用者が行った様々な行動をソーシャルネットワーキングシステム1030が知ることを可能にする。活動ログ1042又は同様のデータベース若しくは他のデータリポジトリ内に保持される情報により、特定の利用者がソーシャルネットワーキングシステム1030上の別のノードに対して行う如何なる行動も各ユーザアカウントに関連付けることができる。ソーシャルネットワーキングシステム1030内で利用者が行う、識別され、記憶される行動の例には、例えば別の利用者へのつながりを追加すること、別の利用者にメッセージを送ること、別の利用者からのメッセージを読むこと、別の利用者に関連するコンテンツを閲覧すること、別の利用者が投稿したイベントに参加すること、画像を投稿すること、画像の投稿を試みること、又は別の利用者若しくは別のオブジェクトと対話する他の行動が含まれ得る。ソーシャルネットワーキングシステム1030内で利用者が行動を起こすと、その行動が活動ログ1042内に記録される。一実施形態では、ソーシャルネットワーキングシステム1030がエントリのデータベースとして活動ログ1042を保持する。ソーシャルネットワーキングシステム1030内で行動が起こされると、その行動のエントリが活動ログ1042に追加される。活動ログ1042は行動ログと呼ぶこともできる。
更に、利用者の行動は、ソーシャルネットワーキングシステム1030とは別の外部システム1020等、ソーシャルネットワーキングシステム1030の外部のエンティティの中で生じる概念及び行動に関連し得る。例えばアクションロガー1040は、外部システム1020との利用者の対話を記述するデータをウェブサーバ1032から受け取ることができる。この例では、外部システム1020がソーシャルグラフ内の構造化された行動及びオブジェクトに従って利用者の対話を報告する。
利用者が外部システム1020と対話する他の行動例には、利用者が外部システム1020又は別のエンティティへの興味を示すこと、利用者が外部システム1020又は外部システム1020内のウェブページ1022aについて論じるコメントをソーシャルネットワーキングシステム1030に投稿すること、利用者が外部システム1020に関連する統一資源ロケータ(URL)又は他の識別情報をソーシャルネットワーキングシステム1030に投稿すること、利用者が外部システム1020に関連するイベントに参加すること、又は外部システム1020に関係する利用者による他の任意の行動が含まれる。従って、活動ログ1042は、ソーシャルネットワーキングシステム1030の利用者とソーシャルネットワーキングシステム1030とは別の外部システム1020との間の対話を表す行動を含み得る。
承認サーバ1044は、ソーシャルネットワーキングシステム1030の利用者の1つ又は複数のプライバシ設定を強化する。利用者のプライバシ設定は、利用者に関連する特定の情報がどのように共有され得るのかを決める。プライバシ設定は、利用者に関連する特定の情報を指定すること、及びその情報が共有され得るエンティティを指定することを含む。情報が共有され得るエンティティの例には、他の利用者、アプリケーション、外部システム1020、又は潜在的に情報にアクセス可能な任意のエンティティが含まれ得る。利用者が共有可能な情報には、プロフィール写真、利用者に関連する電話番号、利用者のつながり等のユーザアカウント情報、つながりを追加すること、ユーザプロファイル情報を変更すること等の利用者が行う行動が含まれる。
プライバシ設定の指定は、様々な粒度レベルで行うことができる。例えばプライバシ設定は、他の利用者と共有する特定の情報を識別することができ、プライバシ設定は職場の電話番号や、プロフィール写真、自宅の電話番号、地位を含む個人情報等の1組の特定の関連情報を識別する。或いはプライバシ設定は、利用者に関連する全情報に適用されても良い。特定の情報にアクセス可能な1組のエンティティの指定も、様々な粒度レベルで規定することができる。情報が共有され得る様々なエンティティの組には、例えば利用者の全ての友人、友人の全ての友人、全てのアプリケーション、又は全ての外部システム1020が含まれ得る。或る実施形態は、エンティティの列挙を含めるように1組のエンティティを指定することを可能にする。例えば利用者は、特定の情報にアクセスすることを許可された外部システム1020の一覧を提供することができる。別の実施形態は指定が、情報にアクセスすることを許可されていない例外と共に1組のエンティティを含むことを可能にする。例えば利用者は、外部システム1020が利用者の仕事情報にアクセスすることを可能にし得るが、仕事情報にアクセスすることを許可されない外部システム1020の一覧を規定しても良い。或る実施形態では、特定の情報にアクセスすることを許可されていない例外の一覧を「ブロックリスト」と呼ぶ。利用者が指定するブロックリストに属する外部システム1020は、プライバシ設定内で規定される情報にアクセスするのを妨げられる。情報を指定する粒度、及び情報が共有されるエンティティを指定する粒度の様々な組合せがあり得る。例えば、全ての個人情報が友人と共有され得るのに対し、全ての仕事情報が友人の友人と共有され得る。
承認サーバ1044は、利用者に関連する特定の情報が利用者の友人、外部システム1020、並びに/又は他のアプリケーション及びエンティティによってアクセスされ得るのかどうかを判定するためのロジックを含む。外部システム1020は、利用者の職場の電話番号等、より個人的且つ慎重に扱うべき利用者の情報にアクセスするために承認サーバ1044の承認を必要とし得る。利用者のプライバシ設定に基づき、承認サーバ1044は、利用者が起こした行動に関する情報を含む利用者に関連する情報に、別の利用者、外部システム1020、アプリケーション、又は別のエンティティがアクセスすることを許可されているかどうかを判定する。
ソーシャルネットワーキングシステム1030は、画像モジュール1046を含むことができる。画像モジュール1046は、ユーザ装置1010と通信してユーザ装置からソーシャルネットワーキングシステム1030に1つ又は複数の画像をアップロードすることができる。例えば画像モジュール1046は、ユーザ装置1010が捕捉して変換した変換画像を受け取ることができる。更に、画像モジュール1046は、画像変換モジュール1052の機能を実装することができる。一実施形態では、画像モジュール1046及び画像変換モジュール1052の適切な組合せにより、本明細書に記載の画像変換技法が実行され得る。例えば、本明細書で論じたようにモバイル装置100が提供する運動センサデータ及び他の情報に基づき、傾いた画像用の回転角の計算が画像モジュール1046、画像変換モジュール1052、又はその両方によって行われ得る。
上記のプロセス及び機能は、多岐にわたるマシン及びコンピュータシステムアーキテクチャによって、及び様々なネットワーク及び計算環境内で実装され得る。図11は、本発明の一実施形態による、本明細書に記載の実施形態の1つ又は複数を実装するために使用され得るコンピュータシステム1100の一例を示す。例えば、コンピュータシステム1100は、図10に示すユーザ装置1010及びモバイル装置100のうちの少なくとも一方を表し得る。
コンピュータシステム1100は、本明細書で論じたプロセス及び機能をコンピュータシステム1100に実行させる命令集合を含む。コンピュータシステム1100は、他のマシンに接続(例えばネットワーク接続)され得る。ネットワーク化された導入形態では、コンピュータシステム1100が、クライアント−サーバネットワーク環境内のサーバマシン若しくはクライアントマシンとして、又はピアツーピア(若しくは分散)ネットワーク環境内のピアマシンとして機能し得る。本発明の一実施形態では、コンピュータシステム1100がソーシャルネットワーキングシステム1030、ユーザ装置1010、及び外部システム1020、又はその構成要素であり得る。本発明の一実施形態では、コンピュータシステム1100が、ソーシャルネットワーキングシステム1030の全て又は一部を構成する多くのサーバのうちの1つであり得る。
コンピュータシステム1100は、プロセッサ1102、キャッシュ1104、並びに本明細書に記載のプロセス及び機能を対象とするコンピュータ可読媒体上に記憶される1つ又は複数の実行可能モジュール及びドライバを含む。更にコンピュータシステム1100は、高性能入出力(I/O)バス1106及び標準I/Oバス1108を含む。ホストブリッジ1110がプロセッサ1102を高性能I/Oバス1106に結合する一方、I/Oバスブリッジ1112が2つのバス1106及び1108を互いに結合する。システムメモリ1114及び1つ又は複数のネットワークインタフェース1116が高性能I/Oバス1106に結合する。コンピュータシステム1100は、ビデオメモリ及びビデオメモリに結合される表示装置(不図示)を更に含み得る。大容量記憶域1118及びI/Oポート1120が標準I/Oバス1108に結合する。コンピュータシステム1100は、標準I/Oバス1108に結合されるキーボード及びポインティングデバイス、表示装置、又は他の入出力装置(不図示)を任意選択的に含み得る。集合的に、これらの要素は、これだけに限定されないが、カリフォルニア州サンタクララ(Santa Clara,California)のインテル株式会社(Intel Corporation)が製造するx86互換プロセッサ、カリフォルニア州サニーヴェール(Sunnyvale,California)のアドバンストマイクロデバイセズ(AMD)社(Advanced Micro Devices(AMD),Inc.)が製造するx86互換プロセッサ、並びに他の任意の適切なプロセッサを含む広範なカテゴリのコンピュータハードウェアシステムを表すことを意図する。
オペレーティングシステムは、ソフトウェアアプリケーション(不図示)との間のデータの入出力を含む、コンピュータシステム1100の動作を管理し制御する。オペレーティングシステムは、システム上で実行されるソフトウェアアプリケーションとシステムのハードウェアコンポーネントとの間のインタフェースを提供する。リナックス(LINUX)オペレーティングシステム、カリフォルニア州クパチーノ(Cupertino,Calif.)のアップルコンピュータインコーポレイテッド(Apple Computer Inc.)から入手可能なアップルマッキントッシュ(登録商標)(Apple Macintosh)オペレーティングシステム、ユニックス(UNIX(登録商標))オペレーティングシステム、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティングシステム、BSDオペレーティングシステム等、任意の適切なオペレーティングシステムを使用することができる。他の実装形態もあり得る。
コンピュータシステム1100の要素について以下でより詳細に説明する。具体的には、ネットワークインタフェース1116は、コンピュータシステム1100とイーサネット(登録商標)(Ethernet)(例えばIEEE 802.3)ネットワークやバックプレーン等の広範なネットワークの何れかとの間の通信を可能にする。大容量記憶域1118は、上記に示したそれぞれの計算システムによって実施される上述のプロセス及び機能を実行するためのデータ及びプログラム命令用の永久記憶域を提供するのに対し、システムメモリ1114(例えばDRAM)はプロセッサ1102によって実行されるときのデータ及びプログラム命令用の一時記憶域を提供する。I/Oポート1120は、コンピュータシステム1100に結合することができる追加の周辺装置との間の通信を可能にする1つ又は複数のシリアル通信ポート及び1つ又は複数のパラレル通信ポートのうちの少なくとも一方であり得る。
コンピュータシステム1100は様々なシステムアーキテクチャを含むことができ、コンピュータシステム1100の様々な構成要素の位置を変えても良い。例えば、キャッシュ1104はプロセッサ1102と共にチップ上に実装しても良い。或いは、キャッシュ1104及びプロセッサ1102が「プロセッサモジュール」として一緒にパックされても良く、プロセッサ1102は「プロセッサコア」と呼ばれる。更に、本発明の特定の実施形態は上記の構成要素の全てを必要としなくても含まなくても良い。例えば、標準I/Oバス1108に結合される周辺装置が高性能I/Oバス1106に結合しても良い。更に一部の実施形態では、バスが1つしかなくても良く、コンピュータシステム1100の構成要素が1つのバスに結合される。更に、コンピュータシステム1100は、追加のプロセッサ、記憶装置、メモリ等の追加の構成要素を含み得る。
概して、本明細書に記載したプロセス及び機能は、オペレーティングシステムの一部、特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、又は「プログラム」と呼ばれる一連の命令として実装され得る。例えば、本明細書に記載した特定のプロセスを実行するために1つ又は複数のプログラムを使用することができる。プログラムは、コンピュータシステム1100内の様々なメモリ及び記憶装置内の1つ又は複数の命令を概して含み、それらの命令は1個又は複数個のプロセッサによって読み取られ実行されるとき、本明細書に記載したプロセス及び機能を実行するための操作をコンピュータシステム1100に行わせる。本明細書に記載したプロセス及び機能は、ソフトウェア、ファームウェア、ハードウェア(例えば特定用途向け集積回路)、又はその任意の組合せによって実装され得る。
一実装形態では、本明細書に記載したプロセス及び機能が、分散コンピューティング環境内でコンピュータシステム1100によって個々に又は集合的に実行される一連の実行可能モジュールとして実装される。上記のモジュールは、ハードウェア、コンピュータ可読媒体(又は機械可読媒体)上に記憶される実行可能モジュール、又はその両方の組合せによって実現され得る。例えばモジュールは、プロセッサ1102等、ハードウェアシステム内のプロセッサによって実行される複数の又は一連の命令を含み得る。最初、一連の命令は大容量記憶域1118等の記憶装置上に記憶され得る。但し、一連の命令は如何なる適切なコンピュータ可読記憶媒体上にも記憶することができる。更に、一連の命令はローカルに記憶する必要はなく、ネットワークインタフェース1116を介してネットワーク上のサーバ等の遠隔記憶装置から受け取られ得る。命令は大容量記憶域1118等の記憶装置からシステムメモリ1114内にコピーされ、その後プロセッサ1102によってアクセスされ実行される。
コンピュータ可読媒体の例には、これだけに限定されないが、揮発性メモリデバイスや不揮発性メモリデバイス等の記録可能型媒体、ソリッドステートメモリ、フロッピや他のリムーバブルディスク、ハードディスクドライブ、磁気媒体、光学ディスク(例えばコンパクトディスク読取専用メモリ(CD ROM)やデジタル多用途ディスク(DVD))、他の同様の非一時的(又は一時的)有形(又は無形)記憶媒体、又は本明細書に記載したプロセス及び機能のどれか1つ若しくは複数を実行するためにコンピュータシステム1100が実行するための一連の命令を記憶し、符号化し、若しくは搬送するのに適した任意の種類の媒体が含まれる。
説明の完全な理解を与えるために数多くの具体的詳細を説明目的で記載してきた。但し、それらの具体的詳細なしに本開示の実施形態を実施できることが当業者には明らかである。一部の例では、説明を不明瞭にするのを避けるためにモジュール、構造、プロセス、機能、及び装置をブロック図形式で示している。他の例では、データ及びロジックの流れを表すために機能ブロック図及び流れ図を示す。ブロック図及び流れ図の構成要素(例えばモジュール、ブロック、構造、装置、機能等)は、本明細書で明確に説明し図示したのと異なる方法で様々に組み合わせ、分離し、除去し、並べ直し、置換することができる。
本明細書での「或る実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」等への言及は、実施形態に関して説明した特定の機能、設計、構造、又は特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所で出現する例えば「或る実施形態では」や「一実施形態では」という語句は、必ずしも全て同じ実施形態を指すものではなく、他の実施形態と相互排除的な別の実施形態又は代替的実施形態でもない。更に、「実施形態」等と明確に言及していようがいまいが様々な機能について説明しており、それらの機能は一部の実施形態では様々に組み合わせ、含めることができるが、他の実施形態では様々に省略されることもある。同様に、一部の実施形態では選択又は要件となり得るが他の実施形態では選択又は要件にならない様々な機能についても説明した。
本明細書で使用した言語は読み易さ及び指導上の目的で主に選択しており、本発明の主題を線引きし又は制限するために選択されていない場合がある。従って、本発明の範囲はこの詳細な説明によってではなく、むしろ本明細書に基づく応用例について生じる任意の請求項によって限定されることを意図する。よって本発明の実施形態についての開示は、添付の特許請求の範囲の中で規定する本発明の範囲の限定ではなく例示であることを意図する。

Claims (15)

  1. コンピュータによって実施される方法であって、
    コンピュータシステムがモバイル装置を使って捕捉された画像を取得するステップと、
    前記コンピュータシステムが、前記画像が捕捉された時点又は前記時点の近くの前記モバイル装置の運動センサデータを取得するステップと、
    前記コンピュータシステムが、前記運動センサデータに基づいて回転角を算出するステップと、
    前記コンピュータシステムが、前記回転角に基づいて前記画像を変換するステップと、
    前記コンピュータシステムが、ユーザインタフェースの第1の制御要素を介して受け取った第1のユーザ入力に基づいて、変換画像を第1の粒度で回転させるステップと、
    前記コンピュータシステムが、前記ユーザインタフェースの第2の制御要素を介して受け取った第2のユーザ入力に基づいて、前記変換画像を第2の粒度で回転させるステップと
    を含
    前記第2の粒度では、前記変換画像が前記第1の粒度とは異なる速度で回転され、
    前記第1の制御要素および前記第2の制御要素は同時に表示される、方法。
  2. 前記画像を変換する前記ステップが、前記回転角に基づいて前記画像を回転させることを含むか、
    前記画像を変換する前記ステップが、前記モバイル装置のユーザインタフェースの表示フレームの寸法に基づいて前記画像を変倍することを含むか、または、
    前記画像を変換する前記ステップが、前記回転角に基づいて前記画像を回転させること、および前記モバイル装置のユーザインタフェースの表示フレームの寸法に基づいて前記画像を変倍することを含む、請求項1に記載の方法。
  3. 前記モバイル装置上で変換画像を表示するステップを更に含む、請求項1又は2に記載の方法。
  4. 前記回転角を算出する前記ステップ及び前記画像を変換する前記ステップのうちの少なくとも一方が、前記モバイル装置によって行われる、請求項1乃至3の何れか一項に記載の方法。
  5. 運動センサデータを取得する前記ステップが、前記モバイル装置上の少なくとも1つの運動センサからのデータをサンプリングすることを含み、前記運動センサは好ましくは前記モバイル装置の運動及び向きをモニタし、加速力と、回転力又は回転速度とのうちの少なくとも一方を測定することにより、対応する運動センサデータを出力する、請求項1乃至4の何れか一項に記載の方法。
  6. 運動センサデータの取得が、ジャイロスコープからのデータをサンプリングすることを含み、好ましくはサンプリングしたデータを低域フィルタにかけて雑音が減らされるか、
    運動センサデータの取得が、前記モバイル装置上の加速度計からのデータをサンプリングすることを含むか、または、
    運動センサデータの取得が、ジャイロスコープからのデータをサンプリングすることを含み、好ましくはサンプリングしたデータを低域フィルタにかけて雑音が減らされるとともに、前記モバイル装置上の加速度計からのデータをサンプリングすることを含む、請求項5に記載の方法。
  7. 前記画像の自動変換を利用者が選択することを可能にするユーザ入力要素を提供するステップと、
    前記画像を自動変換する選択を受け取るステップであって、前記画像の前記変換は前記選択を受け取ることに応答的である、受け取るステップと
    を更に含む、請求項1乃至6の何れか一項に記載の方法。
  8. 前記画像を変換する前、前記モバイル装置のディスプレイ上に取得画像を表示するステップと、
    前記画像の変換後、前記取得画像ではなく変換画像を前記ディスプレイ上に表示するステップと
    を更に含む、請求項1乃至7の何れか一項に記載の方法。
  9. 前記回転角を所定の閾値角度と比較するステップと、
    前記回転角が前記所定の閾値角度を上回らない場合は変換画像を表示するステップと
    を更に含む、請求項1乃至8の何れか一項に記載の方法。
  10. 前記第1の粒度での前記変換画像のユーザ制御回転を可能にする前記第1の制御要素を含む前記ユーザインタフェースを表示し、
    前記第1の制御要素に適用される前記第1のユーザ入力を受け取ることにより、
    前記第1のユーザ入力に基づいて前記変換画像が前記第1の粒度で回転され、
    前記第2の粒度での前記変換画像のユーザ制御回転を可能にする前記第2の制御要素を含む前記ユーザインタフェースを表示し、
    前記第2の制御要素に適用される前記第2のユーザ入力を受け取ることにより、
    前記第2のユーザ入力に基づいて前記変換画像が前記第2の粒度で回転され、
    好ましくは、前記第1の制御要素及び前記第2の制御要素を基準点から第1の方向に動かすことにより、前記画像が第1の回転方向に回転し、前記第1の制御要素及び前記第2の制御要素を前記基準点から第2の方向に動かすことにより、前記画像が第2の回転方向に回転する、請求項1乃至9の何れか一項に記載の方法。
  11. コンピュータによって実施される方法であって、
    コンピュータシステムがモバイル装置を使って捕捉された画像を取得するステップと、
    前記コンピュータシステムが、前記画像が捕捉された時点又は前記時点の近くの前記モバイル装置の運動センサデータを取得するステップと、
    前記コンピュータシステムが、前記運動センサデータに基づいて回転角を算出するステップと、
    前記コンピュータシステムが、前記回転角に基づいて前記画像を変換するステップと、
    前記コンピュータシステムが、利用者が回転点を定めてその回転点を中心に変換画像を回転させることを可能にするユーザインタフェースを表示するステップと、
    前記コンピュータシステムが、前記ユーザインタフェースに適用される、回転点を定める第1のユーザ入力を受け取るステップと、
    前記コンピュータシステムが、前記ユーザインタフェースに適用される、回転の方向及び粒度を定める第2のユーザ入力を受け取るステップと、
    前記コンピュータシステムが、前記第1のユーザ入力及び前記第2のユーザ入力に基づく回転の前記方向及び前記粒度に従い、前記回転点を中心に前記変換画像を回転させるステップと
    を含
    前記回転の粒度は、粒度選択点と前記回転点との間の直線距離に基づいて定められる、方法。
  12. 前記モバイル装置が移動通信装置、好ましくは電子移動通信装置、特に携帯電話、特にスマートフォンや、無線通信用の携帯型移動通信装置であるか、
    前記画像が前記モバイル装置に組み込まれるカメラによって捕捉されるか、または、
    前記モバイル装置が移動通信装置、好ましくは電子移動通信装置、特に携帯電話、特にスマートフォンや、無線通信用の携帯型移動通信装置であり、前記画像が前記モバイル装置に組み込まれるカメラによって捕捉される、請求項1乃至11の何れか一項に記載の方法。
  13. 前記画像を変換する前記ステップが、ソーシャルネットワーキングシステムによって行われる、請求項1乃至12の何れか一項に記載の方法。
  14. システムであって、
    少なくとも1個のプロセッサと、
    請求項1乃至13の何れか一項に記載の方法を実行するために前記少なくとも1個のプロセッサに指示するように構成される命令を記憶するメモリと
    を備えるシステム。
  15. コンピュータ実行可能命令を記憶するコンピュータ記憶媒体であって、前記コンピュータ実行可能命令は、実行時にコンピュータシステムに請求項1乃至13の何れか一項に記載のコンピュータによって実施される方法を実行させる、コンピュータ記憶媒体。
JP2016531599A 2013-08-02 2013-10-30 画像を変換するためのシステム及び方法 Active JP6412129B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/958,451 US9177362B2 (en) 2013-08-02 2013-08-02 Systems and methods for transforming an image
US13/958,451 2013-08-02
EP13190578.8A EP2833615B1 (en) 2013-08-02 2013-10-29 System and method for transforming an image
EP13190578.8 2013-10-29
PCT/US2013/067578 WO2015016955A1 (en) 2013-08-02 2013-10-30 Systems and methods for transforming an image

Publications (2)

Publication Number Publication Date
JP2016532954A JP2016532954A (ja) 2016-10-20
JP6412129B2 true JP6412129B2 (ja) 2018-10-24

Family

ID=49551509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016531599A Active JP6412129B2 (ja) 2013-08-02 2013-10-30 画像を変換するためのシステム及び方法

Country Status (11)

Country Link
US (3) US9177362B2 (ja)
EP (1) EP2833615B1 (ja)
JP (1) JP6412129B2 (ja)
KR (2) KR102087574B1 (ja)
CN (1) CN105637850B (ja)
AU (1) AU2013395618B2 (ja)
BR (1) BR112016002357A2 (ja)
CA (1) CA2919859C (ja)
IL (1) IL243803A0 (ja)
MX (1) MX357086B (ja)
WO (1) WO2015016955A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9741150B2 (en) 2013-07-25 2017-08-22 Duelight Llc Systems and methods for displaying representative images
JP5843033B1 (ja) * 2014-05-15 2016-01-13 株式会社リコー 撮像システム、撮像装置、プログラムおよびシステム
CN107113394B (zh) 2015-01-06 2019-10-18 麦克赛尔株式会社 影像显示装置、影像显示方法以及影像显示系统
US10075640B2 (en) * 2015-12-31 2018-09-11 Sony Corporation Motion compensation for image sensor with a block based analog-to-digital converter
JP6976719B2 (ja) * 2017-05-25 2021-12-08 キヤノン株式会社 表示制御装置、表示制御方法及びプログラム
CN110520694A (zh) * 2017-10-31 2019-11-29 深圳市大疆创新科技有限公司 一种视觉里程计及其实现方法
EP3598428A1 (en) 2018-07-17 2020-01-22 Thomson Licensing Device and method for image display
CN109919141A (zh) * 2019-04-09 2019-06-21 广东省智能制造研究所 一种基于骨架姿态的行人再识别方法
CN110312070B (zh) * 2019-04-23 2021-08-24 维沃移动通信有限公司 一种图像处理方法及终端
CN111125601B (zh) * 2019-12-24 2023-07-18 腾讯科技(深圳)有限公司 文件传输方法、装置、终端、服务器及存储介质
EP3866455A1 (en) * 2020-02-14 2021-08-18 InterDigital CE Patent Holdings Device and method for capturing images or video
DE102020126407A1 (de) 2020-10-08 2022-04-14 Leica Camera Aktiengesellschaft Bildaufnahmegerät
US11694376B2 (en) * 2020-10-19 2023-07-04 Adobe Inc. Intuitive 3D transformations for 2D graphics
JP2023020472A (ja) * 2021-07-30 2023-02-09 セイコーエプソン株式会社 表示装置の制御方法、表示装置、及び制御チップ

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198224A (ja) * 1995-11-13 1997-07-31 Internatl Business Mach Corp <Ibm> グラフィカル・ユーザ・インターフェース内で値を指定する方法および装置
US6262769B1 (en) * 1997-07-31 2001-07-17 Flashpoint Technology, Inc. Method and system for auto rotating a graphical user interface for managing portrait and landscape images in an image capture unit
US7080324B1 (en) * 2000-10-11 2006-07-18 Agilent Technologies, Inc. Control for a graphical user interface supporting coupled variables and method of operation thereof
GB0208654D0 (en) 2002-04-16 2002-05-29 Koninkl Philips Electronics Nv Image processing for video or photographic equipment
US8416217B1 (en) * 2002-11-04 2013-04-09 Neonode Inc. Light-based finger gesture user interface
US7679625B1 (en) 2005-01-07 2010-03-16 Apple, Inc. Straightening digital images
JP2006245726A (ja) * 2005-03-01 2006-09-14 Fuji Photo Film Co Ltd デジタルカメラ
EP1924930A2 (en) * 2005-09-16 2008-05-28 Wizard International, Inc. Framed art visualization software
JP2007127756A (ja) * 2005-11-02 2007-05-24 Nikon Corp 像振れ補正装置、光学装置、交換レンズ、及びカメラシステム
US8677257B2 (en) * 2006-08-04 2014-03-18 Apple Inc. Granular graphical user interface element
US8462109B2 (en) * 2007-01-05 2013-06-11 Invensense, Inc. Controlling and accessing content using motion processing on mobile devices
DE602008005448D1 (de) * 2007-06-27 2011-04-21 Panasonic Corp Bildgebungsgerät, verfahren, systemintegrierte schaltung und programm
US8068121B2 (en) * 2007-06-29 2011-11-29 Microsoft Corporation Manipulation of graphical objects on a display or a proxy device
CN101884213B (zh) * 2007-12-03 2012-09-05 松下电器产业株式会社 图像处理装置及方法、摄影装置、再生装置、集成电路
US8416198B2 (en) 2007-12-03 2013-04-09 Apple Inc. Multi-dimensional scroll wheel
JP5315751B2 (ja) 2008-03-31 2013-10-16 ペンタックスリコーイメージング株式会社 撮像装置
US9477396B2 (en) * 2008-11-25 2016-10-25 Samsung Electronics Co., Ltd. Device and method for providing a user interface
JP2010252238A (ja) * 2009-04-20 2010-11-04 Kyocera Corp 撮像装置および撮像方法
US8823749B2 (en) * 2009-06-10 2014-09-02 Qualcomm Incorporated User interface methods providing continuous zoom functionality
JP2011055476A (ja) * 2009-08-06 2011-03-17 Canon Inc 表示装置
JP5397081B2 (ja) * 2009-08-12 2014-01-22 富士通モバイルコミュニケーションズ株式会社 携帯端末
US8413065B2 (en) * 2009-09-07 2013-04-02 Qualcomm Incorporated User interface methods for ending an application
US20110061009A1 (en) * 2009-09-10 2011-03-10 John David Poisson Flexible user interface for image manipulation for an iamge product
US8957918B2 (en) * 2009-11-03 2015-02-17 Qualcomm Incorporated Methods for implementing multi-touch gestures on a single-touch touch surface
US8687070B2 (en) * 2009-12-22 2014-04-01 Apple Inc. Image capture device having tilt and/or perspective correction
KR20110088727A (ko) 2010-01-29 2011-08-04 삼성전자주식회사 휴대용 단말기에서 출력 이미지를 회전시키기 위한 장치 및 방법
US9124804B2 (en) * 2010-03-22 2015-09-01 Microsoft Technology Licensing, Llc Using accelerometer information for determining orientation of pictures and video images
WO2011130919A1 (en) * 2010-04-23 2011-10-27 Motorola Mobility, Inc. Electronic device and method using touch-detecting surface
US20110316888A1 (en) * 2010-06-28 2011-12-29 Invensense, Inc. Mobile device user interface combining input from motion sensors and other controls
US8488010B2 (en) 2010-09-21 2013-07-16 Hewlett-Packard Development Company, L.P. Generating a stabilized video sequence based on motion sensor data
US8760417B2 (en) * 2010-10-15 2014-06-24 Sap Ag Touch-enabled circle control for time and date entry
US9870141B2 (en) * 2010-11-19 2018-01-16 Microsoft Technology Licensing, Llc Gesture recognition
US8791911B2 (en) * 2011-02-09 2014-07-29 Robotzone, Llc Multichannel controller
JP2014513622A (ja) * 2011-03-29 2014-06-05 ボストン サイエンティフィック ニューロモデュレイション コーポレイション 治療刺激提供システムのための通信インタフェース
US9158455B2 (en) * 2011-07-12 2015-10-13 Apple Inc. Multifunctional environment for image cropping
KR101340794B1 (ko) 2011-08-12 2013-12-11 엘지이노텍 주식회사 휴대용 단말기 및 그의 구동 방법
US9609217B2 (en) * 2011-11-02 2017-03-28 Mediatek Inc. Image-based motion sensor and related multi-purpose camera system
TWI450150B (zh) * 2011-12-21 2014-08-21 Wistron Corp 觸控方法及觸控系統
TWI497990B (zh) * 2012-01-11 2015-08-21 Hon Hai Prec Ind Co Ltd Ptz攝像裝置控制系統及方法
TW201331818A (zh) * 2012-01-17 2013-08-01 Wistron Corp 電子裝置及控制電子裝置的方法
US9041727B2 (en) * 2012-03-06 2015-05-26 Apple Inc. User interface tools for selectively applying effects to image
KR101861377B1 (ko) * 2012-03-09 2018-05-28 삼성전자주식회사 이동 단말에서 모션 기반의 화면 제어 방법 및 이를 위한 이동 단말
US9324188B1 (en) * 2012-04-30 2016-04-26 Dr Systems, Inc. Manipulation of 3D medical objects
EP2667292A3 (en) * 2012-05-24 2015-12-30 BlackBerry Limited Presentation of image on display screen with combination crop and rotation and with auto-resizing of crop field
US9354721B2 (en) * 2012-09-28 2016-05-31 Apple Inc. Movement based image transformation
US20140282073A1 (en) * 2013-03-15 2014-09-18 Micro Industries Corporation Interactive display device
US20140289663A1 (en) * 2013-03-21 2014-09-25 Microsoft Corporation Producing Artwork Based on an Imported Image
US9195391B2 (en) * 2013-04-19 2015-11-24 International Business Machines Corporation Touch sensitive data entry using a continuous gesture
US9488483B2 (en) * 2013-05-17 2016-11-08 Honda Motor Co., Ltd. Localization using road markings
US8860818B1 (en) * 2013-07-31 2014-10-14 Apple Inc. Method for dynamically calibrating rotation offset in a camera system
CN105027058B (zh) * 2013-08-21 2018-10-09 松下知识产权经营株式会社 信息显示装置、信息显示方法以及记录介质

Also Published As

Publication number Publication date
JP2016532954A (ja) 2016-10-20
CN105637850B (zh) 2019-08-16
IL243803A0 (en) 2016-04-21
US20170236253A1 (en) 2017-08-17
WO2015016955A1 (en) 2015-02-05
KR20160040220A (ko) 2016-04-12
KR20200028038A (ko) 2020-03-13
US20160019676A1 (en) 2016-01-21
AU2013395618A1 (en) 2016-02-18
CA2919859C (en) 2019-04-09
US9177362B2 (en) 2015-11-03
US10453181B2 (en) 2019-10-22
CN105637850A (zh) 2016-06-01
EP2833615B1 (en) 2021-12-08
KR102087574B1 (ko) 2020-03-12
EP2833615A2 (en) 2015-02-04
MX357086B (es) 2018-06-25
KR102112070B1 (ko) 2020-05-19
US9679361B2 (en) 2017-06-13
US20150036944A1 (en) 2015-02-05
BR112016002357A2 (pt) 2017-08-01
AU2013395618B2 (en) 2018-01-25
CA2919859A1 (en) 2015-02-05
MX2016001405A (es) 2016-08-18
EP2833615A3 (en) 2016-11-16

Similar Documents

Publication Publication Date Title
JP6412129B2 (ja) 画像を変換するためのシステム及び方法
JP6605640B2 (ja) 制約ベースの回転平滑化を介してデジタルビデオを安定化するためのシステムおよび方法
JP6607539B2 (ja) 複数の写真フィード記事のためのシステムおよび方法
US9392174B2 (en) Systems and methods for time-lapse selection subsequent to capturing media content
US10652465B2 (en) Systems and methods for combining multiple frames to produce media content with simulated exposure effects
US20160148648A1 (en) Systems and methods for improving stabilization in time-lapse media content
US10725637B2 (en) Systems and methods for providing image perspective adjustment and automatic fitting
US9583143B2 (en) Systems and methods for combining drawings and videos prior to buffer storage
US10560641B2 (en) Systems and methods for generating a bias for a camera sensor for increasing resolution of captured images
US10681267B2 (en) Systems and methods for increasing resolution of images captured by a camera sensor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180410

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180927

R150 Certificate of patent or registration of utility model

Ref document number: 6412129

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250