목차(클릭하세요)
실습 사이트: AI 자동 블러 실습 시작하기
•
대상: 객체 탐지와 이미지 처리의 원리를 배우는 고등학생 및 AI 입문자
[실습 장면]
[목차]
[실습 ]사이트 접속 주소: https://ai-auto-blur.vercel.app/
Ⅰ. 이 사이트를 만들고 배포하게 된 결정적 계기
아이모두 수업용 계정으로 아래 사이트 이용 불가1-1. 제작 동기와 핵심 학습 요소
얼마전 발생했던 딥페이크 사건을 예방하기 위해 필요할 경우 자동으로 얼굴을 인식하고, 자동 블러&모자이크 처리해주는 기능을 제안•
사진 편집 도구의 자동 블러 기능은 결과를 빠르게 출력하지만 어떤 기준으로 사람을 찾고 가릴 영역을 선택했는지 살펴보기 어려움
•
이 사이트는 학습자가 버튼과 슬라이더를 직접 조작하며 탐지 결과가 달라지는 이유를 확인하도록 제작한 학습용 실험실임
•
사진 준비부터 후보 예측, 기준 판정, 중복 제거, 얼굴 가림까지 과정을 나누어 관찰하도록 구성함
•
학생이 업로드한 사진이나 카메라로 촬영한 사진으로 탐지 결과를 비교할 수 있음
•
임계값은 점수가 일정 기준 이상인 후보만 통과시키는 ‘통과선’에 해당함
[수업 후 학생들이 탐구할만한 요소들]
•
객체 탐지와 얼굴 탐지, 블러·모자이크의 역할 차이
•
신뢰도 점수와 임계값의 관계
•
같은 사람 주변에 여러 후보 상자가 생기는 이유와 NMS의 역할
•
자동 탐지의 누락·오탐과 수동 확인의 필요성
•
초해상도 AI와 블러·모자이크의 관계에 대한 자신의 생각
1-2. 시작 전 준비
•
사진·후보 표·설정 패널을 함께 비교하기에는 PC 화면이 적합함
•
처음부터 수업용이라 PC 화면을 기준으로 만든 후, 모바일로 확장하여 가독성이 좋지 않음
•
먼저 기본으로 제공되는 ‘을사오적’ 샘플 사진으로 실험하기
◦
역사 인물 5명이 포함된 사진이며 직접 센 인물 수와 탐지 결과를 비교하는 용도로 사용함
◦
실험 대상은 사진 속 사람·얼굴의 위치이며 인물의 이름을 알아내는 얼굴 인식 기능은 아님
•
내 사진을 사용하려면 ‘+ 사진 업로드’ 누르기
◦
지원 형식은 JPG·PNG·WebP임
◦
파일 크기는 15MB 이하, 디코딩된 이미지 크기는 2천만 픽셀 이하로 제한됨
◦
긴 변이 1600px를 초과하면 작업용 사진을 축소하므로 저장 결과의 해상도도 원본과 다를 수 있음
•
카메라를 사용하려면 ‘카메라로 촬영’ → 권한 허용 → ‘이 장면 촬영’ 순서로 진행하기
◦
연속 영상 전체를 실시간으로 가리는 기능이 아니라 촬영한 정지 사진을 분석하는 방식임
Ⅱ. 7단계 실습 사용법
2-1. 사진 준비부터 임계값 실험까지
사진 준비: 탐지 실행
•
사진에서 보이는 사람과 얼굴 수를 먼저 세기
•
‘내 사진에서 AI 탐지 실행’ 누르기
•
분석 중 안내가 끝날 때까지 기다린 뒤 후보·상자·얼굴 수 확인하기
•
사진을 교체했다면 새 사진에 대해 다시 탐지 실행하기
•
위쪽 단계 버튼이나 ‘다음 단계 →’ 버튼으로 단계 이동하기
입력 맞추기: 모델에 들어가는 사진
•
‘입력 맞추기’ 단계에서 모델 입력 화면 살펴보기
•
‘원본 비교’로 원본과 입력 화면 번갈아 확인하기
•
모델에는 가로·세로 비율을 유지하고 남는 부분을 여백으로 채운 640×640 크기의 이미지가 입력됨
•
모델 입력에 맞추는 처리는 사진 속 대상의 모양과 위치를 다루는 전처리 과정임
후보 예측: 여러 상자 관찰
•
‘후보 예측’ 단계에서 ‘과정 펼쳐 보기 · 다시 보기’ 누르기
•
‘다음 장면 →’으로 입력 화면, 특징 추출 설명, 실제 후보 위치, 후보와 점수 차례로 관찰하기
•
한 사람 주변에 여러 후보 상자가 생기는지 확인하기
•
특징 추출 그림은 개념 설명이며 모델 내부의 실제 중간 계산값을 추출한 그림은 아님
•
후보가 점차 표시되는 장면은 이미 계산한 실제 후보를 점수순으로 펼치는 학습용 표현임
◦
YOLO가 화면에 보이는 순서대로 사람을 하나씩 찾아가는 방식은 아님
임계값 실험: 통과선 변경
•
같은 사진에서 신뢰도 임계값을 0.25 → 0.50 → 0.75로 변경하기
•
매번 ‘기준 통과 후보’, ‘NMS 후 상자’, ‘가릴 얼굴’ 수 기록하기
•
아래 후보 표에서 통과·기준 미만·중복 제거 사유 확인하기
•
기준을 높여 사라진 사람 상자에 연결된 얼굴이 자동 가림에서도 빠지는지 확인하기
•
임계값을 바꾸어도 결과가 같다면 바꾼 구간에 해당하는 후보 점수가 있는지 살펴보기
2-2. 중복 정리부터 결과 확인까지
중복 정리: NMS와 겹침 기준
•
‘중복 정리’ 단계에서 겹침(IoU) 기준을 0.45에서 0.80으로 변경하기
•
다른 조건은 유지하고 남은 상자와 중복 제거 사유 비교하기
•
높은 점수의 후보 주변에서 많이 겹치는 후보가 제거되는지 관찰하기
•
서로 다른 사람의 상자도 많이 겹치면 잘못 제거된다는 점 확인하기
가리기: 얼굴 영역 확인과 보정
•
‘가리기’ 단계에서 실제 얼굴 위치와 가림 영역이 일치하는지 확인하기
•
‘방법’에서 블러와 모자이크를 번갈아 선택하기
•
강도와 ‘상자 여유 폭’을 바꾸며 얼굴 가장자리까지 가려지는지 비교하기
•
누락된 얼굴은 ‘누락 얼굴 드래그로 추가’를 누른 뒤 얼굴 영역을 직접 지정하기
◦
필요하면 ‘좌표로 영역 추가’에서 x·y·폭·높이를 입력해 추가하기
•
얼굴 가림 상자를 눌러 해당 영역을 가림 대상에서 제외하거나 복원하기
•
직접 수정한 내용을 되돌리려면 ‘수동 보정 초기화’ 사용하기
결과 확인: 저장과 개념 점검
•
‘원본 비교’로 가려지지 않은 얼굴이나 잘못 가린 영역 다시 확인하기
•
‘가린 결과 PNG 저장 ↓’을 눌러 결과 내려받기
◦
저장 이미지에는 실제 가림 처리가 반영되며 후보 설명용 안내선은 포함되지 않음
•
화면 아래의 ‘먼저 예상하고, 확인하기’ 활동과 핵심 개념 문제 풀기
Ⅲ. 개념 정리와 수업 활용
3-1. 핵심 개념 정리
찾기와 가리기의 구분
•
전체 흐름: 사진 입력 → 사람·얼굴 위치 탐지 → 사람 후보의 임계값·NMS 판정 → 연결된 얼굴 선택 → 블러·모자이크 → 결과 확인
•
YOLOv8n은 사진에서 사람 후보의 위치와 점수를 예측함
•
별도의 BlazeFace 얼굴 탐지 모델이 얼굴 영역을 찾음
•
사이트는 남겨진 사람 상자와 연결되는 얼굴 영역에 가림 효과를 적용함
◦
사람의 몸 전체를 자동으로 흐리게 만드는 방식은 아님
◦
사람 탐지 성공이 얼굴 탐지 성공까지 보장하지 않음
•
블러와 모자이크는 선택된 영역의 픽셀을 바꾸는 이미지 처리임
◦
블러는 주변 픽셀 값을 혼합해 경계와 세부 표현을 흐리게 함
◦
모자이크는 작은 블록을 대표 색으로 채워 세부 표현을 줄임
점수와 임계값의 구분
•
후보 점수 ≥ 임계값이면 통과하는 규칙임
•
점수 0.60, 임계값 0.60이면 기준과 같으므로 통과함
•
점수 0.80은 그 후보의 정답률이 검증된 80%라는 뜻이 아님
•
임계값은 학습자가 조절하는 후처리 기준이며 AI가 학습한 내부 기준 전체를 변경하는 기능이 아님
•
같은 사진에서 임계값만 바꾸면 저장된 후보에 기준을 다시 적용함
◦
모델을 다시 학습하거나 다시 추론하는 과정이 아님
•
임계값을 높이면 NMS 이전 통과 후보 수는 줄거나 같아짐
◦
최종 가림 결과에는 중복 제거, 얼굴 연결, 수동 보정도 관여함
•
얼굴을 놓치는 상황을 줄일지, 잘못 잡힌 후보를 줄일지 목적에 맞게 판단해야 함
NMS와 IoU의 구분
•
같은 사람을 둘러싼 여러 상자 중 점수가 높은 상자를 대표로 남기는 과정이 NMS임
•
NMS는 Non-Maximum Suppression의 약자임
◦
점수가 가장 높은 상자를 남기고 많이 겹치는 나머지 후보 상자를 제거하는 방법임
•
IoU는 Intersection over Union의 약자임
◦
두 상자가 겹친 넓이를 두 상자가 차지하는 전체 넓이, 곧 합집합으로 나눈 값임
◦
값이 클수록 두 상자가 더 많이 겹침
•
이 사이트에서는 남긴 상자와의 IoU가 설정 기준보다 큰 후보를 중복으로 제거함
•
IoU 기준을 높이면 더 많이 겹쳐야 제거되므로 중복 상자가 더 남음
•
신뢰도 임계값은 ‘점수가 충분한가’, IoU 기준은 ‘상자가 얼마나 겹치는가’를 다룸
후보 번호의 의미
•
#8554 같은 번호는 YOLO 출력 배열의 순번을 이용한 후보 구분 표식임
•
무작위 번호, 인물의 신원, 사진 속 사람 수를 뜻하지 않음
•
같은 사람에게 서로 다른 번호의 후보 상자가 여러 개 생김
•
F로 시작하는 번호는 얼굴 모델의 탐지 결과를 구분하는 표식임
자동 가림과 사람의 최종 확인
•
옆모습, 작은 얼굴, 가려진 얼굴 등에서는 탐지가 누락될 수 있음
•
기준을 높이면 낮은 점수의 실제 사람까지 탈락해 얼굴이 가려지지 않는 경우가 생김
•
얼굴이 가려져도 옷, 이름표, 배경 등으로 인물을 알아볼 수 있음
•
저장 전 원본 비교와 수동 보정으로 결과를 확인하는 것이 사용자의 역할임
3-2. 수업 활동과 활용 안내
예상 → 실험 → 설명 활동
•
실험 전 질문: “임계값을 0.25에서 0.75로 높이면 NMS 이전 통과 후보 수는 어떻게 될까?”
•
예상 결과와 이유를 먼저 적기
•
같은 사진과 같은 IoU 기준을 유지하고 임계값만 변경하기
•
각 기준에서 후보 수·남은 사람 상자 수·가릴 얼굴 수를 기록하기
•
예상과 실제 결과가 다른 부분을 후보 점수와 처리 사유로 설명하기
•
후속 질문: “얼굴을 빠짐없이 가리는 것이 목적이라면, 임계값을 높이는 것이 항상 유리할까?”
학습 정리 질문
•
“사람 후보 상자 수와 실제 사람 수가 다른 이유는 무엇일까?”
•
“신뢰도 임계값과 IoU 기준을 각각 바꾸면 무엇이 달라질까?”
•
“사람은 탐지했는데 얼굴이 가려지지 않는 상황은 왜 생길까?”
•
“내가 고른 가림 강도와 범위가 적절하다고 판단한 근거는 무엇일까?”
정보통신윤리 교육
•
현재 앱은 사진을 브라우저 메모리에서 처리하며 서버 업로드나 영구 저장 기능이 없으므로 사진을 촬영하더라도 별도 데이터 저장되지 않음
•
다른 사람의 사진을 실습에 사용할 때는 사용 동의 받기







