fullseye

次セッション引き継ぎ — 高速化・省メモリ・動画 + 解像度管理 + 図注(2026-09-03 午前〜)

正本

この回でやったこと

  1. 解像度管理 meshres.py(ops3d resolution 15 op): 粗密を測る(mesh_edge_stats p95/p5、mesh_detail_map)、揃える(mesh_split_long_edges 頂点不変、mesh_isotropic_remesh 5.4→1.7)、監査つきで減らす(mesh_lod_chain/mesh_select_lod/mesh_decimate_preserving 細部固定+max_error 超は拒否/mesh_reduction_report)、点群(pc_density/pc_poisson_disk 孤立点を落とさない/pc_fill_sparse/pc_density_equalize/pc_lod_chain/pc_thinning_report)。meshrepair.decimate_qem(protect=)。テスト 29 件、ファザー 15/15 到達。
  2. イトカワ hero 再描画(Agent): 幾何は減らさず、適応テッセレーション(辺長 1.5 m 目標、p95/p5 2.72→2.38、面積・体積誤差 0)、帯域制限つき起伏(mesh_displace_spectrum + Nyquist ゲート displacement_band_weights、短波長は bump_normals_fbm へ)、角ばった岩塊 2,909 個(D^−3.1、埋没 0.3〜0.6)、露出を lit 中央値 0.45 に。起伏コントラスト 0.034→0.081(AMICA 円盤尺度 0.090、AMICA 実測 0.037 は位相角 8.8° なので厳密比較不可)。render_mesh をベクトル化(bit-exact)、影/AO のグリッド自動。新 op 5 つ(terrain)。静止画 docs/articles/assets/itokawa_regolith_hero.png を差し替え、記事 ja/en の説明文も新描画に合わせて更新し PATCH 済(下記 1)。回転 GIF も同パイプラインで作り直し(tools/gen_itokawa_turntable.py: 間引きなし・カメラと太陽が一周・位相角 45° 固定・全フレーム同一露出、36 枚 480 px、2.56 MB、media/itokawa.mp4 同梱)。旧 gen_showcase_gifs.py の低ポリ版は *_lowpoly 名に退避。
  3. 図注(Agent): annotate paper 21 op + ops3d annotate3d 7 op、テスト 36 件、例 2 本、族ガイド。
  4. 調査 → 着手(ユーザー指示「調査した上で着手」): PERF_MEMORY_VIDEO_SURVEY.md(65 op × 3 サイズ × 2 dtype + GPU)。推奨 3 件を全部実装:
    • (h) ベンチ台 tools/bench_ops.py + bench/bench_ops_baseline.json(384 行)+ テスト 31 件。初回で cv_dist の float32 契約違反を発見→修正。
    • (a′) fast.py cv2 twin 41 op(parity ゲート 41/41、既定 OFF FULLSEYE_FAST=1)、fast.apply_uint8 21 op、uint8 fail-closed(on_error="raise" は拒否、既定は /255 変換+台帳 source="input")、_coerce_input O(N) 化、ACCEL 逆引きキャッシュ。float64 の結果は 1 ビット不変(SHA-256 で固定)。
    • (d) videostream.py / opsvideostream(8 op): FrameRing / StatefulOp 7 種 / VideoPipelineiter_frames(dtype="uint8")。テスト 21 件、ファザー 8/8 到達、一括 op = ストリーム版がフレーム単位で一致。
  5. CHANGELOG.md 0.1.5 に「2026-09-03 追加」節、README/CHANGELOG の op 数を 870 / 344 / 409 に更新、docs/OP_CATALOG/Studio help 再生成。

2026-09-03(午後)追加: 動画像処理 第 2 波 + FAST 既定判断 + bench –set video

2026-09-03(さらに後半)追加: 検証キャンペーン + exact geometry predicates

2026-09-04 追加: 精度ユニオン型 PoC(ユーザー発案)+ geompred(predicates 横展開)

2026-09-04 追加: Qiita hero 画像の品質修正(ユーザー指摘)

2026-09-04 追加: 画像の総点検(ユーザー「他にも粗い物やお粗末な画像があれば改善」)

2026-09-04 追加: hero 被写体の刷新 + 改善過程の公開 + 材質ロードマップ

次にやること(優先順)

  1. v0.1.5 タグ(PyPI 公開) 完了(2026-09-03): PyPI に 0.1.5 公開済(wheel+sdist、latest=0.1.5)。公開前に liveness テスト 1 件(tb_running_gaussian_foreground が video 生成器で定数)を修正 = bridge に per-op tunable override を足し (k, var_init) を振る(公開 op 既定は不変)。※v0.1.4 は 3 日前に PyPI 400 で失敗しており PyPI 上は 0.1.3→0.1.5(同 license 形式で今回は成功 = 一過性)。
  2. FULLSEYE_FAST 既定 ON の判断 完了: OFF 維持(上記)。
  3. 高速化の次の梃子: scale.scale_class の誤分類修正は完了(2026-09-03) — カテゴリ推測が 141 個の非局所 op を tile_safe と偽っていたのを実測ベースの _NOT_TILE_SAFE(class global_reduce/global/compute_bound)に置換、ライブ計測テストで完全性・非陳腐化をロック。: ops._norm の一元化 + Op.global_reduction フラグ(sobel_mag/canny の残り 2〜3× 高速化と、global_reduce op を「生フィルタをタイル→一度だけ正規化」で実際にタイル可能にする process_tiled_norm 配線 (c))、GPU 常駐リング(accel Resident)を VideoPipeline(device="cuda") に (g)、フレーム並列 executor (f)、bench に --set vol
  4. 動画の残: optical_flow_magnitude_stream は per-frame が重い(既定 video セット外)→ 高速化 or cv2 twin 検討。scene_cut のフリッカ耐性は deflicker を前段に置く導線を例示済み。
  5. 解像度管理の残: 増分中央値(大きい窓)、mesh_isotropic_remesh をイトカワの表示用 LOD にだけ使う導線(解析データとは分離)。
  6. 前回からの残: 光学候補(多重反射/異方性 BRDF/ゴースト/テレセン誤差予算/センサ RS・PRNU・HDR/多色 PSF)、fullseye.selfcheck()、typed _EMPTY_OF、0.0 番兵 4 件、ファザー拒否 35 件、TYPEMISS 既知 3 件(pose_error / sphere_sdf / box_sdf)、raptor upstream 同期。