반응형
5. 세부 조정 및 보정
이 단계에서는 가상 피팅 이미지의 품질을 향상시키기 위해 의류와 신체의 경계 부분을 자연스럽게 처리하고, 그림자 및 주름 등의 디테일을 추가하여 더 현실감 있는 결과를 만드는 작업을 수행합니다.
1. 경계 부드럽게 처리하기
의류와 신체의 경계 부분을 부드럽게 처리하기 위해 블러 효과를 적용할 수 있습니다. 이를 통해 합성된 이미지가 더 자연스럽게 보이게 할 수 있습니다.
def smooth_edges(fitting_image, segmentation_mask):
# 경계 부분 블러 처리
blurred_image = cv2.GaussianBlur(fitting_image, (5, 5), 0)
# 세그멘테이션 마스크를 사용하여 원본 이미지와 블러 처리된 이미지를 결합
smoothed_image = np.where(segmentation_mask[..., None] > 0, fitting_image, blurred_image)
return smoothed_image
2. 그림자 및 주름 추가
그림자와 주름을 추가하는 것은 좀 더 복잡하지만, 간단한 방법으로 그림자를 추가할 수 있습니다. 여기서는 의류 아래에 그림자를 추가하는 방법을 설명합니다.
def add_shadow(fitting_image, warped_clothing):
# 그림자 색상 정의 (검은색)
shadow_color = np.array([0, 0, 0], dtype=np.uint8)
# 의류 아래에 그림자 추가 (단순히 아래쪽으로 이동)
shadow_offset = 10 # 그림자 위치 오프셋
for y in range(warped_clothing.shape[0]):
for x in range(warped_clothing.shape[1]):
if y + shadow_offset < fitting_image.shape[0] and x < fitting_image.shape[1]:
if warped_clothing[y, x, :3].any(): # 의류가 있는 경우
fitting_image[y + shadow_offset, x] = shadow_color
return fitting_image
3. 메인 함수 수정
메인 함수를 수정하여 최종 이미지를 부드럽게 하고 그림자를 추가하도록 합니다.
def main():
person_image_path = 'input/person.jpg'
clothing_image_path = 'input/clothing.jpg'
# Load images
person_image = load_image(person_image_path)
clothing_image = load_clothing_image(clothing_image_path)
# Preprocess images
person_image_processed = preprocess_image(person_image)
clothing_image_processed = preprocess_clothing_image(clothing_image)
# Load segmentation model
model = load_segmentation_model()
# Segment person from the image
segmentation_mask = segment_person(person_image_processed, model)
# Estimate body pose
body_landmarks = estimate_body_pose(person_image_processed)
# Calculate body measurements
measurements = calculate_body_measurements(body_landmarks)
# Warp clothing to fit the body measurements
warped_clothing = warp_clothing_to_body(clothing_image_processed, measurements)
# Composite images to create the final fitting image
fitting_image = composite_images(person_image.copy(), warped_clothing, segmentation_mask)
# Smooth edges and add shadow
fitting_image_smoothed = smooth_edges(fitting_image.copy(), segmentation_mask)
final_fitting_image = add_shadow(fitting_image_smoothed, warped_clothing)
# Display results
display_image(final_fitting_image, title="Final Fitting Image")
if __name__ == "__main__":
main()
4. 코드 실행
위 코드를 작성한 후, 터미널에서 다음 명령어로 실행합니다:
python main.py
이 코드는 최종 가상 피팅 이미지를 부드럽게 하고 그림자를 추가하여 더욱 현실감 있는 결과를 생성합니다. smooth_edges
함수는 경계 부분을 부드럽게 처리하고, add_shadow
함수는 의류 아래에 그림자를 추가합니다.
반응형
'생성형 AI 활용하기' 카테고리의 다른 글
생성형 AI를 활용한 가상 피팅 개발하기 (4) (1) | 2024.12.12 |
---|---|
생성형 AI를 활용한 가상 피팅 개발하기 (3) (0) | 2024.12.12 |
생성형 AI를 활용한 가상 피팅 개발하기 (2) (1) | 2024.12.12 |
생성형 AI를 활용한 가상 피팅 개발하기 (1) (0) | 2024.12.12 |
PT 프롬프트 똑똑하게 질문하는 방법 (1) | 2024.12.11 |