반응형

주지하다시피 Jetson TX2 개발보드에는 온보드 형태의 CSI카메라가 장착되어 있다.


기존에 Jetpack 3.1에서 영상을 받아올때는 OpenCV 3.3.0을 Build & Install 방식으로 설치해서 gstream으로 받아오는 형태로 비디오 영상을 받아왔는데 Jetpack 3.2에서는 OpenCV 3.3이 설치과정에서 설치가 되므로 영상 받아오는것도 바로 되는줄 알았다.

하지만 Jetpack 3.2에서 똑같은 OpenCV가 포함된 Project 를 불러오면 Build 는 정상적으로 진행되지만 실행하게 되면


Cannot open camera 라는 메시지와 함께 정상적으로 실행되지 않는다.


https://devtalk.nvidia.com/default/topic/1031497/jetson-tx2/onboard-camera-stream-changed-in-jetpack-3-2-/ 에 올라온 답변을 보면


OpenCV in Jetpack 3.2 does not enable gstreamer. Please not install OpenCV via Jetpack 3.2 but build/install manually.


즉 Jetpack 3.2에 포함된 OpenCV는 gstream 이 포함되지 않아서 발생하는 문제이고 OpenCV는 수동으로 Build/install해야 한다는 거다.

아래 링크를 따라서 스크립트를 다운로드 하고 OpenCV를 설치해본다.


https://github.com/AastaNV/JEP/blob/master/script/install_opencv3.4.0.sh


$ ./install_opencv3.4.0.sh 

Usage: ./install_opencv3.4.0.sh <Install Folder>


스크립트를 실행하려면 폴더를 지정해야 한다는 에러 메세지가 나오므로 아무 폴더를 만들어서 지정한다.

Build 후 Install까지 성공적으로 진행되면 일단 재부팅


재부팅 후 해당 프로그램을 다시 실행하면 정상적으로 영상이 나타나는것을 확인할 수 있다.


참고로 파이썬에서 OpenCV를 통해 영상을 받아오는 부분은 다음과 같다.


import cv2

#Start capture video from Camera

cap = cv2.VideoCapture("nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)I420, framerate=(fraction)30/1 ! nvvidconv flip-method=4 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink")


여기서 굵은 글씨 부분은 I420 또는 BGRx 둘다 쓸 수 있는데 어떤 이유인지 BGRx가 좀더 응답속도가 빠르다. 


터미널에 아래와 같은 에러 메세지가 출력되는데 어떤 이유인지는 좀더 살펴봐야겠다.


VIDEOIO ERROR: V4L: device nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)I420, framerate=(fraction)30/1 ! nvvidconv flip-method=4 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink: Unable to query number of channels



2018/3/28 최초 문서 발행





반응형
반응형

랩탑에 설치된 Ubuntu에서 외부 인터넷은 무선 Wifi로 연결되어 있고 내부 네트웍으로 다른 PC와 연결 시 유선 라우터를 사용하는 경우가 있다.


즉 다음과 같은 연결 상태이다.



이때 우분투의 네트워크에서 하나의 네트워크에 접속하게 되면 다른 네트워크를 사용하지 못하는 경우가 발생한다.

예를들어 와이파이로 접속한 상태에서 유선 라우터에 접속하면 인터넷이 안되는 경우

이럴때는 우측 상단의 연결 아이콘을 클릭하고  Edit Connections...을 선택하여 Network Connections를 연다.


유선랜을 변경하기 위해 Wired Connection 혹은 유사한 항목을 선택한다.


IPv4 Settings 로 이동 후



Use this connection only for resources on its network 항목을 사용하도록 설정한다.



이렇게 하면 와이파이 인터넷을 사용하면서 내부 네트워크와 통신을 사용할 수 있다.


2018/3/26 최초 문서 발행


반응형
반응형

엔비디아의 임베디드 GPU솔루션인 Jetson 에 탑재되는 소프트웨어가 3.1에서 3.2로 업데이트되었으며 지금 다운로드가 가능하다.

특히 이번 버전에는 Jetson 의 산업용 버전인 TX2i 에 대한 지원을 포함하고 있다.


이전 버전인 3.1에서 바뀐 부분을 정리하면 다음과 같다.



 

 Jetpack 3.1

Jetpack 3.2 

 L4T

 28.1

28.2 

 TensorRT

 2.1

3.0 GA

 cuDNN

6.0 

7.0.5 

 Multimedia API

28.1
TNRv2 

 Camera application API: libargus offers a low-level frame-synchronous API for camera applications, with per frame camera parameter control, multiple (including synchronized) camera support, and EGL stream outputs. RAW output CSI cameras needing ISP can be used with either libargus or GStreamer plugin. In either case, the V4L2 media-controller sensor driver API is used.


Sensor driver API: V4L2 API enables video decode, encode, format conversion and scaling functionality. V4L2 for encode opens up many features like bit rate control, quality presets, low latency encode, temporal tradeoff, motion vector maps, and more.

 CUDA

8.0 

9.0 

 VisionWorks

1.6 

1.6(동일)

 OpenCV4tEGRA

2.4.13 

 

Tegra Graphics Debugger 

2.4 

OpenGL ES 2.0-3.2 and OpenGL 4.2-4.5 

2.5

OpenGL ES 2.0, 3.0, 3.1, and 3.2, OpenGL 4.3-4.6

 Tegra System Profiler

3.7 

4.0


크게 리눅스 커널이 0.1 올라갔고 큐다 버전이 9.0으로 올라갔다.

텐서RT는 3.0이 되었는데 어느정도의 성능 향상이 있는지는 확인해볼 필요가 있다.


엔비디아에서 밝힌 주요 개선사항은 다음과 같다.

- 텐서플로우 기반의 딥러닝 어플리케이션의 15% 성능 향상
- Docker의 기본 탑재 (Out-of-the-box kernel 지원)
- 호스트 PC의 우분투 16.04 지원

2018/3/23 최초 문서 발행


반응형

+ Recent posts