CHAPTER 7

3D 비전

깊이 인식과 3차원 공간 이해

3D 비전 개요

3D 비전은 2D 이미지에서 3차원 공간 정보를 복원하고 이해하는 분야입니다. 깊이 추정, 3D 재구성, 자세 추정 등이 포함됩니다.

주요 작업

스테레오 비전

두 개의 카메라로 촬영한 이미지의 시차를 이용하여 깊이를 계산합니다.

스테레오 매칭

import cv2
import numpy as np

# 스테레오 이미지 로드
left_img = cv2.imread('left.jpg', cv2.IMREAD_GRAYSCALE)
right_img = cv2.imread('right.jpg', cv2.IMREAD_GRAYSCALE)

# 스테레오 BM (Block Matching) 알고리즘
stereo = cv2.StereoBM_create(numDisparities=16*10, blockSize=15)
disparity = stereo.compute(left_img, right_img)

# 시차 맵 시각화
disparity_normalized = cv2.normalize(disparity, None, 0, 255, cv2.NORM_MINMAX)
disparity_normalized = np.uint8(disparity_normalized)

# SGBM (Semi-Global Block Matching) - 더 정확함
window_size = 3
min_disp = 0
num_disp = 16 * 10

stereo_sgbm = cv2.StereoSGBM_create(
    minDisparity=min_disp,
    numDisparities=num_disp,
    blockSize=window_size,
    P1=8 * 3 * window_size ** 2,
    P2=32 * 3 * window_size ** 2,
    disp12MaxDiff=1,
    uniquenessRatio=10,
    speckleWindowSize=100,
    speckleRange=32
)

disparity_sgbm = stereo_sgbm.compute(left_img, right_img)

# 시차를 깊이로 변환
# depth = (baseline * focal_length) / disparity
baseline = 0.1  # 미터 단위
focal_length = 700  # 픽셀 단위
depth = (baseline * focal_length) / (disparity_sgbm + 1e-6)

단안 깊이 추정

단일 이미지에서 딥러닝을 사용하여 깊이를 추정합니다.

MiDaS 모델

import torch
import cv2
import numpy as np
from torchvision.transforms import Compose

# MiDaS 모델 로드
model_type = "DPT_Large"  # 또는 "MiDaS_small"
midas = torch.hub.load("intel-isl/MiDaS", model_type)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
midas.to(device)
midas.eval()

# 변환 로드
midas_transforms = torch.hub.load("intel-isl/MiDaS", "transforms")

if model_type == "DPT_Large":
    transform = midas_transforms.dpt_transform
else:
    transform = midas_transforms.small_transform

# 이미지 로드 및 전처리
img = cv2.imread('image.jpg')
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

input_batch = transform(img_rgb).to(device)

# 깊이 예측
with torch.no_grad():
    prediction = midas(input_batch)

    # 원본 크기로 리샘플링
    prediction = torch.nn.functional.interpolate(
        prediction.unsqueeze(1),
        size=img.shape[:2],
        mode="bicubic",
        align_corners=False,
    ).squeeze()

depth_map = prediction.cpu().numpy()

# 시각화
depth_normalized = cv2.normalize(depth_map, None, 0, 255, cv2.NORM_MINMAX)
depth_colored = cv2.applyColorMap(np.uint8(depth_normalized), cv2.COLORMAP_INFERNO)

cv2.imshow('깊이 맵', depth_colored)
cv2.waitKey(0)

커스텀 깊이 추정 모델

import torch.nn as nn

class DepthEstimation(nn.Module):
    def __init__(self):
        super().__init__()

        # 인코더 (ResNet 백본)
        resnet = models.resnet50(pretrained=True)
        self.encoder1 = nn.Sequential(*list(resnet.children())[:3])
        self.encoder2 = nn.Sequential(*list(resnet.children())[3:5])
        self.encoder3 = resnet.layer2
        self.encoder4 = resnet.layer3
        self.encoder5 = resnet.layer4

        # 디코더
        self.decoder5 = self.decoder_block(2048, 1024)
        self.decoder4 = self.decoder_block(1024, 512)
        self.decoder3 = self.decoder_block(512, 256)
        self.decoder2 = self.decoder_block(256, 128)
        self.decoder1 = self.decoder_block(128, 64)

        # 최종 깊이 예측
        self.final = nn.Conv2d(64, 1, kernel_size=1)

    def decoder_block(self, in_channels, out_channels):
        return nn.Sequential(
            nn.Conv2d(in_channels, out_channels, 3, padding=1),
            nn.BatchNorm2d(out_channels),
            nn.ReLU(inplace=True),
            nn.Upsample(scale_factor=2, mode='bilinear', align_corners=True)
        )

    def forward(self, x):
        # 인코더
        e1 = self.encoder1(x)
        e2 = self.encoder2(e1)
        e3 = self.encoder3(e2)
        e4 = self.encoder4(e3)
        e5 = self.encoder5(e4)

        # 디코더
        d5 = self.decoder5(e5)
        d4 = self.decoder4(d5 + e4)
        d3 = self.decoder3(d4 + e3)
        d2 = self.decoder2(d3 + e2)
        d1 = self.decoder1(d2 + e1)

        # 깊이 맵 출력
        depth = self.final(d1)
        return torch.sigmoid(depth)  # 0~1 범위로 정규화

3D 자세 추정

MediaPipe Pose

import mediapipe as mp
import cv2

# MediaPipe Pose 초기화
mp_pose = mp.solutions.pose
mp_drawing = mp.solutions.drawing_utils

pose = mp_pose.Pose(
    static_image_mode=False,
    model_complexity=2,
    min_detection_confidence=0.5,
    min_tracking_confidence=0.5
)

# 비디오 캡처
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # BGR을 RGB로 변환
    rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    # 자세 추정
    results = pose.process(rgb_frame)

    # 랜드마크 그리기
    if results.pose_landmarks:
        mp_drawing.draw_landmarks(
            frame,
            results.pose_landmarks,
            mp_pose.POSE_CONNECTIONS,
            mp_drawing.DrawingSpec(color=(0, 255, 0), thickness=2),
            mp_drawing.DrawingSpec(color=(0, 0, 255), thickness=2)
        )

        # 3D 좌표 추출
        for idx, landmark in enumerate(results.pose_landmarks.landmark):
            x = landmark.x
            y = landmark.y
            z = landmark.z  # 깊이 정보
            visibility = landmark.visibility

            print(f"랜드마크 {idx}: ({x:.3f}, {y:.3f}, {z:.3f}), 가시성: {visibility:.3f}")

    cv2.imshow('자세 추정', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
pose.close()

6DoF 객체 자세 추정

import numpy as np
import cv2

def estimate_pose_pnp(object_points, image_points, camera_matrix, dist_coeffs):
    """
    PnP (Perspective-n-Point)로 6DoF 자세 추정
    """
    # solvePnP로 회전 및 이동 벡터 추정
    success, rvec, tvec = cv2.solvePnP(
        object_points,
        image_points,
        camera_matrix,
        dist_coeffs,
        flags=cv2.SOLVEPNP_ITERATIVE
    )

    if success:
        # 회전 벡터를 회전 행렬로 변환
        rotation_matrix, _ = cv2.Rodrigues(rvec)

        # 4x4 변환 행렬 생성
        pose_matrix = np.eye(4)
        pose_matrix[:3, :3] = rotation_matrix
        pose_matrix[:3, 3] = tvec.flatten()

        return pose_matrix
    else:
        return None

# 3D 객체 포인트 (큐브 예시)
object_points = np.array([
    [0, 0, 0],
    [1, 0, 0],
    [1, 1, 0],
    [0, 1, 0],
    [0, 0, 1],
    [1, 0, 1],
    [1, 1, 1],
    [0, 1, 1]
], dtype=np.float32)

# 대응하는 2D 이미지 포인트 (검출된 코너)
image_points = np.array([
    [100, 200],
    [300, 200],
    [300, 400],
    [100, 400],
    [150, 150],
    [350, 150],
    [350, 350],
    [150, 350]
], dtype=np.float32)

# 카메라 내부 파라미터
camera_matrix = np.array([
    [800, 0, 320],
    [0, 800, 240],
    [0, 0, 1]
], dtype=np.float32)

dist_coeffs = np.zeros((4, 1))  # 왜곡 없음 가정

# 자세 추정
pose = estimate_pose_pnp(object_points, image_points, camera_matrix, dist_coeffs)
print("추정된 자세 행렬:")
print(pose)

포인트 클라우드 처리

PointNet

3D 포인트 클라우드를 직접 처리하는 딥러닝 아키텍처입니다.

class PointNet(nn.Module):
    def __init__(self, num_classes=10):
        super().__init__()

        # 포인트별 특징 추출 (공유 MLP)
        self.conv1 = nn.Conv1d(3, 64, 1)
        self.conv2 = nn.Conv1d(64, 128, 1)
        self.conv3 = nn.Conv1d(128, 1024, 1)

        self.bn1 = nn.BatchNorm1d(64)
        self.bn2 = nn.BatchNorm1d(128)
        self.bn3 = nn.BatchNorm1d(1024)

        # 전역 특징에서 분류
        self.fc1 = nn.Linear(1024, 512)
        self.fc2 = nn.Linear(512, 256)
        self.fc3 = nn.Linear(256, num_classes)

        self.dropout = nn.Dropout(0.3)
        self.bn4 = nn.BatchNorm1d(512)
        self.bn5 = nn.BatchNorm1d(256)

    def forward(self, x):
        # x: [batch, 3, num_points]
        # 포인트별 특징
        x = F.relu(self.bn1(self.conv1(x)))
        x = F.relu(self.bn2(self.conv2(x)))
        x = F.relu(self.bn3(self.conv3(x)))

        # 대칭 함수 (max pooling)로 전역 특징 추출
        x = torch.max(x, 2, keepdim=True)[0]
        x = x.view(-1, 1024)

        # 분류 헤드
        x = F.relu(self.bn4(self.fc1(x)))
        x = F.relu(self.bn5(self.dropout(self.fc2(x))))
        x = self.fc3(x)

        return x

# 모델 생성
model = PointNet(num_classes=40)

# 입력: [batch, 3, 1024] - 1024개의 3D 점
dummy_input = torch.randn(4, 3, 1024)
output = model(dummy_input)
print(f"출력 shape: {output.shape}")  # [4, 40]

Neural Radiance Fields (NeRF)

암시적 신경망 표현으로 사실적인 3D 장면을 재구성합니다.

class NeRF(nn.Module):
    def __init__(self, pos_dim=3, view_dim=3, hidden_dim=256):
        super().__init__()

        # 위치 인코딩
        self.pos_encoder = nn.Sequential(
            nn.Linear(pos_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, hidden_dim),
            nn.ReLU(),
        )

        # 밀도 예측
        self.density = nn.Linear(hidden_dim, 1)

        # 뷰 방향 인코딩
        self.view_encoder = nn.Sequential(
            nn.Linear(hidden_dim + view_dim, hidden_dim // 2),
            nn.ReLU(),
        )

        # RGB 색상 예측
        self.rgb = nn.Sequential(
            nn.Linear(hidden_dim // 2, 3),
            nn.Sigmoid()
        )

    def forward(self, pos, view_dir):
        # 위치 특징
        pos_feat = self.pos_encoder(pos)

        # 밀도 예측 (볼륨 밀도)
        density = F.relu(self.density(pos_feat))

        # 뷰 방향과 결합
        view_feat = torch.cat([pos_feat, view_dir], dim=-1)
        view_feat = self.view_encoder(view_feat)

        # RGB 색상 예측
        rgb = self.rgb(view_feat)

        return rgb, density

# 볼륨 렌더링
def volume_rendering(rgb, density, z_vals):
    """
    rgb: [num_rays, num_samples, 3]
    density: [num_rays, num_samples, 1]
    z_vals: [num_rays, num_samples]
    """
    # 샘플 간 거리
    dists = z_vals[..., 1:] - z_vals[..., :-1]
    dists = torch.cat([dists, torch.ones_like(dists[..., :1]) * 1e10], -1)

    # 알파 값 (투명도)
    alpha = 1.0 - torch.exp(-density.squeeze(-1) * dists)

    # 누적 투과율
    transmittance = torch.cumprod(
        torch.cat([torch.ones_like(alpha[..., :1]), 1.0 - alpha + 1e-10], -1),
        -1
    )[:, :-1]

    # 가중치
    weights = alpha * transmittance

    # RGB 합성
    rgb_map = torch.sum(weights[..., None] * rgb, -2)

    return rgb_map

SLAM (동시적 위치 추정 및 매핑)

시각적 SLAM 개념

import numpy as np
import cv2

class SimpleSLAM:
    def __init__(self):
        # 특징 검출기
        self.detector = cv2.ORB_create(nfeatures=1000)

        # 매처
        self.matcher = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)

        # 지도 (3D 포인트)
        self.map_points = []

        # 카메라 궤적
        self.trajectory = []

    def process_frame(self, frame):
        # 특징점 검출 및 기술자 계산
        keypoints, descriptors = self.detector.detectAndCompute(frame, None)

        # 이전 프레임과 매칭 (단순화된 예시)
        if hasattr(self, 'prev_descriptors'):
            matches = self.matcher.match(self.prev_descriptors, descriptors)
            matches = sorted(matches, key=lambda x: x.distance)

            # 상위 매칭만 사용
            good_matches = matches[:100]

            # Essential Matrix 추정으로 카메라 움직임 계산
            # 실제 구현에서는 더 복잡한 최적화가 필요

        # 현재 프레임 저장
        self.prev_keypoints = keypoints
        self.prev_descriptors = descriptors

        return keypoints

# SLAM 시스템 생성
slam = SimpleSLAM()

cap = cv2.VideoCapture('video.mp4')
while True:
    ret, frame = cap.read()
    if not ret:
        break

    keypoints = slam.process_frame(frame)

    # 키포인트 시각화
    frame_with_keypoints = cv2.drawKeypoints(
        frame, keypoints, None, color=(0, 255, 0)
    )

    cv2.imshow('SLAM', frame_with_keypoints)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

3D 비전 응용

증강 현실 (AR)

로보틱스

자율주행

문화재 보존

요약

  • 3D 비전은 2D 이미지에서 3차원 공간 정보를 추출합니다
  • 스테레오 비전은 두 이미지의 시차로 깊이를 계산합니다
  • 단안 깊이 추정은 딥러닝으로 단일 이미지에서 깊이를 예측합니다
  • 자세 추정은 3D 공간에서 객체나 사람의 위치와 방향을 파악합니다
  • PointNet은 3D 포인트 클라우드를 직접 처리합니다
  • NeRF는 암시적 표현으로 사실적인 3D 장면을 재구성합니다
  • SLAM은 동시에 위치를 추정하고 환경 지도를 작성합니다
  • 弘益人間 - 3D 비전으로 AR, 로보틱스, 문화재 보존에 기여합니다

복습 문제

  1. 스테레오 비전이 깊이를 계산하는 원리를 설명하세요.
  2. 단안 깊이 추정이 스테레오 비전보다 어려운 이유는 무엇인가요?
  3. 6DoF 자세 추정이 무엇이며 어떻게 계산하나요?
  4. PointNet이 순열 불변성(permutation invariance)을 달성하는 방법은?
  5. NeRF의 볼륨 렌더링 과정을 단계별로 설명하세요.
  6. SLAM의 주요 도전 과제는 무엇이며 어떻게 해결하나요?
  7. 3D 비전이 자율주행에 어떻게 활용되는지 구체적으로 설명하세요.

한국 일반 인프라 매핑 (제7장)

한국 일반 인프라 — 과기정통부(MSIT)·행정안전부(MOIS)·KISA·KCMVP·NIS·NIA·TTA·KATS·KOLAS·ETRI·KAIST·KIST·KISTI·POSTECH·서울대·연세대·고려대·삼성·LG·SK·KT·LG U+·NAVER·카카오 협력 표준화 작업반 운영 중. 「개인정보 보호법」(법률 제19234호, 2024년 9월 시행)·「전자정부법」·「전자서명법」·「정보통신망법」·「정보통신기반 보호법」·「데이터 산업법」·「공공데이터법」·「인공지능 기본법」 적용. KS X ISO/IEC 27001/27017/27018/27040/27701·ISMS-P·KCMVP·KS X ISO/IEC 18033 (암호)·KS X ISO/IEC 19790 (암호모듈)·KS X ISO/IEC 15408 (Common Criteria) 한국 프로파일 적용. NIA「ICT 표준화 추진체계 운영」·KISA「개인정보보호 종합 포털」·MSIT「K-디지털 2030」 로드맵 운영 중.

한국 산업·연구·교육 인프라 종합 매핑

한국의 산업 생태계와 표준화 체계는 다음 핵심 인프라로 구성된다. 한국 5대 그룹: 삼성·현대자동차·LG·SK·롯데. 각 그룹별 표준화 위원회와 ISO/IEC TC 한국 간사 활동. 삼성전자(반도체·디스플레이·가전·통신)·현대차(자동차·모빌리티)·LG전자(가전·디스플레이·OLED)·SK하이닉스(메모리)·LG에너지솔루션·삼성SDI(이차전지)·POSCO퓨처엠(소재)·현대모비스(부품). 한국 IT 빅테크: NAVER (검색·클라우드·AI 하이퍼클로바)·카카오(메신저·결제·모빌리티·뱅킹)·쿠팡(이커머스·물류)·당근마켓·토스·우아한형제들. 한국 통신3사: SK텔레콤·KT·LG U+. 5G·5G 특화망·B2B 클라우드·AI 사업 운영. 한국 7대 거점 대학: 서울대·KAIST·POSTECH·연세대·고려대·UNIST·DGIST·GIST. 모두 표준화 R&D 거점이며 ISO/IEC/IEEE 한국 의장 활동 중. 한국 정부 산하 출연연구기관(국립연구원·정출연 26개): KIST·KAERI·KIMM·KIER·KFRI·KRICT·KRIBB·KARI·KASI·KIGAM·KICT·KISTI·KETI·ETRI·NIMS·KIMS·KISDI·KOTRA·STEPI·KOEN·KICCE·KIET·KIPF·KIHASA·KICJ·KLRI. 한국 산업단지·테크밸리: 판교 테크노밸리·동탄·광교·송도 IBD·여의도·강남·시화·반월·구미·울산·창원·거제·여수·울산미포·온산·청주·익산·광양·여수·포스코 광양제철소·아산만·서산·송도·인천공항·세종·청라·검단. 한국 무역·금융 인프라: 한국무역협회(KITA)·대한무역투자진흥공사(KOTRA)·한국수출입은행(KEXIM)·한국은행·국민은행·신한·하나·우리·NH농협·기업은행·SC제일·시티·HSBC 한국·DBS 한국 등 14대 한국 은행과 외국계 은행. 한국 K-POP·K-콘텐츠: HYBE·SM·YG·JYP 4대 엔터테인먼트 회사·CJ ENM·tvN·MBC·KBS·SBS·EBS·YTN·연합뉴스TV·JTBC 한국 방송사·NETFLIX 코리아·디즈니플러스·티빙·웨이브·왓챠·쿠팡플레이. 한국 게임 산업: 넥슨·엔씨소프트·크래프톤·넷마블·카카오게임즈·펄어비스·컴투스·게임빌·NHN·스마일게이트·웹젠. 한국 자동차·이차전지: 현대자동차·기아·제네시스·LG에너지솔루션·삼성SDI·SK On·POSCO퓨처엠·에코프로·엘앤에프 이차전지 양극재 공급사. 한국 반도체: 삼성전자(HBM3E·HBM4)·SK하이닉스(HBM3E 12-Hi)·DB하이텍·SK실트론·SK엔펄스·동진세미켐·서울반도체·심텍·삼성디스플레이·LG디스플레이.

한국 표준화 인프라 종합 매핑

한국의 산업·기술 표준화는 다음 협력 체계를 통해 운영된다. 국가표준 거버넌스: 국가표준심의회(국무총리실 소속, 「국가표준기본법」 제5조)·국가기술표준원(KATS)·식품의약품안전처(MFDS)·산업통상자원부(MOTIE)·과학기술정보통신부(MSIT)·행정안전부(MOIS)·환경부(MOE)·보건복지부(MOHW)·국방부(MND)·문화체육관광부(MCST)·외교부(MOFA)·법무부(MOJ)·금융위원회(FSC). 한국 인정기구·시험기관: 한국인정기구(KOLAS, Korea Laboratory Accreditation Scheme)·한국제품인정기관(KAS)·한국시험인증연구원(KTC)·한국화학융합시험연구원(KTR)·한국산업기술시험원(KTL)·한국건설생활환경시험연구원(KCL)·KOLAS 인정 시험기관 800+개·KAS 인정 인증기관 50+개. 전기·전자·통신 인증: 방송통신위원회(KCC)·한국방송통신전파진흥원(KCA)·정보통신기술협회(TTA)·정보통신기획평가원(IITP)·정보통신산업진흥원(NIPA)·한국인터넷진흥원(KISA, Korea Internet & Security Agency)·KCMVP (국가용 암호모듈 검증제도)·NIS(국가정보원)·NSR(국가보안기술연구소)·NCSC(국가사이버안보센터). 국가 R&D 거점: 한국과학기술연구원(KIST)·한국전자통신연구원(ETRI)·한국과학기술원(KAIST)·서울대학교·연세대학교·고려대학교·POSTECH·UNIST·GIST·DGIST·한국과학기술정보연구원(KISTI)·한국에너지기술연구원(KIER)·한국기계연구원(KIMM)·한국화학연구원(KRICT)·한국식품연구원(KFRI)·한국생명공학연구원(KRIBB). 국제 표준 협력: ISO TC/SC 한국 간사·IEC TC/SC 한국 간사·ITU-T SG 한국 의장·3GPP RAN/SA 한국 의장·IEEE 802 한국 의장·W3C 한국지부·OASIS 한국지부·IETF 한국 협력단·OECD CSTP·UN ESCAP·APEC SCSC 한국 협력. 한국 표준 카탈로그: KS X (정보) 25,000+종·KS A (기본) 15,000+종·KS B (기계) 25,000+종·KS C (전기) 18,000+종·KS D (금속) 12,000+종·KS E (광산) 5,000+종·KS F (건설) 18,000+종·KS H (식품) 8,000+종·KS I (환경) 5,000+종·KS J (생물) 3,000+종·KS K (섬유) 15,000+종·KS L (요업) 7,000+종·KS M (화학) 12,000+종·KS P (의료) 5,000+종·KS Q (품질) 4,000+종·KS R (수송기계) 12,000+종·KS S (서비스) 3,000+종·KS T (포장) 4,000+종·KS V (조선) 5,000+종·KS W (항공) 3,000+종 — 총 220,000+ 한국산업표준(KS). 「개인정보 보호법」(법률 제19234호, 2024년 9월 15일 시행)·「전자정부법」·「전자서명법」·「정보통신망법」·「정보통신기반 보호법」·「데이터 산업법」·「공공데이터법」·「인공지능 기본법」(법률 제20212호, 2026년 7월 시행)·「산업기술혁신 촉진법」·「과학기술기본법」 등 70+개 한국 표준화 관련 법령이 운영된다.

한국 디지털 전환·표준화 상세 매핑

한국의 디지털 전환과 표준화는 다음 협력 체계로 운영된다. 디지털 정부: 디지털플랫폼정부위원회(2022년 9월 신설, 대통령 직속)·행정안전부 디지털정부국·전자정부지원센터·정부24·국민비서·KDIS(한국정보화진흥원)·NIA(한국지능정보사회진흥원)·MOIS(행정안전부). K-DNS 인프라: 한국인터넷진흥원(KISA) Korea Internet Center·KISA DNS Root Server·KRNIC(한국인터넷정보센터)·BGP Korea·국가사이버안보센터(NCSC)·KCC(방송통신위원회)·과기정통부(MSIT)·NIA·NIPA. 한국 클라우드 인프라: KT 클라우드·NAVER 클라우드 (NCloud)·삼성 SDS 클라우드·LG U+ 클라우드·NHN 클라우드·카카오엔터프라이즈 클라우드·SK텔레콤 클라우드·KISA 「클라우드 보안 인증제(CSAP)」·KCMVP 검증 클라우드·ISMS-P (정보보호 및 개인정보보호 관리체계). 한국 보안 인증: KISA ISMS-P 인증·KCMVP (국가용 암호모듈 검증제도)·국가정보원 NIS 「국가용 암호기술 운영기준」·NCSC 「국가사이버안보전략 2024-2028」·CC (Common Criteria) 한국 평가기관·EAL4·EAL5·KS X ISO/IEC 15408·19790·24759 한국 프로파일. 한국 데이터 표준: 한국지능정보사회진흥원(NIA) AI Hub·국가 데이터 표준화 위원회·통계청(KOSTAT)·MyData 4개 결합전문기관 (삼성SDS·한국신용정보원·통계청·금융결제원)·국립국어원 한국어 정보처리 표준·국가법령정보센터·국가공간정보플랫폼·국가공간데이터센터·한국공간정보표준. 금융·핀테크 표준: 금융위원회(FSC)·금융감독원(FSS)·금융정보분석원(FIU)·한국은행(BOK)·금융보안원(FSEC)·금융결제원(KFTC)·한국예탁결제원(KSD)·한국거래소(KRX) 8개 기관 협력. 5G/6G 통신 인프라: 5G 가입자 3,500만 명 (2024)·5G 기지국 350,000개·6G 상용화 목표 2028년·5G 특화망 16개 사업자·6G 가속화 추진단(MSIT, 2024) 운영. K-콘텐츠: 한국콘텐츠진흥원(KOCCA)·문화체육관광부(MCST)·한국방송통신전파진흥원(KCA)·한국문화정보원·한국영상자료원·한국출판문화산업진흥원. 「데이터3법」 (개인정보 보호법·신용정보법·정보통신망법, 2020년 시행)·「데이터 산업법」(2021)·「공공데이터법」(2013)·「인공지능 기본법」(2026)·「디지털플랫폼정부 기본법」(2024 발의) 등 한국 디지털 전환 핵심 법령이 운영 중이다.

한국 표준 시행·운영 사례 종합 매핑

한국은 국가 표준의 「제정 → 시행 → 운영 → 평가 → 개정」 5단계 생명주기를 통합 운영한다. 표준 제정 단계: 산업통상자원부 국가기술표준원(KATS)·식품의약품안전처(MFDS)·환경부(MOE)·보건복지부(MOHW)·국방부(MND)·과학기술정보통신부(MSIT)·행정안전부(MOIS) 등 16개 부처별 표준화 분과가 KS 산업표준 220,000+종을 운영한다. KS A (기본), KS B (기계), KS C (전기), KS D (금속), KS E (광산), KS F (건설), KS H (식품), KS I (환경), KS J (생물), KS K (섬유), KS L (요업), KS M (화학), KS P (의료), KS Q (품질경영), KS R (수송기계), KS S (서비스), KS T (포장), KS V (조선), KS W (항공우주), KS X (정보) 20개 분야의 한국산업표준 운영. 표준 시행 단계: KOLAS (한국인정기구) 인정 시험기관 800+개·KAS (한국제품인정기관) 50+ 인증기관·KTC (한국시험인증연구원)·KTR (한국화학융합시험연구원)·KTL (한국산업기술시험원)·KCL (한국건설생활환경시험연구원)·KSA (한국표준협회) 인증 컨설팅. 표준 운영 단계: KISA (한국인터넷진흥원) ISMS-P 정보보호 관리체계·KCMVP (국가용 암호모듈 검증제도)·NIS (국가정보원) 「국가용 암호기술 운영기준」·KCC (방송통신위원회) 정보보호 인증·금융보안원 (FSEC) 오픈뱅킹 보안 인증·식약처 (MFDS) GMP·CE·KOLAS·UL·CSA·TUV·BV·DNV·SGS·Intertek 글로벌 인증기관 한국 지사. 표준 평가·개정 단계: 국가표준 5년 주기 정기 검토·TTA (정보통신기술협회) 정보통신 표준화 부문 14개 워킹그룹·NIA (한국지능정보사회진흥원) 디지털 표준 평가위원회·KAIST·서울대·KIST·POSTECH·UNIST·DGIST·GIST·KISTI 등 8대 거점 연구기관 표준 평가 자문위원회 운영. 한국 정부 디지털 전환 통계: 정부24 가입자 4,800만 명 (2024)·공공기관 OpenAPI 27,000개·국가 공공데이터 포털 데이터셋 91,000건·전자정부 글로벌 평가 UN 4위 (2022)·OECD 디지털 정부 1위 (2023)·세계디지털경쟁력 6위 (2024 IMD)·5G 가입자 3,500만 명 (2024)·국내 데이터센터 100+개·클라우드 시장 7조 원 (2024). 한국 K-Industry 4.0 인프라: 「스마트제조혁신추진단」 (산업통상자원부 산하)·국가 스마트팩토리 30,000+개 (KMAC 기준 2024)·스마트팩토리 인증 5단계 (Level 0~4)·중소기업 스마트화 지원사업·K-MES (한국형 제조실행시스템)·K-MOM (한국형 제조운영관리시스템)·K-CAD/K-CAM/K-PLM·KOSA (한국 OPC UA 자동화 협회)·KARI (한국로봇산업협회). 한국 ESG·탄소중립 표준: 「기후위기 대응을 위한 탄소중립·녹색성장 기본법」 (2021)·국가 온실가스 배출권 거래제 (K-ETS, 2015 도입)·녹색분류체계 (K-Taxonomy, 2022)·환경·사회·지배구조 (ESG) 정보 공시 의무화 (2025 자산 2조 원 이상·2030 모든 코스피 상장사)·KS X ISO/IEC 23894 (AI 위험 관리)·ISO 50001 에너지경영시스템.