ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL 2023.06.29
    내일배움캠프 2023. 6. 29. 20:40

    오늘도 조리로 AI의 버그를 잡았다.

    원인은 조리로앱 테스트 코드 작성 중에 발견했다.

     

    def get_temporary_image(temp_file):
        size = (200, 200)
        color = (255, 0, 0, 0)
        image = Image.new("RGBA", size, color)
        image.save(temp_file, "png")
        return temp_file

    템프 이미지를 생성하기 위해 이런 함수를 작성했는데,

    보면 RGBA 형식으로 4 채널의 이미지를 생성한다.

     

    저 이미지를 조리로 AI에 넣으니

    RuntimeError: The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 0

    이런 에러가 발생했다.

    이는 조리로 AI가 받는 이미지 형식이 3채널 이미진데 4채널 이미지를 넣어줘서 발생한 문제로 보인다.

     

    def get_temporary_image(temp_file):
        size = (200, 200)
        color = (255, 0, 0)
        image = Image.new("RGB", size, color)
        image.save(temp_file, "png")
        return temp_file

    그래서 이렇게 RGB 3 채널 형식의 이미지로 만들어 주었더니 에러는 발생하지 않았다.

     

    여기서 번뜩하여 사용자들이 조리로 AI 이용에 실패했던 사진들로 테스트를 해봤더니

    역시 4 채널이거나 단일채널인 이미지들이었다.

     

    그리하야

    # 이미지, 배경, 모델 로드
    img = Image.open(instance.image)
    # 3 채널로 변환
    img = img.convert("RGB")

    밑에 한 줄을 추가함으로써 이미지를 3 채널로 변환해 주는 작업을 하였고,

    실패했던 이미지들 모두 통과가 되었다.

    '내일배움캠프' 카테고리의 다른 글

    WIL 내일배움캠프 16주차  (0) 2023.06.30
    TIL 2023.06.30  (0) 2023.06.30
    TIL 2023.06.28  (0) 2023.06.28
    TIL 2023.06.27  (0) 2023.06.27
    TIL 2023.06.26  (0) 2023.06.26
Designed by Tistory.