Camera Futura menggunakan ML.NET untuk mengotomatiskan pengambilan dan pengorganisasian foto
Pelanggan
Camera Futura
Produk & jasa
ML.NET
WPF
Visual Studio 2019
Industri
Media & Hiburan
Ukuran Organisasi
Kecil (1-100 karyawan)
Negara/wilayah
Swiss
Camera Futura adalah perusahaan yang berbasis di Jenewa, Swiss. Tujuan perusahaan adalah untuk mengembangkan dan mengomersialkan perangkat lunak terobosan bagi peminat dan fotografer profesional.
Produk utama yang saat ini sedang dalam produksi adalah Futura Photo, aplikasi desktop yang dapat mengotomatiskan pemusnahan foto (proses pemilihan gambar terbaik dari pemotretan) dan dapat mengatur foto sebelum memulai pasca-pemrosesan. Futura Photo bertindak sebagai 'asisten cerdas dan dipersonalisasi.'
Masalah bisnis
Fotografer menghabiskan banyak waktu untuk memotret gambar, dan banyak yang menikmati meningkatkan foto melalui pasca-pemrosesan. Namun, beberapa langkah diperlukan setelah pemotretan dan sebelum pasca-pemrosesan. Langkah-langkah ini, yang memusnahkan foto dan menata foto untuk pasca-pemrosesan, tidak semenarik bagian lain dari proses fotografi dan dapat sangat memakan waktu.
Memusnahkan gambar berarti membuang gambar berkualitas rendah. 'Kualitas rendah' berarti bahwa foto tersebut tidak diambil sebagaimana dimaksud karena alasan teknis, bukan artistik.
Menata gambar melibatkan pemindahan gambar ke folder yang tepat. Ini dapat berarti beberapa hal yang berbeda, seperti memilih antara gambar RAW atau JPG untuk pasca-pemrosesan,menyatukan gambar untuk membuat panorama, dan menumpuk gambar untuk makro atau astrofotografi. Ketika berbicara tentang selang waktu, mengatur berarti menemukan foto yang benar (mungkin ratusan gambar untuk setiap selang waktu) dan mengunggahnya ke perangkat lunak yang akan membuat video selang waktu.
Ada juga tugas penting yang menggabungkan pemusnahan dan pengorganisasian: mengumpulkan serangkaian gambar serupa dan memilih gambar terbaik dari grup. Fotografer cenderung memotret banyak gambar dari subjek yang sama (dari olahraga aksi hingga acara hingga hanya gambar anak-anak mereka bermain). Memilih beberapa gambar terbaik, meski sangat penting, juga bisa membuat frustrasi ketika fotografer harus melalui lusinan grup seperti itu untuk setiap pemotretan.
Foto Futura, yang terutama berfokus pada membantu fotografer antusias yang memotret sekitar 10.000 hingga 25.000 gambar per tahun, memberikan pengalaman unik untuk membantu mengatasi frustrasi dengan pemusnahan dan pengaturan gambar. Meskipun otomatisasi pemusnahan dan pengaturan foto bukan konsep baru, masalahnya menjadi sangat kompleks ketika Anda melampaui dasar-dasarnya, seperti mencoba menemukan gambar yang benar-benar kabur atau mengelompokkan bersama gambar yang sangat mirip.
Ada beberapa alasan mengapa otomatisasi ini tidak mudah; ada banyak pertanyaan yang harus dijawab fotografer sebelum memulai pasca-pemrosesan foto, seperti:
- Apa arti gambar yang tajam?
- Apa alasan (baik atau buruk) mengapa fotografer memotret banyak gambar serupa?
- Ketika fotografer memotret RAW + JPG, kapan file RAW diperlukan, bukan file JPG?
- Mengapa gambar dengan wajah manusia dengan mata tertutup dibuang, atau haruskah diproses setelahnya sebagai sesuatu yang dilakukan dengan sengaja?
- Ketika fotografer memotret gambar yang serupa, apakah mereka menumpuk anggota untuk tumpukan fokus (makro), HDR (lanskap), tujuan multi-pencahayaan (kreatif), atau hanya semburan gambar (olahraga)?
Daftar jenis pertanyaan ini cukup panjang, tetapi menjawabnya adalah sesuatu yang ingin dilakukan oleh Camera Futura dengan pembelajaran mesin. Banyak nilai tambah berasal dari 'Asisten Pintar' yang disesuaikan dengan kebutuhan fotografer dan dapat menggantikan beberapa langkah alur kerja yang dilakukan secara manual oleh fotografer, tetapi ini tidak mungkin dilakukan tanpa bantuan pembelajaran mesin. Jadi, Futura Photo memutuskan untuk menggunakan klasifikasi gambar untuk membantu fotografer dalam proses pemilihan dan pengorganisasian foto, termasuk memilih gambar terbaik dari sebuah grup.
Mengapa ML.NET?
Ada beberapa alasan mengapa Kamera Futura memilih ML.NET untuk mendukung fitur pembelajaran mesin di perangkat lunak Foto Futura mereka.
Pertama, Camera Futura menggunakan .NET untuk membuat aplikasi mereka, dan menggunakan ML.NET memungkinkan perusahaan untuk tetap berada di ekosistem .NET tanpa harus membuat kode dalam bahasa lain atau mengintegrasikan dengan kerangka kerja non-.NET. Hal ini telah menghilangkan overhead dalam hal mempelajari bahasa baru serta kerumitan dan potensi hit kinerja dari integrasi teknologi non-.NET ke dalam aplikasi .NET.
Selain itu, ML.NET Model Builder di Visual Studio membuat sangat mudah menjalankan skenario klasifikasi gambar, baik untuk membuat prototipe model awal maupun melatih model akhir yang saat ini digunakan dalam produksi. ML.NET sendiri juga menawarkan semua yang diperlukan perusahaan dalam hal ketersediaan model, kustomisasi, dan kinerja keseluruhan.
Dampak ML.NET
Sementara ML.NET mengaktifkan Kamera Futura untuk membangun, melatih, dan menyebarkan model pembelajaran mesin tingkat produksi dengan cepat, kerangka kerja juga membuka peluang baru untuk perusahaan. Untuk start-up, mampu melakukan segala sesuatu di .NET adalah keuntungan besar dan memungkinkan perusahaan untuk mengembangkan fitur yang tidak mungkin untuk dikembangkan jika mengharuskan perusahaan menggunakan beberapa teknologi yang berbeda. Untuk Kamera Futura, ML.NET adalah pengaktif dan alat produktivitas.
Tanpa ML.NET, proses menghadirkan model pertama yang siap produksi akan membutuhkan waktu beberapa bulan lagi."
Arsitektur solusi
Foto Futura saat ini adalah aplikasi desktop WPF pada .NET Framework 4.6.1 (dengan rencana untuk bermigrasi ke .NET Core pada akhir 2021).
Bagaimana itu bekerja
Menggunakan Foto Futura cukup mudah: fotografer mengonfigurasi aturan, mengunggah gambar, memeriksa hasil, dan menerapkannya untuk memindahkan foto ke folder yang tepat.
Pengguna menavigasi melalui tiga jendela utama. Jendela pertama mengelola dan mengonfigurasi aturan yang akan diterapkan, menampilkan galeri gambar utama, memperlihatkan kemajuan selama analisis, dan menampilkan hasil untuk setiap foto, seperti yang diperlihatkan dalam gambar berikut:
Ketika analisis selesai, jendela kedua dapat dibuka untuk memeriksa hasil menurut aturan:
Jendela ketiga dapat dibuka sesuai kebutuhan bagi penampil foto layar penuh untuk mendalami hasil setiap foto:
Data dan pelatihan
Saat ini, Futura Photo menggunakan gambar perusahaan dan data dari Camera Futura untuk pelatihan. Ukuran himpunan data bervariasi per model, tetapi perusahaan biasanya melatih secara lokal dengan 10.000-50.000 gambar per model. Setelah melatih dan mengevaluasi model mereka, mereka menerapkan model bersama dengan aplikasi WPF.
Saat ini ada empat model dalam produksi, tiga di antaranya dibuat menggunakan skenario klasifikasi gambar ML.NET Model Builder di Visual Studio. Model terakhir, yang merupakan model pengklusteran, dibuat dengan API ML.NET.
Skenario klasifikasi gambar digunakan untuk memutuskan apakah suatu gambar memiliki atau tidak memiliki fitur tertentu. Fitur ini dapat berupa apa saja yang tidak dapat dideskripsikan secara formal melalui model matematika.
Misalnya, salah satu model dapat melihat fitur keseimbangan putih untuk membantu menentukan apakah suatu gambar memiliki keseimbangan putih yang tepat atau tidak, dan mengapa (terlalu hijau, terlalu kuning, dll.).
Dalam contoh berikut, keseimbangan putih telah ditentukan dengan baik oleh kamera:
Foto Futura menggunakan model ML.NET yang menghitung keseimbangan putih (seperti yang terlihat dalam diagram di atas) dengan menggunakan kode yang mirip dengan cuplikan kode berikut:
// Method using ML to define whether the camera's AWB
// (Automatic White Balance) estimation is accurate
private Photo CalculationAWB(Photo photo)
{
Photo _photo = photo;
try
{
// Create single instance of sample data from first line of
// dataset for model input
ModelInput inputData = new ModelInput()
{
// FileNameImageLight: path for ad-hoc thumbnail of the
// Photo source object (JPG or RAW file)
ImageSource = _photo.FileNameImageLight
};
// WB_ML_PC: % of likelihood of AWB being either 'OK'
// (well calculated), cold, tint green, tint purple, or warm
// AWB's Accuracy Result ("OK"): predictionResult.Score[1]
// Bias: predictionResult.Score[0] for Cold, [2] for Tint Green,
// [3] for Tint Purple, and [4] for warm
for (int i = 0; i < 5; i++){
_photo.WB_ML_PC[i] = predictionResult.Score[i]) * 100;
}
catch (Exception ex)
{
log.Error(ex, "Throughout ML_IsAWB_OK");
}
return _photo;
}
}
Model lain bisa melihat ketajaman gambar. Secara teori, ada banyak metode matematis yang dapat menentukan apakah suatu gambar tajam, tetapi sebagian besar, jika tidak semua metode, gagal mendeteksi campuran keburaman gerakan dan keburaman di luar fokus. Yang lebih penting lagi, metode ini bergantung pada pengambangan, yang bagus jika Anda membandingkan gambar serupa tetapi tidak cukup akurat untuk memutuskan apakah satu gambar tunggal cukup tajam. Metode ini gagal mendeteksi tingkat ketajaman tertentu karena banyak kasus sudut yang memengaruhi nilai untuk dibandingkan dengan ambang. Menggunakan model klasifikasi gambar yang dilatih dengan ML.NET, Futura Photo dapat memutuskan dengan tingkat positif dan negatif palsu yang sangat rendah jika sebuah gambar cukup tajam.
Model terakhir adalah model pengklusteran yang menggunakan pembelajaran mesin yang tidak diawasi untuk mengelompokkan gambar ke dalam grup 'Pass' (gambar yang telah meminta fitur) atau ke dalam grup 'Gagal' (yang berarti gambar tidak memiliki fitur yang diminta).
Masa Depan Camera Futura
Visi Camera Futura adalah memiliki solusi berbasis cloud yang mencakup pemuatan gambar melalui aplikasi seluler, menjalankan perangkat lunak di Azure, dan menyelesaikan pemusnahan foto di aplikasi desktop. Artinya, semua foto akan siap untuk pasca pemrosesan setelah fotografer kembali ke komputer desktop setelah pemotretan.
Perusahaan saat ini sedang mengembangkan beberapa model lain, termasuk untuk klasifikasi gambar, deteksi objek, dan skenario regresi.
Sementara pengguna akhir Foto Futura saat ini hanya menggunakan model untuk pemusnahan foto atau untuk mengatur pemotretan mereka sebelum pasca-pemrosesan, Kamera Futura juga ingin bereksperimen dengan memungkinkan pelanggan melatih model secara lokal dengan data mereka sendiri untuk model yang lebih baik.
Siap untuk memulai?
Tutorial langkah demi langkah kami akan membantu Anda menjalankan ML.NET di komputer.