写真の日差しを検出する方法


11

特定の写真について、写真を撮ったときに太陽が輝いていたかどうかをアルゴリズムでどのように検出しますか?

山頂にあるこのウェブカメラのサンプル:

日照の例

明らかに太陽が輝いています。

この他のサンプルでは、​​それほど明白ではありません。

曇った例

中央の礼拝堂にある小さな教会の尖塔を特定しようとすることで、霧がかかっているかどうかはかなり簡単に検出できるでしょう。しかし、画像処理についてほとんど何も知らないので、日光があるかどうかを確実に判断できるアルゴリズム(の組み合わせ)があったとしても驚きます。


1
CS.SEにとてもよく合うと思います。太陽の光に応じて写真を分類するimagemagickスクリプトについて質問した場合、それは適合しません。
frafl 2013

1
太陽がその時に輝いていたかどうかを検出することを意味しますか、それとも太陽が輝いていた場所(向き)を検出することを意味しますか?
Paresh 2013

@Paresh、写真が撮られたときに太陽が輝いていたかどうか(ウェブカメラを考えてください)。
MarcelStör2013

1
ニューラルネットワークの愚かさには、この素敵な逸話があります。国防総省は、ニューラルネットワークを使って写真から敵の戦車を検出しようとしました。しかし、最終的には曇りの日に撮った写真と晴れた日に撮った写真を区別できる数百万ドルのメインフレームコンピューターがありました。:-)
uli

キャリブレーションされたカメラを想定できますか?つまり、色を信頼できますか?
ラファエル

回答:


9

メタデータにアクセスできる場合、いくつかのヒューリスティックを適用できます。

  1. ホワイトバランスの設定を確認してください。写真用にカメラが選択しています。基本的には、写真が撮られたときの光の色温度を示します。通常、日光は約5500ケルビンです。室内の照明や曇りの日は、通常、温度が異なります。

  2. 露出設定を確認します。通常、太陽が輝くと、より多くの光が利用できるため、これは次の設定に影響します。

    1. シャッター速度が遅い
    2. より低いISO設定
    3. より高いf値

    昔の写真では、Sunny 16ルールを使用して露出を推定していました。また、上記のリストの情報と一緒に使用して、日中に写真が撮られたかどうかを確認できます。

  3. フラッシュが発光したかどうかを確認します。

  4. 写真が撮られた時間を確認してください。ユーザーが時計を設定したと仮定すると、夜間に撮影した写真をすぐに削除できます。

ただし、単に画像処理の観点からこの問題に取り組みたい場合。日光は通常、コントラスト高く、エッジが粗いと言えます。したがって、ヒストグラム分析粗いエッジの検出が適切な指標となる場合があります。

処理中の写真がRaw画像形式であると想定すると、上記と同じホワイトバランストリックを適用できます。ただし、これはjpegやpng などの標準画像では機能しません。これは、カメラの画像プロセッサがすでに色温度の変化を補正し、結果を最終画像に焼き付けて、メタデータにwb設定を記録するだけだからです。


「写真が撮られた時間を確認する」を読んだとき、床を転がっていた。ただし、OPがカメラが行った処理を再構築する必要があるかどうかはわかりません。
frafl 2013

@frafl、私は2つの例を添加
マルセルSTORを

@fraflヒューリスティックは、最適または完全であることが保証されていないが当面の目標には十分である実用的な方法を採用する、問題解決、学習、または発見へのアプローチです。写真が撮影された時間をチェックすること(場所が部分的にさえわかっている場合)は、完全に許容できるヒューリスティックです。
Andy Gee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.