Author Topic: RegiStax wavelet-i - objašnjenje funkcionisanja  (Read 1878 times)

0 Members and 1 Guest are viewing this topic.

Offline vlaiv

  • Elite Member
  • ****
  • Posts: 657
RegiStax wavelet-i - objašnjenje funkcionisanja
« on: October 26, 2015, 11:26:28 pm »
U ovoj temi sam hteo da iznesem svoja zapažanja i zaključke o tome kako zapravo funkcionišu wavelet-i u RegiStax aplikaciji.

Znači inicijalna ideja nije kako da se što bolje iskoriste, nego zapravo koji je mehanizam za njihovo funkcionisanje. To me je
zainteresovalo onog momenta čim sam prvi put radio obradu planetarnih snimaka sa ovim alatom. Prosto je neverovatno
kakve rezultate daju. Budući da na internetu nisam našao dublje objašnjenje kako funkcionišu, rešio sam da pokušam da
dešifrujem algoritam kojim se postižu dati rezultati. Sad ću izneti moju analizu, kao i primere u jednom drugom programu
kako se mogu dobiti isti / slični ili čak i bolji rezultati. Nažalost drugi program nije optimizovan za automatsku primenu algoritma
nego se mora ići korak po korak ali ta fleksibilnost otvara mogućnost da se istestiraju i drugi koraci (uskoro ću objasniti o čemu se radi
i navesti primere).

Ono što me je zbunilo u RegiStax-u je upotreba termina wavelet. Nisu svi filteri koji se koriste zapravo wavelet-i, ali sada kada
sam shvatio kako sistem funkcioniše, upotreba tog termina je skroz opravdana.

O čemu se zapravo radi? RegiStax wavelet-i su zapravo vrlo pametan način da se primeni selektivna manipulacija signala slike.
Obično kada primenimo neki algoritam na sliku (denoise, sharpen, blur, bilo šta od toga), algoritam se primenjuje na kompletan signal slike.
Waveleti (pravi matematički) se koriste za multifrekventnu/multirezolucionu analizu i sintezu signala. U ovom slučaju, preuzeta je ideja iz wavelet-a da
se slika podeli na komponente različite frekvencije (veličine detalja) i da se algoritmi za "poboljšanje" koriste samo na određenoj frekvenciji bez uticaja na
ostale frekvencije.

Da ne bi previše bistrili matematiku, krenućemo odmah sa konkretnim primerima, verujem da će tako biti najjednostavnije. Prvo ćemo napraviti jedan opšti
diagram kako zapravo funkcioniše algoritam (ko se razume u wavelet-e, radi se o procesu vrlo sličnom lifting šemi).

1. Slika se podeli u dve slike, ne vertikalno ni horizontalno nego pre bi se moglo reći u dva layer-a. Prvi layer sadrži krupne detalje slike a drugi layer sitne
detalje slike. Originalna slika se iz ova dva layera dobija jednostavnim sabiranjem ta dva layera / slike.

2. Određene operacije se primenjuju samo na layer-u sitnih detalja slike (sharpen, denoise, i kontrast - to su parametri u RegiStax-u kod svakog layer-a,
sharpen i denoise se tako i zovu a kontrast je zapravo množenje signala određenom vrednošću - broj koji se dobija pomeranjem slajdera levo desno).

3. Nakon obrade layer-a sitnijih detalja formira se konačna slika tako što se iskombinuju originalni layer krupnih detalja slike i modifikovan layer sitnih detalja slike.
Kombinacija nije ništa drugo nego sabiranje ta dva signala (Photoshop add layer).

Probaću matematiku jednostavno da ilustrujem na primeru jednog broja (može se posmatrati kao signal ili kao vrednost pojedinačnog pikesla, nije bitno, bitan je koncept)
Neka je 103 originalan signal, podelićemo ga u dve komponente: 100+3 to su dva layer-a signala. 100 ostavljamo po strani a 3 manipulišemo na neki način. Ako je u pitanju
šum onda ga smanjimo - delimo recimo sa 3, ako je u pitanju značajan detalj koji želimo da istaknemo onda mu povećamo kontrast - množimo ga sa recimo 2. U prvom slučaju
konačna "slika" je 100+1 (3 podeljeno sa 3) = 101, a u drugom slučaju imamo 100+6 = 106.

Ostaje pitanje kako se slika deli na 2 layer-a. Pa postoji više načina da se to uradi. Prvi način je recimo prva generacija wavelet-a (dyadic opcija u RegiStax-u). U tom slučaju
layer sa krupnijim detaljima se dobija tako što se svaka 2x2 susedna piksela zamene sa srednjom vrednošću ta četiri piksela (Haar wavelet). Layer sitnijih detalja se dobija
kada se od original slike oduzme layer krupnijih detalja. Drugi način na koji to možemo uraditi je sledeći - Gauss blur čitave slike daje layer krupnijih detalja, layer sitnijih
detalja se dobija oduzimanjem layer-a krupnijih detalja od original slike. Ovo je opcija Gaussian wavelets u RegiStax-u.

Ovde smo opisali obradu jednog para layer-a, dok sam RegiStax daje opciju 6 layer-a. O čemu se zapravo radi? U pitanju je zapravo 6 parova layer-a - krupni + sitni detalji,
a sami registax layeri predstavljaju nivo krupnoće detalja po kojima se slika deli. Na primer za Gaussian je to parametar radius gauss blur-a koji se koristi za formiranje
slike krupnijih detalja (znači 1,2,3, ... 6 piksela širine blura, osim ako se ne kaže da je inicijalni layer 2 ili više, tada kreće od tog broja 2,3,4 ... 7. Takođe se može definisati
i step koji ako se promeni na recimo 2 znači da će se layeri formirati Gauss blurom sa 2, 4, 6, ... 12 piksela).

Još jedna opcija na koju treba obratiti pažnju u RegiStax-u je sledeća: linked layers. Šta ona zapravo radi? Pa pošto smo opisali jedan korak podele na dve slike / layer-a
za određenu veličinu detalja, postavlja se pitanje ako se želi uraditi više takvih koraka (6 u registax-u) da li se krupnija podela detalja (gauss 2,3,4...) radi na originalnoj slici,
ili na slici koja već ima obrađen niži nivo podele detalja. Znači ako su layers linked onda za krupniju podelu koristi rezultat obrade sitnije podele (za gauss 3 koristi već obrađen
gauss 2) a ako nisu linked layers onda koristi originalnu neobrađenu sliku.

Sve je ovo lepo u teoriji (mada je pitanje da li sam razumljivo izneo) a da li se to može nekako videti u praksi? Tu na scenu stupa gorepomenuti program. Radi se o imagej programu
(freeware / open source program rađen u javi) koji služi za obradu naučnih slika. Prednost ovog programa je u tome što slike posmatra kao signal i dozvoljava negativne vrednosti
piksela (ovo što ću sad prikazati bi u teoriji moglo da se uradi i u photoshop-u ali nisam siguran da photoshop dozvoljava negativne vrednosti piksela). Inače imagej se može preuzeti
na sledećoj adresi: http://imagej.net/Welcome i preporučujem da se skine Fiji distribucija (to je distribucija bez instalacije, samo se raspakuje a unapred je nafilovana
najrazličitijim plugin-ovima i alatima).

Za demonstraciju koncepta ću iskoristiti stack sa jednog snimanja saturna od proleća ove godine (ima ga u thread-u o saturnu u astrofotografiji ovde na forumu).

Sledeća slika predstavlja (sa leve na desnu stranu): Zeleni kanal stackovanog saturna, zeleni kanal stackovanog saturna sa primenjenim Gaussian blur sigma 1.2, razliku
između te dve slike (prava razlika ima suviše male vrednosti da bi se videla, ovo je strech za prikaz).



Sledeća slika prikazuje diagram profila prstenova takođe sa leva na desno kao i gore navedeno: zeleni kanal original, zeleni kanal krupni detalji, zeleni kanal sitni detalji



Ono što je ostalo je da sada "obradimo" sliku sitnog detalja i da ponovo iskombinujemo sa krupnim detaljima.

Evo kako izgleda layer detalja nakon dosta teške obrade da bi se istakli rezultati (redom ROF Denoise, Despecle, Enhance Local Contrast, Sharpen i na kraju pomnoženo sa 24):



Nakon obrade sitnih detalja, konačna slika (krupni detalji plus sitni detalji obrađeno) izgleda ovako:



Na slici je primetno dosta šuma zbog agresivnog izoštravanja i velikog faktora multiplikacije detalja (kontrasta x24), ali bez obzira na to na ovom jednostavnom primeru
se mogu videti mogućnosti ove tehnike.

Ono što je jako bitno je to da ovakav pristup daje široku fleksibilnost u izboru parametara obrade, i to načina na koji se slika deli na sitne i krupne detalje, kao i sama obrada
sitnih detalja. Jedini problem sa ovakvim pristupom je kompleksnost i trajanje obrade bez mogućnosti da se rezultat vidi pre kraja obrade (nema automatike), ali sa druge
strane moguće je napraviti malu aplikaciju koja bi služila kao test poligon za različite metode split-a i obrade.

Za kraj mogu da navedem još neke načine da se formira split slike: U opštem slučaju bi išlo ovako: krupni detalj = filter(original), sitni detalj = original - krupni detalj
U gornjem primeru smo za filter koristili gauss blur sa određenim sigma parametrom od 1.2 (što je još jedno poboljšanje u odnosu na registax gde su sigme celobrojne vrednosti 1,2,3...), mada
je moguće koristiti i median filder, low pass (FFT), ili pak uraditi wavelet lifting prve ili druge generacije. Recimo simulacija wavelet transformacije druge generacije bi bilo sledeći način
da se formira slika krupnog detalja: slika se smanji na recimo jednu trećinu original veličine (pri tom se koristi neki od algoritama za filter: nearest neighbour, quadratic, qubic, spline, lancoz, svaki
će dati različit tretman šuma i sitnih detalja) i zatim se slika opet nekim od pomenutih algoritama vrati na normalnu veličinu. Ko je radio obradu slika zna da ovakav proces dovodi do gubitka finih
detalja na slici a to je ono što nama treba da na slici ostanu samo krupniji detalji. Krupnoća detalja se kontroliše faktorom umanjenja. Ako se slika smanji na jednu šestinu originalne veličine
ostaju krupniji detalji nego ako se smanji na jednu trećinu. Nakon dobijanja slike krupnog detalja, slika sitnog detalja se dobija oduzimanjem od originala ....

Nadam se da sam bio iole jasan u ovom izlaganju, ako sam nešto previše zakomplikovao ili nisam jasno napisao vičite. U svakom slučaju se nadam da je dalja razrada ove tematike od interesa
ljudima koji se bave planetarnom astrofotografijom ...
GSO RC8", TS80 F/6 photoline, SW dob 200/1200, SW achro 102/500
HEQ5, AZ4, AZ3
ASI1600MMC, ASI178MCC, ASI185MC, QHY 5-II-L c planetary & guider

Offline VaskoGM

  • Elite Member
  • ****
  • Posts: 653
  • The Universe is not obligated to make sense to you
Re: RegiStax wavelet-i - objašnjenje funkcionisanja
« Reply #1 on: October 27, 2015, 02:22:31 am »
Mislim da dalje od ovoga ne moze da se razlozi funkcionisanje wavelet obrade. Sto se tice jasnosti, 3 puta sam morao da procitam ali sve u svemu vrlo logicno.
Jedino ovaj zadnji pasus gde pričas o alternativnim načinima za splitovanje frekvencija... Kontam šta hoćes da kažes ali ja dfinitivno ne preporucujem korišcenje tih procesa
ni u kom slučaju sem čisto u ilustrativnom smislu... najobičniji blur (gaussian) ce uništiti sve sitne detalje s originalne slike bez ikakvog dodatnog komlikovanja.

Jel imas pristup Mac OS X? Ako imas, ili bilo ko ovde ko ima, obavezno probati "Lynkeos" http://lynkeos.sourceforge.net
Osmislio ga neki tvoj kolega ali samo za mekintoš računare kao alternativu RegiStax-u sa wavelate funkcijama.
Najinteresantnije je da može da razdvoji materijal na neogranicen broj frekvencija i svaka se moze naštelovati na 10.000-te delove piksela ili jedinice frekvencije, moze da se bira piksel ili frek. vrednost)
Evo screenshot ilustracija sa beleškicama sta koja akcija radi.




Šta mislis, da li bi sledeci proces u fotošopu takodje simulirao wavelet?

-Napravis 3 lejera iste slike (duplikati)
-Prvi lejer uradis Unsharp Mask ili Smart Sharpen s velicinom piksela 5
-Drugi lejer isti filter ali s velicinom piksela 10
-Treći 15 piksela
-Blendujes sva tri lejera

*Naravno, broj lejera i velicine piksela su proizvoljne, takodje pored Unsharp Mask i Smart Sharpen moze da se isto radi i sa High Pass filterom
ali bi moralo da se radi dodatno blendovanje za svaki lejer.
« Last Edit: October 27, 2015, 02:35:46 am by VaskoGM »
Mak180 f/15 • MN190 f/5.25 • AZ-EQ6...
EOS 450D(m) • ASI120MM-S • QHY5V+9x50 AG • Baader LRGB...
Hyperion • ES • Nikon • Sterling...
Flickr Galerija  AD Aristarh

Offline vlaiv

  • Elite Member
  • ****
  • Posts: 657
Re: RegiStax wavelet-i - objašnjenje funkcionisanja
« Reply #2 on: October 27, 2015, 02:53:54 am »
Pa što se tiče alternativnih načina za ekstrakciju frekvencija, to sad ostaje kao pitanje šta se želi postići, odnosno koji se detalji žele istaći a koji umanjiti.
A mislim da to konačno zavisi od kvaliteta originalne slike i kolko je blurovana i pod distorzijom zbog atmosfere, to je tek posebna priča (tu dolazimo do
one kompikacije sa dekonvolucijom).

A ovaj tvoj primer sa više layera je tačno to o čemu ja pričam. Evo ovako da pojasnim, uzmimo da si napravio 2 layera zbog jednostavnosti, na jedan
od njih si primenio high pass filter. U odnosu na ovu moju priču to se svodi na sledeće: original slika = (original slika - high pass) + high pass

ako blendujes sa Add dobijas sledece: original slika + high pass a to je ako zamenis izraz za original sliku od gore zapravo: (original slika - high pass) + 2x high pass
ili u prevodu low pass + 2x high pass odnosno primenio si faktor x2 za kontrast signih detalja. Slično dobijas i ako uzmes Avg (tj blend 50% - 50%) samo će tada
konačna slika biti na %50 intenziteta, al u suštini je to to. Ako uzmeš više od 2 layer-a dobićes ono što je u registax-u al bez linked layers, a ako uzmeš prvo
dva layera jedan high pass sa određenim radiusom, pa blend pa opet dva layera toga pa high pass sa drugim radiusom pa blend onda dobijas linked layers ...

Interesantno je recimo da se ovom tehnikom iako daje dobre rezultate nikada nemože povratiti originalna rezolucija kao sto na primer može sa dekonvolucijom.
Da bi isprobao to, probaj da uradiš sledeće: uzmi u photoshop-u olovku (alat), belu boju i na crnoj slici nacrtaj neku krivu liniju, al da radius olovke bude 1px, bez
antialiasa (ono što bi dobio u paint-u da uzmeš olovku). Zatim primeni gaussian blur na tu sliku (recimo radius 2px). Probaj ovom metodom da rekonstruišeš oštru
liniju pre blura ...
GSO RC8", TS80 F/6 photoline, SW dob 200/1200, SW achro 102/500
HEQ5, AZ4, AZ3
ASI1600MMC, ASI178MCC, ASI185MC, QHY 5-II-L c planetary & guider

Offline VaskoGM

  • Elite Member
  • ****
  • Posts: 653
  • The Universe is not obligated to make sense to you
Re: RegiStax wavelet-i - objašnjenje funkcionisanja
« Reply #3 on: October 27, 2015, 09:42:11 pm »


Evo sta sam mogao izvuci sa wavlet-om po tvojim uputstvima (PS)
Tvoja poenta je tacna. E sad da predjemo na pitanje dekonvolucije  ;D
Kakve su nam tu opcije? Kako da postignemo maksimum rekonstrukcije?
Mak180 f/15 • MN190 f/5.25 • AZ-EQ6...
EOS 450D(m) • ASI120MM-S • QHY5V+9x50 AG • Baader LRGB...
Hyperion • ES • Nikon • Sterling...
Flickr Galerija  AD Aristarh

Offline vlaiv

  • Elite Member
  • ****
  • Posts: 657
Re: RegiStax wavelet-i - objašnjenje funkcionisanja
« Reply #4 on: October 28, 2015, 02:15:45 am »
Prvo da pohvalim izvrstan entuzijazam prilikom izbora slike za demonstraciju!

Uh, tematika dekonvolucije je relativno kompleksna. Osnove zapravo nisu, malo ozbiljnija matematika srednje škole / fakulteta nas dovodi do razumevanje konvolucije i dekonvolucije.
Problem nastaje u tome što u opštem slučaju ta neka osnovna priča nije ni približno dovoljna za ozbiljan rad na metodama dekonvolucije za astronomiju. Probaću da istaknem neke
od osnovnih problema dekonvoucije u astronomiji. Ali prvo komparacija između tvoje demonstracije i dekonvolucije (dva tipa, bitna za dalju priču o dekonvoluciji).

Inače, izbor "mete" sa moje strane je dosta neozbiljan kako se ispostavilo, posle ću u postu i objasniti zašto, jer je u suštini dosta jednostavno "rekonstruisati" takav crtež
pomoću "wavelet" metode izložene gore (objasniću i zašto, to sam skontao dok sam pokušavao da sebi objasnim kako to da dodatni blur slike može da pomogne u isticanju
detalja originalno blurovane slike).

Aj za početak evo dekonvolutivnih rezultata:



Gore levo: tvoja originalna slika za demonstraciju
Gore desno: slika blurovana sa Gauss sigma 4.0 (malo ozbiljniji blur da bi se demonstrirale mogućnosti dekonvolucije)
Dole levo: dekonvoluirana slika takozvanim inverznim filtriranjem (u onom prostom slučaju sa početka posta pokazaćemo da u ovako jednostavnim slučajevima postoji
direktna inverzna operacija konvoluciji koja vraća originalno stanje slike)
Dole desno: Lucy-Richardson dekonvolucija blurovane slike (2000 iteracija)

U centru se nalazi aproksimacija gauss sigma 4.0 kernela koji je korišćen za dekonvoluciju.

Hajde samo na momenat da se osvrnem na to zašto sam pomenuo da je izbor "mete" loš za demonstraciju. Naime našao sam dosta dobar metod za rekonstrukciju
takvog tipa slike (monotoni signal, 1px širok). Evo primera:



Leva slika blur: Gauss sigma 2.0, desna slika - obrada: blurovana slika dodatno blurovana sa Gauss 0.4, oduzeto od blurovane slike, odesečene sve negativne vrednosti i
uradjen stretch

A evo i objašnjenja zašto radi:



Levo je obeležen segment od kojeg je urađen grafik (profile plot), desno je superpozicija 2 profile plota: blurovane slike i blurovane pa opet još malo blurovane slike.
Iz profila se vidi zašto ovaj metod radi. Svi profili koji su 1px široki daju ovakav gauss kriva presek. Ako ga još malo blurujemo, mi zapravo širimo gauss krivu a samim
tim je snižavamo malo. Strelicom je obeležen taj deo gde se pojavljuje razlika. Izborom sigme za dodatni blur u odnosu na osnovni možemo da napravimo da ta
kapica bude široka 1px. Budući da je duplo blurovan profil "deblji" i "niži" od obično blurovanog dobijamo 2 sekcije. Tamo gde je dominantan originalan blur i tamo
gde je dominantan 2x blurovan profil. Kada se oduzme prvi od drugog profila pozitivna ostaje samo zona gde je prvi profil viši od drugog a to je na samom vrhu, sve ostalo
odlazi u minus. Zato klipujemo signal na 0 i strečujemo ga (jer je taj deo razlike između profila jako mali). I eto trika za manje više uspešnu rekonstrukciju. Problem dolazi
u delovima gde signal počne da se preklapa sa drugim signalom, što je vidljivo na slici u jednoj zoni (levo od crvene mrlje), jer tada ova logika ne pali. Zbog toga sam
rekao da je izbor tipa mete pomalo loš za ovu demonstraciju.

A sad da se vratimo na konvoluciju. Da vidimo zašto je ona bitna u astronomiji, kako da se radi dekonvolucija i zašto i kada nije efikasna. Prvo da kažemo šta je konvolucija.
Konvolucija je operacija nad dve funkcije (da ne pišem definiciju mada nije kompikovana, svodi se na integral umnoška te dve funkcije na određen način) koja za rezultat ima
novu funkciju. Običnim rečima postoji funkcija slike (svetlost po x i y koordinati slike - odnosno intenzitet po pikselima) i funkcija koja se obično zove kernel kod filtera, kod
konvolucije specifično je zovemo PSF - point spread function. I te dve funkcije se iskombinuju na određen način i proizvedu treću funkciju (blurovana slika). Najjednostavniji
način za objašnjenje kako dolazi do kombinacije se krije u terminu PSF. PSF odnosno kernel objašnjava šta bi se desilo sa slikom da se sastoji svuda od nula i na samo jednom
mestu (u jednoj tački) od vrednosti 1 (u matematici - delta funkcija). PSF objašnjava kako se tih 1 raspodeli na okolne tačke. Može se objasniti ovako: imamo 5 kofa vode,
u prve dve nema vode, u trećoj ima jedna litra i u preostale dve nema opet ništa. I imamo Koffa spread function koji kaže preli jednu osminu u prvu i poslednju kofu i preli
u drugu i treću po jednu četvrtinu. Znači KSF objašnjava kako se voda iz jedne kofe raspoređuje u ostale. PSF radi to isto sa intenzitetom u tački odnosno pikselu. Uzme intenzitet
tog piksela i prelije okolo u druge piksele po određenom šablonu. Situacija postaje malo kompikovanija kada su u pitanju više kofa koje imaju neku količinu tečnosti, odnosno
pikseli sa intenzitetom, al se svodi na isto iz svake kofe koja ima nešto tečnosti preliva se u druge kofe po šemi. Tako se može desiti da u praznoj kofi bude 2x više tečnosti
nego što je to bio slučaj u prvom primeru gde počinjemo sa jedno kofom sa vodom i ostalim praznima, u tom slučaju se u praznu kofu doda malo vode iz neke kofe sa leve strane
i doda malo vode iz neke kofe sa desne strane.

Uh što volim kada pokušavam da objasnim što jednostavnije pa ispadne zakomplikovano :D
Gauss blur u programima za obradu slike je konvolucija sa kernelom koji predstavlja gausovu krivu u 2d sa odredjenom vrednošći sigme za gausovu raspodelu (pogledaj gore
na prvoj slici koji kernel sam koristio za dekonvoluciju gauss blura).

Ono što je interesantno kod operacije konvolucije je sledeće: Furijeova transformacija konvolvirane slike = furijeova transformacija originalne slike * furijeova transformacija PSF/kernela
Gde je množenje, ono klasično množenje (svaki piksel se dobija kad se odgovarajući pikseli na slikama pomnože tip množenja). Odavde vidimo da je dekonvolucija u suštini jako jednostavna
(pod određenim uslovima): uzmemo blurovanu sliku, uzmemo PSF odradimo furijeovu transformaciju nad njima, podelimo prvi rezultat sa drugim i odradimo inverznu furijeovu transformaciju i op
dobili smo original sliku. I to skroz original, bez aproksimacije bilo koje vrste, matematički original da tako kažem.

Zašto je onda u astronomiji dekonvolucija problem? Zbog tih već pomenutih određenih uslova. Određeni uslovi koji moraju biti zadovoljeni su:

1. Znamo tačno kako izgleda PSF odnosno kernel
2. Blur slika je sigurno nastala direktnom konvolucijom neke slike i PSF-a, znači nije modifikovana ni na koji način.

Ove dve stvari u astronomiji nikada nisu zadovoljene i zato inverse filtering (inače metod koji sam koristio na prvoj slici - donja leva slika) nikada ne može da poleti (tako se ne prave
aeroplani).

Hajde da vidimo šta se dešava u astronomiji. Kada se snima teleskopom postoje 2 blura koji se zapravo dešavaju sa svetlošću, prvi (a i redom "primene" na svetlost prvi) je uticaj atmosfere
- svima poznat seeing. Isto tako je svima poznato da seeing ne da nije predvidljiv nego se i razlikuje od trenutka do trenutka. Drugi blur predstavlja sam teleskop odnosno konstrukcija
teleskopa i uticaj na svetlost. Znamo da zvezda nije nikada tačka (matematička) u teleskopu nego je takozvana Airy funkcija - odnosno airy disk, naravno zbog difrakcije svetlosti. Ono što
je interesantno jeste da se ova difrakcija takođe ponaša kao konvolucija slike sa Airy diskom odnosno preciznije sa PSF samog teleskopa. Ova druga PSF je nešto lakša od atmosferske
jer se može dovoljno dobro aproksimirati (simulirati) matematikom, a moguće ju je i izmeriti odnosno snimiti. Znači u astronomiji se dešavaju zapravo dve konvolucije. Na svu sreću
operacija konvolucije je asocijativna, distributivna i komutativna što može biti od velike pomoći (drugim rečima sve jedno je da li originalni signal prvo konvolviramo atmosferskom psf
pa onda teleskopskom psf ili originalni signal konvolviramo konvolucijom atmosferske i teleskopske psf - što će reći isto kad dekonvolviramo).

Druga stvar koja se dešava kod snimanja jeste da naš snimak nikada ne predstavlja stvarnu sliku (konvolviranu uticajem teleskopa i atmosfere) nego predstavlja aproksimaciju
te slike. To je ta slika samo što nije skroz. Da je skroz ne bi se mi toliko mučili sa dužinom ekspozicije i sa time koliko kamera ima šuma i kojeg. Znači u astronomiji nikada nemamo
"pravu" sliku, uvek imamo sliku uvijenu u manje ili više šuma, znači i broj 2 nije zadovoljen.

Ovo je samo neki uvod u problematiku. Ono o čemu ja trenutno razmišljam je način da se odradi neka vrsta semi-blind dekonvolucije (moj termin :D). Blind ili slepa dekonvolucija
je pokušaj da se konvolvirana slika sama po sebi iskoristi da bi se predvidela originalna slika i konvolucioni kernel.

Za trenutne domete pogledaj sledeći pdf:
http://www.robots.ox.ac.uk/~seminars/seminars/Extra/2014_07_10_PaoloFavaro.pdf

(ako te matematika smori, samo prelistaj do kraja, ima dosta primera iz radova različitih ljudi i njihova dostignuća, pdf navodim kao source za sve te radove)

Većina algoritama koji se tu koriste su zasnovani na Bayes-ovoj teoremi iz verovatnoće. Ukratko koja je verovatnoća da je originalna slika takva i takva ako zadovoljava određene kriterijume a spram konvolvirane slike (i tu sad se ubacuju različite regularizacije u zavisnosti od tipa šuma jer svaki šum ima svoju distribuciju verovatnoće - gausov šum, poasonov šum i slično, te se
razvijaju različiti algoritmi).

Ono što sam ja skontao iz rada sa planetarnim snimanjem jeste da mi imamo dobru odskočnicu što se tiče dosta nekih stvari, a to su redom:

1. Možemo izmeriti jednu komponentu konvolucionog kernela - PSF teleskopa, samim tim znamo da ukupna PSF čitave slike mora biti konvolucija toga i još nečeg (možemo dodeliti
verovatnoću nekom kernelu samo na osnovu toga da li ima smisla da se dobio konvolucijom nečeg i već poznate PSF teleskopa)

2. Planetarno snimanje je jako nezgodno jer nije u pitanju samo jedna atmosferska psf - znači nije jedan kernel za sve tačke. Atmosfera ne titra svuda isto u istom trenutku nego
različito. Ali sa druge strane imamo sledeći podatak: Između dve susedne tačke veća je verovatnoća da je PSF atmosfere slična nego da je različita. Isto tako znamo da su konačne
PSF (atmosfera + teleskop) za svaku tačku takve da se podrazumeva pod 1 (imaju zajedničku crtu da tako kažem).

3. Između sukcesivnih frejmova u istoj tački su različite atmosferske psf - ali isto kao pod 2, što je kraći period između frejmova - veći frame rate - to je veća verovatnoća da
će te dve amosferske psf (znači sad ne govorimo o dva različita piksela na istoj slici nego na dva ista piksela na različitim, ali sukcesivnim slikama) biti slične - dovoljno veliki frame
rate - atmosfera ne stigne da se mnogo promeni.

4. Imamo ideju kako treba da izgleda konačna dekonvolvirana slika - ipak smo uspeli da koliko toliko izoštrimo sliku ovim našim običnim metodama, tako da i za potencijalnu
dekonvolviranu sliku možemo da dodelimo verovatnoću na osnovu toga koliko liči na našu konačnu sliku (iz prve iteracije, posle ću objasniti na šta mislim kad kažem iteracije).

5. Koristimo lucky imaging tehniku - znači da među gomilom frejmova postoje frejmovi koji su takvi da je uticaj atmosfere u datom trenutku minimalan. To nam mogu biti "polazne"
tačke za evoluciju atmosferskog seeinga u pravcu prethodnih i sledećih frejmova (ako je frame rate dovoljno velik, i nađemo relativno čistu sliku, velika verovatnoća je da će sledeći
frejmovi polagano da se "kvare" i isto tako da su se prethodni frejmovi polagano popravljali dok nisu došli do relativno dobre slike).

6. Možemo uraditi statističku analizu tipova seeinga i evolucije seeinga i napraviti modele koji će nam pomoći da dodatno ustanovimo verovatnoće transformacije atmosferskih PSF-ova
kako u spatialnom domenu (između susednih piksela na slici) tako i u temporalnom domenu (između susednih frejmova).

A sad još za kraj (malo sam odlutao u objašnjavanju, ponelo me, a vidim već je sitno doba), nacrt algoritma za iterativno "poboljšanje" planetarne slike:

Korak 1: odaberi "najbolje frejmove" i napravi stack

Korak 2: idi kroz sve frejmove i koristeci odgovarajući algoritam koji se zasniva na prethodnih 6 tačaka probaj da aproksimiraš atmosferske PSF-ove (i njihovu evoluciju u prostoru i vremenu)
i uradi dekonvoluciju frejmova. Zatim se vrati na korak 1 (biće više boljih frejmova samim tim će i stack biti precizniji što će omogućiti da se u narednom koraku 2 bolje aproksimiraju PSF-ovi i
uradi još bolja dekonvolucija - još više frejmova ..... dok nam ne dosadi ili izvučemo maksimum iz podataka :D )

Eto to je u globalu ideja, sada treba polako razložiti sve na detalje, uraditi odgovarajuća istraživanja i videti da li to sve pije vode.

GSO RC8", TS80 F/6 photoline, SW dob 200/1200, SW achro 102/500
HEQ5, AZ4, AZ3
ASI1600MMC, ASI178MCC, ASI185MC, QHY 5-II-L c planetary & guider

Offline VaskoGM

  • Elite Member
  • ****
  • Posts: 653
  • The Universe is not obligated to make sense to you
Re: RegiStax wavelet-i - objašnjenje funkcionisanja
« Reply #5 on: October 29, 2015, 02:29:05 am »
Rasturio si mi siroti mozak sinoc! Spavao nisam jer sam skontao sta u stvari ti hoces ovde...
Plan je sledeci: Da napravis Vlaivoluciju. Je li tako? Jel' tako da hoces da napravis novi algoritam? Verovatno bolji od svega do sada...

Za matmatiku me ne pitaj... ali za sve drugo tu sam!
Za pocetak na raspolaganju sam ti sta god treba da se to istrazi i testira. Shvatam sta pricas za frejmove. evo ova moja ASI120MM je USB 3
Ima apsurdno visok frejmrejt! (tacka 5.) Uhvaticemo seeing bas tako kako ti treba.
Samo reci kakva pomoc i kakav materijal ti je potreban kada dodje vreme i kada budes spreman!

Mak180 f/15 • MN190 f/5.25 • AZ-EQ6...
EOS 450D(m) • ASI120MM-S • QHY5V+9x50 AG • Baader LRGB...
Hyperion • ES • Nikon • Sterling...
Flickr Galerija  AD Aristarh

Offline vlaiv

  • Elite Member
  • ****
  • Posts: 657
Re: RegiStax wavelet-i - objašnjenje funkcionisanja
« Reply #6 on: October 29, 2015, 03:10:46 am »
Zahvaljujem na podršci!

Imam svašta nešto planirano vezano za istraživanja, valjda će se naći vremena za sve. Mislim da bi prvi korak bio da se usavrši tehnika snimanja PSF-a samog teleskopa (odnosno čitavog optičkog sistema, teleskop + sva optika + kamera).

Tu imam 3 pristupa koje bi trebalo isprobati / istražiti.

1. Veštačka zvezda. Ima dosta povoljno da se naruči preko interneta tipa $20 dolara. Ima i varijanta u samoizradi, ja sam razmišljao i o tome. Potrebni su dioda, baterija, optički kabl. Ima negde na netu DIY varijanta. Jedini problem mi je što ne mogu da nađem jeftin optički kabel male dužine, a ne znam nikog ko ima opremu da mi iseče i iskrimpuje jedan kablić od tipa 10-15cm.
U tom slučaju se može snimati PSF u manje više kontrolisanim uslovima.

2. MetaGuide ima interesantan pristup sa stackingom slika. Ne radi centroid nego mislim da uzima najsjajniju tačku. Kod njegove upotrebe se može videti slika Airy diska i kad seeing nije toliko dobar.
To mi je druga ideja. Treba uraditi snimanje zvezde, isto velik FPS kao za planetarno snimanje, pa isprobati razne metode stackinga, da vidimo koji će dati najčistiji PSF pattern.
Metode bi bile:
1. Centroid,
2. Centroid procenta/komada najsjajnijih tačaka,
3. Centroid svih tačaka svetlijih od određene granice.

Svaki od ovih metoda stackinga bi još bio podložan izboru: N ili % najboljih frejmova (ovde još razmišljam koji kriterijum da uzmem za "dobroću" frejma).

3. Postoji program WinRoddier koji služi za analizu optike teleskopa, daje profil ogledala i slično. Ja sam se malo igrao sa njim svojevremeno. On dosta zavisi od toga da se snima kada je seeing dobar, pa se može iskoristiti u kombinaciji sa veštačkom zvezdom. Pored profila ogledala daje posle mogućnost za sintezu PSF-a koje proizvodi ogledalo (zapravo čitav optički sistem, radi analizu wavefront-a).

Sve u svemu sada stiže sezona jupitera za mesec / dva. Moj plan je, kod svakog planetarnog snimanja da uzmem i snimak iz kojeg ću moći da uradim dobru aproksimaciju PSF-a teleskopa u tom trenutku (treba voditi računa da se promenom bilo čega na teleskopu menja psf, znači kolimacija, rotacija kamere i slično, zato je potrebno vezati odgovarajući PSF za svako pojedinačno snimanje).

Upravo večeras sam malo testirao kabel za mount i GOTO (eqmod+stellariumscope) i video astronomiju. Ko nije skinuo novu verziju SharpCap-a neka skine, ima jako zanimljivih novosti u programu, kao što su: Live Stack (ovde imam zamerku jer je stack neograničenog trajanja, a bilo bi dobro da se može postaviti parametar da samo poslednjih n frejmova prikaže kao stack,
znači ne ono N frejmova čeka pa prikaže stack, nego kao što je sad urađeno, dodaje u realnom vremenu frejmove, al posle N komada počne samo poslednjih N da drži u trenutnom prikazu stacka, takođe fali mogućnost oduzimanja Dark frejma ili Dark frame stacka, live stack zna da nakupi Fixed Pattern Noise sa cmosa), zatim kontrole preview prikaza kao gamma, contrast i brightness (znači ne onog što se snima i ide u fajl nego samo preview prikaza) što je zgodna stvar za traženje mete i frejmovanje a i za video astronomiju. Tako da sad imam spreman setup da isprobam PEC pa ću moći da se bacim na to snimanje zvezda za PSF (tu moram minimalan ROI 320x200 da radim da bi mogao da izguram 100+ FPS sa ovom mojom kamerom).

Sledeće na redu što bi došlo je jedna malo podrobnija analiza seeing-a. Ovde planiram jedno duže sakupljanje podataka i to u sledećem fazonu: Isto kao i prethodno, radi se snimanje
zvezde, ali sa različitim FPS-ovima. Da bi se moglo videti veza između trajanja ekspozicije, seeing-a, stackinga i konačnog izgleda zvezde posle obrade (kod kog trajanja ekspozicije i kog
tipa stackinga koliko posto profil zvezde odudara od nekih matematičkih profila kao što su Gaussian ili Moffat).

Inače ko je zainteresovan za planetarno snimanje i veliki FPS kao i nizak šum neka pogleda novu ASI224MC kameru :D (da nisam kupio ovu moju pre manje od godinu dana, sad bih naručio tu novu 224, ima x4 niži šum čitanja, još veću osetljivost u crvenom opsegu a istih je specifikacija dimenzija senzora i piksela). Jedino što za sada dolazi isključivo u color formatu, nema monohromatske verzije.


GSO RC8", TS80 F/6 photoline, SW dob 200/1200, SW achro 102/500
HEQ5, AZ4, AZ3
ASI1600MMC, ASI178MCC, ASI185MC, QHY 5-II-L c planetary & guider