객체 분할 및 위치 이동에 대한 프로젝트 문서에 오신 것을 환영합니다. 이 저장소에는 텍스트 프롬프트를 기반으로 주어진 이미지의 개체를 분할한 다음 동일한 장면 내의 새 위치로 개체를 이동하는 코드가 포함되어 있습니다. 최첨단 생성 AI 모델을 활용하여 사용자 친화적인 방식으로 이 작업을 수행합니다.
이 프로젝트에는 특히 전자 상거래 목적을 위한 제품 이미지의 후반 작업 편집을 목표로 하는 두 가지 주요 작업이 포함됩니다.
작업 1: 텍스트 프롬프트(예: "선반")를 기반으로 이미지의 개체를 분할하고 빨간색 마스크로 강조 표시합니다.
작업 2: 사용자가 지정한 대로 x 및 y 방향으로 이동하여 장면 내에서 개체를 이동합니다.
예를 들어 '선반'이 포함된 이미지가 있을 수 있습니다. 분할을 실행하여 이미지의 모든 선반을 강조 표시할 수 있습니다. 그런 다음 픽셀 오프셋을 사용하여 장면 내에서 식별된 선반을 이동할 수 있습니다.
텍스트 기반 개체 분할: "선반"과 같은 클래스 프롬프트를 사용하여 개체를 식별하고 강조 표시합니다.
위치 이동: x(가로) 및 y(세로) 방향으로 픽셀 값만큼 개체를 이동합니다.
사전 구축된 모델: 재교육 없이 객체 조작을 위해 SAM(Segment Anything Model) 및 Stable Diffusion Inpainting과 같은 기존 모델을 활용합니다.
프로젝트를 로컬로 설정하려면 다음 단계를 따르세요.
저장소를 복제합니다.
git clone https://github.com/your-repo/object-segmentation-shift.git
cd object-segmentation-shift
가상 환경 생성 및 활성화:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
설치 종속성:
pip install -r requirements.txt
수업 프롬프트를 기반으로 이미지의 객체를 분할하려면:
python run.py --image ./example.jpg --class shelf --output ./generated.png
이 명령은 example.jpg
가져와서 클래스 프롬프트(예: "shelf")에 지정된 객체의 모든 인스턴스를 분할하고 해당 객체에 빨간색 마스크가 있는 이미지를 출력합니다.
이미지에서 분할된 개체를 이동하려면:
python run.py --image ./example.jpg --class shelf --x 80 --y 0
그러면 식별된 선반이 오른쪽으로 80픽셀, 수직 방향으로 0픽셀 이동됩니다.
샘플 이미지에 알고리즘을 적용한 결과는 다음과 같습니다.
입력 이미지 | 세분화(작업 1) | 이동된 개체(작업 2) |
---|---|---|
데이터 | res1 | res2 |
작업 1: 개체가 빨간색으로 강조 표시됩니다.
세분화 전
분할 후
작업 2: 사용자가 정의한 x 및 y 값에 따라 개체가 이동됩니다.
복잡한 객체 경계: 객체에 복잡한 경계가 있거나 부분적으로 가려진 경우 분할이 완벽하지 않을 수 있습니다.
변화하는 아티팩트: 배경이 복잡한 개체를 이동할 때 배경이 자연스럽게 재생성되도록 하는 것은 어려운 일입니다.
모델 미세 조정: 분할 정밀도를 향상시키기 위해 미세 조정 기술을 실험합니다.
원활한 배경 페인팅: 고급 인페인팅 기술을 사용하여 개체 이동 후 배경 재구성을 처리합니다.
이 프로젝트에 기여하고 싶다면 다음 단계를 따르세요.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.