業務事例
弊社の業務事例をご紹介致します。
掲載している事例は、弊社の業務実績、または技術者の実績を元に作成しています。
タイトル、キーワードのみの事例については、今後詳細を随時追記します。
研究開発・システム開発の事例
- 時系列変化点検出技術の技術調査異常検知
- 独立成分分析の技術調査および講習
- ベイジアンネットワークの技術調査
- 周期性衝撃波形抽出技術の技術調査および実装
- プロセスマイニングの技術調査
- ベイズ推定による機械振動の次数トラッキングの実装
- 機械の固有振動検出の実装
- 音声の音色表現・再合成システムの開発音声処理
- 音声合成プログラムの移植開発AI音声処理
- ウェーブレット解析による雑音除去アルゴリズムの開発信号処理
- 機械の振動や音響による異常検出アルゴリズムの開発異常検知
- 時空間データからの異常検知のための前処理、教師なし機械学習手法の調査異常検知信号処理AI
- 半導体製造装置の最適化数値計算制御ソフトウェアの開発最適化
- FMO 法適用に向けた低分子化合物のフラグメント分割自動決定
- 「富岳」上で動作する生体分子解析ワークフローの高度化分子シミュレーション量子化学計算
- 複数リガンドの結合自由エネルギー計算ワークフロー プログラムの「富岳」への導入創薬分子シミュレーション
- 2 次元領域最適分割ソフトウェアの開発最適化
- 非線形関数の最適フィッティングアプリケーションの開発
- 地震波のデータ同化システムの開発最適化
- 冗長マニピュレータ逆運動学の数理最適化ロボティクス最適化
- ベイズ最適化による実験条件最適化プログラムの開発最適化
- 配送最適化プログラムの開発AI
- 機械設計パラメータに関する解析用ツールの開発
- 再構成可能デバイスの回路レイアウト図可視化ソフトウェアの開発
- 音の伝搬計算ソフトウェアの開発
- 3 次元ユークリッド空間における曲面変化に関わる数値実験アプリケーションの開発
- 並列プログラミングモデルによるアルゴリズムの並列化ビッグデータ
- 研究用ソフトウェアの拡張とマルチプラットフォーム化
- コヒーレント X 線解析の位相回復アルゴリズムの実装と高速化数値計算画像処理
- GPGPU を用いたトモグラフィ画像再構成用の計算ソフトウェアの開発数値計算
- 超伝導回路の数値解析ソフトウェアの開発および理論解析数値計算
- 機械翻訳アルゴリズムの開発AI自然言語処理
- 自動要約生成アルゴリズムの開発AI自然言語処理
- 文書分類アルゴリズムの開発AI自然言語処理
- LLM を用いた大規模非構造データからの質問応答AI自然言語処理
- ウェブ組み込み型 3DCG エディターの開発
- オントロジーを利用したウェブ情報案内システムの開発AI自然言語処理
- 自然言語処理を利用した 3DCG 表示システムの開発自然言語処理
- 自然言語処理を用いた教育システムの開発自然言語処理
- Twitter タイムラインの自然言語処理事例の調査自然言語処理
- 複数台の PC による同時計測のための遠隔操作システムの開発RPA
- Zigbee 無線センサーネットワーク監視システムの開発IoT
- 時系列センサーデータを用いたリアルタイム状況判定モデル精度検証アプリケーションの開発ビッグデータ
- 人体用複数センサー同時計測管理システムの開発ビッグデータ
- 医療支援画像処理システムの開発
- 断層画像の層判別手法の開発AI
- メタゲノム解析データを用いた環境条件推定手法の開発AI
- 医療データ解析およびモデリングの支援
- 確率過程推定プログラムの移植開発AI
- 統計的因果推論アルゴリズムの開発AI
- 分位点回帰による価格予測モデルの開発AI
- 項目応答理論による観察型評価支援ソフトウェアの開発
- 経済シミュレーション結果の可視化プログラムの開発支援
- 欠損値のあるデータに対する因子分析AI
- Unscented Kalman Filter と粒子フィルタによる状態推定プログラムの開発
- 宝石の官能評価プログラムの開発AI
- リアルタイム物体認識エージェント システムの開発AI
- 移動物体の走行時における障害物の高速検出物体検出
- 深層学習の技術導入コンサルティングAI
- 顔画像認識システムのアルゴリズム開発AI
- 少数データに基づく顔識別手法の開発AI
- 深層学習を用いた画像再構成にもとづく異常検知手法の論文調査と実装AI
- 高解像度フィルムスキャナ制御システムの開発画像処理
- 空撮用デジタルカメラ撮影システムの開発画像処理
- 商標類似判断アルゴリズムの開発AI
- 個々のラベルが不明なサンプルの集合に対する機械学習AI
- データマイニングを応用した複合問題ガイドシステムの開発AI
- 生体情報カップリング ハードウェア コントロール システムの開発
- 脳波計測の実験支援
- BMI フレームワークの開発生体データ解析
- 脳活動データのデコーディング解析AI生体データ解析
- 視覚刺激呈示プログラムの開発
- 心拍変動パラメータ算出 Android アプリの開発IoTAI生体データ解析
- BLE センサデータ解析用 Windows アプリケーションの開発IoT
- 最大エントロピー法による脳の振動活動の可視化ソフトウェアの開発
- 神経スパイクソーティングアルゴリズムの開発
- スパイク情報の刺激応答性評価ソフトウェアの開発
- 高速度カメラ画像処理プログラムの開発画像処理
- Ca2+ イメージングデータ処理プログラムの開発
- 動物行動実験用のデジタイジング・マッピングシステムの開発画像処理
- 小動物行動記録システムの開発画像処理
時系列変化点検出技術の技術調査
時系列上の何らかの意味での「変化点」を検出する技術を調査し、報告書としてまとめました。
こういった技術は一般に変化点検出 (change point detection)、異常検出 (anomaly detection)、モチーフ発見 (motif discovery) などと呼ばれ、多くの手法が研究されています。その分野も、信号処理だけでなく、セキュリティシステムやバイオインフォマティクス、マルチメディアの分野でも研究されています。
主に以下の手法を調査しました。
- シンボリック アグリゲーション近似法
- ランダム射影法
- Markov-Suffix ツリー法
- 正規化編集距離法
- Isomap 非線形次元削減法
- Kolmogorov 複雑性を用いた異常検出法
- PCA と MDL 原理に基づいたモチーフ発見法
独立成分分析の技術調査および講習
独立成分分析の様々な手法の理論調査と、その理論に必要な数理理論を報告書としてまとめ、その報告書に基づいて講習を行いました。
主に以下の手法を調査しました。
- ネゲントロピー最小化法 (FastICA)
- キュムラントテンソル固有値分解法 (JADE)
- 射影追跡法による非正規成分抽出法
- β-ダイバージェンス最小化法
- 時間構造を利用した空間混合の分離法
- 相互共分散の除去法 (自己共分散行列の固有値分解による同時対角化)
- 相互無相関化法 (非定常共分散行列の勾配法による同時対角化)
- 分散非定常性最大化法
以下の数理理論の解説を行いました。
- 情報理論
- 相互情報量
- Kullback-Leibler 情報量
- 主成分分析
- 因子分析
- 正準相関分析
- 非線形 PCA
- カーネル CCA
- キュムラント分解
- 最尤法
- 疑似最尤法
- ネゲントロピー
- 密度分布の Gram-Charlier 展開
- Gauss-Hermite 展開
- Edgeworth 展開
- Cornish-Fisher 展開
- beta-ダイバージェンス
- B-ロバスト性
- 射影追跡法
- カーネル次元削減法
- Marcinkiewicz の定理
- 最大エントロピー法
- 非線形最適化
- 固有値分解・特異値分解の数値計算
- 行列の対称直交化
ベイジアンネットワークの技術調査
確率変数間の因果関係をモデル化する技術であるベイジアン ネットワークについて、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 の核関数クラス
音声合成プログラムの移植開発
CMU および Edinburg 大学で開発され、C++ と Scheme により実装された音声合成プログラムを C 言語に移植しました。
元々のプログラムは、音声信号処理や各種アルゴリズムが C++ で実装されており、 Scheme インタプリタを介してそれらを利用できるため、高度にカスタマイズ可能な音声合成ソフトウェアとなっています。しかし、これを実環境で使うにはシステムが大きく、汎用的で冗長な処理が多数含まれるため、処理の簡略化と共に C 言語に移植することを行いました。
C 言語では Scheme インタプリタは内蔵せず、参照カウントを用いたシンプルな Scheme オブジェクト実装を使いました。
音声合成における各種推定処理は、n-gram 辞書を利用した Viterbi アルゴリズムにより実装しました。
Scheme で実装された学習済み決定木を C 言語で実装された決定木に変換する Scheme プログラムを実装しました。
- 開発環境・技術分野
-
- テキスト音声合成
- C++
- Scheme
- Viterbi アルゴリズム
- 決定木
ウェーブレット解析による雑音除去アルゴリズムの開発
音声や振動に含まれる雑音を、ウェーブレット解析を利用して除去するアルゴリズムを研究するためのシステムを開発しました。
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++
時空間データからの異常検知のための前処理、教師なし機械学習手法の調査
- 開発環境・技術分野
-
- Proper Orthogonal Decomposition (POD)
- Dynamic Mode Decomposition (DMD)
- Robust Principal Component Analysis (Robust PCA)
- Local Outlier Factor (LOF)
- Isolation Forest (iForest)
- One-Class Support Vector Machine (One-Class SVM)
半導体製造装置の最適化数値計算制御ソフトウェアの開発
時系列解析の AR モデル推定を反復解法の数値計算で解くというソフトウェアが非常に遅く実用化に至らないため、何とかして高速化してほしいという依頼です。
この業務では、様々な数値計算アルゴリズムの理論比較および実装比較を行い、最終的に1000倍以上の高速化を達成しました。
- 開発環境・技術分野
-
- 時系列解析
- AR モデル推定
- 数値計算
- C
FMO 法適用に向けた低分子化合物のフラグメント分割自動決定
- 開発環境・技術分野
-
- 量子化学計算
- フラグメント分子軌道法 (FMO)
- 組合せ最適化
- C++
「富岳」上で動作する生体分子解析ワークフローの高度化
- 開発環境・技術分野
-
- Prefect
- ワークフロー
- 富岳
- HPC
- PJM
- AbinitMP
- フラグメント分子軌道法 (FMO)
- IFIE
- PIEDA
- 広範囲構造探索
- Gromacs
- CafeMOL
- Incremental PCA
- Dask-ML
- KMR
- Python
複数リガンドの結合自由エネルギー計算ワークフロー プログラムの「富岳」への導入
- 開発環境・技術分野
-
- Free Energy Perturbation
- 富岳
- HPC
- PJM
- RDKit
- Gromacs
- Python
2 次元領域最適分割ソフトウェアの開発
二次元平面上の有限かつ連結な二次元領域を指定数の部分領域に分割し、その各部分領域における Laplace-Dirichlet 固有値問題の第一固有値 (最小固有値) の総和を最小化するような領域分割を求める最適化問題に対して、数値的に近似解を求めるソフトウェアを開発しました。
このような最適化問題を直接解くことは難しいため、分割領域の特性関数を近似する密度関数を導入し、分割領域の固有値を近似計算するために、領域外ではペナルティを課すという緩和定式化を行いました。このような緩和定式化では、ペナルティが無限大に近づくと、密度関数が領域の特性関数に収束することが知られています。
そこで各分割領域の密度関数を適当に初期設定し、各分割領域の近似固有値問題を解きながら、固有値の総和が小さくなるように、各密度関数を勾配降下法で最適化していくアルゴリズムを実装しました。並列化計算による高速化も行いました。
また、同じ問題を、熱力学的な観点から最適化するアルゴリズムも実装しました。ブラウン運動する複数成分の粒子系が定常状態においては Renyi エントロピー生成を最小化するように領域分布するという性質が、この最適化問題と等価な定式化となるため、この熱力学系をシミュレーションすることでこの最適化問題を近似的に解くアルゴリズムを実装しました。
- 開発環境・技術分野
-
- Laplace-Dirichlet 固有値問題
- 固有値最適化
- 領域分割
- 並列化計算
- C++
非線形関数の最適フィッティングアプリケーションの開発
計測機器のデータにフィッティングする非線形関数を求めるアプリケーションを開発しました。
目的の非線形関数の係数をこのアプリケーションにより求めることができます。
非線形関数の推定には、derivative free 最小二乗法を用いています。
データの前処理には Wavelet を用い、計測点間のデータの補間には、3 次のスプライン補間を用いています。
- 開発環境・技術分野
-
- 非線形最小二乗法
- Wavelet
- スプライン補間
- ヤコビアン
- QR 分解
- C#
地震波のデータ同化システムの開発
地上の疑似地震観測データを元に地震波シミュレーション モデルの質量密度と弾性定数を最適化するデータ同化システムを開発しました。
地下の質量密度や弾性定数は直接観測するのは困難ですが、地上の地震観測データを用いてデータ同化を行うことで推定することができます。
データ同化の手法としては、4 次元変分法 (アジョイント法) を用いました。この手法では、シミュレーション モデルに基づいたアジョイント モデルを用います。これにより、一定期間内のパラメーターをシミュレーション モデルの支配方程式を満たすように最適化することができます。
- 開発環境・技術分野
-
- データ同化
- 4 次元変分法
- Fortran
冗長マニピュレータ逆運動学の数理最適化
冗長マニピュレータの逆運動学を解くためのソフトウェア開発です。数式処理システムによって解析解を導出するとともに、数理最適化によって実用的な解を計算するソフトウェアを開発しました。
冗長系の逆運動学では、解析解が無数に存在しますが、その中で実用上有効な解は、一部に限られます。そのため、自由度のある解析解の中から、実用にフィットする解を選別するために、数理最適化を行います。また、逆運動学は理論上は解析解が得られるものの、逆行列の計算を伴うため、関節数が多くなるにつれて、解の式が膨大な項に膨れ上がります。それをそのまま実装しても、実用的な時間内で解が得られることは期待できません。そこで、解析解と数理最適化を組み合わせることで、高速に解を求めるアルゴリズムを開発し、ソフトウェアに実装しました。
数理最適化の実装では、共役勾配法などの数種のアルゴリズムを実装して比較検討し、精度と速度のバランスのよい、最良のアルゴリズムを選定しました。
- 開発環境・技術分野
-
- 冗長系逆運動学
- 数式処理システム
- 数理最適化
- C++
ベイズ最適化による実験条件最適化プログラムの開発
- 開発環境・技術分野
-
- ベイズ最適化
- RPA
- 逐次的実験計画
- Python
配送最適化プログラムの開発
- 開発環境・技術分野
-
- オペレーションズ・リサーチ
- 組み合わせ最適化
- メタヒューリスティクス
機械設計パラメータに関する解析用ツールの開発
機械の設計パラメータを解析、可視化するツール群を作成しました。
自己組織化マップ
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 次元ユークリッド空間における曲面変化に関わる数値実験アプリケーションの開発
境界問題の数値実験を行うシステムです。
極座標を 3 次元空間に写像する関数をテキスト形式で入力することが可能で、曲面の初期条件を、自由に設定出来ます。また、数値実験に関わる条件設定を自由に変更でき、様々な実験ケースを行えます。
画面上の曲面は、マウス操作により自由な視点から確認することが出来ます。さらに数値実験における曲面変化の経過を再生・動画出力することが可能です。
数値計算とリアルタイム 3D 曲面描画はネイティブ言語により行われており、高速化が図られています。環境依存性の低い C++ と Java を実装言語として採用することにより、低コストで Mac OS X 版と Windows 版の両方を開発しました。
- 開発環境・技術分野
-
- 境界問題
- 数値実験
- 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 数値シミュレーション
コヒーレント X 線解析の位相回復アルゴリズムの実装と高速化
SPring-8 などのビームラインで生成されるコヒーレント X 線を用いた回折解析の位相回復アルゴリズムの実装と高速化を行いました。
アルゴリズムの実装では、お客様が指定したホログラフィなどの技術に基づく複数のアルゴリズムを実装しました。
アルゴリズムの高速化では、お客様がこれまで用いていた位相回復アルゴリズムを CPU および GPU で並列化しました。これにより、これまで数時間掛かっていた解析処理が数分で処理できるようになりました。
- 開発環境・技術分野
-
- C/C++
- OpenMP
- CUDA
- Python
- X 線回折法
- ビームライン
- 位相回復
GPGPU を用いたトモグラフィ画像再構成用の計算ソフトウェアの開発
トモグラフィとは、「切る」を意味するギリシア語の「トモス」という単語から由来し、試料の内部を評価するための断面を観察する技術です。日本語では、断層映像法または断層撮影法と訳します。病院で行われる CT 検査の CT は Computerized Tomography の略語で、X 線を利用して身体の断面を撮影する検査技術です。このように得られた断面画像のことをトモグラフィ画像と言います。
トモグラフィ画像を再構成するためには、試料を貫通する量子ビームの散乱を計算する必要があります。本件では、この計算に用いるアルゴリズムの効率化と実装を行い、再構成に必要なパラメーター空間を生成する計算ソフトウェアを開発いたしました。
実装したアルゴリズムは、コンピュータの GPU を用いて疎行列の並列計算を高速に行います。これにより、これまでメモリ制限などで計算できなった高解像度の処理が 1 分ほどで計算できるようになりました。
- 開発環境・技術分野
-
- トモグラフィ (ART)
- GPGPU
- 疎行列
- OpenGL
超伝導回路の数値解析ソフトウェアの開発および理論解析
回路量子電磁気学の基礎研究に用いる数値解析ソフトウェアを開発いたしました。また、超伝導回路の特性を明らかにするための理論解析を行いました。
この数値解析ソフトウェアは、超伝導回路のハミルトニアンのパラメーターを入力すると、分配関数を計算し、比熱などの物理量を計算して出力します。
理論解析では、数値解析に用いた数式にパラメーターを追加して自由度を上げ、より一般的な導出を行いました。
- 開発環境・技術分野
-
- 数値解析
- 量子力学
- 統計力学
- 回路量子電磁気学
- MATLAB
機械翻訳アルゴリズムの開発
ニューラル機械翻訳 (NMT: Neural Machine Translation) において精度が得られにくい入力文に対して、統計的機械翻訳の結果を併用し精度向上させるアルゴリズムの開発を行いました。
また、ニューラル機械翻訳と統計的機械翻訳の学習および評価パイプラインを実装しました。さらに訳抜けの確認のために句のアライメントを行うアルゴリズムを開発し、パフォーマンス チューニングを行いました。
- 開発環境・技術分野
-
- GIZA++
- NMT
- 統計的機械翻訳
- SentencePiece
- Attention
自動要約生成アルゴリズムの開発
特徴的な文体が用いられるドメインの文書に対して有効な自動要約生成のアルゴリズムの開発を行いました。
具体的には、自動要約生成の二大アプローチである抽出型要約と生成型要約について、それぞれの複数のアルゴリズムを選定し、学習と評価のパイプラインを実装しました。
- 開発環境・技術分野
-
- 抽出型要約
- 生成型要約
- BertSum
- LexRank
- 深層言語モデル
文書分類アルゴリズムの開発
カテゴリ数が多い割にサンプル数が少ないコーパスでの文書分類を行いました。
通常の教師あり学習のアプローチでは精度が低いため、類似度ベースのアプローチを採用しました。最適な手法の選定では、文書ベクトルを生成する複数の手法を実装し試行しました。
- 開発環境・技術分野
-
- BERT
- Word2Vec
- fastText
- GloVe
- SIF
- TF-IDF
- SCDV
- Sentence2Vec
- Doc2Vec
- Gensim
- Universal Sentence Encoder
- Sentence BERT
LLM を用いた大規模非構造データからの質問応答
大規模言語モデルを用いて、ファインチューニングなしに大規模な非構造データに対する質問応答を可能にするシステムを構築し、その精度を評価しました。
- 開発環境・技術分野
-
- GPT-4
- LangChain
- Llama-Index
- in-context learning
- embedding
- Semantic Search
ウェブ組み込み型 3DCG エディターの開発
ウェブブラウザ上から、Javaアプレットを用いて、簡易に 3D アニメーションを編集できるシステムを Java3D を用いて開発しました。
アニメーションデータは独自のファイル形式として保存されますが、VRML との互換性を持ち、VRML ファイルのインポート・エクスポートが可能です。これにより、一般的な 3D モデラーからエクスポートされた 3D キャラクタをアニメーションさせることができます。しかし、3D モデラーからエクスポートされた VRML のアニメーションは、パーツのアフィン変換ではなく、頂点のモルフィングとして記述されることがあります。モルフィングは、データサイズを増加させるため、ウェブ組み込み型ではサポートすることができず、そのため VRML アニメーションをインポートすることができません。
この問題を解決するために、モルフィングアニメーションを最小二乗推定によりアフィン変換に近似するアルゴリズムを開発しました。
- 開発環境・技術分野
-
- Java Applet
- Java Swing
- Java3D
- VRML
- 数値計算
オントロジーを利用したウェブ情報案内システムの開発
ウェブマイニングによって得られたオントロジー (知識データ構造) を用いて、そのオントロジーに即したウェブ情報案内を行うシステムです。特定のトピックに関連した情報・用語・リンク・評判・比喩・エピソードなどを効率よく閲覧でき、自然言語による質問にも回答できます。3D エージェントを備えており、ユーザーの操作に伴って、3D キャラクタが特定の振る舞いをし発話します。発話は市販の音声合成ソフトウェアで自動的に合成されるようにしました。Ajax を用いた対話性の高いフレンドリーなインターフェイスを備えています。
- 開発環境・技術分野
-
- オントロジー
- 知識処理
- 自然言語処理
- 音声合成
- C++
- PHP
- Ajax
自然言語処理を利用した 3DCG 表示システムの開発
3D アニメーションをブラウザ上で編集するための Java アプレットを Java3D で開発しました。
サーバーには 3D キャラクタのモデリングファイルが格納されます。Java アプレットは、サーバーに接続して 3D キャラクタを取り込み、ユーザーはマウスを用いて簡単に 3D アニメーションを作成できるようになっています。このシステムでは、ウェブサーバー上で 3D レンダリングを行い、ブラウザ上にはアニメーション GIF 画像として表示します。
- 開発環境・技術分野
-
- Java Applet
- Java Servlet
- Java3D
- 自然言語処理
自然言語処理を用いた教育システムの開発
ユーザーに対して自然言語による教育コンテンツを提供するシステムです。サーバー側に自然言語データベースやアニメーション データが配置されており、ブラウザからの非同期通信によりリアルタイムにサーバーと通信することで、ユーザーに対話的なコンテンツを提供します。
- 開発環境・技術分野
-
- 自然言語処理
- Servlet
Twitter タイムラインの自然言語処理事例の調査
Twitter のタイムラインを自然言語処理し、その結果を利用している事例についての調査を行いました。
出版済みの論文を調査対象とし、実施者・実施の目的・解析手法・使用したツール/ライブラリをリストアップし、報告書にまとめました。
- 開発環境・技術分野
-
- 自然言語処理
- Python
複数台の PC による同時計測のための遠隔操作システムの開発
計測機器には、専用の計測用ソフトウェアが付属しており、機器ごとに PC を用意して計測することが一般的です。そのため、複数の計測機器によるマルチモーダルな計測を行うためには、複数台の PC を用意し、それぞれにインストールされた計測用ソフトウェアを操作する必要があり、計測機器の数が増えると非常に煩雑な作業となります。
そこで、計測開始・終了のコマンドを管理用 PC から遠隔で送信し、各 計測用 PC が受信したコマンドに応じて計測用ソフトウェアを操作する遠隔操作システムを開発しました。
計測用 PC における計測用ソフトウェアの操作には AutoIt を、遠隔でのコマンド送信には PsExec を用い、無線 LAN を介して 4 台の PC の遠隔操作を実現しました。 また、計測機器・計測用 PC の増減に柔軟に対応可能なコマンド送信用インタフェースを開発しました。
- 開発環境・技術分野
-
- 遠隔操作
- マルチモーダル計測
- PsExec
- AutoIt
- RPA
- C#
Zigbee 無線センサーネットワーク監視システムの開発
Zigbee 仕様の無線チップに接続された各種センサーから計測データを受信し、パソコン上の画面で監視を行いながら、制御ボードを介して各種ハードウェアを動作させるシステムです。
たとえば、クリーンルーム監視システムでは、クリーンルーム内の温度、湿度、静電気、粒子量などをセンサーで計測し、Zigbee 無線チップを介してパソコンにデータを送信します。パソコンではそのセンサーデータをモニタ上に表示して監視できるようになっています。また、データが特定の条件を満たすとクリーンではないと判断し、制御ボードを介して警告灯を点灯させたり、ファンの風量を調節します。
この他に、建物内に設置された加速度センサーのデータを受信して地震検知を行うシステムや、植物の栽培ハウス内の CO2 濃度を受信してファンを制御することで CO2 濃度を調節するシステムなどを開発しました。
- 開発環境・技術分野
-
- Zigbee 無線チップ
- シリアル通信
- DIO ボード制御
- C#
時系列センサーデータを用いたリアルタイム状況判定モデル精度検証アプリケーションの開発
物理センサーにより計測された時系列データを解析し、リアルタイムで状況判定する予測モデルを推定し、その予測精度を検証するアプリケーションを開発しました。
状況判定は2値でおこないました。状況判定を学習させるため、各センサーデータの頻度分布における閾値を設定し、正例と負例を分類するための作業支援アプリケーションを開発しました。
状況判定予測モデルとして、ロジスティック回帰モデルと SVM 学習モデルの2通りを推定しました。さらに状況判定予測モデルの予測精度を検証するため、センサーデータに対応する動画データと同期させるアプリケーションを開発し、予測精度をリアルタイムで目視検証しました。
- 開発環境・技術分野
-
- R
- C++/CLI
- 属性選択
- ロジスティック回帰
- SVM
- クロスバリデーション
人体用複数センサー同時計測管理システムの開発
人体に様々な種類のセンサーを取り付けて同時計測を行い、そのデータの時系列的な関連を調べるシステムです。
CPU 負荷により計測が不正確にならないように、センサーごとに計測を行うための PC を設置し、その PC 上でリモート制御用のサーバー プログラムを稼働させます。このサーバー プログラムは、計測管理PC からの要求を受けて、センサーのデバイス API を介して、センサーの制御を行います。計測されたデータは、各 PC 上に一時的に記録されますが、計測管理 PC はそのデータを収集し、グラフ表示やデータ解析を行うことができます。
- 開発環境・技術分野
-
- 生体計測
- モーションキャプチャ
- リモート制御
- C++
医療支援画像処理システムの開発
HE 染色の組織画像から組織の異常部分を自動的に検出するシステムを開発しました。
本分野では、パターンマッチング法が主に使用されていましたが、これを用いず、位相幾何学を用いた手法を導入することにより、画像の特徴を抽出する手法をとっています。
同様のシステムに比べ、処理速度が格段に向上しています。
- 開発環境・技術分野
-
- C#
- ヒストグラム処理
- ピーク抽出アルゴリズム
- ラベリングアルゴリズム
- 図形抽出処理
- 畳み込み積分
- ヒストグラム補正
- ホワイトバランス自動補正アルゴリズム
- 色偏差自動補正アルゴリズム
断層画像の層判別手法の開発
複数の層からなる 3 次元断層画像において、各画像が属する層を判別する手法を開発しました。
本手法は学習ステップと推定ステップに分けられます。
学習ステップでは、画像の特徴と層の関係を機械学習手法の一種であるサポートベクター回帰を用いて学習し、モデルを作成します。
推定ステップでは、層を判別したい画像から特徴を抽出し、学習済みの推定モデルに与えることで、その画像が属する層を推定します。
上記の一連の手法を Python で実装しました。
- 開発環境・技術分野
-
- 画像解析
- Python
- OpenCV
- 機械学習
- サポートベクタ回帰
メタゲノム解析データを用いた環境条件推定手法の開発
次世代シーケンサーを用いて取得されたメタゲノム解析データにより得られた微生物群集の情報を用いて、環境条件を推定する手法を開発しました。
本件では、Lasso 回帰やサポート ベクター回帰を用いて、各微生物の存在量 (微生物相の情報) を入力することで、温度や窒素量など (環境条件) を推定する回帰モデルの作成と推定精度の検証を行いました。
また、微生物相の将来予測を目的として、ある月の微生物相を入力することで、その次の月の微生物相を推定する回帰モデルの作成と予測精度の検証を行いました。
上記の検証には Python を用いました。
- 開発環境・技術分野
-
- メタゲノミクス
- 機械学習
- Lasso 回帰
- サポート ベクター回帰
- Python
医療データ解析およびモデリングの支援
- 開発環境・技術分野
-
- Python
- Stan
- TensorFlow Probability
- 確率的プログラミング
- 変分推論
- MCMC
確率過程推定プログラムの移植開発
- 開発環境・技術分野
-
- 確率過程
- 擬似尤度
- R
- Python
統計的因果推論アルゴリズムの開発
- 開発環境・技術分野
-
- 因果推論
- 階層ベイズ
- 交絡
- MCMC
- 変分ベイズ
- ハミルトニアン モンテカルロ法
分位点回帰による価格予測モデルの開発
時間による価値変動が大きな商品の再販売価格の予測モデルを開発しました。
モデルの開発には、商品の属性データと、商品のオークション履歴のデータを用いました。
分位点回帰モデルを採用することで、モデルからの出力は、再販売価格の単一の予測値ではなく、広がりを持った予測分布が得られます。
再販売価格の予測分布は、仕入れ価格の最適化に用いることができます。また、予測分布には確からしさの情報が含まれるため、ハイリスク、かつハイリターンの取引を特定することができます。これにより、再販売価格の予測を AI から専門家に移譲する (棄却オプションと呼びます) べきかどうかを判断する際にも役立ちます。
- 開発環境・技術分野
-
- 分位点回帰
- 意思決定
- 需要関数
- Optimal Bidding
項目応答理論による観察型評価支援ソフトウェアの開発
項目応答理論を用いることで評価者の寛厳度を考慮することができる観察型評価支援ソフトウェアを開発しました。
寛厳度とは、評価者が厳しめ (甘め) に評価する傾向の強さを指します。
このソフトウェアは、評価ツールと管理ツールから構成されます。
評価ツールは、対象を評価する際に用いるソフトウェアで、評価者自身の寛厳度が考慮されており、評価者によらない共通の尺度で評価ができます。
管理ツールは、寛厳度を考慮した統計モデルを用いて、評価者の寛厳度を考慮するようにパラメータをチューニングした評価ツールを作成できます。また、各評価者が他の評価者と同一の観点で評価できているかを定量的に判定することができます。この判定結果を用いて、評価の質が基準を満たす評価者に評価ツールの利用権限を与えるライセンスを発行することができます。
- 開発環境・技術分野
-
- Python
- 項目応答理論
- Rasch モデル
- 社会心理学
- 心理尺度
- ベイズ モデル
- 複数 OS
- JAX
- AMPS
経済シミュレーション結果の可視化プログラムの開発支援
- 開発環境・技術分野
-
- GitHub
- R
- Shiny
- ggplot2
- パッケージ公開
- オープンソース
- Travis CI
欠損値のあるデータに対する因子分析
- 開発環境・技術分野
-
- 多重代入法
- 構造方程式モデリング
- 因子分析
- 主成分分析
Unscented Kalman Filter と粒子フィルタによる状態推定プログラムの開発
- 開発環境・技術分野
-
- C++
- Unscented Kalman Filter
- 粒子フィルタ
- 状態空間モデル
宝石の官能評価プログラムの開発
- 開発環境・技術分野
-
- 機械学習
- 画像処理
リアルタイム物体認識エージェント システムの開発
- 開発環境・技術分野
-
- 局所特徴量
- 八分木
- 複雑背景
- C++
移動物体の走行時における障害物の高速検出
移動物体が自動走行時の危険を回避するための支援技術として、カメラで取得した進行方向の画像から障害物を高速に検出するアルゴリズムを開発しました。
アルゴリズムの要件は、次の 2 点でした。
・処理が高速であること
・日照・照明条件の変化に対応できること
アルゴリズムはグリッド分割パターン マッチング法を用いました。
パターン マッチング アルゴリズムでは、照明変化、図形変形、倍率変化に頑健な相関係数を求めるロジックを実装しました。
これにより、日照・証明条件が変化する場面においても、高速に障害物が検出できることを確認しました。
- 開発環境・技術分野
-
- ゼロ平均正規化相互相関
- 増分符号相関
- C/C++
- C#
深層学習の技術導入コンサルティング
新規事業への深層学習技術の導入を検討されているお客様に、深層学習の技術コンサルティングを行いました。
コンサルティングの内容は、お客様がコンサルティング終了後も独自に深層学習技術を発展できるように、実務に特化した実習を中心に行い、実習に必須となる理論や評価方法、考え方などは講義を行いました。
実習では、お客様の実務で使用するデータをもとに学習したモデルを構築し、精度を評価しました。
お客様はその後、深層学習技術を発展させ、商用化を実現されました。
- 開発環境・技術分野
-
- 深層学習
- 技術コンサルティング
- Python
顔画像認識システムのアルゴリズム開発
実環境に設置されたカメラを利用する顔認識システムのアルゴリズム開発を行いました。
顔認識システムには、おおまかに「照合判定」「識別判定」の二種類の利用形態があります。「照合判定」は、ドアの入退室管理システムなどで、利用者が本人確認を要求する場合に利用されます。一方、「識別判定」は、往来監視システムなどで、不特定人物の身元を候補リストから推定する場合に利用されます。
識別判定結果は、不特定人物の顔画像と候補リストの顔画像の照合判定結果に基づいて算出されます。識別判定は一般に照合判定よりも難しいと言われており、たとえば、個人ごとの照合判定スコアのばらつきや外乱による顔特徴変化のため、識別判定結果では候補人物本人の棄却や人物誤認識などの問題が発生します。
この業務では、識別判定精度を高めるため、照合判定スコアを正規化する識別アルゴリズムを C++ で実装しました。また、外乱に強い学習データや画像処理パラメータを選出するチューニングツールを MATLAB を用いて実装しました。
- 開発環境・技術分野
-
- バイオメトリクス
- 画像処理
- パターン認識
- 統計解析
- MATLAB
- C++
少数データに基づく顔識別手法の開発
深層学習による顔認識においては、大量のラベル付き訓練データが必要になることが多く、その場合には多くのコストを要します。この問題を克服するため、本業務では少ないサンプルで顔識別を行う手法を開発しました。
この手法は既存のラベル付きデータに基づいてディープネットワークの事前学習を行い、そこで得られた特徴量抽出部分を、認識対象とする人物のラベルが与えられているデータに対するディープネットワークに転移します。
この手法により、少数のデータにおいても高い識別率を実現できることが確認できました。
開発には Python と深層学習のライブラリである Caffe を使用しました。ディープネットワークの訓練に非常に時間がかかるため、 AWS で複数の GPU インスタンスを起動し、複数のネットワーク構造に対する識別精度の評価を並列に行いました。
- 開発環境・技術分野
-
- Python
- 深層学習
- fine-tuning
- 畳み込みネットワーク
- Caffe
- AWS
- GPGPU
深層学習を用いた画像再構成にもとづく異常検知手法の論文調査と実装
- 開発環境・技術分野
-
- 外観検査自動化
- 異常検知
- Autoencoder
- Variational Autoencoder (VAE)
- Python
- TensorFlow/Keras
高解像度フィルムスキャナ制御システムの開発
航空写真の大判フィルムを最大 6.2μm の分解能でスキャンし、デジタルデータ化することができる高解像度フィルムスキャナを制御するシステムです。
高解像度フィルムスキャナは、XY 軸が駆動するテーブルと、テーブルに搭載されたラインセンサで構成されています。大判フィルムの幅は、ラインセンサが撮影可能な幅の約 4 倍あるため、1 回のスキャンではフィルム全体をデジタルデータ化することができません。そこで、本システムはフィルム全体を4エリアに分けてスキャンし、各エリアの位置合わせを行って 1 枚の画像へ結合します。駆動系の精度の限界で合わせ目が目立つ場合は、画像処理によって補正します。
また、フィルム 1 枚あたりのスキャン速度を高速化するため、本システムはマルチコア CPU を活用して並列処理を行いました。
- 開発環境・技術分野
-
- ラインセンサ
- シリアル通信
- モータ制御
- 画像処理
- 並列処理
- CameraLink
- C++/CLI
- C#
空撮用デジタルカメラ撮影システムの開発
航空写真撮影用の高解像度デジタルカメラで高速インターバル撮影を行い、外部ストレージに画像を蓄積するためのシステムです。
測量用の航空写真撮影においては、航空機の速度とカメラの視野の条件により、高速インターバルで数百枚の画像を撮影することが求められますが、カメラ本体にはそれほどのメモリを搭載することができません。そのため、本システムが使用する高解像度カメラは、CCD が出力するベイヤ配列の画像データを複数チャンネルの CameraLink へ分配し、グラバボードを介して PC へ高速転送します。本システムは、カメラから転送されてくるベイヤ配列の画像データをストレージデバイスへ高速で保存します。また、試験撮影用のプレビュー機能を提供します。
- 開発環境・技術分野
-
- CCD ベイヤ配列
- CameraLink
- 画像処理
- C++/CLI
- C#
商標類似判断アルゴリズムの開発
本業務では、国際特許事務所と共同で、過去十数年の商標呼称審査の事例に基づいて、呼称の類似性を自動的に判断する機械学習アルゴリズムを開発しました。
商標の呼称の申請においては、申請しようとする呼称が既存のものと類似しているかどうかを判断する必要があります。類似性の判断は、経験に基づいて行われるため、弁理士と特許庁との間で見解が分かれることがあるほど難しい場合もあり、これまで自動化を妨げる要因となっていました。
このアルゴリズムを用いることで、例えば「アマゾン」と「アマソン」が 80% 似ているというように、類似性を数値的に評価することが可能になるため、類似性の判断を自動化することが可能になります。
アルゴリズムの開発においては、Python のライブラリである TensorFlow と深層学習の技術を使用しました。
本アルゴリズムを用いたサービスが新聞に取り上げられました(日経産業新聞、2016年12月26日)。商標登録における人的コストの削減と、ビジネスの加速に寄与することが期待されます。
- 開発環境・技術分野
-
- Python
- 深層学習
- TensorFlow
個々のラベルが不明なサンプルの集合に対する機械学習
多数のサンプル中に、ある種のサンプルが一定数以上存在するかどうかを推定する機械学習アルゴリズムを開発しました。
ベースとした技術は Multiple Instance Learning (MIL) です。MIL は、サンプルの集合に対するラベルが教師データとして与えられるときに用いる学習手法です。一般的な教師あり学習では、各サンプルにあらかじめラベルが必要ですが、個々のサンプルにラベルがない場合に適用することができます。
標準的な MIL では、集合中のある種のサンプルの有無をラベルに用いることが前提になります。入手可能なラベルが、集合中のある種のサンプルが一定数以上存在するか否かであっても、特別な前処理を行うことで、標準的な MIL として扱うことができます。
- 開発環境・技術分野
-
- 機械学習
- Multiple Instance Learning
- Python
データマイニングを応用した複合問題ガイドシステムの開発
特定の分野の暗黙知を、データマイニングによって抽出し、自動的に形式知に変換するシステムです。抽出された形式知を用いて、その分野の初心者に対して、様々な問題のガイドを行います。
データマインイングの技術として、プロセスマイニング、ベイジアンネットワーク、自己組織化マップ、オントロジー技術を使用しました。
この研究開発では、いくつかのアルゴリズムを論文調査し、本システムの目的に効果的なアルゴリズムを選択・実装しました。
- 開発環境・技術分野
-
- Java Servlet
- MySQL
- クラウド
- プロセスマイニング
- ベイジアンネットワーク
- 自己組織化マップ
- オントロジー
生体情報カップリング ハードウェア コントロール システムの開発
生体からの計測データを入力として、外部接続されている機器を動作させる研究用システムを開発しました。
時々刻々変化する生体情報を入力とし、それに合わせて、外部の機器を制御する信号を生成します。この例では、1 ミリ秒の制御時間分解能を実現しました。
- 開発環境・技術分野
-
- C#
- レーザ制御
- リアルタイム処理
脳波計測の実験支援
大規模な脳活動データベースを構築するプロジェクトにおいて、多数の被験者の脳波を計測するための実験支援として、電極の設置・調整、脳波データの記録・監視、ノイズの発生原因の推測と記録を行いました。
脳波計測では電極の設置がキーポイントとなります。設置の仕方が悪いと計測データに大きなノイズが混じってしまい、正確な解析が行えません。そのため、計測データを随時確認しながら設置の調整が必要となります。
また、脳波は非常に小さな電気信号のため、被験者のちょっとした動きや環境の変化が大きなノイズとなります。この場合にも後の解析が正しく行えなくなるため、計測データを常に確認し、どのようなノイズが混じったかを推測して記録することが必要となります。
このように、脳波計測の経験と専門的知識が必要となる実験において、計測の準備から記録までの一貫した実験支援を行いました。
- 開発環境・技術分野
-
- ヒト脳波計測
BMI フレームワークの開発
脳波 (EEG) などの脳信号から標的とする脳活動をリアルタイムで検出し、外部機器を操作するためのフィードバック信号を出力するブレイン マシン インターフェース (Brain-machine interface, BMI) のフレームワークを開発しました。
BMI はリアルタイム性が重要となるため、C++ のマルチスレッド機構を用いてフィードバックまでの遅延時間を抑えました。脳信号の前処理や脳活動検出のアルゴリズムについては、実験に応じて MATLAB や Python で作成したスクリプトを組み込めるよう、柔軟に設計されています。BMI への入力についても、Lab streaming layer 通信技術を用いて、脳信号に加え、複数のデバイス (視線追跡装置など) からのマルチモーダルな入力を実現しています。
- 開発環境・技術分野
-
- ブレイン マシン インターフェース (BMI)
- 脳波 (EEG)
- C++
- MATLAB
- Python
- Lab streaming layer (LSL)
脳活動データのデコーディング解析
ヒトの脳活動を計測した脳波 (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
- Java
- Bluetooth Classic
- BLE
- 心拍変動解析
- AR モデル
- 時系列解析
BLE センサデータ解析用 Windows アプリケーションの開発
Windows 上で BLE 通信を介してセンサデータをリアルタイムに取得し、MATLAB 環境でデータ解析を行うことができるアプリケーションの開発を行いました。
iOS や Android とは異なり、Windows は OS レベルでは BLE 規格に未対応なため、専用のドングルと SDK を用いて BLE 通信を実現しました。
さらに、MATLAB 環境上におけるセンサデータのリアルタイム解析を実現するため、プロセス間通信を用いてリアルタイムなセンサデータの取得を実現しました。
- 開発環境・技術分野
-
- Windows
- BLE
- MATLAB
- プロセス間通信
- C/C++
最大エントロピー法による脳の振動活動の可視化ソフトウェアの開発
膜電位イメージング法により取得されたデータに対し、最大エントロピー法を用いて周波数解析を実施するソフトウェアを開発しました。
神経活動の一形態である振動現象を脳で時空間的に捕えるため、イメージングデータに対し周波数解析を実施しました。脳神経の振動活動の持続期間は短く、振動活動中に得られる時系列のデータ数が少ないため、最大エントロピー法を適用しました。
イメージング機器の出力する1万点を超えるピクセルデータに対し、以下の処理機能を実装しました。
- 膜電位感受性色素の退色補正
- FIR フィルタ処理
- 最大エントロピー法によるパワスペクトルの算出
- ガウスフィルタによる画像の平滑化
- 各周波数における脳のパワ分布の算出とコンタープロットの導出
- 脳の特定領域のスペクトログラムの導出
- 開発環境・技術分野
-
- FIR フィルタ
- トレンド処理
- 最大エントロピー法
- C
神経スパイクソーティングアルゴリズムの開発
神経信号の記録法として、複数の神経からの信号を同時に記録する手法が広く使われています(集合電位の記録)。この場合1計測レコードは複数の神経スパイクの合成信号として記録されます。この集合電位の記録から、各スパイクの特徴量を求め、各神経固有のスパイクを分離することをスパイクソーティングと呼びます。
スパイクソーティングでは、通常、特徴量としてスパイクの振幅とスパイクの持続期間が使われます。スパイクソーティングの精度を向上させるために、スパイク振幅と、スパイク形状そのものを比較するアルゴリズムを開発しました。スパイク形状の比較はピアソンの積率相関係数を用いました。
また、相関係数を求めるにあたり、スパイク波形切り出しタイミングの誤差が相関係数に影響することを避けるため、切り出したスパイク波形にスプライン補間法を適用しました。これにより、1計測レコードから十数スパイクを分離することに成功し、形態学から調べられた神経細胞数と分離された神経スパイク数は良い一致を見ました。
Finite impulse response filter (FIR)
スパイクソーティング結果 (11種類のスパイクの分離)
- 開発環境・技術分野
-
- FIR フィルタ
- トレンド処理
- Pearson の積率相関係数
- ヒストグラム
- スプライン補間
- ピーク抽出ロジック
- C
- Visual Basic
スパイク情報の刺激応答性評価ソフトウェアの開発
集合電位を記録し、集合電位からソーティング手法により分離した各スパイク信号に対し、刺激に対する応答性をもとにクラスタリングするソフトウェアを開発しました。
この例では、刺激が11種類あり、刺激それぞれに対する神経応答の評価項目として、応答の有無、一定周波数応答が見られた場合の主周波数、主周波数の時間変動をあげました。
主周波数成分は自己相関関数をもって評価し、自己相関関数の時間変化により、応答振動特性を分類しました。これらのパラメタを特性量として自動抽出し、統計処理ソフトウェアに渡せるようインターフェースをとりました。
- 開発環境・技術分野
-
- 自己相関関数
- C
- Visual Basic
高速度カメラ画像処理プログラムの開発
昆虫に匂い刺激を行った場合の行動を計測した高速度ビデオ画像の情報抽出処理を行いました。
高速度撮影では、露光時間の短さによる光量不足を解消するために高輝度ライト等を用いますが、生体の撮影においてはライトの影響を排除するため、大光量の光源は用いられず、画像は光量不足の状態でした。
この画像データに対し微分フィルタ処理を行いエッジ抽出し、さらにオプティカルフローをフレーム差分法により求めました。これによる匂い刺激に対する昆虫の行動の発現する箇所とそのシーケンスが明らかになりました。
- 開発環境・技術分野
-
- 微分フィルタ
- オプティカルフロー
- フレーム差分法
- 高速度ビデオ
- C
Ca2+ イメージングデータ処理プログラムの開発
Ca2+ イメージング機器のバイナリ出力データを直接プログラムに入力し、カルシウムインジケータの退色補正、デジタルフィルタによるノイズフィルタリング、相対光量変化量の演算、ガウスフィルタ、メディアンフィルタによる空間ノイズフィルタリング等の処理を行うプログラムを開発しました。
処理されたイメージデータは Ca2+ イメージング機器のバイナリ出力形式で出力することで、 Ca2+ イメージング機器付属のソフトウェアの機能も活用可能としました。
- 開発環境・技術分野
-
- 退色補正
- FIR フィルタ
- △F/F の算出
- ガウスフィルタ
- メディアンフィルタ
- C
動物行動実験用のデジタイジング・マッピングシステムの開発
モリス水迷路などの動物行動実験において、対象動物 (マウスなど) の動きを撮影した映像から位置情報を取得 (デジタイジング) し、位置情報から対象動物の滞在頻度を色で示す heat-map を作成 (マッピング) するシステムです。
デジタイジングにおいては、映像の各フレームの画像に対して画像処理を行い対象動物の位置を検出します。デジタイジングの画像処理設定やマッピングに関するマーカー、カラーバーなどの設定に関しては、GUI によるシンプルな操作方法を実現しました。
- 開発環境・技術分野
-
- 画像処理
- C#
- OpenCV
- 動物行動実験
小動物行動記録システムの開発
神経行動学分野の実験において、マウス・昆虫等の小動物の神経活動と行動変化を同時にモニタするための計測・記録システムを開発しました。
小動物の行動計測手法としては、トラックボールの動きをカメラで計測するイメージング手法がよく用いられます。しかし、30ミリ秒程度の時間分解能の安価なカメラでは、数ミリ秒オーダーの脳神経活動と行動記録の比較をすることができないため、高価な高速度カメラシステムが必要でした。
本システムでは、トラックボールの動きを2台の光学マウスで計測する安価な構成で、最大2ミリ秒という高時間分解能の行動記録を可能にしました。
- 開発環境・技術分野
-
- C#
- RawInput API
- 行動計測
- 動物行動実験