반응형

Automator 에 프로그램 생성

1. Automator 실행

2. 스크립트 작성
    보관함 > 유틸리티 > 쉘 스크립트 실행 
    쉘 : /bin/zsh
    스크립트 : /opt/homebrew/bin/socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" &
                    --> background로 실행시키기를 원했지만 동작하지는 않는 것 같음. 문제는 없는 것 같으니 추후 확인 예정

3. "파일 > 저장 > 응용 프로그램" 으로 저장

4. 저장된 파일을 Finder에서 "응용 프로그램" 으로 위치 이동

4. 시작 프로그램으로 등록
    i. 시스템 설정 > 일반 > 로그인 항목 > 로그인시 열기 > "+" 선택 > 저장한 응용 프로그램 선택

반응형
반응형

dGPU 환경 기준, Jetson 환경 기준은 별도 Guide 참고 필요.

Deepstream 6.2 기준

https://resources.nvidia.com/en-us-deepstream-get-started-with-c-cpp

 

DeepStream SDK Development Guide

DeepStream SDK Development Guide

resources.nvidia.com

 

Docker-ce 설치

 $ sudo apt-get update
 $ sudo apt-get install apt-transport-https ca-certificates
 $ curl gnupg-agent software-properties-common
 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
 $ sudo apt-get update
 $ sudo apt-get install docker-ce

 

Nvidia-docker 설

  $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
   $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
   $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
   $ sudo apt-get update
   $ sudo apt-get install nvidia-docker2
   $ sudo systemctl restart docker.service
   $ sudo usermod -a -G docker <<USER NAME>>
   $ reboot

  

사용자 설치 스크립트 실행

 $ cd /opt/nvidia/deepstream/deepstream-6.2/user_additional_install.sh

 

Conatinaer 내 미설치 패키지 설치

  1. cuda-toolkit

 $ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
 $ add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
 $ apt-get update
 $ apt-get install cuda-toolkit-11-8
 $ apt install cuda-toolkit-11-8

 

Docker container 내부에서 X11 가능하게 container 실 방법

1. One-shot

$ sudo nvidia-docker run -it --rm --net=host -v ${HOME}:${HOME}/home -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --volume="$HOME/.Xauthority:/root/.Xauthority:rw" <<<Image Name or Checksum>>> /bin/bash 

2. Container 생성

$ sudo nvidia-docker run -it --net=host -v ${HOME}:${HOME}/home -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --name=deepstream-6.2-devel-temp <<<Image Name or Checksum>>> /bin/bash

 아래는 nvidia sample command

# Pull the required docker.  Refer Docker Containers table to get docker container name.
$ docker pull <required docker container name>
# Step to run the docker
$ export DISPLAY=:0
$ xhost +
$ docker run -it --rm --net=host --gpus all -e DISPLAY=$DISPLAY --device /dev/snd -v /tmp/.X11-unix/:/tmp/.X11-unix <required docker container name>
반응형
반응형
  • Socat TCP 6000 포트에 대해 DISPLAY Relay 처리를 해야
 $ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
  • SSH 접속시 옵션은 -Y 옵션으로 접속해야
$ ssh <USERNAME>@<IP ADDRESS> -Y
반응형
반응형

1. Site : https://www.spectacleapp.com/

 

Spectacle

 

www.spectacleapp.com

2. 설치 

 - 다운로드

 - 압축 풀기

 - 응용 프로그램으로 이동

 - 권한 부여(개인정보 보호 및 보안 -> 손쉬운 사용 -> + 클릭 -> Spectacle 추가 -> 활성화)

3. 사용 

 - Option + Command + Left : 왼쪽 창분할
 - Option + Command + Righ  : 오른쪽 창분할
 - Option + Command + F : 전체화면(맥의 전체화면 아님)

반응형
반응형

1. 필요 패키지 설치

 # sudo apt-get install doxygen graphviz

 

2. Doxy File 생성

# doxygen -g doxyoptfile

 

3. Doxy File Option 변경

PROJECT_NAME                 = DymLibrary
PROJECT_NUMBER            = 0.01
OUTPUT_DIRECTORY         = ./doxygen_doc
CREATE_SUBDIRS              = YES
MULTILINE_CPP_IS_BRIEF = YES
EXTRACT_ALL                      = YES
EXTRACT_PRIVATE             = YES
EXTRACT_STATIC                = YES
RECURSIVE                          = YES
SOURCE_BROWSER           = YES
GENERATE_TREEVIEW       = YES
HAVE_DOT                            = YES
UML_LOOK                            = YES
CALL_GRAPH                        = YES
CALLER_GRAPH                   = YES
DOT_PATH                             = /usr/bin/dot
DOT_GRAPH_MAX_NODES    = 100

 

4. Doxy File Option으로 Doxygen 실행

# doxygen ./doxyoptfile

 

5. index.html 파일로 결과물 확인

반응형
반응형

아래 내용은 docker container로 ubuntu 18.0.4 버전을 이용하여 설치하며 작성한 내용입니다.


1. opencv 버전 확인 및 삭제
 1.1 버전확인

  # pkg-config --modversion opencv  

 1.2 패키지 삭제

  # sudo apt-get purge libopencv* python-opencv

  # sudo apt-get autoremove

 1.3 잔여 파일 삭제

  # sudo find /usr/local/ -name "*opencv*" -exec rm -i {} \;


2. 전 패키지 업데이트
  2.1 저장소 업데이트

   # sudo apt-get update

  2.2 패키지 업데이트

   # sudp apt-get upgrade


3. OpenCV 컴파일 패키지 설치
  3.1 cmake 설치

   # sudo apt-get install build-essential cmake

  3.2 pkg-config 설치

   # sudo apt-get install pkg-config

  3.3 Image 파일 R/W를 위한 패키지 설치

   # sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev

  3.4 Codec Video R/W를 위한 패키지 설치

   # sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev

  3.5 실시간 비디오 캡쳐를 위한 API 설치

   # sudo apt-get install libv4l-dev v4l-utils

  3.6 GStreamer 설치(비디오 스트리밍 라이브러리)

   # sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

  3.7 gtk 설치(윈도우 등을 생성)

   # sudo apt-get install libgtk2.0-dev

  3.8 OpenGL 지원하기 위한 라이브러리 설치

   # sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev

  3.9 Numpy 설치

   # sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy

  3.10 기타 필요 패키지 설치

   # apt-get install wget unzip vim


4. OpenCV 설정, 컴파일, 설치
  4.1 임시 경로 생성

   # mkdir opencv && cd opencv; 

  4.2 Opencv 4.2 다운로드 및 압축 풀기

   # wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip && unzip opencv.zip

  4.3 opencv_contrib(extra modules) 소스코드를 다운 및 압축 해제

   # wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip && unzip ./opencv_contrib.zip

  4.4 opencv build

   # cd opencv-4.2.0 && mkdir build && cd build 

  4.6 cmake를 이용하여 Makefile 생성

cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D WITH_TBB=OFF \

-D WITH_IPP=OFF \

-D WITH_1394=OFF \

-D BUILD_WITH_DEBUG_INFO=OFF \

-D BUILD_DOCS=OFF \

-D INSTALL_C_EXAMPLES=ON \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D BUILD_EXAMPLES=OFF \

-D BUILD_TESTS=OFF \

-D BUILD_PERF_TESTS=OFF \

-D WITH_QT=OFF \

-D WITH_GTK=ON \

-D WITH_OPENGL=ON \

-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.2.0/modules \

-D WITH_V4L=ON  \

-D WITH_FFMPEG=ON \

-D WITH_XINE=ON \

-D BUILD_NEW_PYTHON_SUPPORT=ON \

-D OPENCV_GENERATE_PKGCONFIG=ON ../

 

  4.7 rfs에 설치

   # sudo make install

 

  4.8 파일 확인

   # cat /etc/ld.so.conf.d/*

 

    4.8.1 /usr/local/lib 이 추가되지 않았을 경우 추가 필요

     #  sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf' && sudo ldconfig

  4.9 설치 확인

     # python3

Python 3.8.10 (default, Nov 26 2021, 20:14:08) 

[GCC 9.3.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import cv2

cv2>>> cv2.__version__

'4.2.0'

>>>

     4.9.1 만약 다른 버전이 나올 경우 cv2 디렉토리 삭제 및 retry

       # sudo rm -rf ~ /.local/lib/python3.6/site-packages/cv2




출처 : https://webnautes.tistory.com/1186

반응형
반응형


1. 설치 
   1.1 설치 경로 : https://www.anaconda.com/products/individual
   1.2 shell file 권한 및 실행
       $ chmod +x Anaconda*.sh && ./Anaconda*.sh
   
2. 관리
   2.1 conda version 확인
       $ conda --version
   2.2 사용 가능한 python 버전 확인
       $ conda search python
   2.3 conda 생성
       $ conda create -n python36conda python=3.6
   2.4 conda 활성화
       $ conda activate python36conda
   2.5 conda 삭제
       $ conda env remove -n python36conda
   2.6 환경 yml 파일로 부터 만들기(yml의 name 필드로 환경 이름이 새로 생성됨)
       $ conda env create -f env.yml
   2.7 conda 환경 yml 파일로 exporting
       $ conda env export > environment.yaml 

반응형
반응형

True Positive  : 

    + 긍정적 참

    + A를 찾아야 하는데 A가 들어왔을때 A라고 답변함(긍정할 것을 긍정함)

    + 찾아야 할 것을 잘 찾음
True Negative  : 

    + 부정적 참

    + A를 찾아야 하는데 B가 들어왔을때 B라고 답변함(부정할 것을 부정함)

    + 찾지 말아야 할 것을 찾지 않음
False Positive : 

    + 긍정적 거짓

    + A를 찾아야 하는데 A가 들어왔는데 B라고 답변함(긍정할 것을 부정함)

    + 찾아야 할 것을 찾지 않음
Fase Negative  : 

    + 부정적 거짓

    + A를 찾아야 하는데 B가 들어왔는데 A라고 답변함(부정할 것을 긍정함)

    + 찾지 않아야 할 것을 찾음



Accuracy : 

    + True Positive / Total dataset 
    + 전체 시도 횟수 중 참의 값 즉 정답률
    + Data들의 결과가 Balence 할 때에 유용함

Recall : 

    + True Positive / Total Given Data(True Positive + False Positive)
    + 주어진 전체 값들 중에서 정답률(A부터 D까지 주어졌을 때에 A를 찾을 확률)

Precision : 

    + True Positive / Total Dataset(True Positive + False Negative)
    + 특정 값에 대해서 예측한 값들 중에서 정답률(A만 주어졌을 때에 A라고 찾을 확률)

F1 Score : 

    + 2 X ((Precision X Recall) / (Precision + Recall))
    + Data가 Balence하지 않을때에 Accuracy보다 더 유용함(Harmonic mean/average)
    + Precision과 Recall의 조화평균

IoU :

    + True Positive / (True Positive+False Positive+False Negative)
    + 찾은것(정답이든 아니든) 중에 실제 정답률

AP : 

    + PR곡선(Precision, Recall)을 그렸을떄, 근사되는 넓이

mAP : 

    + (class1 AP + class2 AP + ... + classN AP)/N

반응형
반응형

현재 활성화된 컨테이너 확인

# docker ps


모든 활성화된 컨테이너 확인

# docker ps -a


컨테이너 삭제
방법 1 :

# docker rm {container id or container name}

방법 2 :

# docker container rm {container id or container name}

 

이미지 리스트

# docker images

 

이미지 삭제

# docker rmi {image id or image name}


컨테이너 삭제 까지 일괄 동작

# docker rmi -f {image id or image name}


이미지 생성(빌드)
방법 1(정해진 이름으로 생성)

# docker build -t {Image Name} .

방법 2(Random 이름으로 생성)

# docker build .


Container 생성

# docker run -it --name {container name} -v {Local Path}:{To be mounted host path} {Container Name} {Shell ex./bin/bash}


중지된 Container 재시작

# docer start {container name or id}


Container 재접속

# docker attach {container name or id}



반응형
반응형

 

 

NFS 연결이 특정 서버에서만 안되는 현상을 발견하였다.

Tcpdump를 떠보니 특정 단계까지만 진행 후 다시 처음부터 재시도가 반복되는것이 확인 되었다.

 

저 단계까지만 진행하고 동일한 단계를 계속 반복하여 저 패킷이 뭔가 봤더니 Server Response Packet인데

내용을 보니 지원 버전이 아닌 버전으로 요청하는게 확인되었다.

Response에서는 최소 3, 최대 4버전까지 지원한다고 하지만 장비에서는 계속 2버전의 연결을 요청하여 Terminate시켜지고 다시 재 접속을 반복하는 것이었다.

 

서버에서는 아래의 명령어로 몇버전의 nfs 서비스가 구동되는지 확인 가능하다.

$ rpcinfo | egrep "service|nfs"

 

2버전이 없는것이 확인된다.

 

/etc/default/nfs-kernel-server 파일에 아래와 같은 옵션을 추가해준다

RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"

 

그다음 서비스를 Restart 시켜준다

$ service nfs-kernel-server restart

 

다시 현재 서비스 되는 버전을 확인한다.

 

 

Version 2에 대해 서비스가 추가되는 것이 확인되었다.

이전에 NFS 연결이 안되던 장비에서 정상적으로 NFS 연결이 되는 것을 확인한다.

 

반응형

+ Recent posts