|
发表于 2023-2-12 09:24:31
|
显示全部楼层
首先废话不多说,先上前后对比图:
这张照片拍摄的是冬季星空的巴纳德环,就是那个暗红色的半圆.照片的中心是猎户座(三个等间距连在一起的星星).使用的设备是sigma 50mm F1.4,a7r3(天文改机),架在赤道仪上完成.单张曝光30s,ISO2000,拍摄16张叠加. 具体怎么叠加,怎么调色可以参考其他人的文章,如果大家特别感兴趣星空后期,我后面也可以单独写一篇文章介绍一下.
在做深空或者星野后期的时候,经常要反复做一件事件,就是缩星.因为现在相机的高感是在太好了,每次都能拍到太多密密麻麻的星星,而摄影师多数不是为了拍星星,而是拍星云(银河中性各种色彩,各种彩色星云,尘埃啥的).如果星星太多,反而会让星云不明显,有喧兵夺主的感觉.另外一个主要的原因,就是后期要强化星云的细节和色彩,星星太多,会严重影响最终效果.
然后早几年就有各种photoshop的教程,教你怎么缩星,大多数都用到了PS里面的最小值滤镜:
但这个功能很繁琐,还经常效果不好,前几年AI应用迅速发展,基于tensorflow的应用starnet++就出现了:
https://github.com/nekitmm/starnet它是一个开源免费的工具,可以在windows/Mac/linux上面运行,而且不需要外部工具的支持.这个工具的功能很简单:就是把星空照片中的星星都抹去,只留下星云,比如这个是官网的样片:GitHub - nekitmm/starnet: StarNet它是一个开源免费的工具,可以在windows/Mac/linux上面运行,而且不需要外部工具的支持.这个工具的功能很简单:就是把星空照片中的星星都抹去,只留下星云,比如这个是官网的样片:
Before:
After:
有了starless处理后的图片,就可以用各种工具,滤镜来处理星云,增加对比度,饱和度,锐化等等.最后如果觉得没有一颗星星实在太假,还是可以把原来的星星加回去,在PS里面叠加原来的图片,把混合模式设置成变亮就可以了.
这里介绍一下这个小工具怎么使用.首先去下载对应OS的安装文件:
Starnet++
我这里介绍一下Linux版本(MacOS也是一样的,需要把rgb_starnet++变成可执行的权限就可以了)
解压完可以看到一堆文件:
$ ls
libtensorflow_framework.so.1 libtensorflow.so.1 libtiff.so.3 mono_starnet++ mono_test5.tif rgb_starnet++ rgb_test5.tif run_rgb_starnet.sh
libtensorflow_framework.so.1.14.0 libtensorflow.so.1.14.0 LICENSE mono_starnet_weights.pb README.txt rgb_starnet_weights.pb run_mono_starnet.sh starless.tif
有用的只有两个: rgb_starnet++, mono_starnet++
rgb版本是用于处理彩色图片,mono用于处理黑白.
在处理前,首先把图片输出成16bit tiff格式,这个在photoshop里面可以选:
然后在命令行里把图片作为第一个参数:
$ ./rgb_starnet++ ~/Downloads/DSC03041-DarkMedian-16bit2.tif
TIFFReadDirectory: Warning, /home/matrix/Downloads/DSC03041-DarkMedian-16bit2.tif: wrong data type 7 for "RichTIFFIPTC"; tag ignored.
Reading input image... Done!
Bits per sample: 16
Samples per pixel: 3
Height: 5304
Width: 7952
Restoring neural network checkpoint... Done!
2022-01-07 14:19:20.020030: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 AVX512F FMA
2022-01-07 14:19:20.048438: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2100000000 Hz
2022-01-07 14:19:20.053698: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x1c32470 executing computations on platform Host. Devices:
2022-01-07 14:19:20.053750: I tensorflow/compiler/xla/service/service.cc:175] StreamExecutor device (0): <undefined>, <undefined>
Total number of tiles: 10375
2022-01-07 14:19:20.734289: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1412] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set. If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU. To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.
100% finished
Done!整体的处理时间取决于你电脑的CPU能力,starnet最多会使用16个CPU处理一张图片(你有100个CPU也没用...剩下的84个核都在围观),在我的老服务器上,一张42M的a7r3的图片,需要处理5分钟. 因为我都是拷贝到服务器上处理,因此我的电脑还可以PS其他图片,完全不受影响.如果的CPU足够强悍(比如我的服务器有89个核,我就是同时处理几个starnet,一杯咖啡过后,就可以看结果了),输出的图片在运行目录下,默认为starless.tiff
rgb_starnet++还有一些高级参数,比如STRIDE:
rgb_starnet++ INPUT OUTPUT STRIDE
# For example
./rgb_starnet++ abc.tiff abc_starless.tiff 128STRIDE默认64,这个值越小,处理出来的图片精细度越高,也意味着处理时间越长.我尝试过设置成32,一张图片处理了20分钟还没100%,就放弃了.
具体使用可以参考README.txt. |
|