WebP 이미지 PNG로 변환하기

  • 구글에서 개발한 이미지 파일 저장방식인 .webp 파일, 지난번에 HEIC 파일처럼 사용량이 늘어나고 있는 확장자 입니다.
  • webp 역시 파이썬에서 이미지 처리에 이용하려면 지원하지 않는 라이브러리들이 있습니다.
  • 그래서 다른 파일형식으로 변환을 해야 하는데요, 이럴때 사용하는 코드 입니다.
  • 오늘은 지난번과 다르게 특정 폴더에 있는 모든 webp 파일을 변환하는 함수로 만들었습니다.
from PIL import Image

def convert_webp_to_png(img_path):
    exts = ['webp', 'WEBP']
    files = []
    for ext in exts:
        files.extend(
            glob.glob('%s/*.%s' % (img_path, ext)))

    for file in files:
        im = Image.open(file).convert('RGB')
        temp = file.split('.')
        new_name = ".".join(temp[0:-1]) + '.png'
        im.save(new_name, 'png')

HEIC(고효율)이미지 JPG로 변환하기

  • 요즘 고효율 사진 저장방식인 .HEIC 파일을 많이 사용하더라구요
  • 그런데 이런 파일을 파이썬에서 이미지 처리에 이용하려면 지원하지 않는 라이브러리들이 있습니다.
  • 그래서 다른 파일형식으로 변환을 해야 하는데요, 이럴때 사용하는 코드 입니다.
  • 이것 저것 다른 방법도 소개되어 있던데, 이게 제일 확실한 것 같아요.
def heic_to_jpg(img_path):
    pillow_heif.register_heif_opener()
    image = Image.open(img_path)
    pathstr, dst = os.path.split(img_path)
    dst = dst.split('.')

    dst = "%s/%s.jpg" % (pathstr, dst[0])
    image.save(dst, format("jpeg"))
    return dst

딥러닝 기반 사진 성별 판독 라이브러리의 정확도 비교

  • 사람의 얼굴이 들어간 사진을 입력하면 성별을 판독해주는 라이브러리들이 있죠.
  • 그런데 이런 라이브러리들이 대체로 동양인에 대한 정확도가 떨어진다고 합니다.
  • 성별 판독 뿐만 아니라 전반적인 얼굴관련 이미지 처리들이 그런것 같아요.
  • 그래서 github에서 star를 많이 받은 3개의 라이브러리를 가지고 테스트를 진행해 봤습니다.
  • 테스트에 사용한 사진은 20대 남/여 사진 100여개를 이용했습니다.
  • 보통 이러한 라이브러리들의 만들어내는 결과값은, 1개의 얼굴이 있지만 여러개가 있다고 판단하는 경우가 있습니다.
  • 또한 아예 얼굴을 찾아내지 못하는 경우도 있구요. 이런 2가지 케이스는 테스트수에서 뺐습니다.
  • 그렇기 때문에 실제 판독 정확성은 더 떨어진다고 보는게 맞습니다.

Gender Detection Keras

  • https://github.com/arunponnusamy/gender-detection-keras
  • keras 기반 라이브러리 입니다.
  • 속도는 제일 느린듯 하구요.
  • 여성 71/92
  • 남성 51/93
  • 제일 정확도가 떨어지네요

Gender and Age Detection

  • https://github.com/smahesh29/Gender-and-Age-Detection
  • Caffe 플랫폼 기반입니다.
  • 속도 빠릅니다.
  • 여성의 경우 위에 것보다 1명으로 판독하는 정확도가 높습니다.
  • 여성 82/104
  • 남성 67/90
  • 1명을 판독 성공했을 때 정확도는 위에것보다 높습니다.

Insightface

  • https://github.com/deepinsight/insightface
  • 제일 유명한 라이브러리죠.
  • 이것도 Caffe 플랫폼 기반으로 보입니다.
  • 역시 속도 빠르구요.
  • 여성 138/149
  • 남성 83/104
  • 여성의 경우 거의 정확한 반면, 남성은 상대적으로 부정확합니다.
  • 그래도 위의 2개보다는 남성이 제일 정확합니다.