OpenCV 비전 실무용어집← 이전목차다음 →MetaContents

용어집

용어집

장마다 나온 용어를 한곳에 모았습니다. 위의 찾기 칸에 낱말을 넣으면 그 줄만 남습니다.

1장 · AI 비전과 OpenCV 개발환경

용어설명
컴퓨터비전(computer vision)컴퓨터가 사진과 동영상을 보고 그 안에 무엇이 있는지 알아내게 하는 기술입니다. vision 은 "보는 힘, 시력"이라는 뜻입니다.
AI 비전(AI vision)컴퓨터비전 가운데 인공지능(AI, Artificial Intelligence) 모델을 써서 사진을 알아보는 쪽을 가리키는 말입니다. 이 과정에서는 컴퓨터비전과 거의 같은 뜻으로 씁니다.
이미지(image)사진이나 그림 한 장입니다. 우리말로는 영상이라고도 합니다. image 는 라틴어 imago(닮은 모습)에서 온 말입니다.
동영상(video)이미지 여러 장을 빠르게 넘겨 움직이는 것처럼 보이게 한 것입니다. video 는 라틴어로 "나는 본다"라는 뜻입니다.
픽셀(pixel)이미지를 이루는 가장 작은 네모 한 칸입니다. picture(그림)와 element(요소)를 줄여 붙인 말입니다.
해상도(resolution)이미지가 가로세로 몇 칸으로 되어 있는지입니다. 320×240 이면 가로 320칸, 세로 240칸입니다. resolution 은 "잘게 나누어 보는 힘"이라는 뜻입니다.
채널(channel)픽셀 한 칸에 들어 있는 숫자 하나하나의 몫입니다. 컬러 이미지는 파랑, 초록, 빨강의 세 채널을 가집니다. channel 은 "물길, 통로"라는 뜻입니다.
BGR(Blue-Green-Red)OpenCV 가 색 숫자 세 개를 파랑, 초록, 빨강 순서로 적는 방식입니다. 흔히 쓰는 RGB(Red-Green-Blue)와 순서가 거꾸로입니다.
영상처리(image processing)이미지의 숫자를 계산으로 바꿔 밝게 하거나, 흐리게 하거나, 테두리를 찾는 일입니다. processing 은 "가공, 처리"라는 뜻입니다.
전처리(preprocessing)AI 모델에 넣기 전에 데이터를 손질하는 일입니다. pre(미리)와 processing(처리)을 붙인 말입니다.
딥러닝(deep learning)층을 여러 겹 깊게 쌓은 인공 신경망으로 데이터에서 규칙을 배우는 방법입니다. deep 은 "깊은", learning 은 "배움"이라는 뜻입니다.
분류(classification)사진 한 장에 "사과", "귤"처럼 이름 하나를 붙이는 일입니다. class(갈래)로 나눈다는 뜻입니다.
객체 탐지(object detection)사진 속 물건이 어디에 있는지 네모 상자로 표시하는 일입니다. object 는 "물체", detection 은 "찾아냄"이라는 뜻입니다.
분할(segmentation)물건의 테두리를 따라 픽셀 단위로 오려 내는 일입니다. segment 는 "조각"이라는 뜻입니다.
YOLO(You Only Look Once)사진을 한 번만 훑어보고 물건의 위치와 이름을 함께 찾는 객체 탐지 모델입니다. 이름은 "한 번만 본다"라는 뜻입니다. 17장부터 다룹니다.
라이브러리(library)남이 만들어 둔 코드 묶음입니다. 가져다 부르기만 하면 됩니다. library 는 "도서관"이라는 뜻입니다.
NumPy(Numerical Python)숫자 표(배열)를 빠르게 계산하는 파이썬 라이브러리입니다. OpenCV 가 읽은 이미지는 NumPy 배열로 들어옵니다. 이름은 "숫자 계산용 파이썬"이라는 뜻입니다.
Matplotlib그래프와 그림을 화면에 그려 주는 파이썬 라이브러리입니다. MATLAB 이라는 프로그램처럼 그림을 그린다(plot)는 데서 붙은 이름입니다.
ndarray(N-dimensional array)NumPy 의 배열 자료형입니다. N 차원(가로, 세로, 채널처럼 여러 방향)으로 숫자를 담습니다.
uint8(unsigned integer 8-bit)0부터 255까지의 정수만 담는 자료형입니다. unsigned 는 "음수 부호가 없는", 8-bit 는 "2진수 8자리"라는 뜻입니다.
가상환경(virtual environment)과목이나 프로젝트마다 따로 쓰는 파이썬 작업 공간입니다. 패키지 버전이 서로 섞이지 않게 합니다. virtual 은 "실제는 아니지만 그런 것처럼 쓰는"이라는 뜻입니다.
pip파이썬 패키지를 내려받아 설치하는 프로그램입니다. "Pip Installs Packages(pip 은 패키지를 설치한다)"를 줄인 이름으로 알려져 있습니다.
VS Code(Visual Studio Code)마이크로소프트가 만든 무료 코드 편집기입니다. 이 과정에서 코드를 쓰고 실행하는 곳입니다.

2장 · 이미지 입출력과 영상 시각화

용어설명
파일 형식(file format)그림의 숫자를 파일에 어떤 규칙으로 적는지 정한 약속입니다. format 은 "짜임새, 꼴"이라는 뜻입니다.
확장자(extension)파일 이름 끝의 .png, .jpg 같은 꼬리입니다. extension 은 "늘여 붙인 것"이라는 뜻입니다. OpenCV 는 저장할 때 이 꼬리를 보고 형식을 고릅니다.
압축(compression)같은 내용을 더 적은 바이트로 적는 일입니다. compress 는 "눌러 담다"라는 뜻입니다.
무손실 압축(lossless compression)줄였다가 풀면 숫자가 하나도 바뀌지 않는 압축입니다. loss(잃음)가 less(없음)라는 뜻입니다.
손실 압축(lossy compression)눈에 덜 띄는 정보를 버려 파일을 더 작게 만드는 압축입니다. 풀어도 원래 숫자로 돌아가지 않습니다.
PNG(Portable Network Graphics)무손실 압축 그림 형식입니다. 이름은 "어디서나 옮겨 쓰는 네트워크용 그림"이라는 뜻입니다. 투명도도 담을 수 있습니다.
JPEG(Joint Photographic Experts Group)사진에 알맞은 손실 압축 형식입니다. 이 형식을 만든 "사진 전문가 공동 모임"의 이름이 그대로 형식 이름이 됐습니다. 확장자는 .jpg 나 .jpeg 를 씁니다.
BMP(Bitmap)압축하지 않고 숫자를 그대로 늘어놓는 Windows 의 그림 형식입니다. bit(비트)로 만든 map(지도)이라는 뜻입니다.
품질(quality)JPG 로 저장할 때 얼마나 덜 버릴지 정하는 0~100 의 숫자입니다. 클수록 원본에 가깝고 파일이 큽니다.
알파 채널(alpha channel)칸마다 "얼마나 비치는지"를 적은 네 번째 숫자입니다. 0 이면 투명, 255 면 불투명입니다. 그림을 겹치는 식에서 이 값을 그리스 문자 알파(α)로 적은 데서 붙은 이름입니다.
BGRA(Blue-Green-Red-Alpha)OpenCV 가 투명한 그림의 칸마다 파랑, 초록, 빨강, 알파의 네 숫자를 적는 순서입니다.
읽기 모드(read flag)cv2.imread 에 "어떤 모양으로 읽을지"를 알려 주는 값입니다. flag 는 "깃발, 표시"라는 뜻입니다.
바이트(byte)컴퓨터가 저장 크기를 세는 단위입니다. 1바이트는 8비트이고 0~255 의 숫자 하나를 담습니다. 1KB(킬로바이트)는 1,024바이트입니다.
좌표(coordinate)그림 안의 한 자리를 가리키는 숫자 짝입니다. co(함께)와 ordinate(순서를 정한 것)를 붙인 말입니다.
원점(origin)좌표를 세기 시작하는 자리입니다. 그림에서는 왼쪽 위 칸이 (0, 0) 입니다.
슬라이싱(slicing)img[10:50, 20:80] 처럼 배열의 한 구간을 썰어 꺼내는 일입니다. slice 는 "얇게 썬 조각"이라는 뜻입니다.
잘라 내기(crop)그림에서 필요한 네모 부분만 남기는 일입니다. crop 은 "작물을 베다, 짧게 깎다"라는 뜻입니다.
평균 절대 차이(MAE, Mean Absolute Error)두 그림의 같은 자리 숫자끼리 뺀 값을 모두 양수로 바꿔 평균 낸 값입니다. 0 이면 두 그림이 똑같습니다.
인코딩(encoding)배열을 PNG, JPG 같은 파일 꼴의 바이트로 바꾸는 일입니다. 반대로 바이트를 배열로 푸는 일은 디코딩(decoding)입니다. code 는 "약속된 부호"라는 뜻입니다.
figureMatplotlib 에서 그림 전체를 담는 도화지입니다. figure 는 "모양, 그림"이라는 뜻입니다.
axesfigure 안에 그림 하나가 들어가는 칸입니다. 가로축과 세로축(axis)을 가진 칸이라 축의 복수형 이름이 붙었습니다.
서브플롯(subplot)도화지 하나를 격자로 나눈 칸 하나하나입니다. sub(아래, 작은)와 plot(그래프)을 붙인 말입니다.
보간(interpolation)그림을 키울 때 원래 칸 사이에 없는 값을 채워 넣는 방법입니다. inter(사이)와 polate(다듬다)를 붙인 말입니다.
dpi(dots per inch)1인치(약 2.54cm)에 점을 몇 개 찍는지입니다. 그림을 저장할 때 dpi 가 클수록 픽셀 수가 많아집니다.

3장 · 디지털 영상과 색공간 변환

용어설명
좌표(coordinate)그림 안의 한 자리를 가리키는 숫자 짝입니다. OpenCV 함수에는 (x, y), 배열에는 [y, x] 순서로 적습니다. coordinate 는 "함께 정하는 것"이라는 뜻입니다.
슬라이싱(slicing)배열에서 img[10:20, 30:40] 처럼 범위를 주어 한 덩어리를 꺼내는 일입니다. slice 는 "얇게 썬 조각"이라는 뜻입니다.
복사본(copy)숫자 표를 통째로 하나 더 만든 것입니다. 복사본을 고쳐도 원본은 그대로입니다.
화소 수(pixel count)그림의 칸 수, 곧 가로 칸 수 × 세로 칸 수입니다. 100만 칸을 메가픽셀(megapixel, mega 는 "백만")이라고 부릅니다.
비트 깊이(bit depth)픽셀 숫자 하나를 담는 데 쓰는 비트 수입니다. 8비트면 256단계, 16비트면 65,536단계를 적습니다.
데이터형(data type)배열이 담는 숫자의 종류입니다. NumPy 에서는 dtype 으로 확인합니다. dtype 은 data type 을 줄인 말입니다.
float32(32-bit floating point)소수를 담는 데이터형입니다. 숫자 하나에 32비트(4바이트)를 씁니다. floating point 는 "소수점이 떠다니는(자리를 옮기는) 수"라는 뜻입니다.
정규화(normalization)숫자를 정해진 범위로 바꾸는 일입니다. 이 장에서는 0~255 를 255 로 나눠 0.0~1.0 으로 바꿉니다. normal 은 "기준에 맞춘"이라는 뜻입니다.
클리핑(clipping)범위를 벗어난 숫자를 범위 끝 값으로 잘라 맞추는 일입니다. clip 은 "가위로 자르다"라는 뜻입니다.
빛의 삼원색(primary colors of light)빨강, 초록, 파랑의 세 빛입니다. 이 셋을 섞어 거의 모든 색을 만듭니다.
가산 혼합(additive mixing)빛을 겹칠수록 밝아지는 색 섞기입니다. additive 는 "더하는"이라는 뜻입니다. 물감은 섞을수록 어두워지므로 반대입니다.
색공간(color space)색을 숫자 몇 개로, 어떤 뜻으로 적을지 정한 약속입니다. RGB, HSV, Lab 등이 있습니다.
RGB(Red-Green-Blue)색을 빨강, 초록, 파랑 빛의 세기로 적는 색공간입니다. 화면과 Matplotlib 이 쓰는 순서입니다.
그레이스케일(grayscale)회색의 단계만으로 나타낸 흑백 그림입니다. gray(회색)와 scale(눈금)을 붙인 말입니다. OpenCV 에서는 GRAY 라고 적습니다.
가중 평균(weighted average)값마다 무게(중요도)를 달리 곱해 더한 평균입니다. weight 는 "무게"라는 뜻입니다.
HSV(Hue-Saturation-Value)색을 색상, 채도, 명도의 세 숫자로 적는 색공간입니다.
색상(hue)빨강, 노랑, 초록처럼 색의 이름을 정하는 값입니다. 색상환 위의 자리(각도)로 적습니다.
채도(saturation)색이 얼마나 진한지입니다. saturation 은 "흠뻑 젖음, 가득 참"이라는 뜻입니다.
명도(value)색이 얼마나 밝은지입니다. 이 장에서는 HSV 의 V 를 가리킵니다.
색상환(color wheel)빨강, 노랑, 초록, 청록, 파랑, 자홍을 원 둘레에 차례로 놓은 원판입니다. 한 바퀴가 360도입니다.
마스크(mask)고른 칸은 흰색(255), 고르지 않은 칸은 검정(0)으로 적은 흑백 그림입니다. mask 는 "가면, 가림판"이라는 뜻입니다.
inRange(in range)픽셀 값이 정한 범위 안에 들면 255, 아니면 0 으로 적어 마스크를 만드는 OpenCV 함수입니다. 이름은 "범위 안에"라는 뜻입니다.
비트 연산(bitwise operation)두 그림의 같은 자리 숫자를 비트 단위로 AND(그리고), OR(또는) 하는 계산입니다. 마스크를 합치거나 마스크로 오려 낼 때 씁니다.
Lab(CIE L*a*b*)밝기 L 과 색 a, b 로 적는 색공간입니다. CIE 는 국제조명위원회(Commission Internationale de l'Éclairage)의 머리글자입니다.
YCrCb(밝기와 색차)밝기 Y 와 빨강 쪽 색차 Cr(chroma red), 파랑 쪽 색차 Cb(chroma blue)로 적는 색공간입니다. chroma 는 "색"이라는 뜻입니다.

4장 · 채널 처리와 히스토그램 분석

용어설명
채널(channel)픽셀 한 칸에 담긴 숫자 하나하나의 몫입니다. 컬러 그림은 B, G, R 세 채널을 가집니다. channel 은 "물길, 통로"라는 뜻입니다.
채널 분리(split)컬러 그림 한 장을 채널마다 흑백 그림 한 장씩, 세 장으로 나누는 일입니다. split 은 "쪼개다"라는 뜻입니다.
채널 병합(merge)흑백 그림 여러 장을 채널로 겹쳐 컬러 그림 한 장으로 합치는 일입니다. merge 는 "합치다"라는 뜻입니다.
인덱싱(indexing)배열에서 번호(index, 색인)로 원하는 칸을 꺼내는 일입니다. img[:, :, 0] 은 모든 칸의 0번 채널을 꺼냅니다.
뷰(view)원본 배열의 숫자를 함께 쓰면서 보는 창만 달리한 배열입니다. 뷰를 고치면 원본도 바뀝니다. view 는 "보기, 시야"라는 뜻입니다.
복사본(copy)원본과 따로 숫자를 담은 배열입니다. 복사본을 고쳐도 원본은 그대로입니다.
색 경향(color cast)사진 전체가 한쪽 색으로 쏠린 정도입니다. cast 는 "드리우다"라는 뜻으로, 색이 사진에 드리워졌다는 말입니다.
cv2.mean그림의 채널마다 평균을 구하는 OpenCV 함수입니다. mean 은 "평균"이라는 뜻입니다.
히스토그램(histogram)값을 구간으로 나눠 구간마다 몇 개인지 세어 막대로 그린 그래프입니다. 그리스어 histos(세운 것, 기둥)와 gramma(그림)를 붙인 말로 알려져 있습니다.
구간(bin)히스토그램에서 값을 묶는 칸 하나입니다. bin 은 "통, 상자"라는 뜻으로, 값을 상자에 나눠 담는다는 말입니다.
도수(frequency)구간 하나에 들어간 값의 개수입니다. frequency 는 "자주 일어나는 정도"라는 뜻입니다.
cv2.calcHist그림의 히스토그램을 세는 OpenCV 함수입니다. calculate histogram(히스토그램 계산)을 줄인 이름입니다.
np.histogramNumPy 로 히스토그램을 세는 함수입니다. 도수와 구간 경계를 함께 돌려줍니다.
밝기 분포(brightness distribution)사진의 칸들이 어떤 밝기에 얼마나 모여 있는지입니다. distribution 은 "나누어 퍼진 모양"이라는 뜻입니다.
노출(exposure)사진을 찍을 때 빛을 받아들인 양입니다. 많으면 밝게(과다 노출), 적으면 어둡게(노출 부족) 찍힙니다. expose 는 "드러내다, 쬐다"라는 뜻입니다.
대비(contrast)사진에서 밝은 곳과 어두운 곳의 차이입니다. 대비가 낮으면 사진 전체가 뿌옇고 밋밋해 보입니다. contrast 는 "맞대어 견주다"라는 뜻입니다.
평균(mean)모든 값을 더해 개수로 나눈 값입니다. 히스토그램에서는 막대가 모인 자리를 알려 줍니다.
표준편차(standard deviation)값들이 평균에서 평균적으로 얼마나 떨어져 있는지입니다. 히스토그램에서는 막대가 퍼진 너비를 알려 줍니다. deviation 은 "벗어남"이라는 뜻입니다.
마스크(mask)그림과 같은 크기의 흑백 판으로, 흰 칸(255)만 계산에 넣고 검은 칸(0)은 건너뛰게 합니다. mask 는 "가면, 가리개"라는 뜻입니다.
관심 영역(ROI, Region Of Interest)그림에서 따로 살펴보고 싶은 부분입니다. 13장에서 자세히 다룹니다.
cv2.compareHist히스토그램 두 개가 얼마나 닮았는지 숫자로 견주는 OpenCV 함수입니다. compare histogram(히스토그램 견주기)을 줄인 이름입니다.
상관계수(correlation)두 묶음의 숫자가 함께 오르내리는 정도입니다. 1 이면 모양이 같고, 0 근처면 관계가 없습니다. correlation 은 "서로 관계 맺음"이라는 뜻입니다.
평활화(equalization)한쪽에 몰린 히스토그램을 고르게 펴서 대비를 높이는 일입니다. equalize 는 "고르게 하다"라는 뜻입니다. 5장에서 다룹니다.

5장 · 영상 향상과 학습용 전처리

용어설명
영상 향상(image enhancement)사진을 사람이 보기 좋게, 또는 컴퓨터가 읽기 좋게 고치는 일입니다. enhance 는 "더 좋게 하다"라는 뜻입니다.
밝기 조정(brightness adjustment)모든 칸에 같은 값을 더하거나 빼서 사진 전체를 밝게 또는 어둡게 하는 일입니다.
대비 조정(contrast adjustment)밝은 곳과 어두운 곳의 차이를 넓히거나 좁히는 일입니다. 칸의 값에 같은 수를 곱해서 합니다.
넘침(overflow)담을 수 있는 범위를 넘은 값이 엉뚱한 값으로 바뀌는 일입니다. uint8 에서 256 은 0 으로 돌아갑니다. overflow 는 "넘쳐흐르다"라는 뜻입니다.
포화 연산(saturation arithmetic)계산 결과가 범위를 넘으면 끝 값(0 이나 255)에서 멈추게 하는 계산입니다. 1장에서 cv2.add 로 맛보았습니다. saturate 는 "가득 채우다"라는 뜻입니다.
cv2.convertScaleAbs칸마다 곱하고 더한 뒤 절댓값을 내어 0~255 로 맞추는 함수입니다. convert(바꾸다), scale(크기를 늘이다), abs(absolute, 절댓값)를 붙인 이름입니다.
alpha 와 beta대비 조정 식 g = alpha × f + beta 에서 곱하는 수(alpha)와 더하는 수(beta)입니다. 그리스 글자 α, β 의 이름입니다.
정규화(normalization)값의 범위를 정해 둔 범위로 맞추는 일입니다. 이 장에서는 가장 어두운 값을 0, 가장 밝은 값을 255 로 늘입니다. normal 은 "표준의"라는 뜻입니다.
NORM_MINMAXcv2.normalize 에서 가장 작은 값(min, minimum)과 가장 큰 값(max, maximum)을 정한 범위의 양 끝에 맞추라는 방식입니다.
감마 보정(gamma correction)밝기를 0~1 로 바꾼 뒤 거듭제곱해서, 어두운 쪽이나 밝은 쪽을 더 많이 바꾸는 일입니다. 그리스 글자 γ(감마)를 거듭제곱의 지수로 써서 붙은 이름입니다.
거듭제곱(power)같은 수를 여러 번 곱하는 일입니다. 0.5제곱은 제곱근과 같습니다.
조회표(LUT, Look-Up Table)입력 0~255 마다 바꿀 값을 미리 적어 둔 256칸짜리 표입니다. look up 은 "찾아보다"라는 뜻입니다.
cv2.LUT조회표를 보고 그림의 모든 칸을 한 번에 바꾸는 함수입니다.
누적 도수(cumulative frequency)어떤 밝기까지의 칸 수를 모두 더한 값입니다. cumulative 는 "쌓이는"이라는 뜻입니다.
히스토그램 평활화(histogram equalization)누적 도수의 비율로 밝기를 다시 매겨 막대를 0~255 에 고르게 펴는 일입니다. 4장 용어 절에서 미리 보았습니다.
cv2.equalizeHist흑백 그림 하나를 평활화하는 함수입니다. equalize histogram(히스토그램 고르게 하기)을 줄인 이름입니다.
밝기 채널(luminance channel)색공간에서 밝기만 담은 채널입니다. YCrCb 의 Y, HSV 의 V 가 그렇습니다. luminance 는 "빛나는 정도"라는 뜻입니다.
CLAHEContrast Limited Adaptive Histogram Equalization 의 머리글자로, 대비를 제한하며(contrast limited), 자리마다 알맞게(adaptive) 하는 히스토그램 평활화입니다. 사진을 바둑판 칸으로 나눠 칸마다 평활화합니다.
clipLimitCLAHE 에서 너무 높은 막대를 깎는 높이입니다. clip 은 "잘라 내다", limit 는 "한도"라는 뜻입니다.
tileGridSizeCLAHE 에서 사진을 몇 칸의 바둑판으로 나눌지입니다. tile 은 "타일 한 장", grid 는 "격자"라는 뜻입니다.
역광(backlight)찍는 물건 뒤에서 빛이 비치는 상태입니다. 배경은 밝게, 앞의 물건은 어둡게 찍힙니다.
전처리(preprocessing)AI 모델에 넣기 전에 사진을 다듬는 일입니다. pre 는 "미리", processing 은 "처리"라는 뜻입니다.
학습 데이터(training data)AI 모델이 보고 배우는 사진 묶음입니다. 모델을 실제로 쓸 때 들어오는 사진과 구분합니다.

6장 · 평균 필터와 Gaussian 필터

용어설명
노이즈(noise)사진에 원래 없던 값이 섞여 들어간 것입니다. 자글자글한 점으로 보입니다. noise 는 "시끄러운 소리, 잡음"이라는 뜻입니다.
가우시안 노이즈(Gaussian noise)칸마다 조금씩 더해지거나 빠진 흔들림으로, 대부분은 작고 아주 가끔 큽니다. 흔들림의 크기가 가우스(Gauss)가 정리한 종 모양 분포를 따른다고 해서 붙은 이름입니다.
정규분포(normal distribution)가운데(평균)에 값이 가장 많고 멀어질수록 드물어지는 종 모양의 퍼짐입니다. normal 은 "흔한, 보통의"라는 뜻입니다.
씨앗(seed)난수를 만드는 출발점 숫자입니다. 같은 씨앗을 주면 언제 실행해도 같은 난수가 나옵니다.
np.clip값을 정한 범위 안으로 잘라 넣는 NumPy 함수입니다. clip 은 "잘라 내다"라는 뜻입니다.
필터(filter)사진의 칸마다 같은 계산을 해서 새 사진을 만드는 도구입니다. filter 는 "거르는 체"라는 뜻입니다.
이웃(neighborhood)칸 하나를 둘러싼 칸들입니다. 3×3 이웃은 자기를 포함한 아홉 칸입니다.
커널(kernel)이웃 칸에 겹쳐 곱할 작은 숫자 표입니다. kernel 은 "알맹이, 낟알"이라는 뜻으로, 필터의 핵심이 되는 작은 표를 가리킵니다.
커널 크기(kernel size)커널의 가로·세로 칸 수입니다. OpenCV 에서는 ksize 라고 줄여 씁니다.
평균 필터(mean filter)이웃 칸을 모두 같은 무게로 평균 내는 필터입니다. 커널 모양이 네모 상자 같아서 상자 필터(box filter)라고도 합니다.
블러(blur)사진을 흐리게 하는 일입니다. blur 는 "흐릿하게 하다"라는 뜻입니다.
스무딩(smoothing)들쭉날쭉한 값을 매끈하게 고르는 일입니다. smooth 는 "매끈한"이라는 뜻입니다. 노이즈 제거 필터를 이렇게도 부릅니다.
테두리 처리(border type)사진 가장자리처럼 바깥에 이웃이 없는 칸을 계산할 때 바깥 칸을 어떻게 채울지 정하는 방법입니다.
패딩(padding)사진 바깥에 칸을 덧대는 일입니다. pad 는 "속을 채워 넣다"라는 뜻입니다.
가중 평균(weighted average)값마다 무게를 달리 주어 내는 평균입니다. weight 는 "무게"라는 뜻입니다.
Gaussian 필터(Gaussian filter)가운데 칸에 무게를 많이, 먼 칸에 적게 주는 종 모양 가중 평균 필터입니다.
시그마(sigma)Gaussian 필터의 무게가 얼마나 넓게 퍼지는지 정하는 숫자입니다. 그리스 글자 σ 의 이름이고, 4장에서 본 표준편차를 나타내는 기호입니다.
이항계수(binomial coefficient)파스칼 삼각형에 나오는 1, 2, 1 이나 1, 4, 6, 4, 1 같은 숫자입니다. binomial 은 "두 항의"라는 뜻입니다.
파스칼 삼각형(Pascal's triangle)위의 두 수를 더해 아래 수를 만들며 쌓은 숫자 삼각형입니다. 프랑스 수학자 파스칼의 이름을 붙였습니다.
합성곱(convolution)커널을 한 칸씩 밀며 이웃과 곱해 더하는 계산을 넓게 이르는 말입니다. convolution 은 "말아 겹침"이라는 뜻입니다. 딥러닝의 CNN(Convolutional Neural Network, 합성곱 신경망)도 이 계산을 씁니다.
cv2.filter2D직접 만든 커널로 필터를 거는 OpenCV 함수입니다. 2D 는 two-dimensional(2차원, 가로와 세로)을 줄인 말입니다.
평균 절대 차이(MAE, Mean Absolute Error)두 사진의 칸마다 차이를 양수로 바꿔 평균 낸 값입니다. 작을수록 두 사진이 닮았습니다.
PSNR(Peak Signal-to-Noise Ratio)원본과 얼마나 닮았는지를 데시벨로 나타낸 점수입니다. "최대 신호 대 잡음비"라는 뜻이고, 클수록 원본에 가깝습니다.
데시벨(dB, decibel)크기의 비율을 나타내는 단위입니다. 전화를 만든 벨(Bell)의 이름에 deci(10분의 1)를 붙였습니다.

7장 · Median 과 Bilateral 필터, 필터 비교

용어설명
임펄스 노이즈(impulse noise)Salt & Pepper 노이즈의 다른 이름입니다. impulse 는 "순간적인 충격"이라는 뜻으로, 칸 하나가 갑자기 튄다는 말입니다.
가우시안 노이즈(Gaussian noise)6장에서 본, 모든 칸이 종 모양으로 조금씩 흔들려 자글자글해 보이는 노이즈입니다.
커널(kernel)6장에서 본, 이웃 칸에 겹쳐 곱할 작은 숫자 표입니다. 곱할 표가 없는 Median 필터에서도 한 번에 보는 이웃의 크기(3×3, 5×5)를 커널 크기라고 부릅니다.
평균 필터(mean filter)6장에서 본, 이웃 칸을 같은 무게로 평균 내는 필터입니다. OpenCV 에서는 cv2.blur 입니다.
Gaussian 필터(Gaussian filter)6장에서 본, 가까운 칸에 더 큰 무게를 주는 가중 평균 필터입니다. OpenCV 에서는 cv2.GaussianBlur 입니다.
중앙값(median)값을 작은 것부터 줄 세웠을 때 한가운데 있는 값입니다. median 은 "가운데의"라는 뜻입니다.
Median 필터(median filter)커널 안 칸들의 중앙값으로 가운데 칸을 바꾸는 필터입니다. 우리말로 "중앙값 필터"라고도 합니다.
cv2.medianBlurMedian 필터를 거는 OpenCV 함수입니다. 커널 크기 ksize 를 홀수 하나로 줍니다.
경계(edge)밝기나 색이 갑자기 바뀌는 곳, 곧 물체의 테두리입니다. edge 는 "가장자리, 날"이라는 뜻입니다. 경계를 찾는 법은 10장에서 다룹니다.
경계 보존(edge-preserving)노이즈를 줄이면서도 경계는 흐리지 않고 남기는 성질입니다. preserve 는 "지키다, 보존하다"라는 뜻입니다.
Bilateral 필터(bilateral filter)가까우면서 밝기도 비슷한 칸만 골라 섞는 필터입니다. bilateral 은 "양쪽의"라는 뜻으로, 거리와 색 차이 두 가지를 함께 본다는 점과 맞닿아 있습니다.
cv2.bilateralFilterBilateral 필터를 거는 OpenCV 함수입니다. d, sigmaColor, sigmaSpace 세 값을 받습니다.
색 차이 무게(range weight)Bilateral 필터가 이웃 칸의 밝기가 가운데 칸과 얼마나 다른지 보고 주는 무게입니다. 차이가 클수록 0 에 가까워집니다. range 는 "값의 범위"라는 뜻입니다.
d(diameter)cv2.bilateralFilter 가 들여다보는 이웃의 지름(칸 수)입니다. diameter 는 "지름"이라는 뜻입니다.
sigmaColorBilateral 필터에서 "밝기가 얼마나 달라도 섞어 줄까"를 정하는 값입니다. sigma(σ, 시그마)는 퍼진 정도를 나타낼 때 쓰는 그리스 글자입니다.
sigmaSpaceBilateral 필터에서 "얼마나 먼 칸까지 섞어 줄까"를 정하는 값입니다. space 는 "공간, 거리"라는 뜻입니다.
평균 절대 차이(MAE, Mean Absolute Error)6장에서 본, 두 그림의 칸마다 차이를 양수로 바꿔 평균 낸 값입니다. 작을수록 닮았습니다.
PSNR(Peak Signal-to-Noise Ratio)6장에서 본, 원본과 닮은 정도를 데시벨(dB)로 나타낸 점수입니다. 클수록 원본에 가깝습니다.
MSE(Mean Squared Error)칸마다 차이를 제곱해 평균 낸 값으로, 우리말로 "평균 제곱 오차"입니다. PSNR 을 계산하는 중간값입니다.
한 줄 밝기(intensity profile)그림의 가로 한 줄을 골라 칸마다 밝기를 선 그래프로 그린 것입니다. profile 은 "옆모습, 단면"이라는 뜻입니다.
time.perf_counter걸린 시간을 아주 잘게 재는 파이썬 함수입니다. performance counter(성능 측정용 시계)를 줄인 이름입니다.

8장 · Threshold, Adaptive Threshold, Otsu

용어설명
이진화(binarization)그림의 칸을 두 가지 값(보통 0 과 255)으로만 나누는 일입니다. binary 는 "둘로 된"이라는 뜻입니다.
이진 그림(binary image)0 과 255 두 값만 가진 흑백 그림입니다. 3장에서 본 마스크가 바로 이진 그림입니다.
임계값(threshold)두 무리를 나누는 기준 숫자, 곧 커트라인입니다. threshold 는 "문지방"이라는 뜻으로, 넘으면 다른 방에 들어간다는 말입니다.
cv2.threshold그림 전체에 임계값 하나를 대어 이진화하는 OpenCV 함수입니다.
전역 임계값(global threshold)그림 전체에 똑같이 쓰는 임계값 하나입니다. global 은 "전체에 걸친"이라는 뜻입니다.
maxval(maximum value)임계값을 넘은 칸에 넣을 값입니다. 보통 255(흰색)를 줍니다.
THRESH_BINARY임계값보다 크면 maxval, 아니면 0 으로 바꾸는 방식입니다.
INV(inverse)결과의 흑백을 뒤집는다는 표시입니다. inverse 는 "거꾸로"라는 뜻입니다.
THRESH_TRUNC(truncate)임계값보다 큰 값을 임계값으로 깎고 나머지는 그대로 두는 방식입니다. truncate 는 "윗부분을 잘라 내다"라는 뜻입니다.
THRESH_TOZERO(to zero)임계값 이하인 칸만 0 으로 만들고 큰 칸은 그대로 두는 방식입니다. 이름은 "0 으로"라는 뜻입니다.
봉우리(peak)히스토그램에서 막대가 높이 모인 곳입니다. 바탕과 물체가 저마다 봉우리를 만듭니다.
골짜기(valley)두 봉우리 사이의 낮은 곳입니다. 커트라인을 두기 좋은 자리입니다.
조명 불균일(uneven illumination)그림의 자리마다 빛의 세기가 다른 상태입니다. 한쪽이 그늘진 문서 사진이 대표적입니다. uneven 은 "고르지 않은"이라는 뜻입니다.
Adaptive Threshold(적응형 임계값)칸마다 주변의 밝기를 보고 임계값을 따로 정하는 방법입니다. adaptive 는 "형편에 맞추는"이라는 뜻입니다.
cv2.adaptiveThresholdAdaptive Threshold 를 하는 OpenCV 함수입니다.
blockSize(블록 크기)Adaptive Threshold 가 둘러보는 주변 네모의 한 변 칸 수입니다. 1 보다 큰 홀수여야 합니다.
C(상수, constant)Adaptive Threshold 에서 주변 평균에서 빼는 숫자입니다. constant 는 "바뀌지 않는 수"라는 뜻입니다.
ADAPTIVE_THRESH_MEAN_C주변 칸을 똑같이 더해 나눈 평균에서 C 를 빼 기준으로 쓰는 방식입니다. mean 은 "평균"이라는 뜻입니다.
ADAPTIVE_THRESH_GAUSSIAN_C가운데에 가까운 칸일수록 무게를 더 준 평균에서 C 를 빼 기준으로 쓰는 방식입니다. Gaussian 은 수학자 가우스(Gauss)의 이름에서 왔습니다.
가중 평균(weighted mean)값마다 무게를 달리 주고 낸 평균입니다. weight 는 "무게"라는 뜻입니다.
Otsu 알고리즘(Otsu's method)두 무리가 가장 멀리 떨어지게 하는 임계값을 자동으로 고르는 방법입니다. 일본의 오츠 노부유키(大津展之)가 1979년에 발표해 그의 이름이 붙었습니다.
무리 사이 분산(between-class variance)두 무리의 평균이 얼마나 떨어져 있는지를 비율까지 넣어 잰 숫자입니다. Otsu 는 이 숫자가 가장 큰 임계값을 고릅니다. variance 는 "퍼진 정도"라는 뜻입니다.
THRESH_OTSUcv2.threshold 에 Otsu 로 임계값을 고르라고 알리는 표시입니다.
노이즈(noise)그림에 섞인 자잘한 잡티입니다. noise 는 "소음"이라는 뜻으로, 원하지 않는 신호라는 말입니다.
가우시안 블러(Gaussian blur)칸마다 주변 칸과 무게를 달리해 섞어 그림을 부드럽게 하는 필터입니다. 6장에서 배웁니다. blur 는 "흐리게 하다"라는 뜻입니다.

9장 · Morphology: 침식, 팽창, 열기, 닫기

용어설명
모폴로지(morphology)이진 그림의 흰 덩어리 모양을 깎거나 부풀려 고치는 영상처리입니다. 그리스어 morphē(모양)와 logos(학문)를 붙인 말로, 본래 "모양을 다루는 학문"이라는 뜻입니다.
이진 그림(binary image)8장에서 본, 0 과 255 두 값만 가진 흑백 그림입니다. 3장의 마스크도 이진 그림입니다.
흰 덩어리(foreground blob)이진 그림에서 흰 칸(255)이 이어져 생긴 한 무더기입니다. 모폴로지는 흰 칸을 물체로 보고 그 모양을 고칩니다. blob 은 "작은 덩어리"라는 뜻입니다.
구조 요소(structuring element)모폴로지가 칸마다 겹쳐 보는 작은 0/1 표, 곧 "모양 도장"입니다. structuring 은 "짜임을 만드는"이라는 뜻입니다.
cv2.getStructuringElement네모, 십자, 타원 모양의 구조 요소를 만들어 주는 OpenCV 함수입니다. 이름은 "구조 요소 얻기"라는 뜻입니다.
MORPH_RECT(rectangle)모든 칸이 1 인 네모 도장입니다. rectangle 은 "직사각형"이라는 뜻입니다.
MORPH_CROSS가운데 가로줄과 세로줄만 1 인 십자 도장입니다. cross 는 "십자"라는 뜻입니다.
MORPH_ELLIPSE네모 안에 들어가는 타원 자리만 1 인 둥근 도장입니다. ellipse 는 "타원"이라는 뜻입니다.
침식(erosion)도장 안이 모두 흰 칸일 때만 흰색을 남기는 연산입니다. 흰 덩어리가 한 겹 깎입니다. 라틴어 erodere(갉아 먹다)에서 온 말입니다.
cv2.erode침식을 하는 OpenCV 함수입니다. erode 는 "깎아 내다"라는 뜻입니다.
팽창(dilation)도장 안에 흰 칸이 하나라도 있으면 흰색으로 만드는 연산입니다. 흰 덩어리가 한 겹 부풉니다. 라틴어 dilatare(넓히다)에서 온 말입니다.
cv2.dilate팽창을 하는 OpenCV 함수입니다. dilate 는 "넓히다, 부풀리다"라는 뜻입니다.
iterations(반복 횟수)같은 침식이나 팽창을 몇 번 되풀이할지 정하는 인자입니다. iteration 은 "되풀이"라는 뜻입니다.
열기(opening)침식한 뒤 같은 도장으로 팽창하는 연산입니다. 흰 잡티를 지우고 붙어 있던 덩어리 사이를 엽니다. open 은 "열다"라는 뜻입니다.
닫기(closing)팽창한 뒤 같은 도장으로 침식하는 연산입니다. 검은 구멍과 끊긴 틈을 메웁니다. close 는 "닫다"라는 뜻입니다.
cv2.morphologyEx열기, 닫기, 그레이디언트 같은 조합 연산을 하는 OpenCV 함수입니다. OpenCV 공식 문서는 "고급(advanced) 모폴로지 변환을 한다"고 설명합니다.
모폴로지 그레이디언트(morphological gradient)팽창한 그림에서 침식한 그림을 뺀 것입니다. 흰 덩어리의 테두리만 남습니다. gradient 는 "기울기, 바뀌는 정도"라는 뜻입니다.
탑햇(top hat)원본에서 열기 결과를 뺀 것입니다. 도장보다 작은 흰 것만 남습니다. top hat 은 "높은 신사 모자"라는 뜻이고, 이름이 붙은 까닭은 자료마다 설명이 달라 여기서는 뜻만 적습니다.
블랙햇(black hat)닫기 결과에서 원본을 뺀 것입니다. 도장보다 작은 검은 구멍과 틈만 남습니다. black hat 은 "검은 모자"라는 뜻입니다.
연결 요소(connected component)서로 맞닿아 이어진 흰 칸의 무리, 곧 흰 덩어리 하나입니다. component 는 "구성 요소"라는 뜻입니다.
cv2.connectedComponents이진 그림의 흰 덩어리마다 번호를 매기고 개수를 알려 주는 OpenCV 함수입니다. 이 장에서는 개수만 쓰고, 자세한 쓰임은 12장에서 배웁니다.
잡티(speck)이진 그림의 바탕에 튄 작은 흰 점입니다. speck 은 "작은 얼룩, 티끌"이라는 뜻입니다.
맞힌 칸 비율(pixel accuracy)결과 그림과 정답 그림을 칸마다 견줘 같은 칸이 몇 할인지 잰 값입니다. 8장의 프로젝트에서 쓴 "정확도"와 같습니다. accuracy 는 "정확함"이라는 뜻입니다.

10장 · Sobel 과 Laplacian 경계 검출

용어설명
경계 검출(edge detection)그림에서 밝기가 갑자기 바뀌는 곳(경계)을 찾아내는 일입니다. detection 은 "찾아냄, 탐지"라는 뜻입니다. 경계의 뜻은 7장에서 짚었습니다.
밝기 단면(intensity profile)그림에서 한 줄을 잘라 칸마다의 밝기를 차례로 늘어놓은 것입니다. profile 은 "옆모습, 윤곽"이라는 뜻입니다.
변화량(difference)옆 칸끼리 뺀 값입니다. 0 이면 밝기가 그대로이고, 클수록 갑자기 바뀝니다.
기울기(gradient)밝기가 어느 쪽으로, 얼마나 가파르게 바뀌는지입니다. gradient 는 라틴어 gradi(걷다, 오르다)에서 온 말로 "비탈의 가파른 정도"라는 뜻입니다.
가로 기울기(gx)가로 방향(오른쪽 − 왼쪽)의 밝기 변화량입니다. 세로로 선 경계에서 커집니다. x 는 가로축입니다.
세로 기울기(gy)세로 방향(아래 − 위)의 밝기 변화량입니다. 가로로 누운 경계에서 커집니다. y 는 세로축입니다.
차이 커널(difference kernel)[-1, 0, 1] 처럼 한쪽을 빼고 한쪽을 더해 변화량을 재는 커널입니다.
Sobel 연산자(Sobel operator)빼기 커널에 가운데 줄 무게(1-2-1)를 더한 3×3 커널로 기울기를 재는 방법입니다. 1968년에 이를 소개한 어윈 소벨(Irwin Sobel)의 이름을 붙였습니다. operator 는 "계산하는 것, 연산자"라는 뜻입니다.
cv2.SobelSobel 연산자로 가로나 세로 기울기를 구하는 OpenCV 함수입니다.
dx, dycv2.Sobel 에 주는 숫자로, 가로(x)와 세로(y)로 몇 번 뺄지 고릅니다. d 는 difference(차이)의 머리글자로 읽으면 됩니다.
ddepth(destination depth)결과 그림의 자료형입니다. destination 은 "도착지", depth 는 "칸 하나에 담는 숫자의 깊이(자료형)"라는 뜻입니다.
CV_64FOpenCV 의 64비트 소수 자료형 이름입니다. 64-bit Float 를 줄인 말로, 음수와 255 넘는 수를 그대로 담습니다. NumPy 의 float64 와 같습니다.
cv2.convertScaleAbs값에 배율을 곱하고 절댓값(absolute value)을 취한 뒤 0~255 로 잘라 uint8 로 바꾸는 함수입니다. convert scale absolute(배율 바꾸고 절댓값)를 줄인 이름입니다.
기울기의 크기(magnitude)가로 기울기와 세로 기울기를 피타고라스 정리로 합친 값입니다. 경계가 얼마나 뚜렷한지를 하나의 숫자로 알려 줍니다. magnitude 는 "크기, 규모"라는 뜻입니다.
기울기의 방향(direction)밝기가 가장 가파르게 밝아지는 쪽입니다. 경계 선과는 직각입니다.
피타고라스 정리(Pythagorean theorem)직각삼각형에서 빗변의 제곱이 나머지 두 변의 제곱을 더한 값과 같다는 정리입니다. 고대 그리스의 피타고라스 이름을 붙였습니다.
cv2.magnitude가로·세로 기울기 두 장을 받아 칸마다 √(gx² + gy²) 를 계산하는 OpenCV 함수입니다.
cv2.phase가로·세로 기울기 두 장을 받아 칸마다 기울기의 방향(각도)을 계산하는 OpenCV 함수입니다. phase 는 "위상, 각도"라는 뜻입니다.
Scharr 필터(Scharr filter)3×3 크기에서 Sobel 보다 방향을 더 정확히 재도록 무게를 3-10-3 으로 고른 커널입니다. 이를 제안한 한노 샤르(Hanno Scharr)의 이름을 붙였습니다.
Laplacian(라플라시안)변화량의 변화량, 곧 두 번 뺀 값을 재는 계산입니다. 프랑스 수학자 라플라스(Laplace)의 이름을 붙였습니다.
영교차(zero crossing)값이 + 에서 − 로(또는 거꾸로) 바뀌며 0 을 지나는 곳입니다. Laplacian 에서는 이곳이 경계입니다. crossing 은 "건너가기"라는 뜻입니다.
LoG(Laplacian of Gaussian)Gaussian 블러를 먼저 걸고 Laplacian 을 거는 짝입니다. "Gaussian 의 Laplacian"이라는 뜻입니다.
경계 지도(edge map)경계인 칸은 흰색(255), 아닌 칸은 검정(0)으로 칠한 흑백 그림입니다. map 은 "지도"라는 뜻입니다.

11장 · Canny 와 Edge 비교

용어설명
기울기의 크기와 방향(magnitude, direction)10장에서 본 것처럼, 크기는 가로 기울기(gx)와 세로 기울기(gy)를 합친 경계의 뚜렷함이고, 방향은 밝기가 가장 가파르게 바뀌는 쪽입니다. Canny 는 이 두 값을 재료로 씁니다.
Canny 경계 검출(Canny edge detector)존 캐니(John Canny)가 1986년 논문에서 내놓은 경계 검출 방법입니다. 만든 사람의 이름을 땄습니다.
비최대 억제(non-maximum suppression)기울기 방향을 따라 이웃 두 칸보다 큰 칸만 남기고 나머지를 지우는 단계입니다. 줄여서 NMS 라고도 씁니다. suppression 은 "누름, 억누름"이라는 뜻입니다.
이력 임계값(hysteresis thresholding)높은 기준을 넘은 확실한 선과, 거기에 이어진 애매한 선만 살리는 단계입니다. hysteresis 는 그리스어로 "뒤처짐"이라는 뜻으로, 지금 상태가 지나온 내력에 따라 달라진다는 말입니다.
강한 경계(strong edge)높은 기준(high)을 넘은 칸입니다. 무조건 경계로 남습니다.
약한 경계(weak edge)낮은 기준(low)과 높은 기준 사이에 있는 칸입니다. 강한 경계와 이어져 있을 때만 남습니다.
threshold1, threshold2cv2.Canny 에 주는 두 기준값입니다. 작은 쪽이 low, 큰 쪽이 high 로 쓰입니다. threshold 는 8장에서 본 "문지방, 커트라인"입니다.
apertureSize(구멍 크기)cv2.Canny 가 기울기를 잴 때 쓰는 Sobel 커널의 크기입니다. 3, 5, 7 가운데 하나입니다. aperture 는 "구멍, 틈"이라는 뜻입니다.
L2gradient기울기 크기를 피타고라스 식(√(gx² + gy²))으로 잴지 정하는 인자입니다. L2 는 "제곱해 더하고 제곱근을 씌운 거리"를 부르는 수학 이름입니다.
중앙값(median)값을 크기 순으로 늘어놓았을 때 한가운데 오는 값입니다. 7장의 Median 필터가 쓰던 그 값입니다.
경험 규칙(rule of thumb)이론으로 증명된 것이 아니라 많이 써 보니 대체로 잘 맞더라는 규칙입니다. 엄지손가락으로 길이를 대충 재던 데서 온 말로 알려져 있습니다.
정답 경계(ground truth)실제 경계가 어디인지 미리 알고 있는 그림입니다. ground truth 는 "땅 위에서 직접 확인한 사실"이라는 뜻입니다.
팽창(dilation)9장에서 본 모폴로지 연산으로, 구조 요소 안에 흰 칸이 하나라도 있으면 흰색으로 만들어 흰 덩어리를 한 겹 부풀립니다. 이 장에서는 정답 경계를 한 칸 넓히는 데 씁니다.
허용 거리(tolerance)찾은 경계가 정답에서 몇 칸까지 어긋나도 맞힌 것으로 칠지 정한 여유입니다. tolerance 는 "참아 주는 정도"라는 뜻입니다.
정밀도(precision)찾은 경계 가운데 정답 근처에 있는 칸의 비율입니다. 헛것을 적게 찾을수록 높습니다. precision 은 "정확함, 꼼꼼함"이라는 뜻입니다.
재현율(recall)정답 경계 가운데 찾아낸 칸의 비율입니다. 빠뜨린 것이 적을수록 높습니다. recall 은 "다시 불러냄, 기억해 냄"이라는 뜻입니다.
F1 점수(F1 score)정밀도와 재현율을 하나로 합친 점수입니다. 2 × 정밀도 × 재현율 ÷ (정밀도 + 재현율)로 계산하고, 둘 다 높아야 높게 나옵니다.
연결 요소(connected component)서로 이어진 흰 칸끼리 묶은 덩어리 하나입니다. component 는 "부품, 이루는 한 부분"이라는 뜻입니다.
cv2.connectedComponents이진 그림에서 이어진 흰 덩어리를 찾아 번호를 매기는 OpenCV 함수입니다.

12장 · Contour Detection 과 객체 분석

용어설명
윤곽선(contour)흰 덩어리의 테두리를 따라 이은 점들의 목록입니다. contour 는 "바깥 둘레, 등고선"이라는 뜻입니다. 지도의 등고선처럼 같은 높이(같은 흰색)의 가장자리를 따라 긋는 선이라는 데서 온 이름입니다.
윤곽선 검출(contour detection)이진 그림에서 윤곽선을 모두 찾아내는 일입니다. detection 은 "찾아냄"이라는 뜻입니다.
이진 그림(binary image)8장에서 본 것처럼 칸마다 0(검정)과 255(흰색) 두 값만 있는 그림입니다. 윤곽선 찾기의 입력입니다.
경계(edge)10장, 11장에서 본, 밝기가 크게 바뀌는 칸입니다. 경계는 칸의 모음이고 윤곽선은 물체마다 이어진 점 목록이라는 점이 다릅니다.
cv2.findContours이진 그림에서 윤곽선을 찾는 OpenCV 함수입니다. find(찾다)와 contours(윤곽선들)를 붙인 이름입니다.
계층 구조(hierarchy)윤곽선끼리 누가 누구 안에 있는지 적은 표입니다. hierarchy 는 "위아래 차례가 있는 짜임"이라는 뜻입니다.
부모와 자식(parent, child)바깥 윤곽선이 부모, 그 바로 안쪽의 윤곽선이 자식입니다. 도넛의 바깥 테두리가 부모이고 구멍의 테두리가 자식입니다.
찾는 방식(retrieval mode)윤곽선을 바깥 것만 찾을지, 모두 찾을지, 부모 자식까지 적을지 정하는 인자입니다. retrieval 은 "되찾아 옴, 꺼내 옴"이라는 뜻이고, 상수 이름의 RETR 가 이 말의 줄임입니다.
RETR_EXTERNAL가장 바깥의 윤곽선만 찾는 방식입니다. external 은 "바깥의"라는 뜻입니다.
RETR_LIST모든 윤곽선을 부모 자식 없이 목록(list)으로 찾는 방식입니다.
RETR_TREE모든 윤곽선을 찾고 부모 자식 관계를 나무(tree) 모양으로 모두 적는 방식입니다.
근사 방식(approximation method)윤곽선의 점을 모두 담을지, 곧은 줄의 가운데 점을 뺄지 정하는 인자입니다. approximation 은 "어림, 가깝게 만들기"라는 뜻입니다.
CHAIN_APPROX_NONE, CHAIN_APPROX_SIMPLE점을 모두 담는 방식(NONE, 줄이지 않음)과 곧은 줄의 양 끝만 남기는 방식(SIMPLE, 간단히)입니다. chain 은 테두리 칸을 사슬처럼 이어 따라간다는 데서 붙은 말입니다.
cv2.drawContours찾은 윤곽선을 그림 위에 그리는 함수입니다. draw 는 "그리다"라는 뜻입니다.
면적(area)윤곽선이 둘러싼 넓이입니다. cv2.contourArea 로 재고, 단위는 칸 하나의 넓이입니다.
둘레(perimeter)윤곽선의 길이입니다. cv2.arcLength 로 잽니다. arc 는 "호, 굽은 선"이라는 뜻입니다.
모멘트(moments)흰 칸의 개수와 좌표의 합처럼 덩어리를 요약한 숫자 묶음입니다. 물리에서 "회전시키는 힘의 크기"를 뜻하던 말을 빌려 왔습니다.
무게중심(centroid)흰 칸들의 x 좌표 평균과 y 좌표 평균인 점입니다. 판을 그 점 하나로 받치면 기울지 않고 균형이 맞습니다. centroid 는 center(가운데)에서 온 말입니다.
바운딩 박스(bounding box)물체를 빈틈없이 감싸는 네모 상자입니다. bounding 은 "경계를 정하는, 둘러싸는"이라는 뜻입니다. 곧은 상자는 cv2.boundingRect(Rect 는 rectangle, 직사각형)로 구합니다.
회전 상자(rotated rectangle)물체를 감싸는 네모 가운데 넓이가 가장 작은 것입니다. 물체를 따라 기울어집니다. cv2.minAreaRect(minimum area rectangle, 넓이가 가장 작은 직사각형)로 구합니다.
최소 외접원(minimum enclosing circle)윤곽선의 모든 점을 품는 원 가운데 가장 작은 원입니다. enclosing 은 "둘러싸는"이라는 뜻입니다.
연결 요소(connected component)11장에서 본 것처럼, 서로 맞닿은 흰 칸끼리 묶은 덩어리 하나입니다.
cv2.connectedComponentsWithStats9장의 cv2.connectedComponents 에 통계(stats, statistics)를 더한 함수입니다. 덩어리마다 번호와 함께 면적, 상자, 무게중심을 한 번에 돌려줍니다.
잡티(speck)이진화 뒤에 남은, 물체가 아닌 작은 흰 점입니다. 먼지나 노이즈에서 생깁니다.

13장 · Shape 분석과 ROI 처리

용어설명
윤곽선(contour)12장에서 본, 흰 덩어리의 테두리를 따라 이은 점들의 목록입니다. 면적(cv2.contourArea), 둘레(cv2.arcLength), 바운딩 박스(cv2.boundingRect), 회전 상자(cv2.minAreaRect)도 12장에서 풀었으므로 이 장에서는 다시 풀지 않습니다.
모양 특징(shape feature)윤곽선에서 계산한, 모양을 나타내는 숫자입니다. 원형도, 종횡비 같은 것입니다. feature 는 "생김새의 특징"이라는 뜻입니다.
근사 다각형(polygon approximation)울퉁불퉁한 윤곽선을 꼭짓점 몇 개짜리 다각형으로 단순하게 바꾼 것입니다. approximation 은 "가깝게 어림함"이라는 뜻입니다.
cv2.approxPolyDP윤곽선을 근사 다각형으로 바꾸는 OpenCV 함수입니다. approximate polygon(다각형으로 어림)과 DP(Douglas-Peucker, 이 방법을 만든 더글러스와 퍼커)를 붙인 이름입니다.
epsilon(엡실론)approxPolyDP 에 주는 "봐줄 만큼의 비뚤어짐"입니다. 그리스 문자 ε 의 이름으로, 수학에서 작은 양을 나타낼 때 흔히 씁니다.
꼭짓점(vertex)다각형의 모서리 점입니다. 세모는 3개, 네모는 4개입니다. vertex 는 라틴어로 "꼭대기"라는 뜻입니다.
원형도(circularity)모양이 원에 얼마나 가까운지를 나타낸 숫자입니다. 4π×넓이 ÷ 둘레² 로 구하고, 원이면 1 입니다. circular 는 "둥근"이라는 뜻입니다.
종횡비(aspect ratio)가로 길이를 세로 길이로 나눈 값입니다. 縱(세로)과 橫(가로)의 비라는 말이고, aspect 는 "보이는 모습"이라는 뜻입니다.
채움 비율(extent)물체의 넓이를 물체를 감싼 네모 상자의 넓이로 나눈 값입니다. 상자를 얼마나 꽉 채웠는지 알려 줍니다. extent 는 "차지한 범위"라는 뜻입니다.
볼록 껍질(convex hull)물체를 고무줄로 감쌌을 때 고무줄이 만드는 모양입니다. convex 는 "볼록한", hull 은 "껍질, 배의 몸통"이라는 뜻입니다.
볼록 비율(solidity)물체의 넓이를 볼록 껍질의 넓이로 나눈 값입니다. 움푹 들어간 곳이 많을수록 작아집니다. solid 는 "속이 꽉 찬"이라는 뜻입니다.
cv2.convexHull윤곽선의 볼록 껍질을 구하는 OpenCV 함수입니다.
cv2.isContourConvex윤곽선이 볼록한지(움푹한 곳이 없는지) True, False 로 알려 주는 함수입니다. is contour convex(윤곽선이 볼록한가)를 그대로 붙인 이름입니다.
규칙 기반 분류(rule-based classification)사람이 정한 if 규칙으로 이름을 붙이는 방법입니다. 데이터로 배우는 딥러닝과 견주어 쓰는 말입니다. rule 은 "규칙"이라는 뜻입니다.
관심 영역(ROI, Region Of Interest)사진에서 따로 살펴보고 싶은 부분입니다. 4장에서 이름만 나왔고, 이 장에서 자세히 다룹니다. region 은 "구역", interest 는 "관심"이라는 뜻입니다.
여백(margin)잘라 낼 상자의 둘레에 더 붙이는 몇 칸입니다. 물체가 상자 끝에 딱 붙어 잘리지 않게 합니다. margin 은 "가장자리, 여유"라는 뜻입니다.
np.clip숫자를 정한 범위 안으로 밀어 넣는 NumPy 함수입니다. clip 은 "잘라 내다, 깎다"라는 뜻입니다.
cv2.fillPoly꼭짓점 목록으로 다각형을 그려 속까지 채우는 함수입니다. fill polygon(다각형 채우기)을 줄인 이름입니다.
cv2.bitwise_and마스크의 흰 칸만 원래 값을 남기는 함수입니다. 3장에서 색으로 과일을 고를 때 썼습니다. bitwise 는 "비트 단위로", and 는 "그리고"라는 뜻입니다.
cv2.selectROI창에 그림을 띄우고 사람이 마우스로 네모를 그려 관심 영역을 고르게 하는 함수입니다. select ROI(관심 영역 고르기)라는 뜻입니다.
붙여 넣기(paste back)잘라 내어 처리한 조각을 원본의 같은 자리에 다시 넣는 일입니다. 이 장에서는 슬라이싱에 값을 대입해서 합니다.

14장 · 영상 기하학 변환과 Affine, Perspective

용어설명
기하학 변환(geometric transformation)칸의 값은 그대로 두고 칸의 자리를 옮기는 일입니다. geometry 는 그리스어 geo(땅)와 metron(재기)에서 온 말로, 모양과 자리를 다루는 수학입니다.
좌표(coordinate)그림에서 칸의 자리를 가리키는 두 숫자 (x, y) 입니다. 2장에서 본 것처럼 x 는 가로, y 는 세로이고 왼쪽 위가 (0, 0) 입니다.
크기 바꾸기(resize)그림의 가로·세로 칸 수를 바꾸는 일입니다. re(다시)와 size(크기)를 붙인 말입니다.
종횡비(aspect ratio)가로와 세로의 비율입니다. 320×240 은 4:3 입니다. aspect 는 "모습, 생김새"라는 뜻입니다.
보간법(interpolation)새로 생긴 칸의 값을 이웃 칸으로 짐작해 채우는 방법입니다. 라틴어 interpolare(사이에 끼워 넣다)에서 온 말입니다.
최근접 이웃(nearest neighbor)가장 가까운 칸의 값을 그대로 가져오는 보간법입니다. OpenCV 의 INTER_NEAREST 입니다.
양선형 보간(bilinear interpolation)가로와 세로 두 방향으로 이웃 값 사이를 고르게 나눠 채우는 보간법입니다. bi(둘)와 linear(직선의)를 붙인 말이고, OpenCV 의 INTER_LINEAR 입니다.
바이큐빅 보간(bicubic interpolation)둘레 16칸을 보고 매끈한 곡선으로 채우는 보간법입니다. cubic 은 "세제곱의"라는 뜻으로, 세제곱 식의 곡선을 쓴다는 말입니다.
넓이 평균(area interpolation)줄일 때 새 칸 하나가 덮는 옛 칸들의 평균을 내는 방법입니다. OpenCV 의 INTER_AREA 입니다.
계단 현상(aliasing)고운 무늬를 거칠게 줄일 때 엉뚱한 줄무늬나 들쭉날쭉한 모양이 생기는 일입니다. alias 는 "가명"이라는 뜻으로, 고운 무늬가 다른 무늬로 둔갑한다는 말입니다.
가운데 자르기(center crop)그림의 한가운데를 원하는 비율만큼 잘라 내는 일입니다. crop 은 "짧게 자르다"라는 뜻입니다.
여백 채우기(padding)그림의 둘레에 칸을 덧대는 일입니다. pad 는 "속을 덧대다"라는 뜻입니다.
레터박스(letterbox)비율을 지켜 줄인 뒤 남는 곳을 여백으로 채워 정해진 크기를 맞추는 방법입니다. 영화를 TV 에 틀 때 위아래에 생기는 검은 띠가 우편함 투입구(letterbox)를 닮아 붙은 이름입니다.
뒤집기(flip)그림을 좌우나 위아래로 거울에 비친 듯 바꾸는 일입니다. flip 은 "휙 뒤집다"라는 뜻입니다.
평행 이동(translation)모든 칸을 같은 방향, 같은 거리만큼 옮기는 일입니다. translate 는 "옮기다"라는 뜻입니다.
회전(rotation)한 점을 중심으로 그림을 돌리는 일입니다. rotate 는 "돌다"라는 뜻입니다.
아핀 변환(affine transformation)옮기기, 돌리기, 키우기, 기울이기를 묶은 변환입니다. 곧은 선은 곧게, 평행한 선은 평행하게 남습니다. affine 은 라틴어 affinis(이웃의, 관계 있는)에서 온 말입니다.
변환 표(transformation matrix)점을 옮기는 규칙을 적은 숫자 표입니다. 아핀은 2×3, 원근은 3×3 입니다. OpenCV 문서는 matrix 라고 부르고 이름을 M 으로 씁니다.
기울이기(shear)위쪽과 아래쪽을 서로 반대로 밀어 네모를 평행사변형으로 만드는 일입니다. shear 는 "가위로 베다"라는 뜻으로, 쌓인 층이 미끄러지듯 밀리는 모양을 말합니다.
원근 변환(perspective transformation)비스듬히 본 평면을 바로 앞에서 본 것처럼 바꾸는 변환입니다. perspective 는 라틴어 perspicere(꿰뚫어 보다)에서 온 말입니다.
cv2.warpAffine2×3 변환 표대로 그림을 옮기는 OpenCV 함수입니다. warp 는 "휘다, 비틀다"라는 뜻입니다.
cv2.warpPerspective3×3 변환 표대로 그림을 원근 변환하는 OpenCV 함수입니다.
빈 곳 채우기 값(borderValue)옮기고 돌린 뒤 원본이 닿지 않는 빈 칸에 칠할 색입니다. 기본값은 검정(0)입니다.
데이터 증강(data augmentation)뒤집고 돌리고 크기를 바꾼 사진을 더해 학습 데이터를 늘리는 일입니다. augment 는 "늘리다"라는 뜻입니다. 16장에서 다룹니다.

15장 · 비디오 처리와 실시간 영상처리

용어설명
프레임(frame)동영상을 이루는 사진 한 장입니다. frame 은 "틀, 액자"라는 뜻으로, 필름의 한 칸을 가리키던 말입니다.
FPS(Frames Per Second)1초에 보여 주는 프레임 수입니다. 10fps 면 1초에 10장, 한 장에 0.1초입니다.
프레임 간격(frame interval)한 프레임이 나온 뒤 다음 프레임이 나올 때까지의 시간입니다. 1000ms ÷ FPS 로 구합니다. interval 은 "사이, 간격"이라는 뜻입니다.
ms(millisecond, 밀리초)1000분의 1초입니다. milli 는 "1000분의 1"이라는 뜻입니다.
코덱(codec)동영상을 작게 묶고(coder) 다시 푸는(decoder) 방식입니다. 두 낱말을 붙여 줄인 이름입니다.
fourcc(four character code)코덱을 가리키는 네 글자 이름표입니다. mp4v, XVID 처럼 씁니다. 이름이 곧 "네 글자 부호"라는 뜻입니다.
MPEG-4(Moving Picture Experts Group 4)동영상을 묶는 국제 표준의 하나입니다. MPEG 는 이 표준을 만든 전문가 모임의 이름입니다. mp4v 가 이 방식의 코덱입니다.
cv2.VideoCapture동영상 파일이나 카메라를 여는 OpenCV 의 "재생기"입니다. capture 는 "붙잡다, 담아내다"라는 뜻입니다.
cv2.VideoWriter프레임을 차례로 받아 동영상 파일로 쓰는 OpenCV 의 "녹화기"입니다. writer 는 "쓰는 것"이라는 뜻입니다.
CAP_PROP(capture property)재생기의 속성(프레임 수, FPS, 크기, 지금 위치 등)을 가리키는 이름 묶음입니다. property 는 "성질, 속성"이라는 뜻입니다.
release열어 둔 재생기나 녹화기를 닫아 파일과 카메라를 놓아 주는 일입니다. release 는 "놓아주다"라는 뜻입니다.
프레임 차이(frame differencing)앞 프레임과 지금 프레임을 칸마다 빼서 바뀐 곳을 찾는 방법입니다. differencing 은 "차이를 구함"이라는 뜻입니다.
cv2.absdiff(absolute difference)두 그림의 칸마다 차이의 절댓값(빼기 결과에서 부호를 뗀 값)을 구하는 함수입니다.
배경 빼기(background subtraction)움직이지 않는 배경을 기억해 두고, 지금 프레임에서 배경을 빼서 움직이는 물체만 남기는 방법입니다. subtraction 은 "빼기"라는 뜻입니다.
전경(foreground)배경 앞에서 움직이는 물체입니다. 배경 빼기의 결과에서 흰 칸입니다. fore 는 "앞"이라는 뜻입니다.
중앙값 배경(median background)여러 프레임에서 칸마다 밝기를 줄 세워 가운데 값을 고른 배경입니다. 잠깐 지나간 물체는 가운데 값에 끼지 못해 지워집니다.
MOG2(Mixture of Gaussians 2)OpenCV 의 배경 빼기 도구입니다. 칸마다 "자주 나오는 밝기"를 여러 개 기억해 두고 그와 다르면 전경으로 봅니다. 가우스 분포(Gaussians) 여러 개를 섞어(mixture) 기억한다는 이름이고, 2는 앞선 MOG 방법을 고친 판이라는 표시입니다.
실시간(real-time)프레임이 들어오는 빠르기에 맞춰, 다음 프레임이 오기 전에 처리를 끝내는 것입니다.
프레임 건너뛰기(frame skipping)처리가 늦어 따라잡지 못할 때 몇 장을 처리하지 않고 넘기는 일입니다. skip 은 "건너뛰다"라는 뜻입니다.
time.perf_counter(performance counter)짧은 시간을 정밀하게 재는 파이썬의 시계 함수입니다. 두 번 불러 그 차이로 걸린 시간을 잽니다.
웹캠(webcam)컴퓨터에 붙여 쓰는 작은 카메라입니다. web(인터넷)과 camera 를 붙인 말로, 인터넷으로 영상을 보내던 데서 왔습니다.
장치 번호(device index)컴퓨터에 붙은 카메라에 0, 1, 2 처럼 매긴 번호입니다. 카메라가 하나면 보통 0 입니다. index 는 "번호, 색인"이라는 뜻입니다.
DirectShow(CAP_DSHOW)Windows 가 카메라와 동영상을 다루는 오래된 방식의 이름입니다. 카메라가 잘 안 열릴 때 이 방식을 골라 열기도 합니다.

16장 · AI 데이터 정제와 데이터 증강

용어설명
데이터 정제(data cleaning)모은 데이터에서 쓸 수 없는 것을 골라내고 고칠 수 있는 것은 바로잡는 일입니다. cleaning 은 "청소"라는 뜻입니다.
데이터 증강(data augmentation)뒤집고 돌리고 밝기를 바꾼 사진을 더해 학습 데이터를 늘리는 일입니다. augment 는 "늘리다"라는 뜻입니다. 14장에서 이름만 소개했습니다.
GIGO(Garbage In, Garbage Out)쓰레기가 들어가면 쓰레기가 나온다는 말입니다. 나쁜 데이터로 배운 모델은 나쁜 답을 낸다는 뜻으로 씁니다.
클래스(class)분류에서 붙이는 이름 하나하나입니다. 이 장의 클래스는 사과(apple), 귤(tangerine), 라임(lime) 셋입니다. 1장의 분류(classification)와 같은 뿌리의 말입니다.
라벨(label)사진마다 붙인 정답 이름표입니다. label 은 "꼬리표"라는 뜻입니다. 이 장에서는 파일 이름의 앞부분이 라벨입니다.
알파 채널(alpha channel)칸마다 얼마나 투명한지를 적은 넷째 채널입니다. 2장의 BGRA 그림에서 본 A 입니다. alpha 는 그리스 문자의 첫 글자로, 색 채널 뒤에 붙는 덧칸을 부르는 이름입니다.
흐림 점수(blur score)사진이 얼마나 선명한지 나타내는 숫자입니다. 이 장에서는 Laplacian 결과의 분산을 씁니다. 클수록 선명합니다.
분산(variance)값들이 평균에서 떨어진 거리를 제곱해 평균 낸 것입니다. 4장에서 본 표준편차를 제곱한 값과 같습니다. vary 는 "달라지다"라는 뜻입니다.
기준값(threshold)이보다 작으면 버리고 크면 남기는 경계 숫자입니다. 8장의 임계값과 같은 말입니다. threshold 는 "문지방"이라는 뜻입니다.
중복(duplicate)같은 사진이 이름만 달리해 두 번 이상 들어 있는 것입니다. duplicate 는 라틴어 duplex(두 겹)에서 온 말입니다.
해시(hash)긴 데이터를 짧은 글자로 줄인 지문입니다. 내용이 같으면 지문도 같습니다. hash 는 "잘게 다지다"라는 뜻입니다.
MD5(Message Digest 5)파일의 바이트로 32글자짜리 지문을 만드는 해시 방법입니다. digest 는 "요약"이라는 뜻이고 5 는 다섯째 판이라는 뜻입니다.
평균 해시(average hash)그림을 8×8 로 줄인 뒤 평균보다 밝은 칸은 1, 어두운 칸은 0 으로 적은 64칸짜리 그림 지문입니다. 비슷한 그림은 지문도 비슷합니다.
해밍 거리(Hamming distance)길이가 같은 두 지문에서 서로 다른 칸의 개수입니다. 이 셈을 처음 쓴 수학자 해밍(Hamming)의 이름을 붙였습니다.
파일 이름 규칙(naming convention)파일 이름을 짓는 약속입니다. 이 장에서는 클래스_번호.png 꼴(apple_001.png)로 짓습니다. convention 은 "관례, 약속"이라는 뜻입니다.
학습용 데이터(train set)모델이 보고 배우는 사진 묶음입니다. train 은 "훈련시키다"라는 뜻입니다.
시험용 데이터(test set)학습이 끝난 뒤 모델의 실력을 재는 사진 묶음입니다. 학습에 쓰지 않고 따로 떼어 둡니다.
기하 증강(geometric augmentation)뒤집기, 회전, 자르기, 옮기기처럼 칸의 자리를 옮겨 늘리는 증강입니다. 14장의 기하학 변환을 씁니다.
색 증강(color augmentation)밝기, 대비, 색상, 블러, 노이즈처럼 칸의 값을 바꿔 늘리는 증강입니다.
확률적 적용(random application)변환마다 "이번에 걸지 말지"를 주사위처럼 정하는 일입니다. rng.random() < 0.5 면 절반쯤의 사진에만 겁니다.
씨앗(seed)난수 만들개의 시작 숫자입니다. 같은 씨앗이면 언제 돌려도 같은 난수가 나와 결과를 다시 만들 수 있습니다. 6장에서 노이즈를 만들 때 썼습니다.
정답 보존(label-preserving)변환한 뒤에도 정답 이름표가 그대로 맞는 성질입니다. 사과를 뒤집어도 사과이므로 좌우 뒤집기는 과일 사진에서 정답을 보존합니다.
거울 글씨(mirror writing)좌우를 뒤집어 거울에 비친 것처럼 된 글씨입니다. 14장에서 뒤집기의 주의할 점으로 보았습니다.

17장 · Batch Processing 과 YOLO 데이터 준비

용어설명
일괄 처리(batch processing)많은 파일을 같은 방법으로 한꺼번에 처리하는 일입니다. batch 는 빵을 한 번에 구워 내는 "한 판, 한 묶음"이라는 뜻입니다.
자동화(automation)사람이 손으로 하던 반복 작업을 프로그램이 대신 하게 만드는 일입니다. automatic(저절로 움직이는)에서 온 말입니다.
경로(path)파일이 어느 폴더에 있는지 적은 주소입니다. ch17_raw/part_001.png 처럼 씁니다. path 는 "길"이라는 뜻입니다.
pathlib경로를 글자가 아닌 물건(객체)으로 다루게 해 주는 파이썬 표준 라이브러리입니다. path(경로)와 library(도서관)를 붙인 이름입니다.
glob*.png 처럼 별표가 든 무늬로 파일 이름을 찾는 방법입니다. global(전체)을 줄인 말로, 옛 유닉스에서 이름을 한꺼번에 펼치던 프로그램 이름에서 왔습니다.
확장자(extension)파일 이름 끝의 .png, .jpg 처럼 파일 형식을 알려 주는 꼬리입니다. extension 은 "늘여 붙인 것"이라는 뜻입니다.
예외 처리(exception handling)실행 중에 오류가 나도 프로그램이 멈추지 않고 정해 둔 대로 넘어가게 하는 일입니다. exception 은 "예외, 뜻밖의 일"이라는 뜻입니다.
로그(log)프로그램이 무엇을 했는지 차례로 남긴 기록입니다. 배의 속도를 통나무(log)로 재어 적던 항해 일지에서 온 말입니다.
주석 달기(annotation)사진 속 물체에 상자를 그리고 이름을 붙여 정답을 만드는 일입니다. annotate 는 "설명을 덧붙이다"라는 뜻입니다.
라벨(label)사진에 붙인 정답입니다. 객체 탐지에서는 상자 좌표와 클래스 이름입니다. label 은 "꼬리표"라는 뜻입니다.
라벨링 도구(labeling tool)마우스로 상자를 그리고 이름을 고르면 주석 파일을 만들어 주는 프로그램입니다.
클래스(class)탐지할 물체의 갈래입니다. 이 장에서는 bolt, nut, washer 세 가지입니다. 파이썬의 class 와 이름만 같습니다.
클래스 번호(class id)클래스를 0, 1, 2 처럼 번호로 적은 것입니다. id 는 identifier(알아보는 표)의 줄임입니다.
픽셀 좌표(pixel coordinates)그림의 왼쪽 위를 (0, 0) 으로 두고 칸 수로 센 자리입니다. 2장, 12장에서 쓴 좌표입니다.
정규화 좌표(normalized coordinates)픽셀 좌표를 그림의 가로나 세로로 나눠 0~1 사이의 비율로 바꾼 좌표입니다. normal 은 "기준에 맞춘"이라는 뜻입니다.
YOLO 형식(YOLO format)한 줄에 클래스번호 x중심 y중심 너비 높이 를 정규화 좌표로 적는 라벨 형식입니다. YOLO 는 You Only Look Once(한 번만 본다)의 줄임입니다.
COCO(Common Objects in Context)상자를 (x, y, 너비, 높이) 픽셀 좌표로 적는 큰 탐지 데이터셋과 그 형식입니다. 이름은 "제자리에 놓인 흔한 물체들"이라는 뜻입니다.
YAML(YAML Ain't Markup Language)이름: 값 꼴로 설정을 적는 글자 파일 형식입니다. 이름은 "YAML 은 마크업 언어가 아니다"라는 말장난입니다.
학습용 데이터(train set)모델이 보고 배우는 데이터입니다. train 은 "훈련하다"라는 뜻입니다.
검증용 데이터(validation set)학습에 쓰지 않고 남겨 두었다가 모델이 잘 배웠는지 재는 데이터입니다. validate 는 "확인하다"라는 뜻입니다. 줄여서 val 이라고 씁니다.
잘린 물체(truncated object)그림 테두리에 걸려 일부만 찍힌 물체입니다. truncate 는 "끝을 잘라 내다"라는 뜻입니다.
가려진 물체(occluded object)다른 물체에 일부가 가려진 물체입니다. occlude 는 "막다, 가리다"라는 뜻입니다.

18장 · OpenCV 전처리와 YOLO 연계

용어설명
사전학습 모델(pretrained model)큰 데이터셋으로 미리 학습시켜 둔 모델입니다. pre 는 "미리", trained 는 "훈련된"이라는 뜻입니다.
전이 학습(transfer learning)미리 배운 모델을 새 일에 맞게 조금 더 가르치는 일입니다. transfer 는 "옮기다"라는 뜻으로, 배운 것을 새 일로 옮겨 쓴다는 말입니다.
ultralyticsYOLO 를 몇 줄로 학습하고 쓰게 해 주는 파이썬 패키지이자 그것을 만든 회사의 이름입니다.
AGPL-3.0ultralytics 의 라이선스입니다. GNU Affero General Public License 3판의 줄임으로, 이 코드를 고쳐 남에게 서비스하면 고친 코드도 공개해야 한다는 조건이 붙습니다.
가중치(weights)모델이 배운 내용을 담은 숫자들입니다. yolo11n.pt 같은 파일로 저장합니다. weight 는 "무게"라는 뜻으로, 입력마다 얼마나 무겁게 볼지를 정하는 수라서 붙은 이름입니다.
yolo11nultralytics 의 YOLO11 가운데 가장 작은 판입니다. n 은 nano(아주 작은)의 머리글자입니다.
COCO 데이터셋(Common Objects in Context)사람, 자동차, 사과 같은 일상 물체 80가지에 상자를 단 큰 데이터셋입니다. 17장에서 상자 형식 이름으로 만났습니다.
추론(inference)학습을 마친 모델에 새 사진을 넣어 답을 얻는 일입니다. infer 는 "미루어 짐작하다"라는 뜻입니다.
학습(training)정답이 붙은 사진을 보여 주며 모델의 가중치를 고치는 일입니다.
에포크(epoch)학습용 사진 전체를 한 바퀴 다 보는 것입니다. 문제집을 처음부터 끝까지 한 번 푸는 것과 같습니다. epoch 는 "한 시대, 한 단락"이라는 뜻입니다.
배치(batch)한 번에 묶어 보는 사진 수입니다. 17장의 일괄 처리(batch processing)와 같은 낱말로 "한 묶음"이라는 뜻입니다.
imgsz(image size)학습과 추론 때 사진을 맞추는 크기입니다. 320 이면 긴 쪽을 320 칸에 맞춥니다.
손실(loss)모델의 답이 정답에서 얼마나 틀렸는지 나타내는 점수입니다. 작을수록 좋습니다. loss 는 "잃음, 손해"라는 뜻입니다.
과적합(overfitting)학습용 사진을 외우다시피 해서 처음 보는 사진에서는 오히려 못하는 일입니다. over 는 "지나치게", fit 은 "맞추다"라는 뜻입니다.
신뢰도(confidence)모델이 찾은 상자마다 붙이는 "얼마나 자신 있나"의 값입니다. 0 에서 1 사이이고, 줄여서 conf 라고 씁니다.
신뢰도 기준값(confidence threshold)이 값보다 신뢰도가 낮은 상자는 버리는 기준입니다. threshold 는 8장의 임계값과 같은 낱말입니다.
IoU(Intersection over Union)두 상자가 겹친 넓이를 합친 넓이로 나눈 값입니다. intersection 은 "교차, 겹친 부분", union 은 "합침"이라는 뜻입니다.
맞힌 것(true positive)정답 상자와 IoU 0.5 이상 겹치고 클래스도 같은 찾은 상자입니다. TP 라고 줄여 씁니다.
헛것(false positive)짝이 되는 정답이 없는 찾은 상자입니다. 없는 것을 있다고 한 것으로, FP 라고 줄여 씁니다.
놓친 것(false negative)짝이 되는 찾은 상자가 없는 정답입니다. 있는 것을 없다고 한 것으로, FN 이라고 줄여 씁니다.
조건 차이(domain shift)학습 때 본 사진과 실제로 쓸 때 들어오는 사진의 밝기, 잡음 같은 조건이 다른 것입니다. domain 은 "영역", shift 는 "옮겨 감"이라는 뜻입니다.
대조 실험(controlled experiment)다른 것은 모두 그대로 두고 한 가지만 바꿔 그 효과를 재는 실험입니다. control 은 "통제하다"라는 뜻입니다.
CPU(Central Processing Unit)컴퓨터의 중앙 처리 장치입니다. 이 장의 학습과 추론은 그래픽 카드(GPU, Graphics Processing Unit) 없이 CPU 로만 합니다.

19장 · Vision 데이터 파이프라인

용어설명
파이프라인(pipeline)여러 처리 단계를 차례로 이어, 앞 단계의 출력이 다음 단계의 입력이 되게 만든 흐름입니다. 물을 차례로 흘려보내는 관(pipe)에서 온 말입니다. 1장에서 처음 보았습니다.
단계(stage)파이프라인을 이루는 칸 하나입니다. stage 는 "무대, 한 과정"이라는 뜻입니다.
입출력 약속(interface)단계가 무엇을 받아 무엇을 돌려주는지 정한 약속입니다. inter(사이)와 face(얼굴)를 붙인 말로, 두 부분이 맞닿는 면이라는 뜻입니다.
수집(collection)폴더나 동영상에서 처리할 그림을 모으는 단계입니다. collect 는 "모으다"라는 뜻입니다.
출처(source)그림이 어디서 왔는지 적은 정보입니다. 파일 경로나 "동영상 이름#프레임 번호" 처럼 적습니다. source 는 "샘, 근원"이라는 뜻입니다.
거르기(filtering)쓸 수 없는 그림을 빼는 단계입니다. filter 는 "거름망"이라는 뜻입니다. 16장의 데이터 정제를 파이프라인의 한 칸으로 넣은 것입니다.
전처리(preprocessing)모델에 넣기 전에 그림의 크기, 밝기, 잡음을 맞추는 일입니다. 이 장에서는 "다듬기" 단계라고 부릅니다. pre 는 "미리"라는 뜻입니다.
추론(inference)학습을 마친 모델에 새 그림을 넣어 답을 얻는 일입니다. infer 는 "미루어 짐작하다"라는 뜻입니다.
가중치 파일(weights file)학습으로 정해진 모델 속 숫자를 담은 파일입니다. 18장에서 만든 best.pt 가 그것입니다. pt 는 PyTorch 의 줄임입니다.
신뢰도(confidence)모델이 상자 하나에 붙이는 "얼마나 확신하는지" 점수입니다. 0~1 사이이고, 줄여서 conf 라고 씁니다.
IoU(Intersection over Union)두 상자가 겹친 넓이를 합친 넓이로 나눈 값입니다. intersection 은 "교차, 겹친 곳", union 은 "합친 것"이라는 뜻입니다. 18장에서 보았습니다.
정밀도(precision)모델이 찾은 상자 가운데 맞은 상자의 비율입니다. 11장에서 경계 점수로 처음 보았습니다.
재현율(recall)실제 물체 가운데 모델이 찾아낸 물체의 비율입니다. recall 은 "되불러 내다"라는 뜻입니다.
설정(configuration)기준값처럼 바꿀 수 있는 값을 모아 둔 것입니다. 이 장에서는 CONFIG 라는 사전 하나에 모읍니다. configure 는 "짜 맞추다"라는 뜻입니다.
하드코딩(hard coding)바꿀 수 있는 값을 코드 곳곳에 숫자로 직접 박아 넣는 일입니다. hard 는 "단단히 굳은"이라는 뜻으로, 나중에 바꾸기 어렵다는 말입니다.
JSON(JavaScript Object Notation){"이름": 값} 꼴로 자료를 적는 글자 파일 형식입니다. 자바스크립트의 사전 적는 법에서 왔고, 파이썬 사전과 생김새가 거의 같습니다.
처리 기록(log)파일마다 어느 단계에서 어떤 결과가 났는지 남긴 표입니다. 17장에서 본 로그입니다.
재현성(reproducibility)같은 입력과 같은 설정으로 다시 돌리면 같은 결과가 나오는 성질입니다. reproduce 는 "다시 만들어 내다"라는 뜻입니다.
깔때기 표(funnel table)단계를 지날 때마다 남은 개수가 줄어드는 모양을 보인 표입니다. 위가 넓고 아래가 좁은 깔때기(funnel)를 닮아 붙은 이름입니다.
잡음 점수(noise score)이 장에서 쓰는 잡음의 크기입니다. 흑백 그림과 3×3 미디언 블러(7장)를 건 그림의 차이를 평균 낸 값으로, 클수록 자글자글합니다.
프레임 뽑기(frame sampling)동영상의 모든 장 대신 N장마다 한 장씩 골라 쓰는 일입니다. sample 은 "본보기로 떼어 낸 것"이라는 뜻입니다. 15장에서 보았습니다.
병목(bottleneck)파이프라인에서 가장 오래 걸려 전체 속도를 정하는 단계입니다. 병의 좁은 목처럼 흐름이 막히는 곳이라는 뜻입니다.
체크리스트(checklist)빠뜨리지 않도록 확인할 항목을 적은 목록입니다. check(확인)와 list(목록)를 붙인 말입니다.

20장 · 교육 콘텐츠 설계와 종합 실습

용어설명
교육 콘텐츠(educational content)수업에 쓰는 자료 전체입니다. 설명 글, 실습 코드, 연습 그림, 정답, 채점 기준이 모두 들어갑니다. content 는 "담긴 것, 내용물"이라는 뜻입니다.
학습목표(learning objective)수업이 끝났을 때 수강생이 할 수 있게 될 일을 적은 문장입니다. objective 는 "겨냥하는 것, 목표"라는 뜻입니다.
행동 동사(action verb)"만든다, 찾는다, 견준다"처럼 눈으로 확인할 수 있는 동작을 나타내는 동사입니다. "이해한다, 안다"는 밖에서 보이지 않아 학습목표에 덜 알맞습니다.
실습 예제(exercise)수강생이 직접 코드를 돌려 보는 작은 과제입니다. exercise 는 "연습, 훈련"이라는 뜻입니다.
가상 데이터(synthetic data)실제로 찍거나 모으지 않고 코드로 만든 데이터입니다. synthetic 은 "합성한, 만들어 낸"이라는 뜻입니다. 이 교안의 그림은 모두 가상 데이터입니다.
씨앗(seed)난수를 만드는 출발점 숫자입니다. 6장에서 처음 썼습니다. 같은 씨앗이면 누가 언제 돌려도 같은 그림이 나옵니다.
재현성(reproducibility)같은 코드를 다시 돌리면 같은 결과가 나오는 성질입니다. reproduce 는 "다시 만들어 내다"라는 뜻입니다.
매개변수(parameter)함수에 넘겨 결과를 바꾸는 값입니다. 이 장에서는 난이도를 바꾸는 "손잡이"로 씁니다. parameter 는 그리스어로 "곁에서 재는 것"이라는 뜻입니다.
난이도(difficulty level)실습이 얼마나 어려운지의 정도입니다. 이 장에서는 쉬움, 보통, 어려움 세 판으로 나눕니다.
정답 마스크(ground truth mask)물체가 있는 칸을 255, 없는 칸을 0 으로 칠한 정답 그림입니다. 8장의 영수증에서 처음 썼습니다. ground truth 는 "땅에서 직접 확인한 사실"이라는 뜻으로, 하늘에서 찍은 사진을 땅에서 확인하던 데서 온 말입니다.
정답표(answer key)문제마다 정답을 적어 둔 표입니다. 12장의 answer.csv 가 그 예입니다. key 는 "풀이의 열쇠"라는 뜻입니다.
자동 채점(auto grading)학생의 답을 프로그램이 정답과 견줘 점수를 매기는 일입니다. grade 는 "등급을 매기다"라는 뜻입니다.
IoU(Intersection over Union)두 영역이 겹친 넓이를 두 영역을 합친 넓이로 나눈 값입니다. 1 이면 꼭 같고 0 이면 하나도 안 겹칩니다. intersection 은 "교차, 겹친 곳", union 은 "합친 것"이라는 뜻입니다.
정확도(accuracy)전체 칸 가운데 정답과 같은 칸의 비율입니다. 8장의 "맞힌 칸 비율"과 같습니다. accuracy 는 "정확함"이라는 뜻입니다.
피드백(feedback)결과를 보고 다음에 무엇을 고칠지 알려 주는 말입니다. feed(먹이다)와 back(되돌려)을 붙인 말로, 결과를 되돌려 준다는 뜻입니다.
비계(scaffolding)어려운 과제를 작은 단계로 나눠 받쳐 주는 수업 방법입니다. scaffolding 은 건물을 지을 때 세우는 발판(비계)이라는 뜻입니다.
채점 기준표(rubric)평가 항목, 항목마다의 기준, 점수를 적은 표입니다. rubric 은 라틴어로 "붉은 흙"이라는 뜻으로, 옛 책에서 제목과 지시를 붉은 글씨로 적던 데서 온 말입니다.
README자료 묶음의 맨 위에 두는 안내 파일입니다. 이름은 영어로 "나를 먼저 읽어라(read me)"라는 뜻입니다.
requirements.txt실행에 필요한 파이썬 패키지와 버전을 한 줄에 하나씩 적은 파일입니다. requirement 는 "필요한 것"이라는 뜻입니다.
라이선스(license)남이 만든 코드나 데이터를 어떤 조건으로 쓸 수 있는지 적은 약속입니다. license 는 "허가"라는 뜻입니다.
출처 표기(attribution)가져다 쓴 자료가 어디서 왔는지 밝혀 적는 일입니다. attribute 는 "~의 것으로 돌리다"라는 뜻입니다.
학습지(worksheet)수강생에게 나눠 주는 문제 그림과 빈칸이 있는 종이입니다. work(일)와 sheet(종이 한 장)를 붙인 말입니다.
체크리스트(checklist)빠뜨리지 않게 확인할 항목을 적은 목록입니다. check(확인하다)와 list(목록)를 붙인 말입니다.
ZIP여러 파일을 한 파일로 묶고 크기를 줄이는 형식입니다. 이름은 영어로 "휙 하고 빠르게"라는 뜻의 낱말에서 따왔다고 알려져 있습니다.
종합 실습(capstone project)과정에서 배운 것을 모두 모아 하나의 결과를 만드는 실습입니다. capstone 은 돌담이나 아치의 맨 위에 얹는 마지막 돌이라는 뜻입니다.
← 이전실습 데이터 파일