(57)【要約】【課題】プログラミングの知識がない人でも、オブジェクトの動きからプログラムの内容を理解し易くするコード動画連携装置を提供する。【解決手段】コード動画連携装置９１は、ソースコード２１に示された一連の指示に従って動作しているオブジェクト９２の動画を取得する動画取得部９１６と、ソースコード２１を取得するコード取得部９１０と、動画におけるオブジェクト９２の動作と、当該動作に対応する指示が記述されたソースコード２１のステートメントとを紐付けるコード動画合成部９１２とを備える。【選択図】図２Ａ
2019003480.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードに示された一連の指示に従って動作しているオブジェクトの動画を取得する動画取得手段と、
前記ソースコードを取得するコード取得手段と、
前記動画における前記オブジェクトの動作と、前記動作に対応する前記指示が記述された前記ソースコードのステートメントとを紐付けるコード動画合成手段とを
備えることを特徴とするコード動画連携装置。
【請求項２】
前記ソースコードから前記オブジェクトとしてのデバイスが理解可能なコードを生成するコード生成手段と、
前記コードを前記デバイスに出力するコード出力手段と備え、
前記コード動画合成手段は、前記コード出力手段が前記コードを出力したタイムスタンプを用いて、前記動作と前記ステートメントとを紐付けることを特徴とする請求項１に記載のコード動画連携装置。
【請求項３】
前記コード動画合成手段は、
前記オブジェクトとしてのデバイスから出力されたタイムスタンプであって、前記デバイスが前記ソースコードを実行した前記タイムスタンプを取得し、
前記タイムスタンプを用いて、前記動作と前記ステートメントとを紐付けることを特徴とする請求項１又は２に記載のコード動画連携装置。
【請求項４】
前記オブジェクトとしてのデバイスから前記動作として出力された音響信号を復号する復号手段を更に備え、
前記コード動画合成手段は、前記復号手段により復号された信号から前記音響信号の出力動作に対応する前記ステートメントを特定することにより、前記動作と前記ステートメントとを紐付けることを特徴とする請求項１〜３のいずれか一項に記載のコード動画連携装置。
【請求項５】
前記コード動画合成手段は、前記動画を解析して前記動作及び前記動作に対応する前記ステートメントを特定することにより、前記動作と前記ステートメントとを紐付けることを特徴とする請求項１〜４のいずれか一項に記載のコード動画連携装置。
【請求項６】
コンピュータを、
ソースコードに示された一連の指示に従って動作しているオブジェクトの動画を取得する動画取得手段、
前記ソースコードを取得するコード取得手段、及び
前記動画における前記オブジェクトの動作と、前記動作に対応する前記指示が記述された前記ソースコードのステートメントとを紐付けるコード動画合成手段
として機能させるためのコード動画連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコードの位置とオブジェクトの動きとを紐付けするコード動画連携装置及びコード動画連携プログラムに関する。
【背景技術】
【０００２】
従来から、小学校、中学校および高校などにおける教育教材用ロボットであって、予めプログラミングされたプログラムによって制御する自動制御の知識を教授するのに好適に用いられるロボットの発明が知られている（特許文献１参照）。
【０００３】
特許文献１では、製作したプログラムの内容を表示部で見ながら、実際に動作するロボットの動作を見る。これら、表示部の確認とロボットの動作の確認とを合わせることで、使用者は製作したプログラムどおりにロボットが動作していることを確認できることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2011-224732号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、プログラムによって、ＩｏＴデバイスを動かして学ぶ場合、コンピュータプログラムの内容とその時のＩｏＴデバイスの動きが関連付けし辛い。特に、他人の作ったコンピュータプログラムを見る場合は分かり難く、プログラミングの知識が必要となってしまう。
【０００６】
そこで、本発明は、このような状況に鑑みてなされたものであり、プログラミングの知識がない人でも、オブジェクトの動きからプログラムの内容を理解し易くするコード動画連携装置及びコード動画連携プログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るコード動画連携装置は、ソースコードに示された一連の指示に従って動作しているオブジェクトの動画を取得する動画取得手段と、ソースコードを取得するコード取得手段と、動画におけるオブジェクトの動作と、動作に対応する指示が記述されたソースコードのステートメントとを紐付けるコード動画合成手段とを備える。
【発明の効果】
【０００８】
上述したコード動画連携装置によれば、プログラミングの知識がない人でも、オブジェクトの動きからプログラムの内容を理解し易くなる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１実施形態に係わるコード動画連携システムの全体概略構成図である。
【図２Ａ】図２Ａは、第１実施形態に係わるＩｏＴ連携装置９１の機能ブロック構成図である。
【図２Ｂ】図２Ｂは、第１実施形態の変形例に係わるＩｏＴ連携装置９１の機能ブロック構成図である。
【図３Ａ】図３Ａは、第１実施形態に係わるコード動画連携システムの動作例を示すフローチャートである。
【図３Ｂ】図３Ｂは、第１実施形態の変形例に係わるコード動画連携システムの動作例を示すフローチャートである。
【図４】図４は、第２実施形態に係わるＩｏＴ連携装置９１の機能ブロック構成図である。
【図５】図５は、第２実施形態に係わるコード動画連携システムの動作例を示すフローチャートである。
【図６】図６は、第３実施形態に係わるコード動画連携システムの全体概略構成図である。
【図７】図７は、第３実施形態に係わるコード動画連携システムの動作例を示すフローチャートである。
【図８】図８は、連携コード表示部９１３が表示する画像例を示す図である。
【発明を実施するための形態】
【００１０】
以下、実施形態を図面に基づいて説明する。なお、同一の機能や構成には、同一または類似の符号を付して、その説明を適宜省略する。
【００１１】
（第１実施形態）
図１を参照して、第１実施形態に係わるコード動画連携システムの全体構成を説明する。第１実施形態に係わるコード動画連携システムは、ソースコードに示された一連の指示に従って動作するオブジェクトの一例としてのＩｏＴデバイス９２と、ソースコードに従って動作しているＩｏＴデバイス９２の動画とソースコードとを連携させるＩｏＴ連携装置９１とを備える。
【００１２】
コード動画連携システムは、ソースコードに従って動作しているＩｏＴデバイス９２を撮像して、ＩｏＴデバイス９２の動画（音声を含む）を取得するカメラ９３を更に備えていてもよい。勿論、予めＩｏＴデバイス９２を撮像した動画が有れば、カメラ９３は省略可能である。
【００１３】
ＩｏＴデバイス９２は、コンピュータプログラム（コード）に従って動作可能なデバイスの一例であり、ＩｏＴデバイス９２の代わりに、コンピュータプログラム（コード）に従って動作可能な他のロボットに置き換えて実施することも可能である。デバイスの「動作」には、デバイス全体或いは一部の移動や回転、デバイスが備える発光部の発光、デバイスが備えるスピーカからの発音（音を発すること）など、デバイスに対してコードによって指示することが可能であり、且つ動画として記録可能な全ての動作を含む。
【００１４】
なお、「オブジェクト」とは、デバイス等の現実に存在するハードウェアのみならず、仮想現実（ＶＲ）や拡張現実（ＡＲ）において存在するアバターやアイコンなどのソフトウェアをも含む概念である。言うまでもないが、オブジェクトがソフトウェアである場合、「動作」を撮像するカメラ９３は不要となる。
【００１５】
ＩｏＴ連携装置９１は、ＩｏＴデバイス９２が理解可能なコードを、ＩｏＴデバイス９２へ出力し、当該コードを受信して当該コードに従って動作するＩｏＴデバイス９２からコード実行時のタイムスタンプなどの情報を受信することができる。一方、カメラ９３は、コードに従って動作しているＩｏＴデバイス９２を撮像し、取得した動画にタイムスタンプを付してＩｏＴ連携装置９１へ送信する。ＩｏＴ連携装置９１は、ＩｏＴデバイス９２及びカメラ９３の双方から受信するタイムスタンプを用いて、ＩｏＴデバイス９２の動作と、この動作に対応する指示が記述されたソースコードのステートメントとを紐付けることができる。
【００１６】
ＩｏＴ連携装置９１（コード動画連携装置）として、ＣＰＵ（中央処理装置）、メモリ、及び入出力部を備える汎用のマイクロコンピュータを用いることができる。ＩｏＴ連携装置９１には、コード動画連携装置として機能させるためのコンピュータプログラム（コード動画連携プログラム）がインストールされている。コンピュータプログラムを実行することにより、ＩｏＴ連携装置９１は、コード動画連携装置が備える複数の情報処理回路（９１０〜９１７、図２Ａ及び図４参照）として機能する。なお、ここでは、ソフトウェアによってコード動画連携装置が備える複数の情報処理回路（９１０〜９１７）を実現する例を示すが、もちろん、以下に示す各情報処理を実行するための専用のハードウェアを用意して、情報処理回路（９１０〜９１７）を構成することも可能である。また、複数の情報処理回路（９１０〜９１７）を個別のハードウェアにより構成してもよい。
【００１７】
図２Ａを参照して、第１実施形態に係わるＩｏＴ連携装置９１の機能的構成を説明する。第１実施形態に係わるＩｏＴ連携装置９１は、複数の情報処理回路として、コード取得部９１０と、コード生成部９１１と、コード動画結合部９１２と、連携コード表示部９１３と、コード出力部９１４と、動画取得部９１６とを備える。
【００１８】
コード取得部９１０（コード取得手段）は、ＩｏＴデバイス９２に実行させたいソースコードを外部から取得する。例えば、ユーザからの指示に従い、コード取得部９１０はソースコードを取得する。ソースコードの取得方法は特に問わない。取得されたソースコードは、コード生成部９１１（コード生成手段）に転送され、コード生成部９１１は、ソースコードをＩｏＴデバイス９２が直接的に実行可能なコード（機械語、オブジェクトコードを含む）に変換し、コード出力部９１４（コード出力手段）へ転送する。
【００１９】
コード出力部９１４は、変換されたコードをＩｏＴデバイス９２に出力する。コード出力部９１４は、ＩｏＴデバイス９２へコードを出力したタイミングを示す情報として、タイムスタンプをコード動画結合部９１２へ送信する。具体的には、コード出力部９１４は、ＩｏＴデバイス９２へ出力したステートメント毎に、タイムスタンプを送信する。変換されたコードを受信したＩｏＴデバイス９２は、受信したコードに示された指示に従って動作する。
【００２０】
図１のカメラ９３は、コードに従って動作しているＩｏＴデバイス９２を撮像し、取得した動画にタイムスタンプを付してＩｏＴ連携装置９１へ送信する。具体的には、カメラ９３は、動画に含まれるフレーム毎に、タイムスタンプを付してＩｏＴ連携装置９１へ送信する。
【００２１】
動画取得部９１６（動画取得手段）は、カメラ９３から送信された動画及びタイムスタンプを受信し、コード動画結合部９１２に転送する。
【００２２】
コード動画結合部９１２（コード動画合成手段）は、動画におけるＩｏＴデバイス９２の動作と、動作に対応する指示が記述されたソースコードのステートメントとを紐付ける。コード動画結合部９１２は、予め、コード生成部９１１からソースコードを取得し、動画をタイムスタンプ毎の時間（例えば、１０秒毎）でキャプチャ分けする。コード動画結合部９１２は、動画の各フレームに付されたタイムスタンプと、コード出力部９１４が各ステートメントをＩｏＴデバイス９２に出力した時のタイムスタンプとが一致するように、動画の各クレームとコードの各ステートメントとを紐付ける。
【００２３】
連携コード表示部９１３は、紐付けられた動画の各クレームとコードの各ステートメントとを、外部の表示装置（図示せず）に表示させる。図８は、表示例を示す。画面の左側にソースコード２１が表示され、右側にキャプチャした動画２２が配列されている。ソースコード２１はステートメント毎に配列されて表示されている。キャプチャした動画２２とステートメントとの間にはタイムスタンプ２４が表示されている。キャプチャした動画２２とステートメントは、同じタイムスタンプ２４によって紐付けされている。
【００２４】
図３Ａのフローチャートを参照して、第１実施形態に係わるコード動画連携システムの動作例を説明する。先ず、ステップＳ０１において、ユーザの指示の基、コード取得部９１０は、ＩｏＴデバイス９２の動作と連携させたいソースコードを取得する。そして、コード生成部９１１は、ソースコードを機械語或いはオブジェクトコードに変換し、コード出力部９１４へ転送する。
【００２５】
ステップＳ０３へ進み、コード出力部９１４は、変換されたコードをコード生成部９１１から取得し、ＩｏＴデバイス９２に出力する。このとき、コード出力部９１４は、ステートメント単位でコードを出力する。そして、ステップＳ０５において、コード出力部９１４は、各ステートメントをＩｏＴデバイス９２に出力したタイミングを示す情報を示すタイムスタンプを、コード動画結合部９１２へ送信する。
【００２６】
ステップＳ０７へ進み、各ステートメントを受信したＩｏＴデバイス９２は、受信した各ステートに示された指示に従って動作する。ステップＳ０９へ進み、カメラ９３は、コードに従って動作するＩｏＴデバイス９２を撮像し、動画を記録する。そして、カメラ９３は、記録した動画をタイムスタンプと共にＩｏＴ連携装置９１（動画取得部９１６）へ送信する。
【００２７】
ステップＳ１１へ進み、ＩｏＴ連携装置９１（コード動画結合部９１２）は、カメラ９３から送信された動画をそのタイムスタンプ毎の時間（例えば、１０秒毎）でキャプチャ分けする。ステップＳ１３へ進み、コード動画結合部９１２は、コード出力部９１４が各ステートメントをＩｏＴデバイス９２に出力した時のタイムスタンプに対して、各ステートメントを紐付ける。
【００２８】
ステップＳ１５へ進み、コード動画結合部９１２は、動画の各フレームに付されたタイムスタンプと、コード出力部９１４が各ステートメントをＩｏＴデバイス９２に出力した時のタイムスタンプとが一致するように、キャプチャ分けされた動画の各クレームとタイムスタンプが付された各ステートメントとを紐付ける。そして、連携コード表示部９１３は、例えば、図８に示す画像を外部の表示装置（図示せず）に表示させる。
【００２９】
以上説明したように、第１実施形態によれば、ソースコードに示された一連の指示に従って動作しているＩｏＴデバイス９２の動画を取得し、動画におけるＩｏＴデバイス９２の動作と、動作に対応する指示が記述されたソースコードのステートメントとを紐付ける。これにより、ＩｏＴデバイス９２をコンピュータプログラムによって動かして学ぶ場合、コンピュータプログラムの内容とその時のＩｏＴデバイス９２の動きを関連付けし易くなる。よって、プログラミングの知識がない人でも、オブジェクトの動きからプログラムの内容を理解し易くなる。
【００３０】
第１実施形態では、カメラ９３が、ソースコードに示された一連の指示に従って動作しているＩｏＴデバイス９２を撮像して動画を取得し、動画をＩｏＴ連携装置９１へ出力する。これにより、ソースコードに従って動作するＩｏＴデバイス９２等のロボット（ハードウェア）の動画を取得することができる。
【００３１】
コード出力部９１４は、コードに含まれる各ステートメントをＩｏＴデバイス９２に出力した時のタイムスタンプを、コード動画結合部９１２へ送信し、コード動画結合部９１２は、コード出力部９１４がコードを出力したタイムスタンプを用いて、ＩｏＴデバイス９２の動作と各ステートメントとを紐付ける。これにより、コード出力部９１４がＩｏＴデバイス９２へ指示を出力したタイミングとＩｏＴデバイス９２の動作とを紐付けることができる。
【００３２】
（変形例）
上記した第１実施形態では、コード動画結合部９１２は、コード出力部９１４がコードを出力したタイムスタンプを用いて、ＩｏＴデバイス９２の動作と各ステートメントとを紐付けた例を示した。しかし、コード出力部９１４がＩｏＴデバイス９２へ指示を出力した時のタイムスタンプの代わりに、ＩｏＴデバイス９２が各ステートメントを実行した時のタイムスタンプを用いて、ＩｏＴデバイス９２の動作とステートメントとを紐付けても構わない。
【００３３】
具体的には、図２Ａにおいて、コード出力部９１４がコードを出力した時のタイムスタンプをコード動画結合部９１２に送信する代わりに、図２Ｂに示すように、ＩｏＴデバイス９２が各ステートメントを実行した時のタイムスタンプをコード動画結合部９１２に送信する。コード動画結合部９１２は、動画の各フレームに付されたタイムスタンプと、ＩｏＴデバイス９２が各ステートメントを実行した時のタイムスタンプとが一致するように、動画の各クレームとコードの各ステートメントとを紐付ける。
【００３４】
したがって、図３ＡのステップＳ０５の代わりに、図３ＢのステップＳ０８において、ＩｏＴデバイス９２が各ステートメントを実行した時のタイムスタンプをコード動画結合部９１２に送信する。
【００３５】
変形例によれば、ＩｏＴデバイス９２が各ステートメントを実行したタイミングとＩｏＴデバイス９２の動作とを紐付けることができる。なお、変形例に係わるコード動画連携システムの全体構成は、第１実施形態のそれと同じであるため、図示及び説明を省略する。
【００３６】
（第２実施形態）
第１実施形態及びその変形例では、ＩｏＴデバイス９２側のタイミング情報として、コード出力部９１４がステートメントを出力したタイムスタンプ、或いはＩｏＴデバイス９２が各ステートメントを実行したタイムスタンプを用いた。
【００３７】
これに対して、第２実施形態では、ＩｏＴ連携装置９１’がＩｏＴデバイス９２から出力される音響信号に基づいて、ＩｏＴデバイス９２が実行するステートメントを特定することにより、ＩｏＴデバイス９２の動作とステートメントとを紐付ける。
【００３８】
図４を参照して、第２実施形態に係わるＩｏＴ連携装置９１’の機能的構成を説明する。図２ＡのＩｏＴ連携装置９１に比べて、ＩｏＴ連携装置９１’は、更に、マイク９１５と、復号部９１７（復号手段）とを有する。マイク９１５は、ＩｏＴデバイス９２からその動作として出力された音響信号を電気信号へ変換する。
【００３９】
復号部９１７は、マイク９１５により受信された音響信号を復号する。コード動画結合部９１２は、復号部９１７により復号された信号から音響信号の出力動作に対応するステートメントを特定する。例えば、無線伝送で使用されているＯＦＤＭ変調技術を音響領域に適用した音響ＯＦＤＭを用いることができる。コード動画結合部９１２は、カメラ９３から受信した動画に含まれる音声に対して、音響信号の出力動作に対応するステートメントを関連付ける。
【００４０】
図５のフローチャートを参照して、第２実施形態に係わるコード動画連携システムの動作例を説明する。ステップＳ３１、Ｓ３３、Ｓ３５は、図３ＡのステップＳ０１、Ｓ０３、Ｓ０７とそれぞれ同じであり、説明を省略する。なお、ステップＳ３７では、ＩｏＴデバイス９２は、ソースコードに従った動作として、スピーカを用いて音響信号（音波を含む）を出力する。音響信号の波長域は特に問わず、人間の聴覚範囲外の波長域の音響信号も含まれる。
【００４１】
ステップＳ３９において、ＩｏＴ連携装置９１’が、マイク９１５を用いて音響信号を取得し、復号部９１７が、マイク９１５により受信された音響信号を復号する。そして、コード動画結合部９１２が、復号部９１７により復号された信号から音響信号の出力動作に対応するステートメントを特定する。
【００４２】
ステップＳ４１において、カメラ９３が、コードに従って動作するＩｏＴデバイス９２を撮像し、動画を記録する。そして、カメラ９３は、記録した動画をＩｏＴ連携装置９１（動画取得部９１６）へ送信する。なお、図３ＡのステップＳ０９では、タイムスタンプを動画に付して送信したが、ステップＳ４１では不要である。
【００４３】
ステップＳ４１へ進み、ＩｏＴ連携装置９１（コード動画結合部９１２）は、音響信号の出力動作のタイミングで、カメラ９３から送信された動画をキャプチャ分けする。ステップＳ４５へ進み、コード動画結合部９１２は、キャプチャ分けされた動画の各クレームと、音響信号の出力動作に対応する各ステートメントとを紐付ける。そして、連携コード表示部９１３は、例えば、図８に示す画像を外部の表示装置（図示せず）に表示させる。
【００４４】
第２実施形態によれば、コードの出力又はコードの実行に関わるタイムスタンプを用いることなく、ＩｏＴデバイス９２から出力される音響信号を用いて、各ステートメントとＩｏＴデバイス９２の動作とを紐付けることができる。
【００４５】
（第３実施形態）
ＩｏＴデバイス９２の各動作に対応するコード内のステートメントを特定する方法として、コードの出力又はその実行に関わるタイムスタンプ或いは音響信号の代わりに、動画の解析処理を用いることも可能である。
【００４６】
図示は省略するが、第３実施形態に係わるコード動画結合部９１２は、動画取得部９１６が取得したＩｏＴデバイス９２の動画を解析して、ＩｏＴデバイス９２の動作及びその動作に対応するステートメントを特定する。ＩｏＴデバイス９２が歩行可能なロボットである場合、コード動画結合部９１２は、ＩｏＴデバイス９２の動画を解析して、ＩｏＴデバイス９２の動作の種別及び種別に対応するコード内のステートメントを特定する。動作の種別には、例えば、ＩｏＴデバイス９２の前進、後退、旋回、回転が含まれる。画像から特徴点を抽出し、テンプレートマッチング処理により画像からＩｏＴデバイス９２を特定し、画像からＩｏＴデバイス９２の特徴点を選択する。そして、フレーム間で特徴点のマッチング処理を行い、特徴点をトラッキングすることにより、ＩｏＴデバイス９２の動作の種別を特定できる。更に、テンプレートマッチング処理により、ＩｏＴデバイス９２の各部位を特定してもよい。これにより、ＩｏＴデバイス９２の部位毎の相対的な動作の種別を特定することが可能となる。ＩｏＴデバイス９２の各部位には、例えば、頭部、上肢、下肢、手、足、胴体、尾が含まれる。予め用意したこれらの部位の画像テンプレートを用いて、テンプレートマッチング処理を行うことにより、各部位の相対的な動作の種別を特定することができる。相対的な動作の種別には、例えば、頭を縦或いは横に振る、両肢又は片肢を上げる、下げる、手又は尾を振る、が含まれる。コード動画結合部９１２は、動画の解析処理によりＩｏＴデバイス９２の動作を特定することにより、ＩｏＴデバイス９２の動作と当該動作に対応するステートメントとを紐付けることができる。
【００４７】
第３実施形態によれば、コードの出力又はコードの実行に関わるタイムスタンプを用いることなく、動画の解析処理によって、各ステートメントとＩｏＴデバイス９２の動作とを紐付けることができる。
【００４８】
（第４実施形態）
図６を参照して、第４実施形態に係わるコード動画連携システムの全体構成を説明する。ＩｏＴ連携装置９１とＩｏＴデバイス９２とは、コンピュータネットワーク９５を介して通信可能に接続されている。更に、コード動画連携システムは、コンピュータネットワーク９５を介してアクセス可能なサーバ９４を備える。その他は、図１のコード動画連携システムと同じであり、説明を省略する。
【００４９】
第１実施形態では、ＩｏＴ連携装置９１のコード出力部９１４が、コードをＩｏＴデバイス９２に直接送信していた。第４実施形態では、コード出力部９１４がコンピュータネットワーク９５を介してサーバ９４へコードを送信し、サーバ９４がコンピュータネットワーク９５を介してＩｏＴデバイス９２へコードを送信する。
【００５０】
図７のフローチャートを参照して、第４実施形態に係わるコード動画連携システムの動作例を説明する。ステップＳ５１は、図３ＡのステップＳ０１と同様に、ＩｏＴデバイス９２の動作と連携させたいソースコードを取得し、ソースコードを機械語或いはオブジェクトコードに変換する。
【００５１】
ステップＳ５３へ進み、コード出力部９１４は、変換されたコードをコード生成部９１１から取得し、サーバ９４に出力する。
【００５２】
ステップＳ５５へ進み、図３ＡのステップＳ０５と同様に、コード出力部９１４は、各ステートメントをＩｏＴデバイス９２に出力したタイミングを示す情報を示すタイムスタンプを、コード動画結合部９１２へ送信する。ステップＳ５７へ進み、サーバ９４は、コード出力部９１４から受信したコードを、ＩｏＴデバイス９２に出力する。このとき、サーバ９４は、ステートメント単位でコードを出力する。
【００５３】
その後、ステップＳ５９〜Ｓ６７では、図３ＡのステップＳ０７〜Ｓ１５同じ処理を実行する。ステップＳ５９〜Ｓ６７の詳細な説明を省略する。
【００５４】
上記のように、本発明の実施形態を記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００５５】
例えば、第４実施形態のコード動画連携システムを、第１実施形態の変形例に適用することも可能である。つまり、ＩｏＴデバイス９２が各ステートメントを実行した時のタイムスタンプをサーバ９４に送信し、サーバ９４がタイムスタンプをコード動画結合部９１２に送信してもよい。第４実施形態のコード動画連携システムを、第２実施形態に適用することも可能である。つまり、第２実施形態では、ＩｏＴ連携装置９１のコード出力部９１４が、コードをＩｏＴデバイス９２に直接送信していた。第４実施形態を第２実施形態に適用して、コード出力部９１４がコンピュータネットワーク９５を介してサーバ９４へコードを送信し、サーバ９４がコンピュータネットワーク９５を介してＩｏＴデバイス９２へコードを送信してもよい。
【００５６】
更に、第１実施形態と第２実施形態と第３実施形態から任意に選んだ２又は３の実施形態を組み合わせて実施することができる。つまり、コードの出力又はその実行に関わるタイムスタンプ、音響信号、動画の解析処理の中から任意に選んだ２つ又は３つの紐付け手段を組み合わせて、ＩｏＴデバイス９２の動作と当該動作に対応するステートメントとを紐付けてもよい。
【００５７】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００５８】
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線（ＤＳＬ）などの有線技術及び／又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び／又は無線技術は、伝送媒体の定義内に含まれる。
【００５９】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【００６０】
なお、本明細書で説明した用語及び／又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。例えば、チャネル及び／又はシンボルは信号（シグナル）であってもよい。また、信号はメッセージであってもよい。
【００６１】
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
【００６２】
メモリは、コンピュータ読み取り可能な記録媒体であり、例えば、ROM（Read
Only Memory）、EPROM（Erasable Programmable ROM）、EEPROM（Electrically Erasable Programmable ROM）、RAM（Random Access Memory）などの少なくとも１つで構成されてもよい。メモリは、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。メモリは、上述した実施形態に係る方法を実行可能なプログラム（プログラムコード）、ソフトウェアモジュールなどを保存することができる。
【００６３】
入出力部は、外部からの入力を受け付ける入力デバイス（例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど）入力デバイスと、外部への出力を実施する出力デバイス（例えば、ディスプレイ、スピーカー、LEDランプなど）とを含む。なお、入力デバイス及び出力デバイスは、一体となった構成（例えば、タッチパネル）であってもよい。
【００６４】
また、ＣＰＵやメモリなどの各装置は、情報を通信するためのバスで接続される。バスは、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【００６５】
本明細書で説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【００６６】
入出力された情報等は特定の場所（例えば、メモリ）に保存されてもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【００６７】
本明細書で説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（例えば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的（例えば、当該所定の情報の通知を行わない）ことによって行われてもよい。
【００６８】
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【００６９】
また、「含む（including）」、「含んでいる（comprising）」、及びそれらの変形の用語は、「備える」と同様に、包括的であることが意図される。さらに、本明細書或いは特許請求の範囲において使用されている用語「または（or）」は、排他的論理和ではないことが意図される。
【００７０】
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
【符号の説明】
【００７１】
２１  ソースコード
２２  動画
２４  タイムスタンプ
９２  ＩｏＴデバイス（オブジェクト）
９１、９１’  ＩｏＴ連携装置
９３  カメラ
９１０  コード取得部（コード取得手段）
９１１  コード生成部（コード生成手段）
９１２  コード動画結合部（コード動画合成手段）
９１４  コード出力部（コード出力手段）
９１６  動画取得部（動画取得手段）
９１７  復号部（復号手段）
【図１】
2019003480.tif 000003
【図２Ａ】
2019003480.tif 000004
【図２Ｂ】
2019003480.tif 000005
【図３Ａ】
2019003480.tif 000006
【図３Ｂ】
2019003480.tif 000007
【図４】
2019003480.tif 000008
【図５】
2019003480.tif 000009
【図６】
2019003480.tif 000010
【図７】
2019003480.tif 000011
【図８】
2019003480.tif 000012