라즈베리 파이 보드에서 설치하여 사용하던 Picamera를 Jetson Nano 보드에도 설치해 보자. 라즈베리 파이 보드에서의 설치법과는 완전히 다름에 유의하자. Jetson 계열 보드는 MIPI-CSI(Mobile Industry Processor Interface-Camera Serial Interface) 표준을 지원하고 있다.
Picamera 설치 명령과 아울러 샘플 코드를 포함 CSI-Camera repository on Github의 url 주소는 다음과 같다. https://github.com/JetsonHacksNano/CSI-Camera
터미널에서 아래와 같이 git clone 명령을 입력하여 실행하면 Home에 CSI-Camera 폴더가 생성된다. CSI-Camera 폴더로 들어가 보면 파이선 2.7 버전에서 실행이 가능한 face_detect.py, simple_camera.cpp 과 simple_camera.py 가 있음을 알 수 있다.
일단 위 터미널의 CSI-camera$에서 git hub에서 다음 명령을 복사하여 붙이면 자동으로 960X616 해상도의 카메라 캠코더가 실행된다.
$ gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=3820, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=0 ! 'video/x-raw,width=960, height=616' ! nvvidconv ! nvegltransform ! nveglglessink -e
위 명령은 Jetson Nano 보드에서 GStreamer가 파이카메라를 테스트해 볼 수 있도록 사용되는 루틴이다. 3820X2464 해상도에 초당 21 프레임을 지원하는 GStreamer는 960X616 윈도우 해상도로 디스플레이 가능하며 CSI-camera 폴더에 들어 있는 simple_camera.cpp과 simple_camera.py에서 사용된다. 사용자가 카메라 응용 시에 이미 설치 된 GStreamer 루틴을 넣어서 코드를 작성하도록 한다. 라즈베리 파이에서와는 그 방법이 다소 다름에 유의하자.
한편 OpenCV cv2에서 Haar Cascades 라이브러리를 사용하는 안면 인식 코드 face_detect.py에서도 GStream pipeline 이 사용된다. python face_detect.py 명령을 실행하면 다음 그림과 같이 안면 인식이 이루어진다. 라즈베리 파이에서도 파이카메라를 사용하여 동일한 결과를 얻을 수 있지만 GPU연산이 지원되는 Jetson Nano에서 실행 속도는 라즈베리 파이에 비할 바가 아니다.
![마나마인로고.png]