Selamat datang di dokumentasi proyek untuk Segmentasi Objek dan Pergeseran Posisi. Repositori ini berisi kode untuk mengelompokkan objek dalam gambar tertentu berdasarkan perintah teks dan kemudian memindahkan objek ke posisi baru dalam adegan yang sama. Ini memanfaatkan model AI generatif mutakhir untuk menyelesaikan tugas ini dengan cara yang mudah digunakan.
Proyek ini melibatkan dua tugas utama yang ditujukan untuk pengeditan gambar produk pasca produksi, khususnya untuk tujuan e-commerce.
Tugas 1: Menyegmentasikan objek dalam gambar berdasarkan perintah teks (misalnya, "rak") dan menyorotnya dengan topeng merah.
Tugas 2: Memindahkan objek dalam adegan dengan menggesernya ke arah x dan y, sesuai yang ditentukan oleh pengguna.
Misalnya, Anda mungkin memiliki gambar yang berisi "rak". Anda dapat menjalankan segmentasi untuk menyorot semua rak pada gambar. Kemudian, Anda dapat memindahkan rak yang teridentifikasi dalam adegan menggunakan offset piksel.
Segmentasi Objek Berbasis Teks: Mengidentifikasi objek menggunakan perintah kelas seperti "rak" dan menyorotnya.
Pergeseran Posisi: Memindahkan objek berdasarkan nilai piksel dalam arah x (horizontal) dan y (vertikal).
Model yang dibuat sebelumnya: Memanfaatkan model yang sudah ada seperti SAM (Segment Anything Model) dan Stable Diffusion Inpainting untuk manipulasi objek tanpa memerlukan pelatihan ulang.
Untuk menyiapkan proyek secara lokal, ikuti langkah-langkah berikut:
Kloning Repositori:
git clone https://github.com/your-repo/object-segmentation-shift.git
cd object-segmentation-shift
Membuat dan Mengaktifkan Lingkungan Virtual:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
Instal Ketergantungan:
pip install -r requirements.txt
Untuk mengelompokkan objek dalam gambar berdasarkan perintah kelas:
python run.py --image ./example.jpg --class shelf --output ./generated.png
Perintah ini akan mengambil example.jpg
, mengelompokkan semua instance objek yang ditentukan dalam prompt kelas (misalnya, "rak"), dan menampilkan gambar dengan topeng merah pada objek tersebut.
Untuk menggeser objek tersegmentasi pada gambar:
python run.py --image ./example.jpg --class shelf --x 80 --y 0
Ini akan memindahkan rak yang teridentifikasi 80 piksel ke kanan dan 0 piksel ke arah vertikal.
Berikut hasil penerapan algoritma pada gambar sampel:
Masukan Gambar | Segmentasi (Tugas 1) | Objek Bergeser (Tugas 2) |
---|---|---|
Data | res1 | res2 |
Tugas 1: Objek disorot dengan warna merah.
Sebelum segmentasi
Setelah segmentasi
Tugas 2: Objek digeser sesuai nilai x dan y yang ditentukan pengguna.
Batasan Objek yang Kompleks: Dalam kasus di mana objek memiliki batas yang rumit atau sebagian kabur, segmentasi mungkin tidak sempurna.
Pergeseran Artefak: Saat memindahkan objek dengan latar belakang yang kompleks, memastikan bahwa latar belakang beregenerasi secara alami menimbulkan tantangan.
Model Penyempurnaan: Bereksperimen dengan teknik penyempurnaan untuk meningkatkan presisi segmentasi.
Inpainting Latar Belakang Mulus: Menggunakan teknik inpainting tingkat lanjut untuk menangani rekonstruksi latar belakang setelah pergerakan objek.
Jika Anda ingin berkontribusi pada proyek ini, silakan ikuti langkah-langkah berikut:
Proyek ini dilisensikan di bawah Lisensi MIT. Lihat file LISENSI untuk detailnya.