'cctv'에 해당되는 글 1건

  1. 2017.12.18 머신러닝 전조


팀에서 CCTV에서 송출하는 영상을 이미지로 변환하여 사람을 담고 있는 이미지의 좌표를 얻어내어 화면에 박스를 쳐주는

프로젝트를 부서 자체적으로 진행하고 있다.

지금은 R업체 솔루션의 프레임워크를 클라이언트/서버 형태로 분석 솔루션을 제공받아서 데모를 위한 분석서버 프로그램 개발이 완료된 상태이다.


구조는 아래와 같다.

데모의 결과를 평가하기전에 분석서버의 제원은 아래와 같다.

GPU: NVIDIA TITAN X

CPU: I7-7700(3.6~4.2Ghz) 쿼드코어

MEM: DDR4-2400MHZ (32GB)

SSD: M.2 512GB

OS: CentOs7.0


데모를 하기전에 R업체와의 몇번의 미팅에서 분석과 관련된 성능에 대해서 들은바는 아래와 같다.

- TITAN X에서 분석할 수 있는 최대 FPS는 50FPS이다.

- 다양한 오브젝트를 처리하지 않고 사람에대한 분석만 한다면 조금더 올라갈 수 있다 예상 70FPS

- 사람에 대한 정확도는 90%로 이상


사실, 여기까지만 들었을때도.. 과연 상용 제품으로서 판매 가치가 있을까라는 의문이 들었다. 그 이유는

우리팀에서 데모용도로 구매한 서버의 비용이 총 430만원이 들었다.(GPU: 175, PC:255)

위의 최대 FPS수치 대로라고 한다면 서버 한대당 GPU 한개를 장착 했을때 카메라 3대 밖에 처리 할 수 없다

보통의 카메라는(15FPS이상)이기 때문이다. 

서버 한대에 GPU를 더 장착해서 처리할 수 있는 카메라 대수를 늘린다고 하더래도 서버 한대당 10대 이상의

카메라를 분석하기는 힘들어보인다.

기존 고객사에서 사용하는 비전방식의 영상분석 수행시 서버한대당 몇 백대 이상 처리하고 있음(비전 방식은 정확도 60%이하 라고함)


여기까지만 해도.. 썩 와닿는 프로젝트가 아니지만.. 실제 데모의 결과는 더 참담하다.


R업체에서 제공해주는 로컬 분석시 15FPS 언더로 분석

R업체 솔루션에서 통신 방식으로 분석처리 할 경우 7FPS 분석

정확도: 70%이내 인듯하다.(내생각)


성능이 지나치게 안나온 이유는, 현재는 데모이기 때문에 튜닝이 많이 안되어 있는 상황이다.

사람을 분석하기 위한 학습데이터 정도에 기본 설정이 되어있는 상황이다.

모든게 정밀하게 다 갖춰졌을때 어느정도에 효과를 볼 수 있을지 큰 기대는 안되는 상황이기도 하다.


B 프로젝트를 진행하면서 짬짬히 VA서버 개발하는 것을 도와주었다.

영상과 이미지 관련하여 조금씩 스킬업이 되어가는것 같기도하다. 정리하자면,

- RTSP 프로토콜 개발(C)

- RTP프로토콜 개발(C)

- RTMP 프로토콜 개발(C)

- RTSP 스트리밍 클라이언트/서버 개발(C)

- RTMP 스트리밍 클라이언트/서버 개발(C)

- GOP 프레임 단위 파싱(I프레임, P프레임)(C)

- 프레임을 이미지로 변환(FFMPEG)

- 좌표를 이미지에 오버레이(Python-Opencv)


머신러닝을 보기전까지의 관심사는,

1. RTSP/RTP 클라이언트/서버를 네티로 개발해보자.

  - 자바 네트워크 소녀 정독

  - 자바 네트워크 소녀 개발 환경 및 테스트 환경 구축

  - 완벽하게 이해하려면 1달 정도 소요(디버깅 중)

2. FFMPEG 라이브러리에 위대함을 느끼고, FFMPEG API를 잘 활용 할 수 있도록 지금까지 만들어둔 서버들을

   FFMPEG을 이용하여 만들어보자.

  - 영상 및 음원을 로딩하여 SDP 생성

  - 영상 및 음원을 로딩하여 H264/AAC로 변환하여 전송하는 부분 소스코드 분석중

  - FFMPEG은 엄청나게 방대하여 조금씩 알아가야 할듯 함

이전까지는 이런 상황이었다.


B 프로젝트 적용이 완료된 지금 팀장님이 미션을 주심.

R업체 솔루션을 쓰지 말고 자체적으로 텐서플로우를 익혀서 자체기술로 가져보자는 것이다.

그러면서 처음 들어본 CNN이라는 개념을 이해하고 공유해달라는 것이다.


다른건 모르겠고, 스터디 기간이 2달정도 확보 되는 것과 괜찮은 스킬업이 되지 않을까? 더 나은 모습을 위함이라는 기대를 가지고,


그리하여.. 시작하게 되었다. Machine Learning, Deep Learning, TensorFlow

Posted by 이성윤