Ruis in de CMOS cameras, metingen en berekeningen

Activity Forums Astrotechniek Methoden en Technieken Ruis in de CMOS cameras, metingen en berekeningen

Viewing 15 posts - 1 through 15 (of 31 total)
  • Author
    Posts
  • #21096
    InFINNityDeck
    Participant

    Dit topic is afgesplitst van topic M101 Luminance (https://www.starry-night.nl/forums/topic/m101-luminance/), naar aanleiding van het gebruik van een master-dark van 500 subs van 120 seconden elk.

    https://www.dehilster.info/astronomy

    In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.

    #21015
    InFINNityDeck
    Participant

    Dank voor jullie reacties (en de complimenten!), daar kan ik weer van leren! Voor wat de aantallen darks betreft ben ik uitgegaan van de “rule of five”, welke langs statistische weg te berekenen is (in feite is het circa 4.76). John Hayes legt dit keurig uit in zijn on-line ‘college’: https://www.youtube.com/watch?v=T_k9B01AeFM

    Het komt er op neer dat je circa 5 keer zoveel darks moet hebben dan dat je lights geschoten hebt om de input van ruis onder de 10% te houden. Overigens houdt Mabula ook deze regel aan (daar heb ik het recentelijk met hem over gehad). Aangezien ik op circa 100 frames per filter zit, heb ik dus besloten 500 darks te maken (van 2 minuten ieder, dus nogmaals ruim 16 uur data). Het aardige is dat Hayes in een iets recentere thread op CN hierop terug komt: https://www.cloudynights.com/topic/534493-the-statistics-of-image-calibration/

    In de eerste serie posts wordt nog van de rule of five uitgegaan, zie voor de duidelijkheid de slides op post #9 op die CN-thread. Door de discussie verandert het inzicht gaandeweg (zo rond post #30) en in post #45 is men het eens dat 32 darks ook genoeg moet zijn. Het zou mooi zijn als Mabula deze thread zou willen analyseren en hier becommentarieren! Ben benieuwd of Hayes e.a. wellicht een redeneerfout gemaakt hebben. Het zou natuurlijk mooi zijn als 32 subs net zo goed is, scheelt een paar minuten wachten… ;-)

    Voor wat de S/N verhouding betreft, deze luistert naar de formule d(S/N) = wortel(N)-wortel(N-1), waarbij d(S/N) voor het verschil in signaal tot ruis verhouding staat en N voor het aantal subs. Als je deze grafiek plot (zie slide #29 uit de video), dan zie je dat het steeds lastiger wordt de ruis omlaag te brengen en dat na 100 subs het erg lastig wordt de ruis te verminderen. Uiteraard krijg je wel steeds meer licht, dat klopt. Het probleem is, denk ik, dat in mijn omgeving (Castricum) lichtvervuiling dan ook een rol gaat spelen…

    Wat de clipping betreft: ik geloof graag dat mijn plaat zwaar geclipped is. Ik had de eerste circa 10 uur niet gedithered en dat was in de achtergrond duidelijk te zien. Om er nog een beetje mooie plaat van te maken (het oog wil ook wat ;-)), heb ik circa 6 uur data bijgeschoten met dithering, nabewerkt in PSP en vervolgens moest ik de plaat verkleinen tot 70% om hem hier te kunnen plaatsen (het is dus geen crop, maar het origineel is 32Mb). De nog aanwezige ruis wordt dan geblurred waardoor de achtergrond mij te grijs werd en heb ik nogmaals 10% contrast toegevoegd. Alles bij elkaar zal de plaat dus inderdaad flink geclipped zijn. Momenteel ben ik niet thuis, kan vanavond wel de originele plaat uit APP plaatsen.

    Nicolàs

    https://www.dehilster.info/astronomy

    In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.

    #21017
    han.k
    Participant

    Deze redenatie 5x zoveel darks gaat alleen op als de hemel 100% zwart was. In de praktijk is dat niet zo en komt de meeste ruis van “skyglow” zelfs bij een SQM waarde van 21. De ruis van de sensor valt daarbij in het niet. Dus tussen 1x of 5 keer zoveel darks verkrijg je slechts een zeer kleine verbetering die onmeetbaar wordt bij 5x darks.

    Craig Stark heeft voor de signaal ruis berekening een mooie spreadsheet gemaakt.

    Daarnaast kan een stack programma de darks met een Gaussian blur behandelen. De belangrijkste taak van de dark is het signaal niveau te nivelleren voor de flat behandeling (delen door de flat-bias). Dit bereik je ook met weinig darks en een Gaussian blur. Alleen hot pixels worden dan niet gecompenseerd maar een stack programma kan dat ook op een slimme manier oplossen.

    De link in Cloudynights heb ik even doorgebladerd maar is wel heel langdradig.

    Han

    Aanvulling:
    Bijgevoegd vind je twee Excel spreadsheets, de SNR calculator van Craig Stark en mijn variatie. In mijn variatie wordt het ruis niveau berekent voor een ASI1600 zonder dark of flat behandeling. Je ziet dat de camera ruis klein is tenopzichte van de “sky glow”.

    Attachments:
    You must be logged in to view attached files.
    #21021
    InFINNityDeck
    Participant

    Eerst nog wat openstaande vragen:


    @Vincent
    : mijn montering is een 10Micron GM3000

    @Kees: ja, ik heb ook een bad pixel map gemaakt. Door de integraties van Oiii en Sii van Ha af te trekken kunnen we zien wat er aan extra signaal in die bandbreedte zit (ik heb ze uiteraard even lekker gestretcht):

    Han, ik ga jouw link en bijlagen eerst even doornemen, kom later terug op jouw post.

    Nicolàs

    PS: de linker afbeelding (die waar het centrum van M101 donker is) is het verschil tussen Ha en Oiii, de rechter afbeelding dus het verschil tussen Ha en Sii.

    PPS: even voor de zekerheid: hoe witter de pixel, hoe meer verschil tussen de twee integraties

    https://www.dehilster.info/astronomy

    In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.

    #21023
    han.k
    Participant

    Nicolàs,

    Het skyglow ruisgetal in mijn spreadsheet is een schatting zonder filter. Met smallband filters wordt skyglow ruis een heel stuk minder en de sensor ruis een stuk belangrijker en dus ook het aantal darks. Nietemin kan je met een blur de dark ruis ook wegkrijgen met als nadeel dat de hotpixels niet meer automatisch gecompenseerd worden:

    resultaat:=∑lights  –  ∑darks.

    #21025
    InFINNityDeck
    Participant

    Han,

    ik ben nog steeds aan het lezen en puzzelen. Wel heb ik inmiddels wat interessante zaken om te bestuderen.

    Ten eerste de fits-metadata. Voorheen gebruikte ik een MD van 25 frames en nu dus een van 500 frames. Van beide heb ik het relevante deel uit de metadata gehaald:

    De 25 frames MD:
    HDU1 – MEAN = ‘ 1,20E-02’ / mean of channel
    HDU1 – MED = ‘ 1,19E-02’ / median of channel
    HDU1 – SIGMA = ‘ 4,40E-04’ / standard deviation of channel
    HDU1 – NOISE = ‘ 1,41E-04’ / MRS gaussian noise estimate of channel
    HDU1 – NUMFRAME= 25 / # number of frames used in MasterDark creation

    De 500 frames MD:
    HDU1 – MEAN = ‘ 1,1960E-02’ / mean of channel
    HDU1 – MED = ‘ 1,1919E-02’ / median of channel
    HDU1 – SIGMA = ‘ 5,1710E-04’ / standard deviation of channel
    HDU1 – NOISE = ‘ 1,0734E-04’ / MRS gaussian noise estimate of channel
    HDU1 – NUMFRAME= 500 / # number of frames used in MasterDark creation

    Van Mabula heb ik begrepen dat de ruis (NOISE) met de wortel van het aantal frames zou moeten dalen, in dit geval dus wortel(500/25)=4.47. We zien echter een verbetering van 1.41/1.07=1.32, dus significant minder dan verwacht. De reden hiervoor zou het niet-lineair zijn van pixels op de chip.

    De mediaan is gelijk gebleven, maar de standaardafwijking (sigma) is omhoog gegaan. Dat laatste is ook zichtbaar. Ik heb van beide MD’s een crop gemaakt en die een factor 10 opgeblazen (iedere herkenbare pixel is nu dus 10×10 pixels). De twee crops heb ik tot een animated gif samengebracht.

    Het verschil is duidelijk te zien: de 500 frames MD heeft meer contrast dan de 25 frames MD, de lichte pixels zijn duidelijk witter, maar of dit ook significante verschillen in de processing zal veroorzaken, kan ik nu nog niet zeggen.

    Nicolàs

    https://www.dehilster.info/astronomy

    In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.

    #21027
    han.k
    Participant

    Dat de ruis met het kwadraat van het aantal frames afneemt klopt. Het is uitermate vreemd dat dit niet bij jouw darks gebeurt.  Er gaat waarschijnlijk iets mis met het samenvoegen van de frames.  Worden de dark als median of average gestapeld? Ik ken het APP programma nauwelijks, maar je zou als experiment het eens kunnen nameten met het ASTAP programma en ook in ASTAP de darks kunnen combineren tot een masterdark. (ASTAP is door mij geprogrammeerd.)

    In ASTAP kan je de lokale noise=sigma op de plaats van de muis cursor meten. Zie bijgevoegde screenshot. Wel rekent ASTAP met een range van 0 .. 65535 terwijl APP  een range van 0 .. 1 aanhoud, dus de gemeten sigma waarde moet je door 65535 delen.

    Je mag ook de 500 of minder darks ergens uploaden, het wordt dan wel gbytes, dan wil ik er ook eens naar kijken.

    De unit ‘ NOISE = ‘ 1,41E-04’ / MRS gaussian noise estimate of channel’ ken ik niet. De noise wordt normaal RMS, the square root of the mean square bepaald.

    Han

    #21028
    InFINNityDeck
    Participant

    Hoi Han,

    in APP raadt Mabula aan dat bij meer dan 20 frames met average gewerkt moet worden. Ik heb de masters gemaakt met average, MAD Winsor Clip en een kappa van 3 met 1 iteratie.

    Ik wil nog graag even terug komen op jouw opmerking “Deze redenatie 5x zoveel darks gaat alleen op als de hemel 100% zwart was.” Zover ik begrijp komt de Rule of Five uit de statistiek voort, waarbij alleen gekeken wordt naar de bijdrage van de ruis van een MD aan de light en dat deze ruis-bijdrage beneden de 10% gehouden moet worden. Het gaat daarbij dus niet om hoe de light er uit ziet, maar slechts om de hoeveelheid ruis die uiteindelijk in de MD zit en dit in verhouding tot de ruis van een enkele light. Nu is de ruis in een enkele dark en enkele light in principe hetzelfde, maar de light heeft daarnaast nog last van shot-noise door skyglow waardoor de S/N ratio omlaag gaat en er ruis bijkomt (hadden we daar geen last van gehad, dan hadden we overdag deepsky kunnen fotograferen ;-)). Willen we alleen kijken naar de bijdrage van ruis (en dat was mijn initiële vraag), dan kunnen we het beste kijken naar de ruis van een enkele dark, aangezien daar geen skyglow in zit. Nu hebben we minimaal twee darks nodig om dit te berekenen, hierbij het resultaat uit de metadata:

    HDU1 – MEAN = ‘ 1,1995E-02’ / mean of channel
    HDU1 – MED = ‘ 1,1963E-02’ / median of channel
    HDU1 – SIGMA = ‘ 6,7309E-04’ / standard deviation of channel
    HDU1 – NOISE = ‘ 3,3493E-04’ / MRS gaussian noise estimate of channel
    HDU1 – NUMFRAME= 2 / # number of frames used in MasterDark creation

    De enkele dark zou dus een ruis hebben van circa 3.35*wortel(2) = 4.72 (ik laat voor het gemak de exponentiële notatie even weg). De verhouding van de ruis tussen de 2-frame MD en 500-frame MD is hier dan 4.72/1.07= 4.41 en de bijdrage van ruis dus circa 5% (= 1.07^2/4.72^2*100).

    Voor de 25 frame MD zou dit op een bijdrage komen van 1.41^2/4.72^2*100 = 9%.

    Als ik het dus goed begrijp dan is de bijdrage aan ruis van de 25-frame MD al minder dan de 10% die volgens Hayes wenselijk is, de 500-frame MD voegt dus feitelijk weinig toe aan het eindresultaat, tenminste wat ruis betreft. Hayes e.a. hadden dus gelijk in hun thread op CN (zie post https://www.starry-night.nl/forums/topic/m101-luminance/#post-21015) en een MD van meer dan 32 frames voegt wat ruisreductie betreft weinig toe (nu moeten we dus alleen nog kijken naar het contrast tussen de hot en cold pixels bij grotere stacks).

    Een andere interessante opmerking van Hayes is, dat als je dithering gebruikt je feitelijk geen darks hoeft te nemen en je vervolgens ook geen ruis-bijdrage van de darks hebt (zie zijn post #11 op CN). Hij schreef daarover: “I never subtract dark noise. I simply dither and use averaging to remove fixed pattern noise. That technique has it’s own (mostly minor) issues but it completely eliminates this problem.” Ook ene Frank, die over het algemeen graag oneens is met Hayes, bevestigt dit (zie post #28 in die thread): “And if you dither – which everyone should – then the pattern noise may go away completely without any darks at all.”

    Nu heb ik hier zowel geditherde als ongeditherde data liggen, ik zal proberen deze de komende dagen apart te stacken, kijken wat hier uit komt. Probleem is even om hier tijd voor te vinden, de komende week is het bij ons erg druk met werk, dus het kan even duren.

    Overigens wat de pattern noise betreft: mijn GM3000 mount volgt met een standaarddeviate van circa 0.1 boogseconden in zowel RA als DEC (dit is gemeten over 60 seconden in tijd). De resolutie van de Esprit in combinatie met de ZWO ASI 1600MM is circa driekwart boogseconden. De hemel wordt dus tijdens het tracken dus ruim binnen de pixelgrootte op de chip geprojecteerd. Het probleem daarvan is, dat als ik niet dither, er vrijwel geen onderscheid mogelijk is tussen pattern noise en DSO-signal en dat de pattern noise bij het stacken wordt meegenomen als de darks niet goed zijn en dat is wat ik in mijn eerdere opnamen zag (of meende te zien).

    Nicolàs

    https://www.dehilster.info/astronomy

    In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.

    #21029
    han.k
    Participant

    De ruisgetallen t.o.v. het aantal frames kloppen totaal niet. Ergens gaat het mis. Post eens een aantal darks (10 of 20 stuks) plus de 25 en 500 frame master ergens op het internet, dan kan ik het eens meten.

    >>masters gemaakt met average, MAD Winsor Clip en een kappa van 3 met 1 iteratie.

    Hopelijk gaat dir process goed. Normaal is dit een vrij eenvoudig process. ?

    >>Nu is de ruis in een enkele dark en enkele light in principe hetzelfde, maar de light heeft daarnaast >>nog last van shot-noise door skyglow waardoor de S/N ratio omlaag gaat en er ruis bijkomt

    De voornaamste ruis komt van skyglow. Die overheerst voor een gekoelde camera de sensor ruis. De dark and light sensor noise is dan minder belangrijk. De shot-noise is iets anders, Craig Stark rekent daar niet mee voor zover ik me herinner.

    >>Een andere interessante opmerking van Hayes is, dat als je dithering gebruikt je feitelijk geen darks

    >>hoeft te nemen en je vervolgens ook geen ruis-bijdrage van de darks hebt (zie zijn post #11 op CN).

    Dit is onzin. Dithering doe je voor ongelijke lichtgevoeligheid van de pixels, darks voor ongelijke pixelwaarden (ruststromen) onbelicht  en voor het scheiden van het signaal van de ruststromen voor het correct toepassen van de flat.

    Pattern noise, voor de ASI1600 en elke ander CMOS sensor is dithering voor zwakke DSO objecten essentieel. De pixels zijn veel ongelijker in zowel russtromen als lichtgevoeligheid dan een klassieke CCD sensor als in mijn QHY8.

    Han

    #21030
    InFINNityDeck
    Participant

    Hoi Han,

    Bij deze:

    20 darks: [EDIT]link na download verwijderd[/EDIT]

    25-sub MD: [EDIT]link na download verwijderd[/EDIT]

    500-sub MD: [EDIT]link na download verwijderd[/EDIT]

    Laat even weten als je ze hebt gedownload, want dan haal ik ze weer van mijn server.

    Nicolàs

    PS: Ik zie nu dat ik die fits had moeten zippen, dus even rechtermuistoets klikken en “doel opslaan als” kiezen…

    https://www.dehilster.info/astronomy

    In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.

    #21033
    han.k
    Participant

    Nicolàs, ik heb ze nu gedownload.
    Han

    #21035
    han.k
    Participant

    Het is me nu duidelijk wat er gebeurd. De dark master noise neemt af maar de ongelijkheid in donkerstroom (bergen en dalen) niet. De hotpixels tellen dus ook me en verdwijnen niet bij stacken. Pas als je twee dark masters van mekaar aftrekt krijg je de zuivere ruis. Dus de ruis van de MD25 is de ruis van MD500-M25, bij mij 6. Een enkele opname heeft een ruis van circa 35. De MD25 ruis is dan circa 35/sqrt(25)=7

    Onder de gemeten ruis getallen:

    #21042
    han.k
    Participant

    Nicolàs,

    Waar we tegenaan lopen is is “DSNU (dark signal non-uniformity), which is the offset from the average across the imaging array” Zie Wikipedia https://en.wikipedia.org/wiki/Fixed-pattern_noise

    E.a wordt b.v. hier besproken. Volgens mij kunnen we nu beter een nieuwe topic over ruis berekeningen/metingen starten.

    Han

    #21044
    InFINNityDeck
    Participant

    Han,

    dat lijkt me een goed idee. [EDIT]Bij deze geregeld!Wellicht dat Theunissen (of een andere moderator) onze hele conversatie daarheen kan brengen? Mijn voorstel is om als topic te gebruiken: De invloed van stack-grootte op de kwaliteit van masterdarks.[/EDIT]

    Ondertussen zou ik graag wat extra uitleg willen hebben over jouw vorige post. Begrijp ik het goed dat de linker twee kolommen de waarden geven, zoals jij ze meet en dat de rechter twee kolommen in de tabel in dezelfde waarden zijn, maar dan op de schaal zoals APP ze produceert?

    Hadden we niet beter het verschil kunnen nemen tussen een enkele sub en de MD25 en vervolgens tussen dezelfde enkele sub en MD500? In beide gevallen raak je de fixed pattern noise kwijt, maar kunnen we mooi kijken wat het verschil is tussen het gebruik van de MD25 versus de MD500. Wellicht is het beter hiervoor een referentie-dark van 10 subs te maken?

    Kan je ook uitleggen waarom je die 82 x 200 en 57 x 200 hebt opgenomen in de tabel (onderste twee regels)?

    Nicolàs

    https://www.dehilster.info/astronomy

    In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.

    #21045
    han.k
    Participant

    Han, dat lijkt me een goed idee. Wellicht dat Teunissen (of een andere moderator) onze hele conversatie daarheen kan brengen? Mijn voorstel is om als topic te gebruiken: De invloed van stack-grootte op de kwaliteit van masterdarks. Ondertussen zou ik graag wat extra uitleg willen hebben over jouw vorige post. Begrijp ik het goed dat de linker twee kolommen de waarden geven, zoals jij ze meet en dat de rechter twee kolommen in de tabel in dezelfde waarden zijn, maar dan op de schaal zoals APP ze produceert? Hadden we niet beter het verschil kunnen nemen tussen een enkele sub en de MD25 en vervolgens tussen dezelfde enkele sub en MD500? In beide gevallen raak je de fixed pattern noise kwijt, maar kunnen we mooi kijken wat het verschil is tussen het gebruik van de MD25 versus de MD500. Wellicht is het beter hiervoor een referentie-dark van 10 subs te maken? Kan je ook uitleggen waarom je die 82 x 200 en 57 x 200 hebt opgenomen in de tabel (onderste twee regels)? Nicolàs

    Gisteren had ik haast want het avondeten was bijna klaar. Ja om de ruis te meten van een enkele frame is het beste om deze van een master dark af  te trekken. Ik meet met jouw master dark frames (ASI1600, -20 degrees, 120 seconden exposure, unity gain) het volgende:

    MD500 -MD1=> Ruis is 31  op range 0..653535

    MD500-MD25=>Ruis is 6  op range 0..653535  Dit klopt want  31/sqrt(25) =>~6

    M500=> Ruis is ~17 Dus DSNU is ongeveer 17, lager kom je niet.

    Ik ga e.a. nog dieper uitpluizen. Mijn ruis metingen passen niet bij de waarden in de APP FITS header.

    Mijn idee voor een blur over de dark is niet optimaal omdat je ook de DSNU ruis ook afvlakt. De DSNU ruis valt weg als je de MD van de light aftrekt. Zonder deze blur worden mijn image stacks iets ruisarmer, Deze blur was vroeger misschien goed voor CCD maar niet voor CMOS sensors.

    Han

Viewing 15 posts - 1 through 15 (of 31 total)
  • You must be logged in to reply to this topic.
Scroll to Top