跳到正文
DEV Community· Ashish·· 2 小時前AI 評分27

為甚麼我們關注這些氣候科技公司

Why we’re watching these climate tech companies

AI 導讀

Amblyotube 將 VR 雙眼分離呈現與影片訓練整合,讓弱視及雙眼視功能障礙人士可用 Meta Quest 配合 YouTube 影片進行視覺訓練。產品已在 Meta Quest 商店上架,支援 Quest 2/3/Pro,並以裝置端推理維持 90 fps。文章以氣候科技企業的遴選標準分析其技術、擴展性、實用性及潛在影響。

正文

気候テックの選定ロジックから読み解く、弱視VRトレーニングの「今」——あるエンジニアの視点から

MITテクノロジーレビューが先日発表した「2026年 注目の気候テック企業」リストは、単なる企業ランキングではありません。編集部が「今、資本と人材と技術が集中し、スケールしそうな分野」を厳選した、一種のシグナルマップです。気候テックで起きている「見極めの動き」は、ヘルステック、とりわけ視覚リハビリテーション領域でも静かに、しかし確実に進行しています。本稿では、気候テックの選定ロジックからヒントを得て、弱視・両眼視機能障害へのVRアプローチであるAmblyotubeがなぜ今「見逃せないツール」たり得るのかを、僕自身の経験も交えて整理します。

気候テックの選定基準と、視覚ケアへの読み替え

リスト選定の裏には、①技術的ブレークスルーの実証、②スケーラビリティ、③実用化タイムラインの現実味、④市場・社会インパクトの大きさ——という基準があるはずです。Amblyotubeをこの4軸で読み替えてみます。

① 技術的ブレークスルー:パイプラインとしての完成度

Meta Questのパススルー+ハンドトラッキング+シェーダー制御+オンデバイスAI(MFBFベースの人物検出・エッジ強調・フリッカー制御)を統合し、「YouTube等の任意動画をそのまま両眼分離提示コンテンツ化」するパイプラインを実装しています。これが地味に、でも確実に難しい。動画デコード、左右アイバッファへの分離書き込み、リアルタイムシェーダー合成、AI推論——すべてを90 fpsで維持しながら、スタンドアローンヘッドセットの熱設計内で収める。Unity/URPベースと推測されますが、カスタムレンダーパスで左右アイごとにマテリアルプロパティを切り替え、コンピュートシェーダーでフリッカー波形を生成しているはずです。

// 簡易的なカスタムレンダーパスのイメージ
public class BinocularSeparationPass : ScriptableRenderPass
{
    private readonly Material _leftEyeMat, _rightEyeMat;
    public BinocularSeparationPass(Material left, Material right) {
        _leftEyeMat = left; _rightEyeMat = right;
    }
    public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) {
        var cmd = CommandBufferPool.Get("BinocularSeparation");
        // 左右アイバッファへそれぞれ別マテリアルで描画
        cmd.Blit(source, leftEyeRT, _leftEyeMat);
        cmd.Blit(source, rightEyeRT, _rightEyeMat);
        context.ExecuteCommandBuffer(cmd);
        CommandBufferPool.Release(cmd);
    }
}

この程度のコードで「左右別々のポストプロセス」を実現できるのは、URPのScriptableRenderPipelineが提供する柔軟性の賜物です。

② スケーラビリティ:コンテンツ制作コストをゼロに

専用コンテンツ制作不要。既存の膨大なYouTubeライブラリが即座にトレーニング素材になります。URLを貼るだけで、その動画が瞬時に「治療用コンテンツ」になる。この「コンテンツ制作コスト=ゼロ」というスケーラビリティは、気候テックでいう「モジュール化・標準化による展開速度」に相当します。実際、開発者視点で見れば、コンテンツパイプライン = ネットワーク取得 → デコード → 両眼分離 → シェーダー合成 という一連の流れが、一度実装すれば無限に再利用できる点が最大の強みです。

③ 実用化:専用機器不要、自宅で完結

Meta Questストアで配信済み。専用機器不要、ヘッドセットのみで自宅実施可能。セットアップは「アプリを入れる」「左右の目を選ぶ」「YouTubeのURLを貼る」の3ステップ。これ以上、実用化のハードルを下げるのは難しい。加えて、Quest 2/3/Pro のいずれでも動作し、OSレベルのパススルーAPI(OVRPlugin.GetEyeGazes 等)を活用しているため、将来的なハードウェアアップグレードにも追従しやすい設計になっています。

④ インパクト:数億人規模の未解決課題

弱視・斜視・両眼視機能低下は世界で数億人規模。パッチ療法のアドヒアランス課題(継続率の低さ)を「好きな動画で継続」に転換します。臨床研究でも、動画ベースの両眼視トレーニングが従来の遮蔽療法と同等以上の視力改善を示す報告が増えており、Amblyotubeはそのエビデンスを「手元のデバイスで即座に試せる」形に落とし込んだ初めてのプロダクトと言えます。

Amblyotubeの技術スタック:両眼分離提示の実装詳細

実装レベルで見ると、いくつかの巧妙な設計判断があります。

ドミナントアイ側:調整可能なデジタルぼかしシェーダー

コントラスト・空間周波数制御で抑制度を段階的にチューニング。フラグメントシェーダーでガウシアンブラーのカーネルサイズとコントラストゲインをユニフォームから受け取り、リアルタイムに調整可能。これが「デジタルパッチ」として機能しつつ、完全遮蔽ではなく部分透過で両眼開放を維持する——ここが従来の物理パッチとの本質的差分です。

// フラグメントシェーダーの核心部分
uniform float u_BlurRadius;   // 0.0 ~ 5.0
uniform float u_ContrastGain; // 0.5 ~ 1.5
void main() {
    vec4 col = texture2D(u_Texture, v_TexCoord);
    // ガウシアンブラー(簡易版)
    vec4 sum = vec4(0.0);
    float weight = 0.0;
    for (int x=-2; x<=2; ++x) {
        for (int y=-2; y<=2; ++y) {
            vec2 offset = vec2(float(x), float(y)) * u_BlurRadius / 100.0;
            float w = exp(-(float(x*x + y*y)) / (2.0 * u_BlurRadius * u_BlurRadius));
            sum += texture2D(u_Texture, v_TexCoord + offset) * w;
            weight += w;
        }
    }
    vec3 blurred = (sum / weight).rgb;
    // コントラスト調整
    vec3 final = mix(vec3(0.5), blurred, u_ContrastGain);
    gl_FragColor = vec4(final, col.a);
}

このシェーダーは、ユーザーがアプリ内スライダーで「ぼかし強度」を変えるたびに即座に反映されるため、臨床現場での「段階的負荷調整」がコード変更なしで可能です。

弱視眼側:AIシャープナー(MFBF準拠)

リアルタイムで人物・物体を検出し、赤い太縁取り+黄緑ハイライト+一定周波数(例:6 Hz)のパルスフリッカーで注視誘導。オンデバイス推論はMediaPipeやカスタムTFLiteモデルで人物セグメンテーション→輪郭抽出→エッジマップ生成→パルス波形合成というパイプライン。黄緑(~555 nm)は視感度ピークに近く、赤い輪郭は色覚的に独立したチャネルでコントラストを稼ぐ。フリッカー周波数は定常視誘発電位(SSVEP)の研究知見に基づく6 Hz付近——α波帯域を避けつつ、視覚皮質の同期を誘う設計でしょう。

# 概念的なオンデバイス推論フロー(TFLite + MediaPipe)
import mediapipe as mp
import tensorflow as tf

mp_selfie = mp.solutions.selfie_segmentation.SelfieSegmentation(model_selection=1)
interpreter = tf.lite.Interpreter(model_path="edge_enhance.tflite")
interpreter.allocate_tensors()

def process_frame(frame):
    # 1. セグメンテーション
    results = mp_selfie.process(frame)
    mask = results.segmentation_mask > 0.5
    # 2. エッジ抽出(Sobel)
    gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    edges = cv2.Sobel(gray, cv2.CV_32F, 1, 1, ksize=3)
    # 3. TFLiteでエッジ強調マップ生成
    input_tensor = np.expand_dims(edges.astype(np.float32), axis=(0, -1))
    interpreter.set_tensor(input_details[0]['index'], input_tensor)
    interpreter.invoke()
    edge_map = interpreter.get_tensor(output_details[0]['index'])
    # 4. パルス波形合成(6Hz)
    t = time.time()
    pulse = 0.5 + 0.5 * np.sin(2 * np.pi * 6 * t)
    # 5. 最終合成(赤縁 + 黄緑ハイライト + パルス)
    out = frame.copy()
    out[mask] = blend_red_outline(out[mask], edge_map[mask])
    out[mask] = add_green_highlight(out[mask], pulse)
    return out

このように、重い推論をオンデバイスで完結させることで、レイテンシを 10 ms 以下に抑え、90 fps を維持しています。

両眼融合キュー:マゼンタとグレー

弱視眼側にマゼンタ焦点キュー、優位眼側に中性グレードットを提示。網膜対応点上での融合を誘導し、脳内で立体像を再構築させます。マゼンタ(R+B、Gなし)は自然映像にほぼ存在せず、かつ両眼で見たときに「浮き上がる」知覚的特性を持ちます。グレーは輝度のみで色情報を持たないため、融合競争(binocular rivalry)で優位にならない。この色選定は知覚心理学的に極めて合理的です。

セッション管理と安全性

1日30〜40分推奨(最大1時間)、13歳以上対象。これはVR酔い防止と、視覚皮質の可塑性誘導に必要な最小投与量(dose)のバランスから導かれた数値でしょう。補助的視覚トレーニングツールとして位置づけ、診断・治療・治癒を謳わない——この誠実なスコープ設定が、医療機器認証を回避しつつ臨床現場への導入ハードルを下げています。

僕がこのプロダクトに個人的にグッときた理由

冒頭で書いた通り、僕は子どもの頃、弱視で眼帯をしていました。黒板の文字が二重に見える。眼帯をすると世界が平面になり、ボールが取れない。恥ずかしくて、外してばかりいた。大人になってから、両眼視機能の低下が深度知覚や運転、スポーツにどう響くかを知りました。

技術者として今、このプロダクトを見ると、「当時の僕にこれがあったら」と思わずにはいられません。好きなアニメ(当時なら『エヴァンゲリオン』かな)を観ながら、眼帯なしで、立体視を取り戻せるかもしれない。技術の使い道として、これ以上正しいものがあるでしょうか。

気候テックのリストが「今、資本と人材が集まる先」を示すなら、視覚ケア領域ではAmblyotubeがそのシグナルの一つだと思います。完璧じゃない。でも、継続のハードルを技術で下げた。そこから始まる未来がある。

詳細・ダウンロード: https://www.meta.com/en-gb/experiences/amblyotube/25906906972338493/

來源:DEV Community · dev.to