Jak wykryć słońce na zdjęciu

11

Jak algorytmicznie wykryłbyś dla każdego zdjęcia, czy słońce świeciło podczas robienia zdjęcia?

Przykłady

Próbka z tej kamery na szczycie góry:

przykład słońca

Wyraźnie świeci słońce.

W tej innej próbce jest to o wiele mniej oczywiste:

pochmurny przykład

Prawdopodobnie można dość łatwo wykryć, czy jest mglisty, próbując zidentyfikować maleńką wieżę kościoła na kaplicy pośrodku. Jednak wiedząc bardzo niewiele o przetwarzaniu obrazu, byłbym zaskoczony, gdyby istniał (kombinacja) algorytm, który mógłby wiarygodnie stwierdzić, czy jest słońce, czy nie.

Marcel Stör
źródło
1
Myślę, że bardzo dobrze pasuje do CS.SE. Nie pasowałoby, gdybyś zapytał o skrypt imagemagick, który sortuje zdjęcia w zależności od nasłonecznienia.
frafl
1
Czy masz na myśli wykrycie, czy słońce świeciło w tym czasie, czy nie, czy wykrycie, gdzie (orientacja) świeciło słońce?
Paresh
@Paresh, czy w momencie robienia zdjęcia świeciło słońce (pomyśl o kamerze internetowej).
Marcel Stör
1
Istnieje piękna anegdota o szaleństwach sieci neuronowej : Pentagon próbował wykryć czołgi wroga na zdjęciach z siecią neuronową. Ale w końcu mieli wielomilionowy komputer mainframe, który potrafił odróżnić zdjęcia robione w pochmurny dzień od zdjęć wykonanych w słoneczny dzień. :-)
uli
Czy możemy założyć skalibrowaną kamerę, tzn. Czy możemy ufać kolorom?
Raphael

Odpowiedzi:

9

Jeśli masz dostęp do metadanych, możesz zastosować szereg heurystyk:

  1. Sprawdź ustawienie balansu bieli , aparat wybrał zdjęcie. Zasadniczo wskazuje temperaturę barwową światła w momencie robienia zdjęcia. Zwykle nasłonecznienie wynosi około 5500 kelwinów. Oświetlenie wewnętrzne lub pochmurne dni zwykle mają różne temperatury.

  2. Sprawdź ustawienia ekspozycji . Zwykle, gdy świeci słońce, dostępnych jest więcej światła, więc wpływa to na następujące ustawienia:

    1. Krótszy czas otwarcia migawki
    2. Niższe ustawienie ISO
    3. Wyższa wartość F.

    W dawnych czasach fotografowania do oszacowania ekspozycji stosowano zasadę Sunny 16 . I możesz go użyć wraz z informacjami z powyższej listy, aby sprawdzić, czy zdjęcie zostało zrobione w ciągu dnia.

  3. Sprawdź, czy lampa błyskowa nie zadziałała.

  4. Sprawdź czas zrobienia zdjęcia . Zakładając, że użytkownik skonfigurował zegar, możesz natychmiast usunąć zdjęcia wykonane w nocy.

Jeśli jednak chcesz podejść do tego problemu po prostu z punktu widzenia przetwarzania obrazu. Mogę powiedzieć, że światło słoneczne ma zwykle wyższy kontrast i ostrzejsze krawędzie. Dlatego analiza histogramu i znajdowanie ostrych krawędzi może być dobrym wskazaniem.

Zakładając, że przetwarzane zdjęcia są w formacie RAW, możesz zastosować tę samą sztuczkę balansu bieli opisaną powyżej. Nie działa to jednak w przypadku standardowych obrazów, takich jak JPEG lub PNG. Dzieje się tak, ponieważ procesor obrazu w aparacie kompensuje już przesunięcie temperatury barwowej i wypieka wynik na ostateczny obraz, rejestrując jedynie ustawienie WB w metadanych.

decden
źródło
Tarzałam się po podłodze, kiedy przeczytałam „Sprawdź czas zrobienia zdjęcia”. Nie jestem jednak pewien, czy OP chce zrekonstruować to, co zrobiła kamera.
frafl
@frafl, dodałem dwa przykłady
Marcel Stör
@frafl Heurystyka to dowolne podejście do rozwiązywania problemów, uczenia się lub odkrywania, które wykorzystuje praktyczną metodę, która nie jest gwarantowana jako optymalna lub idealna, ale wystarczająca do osiągnięcia bezpośrednich celów. Sprawdzanie czasu zrobienia zdjęcia (jeśli lokalizacja jest nawet częściowo znana) byłoby całkowicie akceptowalną heurystyką.
Andy Gee,