열정/연구 일지

[연구 일지] Blob

lime9 2024. 2. 11. 18:54

 

 

Blob이란?

  • Binary Large Object의 약자로 큰 객체를 binary (이진수) 형태로 저장하는 데에 사용된다.
  • 독립체 (entity)로 된 이진수의 집합이라고 볼 수 있다.
  • 이미지, 비디오, 사운드부터 프로젝트, 애플리케이션, 실행 파일 (런타임)까지 모든 것을 하나의 객체로 보고 이진수로 저장하게 된다. 이를 이진수로 된 객체라고 한다.
  • 어떠한 객체를 이진화 (serialize) 시켜서 저장하거나 불러온다는 것은 이러한 객체를 하나의 '상수'로서 이용하겠다는 뜻이 될 수도 있다. 즉, 어떠한 코드를 컴파일한 뒤에 생기는 실행 파일(.exe)은 코드의 수정 없이 단일 객체로서 프로세스를 수행할 것이다. 데이터베이스 영역에서 Blob은 지속적으로 유지되는 상수 데이터로 볼 수 있다.
  • 인공 지능의 object detection, NLP, image classification 등에서는 각 layer 별 연산 또는 최적화된 연산을 Blob의 형태로 runtime (실행 파일)을 만들어 inference 단계에서 사용한다.

이를 통해 Blob은 빠른 multimedia 전송을 제공한다.

 

 

Blob 사용 예시

Blob 파일을 통해 Python language로 image를 불러오는 코드는 다음과 같다.

# import required libraries
from __future__ import print_function

# import Image from wand.image module
from wand.image import Image

with open('image_path') as f:
	# get blob from image file
	image_blob = f.read()
    
with Image(blob = image_binary) as img:
	print('height =', img.height)
	print('width =', img.width)