「Design Recognition AIサービス」による設計書逆生成
通常のソフトウェア開発作業は、(1) エンジニアが設計書を作成して、(2) それをもとにプログラミングして、(3) アプリケーション画面ができあがる。一方で、アジャイル開発(設計書を作成しないでソフトウェアを作成する手法)の場合や、メンテナンス(保守・改修)を繰り返した結果、当初の設計書が実物と乖離してしまった場合などに、「今後のメンテナンスの効率化のためにきちんとした設計書を作っておきたい」という要望があるという。
そこで、全世界に共通する「実物をもとに設計書を作成したい」というニーズを満たすため、AIを使って実際の画面から設計データを逆生成する「Design Recognition AIサービス」を販売開始するという。
「Design Recognition AIサービス」の仕組み
「Design Recognition AIサービス」は、(1) 画面からオブジェクト(設計部品)を検出する、(2) 部品の種類や文字、位置を認識する、(3) 取得した情報をもとに設計データを生成する、という3つの連続した処理で実際の画面から設計データを逆生成する。
アプリケーション画面は、一般にコントロールと呼ばれる部品で構成されている。部品には、値を入力する「テキストボックス」、説明文字の「ラベル」、選択につかう「ラジオボタン」や「チェックボックス」、押しボタン「ボタン」、画面を切り替える「タブ」、プルダウンで候補を表示する「リストボックス」などがある。
(1) オブジェクト(部品)検出
画面の中から上記のような部品を検出する処理。一般に写真の中から人物や自動車、家などのオブジェクトを検出するAI画像認識は多く出回っている。しかし、画面内のコントロール部品を検出するという特殊な用途にはどのモデルも使えない。「Design Recognition AIサービス」は、独自にオブジェクト検出機能を作成して高い検出率を達成している。
(2) 認識
・部品認識(コントロール種類判定):検出したオブジェクトが「ラベル」なのか「テキストボックス」なのかという部品認識は、ディープラーニングのCNN(畳み込みニューラルネットワーク)アルゴリズムを使っている。一般的なコントロールの学習済モデルは「SI_control」として提供するので、ユーザーは1から学習しなくてもすぐに利用できる。
・文字認識:「ラベル」や「ボタン」「テキストボックス」などに書かれている文字は、設計データとしても重要。そのため、オブジェクトに含まれている文字をOCR(光学文字認識)により読み取っている。ここでも従来技術のOCRではなく、AI技術を使ったOCRとしているため、英数字だけでなく日本語も高い文字認識率を達成している。
・位置認識:設計データをもとに画面設計書を自動生成するためには、部品の位置や大きさの情報も必要になる。そのためオブジェクト検出機能では、それらの必要な情報も一緒に読み取っている。
(3) 生成
抽出・判定した設計データは、外部で利用しやすいようにJSON形式(簡単に利用できる構造化されたデータ形式)で出力する。
「Design Recognition AIサービス」の活用用途
「Design Recognition AIサービス」は、ソフトウェア開発の設計工程や保守工程などの幅広い範囲で活用できる。例えば、紙にスケッチしたシステムのイメージ画像を「Design RecognitionAIサービス」に送信すると、テキストボックスやボタンなどの各要素を検出できるので、モックアップ(HTML)の生成に役立てることができる。また、レガシーなシステムにおいて設計書がないケース、メンテナンスされていないケースが多くあるが、稼働しているシステム画面の情報をもとに、最新の設計書が生成可能だ。
また、“実物から設計書を逆生成”という発想はIT業界に限らず利用可能だ。例えば、自分の家をカメラで撮影して「ドア」「窓」「壁」などのオブジェクトを検出し、CADソフトに取り込めば、新しい家づくりやリフォームに役立てることができる。
「SI Object Browser Designer(OBDZ)」との連携
システムインテグレータは、アプリケーションソフトウェアを設計するCAD(コンピュータを使った設計)ツール「SI Object Browser Designer (OBDZ)」を販売している。この製品は、これまでWordやExcelなどで手書きしていたソフトウェア設計書作成作業をCAD技術により効率化する設計ツールで、その先進的な発想で2015年に特許を取得している。
「Design Recognition AIサービス」は、この「OBDZ」と連携してシームレスに実際の画面情報から抽出した設計データをOBDZに取込むことができる。その結果、「出来上がった画面から設計情報を逆生成し、今後のメンテナンスはOBDZで効率的に行う」という使い方ができるようになったという。