본문 바로가기

ML8

[자율주행] djitellopy & opencv Object Detection - (2) Object Detection Tello 카메라를 통해 받아온 영상의 색상을 검출하는 과정은 다음과 같다. Camera&OpenCV로 받아온 BGR 컬러 영상을 HSV로 변환 설정된 HSV 채널 이진화 중점 찾기 import cv2 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) lower_red1 = np.array([0//2, 255//3, 40]) upper_red1 = np.array([15//2, 255, 200]) lower_red2 = np.array([345//2, 255//3, 40]) upper_red2 = np.array([360//2, 255, 200]) rowMask = cv2.inRange(hsv, lower_red1, upper_red1) upp.. 2023. 8. 6.
[자율주행] djitellopy & opencv Object Detection - (1) djitellopy와 opencv를 통한 비디오 스트림 예제 drone.streamon() while True: img = drone.get_frame_read().frame() # 이미지 절대적 크기 지정 img = cv2.resize(img,(360,240)) # imshow("name", 변수) cv2.imshow("Image",img) # delay, 단위: millisecond cv2.waitKey(1) resize python: cv.resize( src, dsize[, dst[, fx[, fy[, interpolation]]]] ) -> dst - src: input image, 원본 이미지 - dts: output image, src와 동일한 유형 - dsize: output image s.. 2023. 8. 6.
[자율주행] OpenCV와 영상처리 | 필터링 | 영상 잡음 전처리 Python과 Tello Drone 자율주행 Part1. OpenCV와 영상처리 영상처리(Image Processing)란? 입출력이 영상인 모든 형태의 정보 처리 OpenCV란? 영상처리와 컴퓨터 비전을 위한 오픈소스 라이브러리로 C, C++, Python 등에서 사용 가능하다. 💡 영상처리의 기본 과정 1. 영상 입력받는다. 2. 영상 데이터를 전처리한다. 3. 전처리된 영상 데이터에서 특징을 추출한다. 4. 추출된 특징으로 정보를 해석하거나 인식한다. 우리가 앞선 메뉴얼에서 실행해보았던 video_effect.py를 실행하면 카메라로 추출되는 영상과 Canny Edge 영상이 잘 나올 것이다. 해당 예제 파일에서 tellopy의 get_video_stream, av의 open, cv2의 imshow.. 2023. 7. 31.
[자율주행] Tello SDK 환경 세팅 | 간단한 이착륙 코드 | OpenCV 비디오 스트림 환경 세팅 TelloPy tellopy는 pip 설치가 돼 있다면 터미널에서 아래 명령을 쳐서 쉽게 받을 수 있다. pip3 install tellopy 설치 뒤에는 import tellopy를 통해 패키지를 사용할 수 있다. VSC에서 다음과 같이 tello 프로젝트를 진행할 폴더를 생성하자. 필자는 TelloProjects라고 이름을 지어서 폴더를 생성해주었다. 여기서 위 과정을 따라 tellopy 라이브러리를 설치하고 import tellopy를 했음에도 불구하고 라이브러리를 사용할 수 없는 경우에는 tellopy를 직접 빌드하여 설치하는 해결 방법이 있다. git clone cd TelloPy python setup.py bdist_wheel pip install dist/tellopy-*.dev.. 2023. 7. 31.
[python/AI] Python 외부 라이브러리 설치 및 관리 총정리 ML 관련 프로젝트를 하다보면 외부 라이브러리 관리가 까다로움을 느낀다. Python을 통해서 다양한 작업을 수행할 수는 있지만, 다양한 연산을 지원하는 라이브러리 관리도 필수적이다. pip 파이썬 라이브러리를 관리해주는 프로그램이다. 파이썬의 다양한 라이브러리를 사용하기 위해서는 pip가 필요하다. pip는 파이썬으로 작성된 라이브러리를 관리해주는 시스템으로, 파이썬 관련 명령어에 다양하게 활용된다. MacOS 유저는 brew, 우분투/리눅스 유저들은 apt와 비슷하다고 생각하면 된다. pip는 Python 2.7.9 이후 버전, Python 3.4 이후 버전에는 내장되어있으므로 따로 설치할 필요가 없다. pip vs pip3 pip: Python2 버전 패키지 매니저 pip3: Python3 버전 패.. 2023. 7. 15.
[python/AI] MNIST란? MNIST 데이터 개념 / 컴퓨터 비전 / 인공신경망 1. MNIST란? MINIST는 손글씨 숫자 이미지들이 모여있는 데이터로, 컴퓨터 비전 데이터라고도 한다. 다음과 같은 손글씨 이미지로 구성되어있다. 이 데이터는 눈으로 봤을 때는 그냥 손글씨 숫자이지만, 각 이미지의 숫자가 무엇인지에 대한 라벨이 붙어있다. 인공신경망에서 라벨은 중요한 역할을 한다. 인공신경망 함수를 통해 출력된 값과 비교하여 상관관계를 따져보는 과정이 학습에서 중요한 부분이기 때문이다! MINIST 이미지는 28*28 크기의 이미지다. 또한 흑백이미지이므로, 채널은 하나다. (rgb 이미지는 r, g, b 세개의 채널) 2. MNIST 사용을 위한 Module 본격적으로 코딩을 하기 전에 먼저 module을 import하자. 대략 넘파이(numpy), matplotlib, 토치(to.. 2022. 11. 15.
[python/AI] 텐서(tensor)란? 텐서(tensor) 개념 / 파이토치(pytorch)에서의 활용/ 인공지능(AI) 기본 개념 1. 텐서(tensor)란? 아래의 그림을 통해 텐서(tensor)에 대해 직관적으로 이해할 수 있다. x = 5, y = 7과 같은 값 1은 스칼라이다. 스칼라 모이면 벡터, 벡터의 차원이 높아질수록 행렬 -> 3차원 텐서 -> 4차원 텐서 ->...n차원 텐서라고 명칭한다. 즉 텐서(tensor)는 3차원 이상의 행렬으로, 데이터의 배열이다. 이때 차원은 rank로 표현한다. 텐서(tensor)는 GPU나 하드웨어 가속기에서 실행할 수 있다는 점을 제외하면 Numpy의 ndarray와 매우 유사하다. 그렇다면 왜 numpy를 사용하지 않고 굳이 Pytorch에서 tensor 메소드를 사용하는 걸까? 2. Pytorch를 사용하는 이유_ Tensor와 Pytorch 앞에서 텐서(tensor)는 n차원 .. 2022. 11. 1.
[python/AI] matplotlib 개념/사용/데이터시각화 jupyter notebook에서 matplot을 사용하는 법을 다루어 보겠다. jupyter 사용을 위해 anaconda를 설치했다면, matplotlib은 자동으로 설치되어있을 것이다. 다음과 같이 import 해서 사용할 수 있다. import matplotlib.pyplot as plt 1. matplotlib이란? 데이터를 그래프로 다양한 방법을 통해 시각화해주는 파이썬 라이브러리로, 말 그대로 데이터시각화 도구이다. plot() 임의의 개수의 인자를 받아 그래프로 나타내는 matplotlib의 함수 x = [1, 2, 3] y = [1, 2, 3] plt.plot(x,y) plt.title("My plot") plt.xlabel("X") # x축 이름 설정 plt.ylabel("Y") # y축.. 2022. 10. 25.