(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024178145
(43)【公開日】2024-12-24
(54)【発明の名称】ビデオ内の外部オブジェクトを追跡するための電子装置及びその方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20241217BHJP
【FI】
G06T7/70 A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024095245
(22)【出願日】2024-06-12
(31)【優先権主張番号】10-2023-0074826
(32)【優先日】2023-06-12
(33)【優先権主張国・地域又は機関】KR
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.アンドロイド
2.ANDROID
3.BLUETOOTH
4.WCDMA
5.JAVASCRIPT
(71)【出願人】
【識別番号】516082420
【氏名又は名称】シンクウェア コーポレーション
【氏名又は名称原語表記】THINKWARE CORPORATION
(74)【代理人】
【識別番号】110002789
【氏名又は名称】弁理士法人IPX
(72)【発明者】
【氏名】シン・トンウォン
(72)【発明者】
【氏名】ハン・テギュ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA04
5L096CA04
5L096DA01
5L096DA02
5L096FA16
5L096FA69
5L096HA03
5L096HA11
5L096KA04
(57)【要約】 (修正有)
【課題】複数の画像を含むビデオから、オブジェクトを認識するためのモデルのトレーニングに用いられるラベリング情報を取得する電子装置及びその方法を提供する。
【解決手段】方法は、ビデオの複数の画像及び複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別し、第1の画像内の第1の位置に基づいて、複数の画像のうち第1のタイミングの後の第2のタイミングの第2の画像内で、外部オブジェクトに関連する第2の位置を識別し、第1の位置及び第2の位置に基づいて、第1のタイミングと第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得し、ビデオの時間区間内で識別された外部オブジェクトの動きを示すラベリング情報として、第1の位置、1つ又はそれ以上の第3の位置及び第2の位置を格納する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
電子装置(electronic device)であって、
メモリと、
プロセッサとを含み、前記プロセッサは、
前記メモリから、ビデオ用の複数の画像及び前記複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別し、
前記第1の画像内の前記第1の位置に基づいて、前記複数の画像のうち前記第1のタイミングの後の第2のタイミングの第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別し、
前記第1の位置及び前記第2の位置に基づいて、前記第1のタイミングと前記第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、前記外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得し、及び
前記ビデオの前記時間区間内で識別された前記外部オブジェクトの動きを示すラベリング情報として、前記第1の位置、前記1つ又はそれ以上の第3の位置、及び前記第2の位置を格納するように構成されている、電子装置。
【請求項2】
前記プロセッサは、
前記第1のタイミングにおける前記第1の画像内の前記第1の位置を示す第1の座標と、前記第2のタイミングにおける前記第2の画像内の前記第2の位置を示す第2の座標とを、前記第1のタイミングと前記第2のタイミングとの間の長さを用いて補間することによって、前記1つ又はそれ以上の第3の位置を取得するように構成されている、請求項1に記載の電子装置。
【請求項3】
前記プロセッサは、
前記第1の座標及び前記第2の座標を、前記1つ又はそれ以上の第3の画像の前記時間区間内のタイミングに基づいて補間することによって、前記1つ又はそれ以上の第3の位置を取得するように構成されている、請求項2に記載の電子装置。
【請求項4】
前記プロセッサは、
前記外部オブジェクトに対応する前記第1の位置を含む前記第1の画像の一部に含まれる1つ又はそれ以上の特徴点と、前記外部オブジェクトに対応する第2の画像に含まれる1つ又はそれ以上の特徴点とを比較することによって、前記第2の画像内で前記第2の位置を識別するように構成されている、請求項2に記載の電子装置。
【請求項5】
前記プロセッサは、
前記第1のタイミングの後の閾値区間の後の前記第2のタイミングの前記第2の画像に対する前記第2の位置を識別することに基づいて、前記1つ又はそれ以上の第3の画像に含まれる少なくとも1つの特徴点を用いて、前記第3の位置を変更するように構成されている、請求項1に記載の電子装置。
【請求項6】
前記プロセッサは、
前記外部オブジェクトを認識するためのモデルに、前記第1の画像及び前記第2の画像を入力して、前記時間区間内にキャプチャされた前記外部オブジェクトの前記第1の位置及び前記第2の位置を識別するように構成されている、請求項1に記載の電子装置。
【請求項7】
ディスプレイをさらに含み、
前記プロセッサは、
前記ディスプレイに、前記ビデオを再生するための画面を表示し、
前記複数の画像のいずれかの画像が、前記ビデオの再生を示す入力に基づいて、前記画面内に表示される状態内で、前記ラベリング情報に基づいて、前記画面内に表示された前記画像上に重畳され(superimposed on)、前記外部オブジェクトの位置を示す視覚オブジェクトを表示するように構成されている、請求項1に記載の電子装置。
【請求項8】
前記プロセッサは、
前記画面に前記1つ又はそれ以上の第3の画像のいずれかの画像を表示する前記状態内で、前記視覚オブジェクトの動きを示す入力を識別し、
前記入力に基づいて、前記1つ又はそれ以上の第3の画像のうち、前記画面に表示された画像とは異なる他の画像に対応する前記外部オブジェクトの位置を、前記入力によって移動された前記視覚オブジェクトの位置に基づいて調整するするように構成されている、請求項7に記載の電子装置。
【請求項9】
電子装置の方法であって、
前記電子装置のメモリから、ビデオ用の複数の画像及び前記複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別する動作、
前記第1の画像内の前記第1の位置に基づいて、前記複数の画像のうち前記第1のタイミングの後の第2のタイミングの第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別する動作、
前記第1の位置及び前記第2の位置に基づいて、前記第1のタイミングと前記第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、前記外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得する動作、及び
前記ビデオの前記時間区間内で識別された前記外部オブジェクトの動きを示すラベリング情報として、前記第1の位置、前記1つ又はそれ以上の第3の位置、及び前記第2の位置を格納する動作を含む、方法。
【請求項10】
前記取得する動作は、
前記第1のタイミングにおける前記第1の画像内の前記第1の位置を示す第1の座標と、前記第2のタイミングにおける前記第2の画像内の前記第2の位置を示す第2の座標とを、前記第1のタイミングと前記第2のタイミングとの間の長さを用いて補間することによって、前記1つ又はそれ以上の第3の位置を取得する動作を含む、請求項9に記載の方法。
【請求項11】
前記取得する動作は、
前記第1の座標及び前記第2の座標を、前記1つ又はそれ以上の第3の画像の前記時間区間内のタイミングに基づいて補間することによって、前記1つ又はそれ以上の第3の位置を取得する動作を含む、請求項10に記載の方法。
【請求項12】
前記第2の位置を識別する動作は、
前記外部オブジェクトに対応する前記第1の位置を含む前記第1の画像の一部に含まれる1つ又はそれ以上の特徴点を比較することによって、前記第2の画像内で前記第2の位置を識別する動作を含む、請求項10に記載の方法。
【請求項13】
前記取得する動作は、
前記第1のタイミングの後の閾値区間の後の前記第2のタイミングの前記第2の画像に対する前記第2の位置を識別することに基づいて、前記1つ又はそれ以上の第3の画像に含まれる少なくとも1つの特徴点を用いることによって、前記第3の位置を変更する動作を含む、請求項9に記載の方法。
【請求項14】
前記第2の位置を識別する動作は、
前記外部オブジェクトを認識するためのモデルに、前記第1の画像及び前記第2の画像を入力して、前記時間区間内にキャプチャされた前記外部オブジェクトの前記第1の位置及び前記第2の位置を識別する動作を含む、請求項9に記載の方法。
【請求項15】
前記電子装置のディスプレイに、前記ビデオを再生するための画面を表示する動作、
前記複数の画像のいずれかの画像が、前記ビデオの再生を示す入力に基づいて、前記画面内に表示された状態内で、前記ラベリング情報に基づいて、前記画面内に表示された前記画像上に重畳され、前記外部オブジェクトの位置を示す視覚オブジェクトを表示する動作をさらに含む、請求項9に記載の方法。
【請求項16】
前記画面に、前記1つ又はそれ以上の第3の画像のいずれかの画像を表示する前記状態内で、前記視覚オブジェクトの移動を示す入力を識別する動作、
前記入力に基づいて、前記1つ又はそれ以上の第3の画像のうち、前記画面に表示された画像とは異なる他の画像に対応する前記外部オブジェクトの位置を、前記入力によって移動された前記視覚オブジェクトの位置に基づいて調整する動作をさらに含む、請求項15に記載の方法。
【請求項17】
電子装置(electronic device)であって、
ディスプレイと、
メモリと、
プロセッサとを含み、前記プロセッサは、
前記メモリに格納されたビデオの第1の画像を、前記ディスプレイに表示した状態で、前記第1の画像内で外部オブジェクトに関連する第1の位置の選択を示す第1の入力を識別し、
前記第1の入力に基づいて、前記外部オブジェクトを認識するための第1のタイプの計算(first type of computation)を実行して、前記ビデオ用の複数の画像のうち、前記第1の画像のタイミングから始まる時間区間の後の第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別し、
前記第1の位置及び前記第2の位置を補間するための第2のタイプの計算を実行して、前記区間に含まれる1つ又はそれ以上の第3の画像内で、前記外部オブジェクトに関連する第3の位置を取得し、及び
前記時間区間に含まれる前記ビデオの少なくとも一部の再生を示す第2の入力に応答して、前記第1の画像、前記1つ又はそれ以上の第3の画像、及び前記第2の画像のいずれかを、前記ディスプレイに表示し、
前記ディスプレイに表示された画像上に重畳され、前記第1の位置、前記第3の位置、又は前記第2の位置のいずれかに対応する視覚オブジェクトを表示するように構成されている、電子装置。
【請求項18】
前記プロセッサは、
1つ又はそれ以上の特徴点に基づく前記外部オブジェクトを認識するための前記第1のタイプの計算を、前記第1の画像の前記タイミングから前記時間区間ごとに繰り返し実行するように構成されている、請求項17に記載の電子装置。
【請求項19】
前記プロセッサは、
前記第1の位置、前記第2の位置、及び前記時間区間内で前記1つ又はそれ以上の第3の画像のタイミングに基づいて、前記第3の位置を取得するための前記第2のタイプの前記計算を実行するように構成されている、請求項17に記載の電子装置。
【請求項20】
前記プロセッサは、
前記メモリに、前記ビデオに対応するラベリング情報として、前記第1の位置、前記第3の位置、及び前記第2の位置を格納するように構成されている、請求項17に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示(present disclosure)は、ビデオ内の外部オブジェクトを追跡するための電子装置及びその方法に関する。
【背景技術】
【0002】
画像オブジェクト認識技術が発達するにつれて、様々な形態のサービスが出現している。これらのサービスは、自律走行(Automatic Driving)、拡張現実(Augmented Reality)、仮想現実(Virtual Reality)、メタバス(Metaverse)などに使用でき、スマートフォンなどの異なるユーザが有する電子装置を介して提供することができる。前記サービスは、人工知能(artificial intelligence)など、ヒトの行動及び/又は思考を模倣するハードウェア及び/又はソフトウェアメカニズムに関連し得る。人工知能に関連する技術は、生物の神経網をシミュレートしたニューラルネットワークを利用する技術を含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ビデオの再生のために、ビデオに含まれる画像(例えば、フレーム)で、画像内で共通にキャプチャされた外部オブジェクトの位置を、より迅速に識別するための方法が研究されている。
【課題を解決するための手段】
【0004】
一実施形態(an embodiment)によれば、電子装置(electronic device)は、メモリ及びプロセッサを含むことができる。このプロセッサは、前記メモリから、ビデオ用の複数の画像及び前記複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別するように構成することができる。前記プロセッサは、前記第1の画像内の前記第1の位置に基づいて、前記複数の画像のうち前記第1のタイミングの後の第2のタイミングの第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別するように構成することができる。前記プロセッサは、前記第1の位置及び前記第2の位置に基づいて、前記第1のタイミングと前記第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、前記外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得するように構成することができる。前記プロセッサは、前記ビデオの前記時間区間内で識別された前記外部オブジェクトの動きを示すラベリング情報として、前記第1の位置、前記1つ又はそれ以上の第3の位置、及び前記第2の位置を格納するように構成することができる。
【0005】
一実施形態によれば、電子装置の方法は、前記電子装置のメモリから、ビデオ用の複数の画像及び前記複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別する動作を含むことができる。この方法は、前記第1の画像内の前記第1の位置に、前記複数の画像のうち前記第1のタイミングの後の第2のタイミングの第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別する動作を含むことができる。この方法は、前記第1の位置及び前記第2の位置に基づいて、前記第1のタイミングと前記第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、前記外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得する動作を含むことができる。この方法は、前記ビデオの前記時間区間内で識別された前記外部オブジェクトの動きを示すラベリング情報として、前記第1の位置、前記1つ又はそれ以上の第3の位置、及び前記第2の位置を格納する動作を含むことができる。
【0006】
一実施形態によれば、電子装置は、ディスプレイ、メモリ、及びプロセッサを含むことができる。前記プロセッサは、前記メモリに格納されたビデオの第1の画像を前記ディスプレイに表示した状態で、前記第1の画像内で外部オブジェクトに関連する第1の位置の選択を示す第1の入力を識別するように構成されてもよい。前記プロセッサは、前記第1の入力に基づいて、前記外部オブジェクトを認識するための第1のタイプの計算を実行して、前記ビデオ用の複数の画像のうち、前記第1の画像のタイミングから始まる時間区間の後の第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別するように構成することができる。前記プロセッサは、前記第1の位置及び前記第2の位置を補間するための第2のタイプの計算を実行して、前記区間に含まれる1つ又はそれ以上の第3の画像内で、前記外部オブジェクトに関連する第3の位置を取得するように構成することができる。前記プロセッサは、前記時間区間に含まれる前記ビデオの少なくとも一部の再生を示す第2の入力に応答して、前記第1の画像、前記1つ又はそれ以上の第3の画像、及び前記第2の画像のいずれかを、前記ディスプレイに表示し、前記ディスプレイに表示された画像の上に重畳されて、前記第1の位置、前記第3の位置、又は前記第2の位置のいずれかに対応する視覚オブジェクトを表示するように構成することができる。
【0007】
一実施形態によれば、電子装置の方法は、前記電子装置のメモリに格納されたビデオの第1の画像を、前記電子装置のディスプレイに表示した状態で、前記第1の画像内で外部オブジェクトに関連する第1の位置の選択を示す第1の入力を識別する動作を含むことができる。前記方法は、前記第1の入力に基づいて、前記外部オブジェクトを認識するための第1のタイプの計算を実行して、前記ビデオ用の複数の画像のうち、前記第1の画像のタイミングから始まる時間区間の後の第2の画像内で、外部オブジェクトに関連する第2の位置を識別する動作を含むことができる。この方法は、前記第1の位置及び前記第2の位置を補間するための第2のタイプの計算を実行して、前記時間区間に含まれる1つ又はそれ以上の第3の画像内で、前記外部オブジェクトに関連する第3の位置を取得する動作を含むことができる。この方法は、前記時間区間に含まれる前記ビデオの少なくとも一部の再生を示す第2の入力に応答して、前記第1の画像、前記1つ又はそれ以上の第3の画像、及び前記第2の画像のいずれかを、前記ディスプレイに表示し、前記ディスプレイに表示された画像の上に重畳されて、前記第1の位置、前記第3の位置、又は前記第2の位置のいずれかに対応する視覚オブジェクトを表示する動作を含むことができる。
【発明の効果】
【0008】
一実施形態によれば、電子装置は、順次に記録された(sequentially recorded)複数の画像を含むビデオから、オブジェクトを認識するためのモデルのトレーニングに用いられるラベリング情報を取得することができる。
【0009】
一実施形態によれば、電子装置は、ビデオに含まれる複数の画像のそれぞれに含まれる視覚オブジェクトの位置を含むラベリング情報をより迅速に取得することができる。
【図面の簡単な説明】
【0010】
【
図1a】一実施形態による、電子装置によってラベリング情報を取得する動作の一例を示す。
【
図1b】一実施形態による、電子装置によってラベリング情報を取得する動作の一例を示す。
【
図2】一実施形態による、電子装置のブロック図の一例を示す。
【
図3】一実施形態による、電子装置によって実行される動作のフローチャートの一例を示す。
【
図4】一実施形態による、電子装置によってビデオに含まれる画像からオブジェクトを認識する動作の一例を示す。
【
図5a】ビデオに含まれる2つの画像のラベリング情報に基づいて、他の画像のラベリング情報を取得する電子装置の動作の一例を示す。
【
図5b】ビデオに含まれる2つの画像のラベリング情報に基づいて、他の画像のラベリング情報を取得する電子装置の動作の一例を示す。
【
図6】一実施形態による、電子装置によって実行される動作のフローチャートの一例を示す。
【
図7】一実施形態による、電子装置によって実行される補間の一例を示す。
【
図8】一実施形態による、車両の自律走行システムを示すブロック図の一例を示す。
【
図9】一実施形態による、自律走行移動体を示すブロック図の一例を示す。
【
図10】一実施形態による、自律走行移動体を示すブロック図の一例を示す。
【
図11】一実施形態による、ユーザ装置に関連するゲートウェイの例を示す。
【
図12】学習データのセットに基づいて、ニューラルネットワークをトレーニングする電子装置の動作を説明するための図である。
【
図13】一実施形態による、電子装置のブロック図である。
【
図14】一実施形態による、電子装置のブロック図である。
【
図15】本発明の一実施形態による画像内でユーザの入力によって選択された領域に関連するラベリングデータを取得する過程を説明するための図である。
【
図16】本発明の一実施形態による画像内でオブジェクトを識別するための学習用のラベリングデータを生成する過程を説明するための図である。
【
図17】本発明の一実施形態によって生成されたラベリングデータの階層構造を説明するための図である。
【
図18】本発明の一実施形態によって生成されたラベリングデータの外部オブジェクトに関する情報の階層構造を説明するための図である。
【0011】
【
図19】本発明の一実施形態によってShape Typeが「Polygon」の場合、Pointsパラメータに割り当てられる座標の例を示す図である。
【0012】
【
図20】本発明の一実施形態によるニューラルネットワークの効率的なトレーニングのために生成されたラベリングデータを、トレーニングセット、検証セット、及び/又はテストセットに区分する例を説明するための図である。
【発明を実施するための形態】
【0013】
以下、添付の図面を参照して本文書の様々な実施形態について説明する。
【0014】
本文書の様々な実施形態及びそれに使用される用語は、本文書に記載された技術を、特定の実施形態に限定することを意図するものではなく、その実施形態の様々な変更、等価物、又は代替物を含むことを理解されたい。図面の説明に関して、類似する構成要素には、類似の参照番号を使用する場合がある。文脈上、明らかに別段の定めがない限り、単数の表現には、複数の表現が含まれることがある。本文書において、「A又はB」、「A及び/又はBのうち少なくとも1つ」、「A、B又はC」、又は「A、B及びCのうち少なくとも1つ」などの表現は、一緒に列挙された項目の可能なすべての組み合わせを含むことができる。「第1」、「第2」、又は「一番目」又は「二番目」などの表現は、対応する構成要素を順序又は重要度に関係なく修飾することができ、ある構成要素を他の構成要素と区別するために使用するだけ、対応する構成要素を限定しない。ある(例えば、第1の)構成要素が、他の(例えば、第2の)構成要素に、「(機能的に又は通信的に)連結されている」か、又は「接続されている」と言及されている場合、その構成要素は、他の構成要素に直接接続されてもよく、他の構成要素(例えば、第3の構成要素)を介して接続されてもよい。
【0015】
本文書で使用される「モジュール」という用語は、ハードウェア、ソフトウェア、又はファームウェアで構成されたユニットを含み、例えば、ロジック、論理ブロック、部品、又は回路などの用語と交換可能に使用することができる。モジュールは、一体に構成された部品又は1つ又はそれ以上の機能を実行する、部品の最小単位又はその一部であり得る。例えば、モジュールは、ASIC(application-specific integrated circuit)で構成され得る。
【0016】
図1a~
図1bは、一実施形態による、電子装置101によってラベリング情報を取得する動作の一例を示す。
図1a~
図1bを参照すると、電子装置101のフォームファクタ(form factors)が例示的に示されている。ユーザが所有する観点から、電子装置101は、端末、ユーザ装置、及び/又はユーザ端末と呼ばれることがある。電子装置101は、デスクトップ101-1及び/又はラップトップ101-2などのパーソナルコンピュータ(personal computer、PC)を含むことができる。電子装置101は、スマートフォン(smartphone)101-3、スマートパッド(smartpad)、及び/又はタブレットPCを含むことができる。端末は、スマートウォッチ(smartwatch)及び/又はHMD(head-mounted device)などのスマートアクセサリを含むことができる。
【0017】
図1aを参照すると、一実施形態による電子装置101は、画面110を表示することができる。電子装置101は、画面110を用いて、情報(例えば、ビデオ120)を視覚化することができる。画面110を表示するために、及び/又は情報を出力するために、電子装置101に含まれる1つ又はそれ以上のハードウェアが、
図2を参照して例示的に説明される。以下では、画面110は、ディスプレイの少なくとも一部内に表示されるUI(user interface)を意味することがある。画面は、例えば、ウィンドウズ(登録商標)オペレーティングシステムのウィンドウ及び/又はアンドロイド(android)オペレーティングシステムのアクティビティ(activity)を含むことができる。実施形態は、これに限定されず、画面110は、電子装置101から外部空間に出力される光によって、外部空間に形成されてもよい。例えば、画面110は、外部空間内で、光が投影された(projected)平面上に形成されてもよい。例えば、画面110は、外部空間内にホログラムの形で立体的に表示されてもよい。
【0018】
一実施形態によれば、電子装置101は、ビデオ120を再生するための画面110を表示することができる。ビデオ120は、フレームレート(frame rate)(又はfps(frames per second))に従って順次に(sequentially)表示され得る画像のセットを含むことができる。セットに含まれる画像は、フレーム、フレームデータ、及び/又はフレーム画像と呼ばれることがある。ビデオ120は、画像が順次に表示されている間に出力されるオーディオ信号を含むことができる。視覚情報(例えば、画像のセット)及び聴覚(auditory)情報(例えば、オーディオ信号)の両方を含む観点から、ビデオ120は、マルチメディアコンテンツ(又はメディアコンテンツ)と呼ばれることがある。
【0019】
図1aを参照すると、電子装置101がビデオ120から識別した複数の画像120-1、120-k、120-Nが例示的に示されている。ビデオ120を再生している状態では、電子装置101は、
図1aに示す複数の画像のうち、
図1aの左側に示す画像(例えば、第1の画像120-1)を、別の画像(例えば、第kの画像120-k)の前に表示すると仮定する。例えば、前記状態内で、第kの画像120-kは、電子装置101によって第1の画像120-1の後に表示されてもよい。例えば、前記状態内で、第Nの画像120-Nは、電子装置101によって第kの画像120-kの後に表示されてもよい。例えば、電子装置101は、第1の画像120-1、第kの画像120-k、第Nの画像120-Nの順に順次表示されてもよい。
【0020】
一実施形態によれば、電子装置101は、ビデオ120から1つ又はそれ以上の外部オブジェクトを認識することができる。一実施形態による外部オブジェクトは、電子装置101が取り付けられたシステム(例えば、車両)の周囲に存在するオブジェクトとして、歩行者(pedestrian)、車両(vehicle)、自転車(bike)、PM(Personal Mobility)道路標識(road sign)、車線区分線(lane marking)などを含むことができる。1つ又はそれ以上の外部オブジェクトを認識することは、ビデオ120から、ビデオ120によってキャプチャされた1つ又はそれ以上の外部オブジェクトに関する情報を生成及び/又は取得する動作を含むことができる。これらの情報は、ビデオ120のための複数の画像のうち少なくとも1つにおいて、1つ又はそれ以上の外部オブジェクトに関連する部分を示すデータを含み得る。前記情報は、1つ又はそれ以上の外部オブジェクトの分類(classification又はcategory)を示すデータを含み得る。一実施形態では、電子装置101が前記1つ又はそれ以上の外部オブジェクトを認識することは、ビデオ120に含まれる複数の画像のうち少なくとも1つにおいて、前記1つ又はそれ以上の外部オブジェクトに関連する位置を示す情報を生成及び/又は取得する動作を含むことができる。一実施形態によれば、電子装置101は、ビデオ120から1つ又はそれ以上の外部オブジェクトを認識することに基づいて、この1つ又はそれ以上の外部オブジェクトを認識した結果を含む情報を取得することができる。電子装置101によって取得された情報は、ビデオ120に対応するメタデータ及び/又はラベリング(labeling)情報と呼ばれることがある。
【0021】
一実施形態によれば、電子装置101によって取得され、ビデオ120に関連する1つ又はそれ以上の外部オブジェクトに関する情報は、外部オブジェクトを認識するためのモデルをトレーニングするという観点から、ラベリング情報と呼ばれることがある。例えば、ラベリング情報は、該ラベリング情報とマッチングするビデオ120と共に、モデルの教師あり学習(supervised learning)に使用することができる。モデルは、多数の人工ニューロン(Artificial neuron)(又はノード、パーセプトロン(Perceptron))を用いて、生物学的システムの計算能力を模倣するソフトウェア又はハードウェアで実装された認識モデルである。前記モデルに基づいて、電子装置101は、人間の認知作用や学習過程と同様の動作を行うことができる。モデルの教師あり学習は、モデルに含まれる複数のノード及び/又は複数のノード間の接続に割り当てられた(assigned)重みを、入力データ(例えば、ビデオ120)、この入力データの前記モデルの出力データ及び基底トゥルース(ground truth)データ(例えば、ビデオ120に対応するラベリング情報)を用いて変更する動作を含むことができる。ビデオ120及びビデオ120に対応するラベリング情報によってトレーニングされたモデルは、ビデオ120とは異なる他のビデオを受信した状態で、他のビデオから外部オブジェクトを認識した結果を出力することができる。1つ又はそれ以上の外部オブジェクトに関する情報は、教師あり学習以外の目的に使用することができる。例えば、ビデオ120に含まれる外部オブジェクトを追跡及び/又は監視する観点から、ビデオ120に関連する1つ又はそれ以上の外部オブジェクトに関する情報は、オブジェクト追跡情報(object tracking information)と呼ばれることがある。
【0022】
図1aを参照すると、ビデオ120に対応するラベリング情報を生成するために、電子装置101によって表示された画面110が例示的に示されている。電子装置101は、ビデオ120の第1のタイミングの第1の画像120-1を表示することができる。電子装置101は、画面110内で、第1の画像120-1と共に、ビデオ120を制御するための1つ又はそれ以上の視覚オブジェクト(visual objects)を含むパネル112を表示することができる。視覚オブジェクトは、テキスト、画像、アイコン、ビデオ、ボタン、チェックボックス、ラジオボタン、テキストボックス、スライダ、及び/又はテーブルなど、情報の送信及び/又は相互作用(interaction)のために、画面110内に配置可能な(deployable)オブジェクトを意味することができる。視覚オブジェクトは、視覚要素(visual element)、UI要素(UI element)ビューオブジェクト(view object)及び/又はビュー要素(view element)と呼ばれることがある。ビデオ120内の第1の画像120-1を表示した状態内で、電子装置101は、第1の画像120-1内で外部オブジェクトに関連する領域を選択するためのユーザ入力を識別することができる。ユーザ入力を識別する電子装置101の例示的な動作を、
図1bを参照して説明する。
【0023】
図1aの例示的なケース内では、第1の画像120-1内で車両を表す(representing)視覚オブジェクト130-1を含む第1の画像120-1を表示する電子装置101は、視覚オブジェクト130-1を選択及び/又は分割(segmenting)するためのユーザ入力を識別することができる。例えば、電子装置101は、視覚オブジェクト130-1を含む第1の画像120-1の領域140-1の頂点(apexes)A1、B1、C1、D1の選択を示す入力を識別することができる。
【0024】
一実施形態では、頂点A1、B1、C1、D1の選択を示す入力に応答して、電子装置101は、前記入力に対応する領域140-1を表すバウンディングボックスの形態内(in a shape of bounding box)の視覚オブジェクトを表示することができる。例えば、バウンディングボックスの頂点は、領域140-1の頂点A1、B1、C1、D1とマッチングすることができる。電子装置101は、頂点A1、B1、C1、D1の間を、指定された色を有する線で連結することで、バウンディングボックスを表示することができる。バウンディングボックスを表示するための線の指定された色は、領域140-1に含まれる視覚オブジェクト130-1を認識した結果に関連され得る。
図1aの例示的なケース内では、視覚オブジェクト130-1に対応する外部オブジェクトが、車両であることを識別することに基づいて、電子装置101は、バウンディングボックスの指定された色を、車両に対応する指定された色として設定(set)できる。実施形態は、これに限定されず、電子装置101は、バウンディングボックスに隣接するか、又はバウンディングボックス上に重畳されたテキスト(例えば、「車両」)を表示することによって、バウンディングボックス内に含まれる第1の画像120-1の領域140-1で外部オブジェクトを認識した結果を表示することができる。
【0025】
一実施形態によれば、電子装置101は、第1の画像120-1内で外部オブジェクトに関連する位置(例えば、領域140-1)を識別することに基づいて、第1の画像120-1とは異なる他の画像(例えば、第kの画像120-k及び/又は第Nの画像120-Nから、外部オブジェクトに関連する1つ又はそれ以上の位置を識別することができる。一実施形態では、電子装置101は、外部オブジェクトに関連する第1の画像120-1内の位置(例えば、領域140-1の位置)を選択するためのユーザ入力に基づいて、第1の画像120-1とは異なる他の画像から外部オブジェクトに関連する位置を識別することができる。電子装置101は、第1の画像120-1に対応するユーザ入力と区別される他のユーザ入力を必要とせず、第1の画像120-1とは異なる他の画像から、外部オブジェクトに関連する位置を識別することができる。第1の画像120-1へのユーザ入力に基づいて、ビデオ120内の他の画像における外部オブジェクトの位置を識別する電子装置101の動作は、
図3及び/又は
図6を参照して説明する。
【0026】
一実施形態によれば、電子装置101は、第1の画像120-1に関連する入力によって識別された領域140-1に基づいて、ビデオ120内における第1の画像120-1の第1のタイミングの後の第2のタイミングの第2の画像で、領域140-1に関連する外部オブジェクト(
図1aの例示的なケース内で、車両)に関連する第2の位置を識別することができる。第2の位置を識別するために、電子装置101は、第1の画像120-1及び第2の画像のそれぞれの特徴情報(例えば、1つ又はそれ以上の特徴点)を比較することができる。第2の位置を識別するために、電子装置101は、オブジェクトを認識するためにトレーニングされたモデルを使用することができる。特徴情報に基づいて、第2の位置を識別する電子装置101の動作について、
図4を参照して説明する。
【0027】
実施形態を限定しない例では、ビデオ120に含まれる複数の画像(画像フレーム)のうち第1の画像120-1とは異なる他の画像の全ての特徴情報を抽出するか、他の画像の全てをモデルに入力することは、演算量及び/又は消費電力の増加を引き起こす可能性がある。これは、本発明の一実施形態による電子装置101に多くの負荷を与えることになり、したがって、非常に可変的で予測不可能な状況が頻繁に発生する道路環境、特に、市内環境(urban environment)で走行すべき車両の運転者の走行支援(driving assistance)のためのシステム又は車両の自律走行システムを効率的に動作させることに悪影響を及ぼす可能性がある。一実施形態によれば、電子装置101は、ユーザによって選択された第1の画像120-1の領域140-1に基づいて、他の画像から外部オブジェクトを認識しながら、外部オブジェクトを認識するための計算方法(computing method)を変更することができる。電子装置101は、ビデオ120内で他の画像のそれぞれのタイミングに基づいて、異なる計算方法のうち、他の画像のそれぞれに適用される計算方法を変更することができる。前記計算方法は、画像の特徴点に基づいて、外部オブジェクトを認識するための第1のタイプの計算方法と、異なる画像から識別された特定の外部オブジェクトの位置の補間(interpolation)に関連する第2のタイプの計算方法とを含むことができる。
【0028】
図1aを参照すると、外部オブジェクトに関連する第1の画像120-1内の位置(例えば、領域140-1)を示す入力に基づいて、電子装置101は、第1の画像120-1の第1のタイミングの後、N番目(N
th)に取得された画像(又はN番目(N
th)のタイミングに位置する画像)である第Nの画像120-N内で、外部オブジェクトに関連する位置(例えば、領域140-N)を識別することができる。例えば、電子装置101は、第1の画像120-1の領域140-1に含まれる1つ又はそれ以上の特徴点と、第Nの画像120-Nの特徴点とを比較して、第Nの画像120-N内で、外部オブジェクトに関連する領域140-Nを識別することができる。画面110に第Nの画像120-Nを表示する場合、電子装置101は、第Nの画像120-Nと重畳して、領域140-Nに対応するバウンディングボックスの形態を有する視覚オブジェクトを表示することができる。例えば、電子装置101は、領域140-Nの頂点AN、BN、CN、DNを連結する線の形態を有するバウンディングボックスを表示することができる。
【0029】
図1aを参照すると、第1の画像120-1の領域140-1内の特徴点に基づいて、第Nの画像120-Nの領域140-Nを識別した状態で、電子装置101は、第1の画像120-1及び第Nの画像120-Nによって区分けられたビデオ120の時間区間に含まれる1つ又はそれ以上の画像において、領域140-1、140-Nに対応する外部オブジェクトに関連する位置を識別することができる。
図1aを参照すると、第1の画像120-1と第Nの画像120-Nとによって区分けられたビデオ120の時間区間は、第1の画像120-1の第1のタイミングを始点(beginning timing)としても、第Nの画像120-Nの第2のタイミングを終点(end timing)としてもよい。一実施形態では、電子装置101は、前記時間区間に含まれる第kの画像120-k(ここで、「k」は、1より大きく、Nより小さい自然数)に関連する領域140-kを、第1の画像120-1の領域140-1及び第Nの画像120-Nの領域140-Nに対する補間に基づいて識別することができる。
【0030】
一実施形態では、領域140-1、140-Nの補間に基づいて、領域140-kを識別する状態内で、電子装置101は、領域140-kの頂点Ak、Bk、Ck、Dkの第kの画像120-k内の座標を、領域120-1の頂点A1、B1、C1、D1の座標及び領域140-kの頂点AN、BN、CN、DNの座標に基づいて決定することができる。例えば、領域140-kの頂点Akの座標は、領域140-1の頂点A1と、領域140-Nの頂点ANとを結ぶ線内内分点(internally dividing point)の座標であってもよい。この内分点によって線が分割される割合は、第kの画像120-kが時間区間内に有するタイミングに関連し得る。領域140-1、140-Nの頂点の補間に基づいて、第kの画像120-kの領域140-k及び/又は領域140-kの頂点を識別する電子装置101の動作の一例を、
図5a~
図5bを参照して説明する。
【0031】
図1aを参照すると、第1の画像120-1、第kの画像120-k、及び第Nの画像120-Nで外部オブジェクトに関連する領域140-1、140-k、140-Nを認識する電子装置101の動作について説明したが、実施形態は、これに限定されるものではない。例えば、電子装置101は、第kの画像を含む、第1の画像と第Nの画像との間の画像の全てについて、領域140-1、140-Nの補間に基づいて、外部オブジェクトに関連する領域を識別することができる。図示されていないが、ビデオ120内で第Nの画像の後の他の画像に対して、電子装置101は、特徴点及び/又は補間に基づいて、外部オブジェクトに関連する領域を識別することができる。一実施形態によれば、電子装置101は、ビデオ120に含まれる複数の画像から外部オブジェクトに関連する領域を識別した結果を、ビデオ120に対応するラベリング情報として格納することができる。
【0032】
一実施形態によれば、電子装置101は、画面110内で、外部オブジェクトに関連する領域を、ビデオ120のための複数の画像のそれぞれから識別した結果を視覚化することができる。電子装置101は、
図7を参照して後述するように、ユーザから前記領域を識別した結果を調整(又はキャリブレーション)するための入力を識別することができる。
【0033】
図1bを参照すると、ビデオ120の特定の画像(例えば、第1の画像120-1)内で外部オブジェクトの選択を示す入力を識別する電子装置101の例示的な動作が説明される。
図1bを参照すると、一実施形態による電子装置101は、第1の画像120-1に対応するラベリングデータを取得するための画面(例えば、画面150-1、150-2)を表示することができる。電子装置101は、ビデオ120に含まれる複数の画像のうち、第1の画像120-1の選択を示す入力に基づいて、
図1bの画面150-1、150-2のいずれかを表示することができる。
【0034】
図1bを参照すると、ビデオ120の第1の画像120-1に対応する画面150-1に基づいて、電子装置101は、矩形の領域160-1の選択を示す入力を識別することができる。領域160-1の選択を示す入力は、電子装置101に接続されたマウスに基づいて識別された、領域160-1の頂点A1から頂点A3に向かうドラッグ入力を含むことができる。実施形態は、これに限定されず、電子装置101は、タッチスクリーン上で行われたドラッグジェスチャに基づいて、領域160-1の選択を示す入力を識別することができる。前記入力を識別した電子装置101は、領域160-1を介してキャプチャされた被写体のクラス(又はカテゴリ)を取得することができる。例えば、電子装置101は、前記クラスを表すテキストを受信するためのポップアップウィンドウを表示することができる。このポップアップウィンドウを介して、ユーザから受信したテキストに基づいて、電子装置101は、領域160-1にキャプチャされた被写体(例えば、視覚オブジェクト130-1)のクラス(又はカテゴリ)を識別することができる。電子装置101は、領域160-1に関する情報(例えば、頂点A1、A2、A3、A4の座標、クラス及び/又はカテゴリ)を、第1の画像120-1に対応するラベリングデータとして格納することができる。
【0035】
一実施形態では、ラベリングデータを取得するために、第1の画像120-1に形成される領域の形態は、矩形(例えば、
図1bの領域160-1)に限定されない。
図1bの画面150-2を参照すると、ビデオ120の第1の画像120-1から多角形の領域160-2の選択を示す入力を識別することができる。領域160-2の選択を示す入力は、多角形の頂点B1、B2、B3、B4、B5、B6、B7、B8、B9、B10、B11、B12、B13、B14を順次にクリック及び/又はタッチするジェスチャによって識別することができる。前記入力を識別した電子装置101は、
図1bの画面150-2のように、頂点の連結によって第1の画像120-1内に形成された多角形の領域160-2を表示することができる。電子装置101は、領域160-2の選択を示す入力と共に、領域160-2によって区分けられる第1の画像120-1内の視覚オブジェクト130-1のクラス(又はカテゴリ)を設定するための入力を識別することができる。電子装置101は、領域160-2の頂点B1、B2、B3、B4、B5、B6、B7、B8、B9、B10、B11、B12、B13、B14の座標、及び前記クラス(又はカテゴリ)の組み合わせを、第1の画像120-1のラベリングデータとして格納することができる。
【0036】
前述のように、一実施形態によれば、電子装置101は、ビデオ120に含まれる複数の画像のうち、特定の画像(例えば、第1の画像120-1)内で外部オブジェクトの選択を示す入力に基づいて、特定の画像と区別される他の画像で、前記外部オブジェクトを認識することができる。電子装置101が外部オブジェクトを認識することは、特徴点及び/又はモデルに基づいて、比較的多くの計算量を必要とする第1のタイプの計算方法及び補間に基づいて、比較的少ない計算量を必要とする第2のタイプの計算方法の組み合わせに基づいて行うことができる。例えば、電子装置101は、ビデオ120内の複数の画像全体で外部オブジェクトを認識する動作を、特定の画像とは異なる他の画像において外部オブジェクトを認識することなく実行することができる。電子装置101は、ビデオ120内の異なる画像に対して、異なる計算量を必要とする計算方法を交互に(alternately)適用するので、ビデオ120に対応するラベリング情報を取得するのに必要な計算量が減少することがある。ラベリング情報を取得するのに必要な計算量が減少されるので、電子装置101は、より迅速にビデオ120に対応するラベリング情報を取得することができる。
【0037】
以下では、
図1a~
図1bを参照して説明した動作を実行するための電子装置101の例示的な構造について、
図2を参照して説明する。
【0038】
図2は、一実施形態による、電子装置101のブロック図の一例を示す。
図2の電子装置101は、
図1a~
図1bの電子装置101を含むことができる。
図2の電子装置101は、プロセッサ210、メモリ220、又はディスプレイ230のうち少なくとも1つを含むことができる。プロセッサ210、メモリ220、及びディスプレイ230は、通信バス(a communication bus)202などの電子部品(electronical component)によって互いに電気的及び/又は動作的に接続することができる(electronically and/or operably coupled with each other)。以下では、ハードウェアが動作的に結合されていることは、ハードウェアのうち第1のハードウェアによって第2のハードウェアが制御されるように、ハードウェア間の直接的な接続、又は間接的な接続が有線又は無線で確立されることを意味することができる。異なるブロックに基づいて示されているが、実施形態は、これに限定されず、
図2のハードウェアの一部(例えば、プロセッサ210及びメモリ220の少なくとも一部)は、SoC(system on a chip)などの単一の集積回路(single integrated circuit)に含まれてもよい。電子装置101に含まれるハードウェアのタイプ及び/又は数は、
図2に示すものに限定されない。例えば、電子装置101は、
図2に示すハードウェア構成要素の一部のみを含むことができる。
【0039】
一実施形態によれば、電子装置101のプロセッサ210は、1つ又はそれ以上の命令に基づいて、データを処理するためのハードウェアを含み得る。データを処理するためのハードウェアは、例えば、ALU(arithmetic and logic unit)、FPU(floating point unit)、FPGA(field programmable gate array)、CPU(central processing unit)、及び/又はAP(application processor)を含むことができる。プロセッサ210の数は、1つ以上であり得る。例えば、プロセッサ210は、デュアルコア(dual core)、クアッドコア(quad core)、又はヘキサコア(hexa core)などのマルチコアプロセッサの構造を有することができる。
【0040】
一実施形態によれば、電子装置101のメモリ220は、プロセッサ210に入力及び/又は出力されるデータ及び/又は命令を格納するためのハードウェア構成要素を含むことができる。メモリ220は、例えば、RAM(random-access memory)などの揮発性メモリ(volatile memory)及び/又はROM(read-only memory)などの不揮発性メモリ(non-volatile memory)を含むことができる。揮発性メモリは、例えば、DRAM(dynamic RAM)、SRAM(static RAM)、キャッシュRAM(Cache RAM)、PSRAM(pseudo SRAM)のうち少なくとも1つを含むことができる。不揮発性メモリは、例えば、PROM(programmable ROM)、EPROM(erasable PROM)、EEPROM(electrically erasable PROM)、フラッシュメモリ、ハードディスク、コンパクトディスク、SSD(solid state drive)、eMMC(embedded multimedia card)のうち少なくとも1つを含むことができる。
【0041】
一実施形態によれば、電子装置101のメモリ220内で、プロセッサ210がデータに対して実行する演算、及び/又は動作を示す1つ又はそれ以上の命令(又はンストラクション)を格納することができる。1つ又はそれ以上の命令の集合は、ファームウェア、オペレーティングシステム、プロセス、ルーチン、サブルーチン、及び/又はアプリケーションを含み得る。例えば、電子装置101及び/又はプロセッサ210は、オペレーティングシステム、ファームウェア、ドライバ、及び/又はアプリケーションの形態で配布された複数の命令の集合(set of a plurality of instructions)が実行されるときに、
図3及び/又は
図6の動作のうち少なくとも1つを実行することができる。以下では、アプリケーションが電子装置101にインストールされたことは、アプリケーションの形態で提供された1つ又はそれ以上の命令が、電子装置101のメモリ220内に格納されていることで、1つ又はそれ以上のアプリケーションが電子装置101のプロセッサ210によって実行可能な(executable)フォーマット(例えば、電子装置101のオペレーティングシステムによって指定された拡張子を有するファイル)として記憶されていることを意味することができる。
【0042】
一実施形態によれば、電子装置101のディスプレイ230は、ユーザに視覚化された情報(例えば、
図1aの画面)を出力することができる。例えば、ディスプレイ230は、GPU(graphic processing unit)などのコントローラによって制御され、ユーザに視覚化された情報(visualized information)を出力することができる。ディスプレイ230は、LCD(liquid crystal display)、PDP(plasma display panel)、及び/又は1つ又はそれ以上のLED(light emitting diode)を含むことができる。LEDは、OLED(organic LED)を含むことができる。ディスプレイ230は、FPD(flat panel display)及び/又は電子ペーパー(electronic paper)を含むことができる。実施形態は、これに限定されず、ディスプレイ230は、少なくとも部分的に湾曲した形態を有してもよく、変形可能な(deformable)形態を有してもよい。
【0043】
一実施形態によれば、電子装置101は、メモリ220に記憶されたビデオ120から、ラベリング情報240を取得することができる。
図2のビデオ120は、
図1a~
図1bのビデオ120を含むことができる。例えば、電子装置101は、ビデオ120から、ビデオ120を再生するために、ビデオ120内に符号化又は圧縮された複数の画像(例えば、
図1a~
図1bの第1の画像120-1、第kの画像120-k、及び/又は第Nの画像120-N)を識別することができる。電子装置101によってビデオ120から取得されたラベリング情報240は、複数の画像のそれぞれに関連する外部オブジェクトの位置を含むことができる。一実施形態によれば、電子装置101は、複数の画像全体へのユーザ入力(例えば、
図1bを参照して説明した入力)なしで、複数(several)の画像に関連する外部オブジェクトの位置に基づいて、複数の画像全体のラベリング情報240を取得することができる。
【0044】
一実施形態によれば、電子装置101は、ビデオ120に含まれる画像のシーケンス内で互いに離隔された2つの画像に対応する位置を補間して、2つの画像間の他の画像に対応する位置を獲得することができる。互いに離隔された2つの画像に関連する外部オブジェクトの位置は、電子装置101のユーザ及び/又は特徴点の分析のために、電子装置101に含まれるモデルによって識別することができる。互いに離隔された2つの画像間の時間区間の長さが、比較的長い場合(例えば、指定された閾値長を超える場合)、電子装置101は、補間によって取得された位置の補正(calibration)を、時間区間内の1つ又はそれ以上の画像の特徴点に基づいて実行することができる。一実施形態によれば、電子装置101によってメモリ220に格納されたラベリング情報240は、各画像内の外部オブジェクトに関連する位置を示すデータを含むことができる。このデータは、
図1aの領域140-1、140-k、140-Nの頂点のうち少なくとも1つの座標、幅、高さ、アスペクト比、又はサイズのうち少なくとも1つを含み得る。
【0045】
一実施形態によれば、電子装置101によって取得されたラベリング情報240は、ビデオ120にキャプチャされた外部オブジェクトの動きを表すことができる。例えば、ラベリング情報240は、ビデオ120に含まれる複数の画像が順次再生される時間区間内で、複数の画像のそれぞれにおける外部オブジェクトに関連付けられた領域の位置を含むことができる。電子装置101は、ラベリング情報240に基づいて、ビデオ120の複数の画像のそれぞれにおける外部オブジェクトを認識した結果を識別することができる。その結果は、特定の画像内で外部オブジェクトに関連する領域の位置を含み得る。電子装置101は、複数の画像及びラベリング情報240を用いて、外部オブジェクトを認識するためのモデル(又はニューラルネットワーク)をチューニング(又はトレーニング)することができる。モデルの性能を改善するために、比較的多くの画像に基づくモデルのチューニングが必要とされることがある。一実施形態によれば、電子装置101は、ビデオ120の特定の画像に関連する外部オブジェクトに関する情報(例えば、特定の画像内で外部オブジェクトに関連する領域を示す情報)を用いて、ビデオ120に含まれる複数の画像全体のラベリング情報240を生成することができる。電子装置101は、複数の画像全体のラベリング情報240を生成するので、電子装置101は、モデルのチューニングに必要な数の画像をより迅速に取得することができる。
【0046】
以下では、
図3を参照して、
図2の電子装置101によって実行される動作の一例について説明する。
【0047】
図3は、一実施形態による、電子装置によって実行される動作のフローチャートの一例を示す。
図1a~
図1b、
図2の電子装置101及び/又はプロセッサ210は、
図3を参照して説明した動作を実行することができる。
【0048】
図3を参照すると、動作310内で、一実施形態による、電子装置のプロセッサは、ビデオ用の複数の画像を識別することができる。動作310のビデオは、
図1a~
図2のビデオ120を含み得る。プロセッサは、MPEG(motion picture experts group)に関連するフォーマットを有するファイルから、ビデオを再生するための複数の画像を識別することができる。前記ファイルは、メモリ(例えば、
図2のメモリ220)に格納されてもよく、又は電子装置に接続されたネットワーク(例えば、インターネット)からストリーミングに基づいて受信されてもよい。プロセッサは、動作310に基づいて、複数の画像及び複数の画像が再生される順序を識別することができる。
【0049】
図3を参照すると、動作320内で、一実施形態による、電子装置のプロセッサは、複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別することができる。プロセッサは、第1の画像をディスプレイ(例えば、
図2のディスプレイ230)に表示した状態で、第1の位置の選択を示す第1の入力(例えば、
図1bを参照して説明した入力)を識別することができる。動作320の第1の画像は、
図1aの第1の画像120-1を含むことができる。例えば、
図1aの画面110は、第1の画像120-1の領域140-1の選択を示す入力を識別したプロセッサによって表示されてもよい。
図1aの領域140-1の選択を示す入力に基づいて、プロセッサは、第1の画像140-1内で、外部オブジェクトに関連する第1の位置(例えば、領域140-1の位置)を識別することができる。一実施形態では、動作320に基づいてプロセッサに識別された第1の位置は、第1の画像内で外部オブジェクトに関連する視覚オブジェクト(例えば、
図1aの視覚オブジェクト130-1)に関連する少なくとも1つの座標を含むことができる。少なくとも1つの座標は、
図1aの画像120-1内で頂点A1、B1、C1、D1によって区分けられた領域140-1に含まれてもよい。
【0050】
図3を参照すると、動作330内で、一実施形態による、電子装置のプロセッサは、動作320の第1の位置に基づいて、複数の画像のうち第1のタイミングの後の第2のタイミングの第2の画像内で、外部オブジェクトに関連する第2の位置を識別することができる。動作320の第1の位置を識別するための第1の入力を識別した状態で、プロセッサは、第1の入力に基づいて、外部オブジェクトを認識するための第1のタイプの計算を実行して、第1のタイミングから始まる時間区間の後の第2の画像内で、第2の位置を識別することができる。動作310のビデオを再生するための複数の画像のシーケンス内で、第1のタイミングの第1の画像と第2のタイミングの第2の画像との間に、1つ又はそれ以上の第3の画像を配置することができる。
【0051】
一実施形態では、動作330の第2の位置を識別するために、プロセッサによって実行される、第1のタイプの計算は、第1の画像及び第2の画像の特徴点に関連され得る。例えば、プロセッサは、動作320によって識別された第1の画像の第1の位置に関連する少なくとも1つの特徴点を、第1の画像から抽出することができる。プロセッサは、動作330の第2の画像から1つ又はそれ以上の特徴点を抽出することができる。プロセッサは、第1の画像から抽出された少なくとも1つの特徴点と、第2の画像から抽出された1つ又はそれ以上の特徴点とを比較することができる。この比較に基づいて、プロセッサは、第1の画像内で第1の位置を含む領域(例えば、
図1aの領域140-1)と同様の第2の画像の領域(例えば、
図1aの領域140-N)を識別することができる。動作330の第2の位置は、プロセッサによって識別された第2の画像の領域内に含まれてもよい。
【0052】
実施形態は、これに限定されず、動作330の第2の位置を識別するためにプロセッサによって実行される、第1のタイプの計算は、外部オブジェクトを認識するためにトレーニングされたモデルに関連され得る。例えば、プロセッサは、第1の画像の第1の位置に関連する外部オブジェクトに関するデータを、第2の画像と共に、モデルに入力することができる。前記データと、第2の画像が入力されたモデルから出力されたデータとに基づいて、プロセッサは、第2の画像内で外部オブジェクトに関連する第2の位置を識別することができる。
【0053】
図3を参照すると、動作340内で、一実施形態による、電子装置のプロセッサは、第1の位置及び第2の位置に基づいて、第1のタイミングと第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得することができる。例えば、プロセッサは、動作320の第1の位置及び動作330の第2の位置を補間するための第2のタイプの計算を実行して、1つ又はそれ以上の第3の位置を取得することができる。プロセッサによって取得された1つ又はそれ以上の第3の位置は、第1の位置と第2の位置とを連結する線上に配置されてもよい。この線上の1つ又はそれ以上の第3の位置は、1つ又はそれ以上の第3の画像のタイミングと関連付けられてもよい。プロセッサは、特徴点を抽出するために、動作330によって実行される計算量より少ない計算量に基づいて、動作340の1つ又はそれ以上の第3の位置を取得することができる。
【0054】
図3を参照すると、動作350内で、一実施形態による、電子装置のプロセッサは、ビデオの時間区間内で識別された外部オブジェクトの動きを示すラベリング情報として、第1の位置、1つ又はそれ以上の第3の位置及び第2の位置を格納することができる。
図2のラベリング情報240は、動作350のラベリング情報を含むことができる。一実施形態によれば、プロセッサは、ラベリング情報内に、複数の画像のうち、動作320から動作340によって識別された位置に対応する画像を表すパラメータを記憶することができる。例えば、プロセッサによって記憶されたラベリング情報は、第1の位置が第1の画像に対応することを示すパラメータ(例えば、第1の位置を示すデータと連動されたタイムスタンプ)を含み得る。例えば、プロセッサによって記憶されたラベリング情報は、第2の位置及び第2の画像のマッピングを表すパラメータを含むことができる。例えば、プロセッサによって記憶されたラベリング情報は、1つ又はそれ以上の第3の位置及び1つ又はそれ以上の第3の画像の関係を表すパラメータを含むことができる。
【0055】
前述のように、一実施形態による、電子装置のプロセッサは、ビデオに含まれる複数の画像に対して、ラベリング情報を取得するための異なるタイプの計算を実行することができる。プロセッサによって取得されたラベリング情報は、複数の画像に基づくモデルのトレーニングに使用することができる。一実施形態によれば、電子装置のプロセッサは、ラベリング情報の精度を改善するために、ラベリング情報に対するユーザのフィードバックを受信するための画面を表示することができる。例えば、プロセッサは、ディスプレイ(例えば、
図2のディスプレイ230)に、第1の画像、1つ又はそれ以上の第3の画像、及び第2の画像のいずれかを表示することができる。プロセッサは、動作340の時間区間に含まれるビデオの少なくとも一部の再生を示す第2の入力に応答して、ディスプレイに第1の画像、1つ又はそれ以上の第3の画像、及び第2の画像のいずれかを表示することができる。プロセッサは、ディスプレイに表示された画像の上に重畳され、ラベリング情報に含まれる第1の位置、第3の位置、又は第2の位置のいずれかに対応する視覚オブジェクトを表示することができる。視覚オブジェクトは、バウンディングボックスの形態をとることができる。視覚オブジェクトに基づいて、電子装置のプロセッサは、ラベリング情報を少なくとも部分的に調整するための入力を受信することができる。ラベリング情報を少なくとも部分的に調整するための入力は、
図1bを参照して説明した、領域(例えば、領域160-1、160-2)の選択を示す入力と同様に受信することができる。
【0056】
以下では、
図4、
図5a~
図5bを参照して、一実施形態による、電子装置によって実行される
図3の動作330、340の一例を説明する。
【0057】
図4は、一実施形態による、電子装置によってビデオに含まれる画像からオブジェクトを認識する動作の一例を示す。
図4を参照して説明される電子装置の動作は、
図1a~
図1b、
図2の電子装置101及び/又はプロセッサ210によって実行することができる。
図4を参照して説明された電子装置の動作は、
図3の動作のうち少なくとも1つ(例えば、動作330)に関連し得る。
【0058】
図4を参照すると、一実施形態によれば、電子装置は、ビデオ120に含まれる複数の画像のシーケンス内で、互いに離隔された第1の画像120-1及び第Nの画像120-Nと共通に関連する外部オブジェクト(例えば、車両)を識別することができる。電子装置は、
図3の動作320に基づいて、第1の画像120-1及び第1の画像120-1内で外部オブジェクトに対応する視覚オブジェクト130-1を識別することができる。一実施形態では、電子装置は、領域140-1の選択を示す入力に基づいて、第1の画像120-1内で外部オブジェクトに関連する視覚オブジェクト130-1の位置を識別することができる。領域140-1の選択を示す入力は、
図1bの入力を含んでもよい。視覚オブジェクト130-1の位置は、
図3の第1の位置に対応し得る。
【0059】
図4を参照すると、一実施形態によれば、電子装置は、第1の画像120-1の領域140-1を識別することに基づいて、領域140-1に含まれる特徴点(例えば、F11、F12、F13、F14、F15)を識別することができる。電子装置は、第1の画像120-1に含まれるピクセル間の色及び/又は明るさの変化に基づいて、特徴点(例えば、F11、F12、F13、F14、F15)を識別することができる。例えば、領域140-1から抽出された特徴点は、色及び/又は明るさが比較的急激に変化するピクセルを表すことができる。例えば、前記特徴点は、領域140-1に含まれるピクセルによって表されるエッジ、コーナ、及び/又はスケルトンを含み得る。
【0060】
さらに、一実施形態によれば、電子装置は、ビデオ120を構成する画像フレーム内に存在するピクセル(Pixel)の軌跡を推定するピクセル軌道推定(Pixel Trajectory Estimation)方法を介して、領域140-1に含まれる外部オブジェクトの動き軌跡を追跡することにより、第1の画像120-1の領域140-1に存在する外部オブジェクトが、第1の画像120-1の後(t時間経過後)に位置する(取得された)画像内に存在するかどうかを判断し、存在するオブジェクトの位置を予測することができる。
【0061】
一実施形態によれば、電子装置は、ビデオ120の画像のシーケンス内で、第1の画像120-1の第1のタイミングの後の第2のタイミングの第Nの画像120-Nから特徴点を抽出することができる。電子装置は、第1の画像120-1の領域140-1から抽出された特徴点F11、F12、F13、F14、F15と、第Nの画像120-Nから抽出された特徴点とを比較して、第Nの画像120-N内で領域140-1と同様の色及び/又は明るさを有する領域140-Nを識別することができる。例えば、電子装置は、領域140-1内の特徴点F11、F12、F13、F14、F15に類似した特徴点F21、F22、F23、F24、F25、F26を、第Nの画像120-Nから識別することができる。第Nの画像120-Nから特徴点F21、F22、F23、F24、F25、F26を識別することに基づいて、電子装置は、特徴点F21、F22、F23、F24、F25、F26を含む領域140-N及び/又は領域140-Nに含まれる視覚オブジェクト130-Nを、第1の画像120-1の領域140-1を通して識別された外部オブジェクトに関連する視覚オブジェクトとして決定できる。
【0062】
電子装置が外部オブジェクトに対応する第1の位置を含む第1の画像120-1の領域140-1に含まれる特徴点F11、F12、F13、F14、F15と、第Nの画像120-Nに含まれる1つ又はそれ以上の特徴点とを比較して、第Nの画像120-N内で外部オブジェクトに関連する第2の位置を識別する一実施形態を説明したが、実施形態は、これに限定されない。一実施形態によれば、電子装置は、外部オブジェクトを認識するためのモデルに、第1の画像120-1及び第Nの画像120-Nを入力して、第1の位置及び第2の位置を識別することができる。
【0063】
前述のように、一実施形態によれば、電子装置は、ビデオ120の複数の画像で、ユーザ入力(例えば、
図1bを参照して説明した入力)によって識別される領域140-1に対応する第1の画像120-1の第1のタイミングから、指定された時間区間に沿って離隔された1つ又はそれ以上のタイミングに対応する画像(例えば、第Nの画像120-N)を抽出することができる。電子装置は、抽出された画像の特徴点を、第1の画像120-1の領域140-1内の特徴点F11、F12、F13、F14、F15と比較して、抽出された画像のそれぞれで外部オブジェクト(例えば、領域140-1に関連する外部オブジェクト)に関連する位置を識別することができる。電子装置によって識別された位置は、ビデオ120に対応するラベリング情報として格納することができる。一実施形態によれば、電子装置は、特徴点に基づいて、外部オブジェクトを認識するための第1のタイプの計算を、第1の画像120-1の第1のタイミングから前記時間区間ごとに繰り返し実行することができる。第1のタイプの計算を繰り返し実行することによって、電子装置は、ラベリング情報を取得するために必要なユーザ入力(例えば、
図1bを参照して説明した入力)を減らすことができる。第1のタイプの計算によって識別された位置に対する線形補間に基づいて、電子装置は、ビデオ120に含まれる複数の画像全体のラベリング情報を取得することができる。以下では、
図5a~
図5bを参照して、線形補間に基づいて、ラベリング情報を取得する電子装置の動作の一例について説明する。
【0064】
図5a~
図5bは、ビデオに含まれる2つの画像のラベリング情報に基づいて、他の画像のラベリング情報を取得する電子装置の動作の一例を示す。
図5a~
図5bを参照して説明した電子装置の動作は、
図1a~
図1b、
図2の電子装置101及び/又はプロセッサ210によって実行することができる。
図5a~
図5bを参照して説明された電子装置の動作は、
図3の動作のうち少なくとも1つ(例えば、動作340)に関連し得る。
【0065】
図5aを参照すると、
図4を参照して説明した動作を実行した電子装置によって識別され、第1の画像120-1及び第Nの画像120-Nのそれぞれに対応する領域140-1、140-Nが示されている。一実施形態によれば、第1の画像120-1に含まれる1つ又はそれ以上の特徴点と、第Nの画像120-Nに含まれる1つ又はそれ以上の特徴点とを比較して、第1の画像120-1及び第Nの画像120-Nの全てに関連する外部オブジェクトに対応する領域140-1、140-Nを識別することができる。
【0066】
図5aを参照すると、説明の便宜のために、第1の画像120-1及び第Nの画像120-Nのそれぞれから識別された領域140-1、140-Nの位置が、座標平面510内に重畳表示される。座標平面510の頂点は、第1の画像120-1及び第Nの画像120-Nの頂点のそれぞれにマッチングされてもよい。一実施形態によれば、電子装置は、第1の画像120-1と第Nの画像120-Nとの間の画像(例えば、第kの画像120-k)のラベリング情報を、領域140-1、140-Nの位置に基づいて取得することができる。例えば、電子装置によって取得されたラベリング情報は、第1の画像120-1と第Nの画像120-Nとの間の第kの画像120-kに対応し、外部オブジェクトに関連する位置を含むことができる。
【0067】
図5aを参照すると、領域140-1、140-Nの位置の補間に基づいて取得された第kの画像120-k内の領域520が示されている。一実施形態によれば、電子装置は、領域520の頂点AK、BK、CK、DKの座標を、数1に基づいて取得することができる。
【0068】
【0069】
数1を参照すると、領域520の頂点AKのx座標(x
AK)は、第1の画像120-1の領域140-1及び第Nの画像120-Nの領域140-Nの頂点A1、ANのx座標(x
A1、x
AN)をN:kに分割する値を有してもよい。同様に、領域520の頂点AKのy座標(y
AK)は、第1の画像120-1の領域140-1及び第Nの画像120-Nの領域140-Nの頂点A1、ANのy座標(y
A1、y
AN)をN:kに分割する値を有してもよい。例えば、領域520の頂点AK、BK、CK、DKのそれぞれは、領域140-1の頂点A1、B1、C1、D1及び領域140-Nの頂点AN、BN、CN、DNのそれぞれを、N:kに分割する内分点に対応することができる。
図5aを参照すると、領域520の頂点AK、BK、CK、DKのそれぞれは、領域140-1の頂点A1、B1、C1、D1のそれぞれにおいて、領域140-Nの頂点AN、BN、CN、DNのそれぞれを連結する線上に配置することができる。数1のNは、第1の画像120-1と第Nの画像120-Nとの間の時間区間の長さを、数1のkは、第kの画像120-kに対応するタイミングの前記時間区間内の位置を示すことができる。
【0070】
図5bを参照すると、第kの画像120-kから領域520を識別する電子装置101の動作が例示的に説明される。電子装置101は、数1に基づいて、第1の画像120-1と第Nの画像120-Nとの間の第kの画像120-kの領域520の頂点AK 、BK、CK、DKの座標を取得することができる。
図5bの領域520の頂点AKのx座標は、第1の画像120-1から識別された領域の頂点A1のx座標及び、第Nの画像120-Nの頂点ANのx座標をN:kに分割する値を有してもよい。同様に、領域520の頂点AKのy座標は、第1の画像120-1から識別された領域の頂点A1のy座標及び、第Nの画像120-Nの頂点ANのy座標をN:kに分割する値を有してもよい。領域520の他の頂点BK、CK、DKのx座標も、第1の画像120-1から識別された領域の頂点B1、C1、D1のx座標及び、第Nの画像120-Nから識別された領域の頂点BN、CN、DNのx座標をN:kに分割する値を有することができる。同様に、領域520の他の頂点BK、CK、DKのy座標も、第1の画像120-1から識別された領域の頂点B1、C1、D1のy座標、及び第Nの画像120-Nから識別された領域の頂点BN、CN、DNのy座標をN:kに分割する値を有することができる。
【0071】
一実施形態によれば、電子装置は、ビデオ120に対応するラベリング情報として、領域140-1、520、140-Nの位置及び/又はサイズを示すデータを格納することができる。例えば、電子装置は、ラベリング情報内に、第1の画像120-1に対応する領域140-1を示す情報として、頂点A1、B1、C1、D1に関するデータを格納することができる。電子装置は、ラベリング情報内に、第kの画像120-kに対応する領域140-kを示す情報として、頂点AK、BK、CK、DKの座標を表すデータを格納することができる。電子装置は、ラベリング情報内に、第Nの画像120-Nに対応する領域140-Nを示す情報として、頂点AN、BN、CN、DNのうち少なくとも1つに関連するパラメータを記憶することができる。電子装置は、ラベリング情報内で、領域140-Nの頂点AN、BN、CN、DNのうち少なくとも1つに関連するパラメータと共に、これらのパラメータが、第Nの画像120-Nに対応することを表すパラメータをさらに記憶することができる。
【0072】
前述のように、一実施形態によれば、電子装置は、第1のタイミングにおける第1の画像120-1内の領域140-1の第1の位置を示す第1の座標、及び、第2のタイミングにおける第Nの画像120-N内の領域140-Nの第2の位置を示す第2の座標を、第1のタイミングと第2のタイミングとの間の長さ(例えば、数1のN)を用いて補間することによって、第1の画像120-1と第Nの画像120-Nとの間の第kの画像120-k内の領域520の第3の位置を示す第3の座標を取得することができる。電子装置は、第1の座標及び第2の座標を、第kの画像120-kのタイミング(例えば、数1のk)に基づいて補間することによって、第3の位置を取得することができる。例えば、電子装置は、第1の位置、第2の位置及び第kの画像のタイミングに基づいて、第3の位置を取得するための第2のタイプの計算(例えば、数1を参照して説明された補間)を実行することができる。
【0073】
以下では、前述の図面を参照して説明した電子装置の例示的な動作について、
図6を参照して説明する。
【0074】
図6は、一実施形態による、電子装置によって実行される動作のフローチャートの一例を示す。
図6を参照して説明される電子装置の動作は、
図1a~
図1b、
図2の電子装置101及び/又はプロセッサ210によって実行することができる。
図6を参照して説明した電子装置の動作は、
図3を参照して説明した電子装置の動作に関連し得る。
【0075】
図6を参照すると、動作610内で、一実施形態による、電子装置のプロセッサは、ビデオを再生するための複数の画像を識別することができる。プロセッサは、
図3の動作310と同様に
図6の動作610を実行することができる。動作610のビデオは、
図1a~
図5aのビデオ120を含み得る。
【0076】
図6を参照すると、動作620内で、一実施形態による、電子装置のプロセッサは、複数の画像のうち第aの画像に対応するラベリングデータを取得することができる。動作620の第aの画像は、
図1a~
図5bの第1の画像120-1を含むことができる。動作620のラベリングデータは、第aの画像内で外部オブジェクトに関連する領域(例えば、
図1a~
図5aの領域140-1)を表すことができる。プロセッサは、
図1aの画面110を介して、第aの画像内で前記領域の選択を示す入力を識別することに基づいて、ラベリングデータを取得することができる。前記入力は、
図1bを参照して説明した入力を含み得る。プロセッサは、前記領域の位置(例えば、
図1a~
図5aの領域140-1の頂点A1、B1、C1、D1の座標)への入力に基づいて、ラベリングデータを取得することができる。
【0077】
図6を参照すると、動作630内で、一実施形態による、電子装置のプロセッサは、複数の画像のうち第a+Mの画像に対応するラベリングデータを取得することができる。動作630の第a+Mの画像は、
図1a~
図5bの第Nの画像120-Nを含むことができる。プロセッサによって取得された、動作630のラベリングデータは、第a+Mの画像内で外部オブジェクトに関連する領域(例えば、
図1a~
図5aの領域140-N)を表すことができる。一実施形態によれば、プロセッサは、
図4を参照して説明した動作に基づいて、
図6の動作630を実行することができる。
【0078】
例えば、
図6の動作632内で、一実施形態による、電子装置のプロセッサは、第aの画像の特徴点と、第a+Mの画像の特徴点とを比較して、第aの画像に関連する外部オブジェクトの第a+Mの画像内の位置を識別することができる。少なくとも1つの特徴点によって表される第aの画像及び第a+Mの画像の類似性に基づいて、プロセッサは、第aの画像と第a+Mの画像の両方に含まれる外部オブジェクトの第aの画像と第a+Mの画像のそれぞれの位置を識別することができる。一実施形態では、特徴点に基づいて、外部オブジェクトに関連する第a+Mの画像内の位置を自動的に識別できなかった場合、プロセッサは、電子装置のユーザに前記位置を入力するように要求することができる。
【0079】
例えば、
図6の動作634内で、一実施形態による、電子装置のプロセッサは、外部オブジェクトに対応する視覚オブジェクトが、第a+Mの画像に含まれているかどうかを識別することができる。例えば、動作620のラベリングデータによって表される、外部オブジェクトに関連する第aの画像内の位置から識別された、1つ又はそれ以上の特徴点と、第a+Mの画像に含まれる1つ又はそれ以上の特徴点とを比較して、プロセッサ は、外部オブジェクトに対応する視覚オブジェクトが、第a+Mの画像に含まれているかどうかを識別することができる。外部オブジェクトを認識するためのモデルを使用する一実施形態では、プロセッサは、モデルによって識別された第a+Mの画像が、外部オブジェクトを含む確率に基づいて、外部オブジェクトに対応する視覚オブジェクトが、第a+Mの画像に含まれているかどうかを識別することができる。視覚オブジェクトが第a+Mの画像に含まれている場合(634-YES)、プロセッサは、動作640を実行することができる。視覚オブジェクトが第a+Mの画像に含まれていない場合(634-NO)、プロセッサは、動作636を実行することができる。
【0080】
例えば、
図6の動作636内で、一実施形態による、電子装置のプロセッサは、外部オブジェクトに関連する第a+Mの画像内の位置の選択を示す入力に基づいて、第a+Mの画像に対応するラベリングデータを取得することができる。動作636内で、プロセッサは、ディスプレイに、第a+Mの画像内で外部オブジェクトに関連する位置を取得するための画面を表示することができる。前記画面を通じて受信された入力に基づいて、プロセッサは、動作636のラベリングデータを取得することができる。
【0081】
図6を参照すると、動作640内で、一実施形態による、電子装置のプロセッサは、第aの画像に対応するラベリングデータ及び第a+Mの画像に対応するラベリングデータに基づいて、第a+Nの画像に対応するラベリングデータを生成することができる。Nは、0より大きく、Mより小さい自然数であり得る(0<N<M)。動作640の第a+Nの画像は、
図1a~
図5bの第kの画像を含むことができる。プロセッサは、動作620のラベリングデータによって表される第aの画像内の位置及び動作630のラベリングデータによって示される第a+Mの画像内の位置に対して補間を実行して、第a+Nの画像に対応するラベリングデータを生成することができる。プロセッサは、
図5a及び/又は
図5bを参照して説明した動作に基づいて、
図6の動作640を実行することができる。プロセッサは、数1を参照して説明した補間を実行して、第a+Nの画像に対応するラベリングデータを生成することができる。
【0082】
一実施形態によれば、電子装置のプロセッサは、
図6の動作610から動作640を実行して、第aの画像から第a+Mの画像全体のラベリングデータを取得することができる。
図6を参照すると、動作650内で、一実施形態による、電子装置のプロセッサは、動作610から動作640によって生成されたラベリングデータに対してキャリブレーションを実行することができる。プロセッサによって実行されるキャリブレーションは、線形補間によって線形に(linearly)調整されたラベリングデータに、ビデオによってキャプチャされた外部オブジェクトの非線形的な動きを結合するために実行され得る。
【0083】
例えば、
図6の動作652内で、一実施形態による、電子装置のプロセッサは、第aの画像と第a+Mの画像との間の間隔を表すパラメータ(例えば、自然数M)が、閾値を超過しているかどうかを識別することができる。この間隔は、第aの画像のタイミングと第a+Mの画像のタイミングとの間の時間区間の長さに関連し得る。前記間隔が閾値を超える場合(652-YES)、プロセッサは、動作654を実行することができる。例えば、前記間隔が閾値間隔よりも長い場合、プロセッサは、動作654を実行することができる。前記間隔が閾値以下である場合(652-NO)、プロセッサは、動作656を実行することができる。
【0084】
例えば、
図6の動作654内で、一実施形態による、電子装置のプロセッサは、特徴点に基づいて、第a+Nの画像に対応するラベリングデータを変更することができる。例えば、プロセッサは、第aの画像に対応するラベリングデータ(例えば、電子装置のユーザから取得されたラベリングデータ)に基づいて、第aの画像から抽出された1つ又はそれ以上の特徴点を、第a+Nの画像に含まれる特徴点と比較して、第a+Nの画像に対応するラベリングデータを変更することができる。第aの画像から抽出された1つ又はそれ以上の特徴点は、ラベリングデータによって表される第aの画像内で外部オブジェクトに関連する領域から抽出されてもよい。第aの画像から抽出された1つ又はそれ以上の特徴点と比較される第a+Nの画像内の特徴点は、第a+Nの画像全体から抽出されてもよい。
【0085】
例えば、プロセッサは、第aの画像に対応するラベリングデータによって表される第aの画像の領域と類似した第a+Nの画像内の領域を、前記比較に基づいて識別することができる。プロセッサは、前記比較に基づいて識別された第a+Nの画像内の領域の位置に基づいて、第a+Nの画像に対応するラベリングデータを変更することができる。プロセッサは、補間に関連する動作640によって生成されたラベリングデータを、異なる画像の特徴点の比較に関連する動作654に基づいて変更することができる。
【0086】
例えば、
図6の動作656内で、一実施形態による、電子装置のプロセッサは、ビデオ及びラベリングデータを表示するための画面を介して受信された入力に基づいて、ラベリングデータを変更することができる。動作656の画面は、
図1aの画面110を含むことができる。電子装置のプロセッサは、画面を介して、第aの画像~第a+Mの画像のいずれかに対応するラベリングデータを変更するための入力を識別することができる。この入力に基づいて、プロセッサは、入力に対応するラベリングデータを調整して、外部オブジェクトに関連する画像内の位置を変更することができる。
【0087】
図6を参照すると、動作660内で、一実施形態による、電子装置のプロセッサは、第aの画像、第a+Nの画像及び第a+Mの画像のラベリングデータを、ビデオと連動して格納することができる。動作660によってビデオと連動して格納されたラベリングデータは、
図2のラベリング情報240に対応し得る。動作660によって格納されたラベリングデータは、ラベリングデータと連動したビデオと共に、ビデオ及び/又は画像を認識するためのモデル(又はニューラルネットワーク)のトレーニングに使用することができる。
【0088】
一実施形態では、動作660に基づいて識別されたラベリングデータは、表1のような情報を含み得る。
【0089】
【0090】
表1の外部オブジェクトに関する情報(Shapes)は、画像に含まれる外部オブジェクトに関する情報を、サブオブジェクトとして含むことができる。表1の外部オブジェクトに関する情報は、表2のような情報を含み得る。
【0091】
【0092】
一実施形態では、ニューラルネットワークのトレーニングのために、K分割交差検証(K-fold cross validation)を実行することができる。
図6に基づいて、大量の画像に対応するラベリングデータを取得したプロセッサは、K分割交差検証などのニューラルネットワークの信頼性を検証するためのアルゴリズムを実行することができる。例えば、プロセッサは、ラベリングデータを、トレーニングセット、検証セット、及び/又はテストセットに区分けることができる。例えば、プロセッサは、表1のimage flagsに基づいて、ラベリングデータを区別することができる。例えば、天気に基づくimage flagsに基づいて、プロセッサは、天気に応じてラベリングデータを分類することができる。image flagsに基づいて、ラベリングデータを分類することは、ニューラルネットワークのトレーニング及び/又は検証に使用される画像の特性を均一化(uniformize)するために使用され得る。例えば、天気に応じたimage flagsに基づいて分類されたラベリングデータを用いて、プロセッサは、特定の天気に分類されたラベリングデータが、ニューラルネットワークのトレーニング及び/又は検証に使用されないように、異なる天気に対応するラベリングデータのグループからラベリングデータをサンプリングすることができる。ラベリングデータが指定された数を超える画像に対して生成された場合、プロセッサは、ラベリングデータをトレーニングセット、検証セット、及びテストセットの3つのセットに区分けることができる。ラベリングデータが指定された数以下の画像に対して生成された場合、プロセッサは、ラベリングデータをトレーニングセット及びテストセットの2つのセットに区分けることができる。
【0093】
一実施形態では、プロセッサは、トレーニングセットに含まれるラベリングデータをK個のフォールドに区分けることができる。区分けられたフォールド内で、プロセッサは、ラベリングデータを再びK個のフォールドに区分けた後、K-1個のラベリングデータを、トレーニングのためのラベリングデータとして、残りの1つのラベリングデータを、検証のためのラベリングデータとして指定することができる。プロセッサは、ニューラルネットワーク(又はモデル)を生成し、トレーニングのためのラベリングデータを入力して、エラー値を抽出することができる。プロセッサは、フォールドごとに検証のためのラベリングデータを交差しながら、エラー値を抽出することができる。すべてのフォールドのエラー値を抽出したプロセッサは、抽出されたエラー値に基づいて、ニューラルネットワークの最適化を実行することができる。プロセッサは、最適化されたニューラルネットワークに基づいて、全トレーニングセットに対してトレーニングを実行することができる。全トレーニングセットのトレーニングを実行した後、プロセッサは、テストセットに含まれるラベリングデータに基づいて、ニューラルネットワークの評価を実行することができる。
【0094】
前述のように、一実施形態による、電子装置のプロセッサは、特徴点の比較に基づく第1のタイプの計算とラベリングデータによって示される位置(又は座標)との間の補間に基づく第2のタイプの計算を交互に実行して、ビデオに含まれる複数の画像のすべてについてラベリングデータを取得することができる。プロセッサは、前記計算を交互に行うので、複数の画像の全てから特徴点を抽出することなく、プロセッサは、ラベリングデータをより迅速に取得することができる。
【0095】
以下では、
図7を参照して、ラベリングデータを変更するためのユーザ入力を識別した電子装置の動作の一例について説明する。
【0096】
図7は、一実施形態による、電子装置によって実行される補間の一例を示す。
図7を参照して説明される電子装置の動作は、
図1a~
図1b、
図2の電子装置101及び/又はプロセッサ210によって実行することができる。
図7を参照して説明される電子装置の動作は、
図3及び/又は
図6の動作のうち少なくとも1つ(例えば、
図6の動作654、656のうち少なくとも1つ)に関連し得る。
【0097】
図7を参照すると、ビデオ120を再生するための複数の画像のシーケンスに含まれる第1の画像120-1、第kの画像120-k、及び第Nの画像120-Nのそれぞれに対応する領域140-1、520、140-Nが示されている。第1の画像120-1に対応する領域140-1は、第1の画像120-1内で外部オブジェクトに関連する位置を選択するためのユーザ入力(例えば、
図1bを参照して説明された入力)によって識別できる。第Nの画像120-Nに対応する領域140-Nは、第1の画像120-1の領域140-1に含まれる1つ又はそれ以上の特徴点と、第Nの画像120-Nに含まれる特徴点との比較に基づいて識別することができる。第kの画像120-kに対応する領域520は、
図5a~
図5bを参照して説明した補間に基づいて取得することができる。例えば、電子装置は、領域140-1、140-Nの補間に基づいて、第kの画像120-kの領域520の位置を識別することができる。
【0098】
図7の例示的なケース内で、ビデオ120によって表される外部オブジェクトの非線形的な動きに基づいて、補間によって線形に取得された領域520の位置が、第kの画像120-k内で外部オブジェクトに関連する位置から離隔されてもよい。一実施形態によれば、電子装置のプロセッサは、
図6の動作654に基づいて、第kの画像120-kに含まれる特徴点を、他の画像(例えば、第1の画像120-1)の特徴点(例えば、第1の画像120-1の領域140-1内の特徴点)と比較して、補間によって識別される領域520を変更することができる。
図7を参照すると、プロセッサは、特徴点の比較に基づいて、第kの画像120-k内で外部オブジェクトに関連する領域を、領域520から領域720に変更することができる。プロセッサが、補間によって取得された領域520を、領域720に変更及び/又は移動することは、
図6の動作654に基づいて実行することができる。
【0099】
図7の例示的なケース内で、プロセッサは、第kの画像120-kに対する領域520の変更を示す入力を識別することができる。例えば、プロセッサは、ディスプレイ(例えば、
図2のディスプレイ230)を介して、第kの画像120-kを表示している状態で、第kの画像120-kに対応するラベリング情報に基づいて、第kの画像120-k上に重畳されて(superimposed on)、外部オブジェクトの位置を示す視覚オブジェクト(例えば、バウンディングボックス)を表示することができる。視覚オブジェクトの第kの画像120-k上の位置は、領域520に対応し得る。前記の例では、プロセッサは、視覚オブジェクトの動きを表す入力を識別することができる。この入力に基づいて、プロセッサは、第kの画像120-kに対応するラベリングデータを、前記入力によって移動された視覚オブジェクトの位置に基づいて調整することができる。例えば、領域520を領域720に移動する入力に基づいて、プロセッサは、ラベリングデータ内で第kの画像120-k内で外部オブジェクトに関連する位置を、領域720の位置に変更できる。
【0100】
一実施形態によれば、電子装置のプロセッサは、第kの画像120-k内で外部オブジェクトに関連する位置を変更することに基づいて、ビデオ120を再生するための複数の画像のシーケンス内で、第kの画像120-kに隣接する他の画像のラベリングデータを、前記変更された位置を用いて変更することができる。例えば、第kの画像120-k内で外部オブジェクトに関連する位置を、領域520に関連する位置から領域720に関連する位置に変更した状態で、プロセッサは、第kの画像120-kとは異なる少なくとも1つの画像内で外部オブジェクトに関連する位置を変更することができる。例えば、プロセッサは、第1の画像120-1から第kの画像120-kの間の他の画像(例えば、第k-1の画像120-k-1)及び/又は第kの画像120-kから第Nの画像120-Nの間の他の画像(例えば、第k+1の画像120-k+1)に対応するラベリングデータを変更することができる。
【0101】
図7を参照すると、補間に基づいて取得されたラベリングデータによって表される第kの画像120-kの領域520を領域720に変更した状態で、プロセッサは、領域720の頂点AK2、BK2、CK2、DK2と、第1の画像120-1の頂点A1、B1、C1、D1とを連結する線上で、第1の画像120-1と第kの画像120-kとの間の他の画像内で外部オブジェクトに関連する位置及び/又は領域を識別することができる。例えば、プロセッサは、第1の画像120-1の領域140-1及び第kの画像120-kの領域720の補間に基づいて、第1の画像120-1と第kの画像120-kとの間の画像のラベリングデータを取得することができる。同様に、この状態では、プロセッサは、領域720の頂点AK2、BK2、CK2、DK2と第Nの画像120-Nの頂点AN、BN、CN、DNとを連結する線上で、第kの画像120-kと第Nの画像120-Nとの間の他の画像から外部オブジェクトに関連する位置及び/又は領域を識別することができる。
【0102】
前述したように、補間に基づいて取得されたラベリングデータによって表される、第kの画像120-kの領域520を領域720に変更するための入力に基づいて、電子装置101は、第kの画像120-kに隣接する他の画像(例えば、第1の画像120-1と第kの画像120-kとの間の画像及び/又は第kの画像120-kと第Nの画像120-Nとの間の他の画像)のラベリングデータをさらに調整することができる。この調整に基づいて、電子装置101は、ビデオ120に含まれる複数の画像に関するラベリング情報の精度を、前記入力を使用して改善することができる。
【0103】
前述のように、一実施形態によれば、電子装置は、ビデオ120に含まれる複数の画像のラベリング情報をより迅速に取得するために、特徴点のマッチング及び/又は線形補間を、選択的に複数の画像に適用できる。電子装置は、補間に基づいて、ラベリング情報を生成するための計算量及び/又は時間を短縮しながら、前記特徴点のマッチングに基づいて、ラベリング情報の精度を維持及び/又は改善することができる。
【0104】
図8は、一実施形態による、車両の自律走行システムを示すブロック図の一例を示す。
【0105】
図9及び
図10は、一実施形態による、自律走行移動体を示すブロック図の一例を示す。
【0106】
図11は、一実施形態による、ユーザ装置に関連するゲートウェイの例を示す。
【0107】
図8は、一実施形態による、車両の自律走行システムを示すブロック図の一例を示す。
【0108】
図8による車両の自律走行システム800は、センサ803、画像前処理器805、ディープラーニングネットワーク807、人工知能(AI)プロセッサ809、車両制御モジュール811、ネットワークインタフェース813、及び通信部815を含むディープラーニングネットワークであり得る。様々な実施形態では、各要素は、様々なインタフェースを介して接続することができる。例えば、センサ803によってセンシングされ、出力されたセンサデータは、画像前処理器805に供給(feed)されることができる。画像前処理器805によって処理されたセンサデータは、AIプロセッサ809で実行(run)されるディープラーニングネットワーク807に供給されてもよい。AIプロセッサ809によって実行されるディープラーニングネットワーク807の出力は、車両制御モジュール811に供給されてもよい。AIプロセッサ809で実行されるディープラーニングネットワーク807の中間結果は、AIプロセッサ809に供給することができる。様々な実施形態では、ネットワークインタフェース813は、車載電子装置と通信を実行することによって、車両の自律走行のための自律走行経路情報及び/又は自律走行制御命令を、内部ブロック構成に伝達する。一実施形態では、ネットワークインタフェース813は、センサ803を介して取得したセンサデータを、外部サーバに送信するために使用され得る。いくつかの実施形態では、自律走行制御システム800は、適切に(as appropriate)追加的な又はより少ない構成要素を含んでもよい。例えば、いくつかの実施形態では、画像前処理器805は、選択的(optional)構成要素であり得る。別の例では、後処理構成要素(図示せず)は、出力が車両制御モジュール811に提供される前に、ディープラーニングネットワーク807の出力で、後処理を実行するために、自律走行制御システム800内に含まれてもよい。
【0109】
いくつかの実施形態では、センサ803は、1つ以上のセンサを含むことができる。様々な実施形態では、センサ803は、車両の異なる位置に取り付けることができる。センサ803は、1つ以上の異なる方向に向けられてもよい。例えば、センサ803は、前面(forward-facing)、後面(rear-facing)、側面(side-facing)などの方向に向くように、車両の前(front)、側(sides)、後(rear)、及び/又はループ(roof)に取り付けることができる。いくつかの実施形態では、センサ803は、高ダイナミックレンジカメラ(high dynamic range cameras)などの画像センサであってもよい。いくつかの実施形態では、センサ803は、非視覚センサ(non-visual sensors)を含む。いくつかの実施形態では、センサ803は、画像センサに加えて、レーダ(RADAR)、LiDAR(Light Detection And Ranging)、及び/又は超音波センサを含む。いくつかの実施形態では、センサ803は、車両制御モジュール811を有する車両に取り付けられて(mounted)いない。例えば、センサ803は、センサデータをキャプチャするためのディープラーニングシステムの一部として含まれ、環境又は道路に取り付けられてもよいし、及び/又は周囲の車両に取り付けられてもよい。
【0110】
いくつかの実施形態では、画像前処理器(Image pre-processor)805は、センサ803のセンサデータを前処理するために使用することができる。例えば、画像前処理器805は、センサデータを前処理するために、1つ又はそれ以上の構成要素にセンサデータをスプリット(split)するために、及び/又は1つ又はそれ以上の構成要素を後処理するために使用することができる。いくつかの実施形態では、画像前処理器805は、グラフィック処理装置(graphics processing unit;GPU)、中央処理装置(central processing unit;CPU)、画像信号プロセッサ、又は専門化された画像プロセッサ(specialized image processor)であってもよい。様々な実施形態では、画像前処理器805は、高ダイナミックレンジデータ(high dynamic range data)を処理するためのトーンマッパー(tone-mapper)プロセッサであり得る。いくつかの実施形態では、画像前処理器805は、AIプロセッサ809の構成要素であってもよい。
【0111】
いくつかの実施形態では、ディープラーニングネットワーク(Deep learning network)807は、自律車両を制御するための制御命令を実施するためのディープラーニングネットワークであり得る。例えば、ディープラーニングネットワーク807は、センサデータを使用してトレーニングされた畳み込みニューラルネットワーク(CNN)などの人工ニューラルネットワークであり得、ディープラーニングネットワーク807の出力は、車両制御モジュール811に提供される。
【0112】
いくつかの実施形態では、人工知能(AI)プロセッサ809は、ディープラーニングネットワーク807を実行(run)するためのハードウェアプロセッサであり得る。いくつかの実施形態では、AIプロセッサ809は、センサデータに対して畳み込みニューラルネットワーク(CNN)を介して推論(inference)を実行するための専門化されたAIプロセッサである。いくつかの実施形態では、AIプロセッサ809は、センサデータのビット深さ(bit depth)のために最適化されてもよい。いくつかの実施形態では、AIプロセッサ809は、畳み込み、内積、ベクトル、及び/又は行列演算を含むニューラルネットワークの演算などのディープラーニング演算に最適化されてもよい。いくつかの実施形態では、AIプロセッサ809は、並列処理を効果的に実行できる複数のグラフィック処理装置(GPU)を介して実装されてもよい。
【0113】
様々な実施形態では、AIプロセッサ809は、AIプロセッサ809が実行されている間に、センサ803から受信されたセンサデータに対してディープラーニング分析を行い、車両を少なくとも部分的に自律的に動作させるために使用された機械学習の結果を決定するために引き起こされる命令を有するAIプロセッサを提供するように構成されたメモリに、入出力インタフェースを介してカップリングすることができる。いくつかの実施形態では、車両制御モジュール(Vehicle Control Module)811は、人工知能(AI)プロセッサ809から出力された車両制御のための命令を処理し、車両の様々なモジュールを制御するために、AIプロセッサ809の出力を、各車両のモジュールを制御するための命令に変換する(translate)ために使用することができる。いくつかの実施形態では、車両制御モジュール811は、自律走行用の車両を制御するために用いられる。いくつかの実施形態では、車両制御モジュール811は、車両のステアリング及び/又は速度を調整することができる。例えば、車両制御モジュール811は、減速、加速、ステアリング、車線変更、車線維持などの車両の走行を制御するために使用することができる。いくつかの実施形態では、車両制御モジュール811は、ブレーキライト(brake lights)、方向指示灯(turns signals)、ヘッドライト(headlights)などの車両照明(vehicle lighting)を制御するための制御信号を生成することができる。いくつかの実施形態では、車両制御モジュール811は、車両の音響システム(vehicle's sound system)、車両の音声警告(vehicle's audio warnings)、車両のマイクロホンシステム(vehicle's microphone system)、車両のホーンシステム(vehicle's horn system)などの車両オーディオ関連システムを制御するために使用することができる。
【0114】
いくつかの実施形態では、車両制御モジュール811は、意図された目的地へのアクセス又は潜在的な衝突(potential collision)などの走行イベントの乗客及び/又は運転者を知らせるための警告システムを含む通知システム(notification systems)を制御するために使用することができる。いくつかの実施形態では、車両制御モジュール811は、車両のセンサ803などのセンサを調整するために使用されてもよい。例えば、車両制御モジュール811は、センサ803の指向方向の修正(modifying the orientation)、センサ803の出力解像度及び/又はフォーマットタイプの変更、キャプチャレート(capture rate)の増加又は減少、ダイナミックレンジ(dynamic range)の調整、カメラの焦点の調整を行うことができる。さらに、車両制御モジュール811は、センサの動作を個別に又は集団的にオン/オフすることができる。
【0115】
いくつかの実施形態では、車両制御モジュール811は、フィルタの周波数の範囲を変更したり、特徴(features)及び/又はオブジェクトの検出のためのエッジ検出パラメータ(edge detection parameter)を調整したり、ビット深さ及びチャネルを調整(adjusting channels and bit depth)したりするなどの方法で、画像前処理器805のパラメータを変更するために使用することができる。様々な実施形態では、車両制御モジュール811は、車両の自律走行及び/又は車両の運転者支援(Driver assistance)機能を制御するために使用されてもよい。
【0116】
いくつかの実施形態では、ネットワークインタフェース813は、自律走行制御システム800のブロック構成と通信部815との間の内部インタフェースを担当することができる。具体的には、ネットワークインタフェース813は、音声データを含むデータを受信及び/又は発信するための通信インタフェースであり得る。様々な実施形態では、ネットワークインタフェース813は、通信部815を介して音声通話を接続するか、テキストメッセージを受信及び/又は発信するか、センサデータを送信するか、自律走行システムで車両のソフトウェアを更新するか、又は車両の自律走行システムのソフトウェアを更新するために、外部のサーバと接続することができる。
【0117】
様々な実施形態では、通信部815は、セルラー又はWiFi方式の様々な無線インタフェースを含むことができる。例えば、ネットワークインタフェース813は、通信部815を介して接続された外部サーバから、センサ803、画像前処理器805、ディープラーニングネットワーク807、AIプロセッサ809、車両制御モジュール811のための動作パラメータ及び/又は命令に対する更新を受信するために使用することができる。例えば、ディープラーニングネットワーク807の機械学習モデルは、通信部815を用いて更新することができる。さらに別の例によれば、通信部815は、画像処理パラメータなどの画像前処理器805の動作パラメータ及び/又はセンサ803のファームウェアを更新するために使用されてもよい。
【0118】
別の実施形態では、通信部815は、事故又は事故が発生する恐れのある(near-accident)イベントで、緊急サービス(emergency services)と緊急連絡(emergency contact)のための通信を活性化するために使用することができる。例えば、衝突イベントでは、通信部815は、支援のための緊急サービスを呼び出すために使用され、衝突の詳細及び車両の位置の緊急サービスを外部に通知するために使用され得る。様々な実施形態では、通信部815は、予想到着時刻及び/又は目的地の位置を更新又は取得することができる。
【0119】
一実施形態によれば、
図8に示す自律走行システム800は、車両の電子装置で構成されてもよい。一実施形態によれば、自律走行システム800のAIプロセッサ809は、車両の自律走行時に、ユーザから自律走行解除イベントが発生した場合、自律走行解除イベント関連情報を、ディープラーニングネットワークのトレーニングセットデータに入力するように制御することによって、車両の自律走行ソフトウェアを学習させるように制御することができる。
【0120】
図9及び
図10は、一実施形態による、自律走行移動体を示すブロック図の一例を示す。
図9を参照すると、本実施形態による自律走行移動体900は、制御装置1000、センシングモジュール904a、904b、904c、904d、エンジン906、及びユーザインタフェース908を含むことができる。
【0121】
自律走行移動体900は、自律走行モード又はマニュアルモードを備えることができる。一例として、ユーザインタフェース908を介して受信されたユーザ入力に従って、マニュアルモードから自律走行モードに切り替えても、又は自律走行モードからマニュアルモードに切り替えてもよい。
【0122】
移動体900が自律走行モードで運行される場合、自律走行移動体900は、制御装置1000の制御下で運行することができる。
【0123】
本実施形態では、制御装置1000は、メモリ1022とプロセッサ1024とを含むコントローラ1020、センサ1010、通信装置1030、オブジェクト検出装置1040を含むことができる。
【0124】
ここで、オブジェクト検出装置1040は、距離測定装置(例えば、電子装置101)の全部又は一部の機能を実行することができる。
【0125】
すなわち、本実施形態では、オブジェクト検出装置1040は、移動体900の外側に位置するオブジェクを検出するための装置であり、オブジェクト検出装置1040は、移動体900の外側に位置するオブジェクを検出し、検出結果に応じたオブジェクト情報を生成することができる。
【0126】
オブジェクト情報は、オブジェクトの存在の有無に関する情報、オブジェクトの位置情報、移動体とオブジェクトとの距離情報、及び移動体とオブジェクトとの相対速度情報を含むことができる。
【0127】
オブジェクトは、車線、他の車両、歩行者、交通信号、光、道路、構造物、過速度防止顎、地形物、動物など、移動体900の外側に位置する様々なオブジェクトを含むことができる。ここで、交通信号は、交通信号灯、交通標識、道路面に描かれた文様又はテキストを含む概念であり得る。そして、光は、他の車両に設けられたランプから生成された光であってもよく、街灯で生成された光であっても、太陽光であってもよい。
【0128】
そして、構造物は、道路の周りに位置し、地面に固定された物体であり得る。例えば、構造物は、街灯、街路樹、建物、電柱、信号灯、橋を含むことができる。地形物は、山、丘などを含み得る。
【0129】
そのようなオブジェクト検出装置1040は、カメラモジュールを含むことができる。コントローラ1020は、カメラモジュールで撮影された外部画像から、オブジェクト情報を抽出し、その情報をコントローラ1020に処理させることができる。
【0130】
また、オブジェクト検出装置1040は、外部環境を認識するための撮像装置をさらに含んでもよい。LIDARに加えて、RADAR、GPS装置、走行距離測定装置(Odometry)及び他のコンピュータビジョン装置、超音波センサ、赤外線センサなどを使用することができ、これらの装置は、必要に応じて、選択又は同時に動作し、より正確な感知を可能にする。
【0131】
一方、本発明の一実施形態に係る距離測定装置は、自律走行移動体900とオブジェクトとの間の距離を算出し、自律走行移動体900の制御装置1000と連携して算出された距離に基づいて、移動体の動作を制御することができる。
【0132】
一例として、自律走行移動体900とオブジェクトとの間の距離に応じて追突する可能性のある場合、自律走行移動体900は、速度を低下又は停止するように、ブレーキを制御することができる。別の例として、オブジェクトが移動するオブジェクトである場合、自律走行移動体900は、オブジェクトと所定の距離以上を維持するように、自律走行移動体900の走行速度を制御することができる。
【0133】
本発明の一実施形態による距離測定装置は、自律走行移動体900の制御装置1000内の一モジュールで構成することができる。すなわち、制御装置1000のメモリ1022とプロセッサ1024とが、本発明による追突防止方法をソフトウェア的に実現させることができる。
【0134】
また、センサ1010は、移動体の内部/外部環境をセンシングモジュール904a、904b、904c、904dと接続して、各種のセンシング情報を取得することができる。ここで、センサ1010は、姿勢センサ(例えば、ヨーセンサ(yaw sensor)、ロールセンサ(roll sensor)、ピッチセンサ(pitch sensor)、衝突センサ、ホイールセンサ(wheel sensor)、速度センサ、傾斜センサ、重量感知センサ、ヘディングセンサ(heading sensor)、ジャイロセンサ(gyro sensor)、ポジションモジュール(position module)、移動体前進/後進センサ、バッテリセンサ、燃料センサ、タイヤセンサ、ハンドル回転によるステアリングセンサ、移動体内部温度センサ、移動体内部湿度センサ、超音波センサ、照度センサ、加速ペダルポジションセンサ、ブレーキペダルポジションセンサなどを含むことができる。
【0135】
これにより、センサ1010は、移動体姿勢情報、移動体衝突情報、移動体方向情報、移動体位置情報(GPS情報)、移動体角度情報、移動体速度情報、移動体加速度情報、移動体傾き情報、移動体前進/後進情報、バッテリー情報、燃料情報、タイヤ情報、移動体ランプ情報、移動体内部温度情報、移動体内部湿度情報、ステアリングホイール回転角度、移動体外部照度、アクセルペダルにかかる圧力、ブレーキペダルにかかる圧力などに対するセンシング信号を取得することができる。
【0136】
また、センサ1010は、その他、加速ペダルセンサ、圧力センサ、エンジン回転速度センサ(engine speed sensor)、空気流量センサ(AFS)、吸気温度センサ(ATS)、水温センサ(WTS)、スロットル位置センサ(TPS)、TDCセンサ、クランク角センサ(CAS)などをさらに含んでもよい。
【0137】
このように、センサ1010は、センシングデータに基づいて、移動体状態情報を生成することができる。
【0138】
無線通信装置1030は、自律走行移動体900間の無線通信を実施するように構成される。例えば、ユーザの携帯電話、又は他の無線通信装置1030、他の移動体、中央装置(交通制御装置)、サーバなどと自律走行移動体900とが通信できるようにする。無線通信装置1030は、接続無線プロトコルに従って、無線信号を送受信することができる。無線通信プロトコルは、Wi‐Fi、Bluetooth、LTE(Long-Term Evolution)、CDMA(Code Division Multiple Access)、WCDMA(Wideband Code Division Multiple Access)、GSM(Global Systems for Mobile Communications)であり、通信プロトコルは、これに限定されない。
【0139】
また、本実施形態における自律走行移動体900は、無線通信装置1030を介して、移動体間の通信を実現することも可能である。すなわち、無線通信装置1030は、車両対車両間(V2V)通信(vehicle-to-vehicle communication)で道路上の他の移動体や他の移動体と通信を行うことができる。自律走行移動体900は、走行警告、交通情報などの情報を、車両間通信で送受信することができ、他の移動体に情報を要求するか、要求を受信することも可能である。例えば、無線通信装置1030は、V2V通信を短距離通信(DSRC、dedicated short-range communication)装置又はC-V2V(Cellular-V2V)装置で行うことができる。また、車両間の通信に加えて、車両と他の物体(例えば、歩行者が携帯する電子装置など)との間の通信(V2X、Vehicle to Everything communication)も無線通信装置1030を介して実現することができる。
【0140】
本実施形態では、コントローラ1020は、移動体900内の各ユニットの全体的な動作を制御するユニットであり、移動体の製造業者によって製造時に構成されてもよく、又は製造後に自律走行の機能を実行するためにさらに構成されてもよい。あるいは、製造時に構成されたコントローラ1020のアップグレードを通じて、継続的な追加機能を実行するための構成を含むことができる。そのようなコントローラ1020は、ECU(Electronic Control Unit)と呼ばれることがある。
【0141】
コントローラ1020は、接続されたセンサ1010、オブジェクト検出装置1040、通信装置1030などから各種データを収集し、収集されたデータに基づいて、制御信号を移動体内の他の構成を含むセンサ1010、エンジン906、ユーザインタフェース908、通信装置1030、オブジェクト検出装置1040に伝達することができる。また、図示されていないが、移動体の走行に関連する加速装置、ブレーキングシステム、操舵装置、又はナビゲーション装置にも制御信号を伝達することができる。
【0142】
本実施形態では、コントローラ1020は、エンジン906を制御することができ、例えば、自律走行移動体900が走行中の道路の制限速度を検出し、走行速度が制限速度を超えないように、エンジン906を制御するか、又は制限速度を超えない範囲内で、自律走行移動体900の走行速度を加速するように、エンジン906を制御することができる。
【0143】
また、コントローラ1020は、自律走行移動体900の走行中に、自律走行移動体900が車線に近接するか、車線を逸脱している場合、そのような車線の近接及び離脱が正常の走行状況に応じたものか、その他の走行状況に応じたか否かを判断し、判断結果に応じて、移動体の走行を制御するように、エンジン906を制御することができる。具体的には、自律走行移動体900は、移動体が走行中の車路の両側に形成された車線を検出することができる。この場合、コントローラ1020は、自律走行移動体900が車線に近接するか、車線を離脱しているかを判断し、自律走行移動体900が車線に近接するか、車線を離脱していると判断すると、このような走行が正確な走行状況によるのか、又はその他の走行状況によるのかを判断することができる。ここで、正常の走行状況の例として、移動体の車路変更が必要な状況であり得る。そして、他の走行状況の例として、移動体の車路変更が必要でない状況であり得る。コントローラ1020は、移動体の車路変更を必要としない状況で、自律走行移動体900が車線に近いか、車線を離脱していると判断した場合、自律走行移動体900が車線を離脱せずに、その移動体で正常に走行するように、自律走行移動体900の走行を制御することができる。
【0144】
移動体の前方に他の移動体又は妨害物が存在する場合には、走行移動体を減速するように、エンジン906又はブレーキングシステムを制御することができ、速度に加えて、軌跡、運行経路、操舵角を制御することができる。あるいは、コントローラ1020は、移動体の走行車線、走行信号などの他の外部環境の認識情報に応じて、必要な制御信号を生成して、移動体の走行を制御してもよい。
【0145】
コントローラ1020は、自らの制御信号の生成に加えて、周辺移動体又は中央サーバとの通信を行い、受信した情報を介して、周辺装置を制御するための命令を送信することによって、移動体の走行を制御することも可能である。
【0146】
また、コントローラ1020は、カメラモジュール1050の位置が変更されるか、画角が変更された場合、本実施形態による正確な移動体又は車線認識が困難な場合があるので、これを防止するために、カメラモジュール1050のキャリブレーション(calibration)を実行するように制御する制御信号を生成することもできる。したがって、本実施形態では、コントローラ1020は、カメラモジュール1050でキャリブレーション制御信号を生成することにより、自律走行移動体900の移動に伴って発生する振動や衝撃等により、カメラモジュール1050の装着位置が変更されても、カメラモジュール1050の正常な装着位置、方向、画角などを継続的に維持することができる。コントローラ1020は、予め記憶されたカメラモジュール1050の初期装着位置、方向、画角情報と、自律走行移動体900の走行中に測定されるカメラモジュール1050の初期装着位置、方向、画角情報等が、臨界値以上に変化した場合、カメラモジュール1050のキャリブレーションを実行するように、制御信号を生成することができる。
【0147】
本実施形態では、コントローラ1020は、メモリ1022とプロセッサ1024とを含むことができる。プロセッサ1024は、コントローラ1020の制御信号に従って、メモリ1022に記憶されたソフトウェアを実行することができる。具体的には、コントローラ1020は、本発明による車線検出方法を行うためのデータ及び命令をメモリ1022に格納し、この命令は、本明細書に開示された1つ又はそれ以上の方法を実施するために、プロセッサ1024によって実行され得る。
【0148】
このとき、メモリ1022は、不揮発性のプロセッサ1024で実行可能な記録媒体に記憶されてもよい。メモリ1022は、適切な内外部装置を介して、ソフトウェア及びデータを格納することができる。メモリ1022は、RAM(random access memory)、ROM(read only memory)、ハードディスク、及びドングルに接続されたメモリ1022装置から構成することができる。
【0149】
メモリ1022は、オペレーティングシステム(OS、Operating system)、ユーザアプリケーション、実行可能な命令を少なくとも格納することができる。メモリ1022は、アプリケーションデータ、配列データ構造も格納することができる。
【0150】
プロセッサ1024は、マイクロプロセッサ又は適切な電子プロセッサで、コントローラ、マイクロコントローラ、又はステートマシンであり得る。
【0151】
プロセッサ1024は、コンピューティングデバイスの組み合わせで実装することができ、コンピューティングデバイスは、デジタル信号プロセッサ、マイクロプロセッサ、又はそれらの適切な組み合わせで構成することができる。
【0152】
一方、自律走行移動体900は、前述した制御装置1000へのユーザの入力のためのユーザインタフェース908をさらに含んでもよい。ユーザインタフェース908は、適切な相互作用でユーザに情報を入力させることができる。例えば、タッチスクリーン、キーパッド、操作ボタンなどで実施することができる。ユーザインタフェース908は、入力又は命令をコントローラ1020に送信し、コントローラ1020は、入力又は命令に応答して、移動体の制御動作を実行することができる。
【0153】
また、ユーザインタフェース908は、自律走行移動体900の外部の装置で、無線通信装置1030を介して、自律走行移動体900と通信を行うことができる。例えば、ユーザインタフェース908は、携帯電話、タブレット、又は他のコンピュータ装置と連動可能にすることができる。
【0154】
さらに、本実施形態では、自律走行移動体900は、エンジン906を含むものとして説明したが、他のタイプの推進システムを含むことも可能である。例えば、移動体は、電気エネルギーで運転することができ、水素エネルギー又はそれらを組み合わせたハイブリッドシステムを介して運転することができる。したがって、コントローラ1020は、自律走行移動体900の推進システムによる推進メカニズムを含み、これによる制御信号を、各推進メカニズムの構成に提供することができる。
【0155】
以下、
図10を参照して、本実施形態による制御装置1000の詳細構成についてより詳細に説明する。
【0156】
制御装置1000は、プロセッサ1024を含む。プロセッサ1024は、汎用シングルチップ又はマルチチップマイクロプロセッサ、専用マイクロプロセッサ、マイクロコントローラ、プログラマブルゲートアレイなどであり得る。プロセッサは、中央処理装置(CPU)と呼ばれることがある。また、本実施形態では、プロセッサ1024は、複数のプロセッサの組み合わせで使用することも可能である。
【0157】
制御装置1000はまた、メモリ1022を含む。メモリ1022は、電子情報を格納することができる任意の電子構成要素であり得る。メモリ1022も、単一のメモリに加えて、メモリ1022の組み合わせを含むことができる。
【0158】
本発明による距離測定装置の距離測定方法を実行するためのデータ及び命令1022aは、メモリ1022に記憶されてもよい。プロセッサ1024が命令1022aを実行するとき、命令1022a及び命令の実行に必要なデータ1022bの全部又は一部が、プロセッサ1024上にロード1024a、1024bされてもよい。
【0159】
制御装置1000は、信号の送信及び受信を可能にするための送信機1030a、受信機1030b、又はトランシーバ1030cを含んでもよい。1つ以上のアンテナ1032a、1032bは、送信機1030a、受信機1030b、又は各トランシーバ1030cに電気的に接続されてもよく、さらにアンテナを含んでもよい。
【0160】
制御装置1000は、デジタル信号プロセッサ(DSP)1070を含んでもよい。DSP1070を介して、移動体がデジタル信号を迅速に処理できるようにすることができる。
【0161】
制御装置1000は、通信インタフェース1080を含んでもよい。通信インタフェース1080は、他の装置を制御装置1000に接続するための1つ以上のポート及び/又は通信モジュールを含んでもよい。通信インタフェース1080は、ユーザと制御装置1000とが相互作用することを可能にすることができる。
【0162】
制御装置1000の様々な構成は、一緒に1つ以上のバス1090によって接続されてもよく、バス1090は、電力バス、制御信号バス、状態信号バス、データバスなどを含むこともできる。プロセッサ1024の制御に応じて、構成は、バス1090を介して相互情報を伝達し、所望の機能を実行させることができる。
【0163】
一方、様々な実施形態では、制御装置1000は、セキュリティクラウドとの通信のために、ゲートウェイに関連付けられてもよい。例えば、
図11を参照すると、制御装置1000は、車両1100の構成要素1101~1104のうち少なくとも1つから取得された情報を、セキュリティクラウド1106に提供するためのゲートウェイ1105に関連付けられてもよい。例えば、ゲートウェイ1105は、制御装置1000内に含まれてもよい。別の例では、ゲートウェイ1105は、制御装置1000と区別される車両1100内の別々の装置から構成されてもよい。ゲートウェイ1105は、異なるネットワークを有するソフトウェア管理クラウド1109、セキュリティクラウド1106、及び車載セキュリティソフトウェア1110によって保護された車両1100内のネットワークを通信可能に接続する。
【0164】
例えば、構成要素1101は、センサであり得る。例えば、このセンサは、車両1100の状態又は車両1100の周囲の状態のうち少なくとも1つに関する情報を取得するために用いられ得る。例えば、構成要素1101は、センサ1410を含むことができる。
【0165】
例えば、構成要素1102は、ECU(electronic control unit)であってもよい。例えば、ECUは、エンジン制御、変速機の制御、エアバッグの制御、タイヤ空気圧管理に使用することができる。
【0166】
例えば、構成要素1103は、インストルメントクラスタ(instrument cluster)であり得る。例えば、インストルメントクラスタは、ダッシュボード(dashboard)のうち運転席の正面に配置されたパネルを意味することがある。例えば、インストルメントクラスタは、運転に必要な情報を運転者(又は搭乗者)に表示するように構成されてもよい。例えば、インストルメントクラスタは、エンジンの1分当たりの回転数(RPM、revolutions per minute、又は rotate per minute)を指示するための視覚要素、車両1100の速度を指示するための視覚要素、残留燃料量を指示するための視覚要素、歯車の状態を指示するための視覚要素、又は構成要素1101を介して取得された情報を指示するための視覚要素のうち少なくとも1つを表示するために使用することができる。
【0167】
例えば、構成要素1104は、テレマティクス(telematics)装置であり得る。例えば、このテレマティックス装置は、無線通信技術とGPS(global positioning system)技術とを組み合わせて、車両1100内で位置情報、安全運転などの様々な移動通信サービスを提供する装置を意味することができる。例えば、テレマティックス装置は、運転者、クラウド(例えば、セキュリティクラウド1106)、及び/又は周辺環境と車両1100とを接続するために使用することができる。例えば、前記テレマティックス装置は、5G NR規格の技術(例えば、5G NRのV2X技術)のために、高帯域幅及び低遅延をサポートするように構成されてもよい。例えば、前記テレマティックス装置は、車両1100の自律走行をサポートするように構成されてもよい。
【0168】
例えば、ゲートウェイ1105は、車両1100内のネットワークと車両外のネットワークであるソフトウェア管理クラウド1109とセキュリティクラウド1106とを接続するために使用することができる。例えば、ソフトウェア管理クラウド1109は、車両1100の走行及び管理に必要な少なくとも1つのソフトウェアを更新又は管理するために使用することができる。例えば、ソフトウェア管理クラウド1109は、車両内に設置された車載セキュリティソフトウェア(in-car security software)1110と連動することができる。例えば、車載セキュリティソフトウェア1110は、車両1100内のセキュリティ機能を提供するために使用され得る。例えば、車載セキュリティソフトウェア1110は、車内ネットワークの暗号化のために、外部の認証された(authorized)サーバから取得した暗号化キーを用いて、車内ネットワークを介して送受信されるデータを暗号化することができる。様々な実施形態において、車載セキュリティソフトウェア1110によって使用される暗号化キーは、車両の識別情報(車両ナンバープレート、車VIN(vehicle identification number))又はユーザごとに一意に付与された情報(ユーザ識別情報など)に対応して生成することができる。
【0169】
様々な実施形態では、ゲートウェイ1105は、前記暗号化キーに基づいて、車載セキュリティソフトウェア1110によって暗号化されたデータを、ソフトウェア管理クラウド1109及び/又はセキュリティクラウド1106に送信することができる。ソフトウェア管理クラウド1109及び/又はセキュリティクラウド1106は、車載セキュリティソフトウェア1110の暗号化キー(Encryption Key)によって暗号化された前記データを復号することができる復号キー(Decryption Key)を用いて復号することによって、前記データがどの車両又はどのユーザから受信したデータであるかを識別することができる。例えば、この復号キーは、前記暗号化キーに対応する固有のキーであるため、ソフトウェア管理クラウド1109及び/又はセキュリティクラウド1106は、前記復号キーを介して復号されたデータに基づいて、前記データの送信主体(例えば、車両又はユーザ)を識別することができる。
【0170】
例えば、ゲートウェイ1105は、車載セキュリティソフトウェア1110をサポートするように構成されており、制御装置1000と関連付けられてもよい。例えば、ゲートウェイ1105は、セキュリティクラウド1106に接続されたクライアント装置1107と制御装置1000との間の接続をサポートするために、制御装置1000に関連付けられてもよい。別の例では、ゲートウェイ1105は、セキュリティクラウド1106に接続されたサードパーティクラウド1108と制御装置1000との間の接続をサポートするために、制御装置1000に関連付けられてもよい。しかし、これに限定されない。
【0171】
様々な実施形態では、ゲートウェイ1105は、車両1100のオペレーティングソフトウェアを管理するためのソフトウェア管理クラウド1109と車両1100とを接続するために使用することができる。例えば、ソフトウェア管理クラウド1109は、車両1100のオペレーティングソフトウェアの更新が要求されるか否かをモニタリングし、車両1100のオペレーティングソフトウェアの更新が要求されたことをモニタリングすることに基づいて、ゲートウェイ1105を介して、車両1100のオペレーティングソフトウェアを更新するためのデータを提供することができる。別の例として、ソフトウェア管理クラウド1109は、車両1100のオペレーティングソフトウェアの更新を要求するユーザ要求を、車両1100からゲートウェイ1105を介して受信し、この受信に基づいて、車両1100のオペレーティングソフトウェアを更新するためのデータを提供することができる。しかし、これに限定されない。
【0172】
図12は、一実施形態による、学習データのセットに基づいて、ニューラルネットワークをトレーニングする電子装置101の動作を説明するための図である。
図12を参照して説明される動作は、
図1a~
図11の電子装置によって実行することができる。
【0173】
図12を参照すると、動作1202において、一実施形態による電子装置は、学習データのセットを取得することができる。電子装置は、教師あり学習(supervised learning)のための学習データのセットを取得することができる。学習データは、入力データとこの入力データに対応する基底トゥルース(ground truth)データのペア(pair)を含むことができる。基底トゥルースデータは、この基底トゥルースデータのペアである入力データを受信したニューラルネットワークから取得しようとする出力データを表すことができる。前記基底トゥルースデータは、
図1a~
図12を参照して説明した電子装置によって取得することができる。
【0174】
例えば、画像を認識するために、ニューラルネットワークをトレーニングする場合、学習データは、画像及び該画像に含まれる1つ又はそれ以上の被写体に関する情報を含むことができる。前記情報は、画像を介して識別可能な被写体の分類(category又は class)を含んでもよい。前記情報は、画像内で、被写体に対応する視覚オブジェクトの位置、幅、高さ、及び/又はサイズを含み得る。動作1202を通じて識別される学習データのセットは、複数の学習データのペアを含んでもよい。画像を認識するために、ニューラルネットワークをトレーニングする前記の例では、電子装置によって識別される学習データのセットは、複数の画像及び該複数の画像のそれぞれに対応する基底トゥルースデータを含むことができる。
【0175】
図12を参照すると、動作1204において、一実施形態による電子装置は、学習データのセットに基づいて、ニューラルネットワークのトレーニングを実行することができる。ニューラルネットワークが教師あり学習に基づいてトレーニングされる一実施形態では、電子装置は、学習データに含まれる入力データを、前記ニューラルネットワークの入力層に入力することができる。前記入力層を含むニューラルネットワークの一例を、
図13を参照して説明する。入力層を介して、前記入力データを受信したニューラルネットワークの出力層から、電子装置は、前記入力データに対応するニューラルネットワークの出力データを取得することができる。
【0176】
一実施形態では、動作1204のトレーニングは、前記出力データと、前記学習データに含まれ、前記入力データに対応する基底トゥルースデータとの間の差に基づいて実行されてもよい。例えば、電子装置は、傾斜降下アルゴリズム(gradient descent)に基づいて、前記差が減少するように、前記ニューラルネットワークに関連する1つ又はそれ以上のパラメータ(例えば、
図13を参照して後述する重み)を調整することができる。前記1つ以上のパラメータを調整する電子装置の動作は、ニューラルネットワークへのチューニングと呼ばれることがある。電子装置は、出力データに基づくニューラルネットワークのチューニングを、コスト関数(cost function)など、ニューラルネットワークの性能を評価するために定義された関数を用いて実行することができる。前述の出力データと基底トゥルースデータとの間の差は、コスト関数の一例として含まれてもよい。
【0177】
図12を参照すると、動作1206において、一実施形態による電子装置は、動作1204によってトレーニングされたニューラルネットワークから、有効な出力データが出力されたか否かを識別することができる。出力データが有効であるということは、出力データと基底トゥルースデータとの間の差(又はコスト関数)が、前記ニューラルネットワークを使用するために設定された条件を満たすことを意味することができる。例えば、出力データと基底トゥルースデータとの間の差の平均値及び/又は最大値が、指定された閾値以下である場合、電子装置は、有効な出力データがニューラルネットワークから出力されると決定することができる。
【0178】
ニューラルネットワークから有効な出力データが出力されない場合(動作1206-NO)、電子装置は、動作1204に基づくニューラルネットワークのトレーニングを繰り返し実行することができる。実施形態は、これに限定されず、電子装置は、動作1202、1204を繰り返し実行することができる。
【0179】
ニューラルネットワークから有効な出力データを取得した状態で(動作1206‐YES)、動作1208に基づいて、一実施形態による電子装置は、トレーニングされたニューラルネットワークを使用することができる。例えば、電子装置は、学習データとして、前記ニューラルネットワークに入力された入力データと区別された他の入力データを、ニューラルネットワークに入力することができる。前記他の入力データを受信したニューラルネットワークから取得した出力データを、電子装置は、ニューラルネットワークに基づいて、前記他の入力データの推論を行った結果として利用することができる。
【0180】
図13は、一実施形態による、電子装置101のブロック図である。
図13の電子装置101は、
図1a~
図11の電子装置を含んでもよい。例えば、
図12を参照して説明した動作は、
図13の電子装置101及び/又は
図13のプロセッサ1310によって実行することができる。
【0181】
図13を参照すると、電子装置101のプロセッサ1310は、メモリ1320に格納されたニューラルネットワーク1330に関連する計算(computations)を実行することができる。プロセッサ1310は、CPU(center processing unit)、GPU(graphic processing unit)、又はNPU(neural processing unit)のうち少なくとも1つを含んでもよい。NPUは、CPUとは別のチップとして実装されてもよく、又はSoC(system on a chip)の形態でCPUなどのチップに集積され(integrated)てもよい。CPUに集積された(integrated)NPUは、ニューラルコア及び/又はAI(artificial intelligence)アクセラレータと呼ばれることがある。
【0182】
図13を参照すると、プロセッサ1310は、メモリ1320に格納されたニューラルネットワーク1330を識別することができる。ニューラルネットワーク1330は、入力層(Input layer)1332、1つ以上の隠れ層(Hidden layers)1334(又は中間層(Intermediate layers))、及び出力層(Output layers)1336の結合を含むことができる。前述の層(例えば、入力層1332、1つ以上の隠れ層1334、及び出力層1336)は、複数のノードを含むことができる。隠れ層1334の数は、実施形態によって変わってもよく、複数の隠れ層1334を含むニューラルネットワーク1330は、ディープ(deep)ニューラルネットワークと呼ばれることがある。ディープニューラルネットワークをトレーニングする動作は、ディープラーニング(deep learning)と呼ばれることがある。
【0183】
一実施形態では、ニューラルネットワーク1330が、フィードフォワードニューラルネットワーク(feed forward neural network)の構造を有する場合、特定の層に含まれる第1のノードは、前記特定の層の以前の別の層に含まれる第2のノードのすべてに接続することができる。メモリ1320内で、ニューラルネットワーク1330のために格納されたパラメータは、第2のノードと第1のノードとの間の接続に割り当てられた(assigned)重み付け(weight)を含むことができる。フィードフォワードニューラルネットワークの構造を有するニューラルネットワーク1330において、第1のノードの値は、第2のノードと第1のノードとを接続する接続に割り当てられた重み付けに基づく、第2のノードに割り当てられた値の重み付け合(weighted sum)に対応することができる。
【0184】
一実施形態では、ニューラルネットワーク1330が畳み込み(convolution)ニューラルネットワークの構造を有する場合、特定の層に含まれる第1のノードは、前記特定の層の以前の別の層に含まれる第2のノードの一部に対する重み付け合に対応できる。第1のノードに対応する第2のノードのいくつかは、前記特定の層に対応するフィルタによって識別されてもよい。メモリ1320内で、ニューラルネットワーク1330のために格納されたパラメータは、前記フィルタを表す重み付けを含むことができる。フィルタは、第2のノードのうち、第1のノードの重み付け合を計算するために使用される1つ以上のノード、及び前記1つ以上のノードのそれぞれに対応する重み付けを含むことができる。
【0185】
一実施形態によれば、電子装置101のプロセッサ1310は、メモリ1320に記憶された学習データセット1340を使用して、ニューラルネットワーク1330に対してトレーニングを実行することができる。学習データセット1340に基づいて、プロセッサ1310は、
図12を参照して説明した動作を実行して、ニューラルネットワーク1330のためにメモリ1320に格納された1つ又はそれ以上のパラメータを調整することができる。
【0186】
一実施形態によれば、電子装置101のプロセッサ1310は、学習データセット1340に基づいてトレーニングされたニューラルネットワーク1330を用いて、オブジェクト検出、オブジェクト認識、及び/又はオブジェクト分類を実行することができる。プロセッサ1310は、カメラ1350を介して取得した画像(又はビデオ)を、ニューラルネットワーク1330の入力層1332に入力することができる。画像が入力された入力層1332に基づいて、プロセッサ1310は、ニューラルネットワーク1330に含まれる層のノードの値を順次取得し、出力層1336のノードの値のセット(例えば、出力データ)を取得することができる。前記出力データは、ニューラルネットワーク1330を用いて、前記画像に含まれる情報を推定した結果として使用することができる。実施形態は、これに限定されず、プロセッサ1310は、通信回路1360を介して、電子装置101に接続された外部電子装置から取得した画像(又はビデオ)を、ニューラルネットワーク1330に入力することができる。
【0187】
一実施形態では、画像を処理するためにトレーニングされたニューラルネットワーク1330は、前記画像内で、被写体に対応する領域を識別するか(オブジェクト検出)、及び/又は前記画像内でに表現された被写体のクラスを識別する(オブジェクト認識及び/又はオブジェクト分類)ために使用することができる。例えば、電子装置101は、ニューラルネットワーク1330を用いて、前記画像内で、前記被写体に対応する領域を、バウンディングボックスなどの矩形の形状に基づいて、分割(segment)することができる。例えば、電子装置101は、ニューラルネットワーク1330を用いて、複数の指定されたクラスのうち、前記被写体にマッチングする少なくとも1つのクラスを識別することができる。
【0188】
図14は、一実施形態による電子装置のブロック図である。
図14を参照して説明される電子装置の動作は、
図1a~
図1b、
図2の電子装置101、及び/又はプロセッサ210によって実行することができる。
【0189】
図14を参照すると、動作1400内で、一実施形態による電子装置のプロセッサは、画像を取得することができる。前記画像は、カメラによって連続的に取得された画像のシーケンス(例えば、ビデオ)内で識別することができる。動作1400の画像は、画像フレームと呼ばれることがある。
【0190】
図14を参照すると、動作1402内で、一実施形態による、電子装置のプロセッサは、取得された画像内の外部オブジェクトを識別することができる。前記外部オブジェクトは、オブジェクト認識に基づいて識別することができる。例えば、電子装置は、オブジェクト認識のためにトレーニングされたニューラルネットワークに基づいて、画像内の外部オブジェクトの位置及び/又はクラスを識別することができる。
【0191】
図14を参照すると、動作1404内で、一実施形態による、電子装置のプロセッサは、動作1402に基づいて識別された外部オブジェクトのうち車両の走行に影響を及ぼす可能性のある外部オブジェクトを分類することができる。プロセッサは、画像から識別された外部オブジェクトに対する前記可能性を、指定された閾値と比較して、動作1404を実行することができる。動作1404に基づいて、プロセッサは、指定された閾値を超える可能性のある少なくとも1つの外部オブジェクトを識別することができる。
【0192】
図14を参照すると、動作1406内で、一実施形態による電子装置のプロセッサは、動作1404によって分類された外部オブジェクトのそれぞれに、オブジェクト識別情報を割り当てることができる。前記オブジェクト識別情報は、外部オブジェクトに一意に割り当てられる(uniquely assigned)識別子(又はキー値)を含むことができる。前記識別子は、自然数に基づいて割り当てられてもよい。オブジェクト識別情報は、動作1400の画像内で外部オブジェクトの位置、クラス、及び/又は識別子のうち少なくとも1つを含んでもよい。
【0193】
図14を参照すると、動作1408内で、一実施形態による電子装置のプロセッサは、画像フレームベースの線形補間方法を用いて、外部オブジェクトを追跡し始めることができる。例えば、動作1410内で、一実施形態による、電子装置のプロセッサは、第1の画像フレーム内で特定の識別子(例えば、1から徐々に増加する自然数i)を識別子として有する外部オブジェクトを識別するすることができる。
【0194】
図14を参照すると、動作1412内で、一実施形態による、電子装置のプロセッサは、動作1410に基づいて識別された外部オブジェクトに関する情報を格納し、ラベリングを実行することができる。ラベリングに基づいて、プロセッサは、特定の識別子のラベリングデータを取得することができる。
【0195】
図14を参照すると、動作1414内で、一実施形態による、電子装置のプロセッサは、第1の画像フレームから入力された画像フレームの数だけ離隔された、第mの画像フレームに移動できる。動作1416内では、一実施形態による、電子装置のプロセッサは、第mの画像フレーム内で動作1410の自然数iを識別子として有する外部オブジェクトを識別することができる。動作1418内で、一実施形態による、電子装置のプロセッサは、第mの画像フレームから識別された外部オブジェクトに関する情報を格納し、ラベリングを実行することができる。
【0196】
図14を参照すると、動作1420内で、一実施形態による、電子装置のプロセッサは、第1の画像フレームで格納された外部オブジェクト情報と、第mの画像フレームで格納された外部オブジェクト情報とを使用して、c番目の画像フレーム内に存在すると予測される外部オブジェクト情報に関する情報を格納し、ラベリングを実行することができる。ここで、cは、1より大きく、mより小さい自然数であり得る。動作1420において、第cの画像フレームに対して取得される外部オブジェクト情報は、自然数iを識別子として有する外部オブジェクトに対応し得る。
【0197】
図14を参照すると、動作1422内で、一実施形態による、電子装置のプロセッサは、取得されたすべての画像フレームの外部オブジェクト(例えば、自然数iを識別子として有する外部オブジェクト)のラベリング動作を完了することができる。例えば、動作1424内で、プロセッサは、画像フレーム内に存在するすべての外部オブジェクトに対するラベリング動作を完了したかどうかを識別することができる。すべての外部オブジェクトのラベリング動作を完了できなかった場合(1424-NO)、電子装置のプロセッサは、動作1426を実行することができる。
【0198】
図14を参照すると、動作1426内で、一実施形態による、電子装置のプロセッサは、他の外部オブジェクトを識別することができる。例えば、自然数iの増加に基づいて、プロセッサは、自然数iを識別子として有する外部オブジェクトと区別される他の外部オブジェクトを識別することができる。
図14を参照すると、動作1428内で、一実施形態による、電子装置のプロセッサは、動作1426に基づいて増加した識別子が、動作1402に基づいて識別された外部オブジェクトの数(n)を超えるかどうかを識別することができる。識別子がその個数を超えると(1428-YES)、プロセッサは、ラベリング動作を中断することがある。識別子がその個数以下の場合(1428-NO)、プロセッサは、動作1426に基づいて増加した識別子を有する外部オブジェクトに対して追跡を実行することができる。
【0199】
図15は、本発明の一実施形態による画像内でユーザの入力によって選択された領域に関連するラベリングデータを取得する過程を説明するための図である。
図15において、参照番号1500は、ラベリングデータを生成するための画像フレームを示し、参照番号1505及び1510は、画像フレーム1500内に存在する外部オブジェクトをそれぞれ示す。
【0200】
参照番号1550は、本発明の一実施形態による外部オブジェクト1505、1510に対応するラベリングデータを生成するために、ユーザ入力によって電子装置が各外部オブジェクト1505、1510に対応するバウンディングボックス1555、1560をそれぞれ表示し、各バウンディングボックス1555、1560の横、縦サイズのピクセル値を表示することを示す。一実施形態によれば、電子装置は、
図1bを参照して説明した動作に基づいて、バウンディングボックス1555、1560への入力を識別することができる。
【0201】
図16は、本発明の一実施形態による画像内でオブジェクトを識別するための学習用のラベリングデータを生成する過程を説明するための図である。
【0202】
本発明の一実施形態による電子装置のプロセッサは、画像内でオブジェクトを識別するための学習用のラベリングデータを生成するために、学習の対象となる画像ファイル1602と、その画像ファイルに対してラベリングしたラベルファイル(label file)1604を、1つのペア(one pair)として管理して、記憶装置に記憶することができる。
【0203】
図16では、学習の対象となる画像ファイル1602の形式として、「jpg」を用いたものを示しているが、これは、一実施形態に過ぎず、本発明の実施形態を限定するものではない。例えば、画像ファイル1602の形式として「png」又は「gif」などの様々なビデオ圧縮形式を使用することも可能であろう。
【0204】
また、
図16は、画像ファイル1602に対するラベルファイル1604の拡張子が「json」であることを示しているが、これは、画像ファイル1602内のオブジェクト(objects)のラベリング情報を、Javascriptオブジェクト文法で構造化したデータを表現するためのフォーマットであるJSON(Java Script Object Notation)を用いる場合を説明するための一実施形態に過ぎず、本発明の実施形態を限定するものではない。例えば、ラベリングデータのフォーマットとして、XML(eXtensible Markup Language)、csv(comma-separated values)、COCO(Common Object in Context)、VOC(Visual Object Classe)、TFRecord(Tensor Flow Record)などの様々な階層データ構造を表すことができるデータセットのフォーマットを使用することができ、ラベリングに使用するツール(tool)に応じて、ラベリングデータフォーマットは、変わり得る。
【0205】
図16の参照番号1650は、本発明の実施形態によるオブジェクト検出(object detection)のためのラベリングデータを生成する対象である画像ファイル1602の一例を示す。画像フレーム1650は、横1280ピクセル(pixel)、縦650ピクセル(pixel)の大きさを有し、画像フレーム1650内でラベリングデータを生成するオブジェクトは、合計3個で、歩行者オブジェクト2個と車両オブジェクト1個を含む。具体的には、参照番号1652は、歩行者オブジェクト0に対応するバウンディングボックスを示し、参照番号1654は、車両オブジェクト0に対するバウンディングボックスを示し、参照番号1656は、歩行者オブジェクト1に対応するバウンディングボックスをそれぞれ示す。そして、
図16において、(X1、Y1)と(X2、Y2)は、画像フレーム1650内でのバウンディングボックス1652の位置を示すX軸、Y軸の座標点であり、バウンディングボックス1652の左側上端の頂点と、右側下端の頂点とをそれぞれ表すことができる。
【0206】
また、
図16において、(X3、Y3)と(X4、Y4)は、画像フレーム1650内でのバウンディングボックス1654の位置を示すX軸、Y軸の座標点であり、バウンディングボックス1654の左側上端の頂点と、右側下端の頂点とをそれぞれ表すことができる。そして、(X5、Y5)と(X6、Y6)は、画像フレーム1650内でのバウンディングボックス1656の位置を示すX軸、Y軸の座標点であり、バウンディングボックス1656の左側上端の頂点と、右側下端の頂点とをそれぞれ表すことができる。
【0207】
そして、本発明の一実施形態では、
図16において、バウンディングボックス1652内の歩行者オブジェクトのオブジェクトクラスを「Pedestrian」と指定し、当該オブジェクトの追跡のためのオブジェクト識別子を「0」と指定し、バウンディングボックス1654内の車両オブジェクトのオブジェクトクラスを「car」と指定し、当該オブジェクトの追跡のためのオブジェクト識別子を「0」と指定し、バウンディングボックス1656の歩行者オブジェクトのオブジェクトクラスを「pedestrian」と指定し、当該オブジェクトを追跡するためのオブジェクト識別子を「1」と指定したことがわかる。
【0208】
図16に示すオブジェクトクラスとオブジェクト識別子とは、一例に過ぎず、ユーザの指定に応じて異なるように設定してもよい。
【0209】
図17は、本発明の一実施形態によって生成されたラベリングデータの階層構造を説明するための図である。
図17を参照すると、参照番号1702は、対象ファイルでラベリングデータを生成するために使用されるツール(Tool)に関する情報の例を示し、参照番号1704は、ラベリングデータに対応するファイルの経路の例を示す。参照番号1702のツール情報は、ラベリングに使用するツールの種類、そのツールのバージョン情報などを含むことができる。
【0210】
本発明の一実施形態によるラベリングデータを生成するためのツールは、機械学習又はディープラーニングモデリングタスクを実行する前に、学習データに特定の値を割り当てることができるソフトウェアプログラムであり、「labellmg」、「CVAT(Computer Vision Annotation Tool」、「LabelMe」、「Labelbox」、「VoTT」、「imglab」、「YOLO Mark」、「OpenLabeling」、「PixelAnnotationTool」、「imagetagger」、「Alturos.ImageAnnotation」、「DeepLabel」、「MedTagger」、「Turktools」、「Pixie」、「OpenLabeler」、「Anno-Mage」、「CATMAID」、「makesense.ai」、「LOST(Label Object and Save Time)」、「annotorious」、「sloth」などを含むことができる。しかし、これは、本発明の実施形態に過ぎず、本発明の実施形態を限定するものではない。具体的には、本発明の実施形態によるラベリングデータを生成するためのツールは、オブジェクト検出、オブジェクト識別の学習のために、画像中のRectangle、Polygon、Line、Pointなど、様々な形状の図形を指定して、ラベリングを行い、そのバウンディングボックス関連情報を、一定の形式のデータ構造として保存できるソフトウェアプログラムであれば、可能である。また、参照番号1706は、ラベリングデータに対応するファイル(画像ファイル)の幅に関する情報の例、参照番号1708は、ラベリングデータに対応するファイル(画像ファイル)の高さに関する情報の例をそれぞれ示す。
【0211】
そして、参照番号1750は、ラベリングデータの対象となるデータのフラグ情報の一例である。本発明の実施形態では、ラベリングデータの対象となるデータは、画像ファイルであり、自律走行に必要なオブジェクト識別率、オブジェクト検出率が天気(曇り、晴れ、雨、雪など)、昼夜などの環境に影響を多く受けるため、フラグ情報を晴れの日(Sunny day)、雨の日(Rainy day)、曇りの日(Cloudy day)と設定したが、本発明を限定するものではない。
【0212】
本発明の実施形態において、ラベリングデータの対象となる画像フレーム1650は、天気が晴れの日(Sunny day)であるので、
図17では、画像フラグ1750に含まれるフラグのうち、晴れの日(Sunny day)フラグは、「True」、雨の日(Rainy day)フラグと曇りの日(Cloudy day)フラグはそれぞれ、「False」に割り当てられていることがわかる。即ち、
図17の参照番号1750に示されるデータは、一実施形態に過ぎず、オブジェクト識別率、オブジェクト検出率を高めるために使用され得る様々なフラグが存在することができる。
【0213】
図18は、本発明の一実施形態によって生成されたラベリングデータの外部オブジェクトに関する情報の階層構造を説明するための図である。
図18の参照番号1810は、
図16の歩行者オブジェクト0に対応するバウンディングボックス1652のラベリングデータ構造を示す例である。
【0214】
参照番号1810のLabelパラメータは、バウンディングボックス1652内のオブジェクトが歩行者であるため、「Pedestrian」に割り当てられ、Tracking IDパラメータは、「0」に割り当てられ、Shape Typeパラメータは、「Rectangle」に割り当てられ、Pointsパラメータは、バウンディングボックス1652の少なくとも2つの頂点座標(X1、Y1)、(X2、Y2)値に割り当てられる。そして、
図18において、Label Flagsパラメータは、合計3個のサブパラメータ(補間される、隠される、切り取られる場合)を含み、この3個のサブパラメータは、バウンディングボックス1652内に含まれるオブジェクトが、補間されたオブジェクトであるか、他のオブジェクトによって隠されたオブジェクトであるか、一部が切り取られたオブジェクトであるかを示す。参照番号1810のLabel Flagsのうち、「補間された」パラメータは、「True」に、「隠された」パラメータと「切り取られた」パラメータはともに、「False」に割り当てられることを示す。
【0215】
参照番号1830のLabelパラメータは、バウンディングボックス1654内のオブジェクトが車両であるため、「Car」に割り当てられ、Tracking IDパラメータは、「0」に割り当てられ、Shape Typeパラメータは、「Rectangle」に割り当てられ、Pointsパラメータは、バウンディングボックス1654の少なくとも2つの頂点座標値((X3、Y3)、(X4、Y4))に割り当てられる。そして、参照番号1830のLabel Flagsのうち、「補間された」パラメータ、「隠された」パラメータ、「切り取られた」パラメータは、いずれも「False」に割り当てられていることを示す。
【0216】
参照番号1850のLabelパラメータは、バウンディングボックス1656内のオブジェクトが歩行者であるので、「Pedestrian」に割り当てられ、Tracking IDパラメータは、バウンディングボックス1656の他の歩行者オブジェクトと区別するために、「1」に割り当てられ、Shape Typeパラメータは、「Rectangle」に割り当てられ、Pointsパラメータは、バウンディングボックス1656の少なくとも2つの頂点座標値((X5、Y5)、(X6、Y6))に割り当てられる。そして、参照番号1850のLabel Flagsのうち、「補間された」パラメータ、「隠された」パラメータ、「切り取られた」パラメータは、いずれも「False」に割り当てられていることを示す。
【0217】
図18に示すラベリングデータの外部オブジェクトに関する情報の階層構造に含まれる情報は、本発明の理解を容易にするために例示されており、外部オブジェクトクラスに「Bus」、「Truck」、「Pick-UP Truck」、「Sedan」、「SUV(Sports Utility Vehicle)」、「Bike」、「Scooter」、「Motor-Cycle」など、車両の自律走行のために識別する必要のある外部オブジェクトを含んでもよい。
【0218】
また、
図18には、ラベリング対象のオブジェクトに対応するバウンディングボックスが、「矩形(Rectangle)」として割り当てられているので、その位置座標を表すPointsが、2つのX軸座標、Y軸座標値のペア(pair)として割り当てられるが、Shape Typeが「Polygon」の場合は、ユーザがラベリングする対象オブジェクトの外観に沿って生成した点(points)のX軸座標、Y軸座標値のペアが、ユーザが生成した点の順序に応じて保存される。本発明の一実施形態により、Shape Typeが「Polygon」の場合、Pointsパラメータに割り当てられる座標の例は、後述する
図19を参照して説明する。
【0219】
図19は、本発明の一実施形態によるShape Typeが「Polygon」の場合、Pointsパラメータに割り当てられる座標の一例を示す図である。
図19を参照すると、ラベリング対象の画像フレーム内の外部オブジェクトである車両1950に対するラベリングデータの「Shape Type」が「ポリゴン(Polygon)」であり、ユーザが1番から20番までの合計20点(points)を生成した場合、参照番号1970のように、1番から20番までの合計20点(points)に該当する(X1、Y1)から(X20、Y20)までのX軸座標、Y軸座標値のペアが割り当てられる。
【0220】
本発明で説明したラベリングデータは、ユーザのローカルコンピュータの記憶装置又はクラウドサーバの記憶装置に記憶することができる。
【0221】
図20は、本発明の一実施形態によるニューラルネットワークの効率的なトレーニングのために、生成されたラベリングデータをトレーニングセット、検証セット、及び/又はテストセットに区分ける例を説明するための図である。
【0222】
図20を参照すると、本発明の一実施形態による電子装置は、ラベリングデータ(Labeled Data)2005の画像フラグを分析し(2010)、分析された画像フラグ別にラベリングされたデータを分類することができる。
【0223】
本発明の一実施形態による電子装置のプロセッサは、参照番号2020のようにラベリングされたデータ2005を、画像フラグに従って天気関連フラグ別に分類するか、時間別に分類することができる。具体的には、
図20では、ラベリングされたデータ2010を、天気関連フラグに従って、晴れの日(Sunny day)、曇りの日(Cloudy day)、雪の日(Snowy day)、雨の日(Rainy day)及び霧の日(Foggy day)に分類できる。
【0224】
さらに、本発明の一実施形態による電子装置のプロセッサは、ラベリングデータ2005を、画像フラグに応じた時間別フラグに基づいて、午前、午後、夜、日没、日出に分類することができる。
【0225】
また、本発明の一実施形態による電子装置のプロセッサは、参照番号2020のように分類されたラベリングデータを、ラベリングデータの量と、ユーザが予め設定した値とを比較し、その比較結果に応じて、ラベリングデータ2005をトレーニングセット2042、検証セット2044、及び/又はテストセット2046に区分ける区分方式を決定することができる。このとき、ラベリングデータの区分方式を決定するための予め設定された値は、事前にユーザによって決定された値であり、検証セット2044を生成するのに十分に確保されるほどラベリングデータが確保されたか否かを決定するための事前経験値や実験値などによって決定することができる。
【0226】
参照番号2040は、ラベリングデータ2005の量が予め設定された値より多い場合に、本発明の一実施形態による電子装置のプロセッサがラベリングデータ2005を、トレーニングセット2042、検証セット2044及び/又はテストセット2046に区分ける方法の例を示す。このとき、参照番号2040では、ユーザが予め設定した割合に応じて、電子装置のプロセッサは、トレーニングセット2042、検証セット2044、及び/又はテストセット2046に区分けることができる。
【0227】
一方、参照番号2060は、ラベリングデータ2005の量が予め設定された値より小さいか等しい場合に、本発明の一実施形態による電子装置のプロセッサは、ラベリングデータ2005をトレーニングセット2042及びテストセット2046に区分ける方式の例を示す。このとき、参照番号2060では、ユーザが予め設定した割合に応じて、電子装置のプロセッサがトレーニングセット2042とテストセット2046とに区分され、トレーニングセット2042の信頼度を検証するために、ニューラルネットワークの信頼度を検証するためのアルゴリズム2065の1つであるK分割交差検証(K-fold cross validation)を使用することを示す。
【0228】
前述のように、一実施形態によれば、電子装置は、メモリ及びプロセッサを含むことができる。前記プロセッサは、前記メモリから、ビデオ用の複数の画像及び前記複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別するように構成されてもよい。前記プロセッサは、前記第1の画像内の前記第1の位置に基づいて、前記複数の画像のうち前記第1のタイミングの後の第2のタイミングの第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別するように構成されてもよい。前記プロセッサは、前記第1の位置及び前記第2の位置に基づいて、前記第1のタイミングと前記第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、前記外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得するように構成されてもよい。前記プロセッサは、前記ビデオの前記時間区間内で識別された前記外部オブジェクトの動きを示すラベリング情報として、前記第1の位置、前記1つ又はそれ以上の第3の位置、及び前記第2の位置を記憶するように構成されてもよい。
【0229】
例えば、前記プロセッサは、前記第1のタイミングでの前記第1の画像内の前記第1の位置を示す第1の座標と、前記第2のタイミングでの前記第2の画像内の前記第2の位置を示す第2の座標とを、前記第1のタイミングと前記第2のタイミングとの間の長さを用いて補間することによって、前記1つ又はそれ以上の第3の位置を取得するように構成することができる。
【0230】
例えば、前記プロセッサは、前記第1の座標及び前記第2の座標を、前記1つ又はそれ以上の第3の画像の前記時間区間内のタイミングに基づいて補間することによって、前記1つ又はそれ以上の第3の位置を取得するように構成することができる。
【0231】
例えば、前記プロセッサは、前記外部オブジェクトに対応する前記第1の位置を含む前記第1の画像の一部に含まれる1つ又はそれ以上の特徴点と、前記外部オブジェクトに対応する第2の画像に含まれる1つ又はそれ以上の特徴点とを比較して、前記第2の画像内で前記第2の位置を識別するように構成することができる。
【0232】
例えば、前記プロセッサは、前記第1のタイミングの後の閾値区間の後の前記第2のタイミングの前記第2の画像に対する前記第2の位置を識別することに基づいて、前記1つ又はそれ以上の第3の画像に含まれる少なくとも1つの特徴点を用いて、前記第3の位置を変更するように構成することができる。
【0233】
例えば、前記プロセッサは、前記第1の画像及び前記第2の画像を、前記外部オブジェクトを認識するためのモデルに入力して、前記時間区間内にキャプチャされた外部オブジェクトの前記第1の位置及び前記第2の位置を識別するように構成することができる。
【0234】
例えば、電子装置は、ディスプレイをさらに含んでもよい。前記プロセッサは、前記ディスプレイに、前記ビデオを再生するための画面を表示するように構成することができる。前記プロセッサは、前記複数の画像のいずれかが、前記ビデオの再生を示す入力に基づいて、前記画面内に表示される状態で、前記ラベリング情報に基づいて、前記画面内に表示された画像上に重畳され(superimposed on)、前記外部オブジェクトの位置を示す視覚オブジェクトを表示するように構成することができる。
【0235】
例えば、前記プロセッサは、前記画面上に前記1つ又はそれ以上の第3の画像のいずれかを表示する状態内で、前記視覚オブジェクトの動きを示す入力を識別するように構成されてもよい。前記プロセッサは、前記入力に基づいて、前記1つ又はそれ以上の第3の画像のうち、前記画面に表示された画像とは異なる他の画像に対応する前記外部オブジェクトの位置を、前記入力によって移動された前記視覚オブジェクトの位置に基づいて調整するように構成することができる。
【0236】
前述のように、一実施形態による、電子装置の方法は、前記電子装置のメモリから、ビデオ用の複数の画像及び前記複数の画像のうち第1のタイミングの第1の画像内で、外部オブジェクトに関連する第1の位置を識別する動作を含むことができる。この方法は、前記第1の画像内の前記第1の位置に基づいて、前記複数の画像のうち前記第1のタイミングの後の第2のタイミングの第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別する動作を含むことができる。この方法は、前記第1の位置及び前記第2の位置に基づいて、前記第1のタイミングと前記第2のタイミングとの間の時間区間に含まれる1つ又はそれ以上の第3の画像に対応し、前記外部オブジェクトに関連する1つ又はそれ以上の第3の位置を取得する動作を含むことができる。この方法は、前記ビデオの前記時間区間内で識別された前記外部オブジェクトの動きを示すラベリング情報として、前記第1の位置、前記1つ又はそれ以上の第3の位置、及び前記第2の位置を記憶する動作を含むことができる。
【0237】
例えば、前記取得する動作は、前記第1のタイミングでの前記第1の画像内の前記第1の位置を示す第1の座標と、前記第2のタイミングでの前記第2の画像内の前記第2の位置を示す第2の座標とを、前記第1のタイミングと前記第2のタイミングとの間の長さを用いて補間することによって、前記1つ又はそれ以上の第3の位置を取得する動作を含むことができる。
【0238】
例えば、前記取得する動作は、前記第1の座標及び前記第2の座標を、前記1つ又はそれ以上の第3の画像の前記時間区間内のタイミングに基づいて補間することによって、前記1つ又はそれ以上の第3の位置を取得する動作を含むことができる。
【0239】
例えば、前記第2の位置を識別する動作は、前記外部オブジェクトに対応する前記第1の位置を含む前記第1の画像の部分に含まれる1つ又はそれ以上の特徴点を比較することによって、前記第2の画像内で、前記第2の位置を識別する動作を含むことができる。
【0240】
例えば、前記取得する動作は、前記第1のタイミングの後の閾値区間の後の前記第2のタイミングの前記第2の画像に対する前記第2の位置を識別することに基づいて、前記1つ又はそれ以上の第3の画像に含まれる少なくとも1つの特徴点を用いて、前記第3の位置を変更する動作を含むことができる。
【0241】
例えば、前記第2の位置を識別する動作は、前記第1の画像及び前記第2の画像を、前記外部オブジェクトを認識するためのモデルに入力して、前記時間区間内にキャプチャされた外部オブジェクトの前記第1の位置及び前記第2の位置を識別する動作を含むことができる。
【0242】
例えば、前記方法は、前記電子装置のディスプレイに、前記ビデオを再生するための画面を表示する動作を含むことができる。前記方法は、前記複数の画像のいずれかが、前記ビデオの再生を示す入力に基づいて、前記画面内に表示される状態で、前記ラベリング情報に基づいて、前記画面内に表示された前記画像上に重畳され、前記外部オブジェクトの位置を示す視覚オブジェクトを表示する動作を含むことができる。
【0243】
例えば、前記画面上に前記1つ又はそれ以上の第3の画像のいずれかを表示する状態内で、前記視覚オブジェクトの動きを示す入力を識別する動作を含むことができる。この方法は、前記入力に基づいて、前記1つ又はそれ以上の第3の画像のうち、前記画面に表示された画像とは異なる他の画像に対応する前記外部オブジェクトの位置を、前記入力によって移動された前記視覚オブジェクトの位置に基づいて調整する動作をさらに含むことができる。
【0244】
前述のように、一実施形態による電子装置は、ディスプレイ、メモリ、及びプロセッサを含むことができる。前記プロセッサは、前記メモリに記憶されたビデオの第1の画像を、前記ディスプレイに表示した状態で、前記第1の画像内で外部オブジェクトに関連する第1の位置の選択を示す第1の入力を識別するように構成されてもよい。前記プロセッサは、前記第1の入力に基づいて、前記外部オブジェクトを認識するための第1のタイプの計算(first type of computation)を実行して、前記ビデオ用の複数の画像のうち、前記第1の画像のタイミングから開始される時間区間の後の第2の画像内で、前記外部オブジェクトに関連する第2の位置を識別するように構成することができる。前記プロセッサは、前記第1の位置及び前記第2の位置を補間するための第2のタイプの計算を実行して、前記区間に含まれる1つ又はそれ以上の第3の画像内で、前記外部オブジェクトに関連する第3の位置を取得するように構成することができる。前記プロセッサは、前記時間区間に含まれる前記ビデオの少なくとも一部の再生を示す第2の入力に応答して、前記ディスプレイに前記第1の画像、前記1つ又はそれ以上の第3の画像、及び前記第2の画像のいずれかを表示し、前記ディスプレイに表示された画像上に重畳され、前記第1の位置、前記第3の位置、又は前記第2の位置のいずれかに対応する視覚オブジェクトを表示するように構成することができる。
【0245】
例えば、前記プロセッサは、1つ又はそれ以上の特徴点に基づく前記外部オブジェクトを認識するための前記第1のタイプの前記計算を、前記第1の画像の前記タイミングから前記時間区間ごとに繰り返し実行するように構成することができる。
【0246】
例えば、前記プロセッサは、前記第1の位置、前記第2の位置、及び前記時間区間内で、前記1つ又はそれ以上の第3の画像のタイミングに基づいて、前記第3の位置を取得するための前記第2のタイプの計算を実行するように構成することができる。
【0247】
例えば、前記プロセッサは、前記ビデオに対応するラベリング情報として、前記メモリに、前記第1の位置、前記第3の位置、及び前記第2の位置を記憶するように構成されてもよい。
【0248】
例えば、前記プロセッサは、前記第1の画像の前記タイミングを示すデータを、前記第1の位置と連動して、前記ラベリング情報に格納するように構成されてもよい。
【0249】
前述したように、一実施形態による、電子装置の方法は、前記電子装置のメモリに記憶されたビデオの第1の画像を、前記電子装置のディスプレイに表示した状態で、前記第1の画像内で外部オブジェクトと関連する第1の位置の選択を示す第1の入力を識別する動作を含むことができる。前記方法は、前記第1の入力に基づいて、前記外部オブジェクトを認識するための第1のタイプの計算を実行して、前記ビデオのための複数の画像のうち、前記第1の画像のタイミングから始まる時間区間の後の第2の画像内で、外部オブジェクトに関連する第2の位置を識別する動作を含むことができる。この方法は、前記第1の位置及び前記第2の位置を補間するための第2のタイプの計算を実行して、前記時間区間に含まれる1つ又はそれ以上の第3の画像内で、前記外部オブジェクトに関連する第3の位置を取得する動作を含むことができる。この方法は、前記時間区間に含まれる前記ビデオの少なくとも一部の再生を示す第2の入力に応答して、前記ディスプレイに前記第1の画像、前記1つ又はそれ以上の第3の画像、及び前記第2の画像のいずれかを表示し、前記ディスプレイに表示された画像上に重畳され、前記第1の位置、前記第3の位置、又は前記第2の位置のいずれかに対応する視覚オブジェクトを表示する動作を含むことができる。
【0250】
例えば、前記第2の位置を識別する動作は、1つ又はそれ以上の特徴点に基づく前記外部オブジェクトを認識するための前記第1のタイプの計算を、前記第1の画像の前記タイミングから前記時間区間ごとに繰り返し実行する動作を含むことができる。
【0251】
例えば、前記第3の位置を取得する動作は、前記第1の位置、前記第2の位置、及び前記時間区間内で前記1つ又はそれ以上の第3の画像のタイミングに基づいて、前記第3の位置を取得するための前記第2のタイプの計算を実行する動作を含むことができる。
【0252】
例えば、前記方法は、前記メモリに、前記ビデオに対応するラベリング情報として、前記第1の位置、前記第3の位置、及び前記第2の位置を格納する動作をさらに含むことができる。
【0253】
例えば、前記格納する動作は、前記第1の画像の前記タイミングを示すデータを、前記第1の位置と連動して、前記ラベリング情報に格納する動作を含むことができる。
【0254】
前述の装置は、ハードウェア構成要素、ソフトウェア構成要素、及び/又はハードウェア構成要素及びソフトウェア構成要素の組み合わせで実施することができる。例えば、実施形態で説明した装置及び構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、又は命令(instruction)を実行及び応答することができる他の任意の装置など、1つ又はそれ以上の汎用コンピュータ又は特殊目的コンピュータを使用して実装することができる。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ又はそれ以上のソフトウェアアプリケーションを実行することができる。さらに、処理装置は、ソフトウェアの実行に応答して、データにアクセス、格納、操作、処理及び生成することができる。理解の便宜のために、処理装置は、1つが使用されると説明されている場合もあるが、当該技術分野における通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数タイプの処理要素を含むことができることがわかる。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含むことができる。さらに、パラレルプロセッサ(parallel processor)などの他の処理構成(processing configuration)も可能である。
【0255】
ソフトウェアは、コンピュータプログラム(computer program)、コード(code)、命令(instruction)、又はこれらのうち1つ又はそれ以上の組み合わせを含むことができ、所望のように動作するように処理装置を構成するか、独立して又は組み合わせて(collectively)処理装置に命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されるか、又は処理装置に命令又はデータを提供するために、任意のタイプの機械、構成要素(component)、物理装置、コンピュータ記憶媒体又は装置に具体化(embody)されてもよい。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散した方法で保存するか、実行されてもよい。ソフトウェア及びデータは、1つ又はそれ以上のコンピュータ可読記録媒体に記憶することができる。
【0256】
実施形態による方法は、様々なコンピュータ手段を介して実行できるプログラム命令の形態で実施され、コンピュータ可読媒体に記録することができる。この場合、媒体は、コンピュータで実行可能なプログラムを保存し続けるか、実行又はダウンロードのために一時的に保存することができる。さらに、媒体は、単一又は複数のハードウェアが結合された形態の様々な記録手段又は記憶手段であり得、任意のコンピュータシステムに直接接続される媒体に限定されず、ネットワーク上に分散して存在することができる。媒体の例としては、ハードディスク、フロッピーディスク(floptical disk)、磁気テープなどの磁気媒体、CD-ROM、DVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの磁気光学媒体(magneto-optical medium)、及びROM、RAM、フラッシュメモリなどを含むプログラム命令が格納されるように構成されたものがあり得る。また、他の媒体の例として、アプリケーションを流通するアプリストアや他の様々なソフトウェアを供給又は流通するサイト、サーバなどで管理する記録媒体から記憶媒体も挙げられる。
【0257】
以上のように、実施形態が限定された実施形態と図面によって説明されたが、当該技術分野における通常の知識を有する者であれば、前記の記載から様々な修正及び変形が可能である。例えば、記載された技術は、記載された方法とは異なる順序で実行され、及び/又は記載されたシステム、構造、装置、回路などの構成要素が、記載された方法とは異なる形態で結合されるか又は組み合わされ、又は他の構成要素あるいは、均等物によって代替又は置換されても、適切な結果が達成され得る。
【0258】
したがって、他の実現、他の実施形態、及び特許請求の範囲と均等なものも、後述する特許請求の範囲に属する。