AIが生成した画像処理アルゴリズムを、人間が理解し、修正し、検証できる実行パイプラインへ。
フルズアイ ― 名称は、標的の中心を意味する「Bullseye」に由来します。
Fullseye(フルズアイ)は、Physical AI、産業用ロボティクス、産業用マシンビジョンに向けて、画像処理・幾何計測アルゴリズムの構築から、実行、可視化、評価までをつなぐ開発基盤プロジェクトです。
AIによって画像処理コードを生成できても、その処理が何を前提に動作し、どこで失敗し、変更によって何が改善したのかを確認できなければ、継続的な研究開発や産業応用へつなげることは困難です。最終結果だけでは、問題の原因が入力条件、演算の選択、パラメータ、座標変換のどこにあるのかを判断しきれません。
Fullseyeが目指すのは、生成されたアルゴリズムを「動くコード」にとどめず、処理の構造、中間結果、実行条件、評価結果を対応づけ、人間が検証・改善できる開発資産として扱うことです。そのために、古典的画像処理、幾何学的アルゴリズム、数値計算、ビジュアルプログラミング、AIによる開発支援を結びつけます。
さらに、光学系・照明・センサ・対象物を計算で再現する物理シミュレーションの演算子を、同じ演算子体系に含めています。真値の分かる仮想の撮像条件で処理を組み立て、公開されている実データで確かめる、という順で検証を進められることも、Fullseyeの特徴です。
学習ベースのAIと、幾何ビジョンを補完的に活用。
DNNやVLMの認識・推論能力と、明示的な数学モデルや幾何学的制約を組み合わせることを基本方針とします。
Fullseyeの中核は、数学的仕様と型付きインターフェースを備えた演算子体系を、ビジュアル編集、コード生成、実行、評価、AI支援で共有する設計にあります。GUI上のノード、生成コードが呼び出す演算、AIが選択する処理候補を共通仕様に基づいて扱い、編集時の意図と実行時の処理、評価時の根拠を対応づけます。
現在、3,600を超える演算子(2026年11月時点で3,623)を登録しています。前処理、特徴・輪郭抽出、幾何モデルの当てはめ、キャリブレーション、座標変換などを重点領域とし、同じ処理をビジュアル編集とコード編集の両方で構築・確認できる基盤を構想しています。
| 重視する要件 | 設計上の取り組み |
|---|---|
| 説明可能性 | 各演算の数学的定義、パラメータ、処理内容を明示する。 |
| 追跡可能性 | 入力、中間結果、演算条件、最終出力の関係を追跡できるようにする。 |
| 再現性 | 入力データ、実行条件、依存環境を管理し、結果の再現を支援する。 |
| 検証可能性 | テストと定量評価により、処理の正当性と性能を確認する。 |
| 計算効率 | 演算構造、メモリ使用、データ転送を把握し、実行効率を改善する。 |
本プロジェクトにおける説明可能性は、主にパイプラインを構成する演算、パラメータ、座標変換、中間結果の関係を、人間が確認できることを指します。組み込まれたDNNやVLMの内部判断まで説明できることを意味するものではありません。
主要な画像処理・幾何演算は、基礎となる数学モデルに基づいて実装し、演算手順や数値特性を確認・変更・検証できる構成とする方針です。NumPyを中心とした数値計算基盤により、演算手順、データ型、精度、メモリ構造を管理し、内部構造の研究・変更・検証を行いやすい構成を目指します。
演算子の入出力型、テンソル形状、パラメータの意味・許容範囲を共通仕様として定義します。さらに、画像・カメラ・ワールド・ロボットの各座標系、変換方向、単位を明示し、残差や再投影誤差などの評価と結びつけます。
数学的な透明性は、結果の正しさを保証するものではありません。実測に基づく妥当性検証を併用します。
Fullseye Studioは、ビジュアルパイプライン編集とPythonコードの直接編集を融合する統合開発環境です。処理の構築、試行錯誤、デバッグ、検証を一貫した環境で行うため、次の機能を備え、また構想しています。
| 機能 | 目指す開発体験 |
|---|---|
| ビジュアル構築 | 前処理、特徴・輪郭抽出、幾何計測、座標変換などの演算子を、検索・選択・配置・接続してパイプラインを構築する。 |
| 双方向コード同期 | GUIからPythonコードを生成し、対応するコード変更をAST解析でGUIへ反映する。 |
| 中間結果の確認 | 各ステップの画像、数値、パラメータを確認し、失敗箇所や改善候補を特定する。 |
| 実験条件・履歴管理 | 入力、構成、パラメータ、ソフトウェアバージョン、評価結果を関連づけて管理する。 |
このうち、ビジュアル構築と中間結果の確認は現行版で使えます。双方向同期は、GUIで組んだパイプラインを通常のPythonコードとして書き出し、そのコードを別プロセスで実行して各段の結果が一致するかを照合するところまでを実装しています。コード変更のGUIへの反映は、対応構文・演算子・制御構造を定義した範囲を対象とする構想であり、任意のPythonコードの完全なグラフ化は前提としません。実験条件・履歴管理は構想段階です。
ノードグラフから独立した実行コードへの変換を構想しています。GUI上の編集表現と実行時の演算構造を分離し、次の段階を通じて開発の柔軟性と実行効率の両立を図ります。
ノードグラフの解析
接続をDAGとして表現し、トポロジカルソートで依存関係に基づく実行順序を決定。
中間表現への変換と検証
演算子、入出力、パラメータ、型、形状をIRへ整理し、構造・型整合性を確認。
正当性を優先した最適化
中間データの生存期間と依存関係を踏まえ、バッファ再利用や不要なコピーの削減を検討。
実行コードの生成
GUIに依存しないPython/NumPyコードへ変換し、独立テスト、Git管理、既存アプリケーションへの組み込みに活用。
現行版には、型付きの中間表現からPythonコード(対応する演算子ではCコードも)を生成する経路があり、生成したコードと元の処理の出力を突き合わせて検査しています。バッファ再利用などの最適化は今後の課題です。
型だけでは捉えられない値域・幾何学的制約は、演算子ごとの契約条件と実行時検証で補います。性能評価では、スループット、レイテンシ、ジッター、メモリ消費量を扱います。
AI統合では、生成された処理を共通演算子体系と検証可能な実行構造へ落とし込む協調開発を構想しています。コードの生成だけでなく、実行結果の観察と評価を通じた改善までを対象とします。
AIは候補生成と反復改善を支援し、人間は処理の意味と工学的な妥当性を判断します。この役割分担により、理解可能性と制御可能性を保ちながら、開発効率を高めることを目指します。
| 応用領域 | 想定する処理・評価 |
|---|---|
| 精密位置決め・幾何計測 | 特徴点・輪郭・直線・円などから位置、姿勢、寸法、変位を推定。測定誤差、繰り返し精度、外乱への安定性を評価。 |
| カメラ・ロボット連携 | カメラキャリブレーション、射影幾何、ハンドアイキャリブレーションなどによる座標対応づけ。 |
| 視覚フィードバック | 位置・姿勢情報を動作補正へ利用。レイテンシ、計測精度、時間的安定性から適用可能性を検証。 |
例えば、カメラ画像から部品の位置・姿勢を求める場合、画像の前処理、輪郭・特徴の抽出、幾何モデルの当てはめ、座標変換までを一つのパイプラインとして構成します。
最終的な位置・姿勢の出力だけでなく、その出力を得た処理構造と条件、改善を判断した評価結果までを一体として扱うことが、この開発フローの狙いです。
このページに並ぶ展示は、いずれもFullseyeの演算子で処理を組み、真値または公開データで結果を確かめた事例です。多くの展示では、うまくいった条件だけでなく、手法が破綻し始める条件もあわせて示しています。
研究開発では、個別アルゴリズムや開発機能の概念実証(PoC)を通じた実装・動作確認・改善の反復を重視します。入力データ、評価条件、実行環境、定量結果を関連づけ、第三者が再現・検証できる成果として整理する方針です。
既存ライブラリや代表的な手法との比較では、速度だけでなく、数値精度、ロバスト性、メモリ使用量、実行時間の安定性、開発・検証の容易さを扱います。実装、評価スクリプト、テストデータ、実験条件、ベンチマーク結果を可能な範囲で公開し、学会発表や技術論文による発信を目指します。
Fullseyeが目指すのは、AIの柔軟性と幾何ビジョンの数学的な厳密性を結びつける、オープンで拡張可能な開発基盤です。
理解できる。再現できる。検証できる。その積み重ねを、Physical AIと産業用ロボティクスの実装へつなげます。
本資料は、Fullseyeの理念・設計方針・現在の実装と機能構想、および想定用途を紹介するものです。性能と適用可能性は、入力データ、評価条件、対象環境に基づいて検証します。NumPyベースの実行のみでハードリアルタイム性を保証するものではありません。安全性が要求されるロボット制御への適用では、画像処理単体の評価に加え、システム全体の安全設計と検証を前提とします。