시작이 반이다.

  • 나는 컴퓨터속을 벗어난 적이 없는, 뭔가 현실세계에는 나가지못한 그런것을 개발한다. 그래서 뭔가 하드웨어를 만져서 현실세계의 것을 다루고 싶었다.
  • 일단은 조금은 편하고 익숙한 것에서 부터 출발하기로 하였다.
    • ‘라즈베리파이’라는 마치 장난감 같은? 아주조그마한 컴퓨터와 그것과 세트로움직이는 ‘라즈베리파이 카메라 v2’ 일단은 이거 두개로 무언가를 해보기로 하였다.
    • 당연히, 그 무언가는 이 카메라로 데이터를 취득하고 라즈베리파이 안에서 뭔가 데이터처리를 하는 것이다. (일단은 이것부터… 다음에는 이 데이터를 기반으로 뭔가 반응을 보이는 것을 하고자한다.) 또한, 딥러닝은 쓰지않을 생각이다. 기존의 많은 영상처리, 신호처리 방법을 적용시킬 생각이다. 당연히 이걸 잘모르니까 공부하면서 한다.

환경 세팅

  • 큰제목이 시작이 반인 이유는 고작 라즈베리파이 카메라를 붙이고, 거기서 영상을 받는 것조차 쉽지않았기때문이다. (젠장. 역시 현실세계는)
  • 여기서는 3가지 세팅에 대해서 설명을 하도록 한다.
    • (1) 라즈베리 파이에 원격접속하기. 매번 라즈베리파이를 쓰겟다고, hdmi뽑아서 붙이고 키보드랑 마우스를 연결하는 것보다는 원격접속하는 편이 낫다.
    • (2) openCV 설치하기. 윈도우 말고 다른 우분투같은 os에서 python opencv를 설치하는 것은 정말쉬운일이 아니다.
    • (3) 카메라를 라즈베리파이에 끼우고, 데이터를 받아보자.
    • (기타) 사람들은 vi로 python 코드를 짜던데..이건 아닌거같다. 넘나어렵다. 편한 atom을 깔려고했는데 실패 (아놔). nano를 이용해서 코드를 짜보기로
  • 이게되면 정말 시작할 수 있는 위치에 선 것.

(1) 원격접속하기.

  • 원격접속은 가장 기본이되는 ssh가 있다. 그리고 영상을 봐야하니까 화면도 받을 수 있는 VNCserver라는 방식도 있다. 뭐 그렇게 어려운방식은 아니다.

    일단. VNC vncserver

  • 라즈베리파이에 vnc 서버를 설치해서 화면으로 직접 원격접속하는 것
  • 설치
1
2
3
sudo apt-get update

sudo apt-get install tightvncserver
  • 설치가 완료되면 vncserver :1 를 terminal에 입력해서 서버를 열어준다.
  • 접속하고싶은 피씨에 vnc viewer를 깔고 IP주소:1 로 접속하면 끝

  • 추가

    • 설치할 때, setting에서 vncserver 접속 가능? 뭐이런거 설정해준거같은데 잘 기억이안난다. 안되면 거기들어가서 찾아보는 것을 추천.

SSH 이용하기

  • vnc server를 이용하는 경우 일단 라즈베리파이에 들어가서 서버를 열어주어야함. 결국 한번은 키보드꼽고, 모니터꼽고 막 그래야 한다는 것 (오쒯..)
    • 하지만 ssh로 터미널켜서 server를 열어준다면? (ㅋㅋ이거뭔가 지저분한 방법인데ㅋㅋ)
  • 우선 option을 ssh 가 가능하도록 바꿔주자

    • sudo raspi-config 로 접속
      • 일반적으로 8. advanced option에 ssh가 있다고한다 (내라즈베리파이는 그게없다. 너무구버전?혹은신버전?)
      • 대신 4. Interfacing Options에 들어가있음
        • SSH 활성화시켜줌
  • 원격접속

    • ssh (접속할 ID)@(IP주소)로 접속 가능
    • 일반적으로 라즈베리파이의 ID는 pi password는 raspberry 이다.

(2) openCV 설치하기.

  • Opencv 설치하기 참고사이트 혹은 참고사이트2

    • 여기서 아주기이이일게 설치를 하는 것이 나온다. 이 글에서 사용한 방법은 이게 아니지만 복잡하고 긴만큼 이렇게 까는것이 좋은거 같다. 아마도 정석인듯 밀고다시깔땐 이걸로해야지.
    • 둘 다 같은 사람이 쓴거같은데
  • 현실은 누군가가 미리 쎄팅해놓은걸 따운받음. 개꿀

    • 여기여기
    • 다 좋은데 이러면 가상환경에 어뜨케 opencv넣는지 모르겠음. 대체 opencv는 어디에 깔려있는걸까

(3) 카메라 연결

  • 라즈베리파이와 라즈베리파이카메라는 csi포트라는 것을 통해서 연결이 된다.

    • 이것도 ssh와 마찬가지로 sudo raspi-config 여기로 들어가서 카메라부분을 9잘찾은 다음) enable만들어주면 라즈베리파이 카메라와 연결이 됨.
  • 사진 테스트

    • 일단 제대로 끼워졌나 확인을 시작해보자
    • 터미널로 가서 아래명령어를 치면 test_pic.jpg라는 이미지가 찍힌다.
    1
    raspistill -o test_pic.jpg
  • 이제는 Opencv로 영상을 받아보자. 그래야 python으로 뭔가 영상을 만지작만지작하지.

  • Opencv로 영상에 접근하기위해서는 V4L2드라이버를 로드해줄 필요가 있음.
    • sudo modprobe bcm2835-v4l2를 터미널에서 실행한다.
    • 그러면 드라이버가 로드됨
    • 드라이버가 로드되면 ls /dev/video*했을떄 video0가 추가되었을 것이다.
  • 부팅 시점에 드라이버로드 해주기.
    • /etc/modules 수정해주기. nano를 쓰자.
      • 터미널에서 nano /etc/modules 실행
      • 제일 아래줄에 bcm2835-v4l2추가해주기.
  • 아직 잘 모르지만. 예제코드를 돌려보자.

    import cv2
    cap = cv2.VideoCapture(0)
    
    while cap.isOpened():
      ret, img = cap.read()
      if ret:
        cv2.imshow('test', img)
        if cv2.waitkey(1) & 0xFF == 27: # esc
          break
    

깔았다

  • 고작 영상한번 띄우자고 너무나고생했다. 하 일단은 좋은컴퓨터에서 영상로드해서 할까봐…
    • 다음번엔 신호처리 기법을 적용시켜본다!
    • 일단 1차 목표는 딥러닝을 쓰지않고, 사물이나 사람을 인식해서 그 위치를 추척하는걸 구현하는 것.
    • 2차목표는 지난번에 삿던 CCTV 라즈베리파이에 연결하기… 그래야 그 찾은 위치 따라다니지 히익(망한듯 CCTV망가짐)

Comment and share

  • page 1 of 1

Team ITsooda

author.bio


author.job