AI絞り推定

実験的ツール · 進行中

ヴィンテージのマニュアルレンズで撮影したときの絞り値を、コンピュータービジョンで推定します。

項目

内容

所属

MokuPhotoパイプライン

種類

社内ツール:メタデータ補完パイプライン

カテゴリー

コンピュータービジョン, 写真ツール

対応範囲

アルゴリズム設計、レンズレジストリ、コンピュータービジョン分析、Framerコンポーネントへの統合、検証フレームワーク

技術構成

TypeScript, Claude Haiku Vision API, Framer React, Cloudflare R2

機材

OM System OM-3 + Olympus OM Zuiko 28mm f/3.5(アダプター経由のヴィンテージマニュアルレンズ)

スタジオ

Mokujiro Studio

デザイナー/AIエンジニア

田井憲橘

所在地

オーストラリア、メルボルン

期間

2026年6月

Meiji Jingu shrine gate photographed with the Zuiko 28mm f/3.5 vintage manual lens

課題

ヴィンテージのマニュアルフォーカスレンズは、意図して選んだものです。1970年代に設計されたOlympus OM Zuiko 28mm f/3.5は、現代の光学系では再現できない光の描写をします。暗いレンズです。コーティングもほぼありません。それでもアダプターでOM-3に付けると、デジタルでは設計できない個性を持つ画が出てきます。

ただし、メタデータの問題が生まれます。

OM-3のボディは、マウントの電気接点を通して現代の電子レンズと通信します。Panasonic Leica 15mm f/1.7を付ければ、カメラは絞り値、焦点距離、撮影距離を常に把握しています。EXIFデータは正確です。

アダプター経由でZuiko 28mmを付けると、その接点がありません。カメラは絞りリングを読めず、撮影者が実際に何を設定していても、レンズの開放値であるf/3.5を記録します。f/11で撮った写真もf/3.5、f/16で撮った写真もf/3.5。すべての画像に、同じ誤った値が付きます。

すべての写真に撮影データを添えて表示するポートフォリオにとって、これは小さな不便では済みません。誤ったデータを事実として示していることになるからです。

Night photograph of Tokyo architecture shot with the Zuiko 28mm, showing deep depth of field characteristic of a stopped-down aperture

アプローチ

レンズの分類

まず、すべてのレンズを同じに扱うのをやめました。システムが出会うすべてのレンズを分類するため、設定できるレンズレジストリを作りました。各プロファイルには、絞り値の電子通信に対応するか、電子フォーカスに対応するか、開放絞り値、そしてそのレンズが取りうる絞り値の候補を記録します。

写真がパイプラインに入ると、システムはEXIFからレンズ名を読み取り、レジストリと照合して、次のいずれかに分類します。電子接点付きまたはヴィンテージのマニュアル。電子接点付きのレンズは絞り値が信頼できるので、そのまま通過します。ヴィンテージのマニュアルレンズには推定対象の印を付けます。

レジストリは現在、MokuPhotoのポートフォリオで使っている全レンズを網羅しています。Panasonic Leica 15mm f/1.7、M.Zuiko 12-45mm f/4 PRO、そしてヴィンテージのZuiko単焦点二本(28mm f/3.5と50mm f/1.8)です。新しいレンズの追加はレジストリに1項目足すだけで、アルゴリズムの変更は不要です。

信頼性の評価

AI分析を走らせる前に、システムは記録された絞り値を信頼できるかどうかを評価します。これは単純な二択で決まりません。f/3.5と報告するヴィンテージレンズでも、文脈によって評価が変わります。

記録された値がレンズの開放絞り値と一致する場合は信頼できないとします。カメラは実際の設定ではなく、アダプター装着時の既定値を報告しているとほぼ断定できるからです。記録された値がそれ以外の場合は不明とします。珍しいことですが、必ずしも誤りとは限りません。絞り値の通信が確認できている電子接点付きレンズは信頼できるとし、推定を完全にスキップします。

この評価の層があることで、必要のない写真に高コストなAI分析を走らせずに済みます。現在のポートフォリオでは、およそ60%の画像が電子接点付きレンズで撮影されており、パイプラインを即座に抜けます。

AIによる画像分析

推定が必要な写真については、Claude Haikuのビジョン機能を使って二つの分析を並行して呼び出します。

シーン分析の呼び出しでは、被写界深度の特徴を画像から読み取ります。前景と背景はどれほどシャープか、シャープさは画面全体にどれほど均一に分布しているか、どんな種類のシーンか(建築、ストリート、風景、接写)、主な被写体はカメラからどれほど離れて見えるか。

深度分析の呼び出しでは、画像の深度の層を割り出します。近景、中景、背景にどんな物体があるか、全体の被写界深度は浅い、中程度、深い、非常に深いのどれに見えるか。

二つの呼び出しは同時に実行されます。両方の出力を合わせたものが、スコアリングモデルが候補の絞り値を順位付けするための生の信号になります。

Ginkaku-ji temple garden in Kyoto photographed with the Zuiko 28mm, showing extensive depth throughout the frame

スコアリングモデル

推定アルゴリズムは、重み付けした四つの信号で候補の絞り値を順位付けします。

シャープネスの一致(40%):観察された被写界深度のパターンは、その絞り値が生むはずのものと一致するか。開放側(f/3.5)なら背景がやわらかくぼけて被写体が浮き立つはずで、絞り込んだ側(f/11からf/16)なら手前から奥までシャープなはずです。アルゴリズムは、実際のシャープネスの測定値を各候補の期待パターンと比べます。

被写界深度の記述(30%):深度分析は、非常に浅い、浅い、中程度、深い、非常に深い、という定性的な評価を返します。各記述は絞り値の確率分布に対応し、「非常に深い」はf/11からf/16を強く支持し、「浅い」はf/3.5からf/5.6を支持します。

シーン種別の事前確率(15%):シーンの種類によって、絞りの慣習は異なります。建築や風景は絞り込む傾向があり、接写やポートレートは開放側を使う傾向があります。この事前確率はベイズ的な重みとして働き、そのシーンで写真的にありそうな値へと推定を傾けます。

被写体距離(15%):被写界深度は、絞り値、焦点距離、被写体距離で決まります。遠い被写体は開放側でも深い被写界深度になり、近い被写体は絞りの違いをはっきり見せます。距離の信号は、モデルが候補をどれほど自信を持って区別できるかを調整します。

各候補は0から1の生スコアを受け取ります。最上位の候補が50%を下回る場合、推定値は公開しません。当て推量ではなく、不確かさを認める設計です。

信頼度と透明性

すべての推定値には信頼性の分類が付きます。

高(80から100%):すべての信号が強く一致し、画像の特徴が一つの絞り値をはっきり指しています。

中(60から79%):ほどほどの一致。推定は妥当ですが、観察された特徴は複数の絞り値でも説明がつきます。

低(0から59%):一致が弱い。50%を超えていれば推定値を公開しますが、信頼度が低いことを閲覧者に伝えます。

この分類は写真ビューアーにそのまま表示されます。どの推定値も確定として提示しません。元の記録メタデータは決して上書きせず、両方の値が並び、閲覧者は自分が何を見ているのかを正確に理解できます。

Kotohira shrine entrance in Kagawa, showing architectural depth estimated at f/8 by the aperture analysis system

統合

パイプライン

推定器は、既存のMokuPhotoの生成・公開パイプラインに組み込まれています。npm run generateの実行中に、各写真はEXIFの抽出、レンズの分類、信頼性の評価、そして必要な場合はAIによる推定を通過します。結果は、タイトルや説明などAIが生成した他の内容とともに、写真ごとのメタデータJSONに保存されます。

公開済みの写真については、専用の--aperture-onlyフラグで、タイトルや説明を再処理せずに推定だけを実行します。これを使って、公開済みの6シリーズにまたがる96枚の写真に、他のメタデータに触れることなく後から絞り値を補完しました。

SeriesViewerコンポーネント

すべての写真シリーズページを描画するFramerのReactコンポーネントSeriesViewerを更新し、シリーズJSONから新しい絞り値補完フィールドを読み取るようにしました。

電子接点付きレンズで撮った写真では、撮影データのタブに絞り値を通常どおり表示します。値は一つで、補足は不要です。

ヴィンテージのマニュアルレンズで撮った写真に推定値がある場合、表示が変わります。

推定した絞り値を主値として表示し、[Estimated]のバッジを添えます。信頼性の分類と信頼度のパーセンテージをその横に示し、その下に1行で理由を説明します。ヴィンテージのマニュアルレンズを検出。実際の撮影絞り値は電子的に記録されていません。

この見せ方は、AIのデモではなく、AIでメタデータを補完した写真アーカイブとして感じられるように設計しました。主役は推定値です。説明はデータを圧倒せずに文脈を添えます。

技術的な構成

この機能は、MokuPhotoプロジェクト内のfeatures/aperture-estimation/に独立したモジュールとして作られており、独自のpackage.json、TypeScript設定、テストスイート(四つのテストファイルに36のユニットテスト)を持ちます。

モジュール構造は拡張を前提にしています。今後のメタデータ補完機能(フィルムシミュレーションの検出、レンズ特性のプロファイリング、画質分析)も同じ型に従います。レジストリ、評価、AI分析、信頼度のスコアリング、補完です。

モジュール

役割

lens-registry.ts

レンズプロファイル、分類(電子接点付きかヴィンテージのマニュアルか)、候補の絞り値セット

reliability.ts

絞り値の信頼性評価。推定が必要かどうかを判断

image-analysis.ts

Claude Haiku Visionによるシーンのシャープネスと分類

depth-analysis.ts

Claude Haiku Visionによる深度の層の割り出しと被写界深度の記述

estimator.ts

オーケストレーター。分析、スコアリング、候補の選定を調整

confidence.ts

信頼度のスコアリング、しきい値、公開可否の判定

validation.ts

ベンチマークの枠組み。正確度、適合率、混同行列、失敗分析

成果

AI絞り推定は、Mokujiroの写真ポートフォリオ全体で稼働しています。ヴィンテージレンズの写真を含むすべてのシリーズページに、信頼度と説明を添えた推定絞り値が表示されるようになりました。

公開済みの6シリーズで、システムは96枚の写真を処理しました。電子接点付きレンズの画像(Panasonic Leica 15mm、M.Zuiko 12-45mm PRO)は正しく「信頼できる」と判定され、推定なしで通過しました。ヴィンテージのZuiko 28mmの画像にはf/3.5からf/16のAI推定値が付き、大半はf/8からf/11の範囲に収まりました。このレンズを使った建築やストリートの撮影文脈と整合する結果です。

検証フレームワークは構築済みで、精度の調整に使える状態です。次の一歩は、統制されたテスト用データセットです。同じシーンを各絞り値で撮影し、正解を既知にしておくことで、スコアリングモデルの重みを較正し、信頼度を現在の「低」から「中」「高」へ引き上げるためのデータを得ます。

この機能は、MokuPhoto全体に通じる原則を示しています。カメラのメタデータは出発点にすぎず、完成した記録とは言えません。ハードウェアの制約でデータに穴が空くなら、ソフトウェアで埋められます。透明に、適切な信頼度で、根拠のない確実さを装わずに。

写真アーカイブを見る →

スタジオ内部ツールの詳しいご説明は、ご希望に応じて行います。

スタジオ内部ツールの詳しいご説明は、ご希望に応じて行います。