본문 바로가기
후기

AI-HUB 아이디어 경진대회 2021 (Public 부분 최우수상 후기)

by winston1214 2021. 12. 21.
반응형

https://aihub.or.kr/problem_contest/51116

 

2021 인공지능 데이터 활용 경진대회 | AI 허브

2021 인공지능 데이터 활용 경진대회

aihub.or.kr

AI-Hub에서 주최하는 2021 인공지능 데이터 활용 경진대회에서 최우수상을 수상한 아이디어에 대한 후기를 작성한다.

수상 사진

 

## 1차 예선

1차 예선은 아이디어의 실현 가능성과 참신성을 평가한다. 이 과정에서 문서의 정갈한 정리와 소위 말하는 윗분들이 좋아하는 형식으로 적어야한다. 또한, 평가항목에 맞게 정확한 섹션을 나눠서 정리하는 것이 가장 좋다.

### 목적 및 필요성 부분

특히 아이디어 계획서에서 가장 중요한 것은 필요성이다. 원래 어떤 문제점이 있었고, 이 아이디어를 통해 문제점을 해결할 수 있을지를 통계적 지표를 사용하여 작성하는 것이 중요하다. 

또한, 이 아이디어를 통해 어떠한 파급효과를 이룰 수 있는지(특히 경제적인 관점에서)를 작성하면 더욱 가점이 된다.

### 활용 데이터 부분

활용 인공지능 학습 데이터를 적어야하는데 이 때 AI Hub 데이터를 무조건 하나 활용해야한다. 또한, 이 때 적을 때는 표를 활용하여 적는 것이 가장 깔끔하고 컬럼 구성을 출처, 데이터명, 데이터 정보, 어느 알고리즘에 활용을 할 것인지를 적어준다.

### 세부 내용

서비스에 대한 세부 내용 작성법은 다음과 같다.

처음엔 개요를 개괄식으로 작성한다. 그리고 서비스에 대한 진행 절차를 순서에 맞춰서 적은 다음, 꼭 그림을 통해 한 눈에 봐도 알 수 있게 작성한다. 여기선 플로우 차트와 시나리오 차트를 섞으면서 그려주면 좋다.

그리고 여기에 추가로 알고리즘 파이프라인과 아키텍쳐의 그림을 적어주면 좋다.

또한, 우린 추가적으로 서비스 실현 가능성에 대해 작성하며 실현 가능하다라는 것을 어필한다.

마지막으로 우리의 아이디어가 왜 창의적인지를 설명하고 고도화 방향에 대해 언급한다.

 

### 별첨

관련 근거에 대한 자료 정리 및 관련 법령 등을 첨부하면 좋다. 또한, 우리 팀 같은 경우는 위험도 산출이었기 떄문에 해당 근거를 찾아야만 했는데 그런 근거들을 넣어주면 좋다.

 

## 2차 본선

2020년 아이디어 경진대회와는 다르게 직접 개발을 해야했었다. 그래서 본선을 생각해서 꼭 코드로 실현 가능한 아이디어를 제출하는 것이 가장 좋다.

2차 본선에 들어가면 주최 측에서 서버를 제공해준다. 매우 좋은 사양의 서버이고 GPU는 32기가 정도 되었다.

따라서 많은 양을 학습할 수 있다.

그러나 서버는 아예 초기 상태이기 때문에 즉, 막 OS를 깐 상태이기 때문에 모든 셋팅을 다 해줘야한다. CLI 환경에 익숙하지 않은 사람은 XRDP를 통해 XRDP 설치를 통해서 GUI 환경을 구축할 수 있다. 우린 결국 Computer Vision에 대한 주제였기 때문에 GUI 환경 구축을 필수로 해야했다. 그리고 python 개발환경에 가장 적합하게 anaconda 가상환경을 통해서 환경을 셋팅하였다. (이 떄 mobaXterm을 사용하여 개발)

쭈르륵 개발을 하고 (추후 어려웠던 점과 우리 프로젝트 소개 떄 언급하겠다) 알고리즘을 완성시켰다.

그리고 알고리즘을 완료하고 발표 때 시각적인 효과를 더하기 위해 UI를 구축하였다. 어느 팀은 앱까지 개발하였다.(대단..)

알고리즘 개발 기간은 약 2주 정도 걸렸다.

역할 분담은 다음과 같이 하였다.

나 : 전체적인 알고리즘 개발

팀원 1 : UI 개발

팀원 2 : PPT 디자인 

팀원 3 : 발표

다들 너무 각자의 위치에서 잘 해주었다.

 

## SMART ATM

우리의 프로젝트는 SMART ATM으로 마이데이터와 ATM에 달려있는 CCTV 영상을 활용하여 보이스피싱 피해 위험도를 산출하는 것이다.

FLow

알고리즘 플로우는 다음과 같이 이뤄진다.

Computer Vision Task를 중심으로 설명하면 먼저 YOLOv5 를 통하여 객체인식을 한다. 이 때 class는 손 얼굴 마스크 이다. 코시국에 맞춰서 마스크를 탐지하여 벗게 하기 위함이다.

통화여부는 Face or Mask의 bounding box와 손의 bounding box를 이용하여 두 bounding box의 교집합의 여부에 따라 결정한다. 이 때 한순간이 아닌 1초(30프레임) 이상 유지 될 때 통화라고 판단한다.

그 후 표정인식은 EfficientNet-b4를 통해서 표정을 인식한다. 이 때 yolo로 cropping한 얼굴만 input 값으로 사용한다.

따라서 training data도 얼굴 표정만 cropping 한 이미지만을 사용한다.

여기서 클래스는 normal과 danger로 구분하여 이진분류를 수행한다.

그 후 마이데이터분석을 통해 통계적 이상치를 구해서 score를 산출하고 위험도를 산출한다.

 

## 어려웠던 점 & Futer work

표정 인식 자체가 특히 동양인의 표정인식은 어려움이 있다. 따라서 real world에서의 정확도는 그리 높지 않은 편이다. 따라서 이에 따라 transfer learning을 통하여 더 많은 양의 학습데이터를 이용하여 표정을 인식하면 real world에서도 잘 동작될 것이라고 생각한다.

팀플의 어려운 점은 서로의 입장 차이이다. 2달동안 되는 기간이었기 때문에 시험기간도 겹치고 다른 사람은 직장 일 때문에  바빴기 때문에 그러한 입장 차이가 있었다. 또한, 인공지능 개발자와 기획자간의 입장차이도 분명히 존재하였다. 따라서 이러한 조절을 잘 해야한다고 다시 한 번 생각이 들었다.

 

## Code

 

https://github.com/winston1214/Smart_ATM

 

GitHub - winston1214/Smart_ATM: NIA Idea Challenge - Pishing Hunter

NIA Idea Challenge - Pishing Hunter. Contribute to winston1214/Smart_ATM development by creating an account on GitHub.

github.com

도움이 됐으면 Star 부탁드립니다 ✨

반응형

댓글