프로젝트 진행 중 input 영상 스트림에서 위험 구간을 탐지해 새로운 비디오 Clip 파일로 생성해주는 구간이 있었다.이 부분에서는 OpenCV의 VideoWriter 클래스를 이용해 파일을 생성했다. # VideoWriter 객체 선언out = cv2.VideoWriter(filename='out.mp4', fourcc=cv2.VideoWriter_fourcc(*'mp4v'), fps, frameSize)# frame을 VideoWriter에 저장 (프레임 저장)out.write(frame)# 비디오 파일로 저장out.release() VideoWriter 객체 생성에는 저장될 영상의 파일명을 포함한 속성값을 지정해주어야한다.filename : 파일명Video_Writer_fourcc : FOURCC..
ToyProject
이번 프로젝트에서 API 부분은 Django와 drf(djangorestframework)를 사용해서 구현하기로 했다.우선 사용자로부터 비디오파일을 업로드받아 이를 Bucket에 저장하고, 저장됨과 동시에 Model 처리 서버로 하여금 처리작업을 시작하도록 파이프라인을 구성했다. 그 뒤로 Model 처리 결과 중 RISK 탐지내역을 클라이언트에 프레임 별로 처리되는 즉시 전송을 해주어야한다. 아무래도 주제가 CCTV 관제의 보조 도구이므로 실시간성이 무엇보다도 중요하게 다가왔다.이를 위해서는 RISK 탐지 내역의 Streaming API의 구현이 필요했다. Streaming의 구현에서 주로 언급되는 기술로는 폴링과 웹 소켓이 있다. 이외에도 SSE(Server-Sent Event)기법이 있다.이 기술들 ..