(57)【要約】【課題】通常の一般的な方法で記述された数式を画像入力してプログラムコードに変換できる情報処理装置および情報処理方法を提供する。【解決手段】数式が写された画像データを取得する画像データ取得部と、前記画像データ取得部により取得された前記画像データから前記数式を抽出し、抽出した前記数式を解析する画像解析部と、前記画像解析部による前記解析の結果に基づき、前記数式に対応したプログラムを自動生成するプログラム生成部とを備える。【選択図】図６
2018084966.tif 000002
【特許請求の範囲】
【請求項１】
数式が写された画像データを取得する画像データ取得部と、
前記画像データ取得部により取得された前記画像データから前記数式を抽出し、抽出した前記数式を解析する画像解析部と、
前記画像解析部による前記解析の結果に基づき、前記数式に対応したプログラムを自動生成するプログラム生成部と
を備えた
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
操作入力部と、
表示部と、
ユーザーによる前記画像データ内で前記数式が写っている領域の指定を受け付ける領域指定部と
をさらに備え、
前記画像解析部は、
手動抽出モードが指定されたとき、
前記ユーザーにより指定された前記領域の中から前記数式を抽出、抽出した前記数式を解析する
情報処理装置。
【請求項３】
画像データ取得部が、数式が写された画像データを取得し、
画像解析部が、前記画像データ取得部により取得された前記画像データから前記数式を抽出し、抽出した前記数式を解析し、
プログラム生成部が、前記画像解析部による前記解析の結果に基づき、前記数式に対応したプログラムを自動生成する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数式をプログラムコードに変換する情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来、数式をプログラムコードに変換するために様々な工夫がなされてきた。
【０００３】
例えば、特許文献１において開示されている技術では、プログラマブルロジックコントローラー（ＰＬＣ）を制御するためのラダーコードを作成するにあたり、ラダーダイアグラム中の数式を解析し、数式中のアドレスシンボルを実アドレスに変換したラダーコードを生成している。
【０００４】
また、例えば、特許文献２の技術では、入力データを解析して文字定数、変数、数式、ルール、および画面イメージに分解し、それぞれのルーチンを作成して、これらルーチンを統合することによりソースプログラムを作成している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１４０１０５号公報
【特許文献２】特開平０４−１４１７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述した特許文献の技術では、数式を入力するにあたり、特殊な形式で数式を記述しなければならず、手間であった。
【０００７】
以上のような事情に鑑み、本発明の目的は、通常の一般的な方法で記述された数式を画像入力してプログラムコードに変換できる情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一形態に係る情報処理装置は、数式が写された画像データを取得する画像データ取得部と、前記画像データ取得部により取得された前記画像データから前記数式を抽出し、抽出した前記数式を解析する画像解析部と、前記画像解析部による前記解析の結果に基づき、前記数式に対応したプログラムを自動生成するプログラム生成部とを備える。
【０００９】
そのため、通常の一般的な方法で記述された数式を画像入力してプログラムコードに変換できる。
【００１０】
上記目的を達成するため、本発明の一形態に係る情報処理装置は、操作入力部と、表示部と、ユーザーによる前記画像データ内で前記数式が写っている領域の指定を受け付ける領域指定部とをさらに備え、前記画像解析部は、手動抽出モードが指定されたとき、前記ユーザーにより指定された前記領域の中から前記数式を抽出、抽出した前記数式を解析する構成でもよい。
【００１１】
上記目的を達成するため、本発明の一形態に係る情報処理方法では、画像データ取得部が、数式が写された画像データを取得し、画像解析部が、前記画像データ取得部により取得された前記画像データから前記数式を抽出し、抽出した前記数式を解析し、プログラム生成部が、前記画像解析部による前記解析の結果に基づき、前記数式に対応したプログラムを自動生成する。
【発明の効果】
【００１２】
以上のように、本発明によれば、通常の一般的な方法で記述された数式を画像入力してプログラムコードに変換できる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置１０が一般的なコンピューターにより構成される場合の構成図である。
【図２】領域指定部１１ｂにおいて実行される手動抽出モードについて説明するための図である。
【図３】情報処理装置１における処理の例について説明するための図である。
【図４】情報処理装置１における処理の例について説明するための図である。
【図５】情報処理装置１における処理の例について説明するための図である。
【図６】情報処理装置１０における処理の流れについて説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１５】
［情報処理装置の構成］
最初に、本発明の一実施形態に係る情報処理装置１０の構成について説明する。情報処理装置１０は、専用のハードウェアやソフトウェアにより構成されていてもよいし、一般的なコンピューターにより構成されてもよい。情報処理装置１０が一般的なコンピューターにより構成される場合の構成図を図１に示す。
【００１６】
同図に示すように、情報処理装置１０は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、操作入力部１４、通信部１５、表示部１６、記憶部１７、および撮像部１９を有し、これら各ブロックがバス１８を介して接続されている。
【００１７】
ＲＯＭ１２は、各種の処理を実行するためのファームウェア等の複数のプログラムやデータを記憶する。ＲＡＭ１３は、ＣＰＵ１１の作業用領域として用いられ、ＯＳ（Operating System）、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【００１８】
記憶部１７は、例えばＨＤＤ（Hard Disk Drive）や、フラッシュメモリー、その他の不揮発性メモリーである。記憶部１７には、ＯＳや各種アプリケーション、各種データが記憶される。
【００１９】
通信部１５は、ネットワーク上の他の機器と情報のやりとりを行う為のネットワークと結ばれている。
【００２０】
ＣＰＵ１１は、ＲＯＭ１２や記憶部１７に格納された複数のプログラムのうち、操作入力部１４から与えられる命令に対応するプログラムをＲＡＭ１３に展開し、この展開されたプログラムにしたがって、表示部１６及び記憶部１７を適宜制御する。
【００２１】
操作入力部１４は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の操作装置である。
【００２２】
表示部１６は、例えば液晶ディスプレイ、ＥＬ（Electro-Luminescence）ディスプレイ、プラズマディスプレイ等である。
【００２３】
撮像部１９は、カメラなどであり、紙の上に書かれた数式や他の機器の表示部に表示された数式を撮像し、画像データとして取り込む。なお、撮像部１９は必須の構成ではなく、撮像部１９が無い場合、情報処理装置１０の外部から画像データを取得することも出来る。
【００２４】
次に、ＣＰＵ１１においてプログラムが実行されることにより実現される機能ブロックについて説明する。
【００２５】
情報処理装置１０のＣＰＵ１１において実現される機能ブロックは、画像データ取得部１１ａ、領域指定部１１ｂ、画像解析部１１ｃ、およびプログラム生成部１１ｄである。
【００２６】
画像データ取得部１１ａは、生成するプログラムの基になる数式を画像データとして取得する。なお、画像の取得方法としては、ユーザーが情報処理装置１０内で作成した数式の画像を取得してもよいし、撮像部１９により数式を撮像してもよいし、外部の記憶装置に保存された画像データをネットワーク経由で取得してもよいし、外部のカメラ等で撮像された画像データを取得してもよい。
【００２７】
領域指定部１１ｂは、画像データ取得部１１ａにより取得された画像データに数式以外の文字列等が含まれていて、数式部分の抽出が困難であると考えられるような場合に、ユーザーが手動抽出モードを指定すると、ユーザーの指示に基づいて数式部分の領域を決定する。
【００２８】
画像解析部１１ｃは、画像データから自動的に数式を抽出するか、ユーザーにより指定された領域から数式を抽出し、数式を認識するために画像データを解析する。なお、画像解析技術は、公知の技術を用いる。
【００２９】
プログラム生成部１１ｄは、画像解析部１１ｃによる画像データの解析結果に基づいて、プログラムを自動生成する。プログラム生成には公知の技術を用いる。プログラムの言語は、Ｃ言語、Ｊａｖａ（登録商標）など、プログラム自動生成の公知の技術があるものであれば、どのような言語を指定することも出来る。
【００３０】
以上、情報処理装置１０の構成について説明した。
【００３１】
［手動抽出モードについて］
次に、領域指定部１１ｂにおいて実行される手動抽出モードについて説明する。図２は、領域指定部１１ｂにおいて実行される手動抽出モードについて説明するための図である。
【００３２】
この図にあるように、画像データに数式以外の文字列が含まれている場合、ユーザーは、手動抽出モードを指定することにより、画像データ内の数式部分を明示的に線で囲んで領域指定することが出来る。
【００３３】
このように、手動抽出モードを用いることにより、数式以外の文字列が含まれた画像データを処理する場合、数式の領域を自動判定することによる誤認識を防止することが出来る。
【００３４】
以上、領域指定部１１ｂにおいて実行される手動抽出モードについて説明した。
【００３５】
［処理の例］
次に、情報処理装置１における処理の例について説明する。図３から図５は、情報処理装置１における処理の例について説明するための図である。
【００３６】
まず、図３に示す数式が画像データとして与えられたとする。
【００３７】
次に、画像解析部１１ｃは、例えば、図４に示す順序で数式を解析する。すなわち、ｓｉｎθ、ｃｏｓθの部分を三角関数として、またθを変数として式１として認識する。
【００３８】
次に、θが０から１０まで変化させた総和を式２として、式１と関連させて認識する。
【００３９】
次に、ａの二乗を式３として認識する。
【００４０】
次に、式２を式３で除する分数を式４として認識する。
【００４１】
次に、プログラム生成部１１ｄが、上記の解析結果に基づいて、図５に示すＣ言語のプログラムを自動生成する。
【００４２】
以上、情報処理装置１における処理の例について説明した。
【００４３】
［処理の流れ］
次に、情報処理装置１０における処理の流れについて説明する。図６は、情報処理装置１０における処理の流れについて説明するためのフローチャートである。
【００４４】
まず、画像データ取得部１１ａが、情報処理装置１０の内部または外部から数式が写された画像データを取得する（ステップＳ１）。
【００４５】
次に、領域指定部１１ｂが、ユーザーにより手動抽出モードが指定されているか否かを判断する（ステップＳ２）。
【００４６】
手動抽出モードが指定されている場合（ステップＳ２のＹ）、領域指定部１１ｂが、ユーザーから画像データ内の数式が写っている領域の指定を受け付け、画像解析部１１ｃが、指定された領域から数式を抽出する（ステップＳ３）。
【００４７】
手動抽出モードが指定されていない場合（ステップＳ２のＮ）、画像解析部１１ｃが、画像データから数式の写っている領域を自動的に判断し、判断した領域から数式を抽出する（ステップＳ４）。
【００４８】
次に、画像解析部１１ｃが、抽出した数式を解析する（ステップＳ５）。
【００４９】
次に、プログラム生成部１１ｄが、画像解析部１１ｃによる解析結果に基づいて、数式に対応するプログラムを自動生成する（ステップＳ６）。
【００５０】
以上、情報処理装置１０における処理の流れについて説明した。
【００５１】
［補足事項］
以上のように、本発明に係る情報処理装置１０は、数式が写された画像データを取得する画像データ取得部１１ａと、前記画像データ取得部１１ａにより取得された前記画像データから前記数式を抽出し、抽出した前記数式を解析する画像解析部１１ｃと、前記画像解析部１１ｃによる前記解析の結果に基づき、前記数式に対応したプログラムを自動生成するプログラム生成部１１ｄとを備える。
【００５２】
そのため、通常の一般的な方法で記述された数式を画像入力してプログラムコードに変換できる。
【００５３】
その他、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００５４】
１０  …  情報処理装置
１１  …  ＣＰＵ
１１ａ…  画像データ取得部
１１ｂ…  領域指定部
１１ｃ…  画像解析部
１１ｄ…  プログラム生成部
１２  …  ＲＯＭ
１３  …  ＲＡＭ
１４  …  操作入力部
１５  …  通信部
１６  …  表示部
１７  …  記憶部
１８  …  バス
１９  …  撮像部
【図１】
2018084966.tif 000003
【図２】
2018084966.tif 000004
【図３】
2018084966.tif 000005
【図４】
2018084966.tif 000006
【図５】
2018084966.tif 000007
【図６】
2018084966.tif 000008