以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
図1は、一実施形態におけるシステム10の構成の一例を概略的に示す。システム10は、サーバ40と、ユーザ端末82a、ユーザ端末82b、ユーザ端末82c、ユーザ端末82d、及びユーザ端末82eと、店舗端末72とを備える。
ユーザ端末82aは、ユーザ80aが利用する端末である。ユーザ端末82bは、ユーザ80bが利用する端末である。ユーザ端末82cは、ユーザ80cが利用する端末である。ユーザ端末82dは、ユーザ80dが利用する端末である。ユーザ端末82eは、ユーザ80eが利用する端末である。なお、ユーザ80a、ユーザ80b、ユーザ80c、ユーザ80d、及びユーザ80eを、「ユーザ80」と総称する場合がある。
ユーザ80は、店舗70の顧客である。店舗70は、例えば、飲食店等である。
ユーザ端末82a、ユーザ端末82b、ユーザ端末82c、ユーザ端末82d、及びユーザ端末82eを「ユーザ端末82」と総称する場合がある。ユーザ端末82は、スマートフォン等の移動端末、通信機能を有するウェアラブル端末、PDA等の携帯情報端末等であってよい。ユーザ端末82及び店舗端末72には、割勘決済アプリケーション(割勘決済アプリという)がインストールされている。ユーザ端末82及び店舗端末72は、主として割勘決済アプリの制御に従って動作することにより、ユーザ80の間で割り勘を行うための処理を行う。
店舗端末72は、店舗70に設けられた端末である。例えば、店舗70が飲食店である場合、店舗端末72は、食卓に設けられ、ユーザ80が操作可能な端末であってよい。店舗端末72は、店舗70の会計場所に設けられ、店舗70の店員が操作する端末であってよい。
ネットワーク11は、任意のネットワークである。ネットワーク11は、インターネットと、いわゆる3G(3rd Generation)、LTE(Long Term Evolution)、4G(4th Generation)及び5G(5th Generation)等の移動電話網、公衆通信網、及び専用網の少なくともいずれかを含んでよい。ユーザ端末82及び店舗端末72は、サーバ40と通信する。サーバ40は、ユーザ80間の決済や、ユーザ80が店舗70の利用料金を支払う場合の決済に関する処理を行う。
サーバ40には、ユーザ80の顔画像が登録されている。ユーザ80は、店舗70の利用料金を割り勘で支払う場合に、ユーザ80の集合写真と利用料金をサーバ40に送信する。サーバ40は、予め登録されている顔画像と集合写真に写っている顔画像とを照合することによってユーザ80を特定して、ユーザ80間で行われる割り勘に伴う決済処理を行う。
例えば、ユーザ端末82aは、店舗70で会計を行う前に、ユーザ端末82aでユーザ80の集合写真を撮影して、得られた集合写真をユーザ端末82aからサーバ40に送信する。サーバ40は、集合写真から人物の顔画像を抽出して、抽出した顔画像とサーバ40に登録されている顔画像とを照合することにより、集合写真に写っているユーザ80を特定する。サーバ40は、利用料金とユーザ80の数に基づいてユーザ80のそれぞれが負担する金額を算出して、ユーザ端末82に支払の承認を要求する。サーバ40は、ユーザ端末82から承認が得られた場合、ユーザ80b、ユーザ80c、ユーザ80d及びユーザ80eのそれぞれの口座からそれぞれの負担額を引き落とすとともに、その負担額の合計額をユーザ80aの口座に振り込む。ユーザ80aが店舗70に利用料金を支払うことによって、割り勘による支払が完了する。
他の方法として、店舗70で会計を行う前に、店舗端末72でユーザ80の集合写真を撮影して、得られた集合写真を店舗端末72からサーバ40に送信する。上述したように、サーバ40は、集合写真に写っているユーザ80を特定して、ユーザ80のそれぞれが負担する金額を算出して、ユーザ端末82に支払の承認を要求する。サーバ40は、ユーザ端末82から承認が得られた場合、ユーザ80a、ユーザ80b、ユーザ80c、ユーザ80d及びユーザ80eのそれぞれの口座からそれぞれの負担額を引き落とすとともに、その負担額の合計額をユーザ80aの口座に振り込む。これにより、割り勘の支払が完了する。
以上に説明したように、システム10によれば、複数のユーザ80による利用料期の個別会計を短時間で簡単に行うことができる。そのため、ユーザ80間の金銭のやりとりを行う幹事役となる人がいなくても、簡単に割り勘を行うことができる。
図2は、サーバ40の機能構成を示すブロック図である。サーバ40は、処理部42と、格納部44とを備える。処理部42は、プロセッサ等の処理装置により実現される。格納部44は、不揮発性の記憶媒体により実現される。
処理部42は、支払情報受信部200と、人物特定部210と、承認要求部220と、実行部230と、支払金額設定部240と、確認要求部250と、変更通知受信部260と、位置取得部270と、許容状態取得部280とを備える。
支払情報受信部200は、支払額を示す情報及び人物画像を第1端末から受信する。支払額は、例えば、ユーザ80が店舗70を利用したときにユーザ80が支払う利用料金の合計金額である。第1端末は、ユーザ端末82のうち、集合写真を撮影するユーザ端末82であってよい。第1端末は、店舗端末72であってよい。
人物特定部210は、人物画像に写っている複数の人物を特定する。人物特定部210は、画像認識により、人物画像に写っている複数の人物を特定する。人物特定部210は、外部の画像認識サーバから、人物画像に写っている複数の人物を示す情報を取得してもよい。
承認要求部220は、支払額の少なくとも一部を複数の人物で負担することに対する承認を、複数の人物に関連づけられた複数の第2端末のそれぞれに要求する。第2端末は、集合写真を撮影するユーザ端末82以外の端末であってよい。「支払額の少なくとも一部を複数の人物で負担すること」は、例えば、店舗70の利用料金の割り勘を行うことであってよい。
実行部230は、複数の第2端末から承認が得られた場合に、支払額の少なくとも一部を複数の人物で負担するための処理を行う。例えば、実行部230は、集合写真を撮影したユーザ80の口座に、他のユーザ80から引き落とした金額を入金してよい。実行部230は、ユーザ80から引き落とした金額を、店舗70の口座に入金してよい。
負担額設定部240は、支払額のうち第1端末に関連づけられた人物及び複数の人物のそれぞれの負担額を、第1端末に関連づけられた人物及び複数の人物のそれぞれの負担額として設定する。例えば、ユーザ80aが集合写真を撮影した場合、負担額設定部240は、集合写真を撮影したユーザ80aと、集合写真に写っているユーザ80b~ユーザ80eとの合計人数に基づいて、負担額を決定してよい。例えば、支払額が15,000円の場合、支払額を合計人数で除算することにより、負担額を3,000円としてよい。承認要求部220は、複数の人物のそれぞれの負担額を示す情報を複数の第2端末のそれぞれに送信して、複数の第2端末のそれぞれに承認を要求する。
実行部230は、複数の人物のそれぞれの負担額を、第1端末に関連づけられた人物に送金するための処理を行う。具体的には、上述したように、実行部230は、集合写真を撮影したユーザ80の口座に、他のユーザ80から引き落とした金額を入金する。
確認要求部250は、複数の人物を示す情報を第1端末に送信して、複数の人物を確認するよう第1端末に要求する。承認要求部220は、第1端末から確認が得られた場合に、複数の第2端末のそれぞれに承認を要求する。これにより、店舗70の利用料金を負担するユーザ80を事前に確認してから、承認要求をユーザ端末82に送信することができる。
変更通知受信部260は、負担額の指定情報を、第1端末から受信する。承認要求部220は、指定情報を第1端末から受信した場合に、指定情報に基づいて決定された複数の人物のそれぞれの負担額を複数の第2端末のそれぞれに送信して、複数の第2端末のそれぞれに承認を要求する。これにより、各ユーザ80が利用料金を負担する割合を調整することができる。
表示制御部290は、複数の第2端末のそれぞれに承認を要求した後、承認に関する情報を、第1端末に表示される人物画像上のそれぞれの人物の位置の近傍に表示させる。承認に関する情報は、(i)前記承認に対するそれぞれの人物による承認状態、(ii)それぞれの人物の負担額、及び(iii)それぞれの人物が前記承認を行う場合に入力したコメントのうちの少なくとも1つの事項を含む。表示制御部290は、当該事項のうち、予め設定された表示条件に合致する事項を表示させてよい。
位置取得部270は、複数の第2端末のそれぞれの現在位置を示す情報を取得する。例えば、位置取得部270は、ユーザ端末82がGPS機能により取得したユーザ端末82の現在位置情報を、ユーザ端末82から定期的に受信する。人物特定部210は、複数の第2端末の現在位置の比較結果を用いて、複数の人物を特定する。これにより、全く違う場所にいる人物が割り勘をする人物として特定される可能性を低くすることができる。
位置取得部270は、第1端末の現在位置及び複数の第2端末のそれぞれの現在位置を示す情報を取得する。人物特定部210は、第1端末の現在位置と、複数の第2端末の現在位置との比較結果を用いて、複数の人物を特定する。これにより、集合写真を撮影したユーザ端末82又は店舗端末72の位置とは全く違う場所にいる人物が割り勘をする人物として特定される可能性を低くすることができる。
格納部44は、人物の識別情報に対応づけて、人物のポーズを示すポーズ情報を格納する。人物特定部210は、人物画像から抽出された人物のポーズ及びポーズ情報に基づいて、人物画像に写っている複数の人物を特定する。格納部44は、複数の第2端末から承認が得られた場合に、人物画像に写っている複数の人物のうちの少なくとも一人の人物が写っている領域から抽出されたポーズを示すポーズ情報を格納してよい。これにより、過去の集合写真の履歴から、人物のポーズ情報を学習することができる。
格納部44は、複数の人物のソーシャルネットワーク上の人間関係を示す情報を格納する。人物特定部210は、人物画像から抽出された少なくとも一人の人物の人間関係を用いて、人物画像に写っている複数の人物を特定する。
許容状態取得部280は、支払額の少なくとも一部を複数の人物で負担することを許容するか否かを示す設定情報を、複数の端末から取得する。例えば、割勘決済アプリには、集合写真を用いた割り勘決済を許容するか否かを設定することが可能である。許容状態取得部280は、ユーザ端末82から当該設定情報を定期的に受信してよい。人物特定部210は、設定情報に基づいて分割して支払いを許容する複数の人物を特定して、分割して支払いを許容する複数の人物の中から、人物画像に写っている複数の人物を特定する。これにより、割り勘決済を許容していない人物が割り勘をする人物として特定される可能性を低くすることができる。
図3は、格納部44が格納するユーザ情報のデータ構造を示す。ユーザ情報は、「ユーザID」、「ニックネーム」、「顔情報」、「決済情報」及び「ポーズ情報」を含む。「ユーザID」は、ユーザ80の識別情報である。「ユーザID」は、サーバ40がユーザ80のそれぞれを識別するために割り振った情報である。「ニックネーム」は、ユーザ80自身が登録したニックネームである。ニックネームは割勘決済アプリを通じて設定されてよい。
「顔情報」は、ユーザ80の顔情報である。顔情報は、例えば、ユーザ80が登録した顔画像データである。顔情報は、ユーザ80が登録した顔画像データから抽出した特徴量を示すデータであってもよい。サーバ40は、ユーザ端末82に記録されている画像データをユーザ端末82から受信して、受信した画像データから顔情報を生成してユーザ情報として格納部44に格納してよい。
なお、ユーザ端末82は、割勘決済アプリの使用開始時に、ユーザ80自身の顔画像をユーザ端末82で撮影させてよい。ユーザ端末82は、ユーザ端末82が撮影したユーザ80の顔画像データをサーバ40に送信してよい。また、ユーザ端末82は、ユーザ端末82に記録されている画像データを定期的に検索して、ユーザ80の本人の顔画像データをサーバ40に送信してよい。例えば、ユーザ端末82は、ユーザ端末82のカメラ機能により撮影された画像データが格納される画像フォルダの中から、ユーザ80の本人の顔画像との一致度が閾値より高い画像データを検索して、サーバ40に送信してよい。ユーザ端末82は、ユーザ端末82で動作する電話帳アプリケーション(電話帳アプリと呼ぶ)やソーシャルネットワークアプリケーション(SNSアプリと呼ぶ)に本人の顔画像として登録されている画像データを、ユーザ80自身の顔画像データとしてサーバ40に送信してよい。
「決済情報」は、割り勘の決済手段を示す情報である。決済手段としては、銀行口座の入金及び引き落とし、デビットカード決済、クレジットカード決済等がある。決済手段情報は、例えば、ユーザ80のクレジットカード情報や銀行口座情報であってよい。決済手段情報は、電子マネーや電子決済サービスの利用者識別情報や、仮想通貨口座の情報などであってよい。
「ポーズ情報」は、ユーザ80のポーズを示す情報である。「ポーズ情報」は、ユーザ80が予め登録可能な情報である。例えば、ユーザ80は、ユーザ80が人指し指を2本立てた状態で撮影した自画像を撮って、ポーズ情報として登録する。ポーズ情報が登録されている場合、人物特定部210は、集合写真から抽出された人物画像が、ユーザ80の顔画像に適合し、かつ、人物画像に写っている人物がポーズ情報で示されるポーズをとっていると判断した場合に、集合写真にユーザ80が写っていると判断する。ユーザ80は、割り勘に参加する場合に、ユーザ80が事前に登録したポーズをとって集合写真に収まればよい。ユーザ80が割り勘に参加しなくてよい場合、ユーザ80が事前に登録したポーズをとらずに集合写真に収まれば、ユーザ80が割り勘をする人物として認識されない。
なお、サーバ40は、過去に撮影された集合写真に基づいて、ユーザ80のポーズ情報を登録してよい。例えば、サーバ40は、過去に撮影された集合写真においてユーザ80が頻繁にとっているポーズを検出した場合に、検出したポーズで写っているユーザ80の画像を、ポーズ情報に登録してよい。
図4は、ユーザ端末82がサーバ40との間でやり取りする情報を示す。図4は、ユーザ端末82aが集合写真を撮影する場合にやりとりされる情報を示す。
S400において、ユーザ端末82aは、集合写真を撮影する。S402において、ユーザ端末82aは、支払情報を送信する。支払情報には、集合写真の画像データ及び支払額が含まれる。サーバ40が支払情報を受信すると、S404において、人物特定部210は集合写真の画像データから人物を特定する。
S406において、確認要求部250は、ユーザ端末82aに確認情報を送信する。確認情報には、S404で特定された複数のユーザ80を示す情報(例えば、ニックネームなど)及び各ユーザ80が負担する負担額を含む。S408において、ユーザ端末82aから確認結果がサーバ40に送信される。S410において、承認要求部220は、ユーザ端末82b~ユーザ端末82eに、負担を承認する承認要求を送信する。S412において、サーバ40は、ユーザ端末82b~ユーザ端末82eから承認情報を受信する。承認情報には、ユーザ80b~ユーザ80eが承認時に入力したコメントが含まれてよい。S414において、サーバ40は、ユーザ80b~ユーザ80eが承認したことを示す承認ユーザ情報をユーザ端末82aに送信する。S416において、ユーザ端末82aは、サーバ40に決済指示情報を送信する。S418において、ユーザ80b~ユーザ80eからユーザ80aへの個人間送金の決済を行う。S420において、決済が完了したことを示す決済完了通知をユーザ端末82に送信する。
図5は、店舗端末72及びユーザ端末82がサーバ40との間でやり取りされる情報を示す。図5は、店舗端末72を用いて集合写真を撮影する場合にやり取りされる情報を示す。
S500において、店舗端末72は集合写真を撮影する。S502において、店舗端末72は、支払情報をサーバ40に送信する。支払情報には、集合写真の画像データ及び支払額を含む。サーバ40が支払情報を受信すると、S504において、人物特定部210は、集合写真の画像データから人物を特定する。
S506において、確認要求部250は、店舗端末72に確認情報を送信する。確認情報には、S504で特定された複数のユーザ80の情報(例えば、ニックネームなど)及び各ユーザ80が負担する負担額を含む。S508において、店舗端末72は確認結果をサーバ40に送信する。S510において、承認要求部220は、ユーザ端末82a~ユーザ端末82eに、負担を承認する承認要求を送信する。S512において、サーバ40は、ユーザ端末82a~ユーザ端末82eから承認情報と受信する。S514において、サーバ40は、ユーザ80a~ユーザ80eが承認したことを示す承認ユーザ情報を、店舗端末72に送信する。S516において、店舗端末72は、ユーザ80又は店員の操作に応じて、サーバ40に決済指示情報を指示する。S518において、サーバ40は、ユーザ80a~ユーザ80eから店舗への支払い決済を行う。S520において、決済が完了したことを示す決済完了通知をユーザ端末82及び店舗端末72に送信する。
図3及び図4に関連して説明したように、店舗端末72がユーザ80の集合写真を撮影する場合、店舗端末72はユーザ端末82aが実行する処理と同様の処理を実行する。そのため、主としてユーザ端末82aで集合写真を撮影する場合を取り上げてシステム10の動作を説明する場合がある。
図6は、サーバ40が集合写真からユーザ80を特定する処理の流れを示すフローチャートである。このフローチャートの処理は、集合写真の画像データを含む支払情報を受信した場合に開始される。
S600において、位置取得部270は、支払情報の送信元端末の現在位置を特定する。支払情報の送信元端末は、例えばユーザ端末82aや、店舗端末72である。位置取得部270は、支払情報の送信元端末から受信した現在位置情報に基づいて、支払情報を送信した端末の現在位置を特定する。例えば、ユーザ端末82及び店舗端末72は、自端末の現在位置情報を、支払情報に含めてサーバ40に送信してよい。また、位置取得部270は、支払情報の送信元端末に現在位置を別途問い合せることによって、支払情報の送信元端末の現在位置を取得してよい。
S602において、人物特定部210は、集合写真データから複数の人物画像を抽出する。S604において、S602で抽出した人物画像のそれぞれについて、ユーザ情報の顔情報と人物画像とを比較して、集合写真に写っている人物の候補者として1以上の候補者を特定する。
S606において、人物特定部210は、S604で特定した候補者の中から、割り勘を許容している候補者を抽出する。例えば、人物特定部210は、S604で特定したそれぞれの候補者のユーザIDに関連づけられたユーザ端末82のうち、割勘決済アプリの現在の設定状態が、集合写真を用いた割り勘決済を許容する状態にあるユーザ端末82を選出する。そして、人物特定部210は、S604で特定した候補者のうち、選出したユーザ端末82に関連づけられたユーザ80を抽出する。なお、ユーザ端末82は、ユーザ端末82の割勘決済アプリの現在の設定状態を定期的にサーバ40に送信することにより、割勘決済アプリの現在の設定状態をサーバ40に登録してよい。
S608において、人物特定部210は、S606で抽出した候補者の中から、ユーザ端末82の位置情報に基づいて、候補者を抽出する。例えば、人物特定部210は、S606で抽出したそれぞれの候補者のユーザIDに関連づけられたユーザ端末82のうち、S600で取得した支払情報の送信元端末の現在位置に近い位置に存在するユーザ端末82を選出する。そして、人物特定部210は、S606で抽出した候補者のうち、選出したユーザ端末82に関連づけられたユーザ80を抽出する。なお、ユーザ端末82は、ユーザ端末82の現在位置情報を定期的にサーバ40に送信することにより、ユーザ端末82の位置をサーバ40に登録してよい。
なお、ユーザ端末82の現在の位置情報が取得できない場合、人物特定部210は、現在から過去の一定期間内におけるユーザ端末82の位置情報を取得して、過去の一定期間内の位置情報に基づいて候補者を選出してよい。例えば、人物特定部210は、過去の一定期間内の位置情報が支払情報の送信元端末の現在位置に近いユーザ端末82を優先して選出してよい。過去の一定期間とは、例えば店舗70に入る前の直前のタイミング等、直前の予め定められた期間内に取得できたユーザ端末82の位置情報であってよい。この場合、店舗70の近くにいる可能性が低い人物と、店舗70の近くにいる可能性が高い人物とを判別することができる。過去の一定期間は、例えば直近1週間における平均的な位置情報であってよい。平均的な位置情報とは、滞在時間が最も長い位置を含む予め定められた範囲の位置であってよい。この場合、例えば、品川に生活圏がある人物と練馬に生活圏がある人物とを判別したり、東京に生活圏がある人物と大阪に生活圏がある人物とを判別する等、地域レベルで判別することができる。
S610において、人物特定部210は、S608で抽出した候補者の中から、集合写真データから抽出された人物画像のポーズに基づいて、集合写真に写っている人物の候補者を抽出する。例えば、人物特定部210は、S606で特定したそれぞれの候補者が登録したポーズのうち、人物画像から抽出したポーズに適合するポーズを選出する。人物特定部210は、選出したポーズに関連づけられたユーザ80を抽出する。
S612において、人物特定部210は、S610で抽出した候補者の中から、人間関係の強さに基づいて、集合写真に写っている人物の候補者を抽出する。例えば、集合写真がユーザ端末82aから送信された場合、ユーザ端末82aの所有者であるユーザ80aとの人間関係の強さが予め定められた値以上のユーザを、集合写真に写っている人物の候補者として抽出する。人間関係の強さは、SNS(ソーシャルネットワーク)上で設定されている人間関係や、ユーザ端末82aの連絡帳データに基づいて決定されてよい。例えば、SNSサービス上で友達関係にある人物同士の人間関係は、SNSサービス上で友達関係にない人物同士の人間関係より強いとみなしてよい。また、ユーザ端末82のユーザ80と、当該ユーザ端末82の連絡帳に登録されている人物との間の人間関係は、ユーザ端末82のユーザ80と、当該ユーザ端末82の連絡帳に登録されていない人物との間の人間関係より強いとみなしてよい。
S614において、人物特定部210は、集合写真に写っている人物を特定する。例えば、S612までの処理で複数の候補者が抽出されている場合、抽出された候補者のうち、登録されている顔画像と人物画像と一致度が最も高い候補者を、集合写真に写っている人物として特定してよい。
S616において、確認要求部250は、S614で特定した人物のニックネーム、一人あたりの負担額、及び集合写真上の人物の位置を示す情報を含む確認情報を、ユーザ端末82aに送信する。なお、負担額設定部240は、一人あたりのデフォルトの負担額として、認識した人物の数で割り勘総額を除した値を設定する。
図7は、ユーザ端末82aで集合写真を撮影したときの画面の一例を示す。割勘決済アプリは、撮影された集合写真の画像720と、支払料金の入力欄740と、ボタン760とを、ユーザ端末82aに表示させる。割勘決済アプリは、認識されている顔の数を示す情報を、ユーザ端末82aに表示させてよい。これにより、ユーザ80aは、認識される人物の数を確認することができる。
入力欄740に支払料金が入力されてボタン760が押されると、割勘決済アプリは、集合写真データ、支払額、認識した人物の数、及びユーザ端末82aの現在位置情報を含む支払情報を、ユーザ端末82aからサーバ40へと送信させる。サーバ40において支払情報受信部200が支払情報を受信すると、図6等に関連して説明したように、人物特定部210が集合写真に写っている人物を特定し、確認要求部250が確認情報をユーザ端末82aに送信する。
図8は、ユーザ端末82aに表示される確認情報画面の一例を示す。割勘決済アプリは、集合写真の画像820と、支払料金と、ボタン860とを、ユーザ端末82aに表示させる。割勘決済アプリは、確認情報に基づいて、サーバ40で認識されたユーザのニックネーム及び一人あたり負担額を、集合写真の画像820に重畳して表示させる。
画像820上の各ユーザ80の負担額の表示位置がタッチされると、割勘決済アプリは、各ユーザ80の負担額をユーザ80aに指定させるための入力欄を表示させる。これにより、割勘決済アプリは、各ユーザ80の負担額の変更をユーザ80aから受け付ける。なお、割り勘に参加しないユーザ80が集合写真に含まれている場合、ユーザ80aは、そのユーザ80の負担額を0にすることにより、そのユーザ80を割り勘から除外することができる。
ユーザ80aは、画像820上のユーザの顔の近くに表示されたニックネームから、サーバ40がユーザ80を誤認識していないことを確認することができる。ユーザ80が誤認識されている場合、ユーザ80aは、誤認識されたユーザ80のニックネームの表示位置をタッチして、サーバ40にユーザ80を再認識させる。例えば、特定のユーザ80のニックネームの表示位置がタッチされると、割勘決済アプリは、そのユーザ80を認識するための補助情報をユーザ80に入力させる。例えば、割勘決済アプリは、ユーザ端末82aに記録されている連絡帳から正しいユーザ80を選ばせることによって、対応するユーザ80を認識するための補助情報を入力する。割勘決済アプリは、正しいユーザ80のニックネームを入力させることによって、補助情報を取得してもよい。これにより、割勘決済アプリは、各ユーザ80を再認識するための補助情報を、ユーザ80aから受け付ける。
なお、サーバ40において、人物特定部210がユーザ80を特定できなかった場合、サーバ40は、特定できなかった人物が写っている画像820上の位置を示す情報を、ユーザ端末82aに送信してよい。割勘決済アプリは、特定できなかった人物の画像820上の位置に、人物を特定できなかったことを示すマークを重畳して表示させてよい。この場合、割勘決済アプリは、その位置に写っている人物を認識するための補助情報をユーザ80aから受け付けてよい。
ボタン860が押されると、割勘決済アプリは、ユーザ80aが確認したことを示す確認結果情報を、ユーザ端末82aからサーバ40へと送信させる。なお、割勘決済アプリは、ユーザ80の負担額の変更を受け付けた場合、変更された負担額を示す情報を確認結果情報に含める。また、割勘決済アプリは、ユーザ80を認識するための補助情報をユーザ80aから受け付けた場合、当該情報を確認結果情報に含めてサーバ40へ送信する。なお、サーバ40は、ユーザ端末82aからユーザ80を認識するための補助情報を含む確認情報を受信した場合、サーバ40は、集合写真に写っているユーザ80を再度認識した上で、確認情報をユーザ端末82aに再送信する。
サーバ40は、ユーザ端末82aから補助情報を含まない確認結果をユーザ端末82aから受信すると、図3等に関連して説明したように、ユーザ端末82b~82eへ承認要求を送信する。承認要求には、ユーザ80b~80eのそれぞれの負担額を示す情報が含まれる。
図9は、ユーザ端末82b~ユーザ端末82eに表示される承認要求画面の一例を示す。割勘決済アプリは、サーバ40から受信した承認要求に基づいて、そのユーザ80の負担額、コメント入力欄940及びボタン960をユーザ端末82に表示させる。コメント入力欄940は、ユーザ80からのコメントを受け付ける。コメントは、例えば、食事等をご馳走してくれた人や送別会のゲストに対する言葉等であってよい。ユーザ80がボタン960を押すと、割勘決済アプリは、ユーザ80が承認したことを示す承認情報をユーザ端末82からサーバ40へ送信させる。コメント入力欄940にコメントが入力されている場合、割勘決済アプリは、ユーザ80が承認したことを示す承認情報とともに、コメント入力欄940に入力されたコメントをユーザ端末82からサーバ40へ送信させる。
なお、サーバ40は、承認情報をユーザ端末82b~ユーザ端末82eから受信すると、承認したユーザ80を示す承認ユーザ情報を、ユーザ端末82aへ送信する。サーバ40は、ユーザ80の支払口座の種類を示す情報を、承認ユーザ情報に含める。サーバ40は、ユーザ端末82から承認情報及びコメントを受信した場合、当該コメントを承認ユーザ情報とともにユーザ端末82aに送信する。
図10は、ユーザ端末82aに表示される承認状況画面の一例を示す。図8に示す確認画面でボタン860が押されると、割勘決済アプリは、図10に示す承認状況画面をユーザ端末82aに表示させる。承認状況画面は、集合写真の画像1020と、支払料金と、ボタン1060とを含む。
割勘決済アプリは、承認ユーザ情報をサーバ40から受信すると、ユーザ80が承認したことを示す「承認済」のマークを、集合写真の画像1020上の各ユーザ80の近くに重畳して表示させる。また、割勘決済アプリは、各ユーザ80の負担額を、集合写真の画像1020上の各ユーザ80の近くに重畳して表示させる。また、承認ユーザ情報に含まれる支払口座の種類情報に基づいて、各ユーザ80が負担額を支払う手段を示すマークを、画像1020の各ユーザ80の近くに重畳して表示させる。割勘決済アプリは、承認ユーザ情報がサーバ40から受信されていないユーザ80の近傍に、ユーザ80からの承認が得られていないことを示す「未承認」のマークを、集合写真の画像1020上の当該ユーザ80の近くに重畳して表示させる。割勘決済アプリは、サーバ40から承認ユーザ情報とともにコメントを受信した場合、集合写真の画像1020上において、承認ユーザ情報に関連づけられたユーザ80の近くにコメントを重畳して表示させる。図10に示されるように、ユーザ80eが「楽しかったね」というコメントを入力して承認した場合、ユーザ80eの顔の近くに「楽しかったね」というコメントが表示される。
なお、ユーザ80は、承認状況画面に表示させる項目を選択するための表示条件を設定可能であってよい。例えば、承認状況画面にコメントを表示するか否かを示す表示条件を設定可能であってよい。サーバ40は、ユーザ80が設定した表示条件を記憶してよい。サーバ40は、コメントを表示する旨の表示条件が設定されたユーザ80のユーザ端末82に、承認ユーザ情報とともにコメントを送信してよい。サーバ40は、コメントを表示しない旨の表示条件が設定されたユーザ80のユーザ端末82には、コメントを送信せず、承認ユーザ情報のみを送信してよい。なお、表示条件は、「承認済」及び「未承認」のマークを表示するか否かを示す表示条件、ユーザ80の負担額のマークを表示するか否かを示す表示条件、及びコメントを表示するか否かを示す表示条件の少なくとも一つを含んでよい。
ユーザ端末82b~ユーザ端末82eの全てのユーザ端末82が承認ユーザ情報を送信すると、ユーザ端末82aにおいてボタン1060が有効化される。ユーザ80aがボタン1060を押すと、割勘決済アプリは、ユーザ80aが決済を指示したことを示す決済指示情報を、ユーザ端末82aからサーバ40へ送信させる。
サーバ40は、ユーザ端末82aから決済指示情報を受信すると、図4等に関連して説明したように、ユーザ80b~ユーザ80eからユーザ80aへの個人間送金の決済を行い、個人間送金の決済が完了すると、決済完了通知をユーザ端末82a~ユーザ端末82eに送信する。
図11は、割り勘シェア画面の一例を示す。割り勘シェア画面は、ユーザ端末82a~ユーザ端末82eに表示される。割勘決済アプリは、サーバ40から決済完了通知を受信した場合に、割り勘シェア画面をユーザ端末82に表示させる。割り勘シェア画面は、共有の対象となる共有用画像1120と、ボタン1140と、ボタン1160とを含む。
共有用画像1120は、割り勘を行う際に撮影された集合写真の画像に基づいて生成される。共有用画像1120は、割り勘決済の使用頻度を示すマーク1130を集合写真の画像に重畳することによって生成される。割り勘決済の使用頻度は、ユーザ80が割勘決済アプリを用いて決済を行った回数に基づいて決定されてよい。割り勘決済の使用頻度は、ユーザ80が割勘決済アプリを用いて決済を行った金額に基づいて決定されてよい。割り勘決済の使用頻度は、ユーザ80が店舗70を使用した回数に基づいて決定されてよい。割り勘決済の使用頻度を示すマークは、集合写真において、割り勘決済の使用頻度が予め定められた閾値より高いユーザ80の頭部の近くに合成して表示される。
ボタン1140は、共有用画像1120を共有しないことの指示を受け付けるためのボタンである。ボタン1160は、共有用画像1120を共有することの指示を受け付けるためのボタンである。ボタン1160が押されると、割勘決済アプリは、共有用画像1120をシェアするよう指示する共有指示情報を、共有用画像1120とともにユーザ端末82からサーバ40へ送信させる。なお、図9に示す承認要求画面でコメントを入力して承認した場合、割勘決済アプリは、当該コメントをシェアするようサーバ40に指示してよい。サーバ40は、コメントをシェアする指示をユーザ端末82から受信した場合、共有用画像にコメントを対応づけてよい。
図12は、割り勘決済の履歴を示すタイムライン画面である。タイムライン画面には、各ユーザ80がシェアするよう指示した共有用画像が、時系列で並べて表示される。割勘決済アプリは、サーバ40からダウンロードした共有用画像を含むタイムライン情報に基づいて、タイムライン画面を生成してユーザ端末82に表示させる。サーバ40からユーザ端末82に送信されるタイムライン情報は、共有用画像と、誰から誰への送金が行われたかを示す決済の流れを示す情報と、決済が完了した時刻とを含む。割勘決済アプリは、共有用画像にコメントが対応づけられている場合、共有用画像及びコメントをユーザ端末82に表示させてよい。なお、共有用画像は、割勘決済アプリにおいて共有されるだけでなく、他のSNSアプリケーションにおいて共有されてよい。図11及び図12に関連して説明したように、割り勘の決済をSNSで共有することができるので、ユーザ80は楽しみながらすることができる。また、集合写真を用いた割り勘を多くのユーザに広めることができる。
図3及び図4に関連して説明したように、店舗端末72で集合写真を撮影する場合、店舗端末72は、ユーザ端末82aが実行する処理と同様の処理を実行する。例えば、店舗端末72は、図7、図8、及び図10に関連して説明した処理を実行する。そのため、店舗端末72の動作の詳細については説明を省略する。
なお、以上の説明において、集合写真に写っているユーザ80及び集合写真を撮影したユーザ80aで割り勘を行う形態を説明した。例えば、飲食会に参加しない非参加者等の人物を含めて割り勘を行う場合がある。このような場合、ユーザ端末82が集合写真をサーバ40に送信するときに、ユーザ端末82は予め撮影した非参加者の人物の画像とともにサーバ40に送信して、サーバ40に非参加者を認識させてよい。
図13は、本実施形態に係るコンピュータ2000の例を示す。コンピュータ2000にインストールされたプログラムは、コンピュータ2000に、実施形態に係るサーバ40等の装置又は当該装置の各部として機能させる、当該装置又は当該装置の各部に関連付けられるオペレーションを実行させる、及び/又は、実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2000に、本明細書に記載の処理手順及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU2012によって実行されてよい。
本実施形態によるコンピュータ2000は、CPU2012、及びRAM2014を含み、それらはホストコントローラ2010によって相互に接続されている。コンピュータ2000はまた、ROM2026、フラッシュメモリ2024、通信インタフェース2022、及び入力/出力チップ2040を含む。ROM2026、フラッシュメモリ2024、通信インタフェース2022、及び入力/出力チップ2040は、入力/出力コントローラ2020を介してホストコントローラ2010に接続されている。
CPU2012は、ROM2026及びRAM2014内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。
通信インタフェース2022は、ネットワークを介して他の電子デバイスと通信する。フラッシュメモリ2024は、コンピュータ2000内のCPU2012によって使用されるプログラム及びデータを格納する。ROM2026は、アクティブ化時にコンピュータ2000によって実行されるブートプログラム等、及び/又はコンピュータ2000のハードウエアに依存するプログラムを格納する。入力/出力チップ2040はまた、キーボード、マウス及びモニタ等の様々な入力/出力ユニットをシリアルポート、パラレルポート、キーボードポート、マウスポート、モニタポート、USBポート、HDMI(登録商標)ポート等の入力/出力ポートを介して、入力/出力コントローラ2020に接続してよい。
プログラムは、CD-ROM、DVD-ROM、又はメモリカードのようなコンピュータ可読媒体又はネットワークを介して提供される。RAM2014、ROM2026、又はフラッシュメモリ2024は、コンピュータ可読媒体の例である。プログラムは、フラッシュメモリ2024、RAM2014、又はROM2026にインストールされ、CPU2012によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2000に読み取られ、プログラムと上記様々なタイプのハードウエアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ2000の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
例えば、コンピュータ2000及び外部デバイス間で通信が実行される場合、CPU2012は、RAM2014にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース2022に対し、通信処理を命令してよい。通信インタフェース2022は、CPU2012の制御下、RAM2014及びフラッシュメモリ2024のような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取った送信データをネットワークに送信し、ネットワークから受信された受信データを、記録媒体上に提供される受信バッファ処理領域等に書き込む。
また、CPU2012は、フラッシュメモリ2024等のような記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM2014に読み取られるようにし、RAM2014上のデータに対し様々な種類の処理を実行してよい。CPU2012は次に、処理されたデータを記録媒体にライトバックする。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理にかけられてよい。CPU2012は、RAM2014から読み取られたデータに対し、本明細書に記載され、プログラムの命令シーケンスによって指定される様々な種類のオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々な種類の処理を実行してよく、結果をRAM2014にライトバックする。また、CPU2012は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2012は、第1の属性の属性値が指定されている、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ2000上又はコンピュータ2000近傍のコンピュータ可読媒体に格納されてよい。専用通信ネットワーク又はインターネットに接続されたサーバーシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読媒体として使用可能である。コンピュータ可読媒体に格納されたプログラムを、ネットワークを介してコンピュータ2000に提供してよい。
コンピュータ2000にインストールされ、コンピュータ2000をサーバ40として機能させるプログラムは、CPU2012等に働きかけて、コンピュータ2000を、サーバ40の各部としてそれぞれ機能させてよい。これらのプログラムに記述された情報処理は、コンピュータ2000に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段である支払情報受信部200、人物特定部210、承認要求部220、実行部230、負担額設定部240、確認要求部250、変更通知受信部260、位置取得部270、及び許容状態取得部280として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ2000の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のサーバ40が構築される。
様々な実施形態が、ブロック図等を参照して説明された。ブロック図において各ブロックは、(1)オペレーションが実行されるプロセスの段階又は(2)オペレーションを実行する役割を持つ装置の各部を表わしてよい。特定の段階及び各部が、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウエア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、及び他の論理オペレーション、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウエア回路を含んでよい。
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、処理手順又はブロック図で指定されたオペレーションを実行するための手段をもたらすべく実行され得る命令を含む製品の少なくとも一部を構成する。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ又はプログラマブル回路に対し、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、説明された処理手順又はブロック図で指定されたオペレーションを実行するための手段をもたらすべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。