Bagaimana saya dapat menemukan foto rangkap dalam kumpulan data yang sangat besar (puluhan hingga ratusan pertunjukan)?

16

Adakah yang bisa menyarankan utilitas deteksi duplikasi foto yang baik yang bekerja dengan baik ketika saya berurusan dengan sekitar 100gb data (dikumpulkan selama bertahun-tahun)?

Saya lebih suka sesuatu yang berfungsi di Ubuntu.

Terima kasih sebelumnya!

Sunting: Apakah ada alat yang akan membantu saya mengatur ulang koleksi saya dan menghapus duplikat, setelah mereka terdeteksi?

Sunting2: Bagian yang sulit adalah mencari tahu apa yang harus dilakukan setelah saya memiliki output yang terdiri dari ribuan file duplikat (seperti output dari fdupes).

Tidak jelas apakah saya masih dapat dengan aman menghapus direktori (yaitu jika suatu direktori mungkin berisi file unik), direktori mana yang merupakan himpunan bagian dari direktori lain dan seterusnya. Alat yang ideal untuk masalah ini harus dapat menentukan duplikasi file dan kemudian menyediakan sarana yang kuat untuk merestrukturisasi file dan folder Anda. Melakukan penggabungan dengan hardlinking (seperti halnya fslint) memang membebaskan ruang disk tetapi tidak memecahkan masalah mendasar yang memunculkan duplikasi untuk memulai dengan - yaitu file / dir organisasi yang buruk.

Fasterz
sumber
Lihat juga pertanyaan terkait ini di AskUbuntu , unix.stackexchange dan superuser .
BioGeek

Jawaban:

7

ImageMagick untuk menyelamatkan. Saya pikir langkah pertama untuk solusi apa pun adalah mengurangi ukuran koleksi Anda. Jika Anda ingin membandingkan foto dengan kontennya , terutama ketika beberapa versi yang sedikit dimodifikasi satu sama lain, awal yang sangat baik adalah menguranginya menjadi gambar mini dan kemudian membandingkan gambar mini. Ini sangat membantu ketika Anda ingin menemukan foto yang hampir mirip dan ingin "mengabaikan" perbedaan yang tidak penting selama perbandingan.

Saran saya adalah, pada tingkat tinggi, agar Anda:
1- Gunakan alat mogrify ImageMagick untuk mengurangi foto menjadi thumbnail. Ini akan memakan waktu tetapi akan membuat langkah-langkah perbandingan yang sebenarnya jauh lebih cepat dan lebih akurat.
2 - Gunakan alat perbandingan ImageMagick yang memungkinkan Anda untuk menetapkan ambang batas untuk perbandingan, yaitu memungkinkan Anda menemukan foto yang 85% sama. Anda ingin melakukan percobaan terkontrol untuk mengetahui nilai ambang yang paling Anda sukai.

cody
sumber
Saya sangat suka ide membuat thumbnail ini terlebih dahulu. Apa fungsinya setelah Anda menemukan duplikatnya? Apakah itu hanya menampilkan daftar? Saya memiliki 10 ribu salinan dan GUI yang bagus untuk membantu menyelesaikannya akan sangat berguna.
Fasterz
2
Karena Anda menggunakan Ubuntu, Anda secara otomatis memiliki akses ke sejumlah alat khusus, masing-masing menyelesaikan tugas yang sangat spesifik seperti 2 tugas yang saya sebutkan. Ini adalah permainan Lego, Anda dapat melakukan apa pun yang Anda inginkan, Anda hanya perlu menyatukannya. Secara teknis, Anda memberi makan 2 foto ke alat 'bandingkan' dan itu akan memberi tahu Anda seberapa mirip satu dengan yang lain. Salah satu cara untuk menyelesaikan masalah Anda adalah mengelompokkan semua foto yang sama ke dalam folder sehingga Anda dapat melaluinya untuk memfilter positif palsu. Kemudian Anda jalankan 'bandingkan' pada positif palsu dan ulangi prosesnya sampai semua berada di tempat yang benar.
cody
4

Penampil foto terbuka / penyelenggara Geeqie memiliki Fitur Temukan Duplikat yang kuat . Itu dapat menggunakan beberapa strategi berbeda untuk menemukan duplikat:

  • Nama file (case sensitif atau tidak sensitif)
  • Ukuran file
  • Tanggal file
  • Dimensi gambar
  • MD5 checksum.
  • Konten gambar yang serupa (ke beberapa ambang batas)

Ini memberikan daftar hasil yang dapat menyertakan thumbnail sehingga Anda dapat mengonfirmasi secara manual.

Ini akan mungkin lambat selama ribuan file, tapi saya pikir hanya menggunakannya dan membiarkannya berjalan selama beberapa hari atau apa pun yang mungkin kurang keseluruhan upaya daripada menemukan atau membuat sesuatu disesuaikan untuk kasus - kecuali pertandingan checksum adalah semua yang Anda butuhkan.

mattdm
sumber
Kedengarannya bagus. Apa fungsinya setelah Anda menemukan duplikatnya? Apakah itu hanya menampilkan daftar? Saya memiliki 10 ribu salinan dan GUI yang bagus untuk membantu menyelesaikannya akan sangat berguna.
Fasterz
Ini menampilkannya di jendela GUI.
mattdm
3

Ada sedikit utilitas yang disebut "fdupes" yang dapat melakukan apa yang Anda inginkan?

Ada juga utilitas lain yang disebut "fslint" yang mungkin ingin Anda coba juga. (Yang ini memiliki GUI).

Mike
sumber
Saya baru saja mencoba fslint pada set gambar yang lebih kecil (beberapa manggung) dan membuat frustasi karena hanya duduk di sana dan berputar. Tidak ada indikator kemajuan, perkiraan waktu yang tersisa, tidak ada.
Fasterz
1
Alat-alat ini tampaknya mencari file yang identik. Bahkan gambar yang identik (piksel untuk piksel) dapat berupa konten file yang berbeda. Saya kira Anda ingin mencocokkan tidak hanya gambar yang mirip, tetapi juga melakukannya dalam format dan ukuran yang berbeda, termasuk krop dan pemrosesan lainnya yang telah Anda lakukan, seperti mengumpulkan semua variasi dari foto yang sama dalam satu direktori. Ini akan menjadi perbandingan lembut gambar yang akan memiliki faktor pencocokan kepercayaan diri, dan dapat mencocokkan foto berbeda dari pemandangan yang sama.
Skaperen
@ Skaperen Apa yang Anda sarankan bagus, tetapi apakah ada alat seperti itu untuk Ubuntu? Saya telah melihat satu yang disebutkan di suatu tempat untuk Windows - tapi itu sepertinya memiliki antarmuka yang mengerikan .. dll.
Fasterz
ImageDupeless adalah aplikasi windows yang akan menangkap foto yang mirip, tetapi memiliki beberapa perbedaan. Ini akan menangkap beberapa rotasi, memotong, mengubah ukuran, perubahan warna warna, tanda air, dll ... Anda harus memindai perpustakaan Anda dan mengatakan berapa banyak perbedaan yang Anda terima, dan itu akan menunjukkan kepada Anda file. TETAPI itu akan sangat rumit untuk ratusan file, dan ribuan file akan mengerikan. Saya juga mencari linux yang setara dengan ImageDupeless. Aplikasi yang melakukan wavelet atau keajaiban pencitraan lainnya untuk mengetahui kapan gambar serupa.
Therealstubot
Baca opsi halaman manual untuk fdupes- ada opsi untuk menghapus dupes. askubuntu.com/a/476732
rrauenza
1

dupeGuru Picture Edition adalah pencari gambar duplikat yang dapat disesuaikan untuk Windows, Mac OS X dan Linux.

Ada beberapa versi dupeGuru (edisi standar, musik & gambar), dan edisi gambar memungkinkan Anda menemukan gambar yang mirip secara visual melalui algoritma perbandingan pemblokiran bitmap , di antara metode lain (seperti cap waktu gambar asli EXIF, atau file yang identik) .

Ini memiliki berbagai fitur berguna lainnya seperti folder yang dikecualikan, dukungan untuk pustaka iPhoto / Aperture, dan kustomisasi yang cukup besar tentang cara mendeteksi duplikat dan apa fungsinya.

drfrogsplat
sumber
0

Apa yang Anda maksud dengan foto rangkap? Apakah maksud Anda file yang identik, katakan saja disalin satu atau dua waktu tambahan? atau maksud Anda foto yang "terlihat" sama.

Jika Anda bermaksud file yang identik, Anda dapat menggunakan 'shasum' pada semua file, kemudian memesan hasilnya dan menemukan baris unik dengan 'uniq' dan menjalankan 'diff' untuk melihat apa yang telah dihilangkan. Semua mudah di shell Ubuntu.

Pat Farrell
sumber
Tidak satu pun dari ini mudah atau nyaman. fdupes yang disebutkan di bawah ini sudah akan melakukan pekerjaan yang lebih baik daripada hanya menghitung SHA. Sekarang adakah alat unix yang akan mencari kesamaan gambar? Jika demikian, itu akan luar biasa.
Fasterz
Mudah dan nyaman bagi seseorang yang terbiasa menggunakan alat unix, yang adalah apa yang uniq, sort, diff, shasum, dll. Tapi saya setuju bahwa jika Anda tidak menggunakannya secara teratur, mereka bisa sulit digunakan. Saya tidak tahu apa pun yang dapat melakukan "sepertinya" Semua yang saya lihat, termasuk di Aperture dan Lightroom, melakukan file-is-identik, yang benar-benar hanya md5 atau shasum
Pat Farrell
Saya secara teratur menggunakan alat unix dan saya menemukan jawaban ini agak konyol. Pertama, melakukan SHA secara membabi buta adalah lambat, ketika ukuran file comparizon menyelesaikan sesuatu. Kedua, SHA atau MD5 dapat bertabrakan - jadi perbandingan SHA saja tidak cukup. Jika Anda memperhitungkan kedua hal ini, maka Anda mendapatkan apa yang dilakukan oleh fdupes.
Fasterz
Juga, setelah Anda menyihir mantera yang melakukan ini dengan benar, hasilnya masih tidak terlalu berguna. Paling-paling Anda mendapatkan output dari fdupes yang merupakan dump file yang serupa. Dalam kasus saya, saya punya 10-an ribu dan sangat sulit untuk mengambil data itu untuk melihat bagaimana saya bisa menghilangkan duplikat.
Fasterz
1
SHA bertabrakan secara teori, tetapi tidak dalam praktik. Ya, itu butuh selamanya. Tidak ada yang bekerja akan menjadi cepat. Tetapi Anda harus dapat memulai dan kembali dalam satu atau dua hari. Itu hanya saran, aku tidak akan terlibat perang.
Pat Farrell
0

Ada aplikasi yang disebut "bleachbit", yang menemukan file duplikat berdasarkan ukuran, nama, dan filter lainnya. Anda dapat menginstalnya dari manajer paket synapctic di ubuntu.

chuisco
sumber
Apa fungsinya setelah Anda menemukan duplikatnya? Apakah itu hanya menampilkan daftar? Saya memiliki 10 ribu salinan dan GUI yang bagus untuk membantu menyelesaikannya akan sangat berguna.
Fasterz