AI Video Editing
트랜스크립트 기반 컷 편집, 자동 리프레이밍, 피사체 마스크, 객체 제거, 모자이크 처리 등 AI 동영상 편집을 뒷받침하는 모델과 자동 편집이 실패하는 경우를 다룹니다.
AI 동영상 편집은 머신러닝을 사용해 녹화된 영상을 자르고 배치하고 수정하는 작업을 자동화하거나 지원하는 것입니다. 모델은 대사를 텍스트로 변환하고, 장면 경계를 찾고, 장면 속 피사체를 추적하고, 배경에서 피사체를 분리하고, 대체 픽셀을 생성합니다. 인터뷰에 자막을 넣거나 풍경 동영상을 휴대전화 화면에 맞게 재구성하는 등 과거에는 프레임 단위로 몇 시간씩 작업해야 했던 일이 이제는 몇 분 만에 끝납니다. 이 용어는 기존 편집 소프트웨어의 보조 기능과 원본 녹화본을 완성된 클립으로 바꾸는 완전 자동 도구를 모두 포함합니다.
AI가 편집에서 처리하는 작업#
Adobe Premiere Pro, DaVinci Resolve, 트랜스크립트 우선 편집기 Descript와 같은 편집 소프트웨어에는 이러한 기능이 다수 내장되어 있습니다:
- 음성-텍스트 편집: 타임라인에 맞춰 정렬된 스크립트를 사용하면 편집자가 텍스트에서 문장을 삭제해 해당 영상 구간도 제거할 수 있습니다.
- 자막: 같은 스크립트를 자막 초안으로 변환하면 편집자가 정확한 문구, 화자 식별, 타이밍을 검토할 수 있습니다.
- 장면 감지: 모델은 긴 녹화본이나 이전에 편집된 파일에서 컷을 찾아 개별 샷으로 나눕니다.
- 자동 화면 재구성: 추적 기능은 피사체가 움직일 때도 세로 또는 정사각형 크롭 안에 주요 피사체가 유지되도록 하여, 하나의 와이드스크린 원본으로 소셜 플랫폼용 버전을 만들 수 있습니다.
- 마스킹 및 객체 제거: 세그멘테이션으로 사람이나 객체를 분리해 별도로 색 보정하거나 제거할 수 있으며, 인페인팅은 프레임마다 일관된 방식으로 빈 공간을 채웁니다.
- 동작 인식을 활용한 하이라이트: 모델은 골, 덩크슛, 기타 주요 장면을 찾아내며 스포츠 방송사는 이를 활용해 경기 후 몇 분 안에 하이라이트 영상을 편집합니다.
- 프레임 보간을 이용한 슬로 모션: 모델은 중간 프레임을 생성하므로 일반 속도로 촬영한 영상을 끊김 없이 느리게 재생할 수 있습니다.
- 오디오 정리: 음성 향상 모델은 좋지 않은 환경에서 녹음된 대화에서 배경 소음과 실내 잔향을 제거합니다.
- 데이터 프라이버시를 위한 마스킹: 영상을 공유하기 전에 얼굴, 사람, 차량 번호판을 탐지해 흐리게 처리합니다.
기능을 뒷받침하는 비전 모델#
대부분의 시각적 편집 기능은 세 가지 컴퓨터 비전 작업을 연결합니다. 객체 감지는 프레임 내 각 피사체를 찾아 바운딩 박스를 그립니다. 객체 추적은 프레임 간 감지를 안정적인 ID로 연결해 피사체가 장면을 걸어 다녀도 화면 재구성이나 흐림 효과가 같은 사람에게 계속 적용되도록 합니다. 효과를 피사체의 정확한 윤곽에 적용해야 하는 경우 인스턴스 세그멘테이션이 객체마다 픽셀 단위 마스크를 제공합니다. 이 세 가지는 영상을 변경하지 않고 내용을 설명하는 동영상 이해 모델이며, 편집 기능은 무엇을 변경할지 결정하기 위해 먼저 이 모델들을 실행합니다.
생성 모델은 나머지 작업을 담당합니다. 인페인팅 모델은 원치 않는 객체를 제거하고, 동영상 생성 모델은 장면의 스타일을 바꾸거나 몇 초 연장하거나 실제로 존재한 적 없는 영상을 만듭니다. 자동 편집은 빠른 움직임과 모션 블러, 피사체끼리 겹치는 경우, 추적을 끝내야 하는 장면 전환, 작거나 일부만 보이는 피사체에서 예측 가능한 방식으로 실패합니다. 이러한 기술은 녹화 내용이 보여주는 것을 변경할 수도 있으므로 딥페이크를 만들어 낼 수 있으며, 게시자는 파일을 편집한 도구를 기록하는 콘텐츠 자격 증명을 첨부할 수 있습니다.
마스킹 자동화#
마스킹은 행사, 거리, 직장 영상을 게시하는 팀이 자동화하기 가장 쉬운 편집 작업 중 하나입니다. Ultralytics의 객체 흐림 처리 솔루션은 모든 프레임에서 추적 기능이 있는 YOLO26 감지기를 실행하고 선택한 클래스의 바운딩 박스를 흐리게 처리합니다. COCO 사전 학습 모델에서 클래스 0은 '사람'입니다.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov")
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cap.get(cv2.CAP_PROP_FPS)
writer = cv2.VideoWriter("blurred.mp4", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# YOLO26으로 사람(COCO 클래스 0)을 감지하고 모든 프레임의 모든 박스를 흐리게 처리합니다
blurrer = solutions.ObjectBlurrer(model="yolo26n.pt", classes=[0])
while cap.isOpened():
success, frame = cap.read()
if not success:
break
results = blurrer(frame)
writer.write(results.plot_im)
cap.release()
writer.release()출력 blurred.mp4에는 감지된 모든 사람이 흐리게 처리되고 검토용 레이블이 있는 상자로 윤곽이 표시됩니다. blur_ratio(기본값 0.5)은 흐림 강도를 설정합니다. OpenCV는 동영상 프레임만 기록하므로 원본 오디오는 편집기나 FFmpeg를 사용해 다시 추가해야 합니다. 프레임 가장자리에서 잘렸거나 특이한 각도에서 보이는 사람은 감지를 놓치기 가장 쉬우며, 감지를 놓친 프레임마다 해당 인물은 출력에서 흐리게 처리되지 않습니다.










