Ansel zawiera neuronowy odszumiacz raw (moduł rawdenoiseai), który różni się od uniwersalnych odszumiaczy AI: jest trenowany na niedemozaikowanych danych matrycy, tak blisko rzeczywistego odczytu matrycy, jak pozwala na to plik raw, i działa dokładnie w tym samym punkcie potoku (pipeline) — przed balansem bieli, korekcją aberracji chromatycznej i demozaikowaniem — więc każdy późniejszy etap dalej w potoku dziedziczy czyste dane. Jeden zestaw wag obejmuje każdy aparat, dla którego Ansel ma profil szumu, zarówno Bayer, jak i X-Trans.

To, co ogranicza jego jakość, to korpus treningowy: publiczny zbiór czystych kafelków raw w bazowym ISO, które trening syntetycznie zaszumia, obliczając szum dokładnie na podstawie zmierzonych przez Ansela profili szumu aparatów. Więcej scen, więcej tekstur i więcej modeli aparatów przekłada się bezpośrednio na lepszy odszumiacz dla wszystkich — i tu właśnie możesz pomóc, w około dziesięć minut, bez znajomości uczenia maszynowego czy gita.

Cały potok jest skryptowany; Twoja jedyna prawdziwa praca to wybór zdjęć. Techniczne szczegóły znajdziesz w repozytorium ansel-denoise  (kod treningowy, architektura sieci , dokumentacja projektowa ).

Co opuszcza Twoją maszynę — przeczytaj to najpierw

Twoje fotografie nie są przesyłane. Program zbierający dekoduje każdy wybrany plik raw lokalnie i wyodrębnia do 16 kafelków po 256×256 surowych pikseli matrycy (dane mozaiki, przed demozaikowaniem), spakowanych z danymi kalibracji matrycy (układ CFA, poziomy czerni/bieli — współczynniki balansu bieli są zapisane jako metadane, ale nigdy nie stosowane), modelem aparatu, ISO oraz samą nazwą pliku. Fragmenty nie zawierają współrzędnych GPS, znaczników czasu, numerów seryjnych, metadanych autora ani ścieżek plików z Twojej maszyny.

Licencja: zablokowana do trenowania odszumiacza

Zachowujesz prawa autorskie do swoich fotografii. Przekazane kafelki są publikowane na licencji Ansel Training Data License  (ATDL-1.1). Co ona pozwala: każdy może używać kafelków ze stosem treningowym ansel-denoise (GPL-3.0) do audytu, przeglądu, odtwarzania i porównawczego testowania odszumiacza Ansela — użycie naukowe i akademickie jest mile widziane — lub do trenowania własnych modeli odszumiania, których wagi należą do nich bez ograniczeń, w tym w innych aplikacjach open-source lub komercyjnych. Wyraźną granicą jest to, czego stos treningowy może się nauczyć: kafelki nigdy nie mogą zasilać stosu zdolnego nauczyć się czegokolwiek innego niż oddzielanie szumu od sygnału — uczenie „stylu" oraz generatywna AI są wyraźnie zabronione, podobnie jak redystrybucja zbioru danych oraz identyfikowanie przedstawionych osób lub miejsc. Możesz w każdej chwili zażądać usunięcia, otwierając zgłoszenie: Twoje fragmenty zostają usunięte z korpusu i wykluczone ze wszystkich przyszłych treningów.

Każdy wkład jest odnotowany w publicznym rejestrze  — kto, co, kiedy i skąd przekazał — dzięki czemu pochodzenie całego korpusu jest możliwe do zweryfikowania, na zawsze.

Co czyni dobry kandydat na obraz

Program zbierający chce czystego sygnału — szum jest dodawany syntetycznie później, więc nie może już go być w Twoich plikach.

Dobre:

  • Bazowe ISO (wymuszane jest ISO ≤ 200; ISO 64–100 jest jeszcze lepsze), poprawnie naświetlone lub lekko jasne — cienie niosą szum nawet w bazowym ISO, światła są czyste.
  • Ostre i teksturowane: listowie, tkanina, włosy, żwir, cegła, trawa — drobny detal to dokładnie to, co sieć musi się nauczyć zachowywać.
  • Zróżnicowana treść: pejzaże, architektura, martwa natura, makro…
  • Rzadkie aparaty: wszystko poza zwykłymi pełnoklatkowymi korpusami Canon/Nikon/Sony jest nieproporcjonalnie cenne — Fuji X-Trans, Olympus/OM, Pentax, kompakty, telefony fotografujące w DNG, stare korpusy CCD. Jeśli Twój sprzęt jest nietypowy, Twój wkład liczy się podwójnie.

Nieprzydatne (program zbierający sam odrzuca większość z tego): obrazy o wysokim ISO, niedoświetlone lub poruszone; nocne zdjęcia z długim czasem naświetlania (gorące piksele nie są „czyste"); serie zdjęć i niemal duplikaty — wybierz jeden; klatki płaskie (czyste niebo, ściany, rozmyte tła).

Polityka ilościowa: do ~1000 obrazów raw na osobę. Korpus potrzebuje zróżnicowania treści i aparatów, nie masy — tysiąc obrazów od jednego fotografa dzieli już jedno oko, jedną torbę ze sprzętem i jeden nawyk obróbki. Pięćdziesiąt zróżnicowanych, ostrych obrazów w bazowym ISO bije pięćset niemal duplikatów.

Jak przekazać wkład, krok po kroku

Wymagania: Linux, macOS lub Windows, Python ≥ 3.10, biblioteka Ansela, około dziesięć minut. Aparaty z matrycą monochromatyczną (Leica M Monochrom, Pentax Monochrome) nie nadają się — sieć potrzebuje kolorowej mozaiki. Każdy krok pokazuje najpierw polecenie dla Linux/macOS, a następnie dla Windows.

0. Zainstaluj narzędzia

a. Wariant Linux

Jeden skrypt, instaluje dwie zależności Pythona (numpy, rawpy) (uwaga: kopiuj i wykonuj po jednej linii naraz):

1git clone https://github.com/aurelienpierreeng/ansel-denoise.git
2cd ansel-denoise
3sh scripts/setup_contributor.sh

b. Wariant Windows

W systemie Windows, w PowerShell, z folderu, w którym chcesz umieścić narzędzia (np. cd $HOME\Documents) — git nie jest potrzebny, skrypt pobiera repozytorium jako ZIP za Ciebie (uwaga: kopiuj i wykonuj po jednej linii naraz):

1Invoke-WebRequest https://raw.githubusercontent.com/aurelienpierreeng/ansel-denoise/master/scripts/setup_contributor.ps1 -OutFile setup_contributor.ps1
2powershell -ExecutionPolicy Bypass -File setup_contributor.ps1
3cd ansel-denoise

1. Wyselekcjonuj w Anselu.

Na stole podświetlanym wybierz obrazy, z których jesteś gotów zrobić publiczne kafelki (filtruj po ISO, aby przyspieszyć, Ctrl+A aby zaznaczyć wszystko), następnie menu Plik ▸ Eksportuj listę obrazów…, wybierz Eksportuj ▸ Nazwy plików obrazów, a potem kliknij Zapisz jako plik… i zachowaj proponowaną nazwę ansel-image-files.txt.

2. Zbierz.

Kontroluje ISO, dekoduje każdy plik w procesie odizolowanym na wypadek awarii, zapisuje fragmenty. Twoja biblioteka Ansela jest używana tylko do odczytu, gdy jest obecna, ale nie jest wymagana — aparat i ISO są w przeciwnym razie odczytywane z samych plików. Nic nie jest jeszcze przesyłane.

a. Wariant Linux

1python3 -m ansel_denoise.harvest_library --paths-file ansel-image-files.txt --out shards/mine

b. Wariant Windows

W systemie Windows (py jest dostarczany z Pythonem; Twoja biblioteka Ansela jest znajdowana automatycznie w %LOCALAPPDATA%\ansel — najpierw zapisz wyeksportowany ansel-image-files.txt do folderu ansel-denoise albo podaj jego pełną ścieżkę):

1py -m ansel_denoise.harvest_library --paths-file ansel-image-files.txt --out shards\mine

3. Spakuj.

Waliduje każdy fragment, poprzedza je Twoim identyfikatorem, zapisuje manifest z sumami kontrolnymi i Twoim udzieleniem licencji, dołącza tekst licencji do danych, tworzy jedno archiwum tarball.

a. Wariant Linux

1python3 scripts/pack_contribution.py shards/mine --handle your-github-name
b. Wariant Windows
1py scripts\pack_contribution.py shards\mine --handle your-github-name

4. Prześlij

Prześlij wypisany plik .tar.gz na dowolny hosting plików, z którego opiekun może pobierać — Google Drive, Dropbox, WeTransfer, Proton Drive, Twój własny serwer — i skopiuj link do pobrania.

5. Prześlij i otwórz zgłoszenie

Umieść plik .tar.gz, który wypisał krok 4, na dowolnym hostingu plików dającym bezpośredni link do pobrania — Google Drive, Dropbox, WeTransfer, Proton Drive, Twój własny serwer — następnie otwórz zgłoszenie wkładu fragmentów  i wklej link. Formularz poprosi Cię również o potwierdzenie udzielenia licencji.

To całe zgłoszenie — bez gita, bez GitHub CLI, nic do zainstalowania poza tym, co przygotował krok 0, i tak samo na Linuksie, macOS i Windows. Opiekun pobiera Twoją paczkę, weryfikuje ją i scala z korpusem. Potem możesz usunąć shards/mine i paczkę.

Co dzieje się dalej

Opiekun przegląda Twój pull request, a następnie skrypt kolekcjonujący pobiera Twoją paczkę, weryfikuje każdą sumę kontrolną, ponownie waliduje każdy fragment (fragmenty są ładowane tak, aby paczka nie mogła wykonać kodu), scala nowe kafelki z korpusem i odnotowuje wkład w publicznym rejestrze. Twoje kafelki jadą z następnym treningiem — a Twój aparat zarabia swoje miejsce na liście zmian następnej wersji modelu.

Możesz też sam wytrenować model — na własnej maszynie lub darmowym poziomie GPU — za pomocą jednego notatnika , który działa lokalnie, w Google Colab i na Kaggle: to właśnie jest to „odtwarzanie procesu treningowego", które chroni licencja danych.


Translated from English by : Claude. In case of conflict, inconsistency or error, the English version shall prevail.