Skip to content

계획서 발표회 피드백

Jigu edited this page Apr 18, 2019 · 3 revisions
  • 얼굴인식 기술을 중점적으로 개발할지, 상품 추천을 중점적으로 개발할지
    요약 : 시스템이 복잡하기 때문에 현재에는 기본적인 사항을 구현하는 것이 중요합니다. 현재 2명 3명으로 나누어 얼굴인식 기술과 상품 추천을 각각 개발하는 중입니다. 하나를 선택하게 된다면 상품 추천을 집중적으로 개발하게 되며, 이를 중점으로 개발한다면 아래 설명된 내용과 같은 구현이 가능할 것입니다.

    • 해당 사항은 기본적으로 새로운 시스템의 구현이 목표이기 때문에, 새로운 기술을 적재 적소에 활용하여 기업의 이윤 극대화와 고객의 만족도 증가를 목표로 하고 있습니다. 그렇기 때문에 학술적으로 깊이 있는 연구보다 아이디어를 실제 구현하는 데 초점이 맞추어져 있습니다. 하지만, 특정 분야를 학술적으로 깊이 있게 연구한다면, 실시간으로 입력되는 구매기록 데이터 ( Streaming Purchase Log Data ) 를 어떻게 추천 알고리즘에 적용할 수 있을 것인가에 대해 추가적으로 연구할 수 있습니다. 첫째로 대용량 Streaming 데이터에 대한 처리가 필요한 부분으로, Engineering 측면에서는 Kafka 와 같은 플랫폼 기반에서 데이터 처리의 Orchestration 을 효율적으로 하는 방안에 대해 연구해볼 수 있습니다. 둘째로 단순 구매기록 데이터를 추천 광고와 접목시키기 위해서, Colaborate Filtering 기법을 뛰어넘는 새로운 알고리즘을 개발하는 등의 연구가 이루어질 수 있습니다. 이는 이번 캡스톤 프로젝트의 목표인 '새로운 아이디어의 구현' 이 완료된 다음 추가적으로 이행할 수 있는 사항이며, 목표가 달성되는 대로 시스템 최적화를 위해 상기한 연구 내용을 진행할 예정입니다.
  • 딥러닝 기법이 다른 기법보다 다 유용한지에 대한 고려 ( FaceNet은 Facebook 에서 개발한게 아니었음 )

    • 현재 프로젝트에서 딥러닝 기법은 Face Detection 부분에 사용되고 있습니다. 여기에 사용된 모델은 FDDB 를 통해 24,000 회 Pretrained 된 모델로, Face Detection 에서 최적의 성능을 나타낼 수 있는 연구를 기반으로 진행된 것입니다. Open CV 에 존재하는 Haar Cascade 기법 등이 딥러닝 외의 기법으로 생각될 수 있지만, 유용성 측면에서는 적절하게 구현되어 있는 FaceNet-120 모델이 더 좋다고 이야기할 수 있습니다. 관련된 논문은 링크에서 확인하실 수 있습니다. http://vis-www.cs.umass.edu/fddb/fddb.pdf
  • 개인 맞춤형 Advertisement 제공 에서 걸리는 시간 측정

    • Face Detection 에 걸리는 최소 시간은 Frame 측정 Issue 에서 확인할 수 있듯이 detect 된 얼굴 크기에 따라 Disk I/O 가 발생하는 정도가 달라져, 그 시간도 달라집니다. 하지만 최적화된 상황에서 8 ~ 9 Frame Per Second 정도의 속도를 보여주며, 1초에 8장 정도의 얼굴 이미지를 저장하게 됩니다.
    • 그 외에 측정이 필요한 부분은 Network I/O 로 인한 Jetson → AWS S3 에 걸리는 시간, AWS Lambda 에서 S3 데이터를 AWS Rekognition 으로 분석하고, 결과를 받을 때 까지 걸리는 시간, 그리고 최종적으로 web 송출을 위한 Lambda 에서 받아 DynamoDB 에 Query 를 전송하고, 해당 결과를 API Gateway 를 통해 웹으로 전송하는 데 걸리는 시간을 추가적으로 계산해볼 필요가 있습니다.
    • 현재는 최대 3,000 ms ( 3초 ) 를 목표로 진행하고 있으며, 모든 구현 과정이 끝나고 실제 테스트 과정에서 딜레이의 허용 범위를 확인할 수 있을 것입니다. 해당 허용 범위에 대해 확인하게 된 다음, 실제로 딜레이를 줄이기 위한 방법에 대해 고민해봐야 할 것이며, 현재는 해당 시스템을 구현하는데 집중하는 것이 옳다고 생각합니다.
  • 추천의 내용과 목표물을 정확하게 작성

    • 고객에게 추천하고자 하는 내용은 해당 고객이 구매할 가능성이 가장 높은 상품에 대한 광고 정보입니다. 이는 개인화된 광고 정보라 말할 수 있으며, 어떤 광고를 보여줄지에 대해서는, 고객의 구매 내역을 기반으로 XGBoost 등의 알고리즘을 통해 가장 적절한 상품을 선택함으로써 진행하는 것이 가능합니다.
    • ( 예시를 말해주면 더 좋을 것으로 보인다 )
    • 추천 내용을 발전시킨다면, 단순한 구매 내역 기반의 추천 상품의 광고 제공이 아닌, 해당 고객의 다양한 개인정보를 활용하여 다양한 형태의 정보를 제공하는 것 또한 가능해집니다. 예를 들어, 해당 고객이 30대의 Apple 브랜드를 좋아하는 고객이라면, Apple 매장의 신규 입점이나 Apple 에서 새롭게 출시한 제품을 알려줌으로써 소비를 촉진시키는 것이 가능합니다.
  • 목적하는 Quality Goal 에 대해 명확하게 밝히기

    • 일반적인 소프트웨어 품질 목표, 표준은 다음과 같다.

    • Flex Ads 프로젝트의 Quality Goal 을 세분화하여 살펴보면 다음과 같다.

    • 정확성 : 사용자의 얼굴을 얼마나 정확하게 인식하는가. 사용자에게 적절한 광고가 제공될 확률이 얼마인가. ( 잘못된 광고를 제공하는 경우는 무엇이며, 해당 확률은 얼마인가 )

    • 신뢰성 : 논문을 통해 신뢰성이 증명된 Face Detection 모델을 사용한다. 논문을 통해 신뢰성이 증명된 추천 알고리즘을 사용한다.

    • 효율성 : Edge Computing 기법을 활용하여 Network Overhead 를 최소화 하는 방법으로 효율성을 높였다. 인식된 얼굴 크기를 최적화된 사이즈에서만 저장 후 분석하도록 하여 사용되는 컴퓨터 자원을 최소화 하였다. 최적화된 주기로 추천 알고리즘을 작동시키고, 결과 데이터만 저장 후 출력하는 방법으로 모든 데이터에 접근하지 않아 컴퓨터 자원을 최소화할 수 있다.

    • 무결성 : 사용자가 자료를 입력하는 등의 요소가 없기 때문에 무결성을 측정할 필요가 없다.

    • 사용 용이성 : Flex Ads 시스템은 사용자 인터페이스를 제공하지 않으며, 개발 관련 문서에 대해서는 Wiki 및 Issue 에 정리를 통해 제공하고 있다.

    • 유지 보수성 : 기업 측 사용자의 요구에 따라 다양한 데이터를 내보낼 수 있도록 하기 위해서는 AWS S3 에 저장되는 Contents 를 변경하거나, AWS Lambda 를 Python 언어 기반으로 수정하면 되므로 유지 보수성이 매우 좋다고 할 수 있다.

    • 유연성 : 대부분의 데이터 처리 및 결과 출력은 AWS Lambda 를 통해 이루어지며, 해당 Serverless 플랫폼은 버전 관리등을 자동으로 진행하여 높은 유연성을 가진다.

    • 시험 역량 : Jetson 보드와 클라우드 기반의 시스템을 구축한 덕분에 해당 보드만 가지고 간다면 어떠한 환경에서든 테스트가 가능하다. 테스트의 횟수 또한 전혀 제약이 없으며, 필요하다면 Face Collection 을 수정하여 특정 회원의 얼굴을 추가로 학습시키는 등의 과정이 가능하다.

    • 이식성 : 현재는 Jetson TX1, TX2 보드에서만 운용되고 있는 상황이지만, Face Detection 이 가능한 하드웨어라면 어디에서든 해당 부분만 모듈 형태로 바꾸어 진행 가능하다. 그 외의 모든 작업은 AWS Cloud 내에서 진행되므로, 사람을 Detection 하는 모듈과 카메라만 적절하다면 어떠한 하드웨어에서든 수행 가능한 시스템이다.

    • 재사용성 : 현재는 Face detection 과 recognition 기반으로 진행되는 프로젝트이지만, 특정한 물체가 들어왔을 때 등의 다양한 시나리오를 구상하여 재사용 가능하다. 예를 들어, 카페 앞에 디스플레이를 설치한 다음 개가 들어오려고 할 때 애완동물 출입 금지라는 경고를 보이도록 하는 것 또한 가능하다.

    • 상호 운용성 : 소프트웨어의 대부분의 데이터 및 처리 과정은 AWS Cloud 기반으로 이루어지므로, 다른 어떤 소프트웨어에서든 접근 가능하다고 생각할 수 있다. 예를 들어 고객의 구매 내역 데이터가 필요한 다른 소프트웨어에서는 구매 내역이 저장된 AWS RDS 에 접근하여 해당 데이터를 사용하는 것이 가능하다.

Clone this wiki locally