(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-09
(45)【発行日】2023-11-17
(54)【発明の名称】イメージを位置データに変換して提供する方法とシステム、および非一時的なコンピュータ読み取り可能な記録媒体
(51)【国際特許分類】
G06F 16/587 20190101AFI20231110BHJP
G06F 16/55 20190101ALI20231110BHJP
H04L 51/04 20220101ALI20231110BHJP
H04L 67/00 20220101ALI20231110BHJP
【FI】
G06F16/587
G06F16/55
H04L51/04
H04L67/00
(21)【出願番号】P 2019083961
(22)【出願日】2019-04-25
【審査請求日】2022-04-18
(31)【優先権主張番号】10-2018-0071451
(32)【優先日】2018-06-21
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】アン ジョンユン
(72)【発明者】
【氏名】キム ドンヒョン
(72)【発明者】
【氏名】ユン ヘヨン
(72)【発明者】
【氏名】ジャン ヒョクジェ
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2000-285121(JP,A)
【文献】特開2015-141234(JP,A)
【文献】特開2003-345819(JP,A)
【文献】特開2007-293823(JP,A)
【文献】米国特許出願公開第2011/0282570(US,A1)
【文献】米国特許出願公開第2016/0294958(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/587
G06F 16/55
H04L 51/00-51/58
H04L 67/00-67/75
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムが実行する位置提供方法であって、
前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサを含み、
当該位置提供方法は、
アプリケーションを実行しているクライアントから、前記アプリケーションを介してイメージを受信すると、前記少なくとも1つのプロセッサにより、
機械学習基盤のイメージ分類によって、前記受信したイメージ
が地図イメージであるかどうかを判別する工程、
前記イメージが前記地図イメージである場合、前記少なくとも1つのプロセッサにより、OCR(optical character reader)技術を利用して、前記イメージに含まれる少なくとも1つのテキストを抽出する工程、
前記少なくとも1つのプロセッサにより、
地図上のPOI(point of interest)情報を含むPOIテーブルを参照することによって、前記テキストに基づいて前記イメージとマッチングする位置情報を抽出する工程
であって、前記POIテーブルは、POI別に、POI名称と位置情報とが対応付けられており、前記マッチングする位置情報を抽出する工程は、
前記POIテーブルを参照することによって、前記テキストとマッチングするPOIの位置情報を抽出する工程と、
前記テキストとマッチングする前記POIの位置情報を利用して前記イメージとマッチングする基準位置を選定する工程と、を含む工程、および
前記少なくとも1つのプロセッサにより、前記アプリケーションで前記イメージを共有するクライアント
に、前記イメージ
とマッチングする前記位置情報を提供する工程
を含む、位置提供方法。
【請求項2】
前記少なくとも1つのテキストを抽出する工程は、
前記イメージが
前記地図イメージとして分類された場合、前記イメージからコーナー(corner)検出によってテキスト領域を検出した後、前記テキスト領域に対してOCRを実行させて
前記少なくとも1つのテキストを抽出する、
請求項
1に記載の位置提供方法。
【請求項3】
前記イメージとマッチングする位置情報を選定する工程は、
前記テキストとマッチングするPOIの位置情報の中で一定の距離以内のPOIの位置情報をクラスタリングすることによって
、位置情報が最も多く集まっている領域を前記イメージと対応する地域
として決定し、決定された地域の中心点を前記基準位置として選定する、
請求項
1に記載の位置提供方法。
【請求項4】
前記位置情報を抽出する工程は、
前記基準位置から2つの位置を選択し、選択された2つの位置の間の実際の距離と前記イメージ上での
前記2つの位置の間の距離とを比べて
、前記イメージに対応する地図のスケール
値を取得する工程
をさらに含む、請求項
1に記載の位置提供方法。
【請求項5】
前記イメージを共有するクライアントにおいて、
前記提供された位置情報に基づいて、前記
提供された位置情報に対応する地図アドレス
情報が生成されて表示される、
請求項1に記載の位置提供方法。
【請求項6】
当該位置提供方法は、
前記少なくとも1つのプロセッサにより、前記アプリケーション
のチャットルームにおける
会話メッセージ
を検索し、前記会話メッセージ内に前記POIテーブル上のPOI名称が含まれる場合、前記アプリケーション
のチャットルーム内のクライアントに、前記POIテーブルに含まれる位置情報のうち、前記POI
名称に対応する位置情報を提供する工程
を含む、請求項1に記載の位置提供方法。
【請求項7】
前記アプリケーションにおいて
前記POI
名称に対応する位置情報を提供する工程は、
前記
会話メッセージに含まれる前記POI名称について、
前記POI
名称に対応する位置情報と関連するインターネット上のコンテンツを含む付加情報を提供する工程
を含む、請求項
6に記載の位置提供方法。
【請求項8】
請求項1乃至
7のうちのいずれか一項に記載の位置提供方法をコンピュータに実行させるプログラムが記録されている、非一時的なコンピュータ読み取り可能な記録媒体。
【請求項9】
メモリ、および
前記メモリに通信可能に接続され、前記メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
アプリケーションを実行しているクライアントから、前記アプリケーションを介してイメージを受信すると、機械学習基盤のイメージ分類によって、前記受信したイメージが地図イメージであるかどうかを判別するイメージ判別部と、
前記イメージが前記地図イメージである場合、OCR技術を利用して、前記イメージ
に含まれる少なくとも1つのテキストを抽出するテキスト抽出部、
地図上のPOI情報を含むPOIテーブルを参照することによって、前記テキストに基づいて前記イメージとマッチングする位置情報を抽出する位置抽出部
であって、前記POIテーブルは、POI別に、POI名称と位置情報とが対応付けられており、前記位置抽出部は、
前記POIテーブルを参照することによって、前記テキストとマッチングするPOIの位置情報を抽出し、
前記テキストとマッチングする前記POIの位置情報を利用して前記イメージとマッチングする基準位置を選定する、前記位置抽出部、および
前記アプリケーションで前記イメージを共有するクライアント
に、前記イメージ
とマッチングする前記位置情報を提供する位置提供部
を備える、コンピュータシステム。
【請求項10】
前記テキスト抽出部は、
前記イメージが
前記地図イメージとして分類された場合、
前記イメージからコーナー検出によってテキスト領域を検出した後、前記テキスト領域に対してOCRを実行させて前記少なくとも1つのテキストを抽出する、
請求項
9に記載のコンピュータシステム。
【請求項11】
前記位置抽出部は、
前記テキストとマッチングするPOIの位置情報の中で一定の距離以内のPOIの位置情報をクラスタリングすることによって、
位置情報が最も多く集まっている領域を前記イメージに対応する地域
として決定し、決定された地域の中心点を前記基準位置として選定する、
請求項
9に記載のコンピュータシステム。
【請求項12】
前記位置抽出部は、
前記基準位置
から2つの位置を選択し、選択された2つの位置の間の実際の距離と前記イメージ上での前記2つの位置の間の距離とを比べて
、前記イメージに対応する地図のスケール
値を取得する、
請求項
9に記載のコンピュータシステム。
【請求項13】
前記イメージを共有するクライアント
において、
前記提供された位置情報に基づいて、前記
提供された位置情報に対応する地図アドレス
情報が生成
されて表示
される、
請求項
9に記載のコンピュータシステム。
【請求項14】
前記位置提供部は、
前記アプリケーション
のチャットルームにおける
会話メッセージ
を検索し、前記会話メッセージ内に
前記POIテーブル上のPOI名称が含まれる場合、前記アプリケーション
のチャットルーム内のクライアントに、前記POIテーブルに含まれる位置情報のうち、前記POI
名称に対応する位置情報を提供する、
請求項
9に記載のコンピュータシステム。
【請求項15】
前記位置提供部は、
前記
会話メッセージに含まれる前記POI名称に対し、
前記POI
名称に対応する位置情報と関連するインターネット上のコンテンツを含む付加情報を提供する、
請求項
14に記載のコンピュータシステム。
【請求項16】
プロセッサによって実行されると、該プロセッサに、
アプリケーションを実行しているクライアントから、前記アプリケーションを介してイメージを受信すると、機械学習基盤のイメージ分類によって、前記受信したイメージが地図イメージであるかどうかを判別する工程、
前記イメージが前記地図イメージである場合、OCR技術を利用して、前記イメージに含まれる少なくとも1つのテキストを抽出する工程、
地図上のPOI情報を含むPOIテーブルを参照することによって、前記テキストに基づいて前記イメージとマッチングする位置情報を抽出する工程であって、前記POIテーブルは、POI別に、POI名称と位置情報とが対応付けられており、前記マッチングする位置情報を抽出する工程は、
前記POIテーブルを参照することによって、前記テキストとマッチングするPOIの位置情報を抽出する工程と、
前記テキストとマッチングする前記POIの位置情報を利用して前記イメージとマッチングする基準位置を選定する工程と、を含む工程、および
、前記アプリケーションで前記イメージを共有するクライアントに、前記イメージとマッチングする前記位置情報を提供する工程
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、イメージとマッチングする位置を提供する技術に関する。
【背景技術】
【0002】
一般的なコミュニケーションツールであるインスタントメッセンジャー(instant messenger)は、リアルタイムでメッセージやデータを送受信することができるソフトウェアであり、ユーザがメッセンジャー上に会話相手を登録すると、会話相手リストに登録された相手とリアルタイムでメッセージをやり取りすることができる。
【0003】
このようなメッセンジャー機能は、PCはもちろん、移動通信端末のモバイル環境でもその使用が一般化している。
【0004】
例えば、特許文献1(公開日2002年09月30日)には、携帯端末機にインストールされたモバイルメッセンジャー同士でのメッセンジャーサービスを提供することができるようにした、無線通信網を利用した携帯端末機のモバイルメッセンジャーサービスシステムおよび方法が開示されている。
【0005】
一般的に、メッセンジャーでは、チャットルームでユーザ同士が写真、動画、ファイル、連絡先、位置、スケジュールなどのような多様な情報を共有することのできる機能を支援している。
【先行技術文献】
【特許文献】
【0006】
【文献】韓国公開特許第10-2002-0074304号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
アプリケーションで共有するイメージに対し、イメージとマッチングする地図上の位置を見つけ出して提供することを目的とする。
【0008】
アプリケーションでやり取りしたキャプチャ写真や略図イメージを位置データに変換して地図に連結させることを目的とする。
【0009】
アプリケーションでやり取りした会話内容を分析し、会話内容とマッチングする地図上の位置を提供することを目的とする。
【課題を解決するための手段】
【0010】
コンピュータシステムが実行する位置提供方法を提供する。前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、当該位置提供方法は、前記少なくとも1つのプロセッサにより、クライアントで実行されるアプリケーションで受信したイメージから少なくとも1つのテキストを抽出する工程、前記少なくとも1つのプロセッサにより、前記テキストに基づいて前記イメージとマッチングする位置情報を抽出する工程、前記少なくとも1つのプロセッサにより、前記アプリケーションで前記イメージを共有するクライアントを対象として前記イメージに対する前記位置情報を提供する工程を含む。
【0011】
一側面によると、当該位置提供方法は、前記少なくとも1つのプロセッサにより、機械学習基盤のイメージ分類によって前記イメージが地図イメージであるかどうかを判別する工程を含んでよい。
【0012】
他の側面によると、前記少なくとも1つのテキストを抽出する工程は、前記イメージが地図イメージとして分類された場合、OCR(optical character reader)技術を利用して前記イメージからテキストを抽出してよい。
【0013】
また他の側面によると、前記少なくとも1つのテキストを抽出する工程は、前記イメージが地図イメージとして分類された場合、前記イメージからコーナー(corner)検出によってテキスト領域を検出した後、前記テキスト領域に対してOCRを実行させてテキストを抽出してよい。
【0014】
また他の側面によると、前記位置情報を抽出する工程は、地図上のPOI(point of interest)別に名称と位置情報がマッチングされたPOIテーブルを利用して前記テキストとマッチングするPOIの位置情報を抽出する工程、および前記テキストとマッチングするPOIの位置情報を利用して前記イメージとマッチングする基準位置を選定する工程を含んでよい。
【0015】
また他の側面によると、前記イメージとマッチングする位置情報を選定する工程は、前記テキストとマッチングするPOIの位置情報の中で一定距離以内のPOIの位置情報をクラスタリングすることによって前記イメージに対応する地域を決定し、決定された地域の中心点を前記基準位置として選定してよい。
【0016】
また他の側面によると、前記位置情報を抽出する工程は、前記基準位置を中心とする地図イメージと前記イメージとを比べて前記イメージに対応する地図のスケールを取得する工程をさらに含んでよい。
【0017】
また他の側面によると、前記位置情報を抽出する工程は、前記基準位置から2つの位置を選択し、選択された2つの位置の間の実際の距離と前記イメージ上での距離とを比べて前記イメージに対応する地図のスケールを取得する工程をさらに含んでよい。
【0018】
また他の側面によると、前記イメージを共有するクライアントにおいて、前記位置情報に対応する地図アドレスが生成されて表示されてよい。
【0019】
また他の側面によると、当該位置提供方法は、前記少なくとも1つのプロセッサにより、前記アプリケーションにおけるメッセージに地図上のPOI名称が含まれる場合、前記アプリケーションにおいて該当のPOIの位置情報を提供する工程を含んでよい。
【0020】
さらに他の側面によると、前記アプリケーションにおいて該当のPOIの位置情報を提供する工程は、前記メッセージに含まれる前記POI名称に対し、該当のPOIの位置情報と関連するインターネット上のコンテンツを含む付加情報を提供する工程を含んでよい。
【0021】
前記位置提供方法をコンピュータに実行させるためのプログラムが記録されている、非一時的なコンピュータ読み取り可能な記録媒体を提供する。
【0022】
メモリ、および前記メモリに通信可能に接続され、前記メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、クライアントで実行されるアプリケーションで受信したイメージから、少なくとも1つのテキストを抽出するテキスト抽出部、前記テキストに基づいて前記イメージとマッチングする位置情報を抽出する位置抽出部、および前記アプリケーションで前記イメージを共有するクライアントを対象として前記イメージに対する前記位置情報を提供する位置提供部を備える、コンピュータシステムを提供する。
【図面の簡単な説明】
【0023】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【
図3】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図である。
【
図4】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【
図5】本発明の一実施形態における、ユーザ同士がイメージを共有するチャットルームの例を示した図である。
【
図6】本発明の一実施形態における、イメージからテキストを抽出する過程を説明するための例示図である。
【
図7】本発明の一実施形態における、イメージとマッチングする位置情報を抽出する過程を説明するための例示図である。
【
図8】本発明の一実施形態における、イメージとマッチングする位置情報を抽出する過程を説明するための例示図である。
【
図9】本発明の一実施形態における、イメージとマッチングする位置情報を抽出する過程を説明するための例示図である。
【
図10】本発明の一実施形態における、イメージとマッチングする地図アドレスを提供するチャットルームの例を示した図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【0025】
本発明の実施形態は、イメージとマッチングする位置を提供する技術に関し、より詳細には、アプリケーションで共有するイメージを位置データに変換して提供する技術に関する。
【0026】
本明細書において具体的に開示される事項などを含む実施形態は、アプリケーションで共有するイメージに対し、イメージとマッチングする地図上の位置を見つけ出して提供することができ、これによって利便性、サービス品質、効率性、費用節減などの側面において相当な長所を達成することができる。
【0027】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0028】
複数の電子機器110、120、130、140は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレット、ゲームコンソール、ウェアラブルデバイス、IoT(internet of things)デバイス、VR(virtual reality)デバイス、AR(augmented reality)デバイスなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することができる多様な物理的なコンピュータシステムのうちの1つを意味してよい。
【0029】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0030】
サーバ150、160のそれぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、サーバ150は、複数の電子機器110、120、130、140においてインストールされて実行されるコンピュータプログラムであるアプリケーションを通じ、該当のアプリケーションが目的とするサービス(一例として、メッセンジャーサービスなど)を第1サービスとして複数の電子機器110、120、130、140に提供してよい。他の例として、サーバ160は、上述したアプリケーションのインストールおよび実行のためのファイルを複数の電子機器110、120、130、140に配布するサービスを第2サービスとして提供してよい。
【0031】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図2では、電子機器に対する例として電子機器110の内部構成およびサーバ150の内部構成について説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器110またはサーバ150と同一または類似の内部構成を有してよい。
【0032】
電子機器110およびサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、非一時的なコンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような永続的大容量記録装置を含んでよい。ここで、ROM、SSD、フラッシュメモリ、ディスクドライブのような永続的大容量記録装置は、メモリ211、221とは区分される別の永続的記録装置として電子機器110やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電子機器110においてインストールされて実行されるブラウザや特定のサービスの提供のために電子機器110にインストールされるアプリケーションなどのためのコード)が記録されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるコンピュータプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
【0033】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に記録されたプログラムコードに従って受信される命令を実行するように構成されてよい。
【0034】
通信モジュール213、223は、ネットワーク170を介して電子機器110とサーバ150とが互いに通信するための機能を提供してもよいし、電子機器110および/またはサーバ150が他の電子機器(一例として、電子機器120)または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器110のプロセッサ212がメモリ211のような記録装置に記録されたプログラムコードに従って生成した要求が、通信モジュール213の制御に従ってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御に従って提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器110の通信モジュール213を通じて電子機器110に受信されてよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器110がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0035】
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を含んでよく、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイスなどのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器110と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150に接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器110のプロセッサ212がメモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器120が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。
【0036】
また、他の実施形態において、電子機器110およびサーバ150は、
図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器110は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器110がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が、電子機器110にさらに含まれるように実現されてよい。
【0037】
以下では、イメージを位置データに変換して提供する方法およびシステムの具体的な実施形態について説明する。
【0038】
本発明に係るアプリケーションは、アプリケーションでクライアント同士が共有するイメージに対し、イメージとマッチングする地図上の位置を提示する機能を含む。さらに、アプリケーションは、アプリケーションでクライアント同士がやり取りしたメッセージに対し、メッセージとマッチングする地図上の位置を提示する機能を含む。
【0039】
アプリケーションは、メッセンジャーやタイムラインなどのようなソーシャルネットワーキングサービスを提供するソーシャルメディアアプリケーションを含んでよい。
【0040】
以下では、メッセンジャーを例に挙げて具体的な実施形態を説明するが、これに限定されることはなく、本発明と関連する特徴は、メッセンジャーはもちろん、タイムラインなどのような各種ソーシャルメディアアプリケーションにも適用可能である。
【0041】
図3は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図であり、
図4は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【0042】
本実施形態に係るサーバ150は、クライアント(client)である複数の電子機器110、120、130、140を対象にメッセンジャーサービスを提供するプラットフォームの役割をする。サーバ150は、電子機器110、120、130、140上にインストールされるアプリケーションと連動してメッセンジャーサービスを提供してよい。特に、サーバ150は、メッセンジャーのチャットルームでやり取りしたイメージに対し、該当のイメージとマッチングする位置を見つけ出して提供することができる。
【0043】
サーバ150は、メッセンジャーサーバとして、
図4に示された位置提供方法を実行してよく、このために、サーバ150のプロセッサ222は、構成要素として、
図3に示すように、イメージ判別部310、テキスト抽出部320、位置抽出部330、および位置提供部340を備えてよい。実施形態によっては、プロセッサ222の構成要素は、選択的にプロセッサ222に含まれても除外されてもよい。また、実施形態によっては、プロセッサ222の構成要素は、プロセッサ222の機能の表現のために分離されても併合されてもよい。
【0044】
このようなプロセッサ222およびプロセッサ222の構成要素は、
図4の位置提供方法が含む段階410~段階450を実行するようにサーバ150を制御してよい。例えば、プロセッサ222およびプロセッサ222の構成要素は、メモリ221に含まれるオペレーティングシステムのコードと少なくとも1つのプログラムのコードとによる命令(instruction)を実行するように実現されてよい。
【0045】
ここで、プロセッサ222の構成要素は、サーバ150に記録されたプログラムコードが提供する命令に従ってプロセッサ222によって実行される、プロセッサ222の互いに異なる機能(different functions)の表現であってよい。例えば、チャットルームでやり取りしたイメージが地図イメージであるかどうかをサーバ150が判別するように上述した命令に従ってサーバ150を制御するプロセッサ222の機能的表現として、イメージ判別部310が利用されてよい。
【0046】
段階410において、プロセッサ222は、サーバ150の制御と関連する命令がロードされたメモリ221から必要な命令を読み取ることができる。この場合、読み取った命令には、以下で説明される段階420~段階450をプロセッサ222が実行するように制御するための命令が含まれてよい。
【0047】
段階420において、イメージ判別部310は、メッセンジャーのチャットルームでユーザ同士が共有しようとするイメージが受信された場合、受信したイメージをイメージ分類(image classification)して該当のイメージが地図イメージであるかどうかを判別することができる。電子機器110のユーザは、メッセンジャーのチャットルームで他のユーザと特定の位置を共有しようとするとき、実際の地図アドレス(URL)を共有するよりは、地図のキャプチャ画面や略図などのようなイメージを送信することが多い。イメージ判別部310は、機械学習(machine learning)によってイメージ分類作業を実行してよく、多様な形態の地図イメージや略図などを学習イメージセットとして構成し、これを学習した学習モデルに基づき、チャットルームで受信したイメージが地図であるかどう分類してよい。例えば、SIFT(scale invariant feature transform)、SURF(speeded up robust features)、HOG(histogram of oriented gradient)、MCT(modified census transform)などの画像認識アルゴリズムのうちの少なくともいずれか1つのアルゴリズムを利用してイメージに含まれた特徴を抽出した後、抽出された特徴とイメージ学習モデルによって、事前に定められた特徴との類似度を計算する方式によって地図イメージを分類することができる。
【0048】
段階430において、テキスト抽出部320は、チャットルームで受信されたイメージが地図イメージである場合、該当のイメージからテキストを抽出することができる。一例として、テキスト抽出部320は、OCR(optical character reader)技術によって地図イメージからテキストを抽出してよい。テキスト抽出部320は、チャットルームで受信されたイメージが地図イメージである場合、コーナー検出器(corner detector)などを利用してイメージからテキスト領域を検出した後、検出されたテキスト領域に対してOCRを実行させることによって該当の領域に含まれるテキストを抽出してよい。
【0049】
段階440において、位置抽出部330は、抽出されたテキストに基づいて地図イメージとマッチングする位置情報を抽出することができる。
【0050】
位置情報を抽出するためには、地図サービスを提供するために必要な情報を含む地図データベースを利用してよい。このとき、地図データベースは、サーバ150の内部データベース(例えば、メモリ221)に構築されてもよく、あるいはサーバ150と連動可能な他のシステム上に構築された外部データベースであってもよい。地図データベースは、地図上のPOI(point of interest)情報を含むPOIテーブルを含んでよい。以下、表1にPOIテーブルの例を示した。
【0051】
【0052】
POI情報は、地図上の主要施設物に関する情報であり、POIテーブルは、表1のようにPOI別の名称とともに位置情報である緯度と経度をマッチングさせて構成してよい。
【0053】
位置抽出部330は、地図イメージから抽出されたテキストそれぞれに対し、POIテーブルを利用して各テキストとマッチングするPOIの位置情報(緯度/経度値)を抽出してよく、抽出された位置情報が密集する場所を基準位置として選定してよい。地図イメージから抽出されたテキストを利用してPOI位置を見つけ出す過程において、同一名称や類似名称によって地図イメージが示す地域ではない他の地域のPOI位置が含まれることがあるため、地図イメージから抽出されたテキストに基づいて見つけ出されたPOI位置が最も多く集まっている場所の中心点を、地図イメージとマッチングする位置として選定してよい。
【0054】
さらに、位置抽出部330は、地図データベースから基準位置に対応する地図イメージを読み取ってチャットルームで受信した地図イメージとマッチングさせ、該当の地図のスケール値(縮尺)を取得してよい。
【0055】
他の例として、位置抽出部330は、基準位置から2つの位置を選択し、受信した地図イメージにおいて2つの位置の間の距離を求め、2つの位置の緯度/経度値を利用して実際の距離を求めた後、イメージ上での距離と実際の距離とを比べてスケール値を割り出してよい。また、位置抽出部330は、地図イメージから抽出されたテキストのうちのいずれか1つのテキストとマッチングするPOIの位置と該当のイメージの中心点までの距離を測定した後、先ほど割り出したスケール値を反映させて中心点の緯度/経度を割り出してよい。
【0056】
したがって、位置抽出部330は、地図イメージから抽出したテキストに基づき、該当のイメージとマッチングする位置情報(緯度/経度値)とともに地図のスケール値を抽出することができる。位置抽出部330は、イメージマッチングによって地図の判別が難しい場合には、地図イメージの中央と最も近いテキストとマッチングするPOIの位置情報を基準位置として使用してよい。
【0057】
段階450において、位置提供部340は、チャットルームにおいて、該当のチャットルームに含まれるユーザの各電子機器(例えば、110、120、130、140)に地図イメージとマッチングする位置情報を提供することができる。サーバ150は、発信側クライアントからチャットルームにイメージがアップロードされると、アップロードされたイメージに関する情報を含むイメージタイプメッセージを受信側クライアントに先に送信する。その後、サーバ150は、アップロードされたイメージを判別し、地図イメージとして判別された場合、上述したロジックに従って地図イメージとマッチングする位置情報を抽出し、該当の位置情報をチャットルームに含まれるすべてのクライアントに伝達してよい。位置情報には、地図イメージから抽出されたテキストに基づいて取得した位置情報(緯度と経度)が含まれ、実施形態によっては、地図のスケール値がさらに含まれてよい。各クライアントでは、サーバ150から伝達された緯度、経度、スケール値によって該当の位置情報に対応する実際の地図アドレスを生成し、生成された地図アドレスを該当のチャットルームで表示してよい。
【0058】
したがって、サーバ150は、チャットルームでユーザ同士がやり取りしたイメージが地図のキャプチャ画面や略図などのような地図イメージである場合、該当のイメージとマッチングする位置情報を提供することができる。
【0059】
他の例として、位置提供部340は、チャットルームでやり取りした最近の会話メッセージを検索し、最近の会話メッセージに、POIテーブル(表1)上のPOI名称とマッチングするテキストが含まれている場合、該当のPOIの位置情報をチャットルームに含まれるすべてのクライアントに伝達してよい。言い換えれば、位置提供部340は、地図にあるPOI名称が会話メッセージとして登場する場合、該当のPOIの位置情報をチャットルームに提供してよい。このとき、位置提供部340は、チャットルームに登場するPOI名称に対し、該当のPOIの位置情報と関連するインターネット上のコンテンツ(例えば、ブログや写真など)を含んだ付加情報を提供してよい。
【0060】
したがって、サーバ150は、チャットルームの会話内容を分析し、会話内容とマッチングする地図上の位置を提供することができる。
【0061】
以下では、チャットルームで共有されるイメージを位置データに変換して地図に連結させる過程について具体的に説明する。電子機器110のユーザAが電子機器120のユーザBにイメージを送信する状況を前提として説明する。
【0062】
図5は、電子機器110のユーザAのアカウントと電子機器120のユーザBのアカウントとの間に設定された通信セッションに対応するチャットルーム500を示している。電子機器110は、ユーザAによってユーザBとのチャットルーム500で共有したいイメージ510が選択されると、選択されたイメージをチャットルーム500に表示すると同時にサーバ150にアップロードすることができる。
【0063】
サーバ150は、電子機器110のユーザAのアカウントと電子機器120のユーザBのアカウントとの間に設定された通信セッションで電子機器110からのイメージ510が受信されると、イメージ分類により、受信したイメージ510が地図イメージであるかどうかを判別することができる。
図6を参照すると、サーバ150は、受信したイメージ510が地図イメージとして分類された場合、OCRによってイメージ510からテキスト601を抽出してよい。テキストの場合はコーナーが多く存在するため、狭い領域にコーナーが密集していればテキストである確率が高いという仮定のもと、テキスト601を抽出してよい。まず、サーバ150は、受信したイメージ510からテキスト領域を抽出してよい。例えば、ハリスコーナー検出器(Harris corner detector)のようなコーナー検出器を利用してイメージ510からコーナーを検出した後、コーナー検索結果に基づいてバイナリコーナーグリッドマップ(binary corner grid map)を生成する。次に、バイナリコーナーグリッドマップから輪郭線を検出し(contour detection)、検出された輪郭線を一定サイズの1つの領域として処理することによってテキスト領域を抽出してよい。最後に、サーバ150は、イメージ510から抽出されたテキスト領域に対してOCRを実行させて該当の領域に含まれるテキスト601を抽出してよい。
【0064】
サーバ150は、地図上のPOI別の位置情報を含むPOIテーブルを利用して、イメージ510から抽出されたテキスト601とマッチングするPOIの位置情報を抽出してよい。
図7を参照すると、サーバ150は、イメージ510から抽出されたテキスト601それぞれに対し、該当のテキスト601とマッチングするPOIの地
図700上の位置情報701を収集してよく、テキスト601別に1つ以上の位置情報701を収集してよい。
【0065】
このとき、テキスト601とPOIとの間の同一名称や類似名称により、イメージ510と関連する地域はもちろん、まったく関係のない地域の位置情報701までもが収集されることがある。サーバ150は、イメージ510から抽出されたテキストに基づいて位置情報701を収集する過程において、
図8に示すように、位置情報701が最も多く密集している領域810をイメージ510の地域として認識し、該当の領域810の中心点をイメージ510とマッチングする基準位置811として選定してよい。例えば、一定の距離以内の位置情報701をクラスタリングすることによって、位置情報701が最も多く集まっている領域810を決定することができる。
【0066】
図9を参照すると、サーバ150は、基準位置811を中心とする地図イメージ910を取得した後、チャットルーム500で受信したイメージ510とマッチングさせて該当のイメージ510と対応するスケール値を割り出してよい。イメージ510内のテキスト601の位置と地図イメージ910内のPOI位置とを比べて地図のスケール値を取得してよい。
【0067】
サーバ150は、チャットルーム500において、チャットルーム500に含まれるすべてのクライアント(ユーザAとユーザB)を対象に、イメージ510とマッチングする位置情報、すなわち、基準位置811の緯度値、経度値、およびイメージ510とのマッチングによって取得したスケール値を伝達してよい。
【0068】
イメージ510を送信したユーザA側とイメージ510を受信したユーザB側の各クライアントでは、サーバ150から伝達された位置情報を地図アドレスとして生成してチャットルーム500に表示することができる。
図10に示すように、各クライアントでは、チャットルーム500で共有するイメージ510に対し、サーバ150から伝達された緯度、経度、スケール値に基づいて該当の位置情報に対応する実際の地図アドレス1020を生成し、生成された地図アドレス1020を該当のチャットルーム500に表示してよい。
【0069】
したがって、サーバ150は、ユーザ同士がチャットルーム500で共有するイメージ510を位置データに変換し、これに対応する地図を連結させることができる。
【0070】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0071】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0072】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【0073】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって代替されたり置換されたとしても、適切な結果を達成することができる。
【0074】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0075】
222:プロセッサ
310:イメージ判別部
320:テキスト抽出部
330:位置抽出部
340:位置提供部