본문 바로가기

인공지능을 활용한 혼잡도 분석

  • 안지혜
  • 인천대학교
  • 작품구분일반형
  • 공개여부비공개
  • 카테고리정보
  • 등록일2019-11-29
  • 팀원(공동개발자)홍연하, 장은빈, 최현지
  • 출품 경진대회2019-2학기 산학 캡스톤디자인 경진대회(학생팀 & 멘토모집)

상세설명

  • 1. 수행배경

    학생식당과 같은 특정시간대에 붐비는 장소에서 효율적으로 시간활용을 하기 위한 사람들을 위해 이런 과제를

    생각했다.여러가지 기법을 이용한 코드 중 사람의 수를 실시간으로 빠르게 셀 수 있는 코드를 채택하여 교내 학생

    식당의 카메라와 연결한다많은 학생들이 점심시간에 키오스크 앞에서 오래 줄을 서 있으므로 딥러닝한 데이터를

    통해 사람을 인식하고 수를 센 후 혼잡도를 계산 하여 학교 어플에 알려주는 형태로 활용 할 수 있다또한 교내

    다른 팝업 스토어에서도 활용 할 수 있고학교 뿐만 아니라 백화점이나 환승 역 등 유동인구가 많은 곳의

    혼잡도를 알려주는 형태로 활용할 수 있다.학교 어플에서 혼잡도를 알려준다면 학생들이 확인 후 자연스럽게

    분산되고서비스 제공까지의 시간이 줄어들 수 있어 학생 이용 만족도가 높아질 것이다또 퇴근시간에 지하철

    역에서는 붐비는 출구를 피해 다른 출구나 교통수단을 선택할 수 있다.


    2. 수행기간

    • 9 25 ~ 9 29일 주제 선정
    • 9 29 ~ 10 3일 주제에 대한 공부
    • 10 4 ~ 10 25 CSRNet 코드 실행
    • 11 4 ~ 11 8 SSD (1) 코드 실행
    • 11 11 ~ 11 15 SSD (2) 코드 실행

    3. 개발작품 설명


    1. 객체 인식 기법 설명

    객체 인식은 CSRNet , SSD (Single Shot Detection), Faster R-CNN등 다양한 기법이 있다.  이 중 CSRNet은 혼잡 장면 인식을 위한 네트워크를 제안하고 혼잡한 장면을 이해 정확한 카운트 추정을 수행하여 고품질 밀도 맵을 제시한 데이터 중심의 딥러닝이다. CSRNet은 이전의 방식보다 낮은 MAE로 출력 품질을 크게 향상시킬 수 있다.  다음으로 SSD는 중복 계산을 하지 않아 시간이 단축되어 빠른 속도가 장점이며이미지에 있는 모든 객체를 찾아 레이블 및 클래스를 예측하여 객체 주위에 경계 상자를 생성하여 사물을 인식하는 기법이다

    마지막으로 Faster R-CNN은 모든 객체가 네트워크를 거쳐야하는 기존 방식의 단점을 개선하여 전체 이미지에 대해 CNN을 거친 후 출력된 맵에서 객체를 탐지하는 방식이다우리는 많은 기법들 중 CSRNet SSD를 활용한 코드를 Jupyter notbook  Pycharm 을 통해 실행하기로 하였다


     2. CSRNet

     

    먼저 CSR-Net 기술을 이용한 코드를 사용 하였을 때이다이때는 Pytorch라는 딥 러닝 프레임워크를 사용하였다.  

    이 코드는 사진의 명암을 분석하여 사람의 수를 추정하는 방식이다먼저 이용할 데이터셋들을 딥러닝하기 위해 jpg파일의 사진들을 h5 확장자의 형태로 변환시키는 사진이다또한 matlap파일로 각 사진마다 사람이 몇 명이 있는지 정보를 입력 해놓은 뒤 데이터를 학습시킨다.

    많은 사진을 한꺼번에 딥러닝시켜야 하기 때문에 많은 시간이 소요되고 많은 메모리도 필요로하다.

    많은 사람이 밀집이 되었을 때 명암을 분석하여 162명 이라는 예측 값을 얻을 수 있었다또 사람의 수가 적으면 어떤 예측 값을 얻을 수 있는지 분석하기 위해 비교적 적은 사람의 수가 찍힌 사진을 다시 코드에 넣어 보았다.


     32명의 사람이 찍힌 사진을 돌려 보았으나 코드 자체가 사진의 명암을 분석하는 형태여서 손이나 팔 등 비교적 밝은 부분을 사람으로 인식하는 한계로 예측 값이 53명이라는 잘못된 예측 값을 얻었다따라서 인구가 밀집 됐을 때는 명암 분석으로 대략적인 사람의 수 파악이 쉬우나 적은 사람 수를 정확히 셀 때에는 바람직하지 않다는 결과를 얻을 수 있었다.

  •  

    3. SSD (1)

    다음은 SSD 기법을 활용한 코드를 Pycharm을 통해 실행했을 때이다이때는 tensorflow라는 딥 러닝 프레임워크를 사용하였다.  

    SSD 기법을 활용한 코드를 두가지 분석해 보았다그 중 첫 번째는 웹 캠을 이용한 방식이다.

  • 이 코드는 웹 캠을 통해 라이브 화면에 잡히는 사물이나 사람을 인식하는 것으로 위 사진처럼 멀리 서 있는 사람 인식은 물론 뒤 돌아 있는 사람얼굴 전체가 나오지 않은 사람 역시 모두 사람으로 인식 해 냈다이 코드의 또 다른 장점으로는 사물 또한 인식 할 수 있다는 것이다.

  • 이 코드는 다양한 객체 사물을 포함한 사람까지 인식 할 수 있다는 것으로 뒷모습이나 얼굴을 가려도 사람으로 인식할 수 있다는 점이다하지만 카메라가 있는 환경에서만 사용할 수 있다는 점과 실시간 라이브 환경에서만 인식 할 수 있다는 것이 단점이다.

     

    4. SSD (2)

     다음은 SSD 기법을 활용한 두 번째 코드이다이때도 TensorFlow라는 딥 러닝 프레임워크를 사용하였다.  

    이 코드는 동영상을 첨부하면 동영상 내에 사람 얼굴만을 인식하는 코드이다

    동영상에서 사람 얼굴을 인식한 부분에 분홍색 박스가 쳐지며 위에 face라고 표시된다

     이 코드의 장점은 저장된 동영상으로 바로 사람을 인식 할 수 있고 얼굴만 인식하기 때문에 간단하며 정확도가 높다는 것이다하지만 긴 영상은 코드 실행이 완료되기까지 시간이 오래 걸리고 메모리차지도 크며얼굴만 인식하고 사물을 인식할 수 없다는 것이 단점이다.

     

    4.결론

     1. 기법의 장단점과 유용한 점

    1) CSRNet

    인구밀집도가 높은 곳에서 활용하기에 유용하다.

    하지만 사진을 mat파일과 h5파일을 생성해서 코드를 실행해야하기 때문에 복잡하고사진으로만 인구를 세어야 하기 때문에 라이브나 영상은 불가하다

    촛불집회 

     

    2) SSD (1)

    라이브로 바로 사람을 인식해서 감시카메라같은 곳에서 사용하기 유용하다

    또한 app으로 개발되어서 다른 app과 연동이 가능하다.

    하지만 실시간으로 인식하기 때문에 카메라의 성능이 좋아야 하며초기 설치비용이 많이 들 수 있다

    ) cctv

     

    3) SSD (2)

    간단하게 동영상의 파일 경로를 넣으면 사람의 얼굴을 인식할 수 있지만영상이 길수록 오래 걸리며 메모리 차지가 커서 컴퓨터에 부담이 될 수 있다

    또 저장되어 있는 동영상만 인식하기 때문에 실시간으로 쓰기에는 어렵다.

    저장된 동영상

     

     2. 문제점

    어플리케이션에 다시 이 소스코드를 설치해야 해서 용량이 전보다 많이 차지할 것이고실현하는데 시간이 오래 걸릴 수 있다멈춰있는 사물에 유용해서 움직이는 사물들을 인식하기에는 아직 한계가 있다

     

    3. 활용방안

    • 우리가 실행시킨 딥러닝 기법 중에  학식에서 사용하기 좋은 것은 SSD (1)이다
      학생 식당의 키오스크 앞에 카메라를 설치한 뒤학교 어플에 50명 이상 혼잡, 20명 이상 보통, 20명 이하 여유 이런 식으로 나타나게 하면 학생들이 확인 후 자연스럽게 분산되고서비스 제공까지의 시간이 줄어들 수 있어 학생 이용 만족도가 높아질 것이다.

     

소개 영상

정보가 없습니다.

소개 슬라이드

정보가 없습니다.

기타자료

댓글