[인공지능 프로젝트]대한민국 미아 ZERO 프로젝트

2021. 5. 3. 15:39Do! 개발

최종 완료 보고서

- 대한민국 미아 ZERO 프로젝트 -

Dearest logo

멘토 : 황희정

팀장 : 박성용

팀원 : 김정란, 엄이정, 윤예진, 김한울

 

목차

 

1. 프로젝트 배경

 

2. 프로젝트 소개

 

3. 시연

 

4. 사업성

 

5. 결론

 

 

전체 프로젝트 일정

프로젝트 일정

1. 프로젝트 배경

 

미아는 절대로 생겨서는 안 된다는 가치를 두고 있습니다. 아이를 잃어버린 가족은 정말 큰 고통을 경험하게 됩니다. 42390명은 2019년 우리나라에서 발생한 전체 실종 건수입니다.

전체 실종 건수의 약 50.8% 21551명은 아동 실종이었습니다. 이 수치는 시간당 약 2.5명의 실종아동이 지금 이 순간에도 발생하고 있다는 것을 의미합니다.

우리나라는 미아 문제에 대응하기 위해 다양한 제도를 시행하고 있습니다. 대표적으로 지문 사전등록제와 폴리스캐치가 있습니다. 두 제도 모두 다 훌륭한 제도이지만 한계점이 존재합니다. 지문 사전등록제는 20204월 기준 51.4%에 불과합니다. 그리고 생각보다 낮은 평균등록률을 보입니다. 폴리스캐치는 사람이 직접 몽타주를 그리기 때문에 하나를 제작하는 데 3~4주가 소요된다는 문제점이 있습니다.

지난 39년간 단 한 차례도 미아에 관한 공익광고가 제작되지 않았다는 것은 우리나라 국민이 미아 문제에 대해 안일하게 생각했음을 보여주는 지표입니다.

이에 저희 Dearest 팀은 아이들이 안전하게 뛰어놀 수 있는 대한민국, 미아 걱정 없는 대한민국을 위해 이 프로젝트를 기획하고 수행했습니다.

 

 

2. 프로젝트 소개

 

- 프로젝트명

대한민국 미아 ZERO 프로젝트

 

 

- 전체 시스템 구조도

시스템 프로세스 순서도

 

-

회원관리와 미아 등록이 메인 기능이며 미아 관리,, 소개, 회원가입, 공지사항 등 세부 기능이 포함되어 있습니다.

웹 구조도를 살펴보면 메인 페이지, 미아관리, 공지사항, 이용안내, 소개, 회원관리가 있습니다. 핵심은 미아 관리에서 미아 검색,, 등록, 정보 수정이 있습니다.

웹 시스템 구조도
미아등록 흐름도

- GAN

GAN은 생성자와 식별자가 서로 경쟁하며 데이터를 생성하는 모델입니다. 한국말로 번역하면 생성적 적대 신경망입니다.

GAN에서 파생되는 다양한 기술들이 있습니다. 저희는 그 중 Cycle GAN을 사용하였습니다.

Cycle GAN은 하나의 이미지 도메인을 다른 이미지의 도메인으로 바꾸는 모델입니다.

 

GAN 종류

엄이정 팀원의 어린 시절 사진을 넣어 20대 예측 사진을 생성하는 모델입니다. 아이 이미지를 넣으면 생성자는 20대 이미지를 생성합니다. 생성자가 생성한 이미지를 식별자가 true false로 판단합니다. 다시 생성된 이미지로 원래 이미지로 만듭니다. 이때 또한 식별자가 true false를 판단합니다. 이 모습이 사이클처럼 돌아간다고 하여 Cycle GAN이라고 불리고 있습니다.

팀원 엄이정의 어린 시절 사진으로 현재 모습 예측 프로세스
좌: 현재 모습 우: 예측 모습

- 생성자 코드

def generator_resnet(image, options, reuse=False, name="generator"):

 

with tf.variable_scope(name):

if reuse:

tf.get_variable_scope().reuse_variables()

else:

assert tf.get_variable_scope().reuse is False

 

def residule_block(x, dim, ks=3, s=1, name='res'):

p = int((ks - 1) / 2)

y = tf.pad(x, [[0, 0], [p, p], [p, p

def discriminator(image, options, reuse=False, name="discriminator"):

 

with tf.variable_scope(name):

if reuse:

tf.get_variable_scope().reuse_variables()

else:

assert tf.get_variable_scope().reuse is False

 

h0 = lrelu(conv2d(image, options.df_dim, name='d_h0_conv'))

h1 = lrelu(instance_norm(conv2d(h0, options.df_dim*2, name='d_h1_

 

 

- 영상관제 (Raspberry Pi)

CCTV에서 인체가 감지되면 해당 장면을 캡처하여 서버에 전송하는 기능을 수행하고 있습니다. 여기서 라즈베리파이 4와4 카메라 모듈, 적외선 모듈을 사용하여 CCTV를 제작하였습니다.

영상관제 시스템 구조도, 라즈베리파이로 제작한 CCTV

- 분석 서버

분석서버 구조도

CCTV에서 전송받은 사진을 입력받으면 Face Net을 통해 128개의 원소로 이루어진 벡터로 인코딩하여 학습합니다.

그런 다음 거리를 구하기 전 트리플렛 로스 트레이닝을 진행합니다. 앵커의 긍정과 부정 사이를 긍정은 가까이 부정을 멀리하는 트레이닝입니다. 이렇게 되면 거리가 가까울수록 같은 사람 멀수록 다른 사람으로 인식됩니다.

이건 트리플렛 로스 코드입니다. 정리하면 기준은 0.55로 잡았을 때 거리 0.6은 기준점보다 크기에 패스되고 거리 0.3은 기준점보다 낮기에 같은 사람으로 인식되는 기술입니다.

 

Triplelet loss 코드

def triplet_loss(y_true, y_pred, alpha = 0.3):

 

anchor, positive, negative = y_pred[0], y_pred[1], y_pred[2]

# Step 1: 앵커와 양수 사이의 (인코딩) 거리를 계산

pos_dist = tf.reduce_sum(tf.square(tf.subtract(anchor, positive)), axis=-1)

# Step 2: 앵커와 음수 사이의 (인코딩) 거리를 계산

neg_dist = tf.reduce_sum(tf.square(tf.subtract(anchor, negative)), axis=-1)

# Step 3: 두 거리를 빼고 알파를 더함

basic_los

 

 

 

3. 시연

- 웹 시연

 

- 폴리스캐치와 차이점

Dearest와 폴리스캐치는 가장 큰 차이점이 존재합니다.

Dearest는 사진을 입력받아 AI가 예상 모습을 만드는 것이고 폴리스캐치는 사람이 직접 예상 모습을 그리는 것입니다. 사람이 직접 그리기 때문에 폴리스캐치는 몽타주 한 개를 제작하는데 3~4주가 소요되지만, Dearest는 불과 3~4초 만에 생성할 수 있습니다. 비용 측면에서도 폴리스캐치는 대당 4000만 원의 장비와 전문 인력 양성 비용이 소요되지만, Dearest는 무료 서비스가 가능합니다.

폴리스캐치는 현재 8개의 경찰청에서 사용하고 있다고 합니다. Dearest는 경찰청에 합리적이고 매력적인 대안이 되리라 생각합니다.

 

 

 

4. 사업성

미아방지 ICT tam 시장은 2016년에 비해 올해 약 2.2배가 증가하였습니다.

2019년 보안 시장 키워드를 보시면 스마트시티, 사회안전망 구축 투자, 지능형 영상관제의 도입입니다.

그래서 저희 Dearest팀은 시스템을 통해 보안 시장에 키워드인 스마트 시티, 사회안전망 구축 투자, 지능형 영상관제의 도입에 크게 이바지하리라 생각합니다.

 

SR GAN을 사용해 이미지의 해상도를 높인 결과

5. 결론

첫째, 연령대별 예측 사진 생성을 위한 Cycle GAN 4개 모델을 생성하였습니다. 하지만 초기기획단계보다 해상도가 좀 떨어지는 결과가 나왔습니다. 추후 SR GAN을 포함한 다른 기술을 더 도입하여 해결할 생각입니다.

둘째, 정면 사진에서는 약 83% 인식하는 정확도가 나왔지만, 측면 위, 아랫면에서는 정면보다 낮은 정확도를 보였습니다.

마지막으로 향후 부모 얼굴 특징을 찾아 더 높은 정확도의 예측 사진을 생성할 계획입니다.

 

 

전체 소개 영상

 

 

반응형