Open CV란?

  • Open Source Computer Vision의 약자.
  • 영상 처리에 사용할 수 있는 오픈 소스 라이브러리.
  • C++, C, Python 및 Java와 같은 다양한 인터페이스를 지원하며 Windows, Linux, Mac OS, iOS 및 Android같은 다양한 OS를 지원함.
  • 사용되는 예) 영상 처리, 컴퓨터 비전, 기계 합습과 관려된 전통적인 알고리즘, 얼굴 검출과 인식, 객체 인식, 객체 3D 모델 추출, 스테레오 카메라에서 3D 좌표 생성, 고해상도 영상 생성을 위한 이미지 스티칭, 영상 검색, 적목 현상 제거, 안구 운동추적

기초 tutorial

https://www.tutorialkart.com/opencv/python/

이 사이트를 참고하여 Image Processing 절차대로 따라가보자.

라즈베리 파이에서 Open CV를 실행하는 건 https://fishpoint.tistory.com/6082 에 나와있는 글을 참고하자.(실행 전 아래 error란을 읽기!)

error

설치 중에 error코드를 마주쳤다. 해결하는데 시간을 꽤나 소모했다.

https://fishpoint.tistory.com/6082 사이트 내용을 수행하기 전 오류가 생길 수 있어 모든 코드에 sudo를 붙여서 수행하는 걸 추천한다.

혹시나 apt-get upgrade와 관련해서 오류가 발생한다면 https://latte-is-horse.tistory.com/19 사이트를 참고해서 코드를 그대로 터미널에 써서 수행할 것을 추천.

nano test.py 작성 후 파일을 시행할 때 numpy 관련 error코드가 발생한다면,

pip3 uninstall numpy
pip3 install numpy -I

해당 코드를 순차적으로 시행해보자.
필자는 pip3 uninstall numpy을 시행하자 numpy install을 하지 않았던 것인지 Can't uninstall 'numpy'. No files were found to uninstall. 라는 문구가 떴는데 그냥 무시하고 다음 코드인 pip3 install numpy -I를 시행하니 error가 해결되었다.

라즈베리 파이를 VNC Viewer로 열고 그 안에서 시행하면 바로 적용 가능하다.

카메라 출력

https://076923.github.io/posts/Python-opencv-2/

위 링크의 main code를 시행하면 카메라가 실행된다. 링크에 자세한 내용이 나와있으니 참고하자.

Tensorflow lite 실행

Tensorflow란?

  • 다양한 작업에대해 데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리.
    심볼릭 수학 라이브러리이자, 인공 신경망같은 기계 학습 응용프로그램 및 딥러닝(deep Learning)에도 사용됨.
  • 구글에서 만든 딥러닝 프로그램을 쉽게 구현할 수 있도록 기능을 제공하는 라이브러리.
  • 안드로이드와 iOS같은 모바일 환경은 물론 64비트 리눅스, MacOS 의 데스크탑이나 서버 시스템의 여러개의 CPU와 GPU에서 구동될 수 있음.

Tensorflow lite

  • TensorFlow 모델을 휴대폰, embedded나 IoT 기기에서 구동하기 위해서 ML tool.
    Mobile과 IOT 기기를 위해서 TensorFlow를 경량화 시킨 버전이라고 생각하면 된다.
    Mobile과 IOT 기기를 위한 것인 만큼 빠른 응답 속도와 작은 binary 사이즈가 특징이다.

실행하기

https://www.youtube.com/watch?v=aimSGOAUI8Y

영상에 나오는 코드를 시행하면 시행된다.
오류가 발생한다면 새로 생긴 폴더를 모두 지우고 다시 실행해보자.

People Counting

https://www.youtube.com/watch?v=yxJkjTgJNko

sudo git clone https://github.com/freedomwebtech/rpipeoplecounter.git
cd rpipeoplecounter
ls                               # ls 시행 후 humandetect.py 파일 확인
sudo nano humandetect.py         # humandetect.py 안 내용 확인
sudo python3 humandetect.py      # humandetect.py 시행하여 라즈베리 파이 카메라로 people counting함.

시행하면 아래와 같이 카메라를 통해서 사람의 수를 count한다.

Face recognition

https://www.youtube.com/watch?v=XXWnGU8lPIo

sudo git clone https://github.com/freedomwebtech/persondetect_voice.git
ls                                  # pertsondectect_voice 폴더 확인
cd pertsondectect_voice/
ls                                  # test.py 파일 확인
sudo chmod775 install.sh            # 권한설정
sudo ./install.sh                   

이후 Downloads 폴더에 face check 학습 모델이 될 사진을 넣음.
그리고 file - new tab 으로 새로운 terminal창 열기.

cd Downloads/
ls                                                        # 학습모델이 될 사진 체크.
sudo mv 파일명 /home/pi/persondetect_voice/known_people/   # 학습모델 사진을 known_people폴더로 옮김.
ls                                                        # 파일이 옮겨졌는지 체크
cd persondetect_voice                                     # 폴더 변경. 
sudo python3 test.py                                      # vnc로 시행하지 않고 화면을 HDMI로 연결해서 시행해야 sound가 들림.

나는 학습 모델 사진은 아래 사진을 이용하였다. 아래 사진 파일명을 YunaKim2.jpg로 저장했기 때문에 위에 코드에서 mv를 사용한 코드는 sudo mv YunaKim2.jpg /home/pi/persondetect_voice/known_people/로 작성하였다.

sudo python3 test.py 코드를 입력하고 시행하면 라즈베리에 달린 카메라가 화면 속 인물을 인식하여 누구인지 판별한다.

아래는 sudo python3 test.py를 실행했을 때이다.
https://youtu.be/tYe6qtBje94
34초 쯤 들리는 소리: "Person one, YunaKim2"

Etc

라즈베리파이 버벅이는 문제

  1. 라즈베리 터미널시행
  2. sudo raspi-config 명령어 시행
  3. 2번 Display options 클릭
  4. D1. Resolution 클릭
  5. DMT 1600X1200 클릭
  6. 재부팅하기.
  7. 그래도 버벅임이 심하다면 5번에서 DMT 1280x720 클릭
  8. 혹시나 변경 후 라즈베리파이 소리가 들리지 않는다면 DMT가 아닌 CEA모드로 설정을 바꿔보자.

vim 설치

  1. 터미널 시행
  2. sudo apt-get install vim 시행.

chmod로 파일 권한 변경하기

https://gracefulprograming.tistory.com/111

profile
개발자로 시작| 공부한 것을 기록합니다.

0개의 댓글