분류 전체보기
C++ 2675 문자열 반복
#include #include using namespace std; int main() { int t; cin >> t; while (t--) { int r; cin >> r; string s; cin >> s; for (int i = 0; i < s.size(); i++) { for (int j = 0; j < r; j++) { cout
C++ 10809 알파벳 찾기
#include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); string str; string alphabet = "abcdefghijklmnopqrstuvwxyz"; cin >> str; for (int i = 0; i < alphabet.size(); i++) { cout
C++ 1065 한수
#include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); int n; cin>> n; int hs = 0; for (int i = 1; i =100) if (i / 100 - i % 100 / 10 == i % 100 / 10 - i % 10) { hs++; } } cout
백준 14681 C++ 사분면
#include using namespace std; int main() { int a, b; cin >> a >> b; if (a > 0 && b > 0) cout 0) cout
C++2562 최댓값
#include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); int max = 0; int cnt = 0; int arr[9]; for (int i = 0; i > arr[i]; } for (int i = 0; i max) { max = arr[i]; cnt = i; } cout
C++4673 셀프넘버
#include using namespace std; void hansoo() { int arr[10000] = { 0 }; int temp; for (int i = 0; i < 10000; i++) { if (i < 10) arr[i + i] = 1; else if (i < 100) { arr[i + i / 10 + i % 10] = 1; } else if (i < 1000) { arr[i + i / 100 + i % 100/10+ i%10] = 1; } else if (i < 10000) { temp = i + i / 1000 + i % 1000 / 100 + i % 100 / 10 + i % 10; if (temp < 10000) arr[temp] = 1; } } for (int i = 0; i <..
C++ 10818 최대/최소
알고리즘을 처음 써봤다. #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; int* arr = new int[N]; for (int i = 0; i > arr[i]; } sort(arr, arr + N); cout
C++ 1157 단어공부 // transform(대/소문자)
#include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); string C; cin >> C; int max = 0; int cnt = 0; int target; int a[26] = { 0 }; transform(C.begin(), C.end(), C.begin(), (int(*)(int))toupper); for (int i = 0; i max) { max = a[i]; cnt = 0; target = i; } if (max == ..
C++ 11720 숫자의 합
아으 #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); int N; cin >> N; char arr[N]; int sum = 0; cin >> arr; for (int i = 0; i > s; int res = 0; for (int i = 0; i < n; i++) { res += s[i]-48; } cout
백준 2753 C++ 윤년
풀이 #include using namespace std; int main() { int year; cin >> year; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) cout
c++ 2908 상수
이건 내거 #include #include #include using namespace std; int main() { string int1, int2; cin >> int1 >> int2; reverse(int1.begin(), int1.end()); reverse(int2.begin(), int2.end()); cout int2 ? int1 : int2); }
C++ 백준 2844 알람시계
#include using namespace std; int main() { int h, m; cin >> h >> m; if (h >= 1 && h = 45 && m
C++ 11654 아스키코드
#include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); char asc; cin >> asc; int num; num = (int)asc; cout
C++ 백준 2577 숫자의 갯수
#include using namespace std; int main() { int A, B, C; int arr[10] = { 0 }; cin >> A >> B >> C; int mul = A * B * C; while (mul != 0) { arr[mul % 10] += 1; mul /= 10; } for (int i = 0; i < 10;i++) { cout
View Protect사 Z12TL 모델로 알아보는 드론 짐벌 카메라
View Protect사 Z12TL 모델을 통해 드론에 사용하는 카메라 제원에 대해 알아보자. 제원 Working voltage = 동작전압. 실제로 사용되는 전압을 말함. Input voltage = 입력 전압 Output voltage = 출력 전압 Dynamic current = 카메라모듈이 작동 중일 때 소모되는 전류 Idle current = 카메라 모듈이 idle 상태일 때 소모되는 전류 Power consumption = 소비전력. 필요한 단위 시간당 전기 에너지의 양 Control method = PWM, TTL, S.BUS PWM - Pulse Width Modulation의 약자로 펄스폭 변조를 말하는 것이다. 쉽게 말해, 디지털 신호를 아날로그 신호처럼 흉내 내는 것이라고 보면 된다...
비전공자 한달만에 정보처리기사 필기합!
헤헤 한 달간 출퇴근 버스며 지하철에서 공부하고 퇴근 후에도 공부해서 한큐에 합격한 정처기! 결과가 나온지는 2~3일 되었지만 개인적인 사정 때문에 블로그 업데이트가 늦었다. 시나공 정보처리기사 필기 책으로 공부했고, 검색으로 다른 이들이 정리해 놓은 PDF 파일을 보면서 출퇴근했다. 실기는 더 어렵다하니 열심히 준비해서 이번에도 한 번에 붙을 수 있기를..
dronekit-python 사용법
드론 킷 파이썬을 설치하고 연동까지 해보려 했는데 arm 조차 되지 않아 며칠을 찾았다. 구글링 하면서 답이 안나오길래 다른 것부터 보고 있었는데 뜬금없이 나와버렸다. 링크는 아래에 https://nrottmann.gitbooks.io/devguide_sim/content/kr/dronekit/example.html DroneKit 사용법 · Devguide_sim nrottmann.gitbooks.io 링크의 예제를 실행시키기 전에 cd ./dronekit-python sudo python setup.py build sudo python setup.py install px4와 셋업을 안해놨기에 이런 일이 발생했다.한줄 알았는데 아니었다. https://dronekit-python.readthedocs...
CMake 불가 디버깅 과정
오로카를 통해 ros를 다시 배우고 있다. 이전에는 실행되던 catkin_make가 되지 않기에 정보를 다시 찾았다. 2일이나 이 문제를 잡아놓고 고민하고 여러방법으로 디벙깅 방법을 검색했다. 문제 해결을 https://github.com/ros/genmsg/issues/63 에서.
dronekit 설치하기
라즈베리파이에서 gazebo로 sitl을 활용한 드론 프로젝트를 진행하려 한다. px4 + gazebo로 시뮬레이션을 설치하고 구동하는것까지는 수행했는데, 어떻게 조작해야하는지 몰라서 처음부터 공부중이다. dronekit-python 설치하기 $ sudo apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python-pygame $ pip3 install PyYAML mavproxy --user $ echo "export PATH=$PATH:$HOME/.local/bin" >> ~/.bashrc $ sudo pip install dronekit $ dronekit-sit..
ROS 기본 개념 (topic, service, action, parameter)
노드(node)는 아래의 그림처럼 Node A, Node B, Node C라는 노드가 있을 때 각각의 노드들은 서로 유기적으로 Message로 연결되어 사용된다. 수행하고자 하는 테스크가 많아질수록 메세지로 연결되는 노드가 늘어나며 시스템이 확장될 수 있게된다. 노드들 간의 메세지가 토픽, 서비스, 액션, 파라미터이다. 토픽(Topic)은 아래와 같이 `Node A - Node B`, `Node A - Node C`처럼 비동기식 단방향 메시지 송수신 방식으로 msg 메시지 형태의 메시지를 발간하는 Publisher와 메시지를 구독하는 Subscriber 간의 통신이라고 볼 수 있다. 이는 1:N, N:1, N:N 통신도 가능하며 ROS 메시지 통신에서 가장 널리 사용되는 통신 방법이다. 서비스(Servi..
우분투 다중 터미널 / 분할 터미널 Terminator
$ sudo apt-get install terminator 단축키 * 수평 분할 : Ctrl + Shift + O * 수직 분할 : : Ctrl + Shift + E * 다음 창 활성화 : Ctrl + Tab or Ctrl + Shift + N * 이전 창 활성화 : Ctrl + Shift + Tab or Ctrl + Shift + P * 현재 활성화 된 창 닫기 : Ctrl + Shift + W * 터미네이터 실행 : Ctrl + Alt + T * 터미네이터 종료 : Ctrl + Shift + Q * 전체화면 : F11 출처: https://harryp.tistory.com/630 [Park's Life]
RTSP란
1. RTSP란 RTSP(Real Time Streaming Protocol)은 실시간 스트리밍 프로토콜이다. RTSP는 스트리밍 미디어 서버를 제어할 목적으로 설계된 네트워크 제어 프로토콜로써, 실시간으로 음성이나 동영상을 송수신하는 통신규약이며, 인터넷 프로토콜의 응용계층에서 동작하는 특성을 갖고있음. RTSP는 리얼네트웍, 넷스케이프, 컬럼비아 대학교에서 개발되었으며, 표준화한 RTSP 2.0이 2016년에 출판되었다. IPTV등의 보급을 통해 외부에서 촬영된 영상을 TV로 볼 수 있고, IP 카메라의 경우 모바일에서 카메라 영상을 확인할 수 있게 되었다. RTSP의 특징 - 다지점 스트리밍 응용을 위한 기반구조 - HTTP와 유사한 클라이언트 및 서버로 동작 - 다지점, 다수 개수의 콘텐츠 세션의..
Gstreamer란
Gstreamer란 GStreamer는 스트리밍 미디어 애플리케이션을 만들기 위한 프레임워크이다. GStreamer의 개발 프레임워크를 사용하면 모든 유형의 스트리밍 멀티미디어 응용 프로그램의 작성과 오디오나 비디오, 그 밖의 다양한 종류의 데이터 흐름을 처리할 수 있으며 대기 시간이 많이 요구되는 고급 오디오 응용 프로그램을 설계하기 위한 좋은 프레임워크이다. GStreamer에는 MP3, Ogg/Vorbis, MPEG-1/2, AVI, Quicktime, mod 등을 포함하여 매우 다양한 형식을 지원할 수 있는 미디어 플레이어를 구축하기 위한 구성 요소가 이미 포함되어 있다. GStreamer의 주요 장점은 플러그인 가능한 구성 요소를 임의의 파이프라인에 혼합 및 일치시킬 수 있으므로 본격적인 비디오..
Nvidia deepstream tracker 라이브러리 (IOU/KLT/Nvdcf )
IOU - CPU로만 계산을 수행하고 가볍게 작동하지만 트래커의 id가 자주 바뀌게 되고, 빠르게 움직이는 장면에서 사용하기 적합하지 않다는 특징을 가짐. KLT - 마찬가지로 CPU만 사용하지만 CPU의 사용량이 IOU보다 많고 그림자 등의 노이즈 등에 간섭을 받을 수 있으나 단순한 배경과 뚜렷한 객체가 존재한다면 합리적인 결과를 기대할 수 있는 특징을 가짐. Nvdcf –CPU와 GPU를 동시에 사용하며 그림자나 기타 간섭에도 IOU나 KLT보다 확실하게 객체를 추적하고, 객체의 id가 잘 변하지 않는다는 장점이 있지만 object detection 모델이 이미 GPU에서 사용되고 있는데 GPU를 함께 사용하게 되니 처리 속도가 느리고, 처리되는 총 스트림 수를 줄인다는 특징을 가짐. https://..
Deepstream 이란
딥 러닝을 활용한 비디오 분석 응용 프로그램의 고 성능 개발을 손쉽게 할 수 있도록 만든 NVIDIA의 라이브러리이다. 높은 수준의 C++ API와 고성능 런타임 (High Performance Runtime)을 통해 GPU 가속 Transcoding 과 딥러링 추론 기능을 빠르게 통합하여 보다 반응이 빠른 AI 기반 서비스를 제공할 수 있도록 한다. 이는 Intelligent Video Analytics의 보다 손 쉬운 개발을 지원하며 개발자들은 딥스트림을 사용해 실시간으로 동영상 프레임을 처리하고, 이해하며 분류 작업을 진행할 수 있다. 또한 매우 높은 수준으로 요구되는 처리량(Throughput) 및 반응 시간(Latency)에 대한 요건을 충족시킬 수 있다. 이러한 DeepStream SDK는 A..
Deepstream rstp통신을 위한 파이프라인 조정
기존 YOLOv3의 config.txt 파일이다. [application] enable-perf-measurement=1 perf-measurement-interval-sec=5 #gie-kitti-output-dir=streamscl [tiled-display] enable=1 rows=1 columns=1 width=1280 height=720 gpu-id=0 #(0): nvbuf-mem-default - Default memory allocated, specific to particular platform #(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla #(2): nvbuf-mem-cuda-dev..
Deepstream Yolov3 사용기
deepstream을 설치하고 opt/nvidia/deepstream/deepstream-5.1/sample/config/deepstream-app 폴더의 source1_csi_dec_infer_resnet_int8.txt 를 구동했다. 사람과 간단한 자동차 인식정도는 되는데 YOLO모델이 존재하기에 구동을위해 하루의 시간을 다 보냈고, 인터넷에서 자료를 모으고 있다. 기본예제를 구동하기 위해서 https://voidint.com/category/nvidia/deepstream/ DeepStream Archives - voidint.com DeepStream 프레임워크의 기본 구조는 모두 GStreamer에 기반한 것들입니다. GStreamer Concepts 을 살펴보고 기본적인 구성 요소들과 각 구성..
SDK란?
소프트웨어 개발 키트(영어: Software Development Kit, SDK)는 일반적으로 소프트웨어 기술자가 사용하여 특정한 소프트웨어 꾸러미, 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴퓨터 시스템, 게임기, 운영 체제 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구의 집합이다.[1][2][3] 응용 프로그램을 만들기 위해서는 특정한 SDK를 다운로드 받아야 하는데, 안드로이드 앱 개발을 위해서는 Java를 포함한 SDK, iOS 개발을 위해서는 Swift가 포함된 iOS SDK, MS Windows를 위해서는 .NET을 포함한 .NET Framework SDK가 필요하다. 또한 구글이나 페이스북같이 분석과 활동에 대한 데이터를 제공하기 위해 SDK가 앱에 설치되어 있는 경우도있다..
Jetson nano와 같은 Edge device를 사용하는 이유
Edge device란? 입력데이터를 가까이서 처리할 수 있는 컴퓨터 다수의 카메라에서 들어오는 고용량의 데이터를 들어오는 동시에 실시간으로 처리함으로 운영, 부대 비용을 줄일 수 있음. https://www.youtube.com/watch?v=jxSbu-lDFFs&t=916s
GStreamer
GStreamer 란? GStreamer는 스트리밍 미디어 애플리케이션을 만드는 프레임워크이다. 조금 더 부연하자면 GObject 기반 자료형 체계와 C 프로그래밍 언어로 만들어진 파이프라인 기반 멀티미디어 프레임워크다. 오픈 소스 소프트웨어이며 단순 오디오 및 비디오 재생, 저장, 스트리밍 및 다양한 멀티미디어 처리를 프로그래머가 관리 구성 요소를 만들 수 있다. 프레임워크의 기본적인 디자인은 파이프라인을 디자인하여 다양한 플러그인 기능을 사용한다. 크로스 플랫폼이 고려되어, Linux, OS X, iOS, MS Windows, Android 등 다양한 플랫폼에서 작동하고, LGPL 라이선스를 따르고 있다. GStreamer 특징 GStreamer 프레임워크는 오디오와 비디오에 대한 처리를 쉽게 설계할..