Ansel wordt geleverd met een neurale raw-ruisonderdrukker (de rawdenoiseai-module) die anders is dan ruisonderdrukkers voor algemeen gebruik: hij is getraind op niet-gedemozaïceerde sensordata, zo dicht mogelijk bij de daadwerkelijke sensoruitlezing als een raw-bestand toelaat, en hij draait op exact hetzelfde punt in de pipeline — vóór witbalans, correctie van chromatische aberratie en demozaïceren — zodat elke verderop gelegen fase schone data erft. Eén set gewichten dekt elke camera waarvoor Ansel een ruisprofiel heeft, zowel Bayer als X-Trans.

Wat de kwaliteit beperkt, is het trainingscorpus: een openbare verzameling schone raw-tegels op basis-ISO die de training synthetisch corrumpeert met ruis, exact berekend uit Ansels gemeten ruisprofielen per camera. Meer scènes, meer texturen en meer cameramodellen vertalen zich rechtstreeks naar een betere ruisonderdrukker voor iedereen — en hier kun jij helpen, in ongeveer tien minuten, zonder ook maar iets van machine learning of git te weten.

De hele pipeline is gescript; jouw enige echte werk is het kiezen van de afbeeldingen. Technische verdiepingen staan in de ansel-denoise-repository  (trainingscode, netwerkarchitectuur , ontwerpdocumentatie ).

Wat je machine verlaat — lees dit eerst

Je foto’s worden niet geüpload. Een harvester decodeert elk geselecteerd raw-bestand lokaal en haalt tot 16 tegels van 256×256 raw-sensorpixels eruit (mozaïekdata, vóór demozaïceren), samengepakt met de sensorkalibratiedata (CFA-indeling, zwart-/witniveaus — witbalanscoëfficiënten worden opgeslagen als metadata maar nooit toegepast), het cameramodel, de ISO, en de kale bestandsnaam. Fragmenten bevatten geen GPS-coördinaten, geen tijdstempels, geen serienummers, geen auteursmetadata, en geen bestandspaden van je machine.

Licentie: vastgezet op training van de ruisonderdrukker

Je behoudt het auteursrecht op je foto’s. Bijgedragen tegels worden gepubliceerd onder de Ansel Training Data License  (ATDL-1.1). Wat die toestaat: iedereen mag de tegels gebruiken met de ansel-denoise-trainingsstack (GPL-3.0) om de Ansel-ruisonderdrukker te auditen, beoordelen, reproduceren en benchmarken — wetenschappelijk en academisch gebruik is welkom — of om eigen ruisonderdrukkingsmodellen te trainen, waarvan de gewichten van hen zijn zonder beperking, ook in andere opensource- of commerciële toepassingen. De harde grens is wat de trainingsstack kan leren: de tegels mogen nooit een stack voeden die iets anders kan leren dan het scheiden van ruis en signaal — het leren van “stijl” en generatieve AI zijn uitdrukkelijk verboden, evenals herdistributie van de dataset en het identificeren van afgebeelde mensen of plaatsen. Je kunt op elk moment om verwijdering vragen door een issue te openen: je fragmenten worden uit het corpus verwijderd en van alle toekomstige trainingen uitgesloten.

Elke bijdrage wordt vastgelegd in een openbaar register  — wie wat heeft bijgedragen, wanneer, van waar — zodat de herkomst van het hele corpus voor altijd controleerbaar is.

Wat een goede kandidaat-afbeelding maakt

De harvester wil schoon signaal — de ruis wordt later synthetisch toegevoegd, dus die mag nog niet in je bestanden zitten.

Goed:

  • Basis-ISO (ISO ≤ 200 wordt afgedwongen; ISO 64–100 is nog beter), correct belicht of iets aan de lichte kant — schaduwen bevatten ruis, zelfs op basis-ISO, hooglichten zijn schoon.
  • Scherp en getextureerd: gebladerte, stof, haar, grind, baksteen, gras — fijne details zijn precies wat het netwerk moet leren behouden.
  • Diverse inhoud: landschappen, architectuur, stilleven, macro…
  • Zeldzame camera’s: alles buiten de gebruikelijke fullframe-body’s van Canon/Nikon/Sony is onevenredig waardevol — Fuji X-Trans, Olympus/OM, Pentax, compactcamera’s, telefoons die DNG schieten, oude CCD-body’s. Als je uitrusting ongewoon is, telt jouw bijdrage dubbel.

Niet nuttig (de harvester wijst de meeste hiervan zelf af): hoge-ISO-, onderbelichte of bewogen afbeeldingen; nachtopnames met lange sluitertijd (hete pixels zijn niet “schoon”); bursts en bijna-duplicaten — kies er één; vlakke frames (heldere luchten, muren, onscherpe achtergronden).

Volumebeleid: tot ~1000 raw-afbeeldingen per persoon. Het corpus heeft inhoudelijke en cameravariabiliteit nodig, geen bulk — duizend afbeeldingen van één fotograaf delen al één oog, één camerazak en één verwerkingsgewoonte. Vijftig gevarieerde, scherpe afbeeldingen op basis-ISO verslaan vijfhonderd bijna-duplicaten.

Hoe bij te dragen, stap voor stap

Vereisten: Linux, macOS of Windows, Python ≥ 3.10, een Ansel-bibliotheek, ongeveer tien minuten. Camera’s met monochroomsensor (Leica M Monochrom, Pentax Monochrome) zijn niet bruikbaar — het netwerk heeft een kleurenmozaïek nodig. Elke stap toont eerst de Linux/macOS-opdracht, daarna de Windows-opdracht.

0. Installeer de gereedschappen

a. Linux-variant

Eén script, installeert de twee Python- afhankelijkheden (numpy, rawpy) (let op: kopieer en voer één regel tegelijk uit):

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

b. Windows-variant

Op Windows, in PowerShell, vanuit de map waar je de gereedschappen wilt (bijv. cd $HOME\Documents) — geen git nodig, het script downloadt de repository voor je als een ZIP (let op: kopieer en voer één regel tegelijk uit):

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. Cureer in Ansel.

Selecteer in de lichttafel de afbeeldingen waarvan je bereid bent openbare tegels te maken (filter op ISO om snel te zijn, Ctrl+A om alles te selecteren), dan menu Bestand ▸ Afbeeldingslijst exporteren…, selecteer Exporteren ▸ Bestandsnamen van afbeeldingen, klik dan op Opslaan als bestand… en behoud de voorgestelde naam ansel-image-files.txt.

2. Oogst.

Filtert op ISO, decodeert elk bestand in een crash-geïsoleerd proces, schrijft de fragmenten. Je Ansel-bibliotheek wordt alleen-lezen gebruikt indien aanwezig, maar is niet vereist — camera en ISO worden anders uit de bestanden zelf gelezen. Er wordt nog niets geüpload.

a. Linux-variant

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

b. Windows-variant

Op Windows (py komt met Python; je Ansel-bibliotheek wordt automatisch gevonden onder %LOCALAPPDATA%\ansel — sla de geëxporteerde ansel-image-files.txt eerst op in de ansel-denoise-map, of geef het volledige pad op):

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

3. Pak in.

Valideert elk fragment, voorziet ze van je handle als voorvoegsel, schrijft een manifest met checksums en je licentietoekenning, bundelt de licentietekst met de data, produceert één tarball.

a. Linux-variant

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

4. Uploaden

Upload de afgedrukte .tar.gz naar een willekeurige bestandshost waar de beheerder vanaf kan downloaden — Google Drive, Dropbox, WeTransfer, Proton Drive, je eigen server — en kopieer de downloadlink.

5. Upload en open een issue

Plaats de .tar.gz die stap 4 heeft afgedrukt op een willekeurige bestandshost die een directe downloadlink geeft — Google Drive, Dropbox, WeTransfer, Proton Drive, je eigen server — open dan een Shard contribution issue  en plak de link. Het formulier vraagt je ook om de licentietoekenning te bevestigen.

Dat is de hele inzending — geen git, geen GitHub CLI, niets te installeren buiten wat stap 0 heeft opgezet, en hetzelfde op Linux, macOS en Windows. De beheerder downloadt je bundel, verifieert die en voegt die samen in het corpus. Je kunt shards/mine en de bundel daarna verwijderen.

Wat er daarna gebeurt

De beheerder beoordeelt je pull request, dan downloadt een verzamelscript je bundel, verifieert elke checksum, hervalideert elk fragment (fragmenten worden zo geladen dat een bundel geen code kan uitvoeren), voegt de nieuwe tegels samen in het corpus, en legt de bijdrage vast in het openbare register. Je tegels rijden mee met de volgende training — en je camera verdient zijn plaats in het wijzigingslogboek van de volgende modelversie.

Je kunt het model ook zelf trainen — op je eigen machine of een gratis GPU- tier — met een enkele notebook  die lokaal draait, op Google Colab en op Kaggle: dat is precies het “reproduceren van de trainingsworkflow” dat de datalicentie beschermt.


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