IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立システムズエンジニアリングサービスの特許一覧

特許7553495開発支援装置、開発支援方法、及び開発支援プログラム
<>
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図1
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図2
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図3
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図4
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図5
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図6
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図7
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図8
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図9
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図10
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図11
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図12
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図13
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図14
  • 特許-開発支援装置、開発支援方法、及び開発支援プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】開発支援装置、開発支援方法、及び開発支援プログラム
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20240910BHJP
   G06F 8/34 20180101ALI20240910BHJP
【FI】
G06Q50/10
G06F8/34
【請求項の数】 11
(21)【出願番号】P 2022042662
(22)【出願日】2022-03-17
(65)【公開番号】P2023136781
(43)【公開日】2023-09-29
【審査請求日】2023-11-13
【早期審査対象出願】
(73)【特許権者】
【識別番号】313005949
【氏名又は名称】株式会社日立システムズエンジニアリングサービス
(74)【代理人】
【識別番号】110000198
【氏名又は名称】弁理士法人湘洋特許事務所
(72)【発明者】
【氏名】菅野 克也
【審査官】西間木 祐紀
(56)【参考文献】
【文献】国際公開第2021/041131(WO,A1)
【文献】国際公開第2021/036863(WO,A1)
【文献】特表2016-531709(JP,A)
【文献】特表2022-514508(JP,A)
【文献】特開2021-120903(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 50/10
G06F 8/34
(57)【特許請求の範囲】
【請求項1】
特徴を抽出する対象となるデータの入力を受け付けるモジュールが属する第1のグループと、学習済モデルに基づいて前記特徴を抽出するモジュールが属する第3のグループと、前記データに対する判定、または抽出された前記特徴に対する判定を行うモジュールが属する第4のグループとに分類される、複数のモジュールを記憶する記憶部と、
前記複数のモジュールのうち、一部のモジュールの選択を受け付ける第1の受付部と、
前記一部のモジュール同士の接続関係の指定を受け付ける第2の受付部と、
前記接続関係を示す定義情報を生成する生成部と、
前記定義情報が示す前記接続関係に従って前記一部のモジュール同士を接続した処理プログラムを実行する実行部と、
前記処理プログラムを実行したときの前記一部のモジュールの実行結果を出力する実行結果出力部と、を有し、
前記第1のグループから選択された画像データの入力を受け付ける第1モジュールと、前記第3のグループから選択された前記画像データの前記特徴を抽出する第2モジュールと、前記第4のグループから選択された前記画像データに対する目視判定の入力を促す第3モジュールとが順に接続された前記接続関係が定義された場合、
前記第1モジュールは、前記画像データの入力を受け付け、
前記第2モジュールは、前記画像データの前記特徴を抽出し、
前記実行結果出力部は、前記画像データが示す画像を表示部に表示させる制御を行い、
前記第3モジュールは、表示された前記画像に対する目視判定の入力を促す、
開発支援装置。
【請求項2】
請求項に記載の開発支援装置であって、
前記第4のグループから選択された、抽出された前記特徴に対しルールベースで判定を行う第4モジュールが、前記第2モジュールと前記第3モジュールの間に接続された場合、
前記第4モジュールは、前記画像データから抽出された前記特徴に対してルールベースで判定を行い、
前記実行結果出力部は、前記画像データが示す前記画像と前記判定の結果を前記表示部に表示させる制御を行う、
開発支援装置。
【請求項3】
請求項1又は2に記載の開発支援装置であって、
前記記憶部は、前記複数のモジュールの各々に対応した表示項目が格納された表示項目情報を記憶し、
前記実行結果出力部は、前記表示項目を、前記処理プログラムにおける前記一部のモジュールの接続順に前記表示部に並べて表示するか、または所定の配置で前記表示部に表示する制御を行う、
開発支援装置。
【請求項4】
請求項に記載の開発支援装置であって、
前記表示項目は、前記モジュールの実行結果、または前記モジュールにおける処理の進捗状況である、
開発支援装置。
【請求項5】
請求項に記載の開発支援装置であって、
前記第1のグループに、ディレクトリ内に格納された複数のファイルの各々を識別する識別子を取得するモジュールが属しており、
前記実行結果出力部は、前記第1モジュールの実行結果として、取得した前記識別子の一覧を前記表示部に表示させる制御を行う、
開発支援装置。
【請求項6】
請求項1乃至5のいずれか1項に記載の開発支援装置であって、
記記憶部は、前記処理プログラムの処理結果を出力するモジュールが属する第5のグループに分類される前記モジュールを記憶する、
開発支援装置。
【請求項7】
請求項1乃至6のいずれか1項に記載の開発支援装置であって、
記記憶部は、前記特徴が抽出される前の前記データに対して加工を行うモジュールが属する第2のグループに分類される前記モジュールを記憶する、
開発支援装置。
【請求項8】
請求項1乃至7のいずれか1項に記載の開発支援装置であって、
前記モジュールの内部パラメータの値の指定を受ける第3の受付部を更に有する、
開発支援装置。
【請求項9】
請求項1乃至8のいずれか1項に記載の開発支援装置であって、
前記実行結果出力部は、前記一部のモジュールのうちの少なくとも一つの処理結果の推移又は統計を前記表示部に表示させる制御を行う、
開発支援装置。
【請求項10】
コンピュータによる開発支援方法であって、
前記コンピュータは、
特徴を抽出する対象となるデータの入力を受け付けるモジュールが属する第1のグループと、学習済モデルに基づいて前記特徴を抽出するモジュールが属する第3のグループと、前記データに対する判定、または抽出された前記特徴に対する判定を行うモジュールが属する第4のグループとに分類される、複数のモジュールを記憶し、
前記複数のモジュールのうち、一部のモジュールの選択を受け付けるステップと、
前記一部のモジュール同士の接続関係の指定を受け付けるステップと、
前記接続関係を示す定義情報を生成するステップと、
前記定義情報が示す前記接続関係に従って前記一部のモジュール同士を接続した処理プログラムを実行するステップと、
前記処理プログラムを実行したときの前記一部のモジュールの実行結果を出力するステップと、を実行し、
前記第1のグループから選択された画像データの入力を受け付ける第1モジュールと、前記第3のグループから選択された前記画像データの前記特徴を抽出する第2モジュールと、前記第4のグループから選択された前記画像データに対する目視判定の入力を促す第3モジュールとが順に接続された前記接続関係が定義された場合、
前記第1モジュールは、前記画像データの入力を受け付け、
前記第2モジュールは、前記画像データの前記特徴を抽出し、
前記実行結果を出力するステップは、前記画像データが示す画像を表示部に表示させる制御を行い、
前記第3モジュールは、表示された前記画像に対する目視判定の入力を促す、
発支援方法。
【請求項11】
コンピュータに、
特徴を抽出する対象となるデータの入力を受け付けるモジュールが属する第1のグループと、学習済モデルに基づいて前記特徴を抽出するモジュールが属する第3のグループと、前記データに対する判定、または抽出された前記特徴に対する判定を行うモジュールが属する第4のグループとに分類される、複数のモジュールを記憶させ、
前記複数のモジュールのうち、一部のモジュールの選択を受け付けるステップと、
前記一部のモジュール同士の接続関係の指定を受け付けるステップと、
前記接続関係を示す定義情報を生成するステップと、
前記定義情報が示す前記接続関係に従って前記一部のモジュール同士を接続した処理プログラムを実行するステップと、
前記処理プログラムを実行したときの前記一部のモジュールの実行結果を出力するステップと、を実行させ、
前記第1のグループから選択された画像データの入力を受け付ける第1モジュールと、前記第3のグループから選択された前記画像データの前記特徴を抽出する第2モジュールと、前記第4のグループから選択された前記画像データに対する目視判定の入力を促す第3モジュールとが順に接続された前記接続関係が定義された場合、
前記第1モジュールは、前記画像データの入力を受け付け、
前記第2モジュールは、前記画像データの前記特徴を抽出し、
前記実行結果を出力するステップは、前記画像データが示す画像を表示部に表示させる制御を行い、
前記第3モジュールは、表示された前記画像に対する目視判定の入力を促す、
発支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、開発支援装置、開発支援方法、及び開発支援プログラムに関する。
【背景技術】
【0002】
近年、社会の様々な領域においてAI(Artificial Intelligence)が活用されている。なかでも、深層学習を始めとする機械学習は、映像認識、音声認識、及び文字認識等において広く普及している。但し、普及している殆どのAIは、事前に学習した内容を実行することに特化したいわゆる「弱いAI」である。そのため、ユーザが抱える課題をAIで解決しようとする場合は、その課題ごとにAIを活用したIT(Information Technology)ソリューションを構築する必要がある。AIを活用したITソリューションは、AIを含むパイプラインで実現することができる。パイプラインは、課題解決のためのAIのアルゴリズムを実行するAIモジュールや、入出力用のモジュール等を接続した処理プログラムである。パイプラインには、AIモジュールの他にも、AIモジュールにデータを渡すモジュールや、AIモジュールの出力を可視化するモジュール等も含まれる。課題解決の精度は、AIモジュールの精度だけでなく、その前段や後段にあるモジュールの性能によっても左右される。
【0003】
ユーザが抱える課題を解決するには、様々なモジュールを開発した後、更にそれらを組み合わせてパイプラインを構築する必要がある。例えば、特許文献1では、モジュール同士の接続関係を変更してパイプラインの設計を支援することが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2020/157799号
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ユーザの課題ごとにモジュールやパイプラインを構築するのは莫大な期間とコストを要してしまう。例えば、特許文献1は、推論モデルに入力されるデータの前処理におけるモジュール同士の接続関係のみを変更しており、データの入力から出力に至るパイプラインの全体の設計を支援していないため、パイプラインの設計を十分に支援することができない。しかも、既存の技術では、開発途中にAI導入の効果を体験できる仕組みがないため、AI精度等についての目標値を設定するのも難しい。
【0006】
本発明は、このような状況に鑑みてなされたものであり、AIを含む処理プログラムを簡単に構築できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【0008】
上記課題を解決すべく、本発明の一態様に係る開発支援装置は、複数のモジュールのうち、学習済モデルに基づいて特徴を抽出する第1のモジュールを含む一部のモジュールの選択を受け付ける第1の受付部と、前記一部のモジュール同士の接続関係の指定を受け付ける第2の受付部と、前記接続関係を示す定義情報を生成する生成部と、前記定義情報が示す前記接続関係に従って前記一部のモジュール同士を接続した処理プログラムを実行する実行部と、前記処理プログラムを実行したときの前記一部のモジュールの実行結果を出力する実行結果出力部とを有する。
【0009】
前記複数のモジュールは、前記特徴を抽出する対象となるデータの入力を受け付ける複数のモジュールからなる第1のグループと、複数の前記第1のモジュールからなる第3のグループと、前記データに対する判定、または第1のモジュールが抽出した特徴に対する判定を行う複数のモジュールからなる第4のグループとに分類され、前記第1のグループ、前記第3のグループ、及び前記第4のグループの各々の前記モジュールを記憶した記憶部を更に有することができる。
【0010】
前記一部のモジュールは、前記第1のモジュールと、前記第4のグループに属する第2のモジュールとを含むことができる。
【0011】
前記第2のモジュールは、前記データに対する判定の入力を促すモジュールとすることができる。
【0012】
前記データは画像データであり、前記第1のモジュールは、画像データの特徴を抽出し、前記実行結果出力部は、前記画像データが示す画像を表示部に表示させる制御を行い、前記第2のモジュールは、表示された前記画像に対する判定の入力を促すことができる。
【0013】
前記第2のモジュールは、前記第1のモジュールが抽出した前記特徴に対し、ルールベースで判定を行うモジュールとすることができる。
【0014】
前記記憶部は、前記複数のモジュールの各々に対応した表示項目が格納された表示項目情報を記憶し、前記実行結果出力部は、前記表示項目を、前記処理プログラムにおける前記一部のモジュールの接続順に表示部に並べて表示するか、または所定の配置で表示部に表示する制御を行うことができる。
【0015】
前記表示項目は、前記モジュールの実行結果、または前記モジュールにおける処理の進捗状況とすることができる。
【0016】
前記第1のグループに、ディレクトリ内に格納された複数のファイルの各々を識別する識別子を取得する第3のモジュールが含まれており、前記実行結果出力部は、前記第3のモジュールの実行結果として、取得した前記識別子の一覧を表示部に表示させる制御を行うことができる。
【0017】
前記複数のモジュールは、前記処理プログラムの処理結果を出力する複数のモジュールからなる第5のグループを有し、前記記憶部は、前記第5のグループに属する前記モジュールを記憶することができる。
【0018】
前記複数のモジュールは、前記第1のモジュールが前記特徴を抽出する前の前記データに対して加工を行う複数のモジュールからなる第2のグループを有し、前記記憶部は、前記第2のグループに属する前記モジュールを記憶することができる。
【0019】
前記モジュールの内部パラメータの値の指定を受ける第3の受付部を更に有することができる。
【0020】
前記実行結果出力部は、前記一部のモジュールのうちの少なくとも一つの処理結果の推移又は統計を表示部に表示させる制御を行うことができる。
【0021】
本発明の他の態様に係る開発支援方法は、複数のモジュールのうち、学習済モデルに基づいて特徴を抽出する行う第1のモジュールを含む一部のモジュールの選択を受け付けるステップと、前記一部のモジュール同士の接続関係の指定を受け付けるステップと、前記接続関係を示す定義情報を生成するステップと、前記定義情報が示す前記接続関係に従って前記一部のモジュール同士を接続した処理プログラムを実行するステップと、前記処理プログラムを実行したときの前記一部のモジュールの実行結果を出力する制御を行うステップとをコンピュータが実行する。
【0022】
本発明の更に他の態様に係る開発支援プログラムは、複数のモジュールのうち、学習済モデルに基づいて特徴を抽出する第1のモジュールを含む一部のモジュールの選択を受け付けるステップと、前記一部のモジュール同士の接続関係の指定を受け付けるステップと、前記接続関係を示す定義情報を生成するステップと、前記定義情報が示す前記接続関係に従って前記一部のモジュール同士を接続した処理プログラムを実行するステップと、前記処理プログラムを実行したときの前記一部のモジュールの実行結果を出力するステップとをコンピュータに実行させる。
【発明の効果】
【0023】
本発明の一態様によれば、AIを含む処理プログラムを簡単に構築できる。
【0024】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0025】
図1図1は、本実施形態に係る開発支援システムのシステム構成の一例を示す図である。
図2図2は、複数のモジュールの一例を示す模式図である。
図3図3は、開発支援装置が構成したパイプラインの一例を示す模式図である。
図4図4は、パイプライン定義情報の一例を示す模式図である。
図5図5は、GUI画面の一例を示す模式図である。
図6図6は、表示項目情報の一例を示す模式図である。
図7図7は、実行結果出力部が各モジュールの接続順に表示項目を並べて表示する制御を行ったときのGUI画面の一例を示す図である。
図8図8は、実行結果出力部が表示項目を所定の配置で表示する制御を行ったときのGUI画面の一例を示す図である。
図9図9は、画像表示領域に表示された景観内に不審物があると「ルールベース分類」のモジュールと判定したときのGUI画面の一例を示す図である。
図10図10は、ユーザがOKボタンを押下したときのGUI画面の一例を示す図である。
図11図11は、地図の入力を促すためのGUI画面の一例を示す図である。
図12図12は、パイプラインが動画ファイルを扱う場合のGUI画面の一例を示す図である。
図13図13は、パイプラインを構成するモジュールの少なくとも一つの処理結果の推移や統計を表示部にGUI画面で表示する制御を実行結果出力部が行ったときのGUI画面の一例を示す図である。
図14図14は、本実施形態に係る開発支援方法の一例を示すフローチャートである。
図15図15は、本実施形態に係る開発支援装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0026】
以下、本発明に係る一実施形態を図面に基づいて説明する。なお、実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は適宜省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合及び原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。
【0027】
<本実施形態>
図1は、本実施形態に係る開発支援システムのシステム構成の一例を示す図である。開発支援システム1は、AIを活用したITソリューションを実現するパイプラインをユーザが開発するのを支援するシステムであって、インターネットやLAN(Local Area Network)等のネットワーク5を介して相互に接続された開発支援装置2と端末装置3とを備える。
【0028】
端末装置3は、ユーザが操作するPC(Personal Computer)等のコンピュータであって、処理部31、通信部32、入力部33、及び表示部34を備える。
【0029】
このうち、通信部32は、ネットワーク5に端末装置3を接続するためのインターフェースである。入力部33は、処理部31に種々の情報を入力する機能部である。一例として、キーボードやマウス等により入力部33を実現できる。表示部34は、種々の情報を表示する機能部である。例えば、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイによって表示部34を実現できる。
【0030】
処理部31は端末装置3の各部を制御する機能部であり、操作受付部35を備える。操作受付部35は、Webブラウザプログラムによって実現される機能部であって、表示部34に対して種々の画面を表示する制御を行う。また、操作受付部35は、画面上のユーザの操作指令を受け付ける機能も有する。
【0031】
例えば、ユーザが表示部34の画面上で操作を行うと、その操作指令を入力部33が操作受付部35に通知する。次いで、操作受付部35は、通信部32を介して開発支援装置2に操作指令を通知する。開発支援装置2の後述の実行結果出力部22は、その操作指令を受け付けると、表示部34に表示する画面の画面情報を生成する。その画面情報は、通信部32を介して操作受付部35に通知される。そして、操作受付部35は、画面情報が示す画面を表示部34に表示する。
【0032】
一方、開発支援装置2は、パイプラインの開発を支援するPCやサーバ等のコンピュータである。なお、そのコンピュータは、物理マシンでもよいし、仮想マシンでもよい。
【0033】
一例として、開発支援装置2は、処理部11、記憶部12、及び通信部13を備える。このうち、記憶部12は、パイプライン定義情報23、表示項目情報24、及び複数のモジュール30を記憶する。
【0034】
図2は、記憶部12に格納された複数のモジュール30の一例を示す模式図である。
【0035】
各モジュール30は、パイプラインを構成するプログラムであって、第1~第5のグループ30a~30eに分類される。パイプラインに入力されたデータは、凡そ図2の矢印に沿って流れる。但し、データの流れはこれに限定されない。例えば、あるモジュール30の後段には、そのモジュール30の出力データを入力データとして受け入れ可能な任意のモジュール30を任意個数だけ接続することができる。
【0036】
第1のグループ30aは、データの入力を受け付ける「Webカメラ映像取得」や「ディレクトリスキャン」に係るモジュール30からなる。「Webカメラ映像取得」のモジュール30は、Webカメラが撮影した動画ファイルを取得するプログラムである。
【0037】
また、「ディレクトリスキャン」のモジュール30は、端末装置3やその他の記憶部の所定のディレクトリをスキャンすることにより、スキャンをした日付、スキャン対象のディレクトリ名、そのディレクトリに格納されている画像ファイルの枚数、及びその画像ファイルの名前を取得する取得するプログラムである。なお、画像ファイルの名前は、画像ファイルを識別する識別子の一例である。また、「ディレクトリスキャン」のモジュール
30は第3のモジュールの一例である。
【0038】
なお、第1のグループ30aの各モジュール30が入力を受け付けるデータは動画ファイルや画像ファイルに限定されない。これらのモジュール30は、例えば、音声データ、生体情報、及び温度や振動等の物理現象のセンシングデータの入力を受け付けることができる。
【0039】
第2のグループ30bは、第1のグループ30aの各モジュール30が受け付けたデータに対して加工を行うための「画像リサイズ」、「正規化」、「画像切り出し」、及び「エッジ抽出」に係るモジュール30からなる。例えば、「画像リサイズ」は、画像ファイルにおける画像サイズを調節するプログラムである。
【0040】
第3のグループ30cは、学習済モデルに基づいて画像ファイルや動画ファイルから特徴を抽出する(すなわちAIによる処理を実行する)「物体検出(AI)」や「画像分類(AI)」に係るモジュール30からなる。例えば、「物体検出(AI)」のモジュール30は、学習済モデルに基づいて、画像ファイルや動画ファイルが示す景観から物体を抽出するプログラムである。第3のグループ30cに属するこれらのモジュール30は第1のモジュールの一例である。
【0041】
第4のグループ30dは、「ルールベース分類」や「目視判断」のモジュール30からなる。例えば、「ルールベース分類」のモジュール30は、前段の「物体検出(AI)」のモジュール30が抽出した物体が不審物かどうかをルールベースに基づいて判定する。なお、ルールベース分類に適用するルールは、ユーザが設定することができる。
【0042】
また、「目視判断」のモジュール30は、第1のグループ30aの各モジュール30が受け付けた画像ファイルや動画ファイルに不審物が映っているか否かの目視判定の入力をユーザに促すモジュールである。第4のグループ30dに属するこれらのモジュール30は第2のモジュールの一例である。
【0043】
第5のグループ30eは、その前段にある第1~第4のグループ30a~30dのいずれかに属するモジュール30の出力をパイプライン50の処理結果として出力するモジュールからなる。例えば、「ファイル出力」のモジュール30は、パイプライン50の処理結果が記述されたファイルを、ユーザが指定した場所に出力するモジュールである。また、「メール通知」のモジュール30は、ユーザによって指定されたアドレスにパイプライン50の処理結果を出力する。そして、「プロット画像出力」のモジュール30は、例えば「物体検出(AI)」のモジュール30が物体を抽出したときに、抽出した物体を囲う枠を画像に表示したプロット画像を処理結果として出力する。
【0044】
このように相異なる機能を有するグループ30a~30eを記憶部12に予め格納しておくことで、ユーザがグループ30a~30eの各々から一部のモジュール30を選択し、選択されたモジュール30からなるパイプラインを開発支援装置2が構築することができる。
【0045】
図3は、このように開発支援装置2が構成したパイプラインの一例を示す模式図である。
【0046】
パイプライン50は、ユーザが抱える課題を解決するのに適したITソリューションをAIで実現するための処理プログラムである。ここでは、ユーザが第1~第4のグループ30a~30dの各々からモジュール30を一つずつ選択し、それらを接続することで、課題の解決に適したパイプライン50を構築する場合について説明する。なお、選択の仕方はこれに限定されない。例えば、一つのグループから複数のモジュール30を選択してもよい。また、この例では第5のグループ30eからモジュール30が選択されていないが、このようにモジュール30が選択されないグループが存在してもよい。なお、パイプライン50に第5のグループ30eのモジュール30を含めてもよい。これにより、データの入力から処理結果の出力に至るITソリューションの全体を構築することができる。
【0047】
図3の例では、開発支援装置2が、「ディレクトリスキャン」、「画像リサイズ」、「物体検出(AI)」、「ルールベース分類」、及び「目視判断」の各モジュール30をこの順に並べたパイプライン50を構成する。このパイプライン50は以下のように処理を行う。
【0048】
まず、「ディレクトリスキャン」のモジュール30が、ディレクトリ51内にある画像ファイル52を取得し、各画像ファイル52の名前を取得する。ディレクトリ51を格納した記憶装置はネットワーク5のどこにあってもよいが、ここでは端末装置3が内蔵する記憶装置にディレクトリ51があるものとする。また、画像ファイル52は画像データの一例である。
【0049】
次に、「画像リサイズ」のモジュール30が、各画像ファイル52における画像サイズを所定のサイズに調節する。
【0050】
続いて、「物体検出(AI)」のモジュール30が、学習済モデルに基づいて、画像サイズが調節された各画像ファイル52が示す景観に写り込んだ物体を抽出する。
【0051】
次いで、「ルールベース分類」のモジュール30が、「物体検出(AI)」のモジュール30が抽出した物体が不審物かどうかをルールベースで判定する。
【0052】
次に、「目視判断」のモジュール30が、画像サイズが調節された各画像ファイル52に不審物が写っているか否かの目視判定の入力をユーザに促す。例えば、「目視判断」のモジュール30は、各画像ファイル52が示す景観を端末装置3の表示部34に表示する制御を行う。表示部34に表示された景観に不審物が映っていた場合は、ユーザは入力部33を操作し、不審物があることを示す情報を処理部31に入力する。その情報は、処理部31が通信部32を介して「目視判断」のモジュール30に通知される。
【0053】
以上により、このパイプライン50の処理を終える。このような処理によれば、「物体検出(AI)」のモジュール30の後段に接続された「目視判断」のモジュール30がユーザに不審物があるかの目視判定の入力を促すため、実際に景観に不審物があるかを目視で判定する機会をユーザに与えることができる。
【0054】
また、「物体検出(AI)」のモジュール30の後段に「ルールベース分類」のモジュール30を接続したため、「物体検出(AI)」のモジュール30が抽出した物体のうち、ユーザがパイプライン50の目的に応じて対象としたい物体のみを選別することができる。しかも、「ルールベース分類」のモジュール30の後段に「目視判断」のモジュール30を接続したことで、「物体検出(AI)」のモジュール30が抽出できなかった物体が不審物かどうかをユーザが目視で判断でき、かつ「ルールベース分類」のモジュール30で選別された物体が不審物かどうかもユーザが目視で判断できる。
【0055】
図4は、パイプライン定義情報23の一例を示す模式図である。
【0056】
パイプライン定義情報23は、パイプライン50に含まれる各モジュール30の接続関係を示す情報である。この例では、モジュール名、入力元モジュール、及び出力先モジュールを対応付けることにより各モジュール30同士の接続関係を表す。このうち、モジュール名は、各モジュール30の名前である。入力元モジュールは、あるモジュール30の前段に接続されたモジュール30を示す。また、出力先モジュールは、あるモジュール30の後段に接続されたモジュール30を示す。
【0057】
図4のパイプライン定義情報23は、図3のパイプライン50における各モジュール30の接続関係を示している。
【0058】
例えば、「物体検出(AI)」のモジュール30は、入力元モジュールが「画像リサイズ」であるため、前段に「画像リサイズ」のモジュール30が接続されていることを示す。
【0059】
また、「ディレクトリスキャン」のモジュール30の入力元モジュールが「start」となっているが、これは「ディレクトリスキャン」のモジュール30がパイプライン50の先頭のモジュールであることを示す。一方、「目視判断」のモジュール30の出力先モジュールが「end」となっているが、これは「目視判断」のモジュール30がパイプライン50の最終のモジュールであることを示す。
【0060】
再び図1を参照する。記憶部12における表示項目情報24については後述する。
【0061】
処理部11は、開発支援装置2の各部を制御する機能部であり、パイプライン編集部15、実行部21、及び実行結果出力部22を有する。
【0062】
パイプライン編集部15は、パイプライン50を編集するデザインツールであって、第1~第3の受付部16~18と定義情報生成部19とを有する。第1の受付部16は、記憶部12に格納されている複数のモジュール30のうち、第3のグループ30c(図2参照)に属するモジュール30を含む一部のモジュール30の選択を受け付ける機能部である。例えば、第1の受付部16は、ユーザがモジュール30を選択するためのGUI(Graphical User Interface)画面を表示する指示をネットワーク5を介して端末装置3に出す。端末装置3は、その指示を受けると、操作受付部35が表示部34に対してGUI画面を表示する制御を行う。
【0063】
図5は、そのGUI画面の一例を示す模式図である。
【0064】
図5に示すように、GUI画面60は、メニュー領域60a、キャンバス領域60b、及び動作設定領域60cを有する。このうち、メニュー領域60aは、ユーザが選択可能なモジュール30の一覧を表示する領域である。また、キャンバス領域60bは、選択したモジュール30を配置してパイプライン50をデザインする領域である。そして、動作設定領域60cは、キャンバス領域60bに配置された各モジュール30の動作を設定する領域である。一例として、キャンバス領域60bには、各モジュール30の内部パラメータを指定するためのパラメータ指定メニュー60dが表示される。
【0065】
この例では、メニュー領域60aに、図2の第1~第5のグループ30a~30eの各々の名前を示すタブ60eが表示される。そのタブ60eをユーザが押下すると、当該タブ60eに対応したグループに含まれるモジュール30を示すタブ60fが表示される。
【0066】
ユーザは、端末装置3の入力部33を操作して、パイプライン50に含めたいモジュール30に対応するタブ60fをキャンバス領域60bにドラッグ&ドロップする。この操作により、第1の受付部16は、モジュール30の選択を受け付ける。
【0067】
また、このドラッグ&ドロップ操作が行われた直後では、選択したモジュール30の表示がキャンバス領域60bにおいてアクティブな状態となり、当該モジュール30が選択された状態となる。この状態では、動作設定領域60cに、「物体検出(AI)」のモジュール30の内部パラメータを指定するパラメータ指定メニュー60dが表示される。なお、ドラッグ&ドロップ操作が行われた直後に限らず、任意のタイミングでキャンバス領域60bにあるモジュール30を選択できるようにしてもよい。
【0068】
「物体検出(AI)」のモジュール30は、画像ファイルや動画ファイルが示す景観に写った物体を抽出するモジュールであり、事前に定めた「物体A」~「物体D」ごとに検出スコアを算出する。「物体A」の検出スコアは、「物体A」が写っている可能性の高さを示す数値の百分率であり、それが閾値を超えた場合に、「物体検出(AI)」のモジュール30は景観に「物体A」が存在すると判定する。「物体検出(AI)」のモジュール30の内部パラメータは、このような検出スコアに対する閾値である。図5の例では、ユーザがスライダを操作することにより閾値を指定することができ、「物体A」~「物体D」のそれぞれの検出スコアに対する閾値は20%、33%、32%、及び52%である。
【0069】
なお、「物体検出(AI)」等の第3のグループ30c(図2参照)に属する各モジュール30は、学習済モデルに基づいて特徴抽出を行う。その学習済モデルを更新した場合は、ユーザが、動作設定領域60cに学習済モデルのファイルをアップロードすればよい。
【0070】
また、「ディレクトリスキャン」のモジュール30の動作についても動作設定領域60cで設定できる。例えば、スキャン先のURL(Uniform Resource Locator)やパス等を動作設定領域60cで設定できる。また、スキャン対象のファイルの種類(拡張子)を設定してもよい。
【0071】
「ルールベース分類」のモジュール30は、「物体A」~「物体D」のうちのどれが不審物であるかを示すルールベースを参照し、「物体検出(AI)」のモジュール30が検出した物体が不審物かどうかを判定する。例えば、ルールベースにおいて「物体A」が不審物であると定められている場合に、「物体検出(AI)」のモジュール30が「物体A」を検出したときは、「ルールベース分類」のモジュール30は景観内に不審物があると判定する。なお、「ルールベース分類」のモジュール30のルールは動作設定領域60cで設定できる。
【0072】
このように学習済モデルに基づいて特徴を抽出する「物体検出(AI)」等のモジュール30の後段に、そのモジュール30が抽出した特徴に対してルールベースで判定を行うモジュール30を接続することで、不審物の有無といったユーザに有益な判定結果を得ることができる。
【0073】
再び図1を参照する。
【0074】
第2の受付部17は、パイプライン50におけるモジュール30同士の接続関係の指定を受け付ける処理部である。接続関係の指定方法は特に限定されない。例えば、図5の例では、ユーザが入力部33を操作することによりキャンバス領域60bに矢印Aを描画し、各モジュール30の接続関係を矢印Aで指定してもよい。この場合、矢印Aの根元から先端に向かう方向がデータが流れる方向を示す。第2の受付部17は、矢印Aの描画操作が行われたときに接続関係の指定を受け付ける。
【0075】
図5の例では、「ディレクトリスキャン」のモジュール30の出力先モジュールが「物体検出(AI)」のモジュール30であり、「物体検出(AI)」のモジュール30の入力元モジュールが「ディレクトリスキャン」のモジュール30であるという接続関係の指定を第2の受付部17が受け付ける。なお、「ディレクトリスキャン」のモジュール30に先端が接続された矢印Aが存在しない。この場合は、第2の受付部17は、「ディレクトリスキャン」のモジュール30がパイプライン50の先頭のモジュールであるという指定を受け付ける。同様に、「目視判断」のモジュール30に根元が接続された矢印Aが存在しない。この場合は、第2の受付部17は、「目視判断」のモジュール30がパイプライン50の最終のモジュールであるという指定を受け付ける。
【0076】
このように、本実施形態では、ユーザがメニュー領域60aにあるタブ60eからモジュール30を選択し、それらを矢印Aで接続することで、パイプライン50を簡単に構築することができる。
【0077】
再び図1を参照する。
【0078】
第3の受付部18は、モジュール30の内部パラメータの値の指定を受ける機能部である。例えば、ユーザがパラメータ指定メニュー60d(図5参照)におけるスライダを操作し、「物体検出(AI)」のモジュール30の閾値を指定すると、第3の受付部18はその閾値の指定を受け付ける。
【0079】
定義情報生成部19は、第2の受付部17が指定を受け付けたモジュール30同士の接続関係を示すパイプライン定義情報23(図4参照)を生成する機能部である。
【0080】
実行部21は、パイプライン定義情報23が示す接続関係に従ってモジュール30同士を接続したパイプライン50を実行する実行エンジンである。一例として、実行部21は、パイプライン定義情報23のモジュール名で特定される複数のモジュール30を選択し、これらをパイプライン定義情報23に従って接続することでパイプライン50を生成する。なお、複数のモジュール30の中には、API(Application Programing Interface)を介してネットワーク5上の外部サービスを呼び出して処理を実行するものが含まれていてもよい。そして、実行部21は、生成したパイプライン50を記憶部12に格納する。その後、実行部21は、記憶部12に格納されたパイプライン50を実行する。
【0081】
実行結果出力部22は、パイプライン50を実行したときの各モジュール30の実行結果を端末装置3に出力するGUI(Graphical User Interface)である。例えば、実行結果出力部22は、記憶部12に格納されている表示項目情報24を参照して各モジュール30の実行結果を表示部34にGUI画面で表示する。
【0082】
図6は、表示項目情報24の一例を示す模式図である。
【0083】
図6に示すように、表示項目情報24は、モジュール30ごとに予め定めておいた表示項目40が格納された情報である。例えば、「ディレクトリスキャン」のモジュール30では、スキャンをした「日付」、スキャン対象の「ディレクトリ名」、及びスキャンしたディレクトリに格納されている画像ファイルの枚数である「画像枚数」が表示項目となる。また、「日付」、「ディレクトリ名」、及び「画像枚数」の各々が、「ディレクトリスキャン」のモジュール30の実行結果に相当する。
【0084】
また、「物体検出(AI)」のモジュール30では、検査開始の指示のための実行ボタンを表示するための「検査」と、処理の進捗状況を示す「進捗」が表示項目40となる。
【0085】
更に、「ルールベース分類」のモジュール30では、処理の進捗状況を示す「進捗」と、不審物が写り込んでいない画像ファイルの枚数である「OK枚数」と、不審物が写り込んでいた画像ファイルの枚数である「NG枚数」とが表示項目40となる。同様に、「目視判断」のモジュール30においても、処理の進捗状況を示す「進捗」と、不審物が写り込んでいない画像ファイルの枚数である「OK枚数」と、不審物が写り込んでいた画像ファイルの枚数である「NG枚数」とが表示項目40となる。「ルールベース分類」と「目視判断」の各モジュール30においては、「OK枚数」と「NG枚数」とが実行結果に相当する。
【0086】
また、実行結果出力部22は、パイプライン50における各モジュール30の接続順に各表示項目40を並べて表示する制御を行う。接続順は、データが流れる方向であって、図6の例では「ディレクトリスキャン」、「物体検出(AI)」、「ルールベース分類」、及び「目視判断」の順が接続順となる。
【0087】
図7は、このように実行結果出力部22が各モジュール30の接続順に表示項目を並べて表示する制御を行ったときのGUI画面の一例を示す図である。
【0088】
図7に示すように、このGUI画面67には、ステップS1~S4の各ステップが表示される。これらのステップは、「ディレクトリスキャン」、「物体検出(AI)」、「ルールベース分類」、及び「目視判断」の各モジュール30の各々に対応したステップである。
【0089】
ステップS1には、「ディレクトリスキャン」のモジュール30の表示項目40に従って、「日付」、「ディレクトリ名」、及び「画像枚数」が表示される。
【0090】
また、ステップS2には、「物体検出(AI)」のモジュール30の表示項目40に従って、実行ボタン68を表示するための「検査」と、処理の進捗状況を示す「進捗」の各項目が表示される。実行ボタン68は、検査開始の指示を出すためにユーザが押下するボタンである。実行部21は、実行ボタン68が押下されたときに、「物体検出(AI)」のモジュール30を実行する。この例では、ディレクトリごとに実行ボタン68が表示される。これにより、ユーザは、ディレクトリごとに画像ファイルの検査を行うことができる。また、「進捗」の項目には、「物体検出(AI)」のモジュール30の処理の進捗状況が示される。進捗状況は、モジュール30に含まれる全てのステップ数と、実行を終えたステップの数との比の百分率である。
【0091】
一方、ステップS3には、「ルールベース分類」のモジュール30の表示項目40に従って、「進捗」、「OK枚数」、及び「NG枚数」の各項目が表示される。同様に、ステップS4においても、「目視判断」のモジュール30の表示項目40に従って、「進捗」、「OK枚数」、及び「NG枚数」の各項目が表示される。
【0092】
また、GUI画面67には、表示更新ボタン69、スキャンボタン70、及びAI一括実行ボタン71の各ボタンも表示される。このうち、表示更新ボタン69は、GUI画面67の表示を更新するためにユーザが押下するボタンである。
【0093】
スキャンボタン70は、「ディレクトリスキャン」のモジュール30を実行するためにユーザが押下するボタンである。実行部21は、スキャンボタン70が押下されたときに、「ディレクトリスキャン」のモジュール30を実行し、当該モジュール30が複数のディレクトリを一括してスキャンする。
【0094】
AI一括実行ボタン71は、複数のディレクトリにある画像ファイルに対して「物体検出(AI)」のモジュール30に一括して検査を行わせるためにユーザが押下するボタンである。実行部21は、AI一括実行ボタン71が押下されたときに、「物体検出(AI)」のモジュール30を実行する。これにより、「物体検出(AI)」のモジュール30は、複数のディレクトリに格納されている画像ファイルから物体を抽出する処理を行う。なお、このようにAI一括実行ボタン71をユーザが押下したときは、検査対象のディレクトリをユーザが指定する必要はないため、実行ボタン68は非表示となる。
【0095】
また、実行部21は、このようにモジュール30ごとに実行するのではなく、パイプライン50における前段のモジュール30の処理が終了したときに後段のモジュール30を直ちに実行してもよい。
【0096】
更に、実行結果出力部22は、パイプライン50を構成する全てのモジュール30の実行を終えてから表示項目40の内容を表示する必要はない。一例として、実行結果出力部22は、パイプライン50を構成する複数のモジュール30のうちの途中のモジュール30の実行を終えたときに、実行を終えたモジュール30の表示項目40の内容のみを表示する制御を行ってもよい。図7の例では、「ディレクトリスキャン」のモジュール30の実行が完了し、後段の「物体検出(AI)」のモジュール30が未実行の場合には、「ディレクトリスキャン」の表示項目40の内容のみが表示され、「物体検出(AI)」の表示項目40の内容は表示されない。
【0097】
本実施形態では、実行結果出力部22が、このようにパイプライン50を実行したときの各モジュール30の実行結果をGUI画面67に表示する制御を行う。そのため、ユーザが、各モジュール30の実行結果に基づいて、開発途中のパイプライン50の効果を確認することができる。これにより、例えば、ユーザの課題を解決するためのITソリューションをパイプライン50で実現できないとユーザが考えた場合には、パラメータ指定メニュー60d(図5参照)における閾値等の内部パラメータを調節し、再びパイプライン50を実行してその効果を確認でき、所望の効果を奏するパイプライン50を構築することが可能となる。
【0098】
なお、このように各モジュール30の接続順に表示項目40を並べるのに代えて、実行結果出力部22が、ユーザの好みに応じて表示項目40を所定の配置で表示する制御を行ってもよい。
【0099】
図8は、このように実行結果出力部22が表示項目40を所定の配置で表示する制御を行ったときのGUI画面の一例を示す図である。
【0100】
図8に示すように、GUI画面72には、サマリー表示領域75、画像表示領域76、地図表示領域77、及び結果表示領域78が表示される。
【0101】
サマリー表示領域75は、「ファイル名」、「AI」、及び「目視」の各表示項目40を表示する領域である。
【0102】
「ファイル名」の表示項目40は、「ディレクトリスキャン」のモジュール30がディレクトリをスキャンしたときに取得した画像ファイルのファイル名の一覧を表示する項目である。このようにサマリー表示領域75にファイル名の一覧を表示することで、ユーザが、パイプライン50で処理する画像ファイルを把握することができる。
【0103】
また、「AI」の表示項目40は、「物体検出(AI)」のモジュール30が抽出した物体が不審物かどうかの判定を「ルールベース分類」のモジュール30が行ったときの処理結果を表示する項目である。その物体が不審物でない場合には「OK」が表示され、その物体が不審物である場合には「NG」が表示される。
【0104】
そして、「目視」の表示項目40は、「目視判断」のモジュール30を実行したときに、ユーザが不審物かどうかを判定した結果を表示する項目である。ユーザが不審物ではないと判定したときには「OK」が表示され、ユーザが不審物であると判定したときには「NG」が表示される。なお、「目視判断」のモジュール30がまだ実行されていない場合には、「目視」の表示項目には記号「-」が表示される。
【0105】
画像表示領域76は、「ディレクトリスキャン」のモジュール30が取得した画像ファイルが示す景観を表示する領域である。ここでは、「ファイル名」の表示項目40においてハイライト表示されているファイル名に対応した景観が画像表示領域76に表示される。
【0106】
更に、画像表示領域76の下にはOKボタン86aとNGボタン86bとが表示される。これらのボタン86a、86bは、「目視判断」のモジュール30が、画像表示領域76に示された景観内に不審物が写っているか否かの目視判定の入力をユーザに促すためのボタンである。例えば、ユーザは、景観内に不審物が写っていないと判定したときにOKボタン86aを押下し、景観内に不審物が写っていると判定したときにNGボタン86bを押下する。
【0107】
地図表示領域77は、画像表示領域76に表示された景観を撮影した場所を示す地図を表示する領域である。その地図は、ユーザによって事前に記憶部12に格納される。なお、画像表示領域76に表示されている画像ファイルにGPS(Global Positioning System)等による位置情報が設定されている場合がある。その場合は、位置情報が示す位置とその周辺とを含む地図をネットワーク5上の地図データベースから実行結果出力部22が取得し、取得した地図を実行結果出力部22が地図表示領域77に表示してもよい。
【0108】
結果表示領域78は、「ルールベース分類」のモジュール30と「目視判断」のモジュール30の実行結果を表示する領域である。図8の例のように「AI」の文字列81の右に結果表示領域78の一部78aが表示されているときは、「ルールベース分類」のモジュール30の実行結果が結果表示領域78に表示される。この例では、画像表示領域76に表示された景観内に不審物はないと「ルールベース分類」のモジュール30と判定したため、結果表示領域78には文字列「OK」が表示される。
【0109】
一方、図9は、画像表示領域76に表示された景観内に不審物があると「ルールベース分類」のモジュール30と判定したときのGUI画面72の一例を示す図である。
【0110】
図9の例では、画像表示領域76内に白枠で示すフェンスが写り込んでおり、これが不審物であると「ルールベース分類」のモジュール30が判定した場合を想定している。この場合、結果表示領域78に、不審物があることを示す文字列「NG」が表示される。このように「NG」の場合には検出物表示欄83が新たに表示され、そこに検出物である「フェンス」が表示される。更に、検出物表示欄83の隣にスコア表示欄84が表示され、そこに「物体検出(AI)」のモジュール30が算出した検出スコアが表示される。
【0111】
図10は、ユーザがOKボタン86aを押下したときのGUI画面72の一例を示す図である。
【0112】
ユーザがOKボタン86aを押下すると、「目視」の文字列82の右に結果表示領域78の一部78bが表示された状態となり、結果表示領域78に文字列「OK」が表示される。これと共に、「目視」の表示項目40において、画像表示領域76に表示された画像ファイルに対応したエントリにも文字列「NG」が表示される。
【0113】
なお、地図表示領域77に表示する地図は、地図画像をアップロードするためのGUI画面を実行結果出力部22が表示部34に表示する制御を行うことで、ユーザが開発支援装置2に入力できる。
【0114】
図11は、地図の入力を促すためのGUI画面の一例を示す図である。
【0115】
図11に示すように、GUI画面89には、地図表示領域90、地図画像アップロード領域91、及び追加領域92を有する。
【0116】
このうち、地図画像アップロード領域91は、地図画像を含むファイルをアップロードする領域である。例えば、ユーザは、地図画像アップロード領域91にファイルをドラッグ&ドロップすることで、当該ファイルをアップロードできる。なお、アップロードしたファイルは、端末装置3の処理部31が、ネットワーク5を介して開発支援装置2に送信する。
【0117】
地図表示領域90は、アップロードしたファイルに含まれる地図画像を表示する領域である。また、追加領域92は、ユーザが、地図画像に防壁や障害物等の位置を追加する領域である。
【0118】
図12は、パイプライン50が動画ファイルを扱う場合のGUI画面の一例を示す図である。ここでは、パイプライン50が、「ディレクトリスキャン」、「物体検出(AI)」、及び「ルールベース分類」の各モジュール30によって構成されている場合を想定する。また、以下では、パイプライン50が、現金自動預払機に忘れ物があるかを判定する場合を例にして説明を行う。
【0119】
図12の例では、実行結果出力部22が、サマリー表示領域94、動画再生領域95、及び時系列解析領域96を含むGUI画面93を表示部34に表示する制御を行う。
【0120】
このうち、サマリー表示領域94は、「ファイル名」と「AI」の各表示項目40を表示する領域である。
【0121】
「ファイル名」の表示項目40は、「ディレクトリスキャン」のモジュール30がディレクトリをスキャンしたときに取得した動画ファイルのファイル名の一覧を表示する項目である。
【0122】
また、「AI」の表示項目40は、「物体検出(AI)」のモジュール30が抽出した物体の存続期間に基づいて、現金自動預払機に忘れ物があるかの判定を「ルールベース分類」のモジュール30が行ったときの処理結果を表示する項目である。これにより忘れ物があると判定された場合には、「AI」の表示項目40に「忘れ物あり」の文字列が表示される。
【0123】
動画再生領域95は、「ディレクトリスキャン」のモジュール30が取得した動画ファイルを再生する領域である。
【0124】
時系列解析領域96は、「物体検出(AI)」のモジュール30が抽出した物体の存続期間に基づいて「ルールベース分類」のモジュール30が行う判定プロセスを可視化した領域である。
【0125】
例えば、「物体検出(AI)」のモジュール30が人とキャッシュカードとを抽出したとする。この場合、人の存続期間が終了してから所定時間だけ経過した後でもキャッシュカードの存続期間が続いている場合、「ルールベース分類」のモジュール30は、忘れ物があると判定する。
【0126】
なお、実行結果出力部22が、パイプライン50を構成するモジュール30の少なくとも一つの処理結果の推移や統計を表示部34にGUI画面で表示する制御を行ってもよい。
【0127】
図13は、そのGUI画面の一例を示す図である。
【0128】
図13の例では、図7図8のように景観中に不審物があるかの判定を行う「ルールベース分類」の処理結果をGUI画面97に表示する場合を想定する。この場合、GUI画面97には、推移表示領域98と統計表示領域99とが含まれる。
【0129】
推移表示領域98は、「画像枚数」、「OK枚数」、及び「NG枚数」の時間的な推移を表示する領域である。「画像枚数」は、「ルールベース分類」のモジュール30が判定を行った画像ファイルの全ての個数である。また、「OK枚数」は、景観中に不審物が写っていないと「ルールベース分類」のモジュール30が判定した画像ファイルの個数である。そして、「NG枚数」は、景観中に不審物が写っていると「ルールベース分類」のモジュール30が判定した画像ファイルの個数である。
【0130】
一方、統計表示領域99は、「OK枚数」と「NG枚数」の各々が「画像枚数」に示す割合の百分率を表示する領域である。ここでは、1か月等の所定の期間内における割合の百分率が統計表示領域99に表示される。
【0131】
このようにGUI画面97に推移表示領域98を表示することで、「ルールベース分類」のモジュール30の判定結果の時期的な傾向をユーザが把握することができる。また、GUI画面97に統計表示領域99を表示することで、「ルールベース分類」のモジュール30の判定結果について、「OK枚数」と「NG枚数」のどちらが多い等の傾向をユーザが把握することができる。
【0132】
図14は、本実施形態に係る開発支援方法の一例を示すフローチャートである。
【0133】
まず、第1の受付部16が、パイプライン50を構成する各モジュール30の選択を受け付ける(ステップS10)。例えば、AIで課題解決を行うITソリューションを実現するためのモジュール30がキャンバス領域60b(図5参照)にドラッグ&ドロップされると、第1の受付部16は、そのモジュール30の選択を受け付ける。
【0134】
次に、第2の受付部17が、パイプライン50における各モジュール30同士の接続関係の指定を受け付ける(ステップS12)。例えば、第2の受付部17は、キャンバス領域60bにおける矢印Aに基づいて各モジュール30同士の接続関係の指定を受け付ける。
【0135】
続いて、定義情報生成部19が、第2の受付部17が指定を受け付けたモジュール30同士の接続関係を示すパイプライン定義情報23(図4参照)を生成する(ステップS14)。
【0136】
次いで、実行部21が、パイプライン定義情報23に従って各モジュール30を接続することでパイプライン50を生成し、生成したパイプライン50を記憶部12に格納する(ステップS16)。
【0137】
次に、実行部21がパイプライン50を実行する(ステップS18)。例えば、実行部21は、スキャンボタン70(図7参照)が押下されたときに「ディレクトリスキャン」のモジュール30を実行する。また、実行部21は、図7の実行ボタン68やAI一括実行ボタン71が押下されたときに「物体検出(AI)」のモジュール30を実行する。
【0138】
なお、実行部21は、このようにモジュール30ごとに実行するのではなく、パイプライン50における前段のモジュール30の処理が終了したときに後段のモジュール30を直ちに実行してもよい。
【0139】
続いて、実行結果出力部22は、パイプライン50を実行したときの各モジュール30の実行結果を端末装置3の表示部34に出力する(ステップS20)。
【0140】
例えば、実行結果出力部22は、図7のGUI画面67の各表示項目40に、パイプライン50を実行したときの「ディレクトリスキャン」、「物体検出(AI)」、「ルールベース分類」、及び「目視判断」の各モジュール30の実行結果を表示する制御を行う。
【0141】
なお、実行結果出力部22は、パイプライン50を構成する全てのモジュール30の実行を終えてから表示項目40を表示する必要はない。例えば、実行結果出力部22は、パイプライン50を構成する複数のモジュール30のうちの途中のモジュール30の実行を終えたときに、実行を終えたモジュール30の表示項目40のみを表示する制御を行ってもよい。
【0142】
以上により、本実施形態に係る開発支援方法の基本的な処理を終える。
【0143】
上記した本実施形態によれば、実行部21が、パイプライン定義情報23に基づいてパイプライン50を生成することで、ユーザが選択したモジュール30から構成されたパイプライン50を簡単に構築でき、AIを活用したITソリューションをそのパイプライン50で簡単に実現できる。
【0144】
しかも、実行結果出力部22が、パイプライン50に含まれる各モジュール30の実行結果を表示部34に表示する制御を行うため、ユーザが、表示された実行結果に基づいてパイプライン50の開発途中にその効果を評価できる。
【0145】
<ハードウェア構成図>
次に、本実施形態に係る開発支援装置2のハードウェア構成について説明する。
【0146】
図15は、本実施形態に係る開発支援装置2のハードウェア構成の一例を示す図である。図15に示すように、開発支援装置2は、記憶装置2a、メモリ2b、プロセッサ2c、通信インターフェース2d、及び媒体読み取り装置2fを有する。これらの各部はバス2gにより相互に接続される。
【0147】
このうち、記憶装置2aは、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性の記憶装置であって、本実施形態に係る開発支援プログラム100を記憶する。
【0148】
なお、開発支援プログラム100をコンピュータが読み取り可能な記録媒体2hに記録させておき、プロセッサ2cに記録媒体2hの開発支援プログラム100を読み取らせるようにしてもよい。
【0149】
そのような記録媒体2hとしては、例えばCD-ROM(Compact Disc - Read Only Memory)、DVD(Digital Versatile Disc)、及びUSB(Universal Serial Bus)メモリ等の物理的な可搬型記録媒体がある。また、フラッシュメモリ等の半導体メモリやハードディスクドライブを記録媒体2hとして使用してもよい。
【0150】
更に、公衆回線、インターネット、及びLAN(Local Area Network)等に接続された装置に開発支援プログラム100を記憶させてもよい。その場合は、プロセッサ2cがその開発支援プログラム100を読み出して実行すればよい。
【0151】
一方、メモリ2bは、DRAM(Dynamic Random Access Memory)等のようにデータを一時的に記憶するハードウェアであって、その上に開発支援プログラム100が展開される。
【0152】
プロセッサ2cは、開発支援装置2の各部を制御するCPU(Central Processing Unit)やGPU(Graphical Processing Unit)である。そのプロセッサ2cがメモリ2bと協働して開発支援プログラム100を実行することにより図1の処理部11が実現される。
【0153】
また、図1の記憶部12は、記憶装置2aとメモリ2bにより実現される。更に、通信インターフェース2dは、開発支援装置2をネットワーク5に接続するためのNIC(Network Interface Card)等のハードウェアである。その通信インターフェース2dにより図1の通信部13が実現される。
【0154】
そして、媒体読み取り装置2fは、記録媒体2hに記録されているデータを読み取るためのUSBリーダ等のハードウェアである。
【0155】
本実施形態の開発支援装置は、典型的には例えばWebページとして各種の操作画面を用意し、端末装置のWebブラウザに表示させることができる。しかし、本実施形態はこの態様に限られない。例えば、端末装置3に各種の操作画面を備える専用アプリケーションプログラムをインストールしてもよい。この場合、開発支援装置2は、各種の操作画面に表示させる一部内容(実行結果などの動的に変化し得るデータ)を端末装置3に送信すれば、端末装置3の専用アプリケーションに各種操作画面を表示させることができる。すなわち、本実施形態の開発支援装置2は、端末装置3に画面を表示させることができる様々な態様も含むことができる。
【0156】
本発明は、上述した実施形態に限定されるものではなく、更に様々な変形が可能である。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある変形例の一部を他の変形例に置き換えたり、変形例を組み合わせたりすることが可能である。
【0157】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0158】
1…開発支援システム、2…開発支援装置、3…端末装置、5…ネットワーク、11…処理部、12…記憶部、13…通信部、15…パイプライン編集部、16~18…第1~3の受付部、19…定義情報生成部、21…実行部、22…実行結果出力部、23…パイプライン定義情報、24…表示項目情報、30…モジュール、30a~30e…第1~第5のグループ、31…処理部、32…通信部、33…入力部、34…表示部、35…操作受付部、40…表示項目、50…パイプライン、51…ディレクトリ、52…画像ファイル、60、67、72、89、93、97…GUI画面、60a…メニュー領域、60b…キャンバス領域、60c…動作設定領域、60d…パラメータ指定メニュー、60e、60f…タブ、68…実行ボタン、69…表示更新ボタン、70…スキャンボタン、71…AI一括実行ボタン、75…サマリー表示領域、76…画像表示領域、77…地図表示領域、78…結果表示領域、81、82…文字列、83…検出物表示欄、84…スコア表示欄、86a…OKボタン、86b…NGボタン、90…地図表示領域、91…地図画像アップロード領域、92…追加領域、94…サマリー表示領域、95…動画再生領域、96…時系列解析領域、98…推移表示領域、99…統計表示領域、100…開発支援プログラム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15