Làm cách nào tôi có thể tự động loại bỏ kỹ thuật số các đốm bụi cảm biến dịch chuyển khỏi một loạt ảnh lớn?


8

Khi ở trong sa mạc, cảm biến của tôi trở nên bụi bặm. Tôi đã ra ngoài trong nhiều tuần và không nhận thấy điều này cho đến khi kết thúc chuyến đi, vì vậy tôi có hàng trăm bức ảnh với bụi bẩn cảm biến. Trong suốt kỳ nghỉ, bụi dần trở nên tồi tệ hơn khi tôi thường xuyên thay đổi ống kính. Sau kỳ nghỉ của tôi, tôi đã có cảm biến được làm sạch một cách chuyên nghiệp và những bức ảnh mới không có điểm nào, nhưng tôi đang tìm giải pháp cho những bức ảnh kỳ nghỉ.

Để làm sạch ảnh của mình, tôi đã sử dụng The Gimp để tạo mặt nạ cho các vị trí của những mảnh bụi tồi tệ nhất:

vị trí bụi xấu nhất

sau đó sử dụng gmic để loại bỏ chúng khỏi dòng lệnh:

gmic 08-34-51.jpg ../../../dustmask_20180606_sky_flat_neg.png +inpaint_patchmatch[0] [1],10,7,4,2,1,0 -o[2] 08-34-51-clean.jpg

Mặc dù đây không phải là một giải pháp tối ưu vì về cơ bản nó sẽ sơn lại các khu vực đó từ đầu (không sử dụng thông tin cơ bản), nhưng nó cung cấp kết quả thỏa đáng trên bầu trời xanh. Tôi hình dung theo cách này, tôi có thể tự động hóa quá trình qua hàng trăm hình ảnh bị ảnh hưởng. Thật không may, bụi không đứng yên nên điều này không hoạt động. Nó thay đổi xung quanh theo thứ tự 20 pixel, tương ứng với khoảng 80 Lời nói. Tôi không biết liệu đây có phải là do bụi dịch chuyển xung quanh không, hoặc có thể là do xử lý hình ảnh trong máy ảnh như ổn định hình ảnh hoặc hiệu chỉnh ống kính. Tôi đã chụp một số hình ảnh ở cả dạng thô và JPEG và đối với những hình ảnh đó, tôi có thể thấy được sự thay đổi nhỏ về hình dạng của hình ảnh.

Nó rất tinh tế, nhưng nếu bạn so sánh hai hình ảnh sau đây, mảnh bụi lớn nhất và nổi bật nhất đã chuyển từ tập trung vào pixel (1677, 619)sang tập trung vào pixel (1655, 603). Ở đầu bên kia, một pixel ít nổi bật hơn ở bên phải đã chuyển từ (4919, 1485)sang (4940, 1483). Có lẽ không nên quá ngạc nhiên khi những mảnh bụi có thể và thay đổi xung quanh so với cảm biến?

Hình ảnh 1 với bụi trên bầu trời

Hình ảnh 2 với bụi trên bầu trời

Các bức ảnh được chụp cách nhau khoảng 90 phút. Những hình ảnh tôi đã đăng được ghép xuống bởi yếu tố 2.

Dữ liệu EXIF ​​bao gồm dữ liệu Sony Makernote, có thể bao gồm thông tin về ổn định hình ảnh, chẳng hạn như ImageStabilization = 1. Tôi không biết nếu nó bao gồm thêm chi tiết về ổn định hình ảnh. Nó bao gồm một trường Sony_0x201f = 128 17 2 0, có vẻ khác nhau giữa các hình ảnh, nhưng giống hệt nhau giữa hai hình ảnh được hiển thị ở trên, do đó nó không (xác định) duy nhất thông tin để sửa cho ổn định hình ảnh. Tôi không biết có lĩnh vực nào khác không. Dữ liệu exif đầy đủ (như được báo cáo bởi exiftool -v) cho một hình ảnh hiển thị:

  ExifToolVersion = 10.10
  Tên tệp = 08-35-11.jpg
  Thư mục =.
  Kích thước tệp = 9440161
  FileModifyDate = 1528067625
  FileAccessDate = 1529519016
  FileInodeChangeDate = 1528150970
  FilePermissions = 33204
  Loại tệp = JPEG
  FileTypeExtension = JPG
  MIMEType = hình ảnh / jpeg
JPEG APP1 (44908 byte):
  ExifByteOrder = II
  + [Thư mục IFD0 với 13 mục]
  | 0) Chế biến phần mềm = digiKam-5.6.0
  | 1) Mô tả hình ảnh =                                
  | 2) Kiếm = SONY
  | 3) Kiểu = ILCE-6000
  | 4) Định hướng = 1
  | 5) XResolution = 350 (350/1)
  | 6) Độ phân giải = 350 (350/1)
  | 7) Độ phân giảiUnit = 2
  | 8) Phần mềm = ILCE-6000 v3.20
  | 9) ModifyDate = 2018: 05: 11 08:35:11
  | 10) YCbCrPocationing = 2
  | 11) Exif Offerset (SubDirectory) ->
  | + [Thư mục ExifIFD với 38 mục]
  | | 0) Thời gian phơi sáng = 0,003125 (1/320)
  | | 1) Số = 11 (110/10)
  | | 2) Chương trình phơi sáng = 3
  | | 3) ISO = 100
  | | 4) Độ nhạy loại = 2
  | | 5) Khuyến nghịExposeure Index = 100
  | | 6) Phân phối = 0230
  | | 7) DateTimeOrigen = 2018: 05: 11 08:35:11
  | | 8) Tạo ngày = 2018: 05: 11 08:35:11
  | | 9) Thành phần cấu hình = 1 2 3 0
  | | 10) CompcedBitsPerPixel = 3 (3/1)
  | | 11) Độ sáng Giá trị = 10,76328125 (27554/2560)
  | | 12) Phơi sángCompensation = 0 (0/10)
  | | 13) MaxApertureValue = 3.6171875 (926/256)
  | | 14) MeteringMode = 5
  | | 15) Nguồn sáng = 0
  | | 16) Flash = 16
  | | 17) Tiêu cự = 18 (180/10)
  | | 18) MakerNoteSony (Thư mục con) ->
  | | + [Thư mục MakerNotes với 94 mục]
  | | | 0) Sony_0x1003 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  | | | 1) Sony_0x2000 = 0
  | | | 2) Xem trước =
  | | | 3) Xếp hạng = 0
  | | | 4) Sony_0x2003 =
  | | | 5) Độ tương phản = 0
  | | | 6) Độ bão hòa = 0
  | | | 7) Độ sắc nét = 0
  | | | 8) Độ sáng = 0
  | | | 9) LongExposeureNoirRedraction = 1
  | | | 10) Giảm giá cao = 2
  | | | 11) HDR = 0 0
  | | | 12) Sony_0x200c = 0 0 0
  | | | 13) Sony_0x200d = 1 (10/10)
  | | | 14) WBShiftAB_GM = 0 0
  | | | 15) ShotInfo (Thư mục con) ->
  | | | + [Thư mục BinaryData, 390 byte]
  | | | | FaceInfo Offerset = 94
  | | | | SonyDateTime = 2018: 05: 11 08:35:11
  | | | | SonyImageHeight = 4000
  | | | | SonyImageWidth = 6000
  | | | | FacesDetected = 0
  | | | | FaceInfoLpm = 37
  | | | | MetaVersion = DC7303320222000
  | | | 16) CreativeStyle = Tiêu chuẩn
  | | | 17) ColorTem Nhiệt độ = 0
  | | | 18) ColorCompensationFilter = 0
  | | | 19) CảnhMode = 0
  | | | 20) Khu vực ghép = 0
  | | | 21) DynamicRangeOptimizer = 3
  | | | 22) Ổn định hình ảnh = 1
  | | | 23) ColorMode = 0
  | | | 24) Kích thước đầy đủ = 4000 6000
  | | | 25) PreviewImageSize = 1080 1616
  | | | 26) FileFormat = 3 3 1 0
  | | | 27) Chất lượng = 2
  | | | 28) FlashExposeureComp = 0 (0/10)
  | | | 29) WhiteBalanceFineTune = 0
  | | | 30) Tỷ lệ trắng = 0
  | | | 31) SonyModelID = 312
  | | | 32) Chuyển đổi từ xa = 0
  | | | 33) MultiFrameNoirRedraction = 0
  | | | 34) ẢnhEffect = 0
  | | | 35) SoftSkinEffect = 0
  | | | 36) VignettingCorrection = 2
  | | | 37) LateralChromaticAberration = 2
  | | | 38) Biến dạng cài đặt = 0
  | | | 39) Sony_0x2015 = 65535
  | | | 40) LensType = 65535
  | | | 41) LensSpec = ... 5c
  | | | 42) AutoPortraitFazed = 0
  | | | 43) FlashAction = 0
  | | | 44) Sony_0x2018 = 0
  | | | 45) Sony_0x2019 = 0
  | | | 46) Sony_0x201a = 1
  | | | 47) FocusMode = 2
  | | | 48) AFAreaModeSding = 1
  | | | 49) Linh hoạtSpotP vị trí = 0 0
  | | | 50) AFZoneSelected = 0
  | | | 51) Sony_0x201f = 128 17 2 0
  | | | 52) AFPointsUsed = 0 0 0 0 0 0 0 0 0 0
  | | | 53) Sony_0x2021 = 0
  | | | 54) FocalPlaneAFPointsUsed = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  | | | 55) Sony_0x2023 = 0
  | | | 56) Sony_0x5001 = 0 (0/1000)
  | | | 57) Sony_0x5002 = 128
  | | | 58) Phơi sáng = 7
  | | | 59) Sony_0xb045 = 0
  | | | 60) Sony_0xb046 = 0
  | | | 61) JPEGQuality = 65535
  | | | 62) FlashLevel = 0
  | | | 63) Mã phát hành = 0
  | | | 64) Chuỗi số = 0
  | | | 65) Chống mờ = 2
  | | | 66) Sony_0xb04c = 1 (10/10)
  | | | 67) Sony_0xb04d = 0
  | | | 68) DynamicRangeOptimizer = 1
  | | | 69) Sony_0xb050 = 65535
  | | | 70) Sony_0xb051 = 0
  | | | 71) IntelligenceAuto = 0
  | | | 72) Sony_0xb053 = 0
  | | | 73) Tỷ lệ trắng = 0
  | | | 74) Tag9400c (Thư mục con) ->
  | | | + [Thư mục BinaryData, 556 byte]
  | | | | Phát hànhMode2 = 0
  | | | | ShotNumberSincePowerUp = 2
  | | | | SequenceImageNumber = 0
  | | | | Chuỗi liên tục = 1
  | | | | SequenceFileNumber = 0
  | | | | Chuỗi liên tục = 1
  | | | | CameraOrientation = 1
  | | | | Chất lượng2 = 0
  | | | | SonyImageHeight = 500
  | | | | ModelReleaseYear = 14
  | | | 75) Sony_0x9401 = ..f .... pW ..). 6Q. \. (. GG..6 \ 6.GG..6 \ 6 .. $ .......... ^. ..3..s. [Snip]
  | | | 76) Tag9402 (Thư mục con) ->
  | | | + [Thư mục BinaryData, 400 byte]
  | | | | AmbientTem Nhiệt độ = 21
  | | | | FocusMode = 2
  | | | | AFAreaMode = 1
  | | | | FocusP vị trí2 = 202
  | | | 77) Tag9403 (Thư mục con) ->
  | | | + [Thư mục BinaryData, 1000 byte]
  | | | 78) Tag9404b (Thư mục con) ->
  | | | + [Thư mục BinaryData, 556 byte]
  | | | | LensZoomP vị trí = 27
  | | | 79) Tag9405b (Thư mục con) ->
  | | | + [Thư mục BinaryData, 1992 byte]
  | | | | SonyISO = 4096
  | | | | BaseISO = 4096
  | | | | StopsA UpperBaseISO = 4096
  | | | | SonyExposeureTime2 = 6208
  | | | | Phơi sáng = 0,003125
  | | | | Số Sony = 5888
  | | | | SonyMaxApertureValue = 5054
  | | | | SequenceImageNumber = 0
  | | | | Phát hànhMode2 = 0
  | | | | Giảm giá cao = 2
  | | | | LongExposeureNoirRedraction = 1
  | | | | ẢnhEffect2 = 0
  | | | | Chương trình phơi sáng = 1
  | | | | CreativeStyle = 0
  | | | | Độ sắc nét = 0
  | | | | Biến dạng = 0
  | | | | LensFormat = 1
  | | | | LensMount = 2
  | | | | LensType2 = 32787
  | | | | LensZoomP vị trí = 27
  | | | 80) Tag9406 (Thư mục con) ->
  | | | + [Thư mục BinaryData, 64 byte]
  | | | | PinTem Nhiệt độ = 87
  | | | | PinLevel = 55
  | | | 81) Sony_0x9407 = .2WW. ^ .... AT..W ..>. WSi ... tôi ... W ............. T..i .... ... T ....
  | | | 82) Sony_0x9408 = i .... * ...... \ ... * ..} ...... u} .. C. = .. @. [. 8k. & ... | ...... C ^ .. pp .. [snip]
  | | | 83) Sony_0x9409 =. ... l. (.... Tôi ......... `... s .......... i7. @. Sp ......> ... ..... @ .......... z ...% ...>. [snip]
  | | | 86) Tag940c (Thư mục con) ->
  | | | + [Thư mục BinaryData, 64 byte]
  | | | | LensMount2 = 4
  | | | | LensType3 = 32787
  | | | | CameraE-mountVersion = 336
  | | | | LensE-mountVersion = 263
  | | | | LensFirmwareVersion = 1
  | | | 87) Sony_0x940d = ...... g ...... z ...? .. u ............. GO.D ..... qUx ... ? .... el .... 8 [snip]
  | | | 88) Tag940e (Thư mục con) ->
  | | | + [Thư mục BinaryData, 12288 byte]
  | | | 89) Sony_0xa100 =
  | | | 90) Tag2010g (Thư mục con) ->
  | | | + [Thư mục BinaryData, 6556 byte]
  | | | | Phát hànhMode2 = 0
  | | | | DynamicRangeOptimizer = 1
  | | | | Phát hànhMode3 = 0
  | | | | Phát hànhMode2 = 0
  | | | | FlashMode = 1
  | | | | StopsA UpperBaseISO = 4096
  | | | | Độ sángValue = 17245
  | | | | DynamicRangeOptimizer = 1
  | | | | HDRSding = 0
  | | | | Phơi sángCompensation = 0
  | | | | PictureProfile = 0
  | | | | PictureProfile = 0
  | | | | ẢnhEffect2 = 0
  | | | | Chất lượng2 = 0
  | | | | MeteringMode = 0
  | | | | Chương trình phơi sáng = 1
  | | | | WB_RGBLevels = 690 256 427
  | | | | Tiêu cự = 180
  | | | | MinFocalLpm = 180
  | | | | MaxFocalLpm = 2000
  | | | | SonyISO = 4096
  | | | | LensFormat = 1
  | | | | LensMount = 2
  | | | | LensType2 = 32787
  | | | 91) Sony_0x940f = liVi. $ ........) .... @ .. f ......... & .... @ ... Y @) .. Y @. @ ........... [snip]
  | | | 92) Tag9050 (Thư mục con) ->
  | | | + [Thư mục BinaryData, 944 byte]
  | | | | FlashStatus = 64
  | | | | Số lượng hình ảnh = 3836
  | | | | Số Sony = 5888
  | | | | Phát hànhMode2 = 0
  | | | | ImageCount2 = 3836
  | | | | SonyDateTime2 = .... #.
  | | | | Phát hànhMode2 = 0
  | | | | InternalSerialNumber = 162 254 226 13
  | | | | LensMount = 2
  | | | | LensFormat = 1
  | | | | LensType2 = 32787
  | | | | LensSpecFeatures =.
  | | | | Hình ảnh số 3 = 44765
  | | | 93) Sony_0x9412 = ... @. V ........................................ ............... [bắn]
  | | 19) Người dùng =
  | | 20) FlashpixVersion = 0100
  | | 21) Không gian màu = 1
  | | 22) ExifImageWidth = 6000
  | | 23) ExifImageHeight = 4000
  | | 24) Interop Offerset (SubDirectory) ->
  | | + [Thư mục InteropIFD với 2 mục]
  | | | 0) Interop Index = R98
  | | | 1) Tương tác = 0100
  | | 25) Nguồn tệp = 3
  | | 26) Kiểu cảnh = 1
  | | 27) CustomRendered = 0
  | | 28) Phơi sáng = 0
  | | 29) Tỷ lệ trắng = 0
  | | 30) DigitalZoomRatio = 1 (16/16)
  | | 31) Tiêu cựIn35mmFormat = 27
  | | 32) CảnhCaptureType = 0
  | | 33) Độ tương phản = 0
  | | 34) Độ bão hòa = 0
  | | 35) Độ sắc nét = 0
  | | 36) LensInfo = 18 200 3.5 6.3 (180/10 2000/10 35/10 63/10)
  | | 37) LensModel = E 18-200mm F3,5-6,3 OSS
  | 12) PrintIM (Thư mục con) ->
  | + [Thư mục PrintIM có 3 mục]
  | | PrintIMVersion = 0300
  | | 0) InIM_0x0002 = 1
  | | 1) InIM_0x0003 = 34
  | | 2) InIM_0x0101 = 0
  + [Thư mục IFD1 với 13 mục]
  | 0) Nén = 6
  | 1) Mô tả hình ảnh =                                
  | 2) Kiếm = SONY
  | 3) Kiểu = ILCE-6000
  | 4) Định hướng = 1
  | 5) XResolution = 72 (72/1)
  | 6) Giải pháp = 72 (72/1)
  | 7) Độ phân giảiUnit = 2
  | 8) Phần mềm = ILCE-6000 v3.20
  | 9) ModifyDate = 2018: 05: 11 08:35:11
  | 10) Thumbnail Offerset = 38476
  | 11) ThumbnailLpm = 6426
  | 12) YCbCrPocationing = 2
JPEG APP1 (2825 byte):
  + [Thư mục XMP, 2796 byte]
  | XMPToolkit = XMP Core 4.4.0-Exiv2
  | Phần mềm = digiKam-5.6.0
  | CreatorTool = digiKam-5.6.0
  | Chú thích = Đài tưởng niệm quốc gia Grand Canyon - Parashant, dọc theo đường Clayhole
  | Tiêu đề = Đài tưởng niệm quốc gia Grand Canyon-Parashant, dọc theo đường Clayhole
JPEG APP13 (126 byte):
  + [Thư mục Photoshop, 112 byte]
  | IPTCData (Thư mục con) ->
  | + [Thư mục IPTC, 99 byte]
  | | Hiện tạiIPTCDigest = ~ .g..z .... 3P} R ..
  | | - Bản ghi IPTCEnvel -
  | | CodedCharacterSet =.% G
  | | - Bản ghi IPTCApplication -
  | | Chương trình khởi tạo = digiKam
  | | Chương trìnhVersion = 5.6.0
  | | ObjectName = Grand Canyon-Parashant National Monument, dọc theo Clayhole Roa
JPEG APP2 (156 byte):
  + [Thư mục MPF0 với 3 mục]
  | 0) MPFVersion = 0100
  | 1) NumberOfImages = 2
  | 2) Danh sách MPImage (Thư mục con) ->
  | + [Thư mục BinaryData, 16 byte]
  | | MPImageFlags = 2684354560
  | | MPImageFormat = 0
  | | MPImageType = 196608
  | | MPImageLpm = 8768466
  | | MPImageStart = 0
  | | DepenciesImage1EntryNumber = 2
  | | DepenciesImage2EntryNumber = 0
  | + [Thư mục BinaryData, 16 byte]
  | | MPImageFlags = 1073741824
  | | MPImageFormat = 0
  | | MPImageType = 65538
  | | MPImageLpm = 664145
  | | MPImageStart = 8724632
  | | DepenciesImage1EntryNumber = 0
  | | DepenciesImage2EntryNumber = 0
JPEG DQT (130 byte):
JPEG DHT (416 byte):
JPEG SOF0 (15 byte):
  ImageWidth = 6000
  Hình ảnh cao = 4000
  Mã hóa = 0
  BitsPerSample = 8
  ColorComponents = 3
JPEG SOS
  Cảnh báo = [nhỏ] Lỗi đọc PreviewImage
  Xem trước = SCALAR (0x19b5ab8)

Những công cụ nào tồn tại để tự động loại bỏ bụi kỹ thuật số khỏi một loạt ảnh lớn? Tôi có hàng trăm bức ảnh bị ảnh hưởng (về cơ bản là bất cứ thứ gì được chụp ở F / 8 hoặc nhỏ hơn). Rõ ràng nhất là khi vùng bị ảnh hưởng nằm trên bầu trời, vì vậy một giải pháp chỉ hoạt động cho bầu trời là thỏa đáng. Giả sử rằng bụi không di chuyển quá xa, có thể sử dụng một số loại kỹ thuật đối sánh để tính toán mặt nạ mới cho mỗi ảnh, trước khi áp dụng nó bằng cách sử dụng phương pháp in mờ hoặc một số phương pháp khác. Mặc dù về mặt lý thuyết đơn giản, việc thực hiện điều này có thể khá tốn công trong thực tế - và tôi thậm chí không chắc chắn nếu inpainting là một giải pháp tốt.

Không sửa chữa thủ công từng ảnh (mất 4 phút thời gian tính toán một mình trên máy tính để bàn cũ của tôi), công cụ nào tồn tại để sửa toàn bộ loạt ảnh của tôi (hoặc ít nhất là những ảnh được chụp ở F / 8 hoặc nhỏ hơn với bầu trời ở các khu vực bị ảnh hưởng) ?

Tôi làm việc trên Linux và bộ công cụ thông thường của tôi bao gồm digikam, darktable, gimp và Python. Máy ảnh này là một chiếc Sony A6000 khá mới (máy ảnh có hệ thống mirrorless / compact). Một số ảnh được chụp bằng ống kính OSS Sony 18200200mm, một số khác có ống kính thủ công 12 mm Samyang.


1
Người đàn ông - một công việc khác cho ML!
Xin vui lòng đọc hồ sơ của tôi

1
@mattdm ML = Học máy? Tôi cho rằng nó là!
gerrit

3
Vâng. Tôi nghĩ rằng đã đến lúc bắt đầu một nhóm cá cược khi trang web này sẽ hợp nhất vào ai.stackexchange.com :)
Vui lòng đọc hồ sơ của tôi vào

@xiota Tôi đã chỉnh sửa thành câu hỏi: Sony A6000; Tôi khá chắc chắn đó là bụi cảm biến vì nó tích tụ trong kỳ nghỉ, có thể nhìn thấy bằng kính lúp và biến mất sau khi làm sạch cảm biến chuyên nghiệp. Tôi cho rằng đó là bụi di chuyển so với cảm biến, nhưng tôi chưa nghe nói về IBIS trước đây. Một số tấm trong suốt ở phía trước của cảm biến có thể thay đổi 50 50100100m?
gerrit

@xiota Tôi mới đến align_image_stack- Tôi sẽ xem nếu nó có thể giúp tôi!
gerrit

Câu trả lời:


3

Một cái gì đó như thế này hiện không có giải pháp kỹ thuật - Tôi đoán bạn cần thực hiện thủ công hoặc chờ giải pháp hỗ trợ AI / ML.

Với điều đó đã được nói, bạn có thể đạt được một số thành công với công cụ này:

http://www.batchcrop.com/dust-spot-removal.php

Nó có giá 49 $.


2
Cuối cùng tôi đã làm nó bằng tay (với darktable), mất một thời gian dài nhưng tôi đã có một cái nhìn tốt và chi tiết về nhiều bức ảnh kỳ nghỉ!
gerrit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.