業務事例紹介

弊社の業務事例をご紹介致します。
掲載している事例は、弊社の業務実績、または技術者の実績を元に作成しています。


1.研究開発・システム開発の事例

  1. 独立成分分析の技術調査および講習
  2. 時系列変化点検出技術の技術調査 [異常検出]
  3. ベイジアンネットワークの技術調査
  4. 周期性衝撃波形抽出技術の技術調査および実装
  5. プロセスマイニングの技術調査
  6. ベイズ推定による機械振動の次数トラッキングの実装
  7. 機械の固有振動検出の実装
  8. 音声の音色表現・再合成システムの開発
  9. ウエーブレット解析による雑音除去アルゴリズムの開発 [信号処理]
  10. 機械の振動や音響による異常検出アルゴリズムの開発 [異常検出]
  11. 半導体製造装置の最適化数値計算制御ソフトウェアの開発 [最適化]
  12. 音声合成プログラムの移植開発 [AI]
  13. 非線形関数の最適フィッティングアプリケーションの開発
  14. 冗長マニピュレータ逆運動学の数理最適化 [ロボティクス]
  15. 設計パラメータに関する解析用ツールの開発
  16. 再構成可能デバイスの回路レイアウト図可視化ソフトウェアの開発
  17. 音の伝搬計算ソフトウェアの開発 [音声処理]
  18. 3次元ユークリッド空間における曲面変化に関わる数値実験アプリケーションの開発
  19. 並列プログラミングモデルによるアルゴリズムの並列化 [ビッグデータ]
  20. 研究用ソフトウェアの拡張とマルチプラットフォーム化
  21. ウェブ組み込み型3DCGエディターの開発
  22. オントロジーを利用したウェブ情報案内システムの開発
  23. 自然言語処理を利用した3DCG表示システムの開発
  24. 自然言語処理を用いた教育システムの開発
  25. Twitter タイムラインの自然言語処理事例の調査
  26. 複数台の PC による同時計測のための遠隔操作システムの開発 [RPA]
  27. Zigbee無線センサーネットワーク監視システムの開発 [IoT]
  28. 時系列センサーデータを用いたリアルタイム状況判定モデル精度検証アプリケーションの開発 [ビッグデータ]
  29. 人体用複数センサー同時計測管理システムの開発 [ビッグデータ]
  30. 医療支援画像処理システムの開発
  31. 断層画像の層判別手法の開発 [AI]
  32. 顔画像認識システムのアルゴリズム開発 [AI]
  33. 少数データに基づく顔識別手法の開発 [AI]
  34. 高解像度フィルムスキャナ制御システムの開発 [画像処理]
  35. 空撮用デジタルカメラ撮影システムの開発 [画像処理]
  36. 商標類似判断アルゴリズムの開発 [AI]
  37. データマイニングを応用した複合問題ガイドシステムの開発
  38. 生体情報カップリング ハードウェアコントロール システムの開発
  39. 脳波計測の実験支援
  40. 脳活動データのデコーディング解析 [AI][生体データ解析]
  41. 視覚刺激呈示プログラムの開発
  42. 心拍変動パラメータ算出 Android アプリの開発 [IoT][AI][生体データ解析]
  43. BLE センサデータ解析用 Windows アプリケーションの開発 [IoT]
  44. 最大エントロピー法による脳の振動活動の可視化ソフトウェアの開発
  45. 神経スパイクソーティングアルゴリズムの開発
  46. スパイク情報の刺激応答性評価ソフトウェアの開発
  47. 高速度カメラ画像処理プログラムの開発 [画像処理]
  48. Ca2+イメージングデータ処理プログラムの開発
  49. 動物行動実験用のデジタイジング・マッピングシステムの開発 [画像処理]
  50. 小動物行動記録システムの開発 [画像処理]

独立成分分析の技術調査および講習

 独立成分分析の様々な手法の理論調査と、その理論に必要な数理理論を報告書としてまとめ、 その報告書に基づいて講習を行いました。

 主に以下の手法を調査しました。

  • ネゲントロピー最小化法 (FastICA)
  • キュムラントテンソル固有値分解法 (JADE)
  • 射影追跡法による非正規成分抽出法
  • β-ダイバージェンス最小化法
  • 時間構造を利用した空間混合の分離法
  • 相互共分散の除去法 (自己共分散行列の固有値分解による同時対角化)
  • 相互無相関化法 (非定常共分散行列の勾配法による同時対角化)
  • 分散非定常性最大化法

 以下の数理理論の解説を行いました。

 情報理論、相互情報量、Kullback-Leibler情報量、主成分分析、因子分析、正準相関分析、 非線形PCA、カーネルCCA、キュムラント分解、最尤法、疑似最尤法、ネゲントロピー、 密度分布のGram-Charlier展開、Gauss-Hermite展開、Edgeworth展開、Cornish-Fisher展開、 beta-ダイバージェンス、B-ロバスト性、射影追跡法、カーネル次元削減法、Marcinkiewiczの定理、 最大エントロピー法、非線形最適化、固有値分解・特異値分解の数値計算、行列の対称直交化

時系列変化点検出技術の技術調査

 時系列上の何らかの意味での「変化点」を検出する技術を調査し、報告書としてまとめました。

 こういった技術は一般に変化点検出 (change point detection)、異常検出 (anomaly detection)、 モチーフ発見 (motif discovery) などと呼ばれ、多くの手法が研究されています。 その分野も、信号処理だけでなく、セキュリティシステムやバイオインフォマティクス、 マルチメディアの分野でも研究されています。

 主に以下の手法を調査しました。

  • シンボリック アグリゲーション近似法
  • ランダム射影法
  • Markov-Suffixツリー法
  • 正規化編集距離法
  • Isomap非線形次元削減法
  • Kolmogorov複雑性を用いた異常検出法
  • PCAとMDL原理に基づいたモチーフ発見法

ベイジアンネットワークの技術調査

 確率変数間の因果関係をモデル化する技術であるベイジアン ネットワークについて、 3つのアルゴリズムを調査いたしました。

  • 推論アルゴリズム
  • パラメータ学習アルゴリズム
  • 構造学習アルゴリズム

 また、ソフトウェアとして実装できるまでの内容を報告書にまとめました。
 また、ベイジアンネットワークの具体的な応用事例を調査しました。

 主に以下の手法を調査しました。

  • メッセージ・パッシング アルゴリズム (確率伝播法)
  • SPIアルゴリズム (記号的確率推論)
  • 尤度重み付けサンプリング法
  • ディリクレ分布に基づいたEMアルゴリズムによるパラメータ学習法
  • K2アルゴリズムによる構造学習法

 以下のような応用事例を調査しました。

  • 航空機ガスタービン エンジンの異常同定
  • 船舶機関室の知的異常診断
  • タービン発電機の異常診断
  • 機械振動や機械音声による異常診断
  • 自動ドアの異常診断
  • 宇宙機器の異常診断

周期性衝撃波形抽出技術の技術調査および実装

 時系列データの中から、周期性衝撃波形を検出・抽出するための技術を調査し、報告書としてまとめました。
 また、そのうちの5つのアルゴリズムを実装し、比較検討を行いました。

 主に以下の手法を調査しました。

  • SVRスペクトル法
  • 行列代数分離法 (MAS)
  • キュムラント調和分解法
  • 直交部分空間分解法
  • 周期変換法 (PT)
  • フィルタ選択型 適応的コムフィルタ (ACF)
  • 一様Qコムフィルタ
  • 高速白色化コムフィルタ
  • 調波推定白色化コムフィルタ
  • 格子型IIR適応ノッチフィルタ
  • 相関インパルス適応フィルタ (CIAF)
  • 回転適応フィルタ (RAF)
  • 循環シフト断続適応フィルタ (CSSGAF)
  • 正準自己回帰分解 (CARD)
  • 大局振幅位相変調法
  • フーリエ線型結合機 (FLC)
  • 再帰的離散フーリエ変換
  • 高速フィルタバンクによる適応フーリエ解析

プロセスマイニングの技術調査

 時系列状のイベントログから、その背後にあるプロセス構造を推論する技術であるプロセスマイニングについて、さまざまな手法を調査し報告書としてまとめました。 また、そのうちの1つのアルゴリズムを Java で実装しました。

 主に以下の手法を調査しました。

  • Heuristic アルゴリズム
  • Genetic アルゴリズム
  • Duplicate Task GA アルゴリズム
  • alpha アルゴリズム
  • alpha++アルゴリズム
  • Parikh Language-based Region アルゴリズム
  • Region アルゴリズム
  • Tsinghua-alpha アルゴリズム
  • Fuzzy アルゴリズム
  • DWS mining アルゴリズム

ベイズ推定による機械振動の次数トラッキングの実装

 回転機械や往復機械から発生する音や振動から、その機械の回転数を推定するために、 ベイズ推定を用いた次数トラッキング法を MATLAB で実装しました。


<開発環境・技術分野> MATLAB, 信号処理, 数値計算, ベイズ推定, 最尤法

機械の固有振動検出の実装

 機械がもつ固有振動をその振動のスペクトルから推定するためのプログラムをMATLABで実装しました。


<開発環境・技術分野> MATLAB, 信号処理, スペクトル解析, ノンパラメトリック平滑化,
Nadaraya-Watson推定量, ガウス混合モデル, EMアルゴリズム

音声の音色表現・再合成システムの開発

 音声データから、音色を表す本質的なデータ構造 (音色表現) を抽出し、逆に、そのデータ構造から元の音色を復元・再合成するシステムです。

 McAulay-Quatieri 正弦解析を聴覚心理学に基づいて改良したバンド幅拡張正弦モデルをベースとし、 Cohen の核関数法に基づいたスペクトログラム再配置法による音色解析の精密化、それに独自の聴覚エネルギーモデルを加えながら、 複数のアルゴリズムを実験できるシステムを構築しました。


<開発環境・技術分野> MATLAB, 信号処理、音声処理, McAulay-Quatieri 正弦解析, 聴覚心理学モデル,
スペクトログラム再配置法, Cohenの核関数クラス

ウェーブレット解析による雑音除去アルゴリズムの開発

 音声や振動に含まれる雑音を、ウェーブレット解析を利用して除去するアルゴリズムを研究するためのシステムを開発しました。

Global GCV 法、Level-Dependent GCV 法

 離散ウェーブレット変換係数に対して GCV (Global Cross-Validation) が最小となる閾値を求め、 その閾値以下を除去することでノイズを除去する方法。

Tree-Structured 法

 ウェーブレット係数のツリーから、ある閾値以上の強度の部分ツリーを求めることで、本来の波形とは無関係のノイズを除去する方法。 部分ツリーを求めるために、Dyadic CART (Classification And Regression Trees) アルゴリズムを実装しました。 これは、ノードに値をもつ (スパースな) ニ分木に対して、ニ分木の複雑さに関するペナルティを課した上でモデル回帰を行う手法です。


 このシステムを開発するには、複雑なデータ構造の処理が必要になりますが、MATLABは複雑なデータ構造を扱うことを苦手とするため、 アルゴリズムの中心部分を C++ で実装し、MATLAB からプラグインの形で呼び出すようにしました。


<開発環境・技術分野> MATLAB, C++, MATLAB プラグイン, ウェーブレット解析, GCV, ツリーモデル回帰

機械の振動や音響による異常検出アルゴリズムの開発

 機械が発生する振動や音響から、機械の異常判定を行うアルゴリズム開発を行いました。

 スペクトル解析や統計解析を用いて、異常検出に有効と考えられる特徴量を抽出します。 それを入力とする、様々なパターン認識の技法を用いた判別アルゴリズムを開発し、アルゴリズムの有効性を検証しました。



機械の振動や音響による異常検出アルゴリズムの開発

<開発環境・技術分野> スペクトル解析, 統計解析, 時系列解析, パターン認識, MATLAB, C++

半導体製造装置の最適化数値計算制御ソフトウェアの開発

 時系列解析の AR モデル推定を反復解法の数値計算で解くというソフトウェアが非常に遅く実用化に至らないため、 何とかして高速化してほしいという依頼です。

 この業務では、様々な数値計算アルゴリズムの理論比較および実装比較を行い、
最終的に1000倍以上の高速化を達成しました。

半導体製造装置の最適化数値計算制御ソフトウェアの開発

<開発環境・技術分野> 時系列解析, ARモデル推定, 数値計算, C

音声合成プログラムの移植開発

 CMU および Edinburg 大学で開発され、C++ と Scheme により実装された音声合成プログラムを C 言語に移植しました。

 元々のプログラムは、音声信号処理や各種アルゴリズムが C++ で実装されており、 Scheme インタプリタを介してそれらを利用できるため、高度にカスタマイズ可能な音声合成ソフトウェアとなっています。 しかし、これを実環境で使うにはシステムが大きく、汎用的で冗長な処理が多数含まれるため、 処理の簡略化と共に C 言語に移植することを行いました。

 C 言語では Scheme インタプリタは内蔵せず、参照カウントを用いたシンプルな Scheme オブジェクト実装を使いました。
 音声合成における各種推定処理は、n-gram 辞書を利用した Viterbi アルゴリズムにより実装しました。
 Scheme で実装された学習済み決定木を C 言語で実装された決定木に変換する Scheme プログラムを実装しました。



音声合成プログラムの移植開発


<開発環境・技術分野> テキスト音声合成, C++, Scheme, Viterbi アルゴリズム, 決定木

非線形関数の最適フィッティングアプリケーションの開発

 計測機器のデータにフィッティングする非線形関数を求めるアプリケーションを開発しました。

 目的の非線形関数の係数をこのアプリケーションにより求めることができます。

 非線形関数の推定には、derivative free 最小二乗法を用いています。
 データの前処理には Wavelet を用い、計測点間のデータの補間には、3 次のスプライン補間を用いています。


非線形関数の最適フィッティングアプリケーションの開発のイメージ図

<開発環境・技術分野> 非線形最小二乗法, Wavelet, スプライン補間, ヤコビアン, QR分解, C#

冗長マニピュレータ逆運動学の数理最適化

 冗長マニピュレータの逆運動学を解くためのソフトウェア開発です。 数式処理システムによって解析解を導出するとともに、数理最適化によって実用的な解を計算するソフトウェアを開発しました。

 冗長系の逆運動学では、解析解が無数に存在しますが、その中で実用上有効な解は、一部に限られます。 そのため、自由度のある解析解の中から、実用にフィットする解を選別するために、数理最適化を行います。
 また、逆運動学は理論上は解析解が得られるものの、逆行列の計算を伴うため、関節数が多くなるにつれて、解の式が膨大な項に膨れ上がります。 それをそのまま実装しても、実用的な時間内で解が得られることは期待できません。 そこで、解析解と数理最適化を組み合わせることで、高速に解を求めるアルゴリズムを開発し、ソフトウェアに実装しました。

 数理最適化の実装では、共役勾配法などの数種のアルゴリズムを実装して比較検討し、精度と速度のバランスのよい、最良のアルゴリズムを選定しました。


冗長マニピュレータの例

<開発環境・技術分野> 冗長系逆運動学, 数式処理システム, 数理最適化, C++

設計パラメータに関する解析用ツールの開発

 機械の設計パラメータを解析、可視化するツール群を作成しました。

自己組織化マップ

 SOM による2次元描画に必要な情報を出力し、ESOM によって可視化します。

クラスタリング

 パラメータを K-means によりクラスタリングし、クラスタの代表点が目視しやすい 2 軸を自動抽出してグラフ表示用データを出力します。

最小二乗法

 𝒚 と 𝑿 が与えられたとき、 𝒚≈𝑿𝒘 となる重みベクトル 𝒘 を最小二乗法によって求めます。
 逆行列の計算には、Gram-Schmidt の直交化による QR 分解を使用しました。


の図 の図

<イメージ図>


<開発環境・技術分野> 自己組織化マップ、ESOM、K-means、Gram-Schmidt、QR分解、Java

再構成可能デバイスの回路レイアウト図可視化ソフトウェアの開発

 再構成可能デバイスの大規模な回路レイアウト図を作成、可視化するソフトウェアを開発しました。

 基本単位となる回路レイアウト (基本タイル) を様々な配置パターンで増殖し、大規模な回路レイアウトを作図することができます。 また、回路図要素の検索や配線長をもとに該当する配線を検索し、ビューの中心に表示することができます。 このほか、配置配線を行った回路図要素を色強調し、レイアウト全体における配置配線の密集具合を可視化することができるなど、研究目的に合わせた機能を実現しています。

 大規模な回路レイアウト図を高速に描画するため、Java OpenGL (JOGL) ライブラリを用いて実装しました。


注目する配置配線を色強調した回路レイアウト図

<注目する配置配線を色強調した回路レイアウト図>


<開発環境・技術分野> 再構成可能デバイス, FPGA, 可視化, Java, C++, OpenGL

音の伝搬計算ソフトウェアの開発

 1つの音源に対し、基準点と受音点の A 特性音圧レベルの差を周波数ごとに計算し、ファイル出力するプログラムを開発しました。
 出力結果を可視化することで、道路から沿線地域への騒音伝搬のうち、回折効果と道路の地表面効果を評価することができます。

 また、出力結果から周波数ごとの音圧レベルの差をグラフ化する中で、これまで使用されていた相対複素音圧の計算過程に誤りがあることを発見しました。


<計算式より抜粋>

計算式の一例

<イメージ図>

音の伝搬計算ソフトウェアの可視化イメージ図 音の伝搬計算ソフトウェアの設定部分のイメージ図

<開発環境・技術分野> 音の伝搬, 複素数計算, 数値積分, C#

三次元ユークリッド空間における曲面変化に関わる数値実験アプリケーションの開発

 境界問題の数値実験を行うシステムです。

 極座標を 3 次元空間に写像する関数をテキスト形式で入力することが可能で、曲面の初期条件を、自由に設定出来ます。 また、数値実験に関わる条件設定を自由に変更でき、様々な実験ケースを行えます。

 画面上の曲面は、マウス操作により自由な視点から確認することが出来ます。 さらに数値実験における曲面変化の経過を再生・動画出力することが可能です。

 数値計算とリアルタイム 3D 曲面描画は、ネイティブ言語により行われており、高速化が図られています。
 環境依存性の低い C++ と Java を実装言語として採用することにより、低コストで Mac OS X 版と Windows 版の両方を開発しました。


三次元ユークリッド空間における曲面変化に関わる数値実験アプリケーションのGUI

<開発環境・技術分野> C++, Java, JNI, OpenGL, OpenCV 境界問題、数値実験

並列プログラミングモデルによるアルゴリズムの並列化

 従来単一の CPU で動作していたプログラムを並列化し、マルチプロセッサ環境で効率よく動作するソフトウェアの開発を行いました。

 共有メモリ型の並列化には OpenMP を、分散メモリ型の並列化には MPI を使用し、実行環境に適した並列化を実現しました。


並列プログラミングモデルによるアルゴリズムの並列化イメージ図
<開発環境・技術分野> C++, OpenMP, MPI, 並列プログラミングモデル

研究用ソフトウェアの拡張とマルチプラットフォーム化

 Windows環境に対応した研究用ソフトウェアの機能拡張と、Javaフレームワークによるマルチプラットフォーム化を行いました。

 OpenGLに依存した三次元的な機能については、JOGLによる移植を行いました。
 同時に、ソフトウェアの数値シミュレーション機能の拡張も行いました。


マルチプラットフォーム化 研究用ソフトウェアイメージ図

<イメージ図>
<開発環境・技術分野> Java, VB6.0, OpenGL, JOGL, C, C++
Windows, Mac OS, Linux数値シミュレーション

ウェブ組み込み型3DCGエディターの開発

 ウェブブラウザ上から、Javaアプレットを用いて、簡易に3Dアニメーションを編集できるシステムを Java3D を用いて開発しました。

 アニメーションデータは独自のファイル形式として保存されますが、VRML との互換性を持ち、VRML ファイルのインポート・エクスポートが可能です。 これにより、一般的な3Dモデラーからエクスポートされた3Dキャラクタをアニメーションさせることができます。 しかし、3Dモデラーからエクスポートされた VRML のアニメーションは、パーツのアフィン変換ではなく、頂点のモルフィングとして記述されることがあります。 モルフィングは、データサイズを増加させるため、ウェブ組み込み型ではサポートすることができず、そのため VRML アニメーションをインポートすることができません。

 この問題を解決するために、モルフィングアニメーションを最小二乗推定によりアフィン変換に近似するアルゴリズムを開発しました。


<開発環境・技術分野> Java Applet, Java Swing, Java3D, VRML, 数値計算

オントロジーを利用したウェブ情報案内システムの開発

 ウェブマイニングによって得られたオントロジー (知識データ構造) を用いて、 そのオントロジーに即したウェブ情報案内を行うシステムです。

 特定のトピックに関連した情報・用語・リンク・評判・比喩・エピソードなどを効率よく閲覧でき、自然言語によ る質問にも回答できます。
 3Dエージェントを備えており、ユーザーの操作に伴って、3Dキャラクタが特定の振る舞いをし発話します。発 話は市販の音声合成ソフトウェアで自動的に合成されるようにしました。

 Ajax を用いた対話性の高いフレンドリーなインターフェイスを備えています。


<開発環境・技術分野> Ajax, PHP, C++, ATL, ActiveX, SQLite, Xerces, 自然言語処理, オントロジー, 音声合成

自然言語処理を利用した3DCG表示システムの開発

 3Dアニメーションをブラウザ上で編集するためのJavaアプレットを Java3D で開発しました。

 サーバーには3Dキャラクタのモデリングファイルが格納されます。 Java アプレットは、サーバーに接続して3Dキャラクタを取り込み、 ユーザーはマウスを用いて簡単に3Dアニメーションを作成できるようになっています。 このシステムでは、ウェブサーバー上で3Dレンダリングを行い、 ブラウザ上にはアニメーション GIF 画像として表示します。


<開発環境・技術分野> Java Applet, Java Servlet/JSP, Java Swing, Java3D, Tomcat, MySQL,
Linux (Fedora Core 5), 自然言語処理

自然言語処理を用いた教育システムの開発

 サーバー側は PHP と MySQL を用いています。 サーバー側のデータベースに、自然言語および GIF アニメーションが記録されています。 ブラウザからは Ajax を用いた非同期通信により、リアルタイムにサーバーと通信します。


<開発環境・技術分野> Servlet/JSP, Tomcat, MySQL,
Ajax ライブラリ (prototype.js, Prototype Window Class, script.aculo.us)

Twitter タイムラインの自然言語処理事例の調査

 Twitter のタイムラインを自然言語処理し、その結果を利用している事例についての調査を行いました。

 出版済みの論文を調査対象とし、実施者・実施の目的・解析手法・使用したツール/ライブラリをリストアップし、報告書にまとめました。


<開発環境・技術分野> Twitter, 自然言語処理, Python

複数台の PC による同時計測のための遠隔操作システムの開発

 計測機器には、専用の計測用ソフトウェアが付属しており、機器ごとに PC を用意して計測することが一般的です。 そのため、複数の計測機器によるマルチモーダルな計測を行うためには、複数台の PC を用意し、 それぞれにインストールされた計測用ソフトウェアを操作する必要があり、計測機器の数が増えると非常に煩雑な作業となります。

 そこで、計測開始・終了のコマンドを管理用 PC から遠隔で送信し、各 計測用 PC が受信したコマンドに応じて計測用ソフトウェアを操作する遠隔操作システムを開発しました。

 計測用 PC における計測用ソフトウェアの操作には AutoIt を、遠隔でのコマンド送信には PsExec を用い、無線 LAN を介して 4 台の PC の遠隔操作を実現しました。 また、計測機器・計測用 PC の増減に柔軟に対応可能なコマンド送信用インタフェースを開発しました。


複数台の PC による同時計測のための遠隔操作システムの図

<開発環境・技術分野> 遠隔操作, マルチモーダル計測, PsExec, AutoIt, RPA, C#

Zigbee 無線センサーネットワーク監視システムの開発

 Zigbee 仕様の無線チップに接続された各種センサーから計測データを受信し、パソコン上の画面で監視を行いながら、 制御ボードを介して各種ハードウェアを動作させるシステムです。

 たとえば、クリーンルーム監視システムでは、クリーンルーム内の温度、湿度、静電気、粒子量などをセンサーで計測し、 Zigbee 無線チップを介してパソコンにデータを送信します。パソコンではそのセンサーデータをモニタ上に表示して監視できるようになっています。
 また、データが特定の条件を満たすとクリーンではないと判断し、制御ボードを介して警告灯を点灯させたり、ファンの風量を調節します。

 この他に、建物内に設置された加速度センサーのデータを受信して地震検知を行うシステムや、 植物の栽培ハウス内の CO2 濃度を受信してファンを制御することで CO2 濃度を調節するシステムなどを開発しました。


Zigbee無線センサーネットワーク監視システムの開発

<開発環境・技術分野> C#, シリアル通信, Zigbee無線チップ, DIOボード制御

時系列センサーデータを用いたリアルタイム状況判定モデル精度検証アプリケーションの開発

 物理センサーにより計測された時系列データを解析し、リアルタイムで状況判定する予測モデルを推定し、 その予測精度を検証するアプリケーションを開発しました。

 状況判定は2値でおこないました。状況判定を学習させるため、各センサーデータの頻度分布における閾値を設定し、 正例と負例を分類するための作業支援アプリケーションを開発しました。

 状況判定予測モデルとして、ロジスティック回帰モデルと SVM 学習モデルの2通りを推定しました。
 さらに状況判定予測モデルの予測精度を検証するため、センサーデータに対応する動画データと同期させるアプリケーションを開発し、予測精度をリアルタイムで目視検証しました。


<開発環境・技術分野> R, C++/CLI, 属性選択, ロジスティック回帰, SVM, クロスバリデーション

人体用複数センサー同時計測管理システムの開発

 人体に様々な種類のセンサーを取り付けて同時計測を行い、そのデータの時系列的な関連を調べるシステムです。

 CPU 負荷により計測が不正確にならないように、センサーごとに計測を行うための PC を設置し、 その PC 上でリモート制御用のサーバー プログラムを稼働させます。  このサーバー プログラムは、計測管理PC からの要求を受けて、センサーのデバイス API を介して、センサーの制御を行います。 計測されたデータは、各 PC 上に一時的に記録されますが、計測管理 PC はそのデータを収集し、グラフ表示やデータ解析を行うことができます。


人体用複数センサー同時計測管理システムの開発

<開発環境・技術分野> 計測, C++, MFC, ソケット通信, DCOM, モーションキャプチャ

医療支援画像処理システムの開発

 HE 染色の組織画像から組織の異常部分を自動的に検出するシステムを開発しました。

 本分野では、パターンマッチング法が主に使用されていましたが、これを用いず、 位相幾何学を用いた手法を導入することにより、画像の特徴を抽出する手法をとっています。
同様のシステムに比べ、処理速度が格段に向上しています。


<開発環境・技術分野> C#, ヒストグラム処理, ピーク抽出アルゴリズム, ラベリングアルゴリズム,
図形抽出処理, 畳み込み積分, ヒストグラム補正,
ホワイトバランス自動補正アルゴリズム, 色偏差自動補正アルゴリズム

断層画像の層判別手法の開発

 複数の層からなる 3 次元断層画像において、各画像が属する層を判別する手法を開発しました。

 本手法は学習ステップと推定ステップに分けられます。


 (1) 学習ステップ

断層画像の層判別手法の学習ステップの図

 (2) 推定ステップ

断層画像の層判別手法の推定ステップの図


 学習ステップでは、画像の特徴と層の関係を機械学習手法の一種であるサポートベクター回帰を用いて学習し、モデルを作成します。

 推定ステップでは、層を判別したい画像から特徴を抽出し、学習済みの推定モデルに与えることで、その画像が属する層を推定します。

 上記の一連の手法を Python で実装しました。


<開発環境・技術分野> 画像解析, Python, OpenCV, 機械学習, サポートベクタ回帰

顔画像認識システムのアルゴリズム開発

 実環境に設置されたカメラを利用する顔認識システムのアルゴリズム開発を行いました。

 顔認識システムには、おおまかに「照合判定」「識別判定」の二種類の利用形態があります。 「照合判定」は、ドアの入退室管理システムなどで、利用者が本人確認を要求する場合に利用されます。 一方、「識別判定」は、往来監視システムなどで、不特定人物の身元を候補リストから推定する場合に利用されます。

 識別判定結果は、不特定人物の顔画像と候補リストの顔画像の照合判定結果に基づいて算出されます。 識別判定は一般に照合判定よりも難しいと言われており、たとえば、個人ごとの照合判定スコアのばらつきや 外乱による顔特徴変化のため、識別判定結果では候補人物本人の棄却や人物誤認識などの問題が発生します。

 この業務では、識別判定精度を高めるため、照合判定スコアを正規化する識別アルゴリズムを C++ で実装しました。 また、外乱に強い学習データや画像処理パラメータを選出するチューニングツールを MATLAB を用いて実装しました。


顔画像認識システムのアルゴリズム開発
<開発環境・技術分野> バイオメトリクス, 画像処理, パターン認識, 統計解析, MATLAB, C++

少数データに基づく顔識別手法の開発

 深層学習による顔認識においては、大量のラベル付き訓練データが必要になることが多く、その場合には多くのコストを要します。 この問題を克服するため、本業務では少ないサンプルで顔識別を行う手法を開発しました。

 この手法は既存のラベル付きデータに基づいてディープネットワークの事前学習を行い、そこで得られた特徴量抽出部分を、 認識対象とする人物のラベルが与えられているデータに対するディープネットワークに転移します。
 この手法により、少数のデータにおいても高い識別率を実現できることが確認できました。

 開発には Python と深層学習のライブラリである Caffe を使用しました。ディープネットワークの訓練に非常に時間がかかるため、 AWS で複数の GPU インスタンスを起動し、複数のネットワーク構造に対する識別精度の評価を並列に行いました。


少数データに基づく顔識別手法の開発のイメージ図

<開発環境・技術分野> Python, 深層学習, fine-tuning, 畳み込みネットワーク, Caffe, AWS, GPGPU

高解像度フィルムスキャナ制御システムの開発

 航空写真の大判フィルムを最大6.2μmの分解能でスキャンし、デジタルデータ化することができる高解像度フィルムスキャナを制御するシステムです。

 高解像度フィルムスキャナは、XY 軸が駆動するテーブルと、テーブルに搭載されたラインセンサで構成されています。 大判フィルムの幅は、ラインセンサが撮影可能な幅の約4倍あるため、1回のスキャンではフィルム全体をデジタルデータ化することができません。 そこで、本システムはフィルム全体を4エリアに分けてスキャンし、各エリアの位置合わせを行って1枚の画像へ結合します。 駆動系の精度の限界で合わせ目が目立つ場合は、画像処理によって補正します。

 また、フィルム1枚あたりのスキャン速度を高速化するため、 本システムはマルチコア CPU を 活用して並列処理を行います。


高解像度フィルムスキャナ制御システムのGUI

<開発環境・技術分野> 画像処理, C++/CLI, C#, シリアル通信, CameraLink, モータ制御, ラインセンサ, 並列処理

空撮用デジタルカメラ撮影システムの開発

 航空写真撮影用の高解像度デジタルカメラで高速インターバル撮影を行い、外部ストレージに画像を蓄積するためのシステムです。

 測量用の航空写真撮影においては、航空機の速度とカメラの視野の条件により、高速インターバルで数百枚の画像を撮影することが求められますが、 カメラ本体にはそれほどのメモリを搭載することができません。 そのため、本システムが使用する高解像度カメラは、CCD が出力するベイヤ配列の画像データを複数チャンネルの CameraLink へ分配し、グラバボードを介して PC へ高速転送します。
 本システムは、カメラから転送されてくるベイヤ配列の画像データをストレージデバイスへ高速で保存します。また、試験撮影用のプレビュー機能を提供します。


空撮用デジタルカメラ撮影システムのGUI

<開発環境・技術分野> 画像処理, C++/CLI, C#, CameraLink, CCDベイヤ配列

商標類似判断アルゴリズムの開発

 本業務では、国際特許事務所と共同で、過去十数年の商標呼称審査の事例に基づいて、呼称の類似性を自動的に判断する機械学習アルゴリズムを開発しました。

アマゾン アマソン
類似度は?
AI が商標の類似度を数値化

 商標の呼称の申請においては、申請しようとする呼称が既存のものと類似しているかどうかを判断する必要があります。 類似性の判断は、経験に基づいて行われるため、弁理士と特許庁との間で見解が分かれることがあるほど難しい場合もあり、これまで自動化を妨げる要因となっていました。

 このアルゴリズムを用いることで、例えば「アマゾン」と「アマソン」が 80% 似ているというように、類似性を数値的に評価することが可能になるため、類似性の判断を自動化することが可能になります。

 アルゴリズムの開発においては、Python のライブラリである TensorFlow と深層学習の技術を使用しました。

 本アルゴリズムを用いたサービスが新聞に取り上げられました(日経産業新聞、2016年12月26日)。商標登録における人的コストの削減と、ビジネスの加速に寄与することが期待されます。


<開発環境・技術分野> Python, 深層学習, TensorFlow

データマイニングを応用した複合問題ガイドシステムの開発

 特定の分野の暗黙知を、データマイニングによって抽出し、自動的に形式知に変換するシステムです。 抽出された形式知を用いて、その分野の初心者に対して、様々な問題のガイドを行います。

 データマインイングの技術として、プロセスマイニング、ベイジアンネットワーク、自己組織化マップ、オントロジー技術を使用しました。

 この研究開発では、いくつかのアルゴリズムを論文調査し、本システムの目的に効果的なアルゴリズムを選択・実装しました。

データマイニングを応用した複合問題ガイドシステムの概要図

<開発環境・技術分野> Java Servlet, MySQL, クラウド,プロセスマイニング, ベイジアンネットワーク, 自己組織化マップ, オントロジー

生体情報カップリング ハードウェア コントロール システムの開発

 生体からの計測データを入力として、外部接続されている機器を動作させる研究用システムを開発しました。

 時々刻々変化する生体情報を入力とし、それに合わせて、外部の機器を制御する信号を生成します。この例では、1ミリ秒の制御時間分解能を実現しました。


生体情報カップリング ハードウェアコントロール システムの概要図

<開発環境・技術分野> C#, レーザ制御, リアルタイム処理

脳波計測の実験支援

 大規模な脳活動データベースを構築するプロジェクトにおいて、多数の被験者の脳波を計測するための実験支援として、 電極の設置・調整、脳波データの記録・監視、ノイズの発生原因の推測と記録を行いました。

 脳波計測では電極の設置がキーポイントとなります。設置の仕方が悪いと計測データに大きなノイズが混じってしまい、 正確な解析が行えません。そのため、計測データを随時確認しながら設置の調整が必要となります。

 また、脳波は非常に小さな電気信号のため、被験者のちょっとした動きや環境の変化が大きなノイズとなります。 この場合にも後の解析が正しく行えなくなるため、計測データを常に確認し、どのようなノイズが混じったかを推測して記録することが必要となります。

 このように、脳波計測の経験と専門的知識が必要となる実験において、計測の準備から記録までの一貫した実験支援を行いました。


脳波計測の実験の図

<開発環境・技術分野> ヒト脳波計測

脳活動データのデコーディング解析

 ヒトの脳活動を計測した脳波 (EEG) データや Functional MRI (fMRI) データから、被験者が遂行中のタスクを推定するデコーディング解析を行いました。

 人の行動や思考、五感への刺激は、脳活動に反映されます。この脳活動を記録したデータから人の状態を読み解く手法として、機械学習を利用した「デコーディング」が注目されています。

 本件では、タスク遂行中の脳活動を記録した EEG、および fMRI データと、対応するタスクとの関係を機械学習を用いて学習しました。その学習結果を用いて、未知の脳活動からタスクの種別を推定するプログラムを実装しデコーディング解析を行いました。

 脳活動の解析には、 標準的に利用されている EEGLAB、VBMEG、SPM を利用しました。 機械学習には、Python ライブラリ scikit-learn を 利用しました。


脳活動データのデコーディング解析のイメージ図

<開発環境・技術分野> ヒト脳活動解析, デコーディング, 機械学習, MATLAB, Python, EEGLAB, VBMEG, SPM

視覚刺激呈示プログラムの開発

 ヒトやサルの脳活動データ (脳波、fMRI 等) を取得する実験に用いる視覚刺激呈示プログラムを開発しました。

呈示画像例

<呈示画像例>

 この実験では、画像呈示による視覚刺激への生理反応や、指示文字列呈示によって行われる運動時の様々なパターンの脳活動データを収集します。 収集したデータを正しく解析するためには、視覚呈示のタイミングをミリ秒オーダーで厳密に制御、管理することが重要になります。 このようなプログラムの開発には、 Presentation や MATLAB の Psychtoolbox、Python の PsychoPy 等が用いられますが

  • 複雑な刺激呈示を行う実験シナリオの実現
  • 後々メンテナンスしやすい形での開発

を行うには、実験分野に関する知見だけでなく、プログラミング技術や実験システム構築のノウハウが必要となります。

 本件では、神経科学分野の専門知識に加え実験システム構築の経験豊富な技術者が直接開発を担当することで、これを実現しました。


<開発環境・技術分野> 視覚刺激呈示, 神経科学, Presentation, Psychtoolbox, MATLAB, PsychoPy, Python

心拍変動パラメータ算出 Android アプリの開発

 心拍(脈波)検出デバイスから Bluetooth 通信を介してデータを取得し、心拍変動パラメータを算出する Android アプリを開発しました。

 通信規格は Bluetooth Classic 規格と BLE 規格の両方へ対応し、心拍変動パラメータの算出には自己回帰モデル (AR モデル) によるパワースペクトル密度算出法を使用しました。

 リアルタイムに算出された心拍変動パラメータはグラフ表示されると同時に CSV 形式のファイルへ出力され、計測終了後に別途の解析や確認を行うことが可能です。 開発にあたってはアルゴリズムの拡張や別途 Java プラットフォーム上への移植が容易な設計を行いました。


心拍変動パラメータ算出 Android アプリの概要図

<開発環境・技術分野> Android, Java, Bluetooth Classic, BLE, 心拍変動解析, ARモデル, 時系列解析

BLE センサデータ解析用 Windows アプリケーションの開発

 Windows 上で BLE 通信を介してセンサデータをリアルタイムに取得し、MATLAB 環境でデータ解析を行うことができるアプリケーションの開発を行いました。

 iOS や Android とは異なり、Windows は OS レベルでは BLE 規格に未対応なため、専用のドングルと SDK を用いて BLE 通信を実現しました。

 さらに、MATLAB 環境上におけるセンサデータのリアルタイム解析を実現するため、プロセス間通信を用いてリアルタイムなセンサデータの取得を実現しました。


BLE センサデータ解析用 Windows アプリケーションの概要図

<開発環境・技術分野> Windows, BLE, MATLAB, プロセス間通信, C/C++

最大エントロピー法による脳の振動活動の可視化ソフトウェアの開発

 膜電位イメージング法により取得されたデータに対し、最大エントロピー法を用いて周波数解析を実施するソフトウェアを開発しました。

 神経活動の一形態である振動現象を脳で時空間的に捕えるため、イメージングデータに対し周波数解析を実施しました。 脳神経の振動活動の持続期間は短く、振動活動中に得られる時系列のデータ数が少ないため、最大エントロピー法を適用しました。

 イメージング機器の出力する1万点を超えるピクセルデータに対し、以下の処理機能を実装しました。

  • 膜電位感受性色素の退色補正
  • FIRフィルタ処理
  • 最大エントロピー法によるパワスペクトルの算出
  • ガウスフィルタによる画像の平滑化
  • 各周波数における脳のパワ分布の算出とコンタープロットの導出
  • 脳の特定領域のスペクトログラムの導出

最大エントロピー法 脳特定領域の振動パワの算出結果

最大エントロピ法(MEM) による脳特定領域の振動パワの算出結果

<開発環境・技術分野> FIRフィルタ, トレンド処理, 最大エントロピー法, C

神経スパイクソーティングアルゴリズムの開発

 神経信号の記録法として、複数の神経からの信号を同時に記録する手法が広く使われています(集合電位の記録)。 この場合1計測レコードは複数の神経スパイクの合成信号として記録されます。 この集合電位の記録から、各スパイクの特徴量を求め、各神経固有のスパイクを分離することをスパイクソーティングと呼びます。

 スパイクソーティングでは、通常、特徴量としてスパイクの振幅とスパイクの持続期間が使われます。 スパイクソーティングの精度を向上させるために、スパイク振幅と、スパイク形状そのものを比較するアルゴリズムを開発しました。 スパイク形状の比較はピアソンの積率相関係数を用いました。

 また、相関係数を求めるにあたり、スパイク波形切り出しタイミングの誤差が相関係数に影響することを避けるため、 切り出したスパイク波形にスプライン補間法を適用しました。これにより、1計測レコードから十数スパイクを分離することに成功し、 形態学から調べられた神経細胞数と分離された神経スパイク数は良い一致を見ました。


Finite impulse response filter (FIR)

finite impulse response filter FIR


スパイクソーティング結果(11種類のスパイクの分離)

スパイクソーティング結果(11種類のスパイクの分離)

<開発環境・技術分野> FIRフィルタ, トレンド処理, Pearsonの積率相関係数, ヒストグラム, スプライン補間,
ピーク抽出ロジック, C, Visual Basic

スパイク情報の刺激応答性評価ソフトウェアの開発

 集合電位を記録し、集合電位からソーティング手法により分離した各スパイク信号に対し、 刺激に対する応答性をもとにクラスタリングするソフトウェアを開発しました。

 この例では、刺激が11種類あり、刺激それぞれに対する神経応答の評価項目として、 応答の有無、一定周波数応答が見られた場合の主周波数、主周波数の時間変動をあげました。

 主周波数成分は自己相関関数をもって評価し、自己相関関数の時間変化により、応答振動特性を分類しました。 これらのパラメタを特性量として自動抽出し、統計処理ソフトウェアに渡せるようインターフェースをとりました。

スパイク情報の刺激応答性評価

<開発環境・技術分野> 自己相関関数, C, Visual Basic

高速度カメラ画像処理プログラムの開発

 昆虫に匂い刺激を行った場合の行動を計測した高速度ビデオ画像の情報抽出処理を行いました。

 高速度撮影では、露光時間の短さによる光量不足を解消するために高輝度ライト等を用いますが、 生体の撮影においてはライトの影響を排除するため、大光量の光源は用いられず、画像は光量不足の状態でした。
 この画像データに対し微分フィルタ処理を行いエッジ抽出し、さらにオプティカルフローをフレーム差分法により求めました。 これによる匂い刺激に対する昆虫の行動の発現する箇所とそのシーケンスが明らかになりました。


高速度ビデオ画像の情報抽出処理による画像結果

<開発環境・技術分野> 微分フィルタ, オプティカルフロー, フレーム差分法, 高速度ビデオ, C

Ca2+イメージングデータ処理プログラムの開発

 Ca2+ イメージング機器のバイナリ出力データを直接プログラムに入力し、カルシウムインジケータの退色補正、 デジタルフィルタによるノイズフィルタリング、相対光量変化量の演算、ガウスフィルタ、 メディアンフィルタによる空間ノイズフィルタリング等の処理を行うプログラムを開発しました。

 処理されたイメージデータは Ca2+ イメージング機器のバイナリ出力形式で出力することで、 Ca2+ イメージング機器付属のソフトウェアの機能も活用可能としました。


Ca2+ イメージングデータ処理

<開発環境・技術分野> 退色補正, FIRフィルタ, △F/Fの算出, ガウスフィルタ, メディアンフィルタ, C

動物行動実験用のデジタイジング・マッピングシステムの開発

 モリス水迷路などの動物行動実験において、対象動物 (マウスなど) の動きを撮影した映像から位置情報を取得 (デジタイジング) し、 位置情報から対象動物の滞在頻度を色で示す heat-map を作成 (マッピング) するシステムです。

 デジタイジングにおいては、映像の各フレームの画像に対して画像処理を行い対象動物の位置を検出します。 デジタイジングの画像処理設定やマッピングに関するマーカー、カラーバーなどの設定に関しては、GUI によるシンプルな操作方法を実現しました。


デジタイジング・マッピングシステムイメージ図 デジタイジング・マッピングシステム画面

<開発環境・技術分野> 画像処理, C#, OpenCV, 動物行動実験

小動物行動記録システムの開発

 神経行動学分野の実験において、マウス・昆虫等の小動物の神経活動と行動変化を同時にモニタするための計測・記録システムを開発しました。

 小動物の行動計測手法としては、トラックボールの動きをカメラで計測するイメージング手法がよく用いられます。 しかし、30ミリ秒程度の時間分解能の安価なカメラでは、数ミリ秒オーダーの脳神経活動と行動記録の比較をすることができないため、高価な高速度カメラシステムが必要でした。

 本システムでは、トラックボールの動きを2台の光学マウスで計測する安価な構成で、最大2ミリ秒という高時間分解能の行動記録を可能にしました。


小動物行動記録システムのGUI

<開発環境・技術分野> C#, RawInput API, 行動計測, 動物行動実験