[1] 사전 준비
테스트 분석용 및 교육 실습용: 안전모 착용감지 AI 안전환경 솔루션 및 교육 실습용
(다양한 날씨, 조명, 장소, 작업자 성별, 안전모 색상 및 형태, 각도 등 다양한 데이터 필요 -> 합성데이터 필요)
데이터 공급자: (주) LG 유플러스(AIX팀)
개인정보 수집 및 활용 동의 절차를 거쳐 LG 유플러스 및 협력사 직원들의 안전모 착용 이미지 생성
합성데이터 생성에 필요한 전처리 수행
합성데이터 생성기관: (주)AIT 스토리(이미지를 받아 합성이미지로 직접 생성)
합성데이터 수요자: (주) LG 유플러스(NW빅데이터 분석팀), 한국인터넷진흥원(공동 소유권자, 교육 실습 목적)
LG유플러스는 AI학습 목적 활용
[원본 특성 검토]
개인정보 포함 여부: 피촬영자 얼굴이 고화질로 촬영됨 -> 개인정보로 판단됨
[관련 법률 검토]
내부 규정에 따라 원본은 외부 반출 X, AIX팀 개인정보처리자 및 책임자 관리 하에 처리
개인정보 처리 위탁계약(LG유플러스 - AIT 스토리), 데이터 공급 협약(LG유플러스-AIT스토리-한국인터넷진흥원)
[2] 합성데이터 생성
모델 결정: Stable diffusion에 두 가지 합성 모델 생성해서 사용 (안전모 및 한국인 안면 데이터 부족 사유)
1) LoRA(Low-Rank Adaptation): 이미지, prompt 만나는 지점인 cross-Attention 레이어에 가중치 갱신하여 스타일 변환
Stable Diffusion WD 14 Tagger로 원본 이미지의 요소들을 script, tag로 추출하고 적절한 부분만 남김
kohya_ss의 WebUI를 통해 학습 진행
2) Instruct Pix2Pix(Tim Brooks, 2023): 원본 이미지에 스크립트를 추가하여 추가 이미지 편집 수행
LoRA를 통해 만들어진 가상의 인물이 담긴 합성이미지들을 입력하여 개인식별 위험을 낮춤
원본 432장의 배경을 설명하는 캡션을 수동으로 추가하여 학습 데이터 구성
사용 예) LoRA를 통해 생성된 합성이미지에 다양한 배경효과 추가
알고리즘 위험성 검토: Diffustion 모델은 비가역적 알고리즘 -> 개인식별 측면에서 안전함
But, 생성 방법에 따라 가역성이 존재할 수 있음 -> 추가적 안전성 검증 필요
이 사례는 원본 문서가 사용하지 않은 SDXL1.0로 극단적으로 가역성을 의도하여 만든 예시이다.
전처리: 네이밍 룰에 따라 파일명 수정, 512*512로 이미지 사이즈 정규화, padding 추가
(OpenCV, 직접 구현한 이미지 전처리 알고리즘 C++ 사용)
개인식별자 처리방식: 파일 속성에 남은 촬영 장소, 일시는 합성데이터 생성에 활용되지 않으므로 별도 처리 없음
합성이미지 생성 방법: 적절한 text prompt(script)로 생성
Positive prompt: "Korean worker wearing a yellow colored safety helmet" 같은 예시
Negative prompt: weird face, portrait, paint, drawing 같은 부류
sampling steps: Random Gaussian noise에서 prompt와 일치하는 이미지까지의 단계 수
batch count: 이미지 생성 시도 횟수
CFG scale: 값이 높으면 prompt 지시사항에 가깝게 생성(이미지 생성 자율성 하락)
Seed: 이미지 생성 시작 점 개수 (특정 형태의 이미지 양상 고정용)
모델 파라미터 조정을 통해 원본 이미지 형태를 유지하지 않도록 하여 생성하였으므로 개인 식별 정보 불포함
이 생성된 이미지들 중에서 의도하는 배경 변화 script를 instruct pix2pix에 입력하여 이미지 편집 -> 다양한 조명, 배경 추가
[3] 유용성, 안전성 검증
검증 방법: 필요한 합성데이터 수량 5500장 이상의 합성데이터 생성 후, 검증과정을 통해 기준 미달 삭제
* 만약 목표한 데이터 수량을 확보하지 못한 경우 재생성 여부 결정하고 재생성, 재검증 과정 반복 수행
[유용성 검증]
원본 데이터: 432장 -> 영상처리 기반 Augmentation(Flip, Rotataion, Random crop)으로 5000장 규모 증강
1) 모델성능 검증: 원본 5000장만 학습한 모델 (TR1), 합성데이터 임의 5000장만 학습한 모델 (TR2)을 만들고,
학습에 사용되지 않은 원본 데이터 1000장(TE1)과 학습에 포함되지 않은 학습 데이터 1000장(TE2)셋 구축
-> TR1과 TR2가 1000명의 사람에 대해 안전모 착용여부를 정확하게 감지하는지 측정
객체 검출 모델: DrakNet 기반의 YoloV3, 라벨링 툴(Yolo Mark) 사용
정상검출 경우 Heuristic rule로 안전모 착용 상태 판단.
원본 데이터로 학습된 모델과 비교할 때 TE1, TE2 모두 95분위수 이상의 성능을 지님 -> 유용성 임계값 충족
2) VTT (Visual Turing Test)
[내부 사업팀 관계자 2인이 받은 고지사항]
▸ 무작위 샘플에 원본과 AI로 만든 이미지(합성데이터)가 같은 수량이며, AI로 만든 이미지를 최대한 찾는 것이 목표
▸ 각 100장 혼합 샘플에서 50장의 합성 이미지를 찾아내야 함
▸ 제한시간 10분
결과: 평균 66% 정답률 산출 -> 30~70%내의 정답률이므로 유용성 임계값 충족
3) 이미지 품질검증 (FID): pytorch-fid모듈 사용
임계값: 원본 432장 FID측정 반복 후, 누적된 측정값의 95분위수 = 382.874323
특이점: 확장자만 다른 동일한 이미지에 대해 5정도의 값이 측정됨
-> 해상도가 서로 다르고, 얼굴만, 상반신만, 전신이 포함된 이미지 등으로 다양하여 낮은 FID 값 가능성 낮음
합성데이터: 432장씩 10세트로 FID 측정, -> 10개 데이터셋 평균 223.791, 각 데이터 셋 FID 값도 임계값 이하
[안전성 검증]
1) 생성과정 검증
2) 구조적(MS-SSIM), 지각적(LPIPS) 유사도 검증: 이미지 유사도 검증
임계값: 각 이미지와 나머지 431장의 이미지에 대한 FID 반복 측정 후, 누적된 측정값의 99분위수
안전성 측정 방법: 각각 합성데이터에 대해 모든 원본 이미지로 1:1 유사성 비교 점수 측정, 합성데이터 1개와 원본 전체를 비교 후 평균내는 전수조사 -> 각 데이터 측정값이 모두 임계값 이하 -> 안전한 데이터로 판단.
모든 데이터가 임계값 이하로 측정됨 -> 삭제 X
3) 주관적 검증: 임계값보다 높게 측정된 합성이미지 없음 -> 주관적 검증 수행 생략
[4] 활용
객관적 검증을 위해 외부전문가 5인(법률2인, 데이터2인, 정보보호1인)을 통해 적정성 심의를 받음
결과: 데이터 생성 및 검증 과정이 적절하다 판단
'TechStudy > SyntheticData' 카테고리의 다른 글
합성데이터 사례: 기업개요 및 주주 신용등급 (0) | 2024.06.18 |
---|---|
합성데이터 사례: 통신사 멤버십 사용내역 (0) | 2024.06.18 |
합성데이터 사례: 혈당 측정정보 (0) | 2024.06.18 |
합성데이터 사례: 구강 이미지를 통한 충치 진단 AI 솔루션 (0) | 2024.06.17 |
합성 데이터 개념 (개인정보보호위원회, 인하대, 서울대) (0) | 2024.06.17 |