Azure AI Fundamentals

Azure AI Fundamentals 시험 노트개념 정리19 MIN

컴퓨터 비전과 이미지 생성 모델

이미지 분류·개체 검출·캡션·태그·OCR·얼굴 검출처럼 그림을 읽는 기능과, 확산 모델로 그림을 만드는 기능을 결과의 모양으로 가르고 생성 이미지의 안전 장치까지 정리합니다.

앞 노트가 글과 소리를 다뤘다면 이 노트는 그림입니다. 그림을 다루는 일은 방향이 둘로 갈립니다. 있는 그림을 보고 그 안에 무엇이 있는지 말하는 쪽이 컴퓨터 비전이고, 글을 받아 없던 그림을 만들어 내는 쪽이 이미지 생성입니다. 시험은 두 방향을 한 문항의 보기에 섞어 두므로, 기능 이름보다 먼저 「그림이 입력인가 출력인가」를 적어 보는 습관이 쓸모 있습니다.

이 노트는 결과의 모양을 기준으로 기능을 갈라 갑니다. 분류와 검출, 캡션과 태그, 읽기, 얼굴을 차례로 보고, 그다음 생성 쪽으로 넘어가 확산 모델과 편집, 안전 장치를 봅니다. 마지막 절에서 두 방향을 한 질문으로 가르는 법을 정리합니다.

이미지 분류와 개체 검출

분류

이미지 분류(image classification)는 그림 한 장에 이름표 하나를 붙이는 기능입니다. 「이 사진은 사과다」처럼 그림 전체를 두고 판정하므로 결과는 갈래 이름과 확신도 한 쌍입니다. 그림 안에 사과가 몇 개 있는지, 어디에 있는지는 말하지 않습니다.

생산 라인에서 부품 사진을 「정상」과 「불량」으로 나누는 일, 식물 사진을 보고 종을 맞히는 일이 분류의 자리입니다. 갈래가 미리 정해진 몇 개이고, 한 장에 답이 하나면 분류입니다.

한 장에 이름표를 여럿 붙일 수 있는 경우도 있습니다. 갈래 중 꼭 하나만 고르는 것을 다중 클래스 분류, 해당하는 갈래를 모두 붙이는 것을 다중 레이블 분류라 부릅니다. 바닷가 사진에 「해변」과 「일몰」을 함께 붙여야 하면 다중 레이블입니다. 일반적인 사물은 미리 학습된 모델이 알아보지만, 「우리 공장의 불량 유형 일곱 가지」처럼 고유한 갈래는 이름표를 붙인 사진을 모아 사용자 지정 모델을 학습시켜야 합니다.

개체 검출

개체 검출(object detection)은 그림 안에서 물체를 찾아 그 갈래와 함께 경계 상자(bounding box)를 돌려주는 기능입니다. 경계 상자는 물체를 둘러싼 사각형의 좌표, 곧 왼쪽 위 꼭짓점과 너비·높이입니다. 그래서 결과가 「사과, 확신도 0.93, 상자 (120, 40, 80, 75)」 같은 항목 여러 개로 나옵니다.

묻는 것 분류 개체 검출
결과 하나의 모양 갈래 이름 + 확신도 갈래 이름 + 확신도 + 좌표
그림 한 장의 결과 수 하나 찾은 물체 수만큼
어울리는 요구 무엇이 찍혔나 몇 개, 어디에 있나

「선반에 남은 우유가 몇 개인지 세야 한다」·「차량 위치에 박스를 그려야 한다」가 보이면 검출입니다. 개수나 위치를 분류로 풀려는 보기가 이 자리의 단골 오답입니다. 거꾸로 「사진에 고양이가 있는가」만 알면 되는 자리에 검출을 고르는 것은 틀리지는 않아도 지나친 답이라, 「가장 알맞은」을 묻는 문항에서는 분류가 이깁니다.

캡션·태그·읽기

캡션과 태그

캡션(caption)은 그림을 사람이 읽는 한 문장으로 설명한 것입니다 — 「공원 벤치에 앉은 남자가 개를 쓰다듬고 있다」. 그림 속 여러 구역마다 따로 문장을 붙이는 것은 조밀 캡션(dense captions)이라 부릅니다.

태그(tag)는 그림에 담긴 것을 낱말 목록으로 돌려줍니다 — 「사람」, 「개」, 「벤치」, 「야외」, 「풀」. 물체뿐 아니라 장면과 분위기 낱말도 들어가고, 낱말마다 확신도가 붙습니다. 위치는 없습니다.

둘을 가르는 질문은 결과가 문장인가 낱말 목록인가입니다. 시각 장애인을 위한 대체 텍스트를 자동으로 달아야 하면 캡션이고, 사진 수만 장을 키워드로 검색할 수 있게 만들어야 하면 태그입니다.

읽기(OCR)

OCR(광학 문자 인식)은 그림 속 글자를 텍스트로 옮기는 기능이고, Azure AI Vision에서는 이 기능을 읽기(Read)라 부릅니다. 결과는 줄과 낱말 단위로 나오며 각각에 그 글자가 놓인 자리의 좌표가 붙습니다. 인쇄체와 손글씨를 함께 읽고, 표지판 사진이나 스캔한 계약서처럼 글자가 그림 속에 들어 있는 경우가 대상입니다.

OCR이 돌려주는 것은 글자와 그 위치까지입니다. 「이 영수증의 합계 금액」처럼 글자가 무엇을 뜻하는지까지 뽑는 것은 다음 노트의 정보 추출 자리이고, 시험은 이 경계를 즐겨 묻습니다.

얼굴 검출과 특성

검출과 특성

얼굴 검출(face detection)은 그림에서 사람 얼굴을 찾아 경계 상자를 돌려주는 기능입니다. 여기에 얼굴마다 붙는 부가 정보를 얼굴 특성(face attributes)이라 하는데, 머리 기울기, 안경 착용, 마스크 착용, 흐림·노출 정도, 가려진 부분 같은 것입니다. 증명사진이 규격에 맞는지 검사하거나 출입 카메라 앞에서 얼굴이 제대로 찍혔는지 판정하는 자리가 여기입니다.

제한된 기능

얼굴 기능에는 책임 있는 AI 원칙에 따라 쓰지 못하게 된 것과 승인을 받아야 쓰는 것이 있습니다. 감정·성별·나이처럼 얼굴로 사람의 내면이나 정체성을 추정하는 특성은 오용 위험 때문에 일반 사용에서 빠졌습니다. 이 사람이 누구인지 맞히는 식별(identification)과, 두 얼굴이 같은 사람인지 확인하는 검증(verification)은 신청과 승인을 거쳐야 쓸 수 있는 제한 접근(Limited Access) 기능입니다.

그래서 「매장 방문객의 감정을 얼굴로 추정해 기록한다」는 기술적으로 가능해 보여도 Azure 얼굴 서비스로 고를 답이 아닙니다. 문항이 둘째 노트의 원칙과 이 자리를 엮어 「어느 원칙 때문에 막혔는가」를 묻기도 합니다 — 대개 개인정보·보안이나 공정성입니다.

확산 모델과 이미지 생성

노이즈를 걷어 내는 과정

이미지 생성 모델 대부분은 확산 모델(diffusion model)입니다. 학습할 때는 멀쩡한 그림에 노이즈를 조금씩 더해 완전한 잡음이 될 때까지 망가뜨리고, 모델은 그 과정을 거꾸로, 곧 한 단계의 노이즈를 걷어 내는 법을 배웁니다. 그림을 만들 때는 순수한 잡음에서 출발해 이 걷어 내기를 여러 번 되풀이하고, 매 단계에서 프롬프트의 뜻이 어느 방향으로 걷어 낼지를 이끕니다.

같은 프롬프트로 두 번 요청해도 그림이 달라지는 이유가 출발점의 잡음이 매번 다르기 때문입니다. 「같은 입력에 같은 결과」를 요구하는 자리라면 생성 모델은 맞지 않습니다.

텍스트-이미지와 인페인팅

텍스트-이미지 생성(text-to-image)은 프롬프트만으로 새 그림을 만드는 것이고, Foundry에서는 이미지 생성 모델을 배포해 크기·품질·장수를 정해 요청합니다. 인페인팅(inpainting)은 기존 그림에 마스크로 영역을 지정하고 그 영역만 프롬프트대로 다시 그리는 편집입니다 — 제품 사진의 배경만 바꾸거나, 사진에서 지나가는 사람을 지우고 그 자리를 자연스럽게 채우는 일입니다.

요구 기능
광고 시안을 문장 설명에서 새로 만든다 텍스트-이미지 생성
찍어 둔 제품 사진의 배경만 바꾼다 인페인팅
사진 속 물건이 무엇인지 알아낸다 비전(분석)

생성 이미지의 콘텐츠 안전

생성은 분석보다 안전 장치가 두껍습니다. 들어오는 프롬프트와 나가는 그림 양쪽을 콘텐츠 필터가 검사해 폭력·성적 내용·혐오·자해 같은 범주에 걸리면 요청을 거절하거나 결과를 내보내지 않습니다. 실존 인물을 흉내 내거나 저작권이 걸린 캐릭터를 그려 달라는 요청도 막힐 수 있습니다. 그리고 Azure OpenAI 이미지 모델이 만든 그림에는 AI가 만들었음을 밝히는 콘텐츠 자격 증명(C2PA 출처 메타데이터)이 붙습니다. 투명성 원칙이 구현된 자리라 「생성 이미지임을 나중에 확인할 수 있어야 한다」가 요구사항이면 이것이 답입니다.

분석과 생성을 가르는 질문

입력과 출력

문항 대부분은 질문 하나로 갈립니다 — 그림이 입력에 있는가, 출력에 있는가. 그림이 들어와서 글자·이름표·좌표가 나가면 분석(비전)이고, 글이 들어와서 그림이 나가면 생성입니다. 인페인팅은 그림이 들어오지만 그림이 나가므로 생성 쪽입니다.

멀티모달 모델이라는 셋째 길

요즘은 이미지를 입력으로 받는 멀티모달 모델에 사진과 질문을 함께 넣어 「이 사진에 무엇이 있나」를 묻는 길도 있습니다. 결과가 자연스러운 문장이고 질문을 자유롭게 바꿀 수 있지만, 좌표나 정해진 갈래 목록처럼 모양이 고정된 결과가 필요하면 전용 비전 기능이 낫습니다. 정해진 형식으로 대량을 처리하면 전용 기능, 열린 질문에 답해야 하면 멀티모달 모델이라고 기억해 두면 됩니다.

결과의 모양 한눈에

기능 방향 나오는 것
분류 분석 갈래 이름 하나와 확신도
개체 검출 분석 갈래·확신도·경계 상자 여러 개
캡션 분석 그림을 설명하는 문장
태그 분석 낱말 목록과 확신도
읽기 분석 줄·낱말 텍스트와 좌표
얼굴 검출 분석 얼굴 상자와 특성
텍스트-이미지 생성 생성 새 그림
인페인팅 생성 지정 영역만 바뀐 그림

시나리오 문장을 읽고 이 표의 셋째 열 중 어느 것을 원하는지 짚으면, 기능 이름은 왼쪽 열에서 따라 나옵니다. 보기 넷 중 둘은 대개 방향부터 틀려 있으므로 둘째 열로 먼저 지우고, 남은 둘을 셋째 열로 가르면 됩니다.

연습 문제

  1. 물류 창고 카메라 영상의 한 장면에서 지게차가 몇 대인지 세고 각각의 위치를 화면에 표시해야 합니다. 알맞은 기능은?
    ① 이미지 분류
    ② 개체 검출
    ③ 이미지 캡션
    ④ 태그
    ②. 개수와 위치가 필요하므로 물체마다 경계 상자를 돌려주는 개체 검출입니다. 분류는 그림 한 장에 이름표 하나뿐이라 개수를 알 수 없습니다.
  2. 뉴스 사이트가 기사 사진마다 시각 장애인용 대체 텍스트를 한 문장으로 자동 생성하려 합니다. 알맞은 것은?
    ① 캡션
    ② 태그
    ③ 읽기(OCR)
    ④ 얼굴 검출
    ①. 그림을 사람이 읽는 문장으로 설명하는 것이 캡션입니다. 태그는 낱말 목록이라 문장이 되지 않습니다.
  3. 손으로 쓴 설문지 스캔본 수천 장에서 적힌 글자를 텍스트로 옮겨 저장하려 합니다. 알맞은 것은?
    ① 이미지 분류
    ② 텍스트-이미지 생성
    ③ 읽기(OCR)
    ④ 감정 분석
    ③. 그림 속 인쇄체·손글씨를 텍스트와 좌표로 옮기는 것이 읽기입니다.
  4. 다음 중 Azure 얼굴 서비스에서 신청과 승인 없이 쓸 수 있는 것은?
    ① 얼굴로 나이와 성별을 추정한다
    ② 사진 속 인물이 등록된 직원 누구인지 식별한다
    ③ 얼굴의 위치와 마스크 착용 여부를 검출한다
    ④ 얼굴 표정으로 감정을 판정한다
    ③. 검출과 마스크·안경 같은 특성은 일반 기능입니다. 식별은 제한 접근 기능이고, 나이·성별·감정 추정은 일반 사용에서 빠졌습니다.
  5. 온라인 쇼핑몰이 이미 찍어 둔 신발 사진에서 신발은 그대로 두고 배경만 해변으로 바꾸려 합니다. 알맞은 것은?
    ① 개체 검출
    ② 인페인팅
    ③ 이미지 분류
    ④ 조밀 캡션
    ②. 마스크로 배경 영역을 지정하고 그 영역만 프롬프트대로 다시 그리는 편집이 인페인팅입니다.
  6. 같은 프롬프트로 이미지 생성을 두 번 요청했더니 서로 다른 그림이 나왔습니다. 이유로 가장 알맞은 것은?
    ① 콘텐츠 필터가 두 번째 그림을 바꿨다
    ② 확산 모델이 매번 다른 잡음에서 출발한다
    ③ 배포 할당량이 바뀌었다
    ④ OCR 결과가 달랐다
    ②. 확산 모델은 순수한 잡음에서 출발해 노이즈를 걷어 내므로 출발점이 다르면 결과도 다릅니다.
  7. 하루 20만 장의 상품 사진을 정해 둔 갈래 열두 개 중 하나로 나눠 데이터베이스에 저장하려 합니다. 가장 알맞은 것은?
    ① 멀티모달 모델에 사진마다 「이게 뭐야?」라고 묻는다
    ② 갈래 열두 개로 학습한 이미지 분류 모델
    ③ 텍스트-이미지 생성
    ④ 인페인팅
    ②. 모양이 고정된 결과를 대량으로 내야 하므로 전용 분류가 맞습니다. ①은 답이 자유로운 문장이라 열두 갈래 중 하나로 맞춰 저장하기 어렵습니다.

일곱 문항이 전부 「결과가 어떤 모양인가」와 「그림이 어느 쪽에 있는가」 두 질문으로 풀렸습니다. 기능 이름을 외우기보다 이름표 하나, 상자 여러 개, 문장 하나, 낱말 목록, 글자와 좌표 — 이렇게 결과의 모양을 떠올리는 편이 빠릅니다.

Azure AI Fundamentals 시험 노트 전체 보기