728x90

앞서 opencv 설치에 대해서 포스팅을 했지만 여기에서는 pip을 통해 쉽게 바로 설치할 수 있는 방법을 사용하겠다.

이것을 모르고 나는 패키지 하나하나 설치를 하고... 하지만 이 방법으로 하면 5분안에 설치가 가능하다..!!!!!!

[따라하기]

pip install --upgrade pip setuptools wheel
pip install -U numpy
pip install -U opencv-python

위와 같이 코드를 차례대로 입력한다.
오류메시지 없이 설치가 잘 됐다면,

python
>> import cv2
>> cv2.__version__


1. 터미널에서 python을 치면
' >> '
가 나온다.
2. import cv2를 입력한다.
오류 메시지 없이 바로 ‘>>’ 가 나온다면 잘 설치된 것이다!!! (오류가 나오면 구글링으로 해결하고 다음 단계 진행)
3. 그 다음 cv2.__version__을 쳐서 설치된 opencv의 버전을 확인하자.!

4. 버전이 출력이 된다면 잘 설치가 된 것이다.





※참고※
이전에는 빌드로 설치를 진행했지만 여기에서는 pip로 설치하였다.

둘의 차이점은 빌드로 설치하는 것은 호환성때문이다.
그리고 라파 사양에서 opencv 설치시 메모리를 너무 먹기때문에 스왑 스페이스를 사용하는 것이다.

하지만 저번에 빌드로 설치했을 때 시간이 너무 오래걸리고 나와 같이 라즈베리파이 3 모델일 경우 진짜 오래걸린다.

(벗, 라파4모델일 경우 빌드해서 사용ㄱ 라파4는 그나마 빠름)

 
 



결국 pip로 설치하는 위와 같은 방법은
호환성이 떨어진다는 말이 있지만 확실히 빌드하는것보다 빨리 설치된다는 장점이 있다.
그리고 호환성에 대해서는 불편함 없이 잘만 실행된다.
하지만 종종 패키지 설치시 오류가 나지만 이건 구글링으로 충분히 해결 가능하기 때문에

빌드로 설치하는 것보다 pip 설치가 더 나아보인다.

결론 : 그냥 간단하게 pip로 설치하자ㅎㅎ!! 

728x90
728x90

- 라즈베리파이 셋팅

sudo pip3 install firebase_admin

- 파이어베이스 SDK 설치

sudo pip3 install schedule

추가로 schedule을 사용하기 위해 설치( 설치 자유 )
이 모듈은 정해진 시간마다 카메라를 이용해 사진을 찍고 이를 파이어베이스 스토리지에 업로드 하기 위한 모듈임

- 영상 촬영용 코드

from picamera import PiCamera
from time import sleep
import datetime
import sys
import os
import requests
import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage
from uuid import uuid4
import time

#자신의 project id
PROJECT_ID = "abc-1234" # 본인의 id 적기

#라즈베리파이에 다운받은 '비공개 키' 위치 설정 
cred = credentials.Certificate("/home/pi/key/AccountKey.json")
# 이 비공개 키의 주소는 본인에 맞게 설정

#스토리지 url 주소
default_app =
firebase_admin.initialize_app(cred, {
    'storageBucket': "fir-0a00b.appspot.com"
}) # “fri~” 이 부분은 본인의 주소로 바꿔야 함

#버킷은 Storage에서 데이터를 보관하는 기본 컨테이너.
bucket = storage.bucket() #기본 버킷 사용

#파일 업로드 함수 선언(def)
def fileUpload(file):
    blob = bucket.blob('Video/'+file)
    #new token and metadata 설정
    new_token = uuid4()
    metadata = {"firebaseStorageDownloadTokens": new_token} #access token이 필요하다.
    blob.metadata = metadata

    #upload file
    blob.upload_from_filename(filename='./Video/'+file, content_type='video/h264')
    print(blob.public_url)

#영상 촬영 함수 선언(def) 
# 라즈베리파이에서 영상 촬영 확장명은 .h264, .avi만 가능 mp4는 안됨

def recording_camera():
    basename = "noah"
    suffix = datetime.now().strftime("%Y%m%d_%H%M%S") + '.h264'
    filename = "_".join([basename, suffix])

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.start_preview()
    
    #사진을 찍어서 저장한다. 파일의 중복되지 않도록 날짜시간을 넣어서 만들기
    camera.start_recording('/home/pi/senser_system/Video/' + filename) #자신의 주소에 맞게 설정
    camera.wait_recording(10)
    #sleep(10)
    camera.stop_recording()
    #사진 파일을 파이어베이스에 업로드 한다.
    fileUpload(filename)
    camera.stop_preview()
    camera.close()

def clearAll():
    #폴더안 파일 지우기
    path = 'Video'
    os.system('rm -rf %s/*' % path)

#10초마다 실행
schedule.every(10).seconds.do(recording_camera)

#10분마다 실행
#schedule.every(10).minutes.do(recording_camera)

 

728x90
728x90


mjpg 스트리밍 방법을 보고 하던 중 저런 오류가 나온다. raspicam.so 파일이 도대체 어디에 있다는 말일까…

 

 

=>>>> 해결..(?)

 

mjpg 말고 motion을 이용하니깐 웹서버에서 스트리밍이 된다. motion 관련 설치는 인터넷에 많으니 그거 참고.

하지만 프레임이 엄~~~청 깨져서 나오기 때문에 스트리밍을 하기 위해 다른 방법을 고안해야 한다... (일반적인 CCTV 스트리밍은 가능함) 

 

<생각한 방법들>

>> 1. RTMP - NGINX or RTSP

>> 2. VLC 원격 영상 스트리밍

 

하지만..

결론

->> 라즈베리파이같이 소형 컴퓨터에서 opencv를 사용해서 웹서버에 실시간 스트리밍은 불가능에 가깝다.

라즈베리파이 사양이 너무 딸린다...ㅎ 하지만 그냥 일반적인 CCTV같은 역할은 되므로 이걸 응용해서 진행해볼 예정

728x90
728x90

최근 게시물에 더 쉽게 설치하는 법 올려놨습니다.!

https://eesko.tistory.com/21

 



일단 하나만 말하자면..
라즈베리파이 3B+ 모델이면 opencv 설치는 매우 번거롭다. 라파 4모델이면 상관없다.

 

나는 총 7개의 사이트를 참고했는데, 왜 이렇게 오류가 나는지...
하지만 밑에 참고한 링크를 올려놓을테니 참고하면 바로 설치가 가능하다.

<도움 받은 링크>
라즈베리파이4 : openCV 설치하기 : 네이버 블로그 (naver.com)

 

라즈베리파이4 : openCV 설치하기

라즈베리파이 프로젝트에서 얼굴인식이나 사물인식을 위해 openCV 설치는 필수 준비물은 라즈비안이 설치...

blog.naver.com


이 분 방식대로 하니깐 오류 하나 없이 쭉 쭉 진행됐다. (아 파일 하나정도 오류났지만 걍 넘어갔다)

하나 알려주면,

만약 make -j4 명령어를 실행하게 되면 본인은 총 9시간이 걸려 설치를 완료했다.

여기서 아마 99%에서 멈춰서 더 이상 진전이 없는 사람이 있을 수 있다.

바로 나와 같이..


만약 99%에서 멈춰서 진전이 없다면

ctrl+c를 누르고 바로 make 명령어를 치고

그냥 인내심을 갖고 기다리면 어느순간 설치가 될 것이다.

그리고 라파 4모델로 진행하면 더 순조롭게 됩니다!!
본인은 라파3b+ 모델이라 엄청 엄청 느림ㅜㅜ


그리고 설치가 다 됐다면 아래 명령어를 실행하기

~ $ python

>>> import cv2

>>> cv2.__version__

1) 만약 cv2가 없다는 오류가 나온다면 그 오류메시지를 구글에 검색하면 바로 해결법이 나온다.
2) 위와 같은 명령어로 opencv의 버전을 확인하자. 아마 가장 최신 버전이면 4.6.x버전일거다.(2022년 11월 기준)

728x90

+ Recent posts