본문 바로가기

반응형

Framework

(31)
[Spring] @Controller vs @RestController Spring 에서 컨트롤러를 지정해주는 어노테이션으로 @Controller 와 @RestController 가 있다. @Controller 는 Spring MVC 에서 Controller 의 역할을 하는 클래스를 지정하는 것으로 요청에 대한 응답을 Spring MVC 에서 View 에 결과 객체를 담아서 반환한다. 반면에 @RestController 는 Restful 한 웹 서비스를 구현할 때 사용하는 어노테이션으로 @RestController 로 지정된 클래스는 결과 값을 View 가 아닌 객체 그 자체로 JSON 이나 XML 형태로 반환한다. 해당 결과들은 Http Response 의 Body 에 담겨져서 Client 로 전달된다. 1. @Controller @Controller 는 Client 의 ..
[Spring] Swagger 3.0.0 적용 1. Swagger 란? Swagger 는 간편하게 API Spec 문서를 자동으로 작성하고 이를 편집하여, 화면에 출력할 수 있게 해주는 기능 들을 제공하는 오픈 소스 툴이다. 서버의 API 리스트를 문서화하여 화면에 출력하여 보여주고, 파라미터를 직접 입력하여 API 테스트도 수행할 수 있다. RESTful 하게 구현한 SpringBoot 에도 Swagger 를 적용하여 REST api 들의 문서화와 테스트를 수행할 수 있다. 아래의 예제에서는 Swagger 3.0.0 을 사용하여 Swagger 를 적용하였다. 2. Swagger 설정 Swagger 를 SprintBoot 에 적용하기 위해서는 우선 build.gradle 에 의존성을 추가해주어야 한다. implementation 'io.springf..
[Deepstream] Gst-nvdsanalytics Gst-nvdsanalytics는 nvinfer와 nvtracker에 의해 추가된 metadata에 대한 분석을 진행한다. 분석은 ROI filtering, Overcrowding Detection, Direction Detection, Line Crossing에 대해서 진행한다. 해당 기능은 batch mode로 동작하는데, 여러 stream의 context를 독립적으로 조작한다. ROI 기반의 분석은 primary detector의 결과에서 동작하지만 Direction Detection이나 Line Crossing은 이전의 기록/상태를 분석하기 위해서 tracker-id가 필요하다. 해당 플러그인의 설정은 configuration file을 통해서 할 수 있다. Gst-nvdsanalytics는 ba..
[Deepstream] Gst-nvinfer Gst-nvinfer plugin은 NVDIA TensorRT를 사용하여 입력값을 inferencing한다. 이 플러그인은 NV12/RGBA buffer를 입력받는데, 이때 Gst Buffer에 NvDsBatchMeta structure가 미리 추가되어 있어야 한다. low-level library (libnvds_infer)는 network height와 width 차원의 INT8 RGB, BGR 또는 GRAY 데이터에서 작동한다. Gst-nvinfer는 해당 network의 요청에 맞춰 input data를 변형(conversion, scailing)하고, 이를 low-level library로 전달한다. low-level library는 변형된 frame을 전처리(normalizaation, mea..
[Deepstream] Gst-nvstreammux Gst-nvstreammux plugin은 multiple input sources로부터 생성되는 프레임들을 batch로 묶는 기능을 한다. nvstreammux에 source를 연결하기 위해서는 새로운 pad를 muxer에 요청하여 생성해야한다. 이때gst_element_request_pad() 함수와 pad 템플릿 sink_%u를 사용한다. muxer는 property에서 batch-size로 정해진 만큼의 frame들로 batched buffer를 구성한다. 만약 muxer의 input format과 output format이 같은 경우 해당 source에서 전송된 frame을 batched buffer에 포함시킨다. 만약 input과 output의resolution이 같지 않으면 muxer가 in..
[GStreamer] GStreamer 개념 정리 GStreamer는 스트리밍 미디어 애플리케이션을 개발을 위한 프레임워크로 Deepstream은 GStreamer를 기반으로 한 SDK이기 때문에 GStreamer의 기본 개념을 우선적으로 정리한다. gstreamer 프레임워크는 모든 형태의 스트리밍 미디어 애플리케이션을 개발할 수 있다. 오디오나 비디오 한가지 타입만 가능한 것이 아니라 두가지 타입 모두를 다룰 수 있도록 개발이 되었다. 또한 어떤 종류의 데이터 흐름도 구성할 수 있는 파이프라인 구조로 되어있다. [gstreamer plugins] - protocols handling- sources: for audio and video- formats: parsers, formaters, muxers, demuxers, metadata, subtit..
[Spring] Spring Framework 개념 정리 Spring Framework Overview Spring은 자바 엔터프라이즈 애플리케이션의 생성을 간단하게 해주는 프레임워크이다. 자바 언어 기반 뿐만 아니라 Groovy와 Kotlin을 JVM 환경에서 개발하기 위한 기능을 제공해준다. Spring Framework 특징 1. Ioc Container 스프링은 IoC 개념 기반으로 설계되었다. IoC (Inversion of Control)는 제어의 역전이라는 뜻으로 DI (Dependency Injection) 으로도 알려져 있다. 해당 개념은 객체 생성자 인자 또는 인스턴스 프로퍼티 설정 등의 방법 만을 통해서 그들의 의존성을 정의한다. 그리고 컨테이너는 bean이 생성될 때 정의된 의존성을 주입시켜준다. 이러한 과정을 통해서 컨트롤의 제어 주도권..

반응형