AI(2) ≡ OpenCV

Acrylic·2024년 3월 13일

영상 인식 기술

사람, 물체, 장소 및 기타 요소를 식별할 수 있는 이미지를 감지하고 분석하는 기술

말만 어렵게 했지 사실 영상에 있는 걸 감지하고 분석하는 기술이라고 보면 됩니다.
대표적인 기술로는 OpenCV가 있습니다.

OpenCV

이렇게 생긴 녀석(?)입니다.
컴퓨터 비전을 목적으로 개발된 오픈소스 라이브러리죠.

기능

기본 기능

영상 파일 입출력
화질 향상
객체 감지
3차원 비전 문제 해결
...

머신 러닝 & 딥 러닝

K-NN 분류 알고리즘
SVM
CNN
...

지원 언어

Windows
MacOS
...

파이썬 가상 환경 구축

1. 일단 아나콘다를 깔읍시다.

https://www.anaconda.com/download

2. 하고 나서 환경 변수 설정합니다.

검색에 환경 변수 치면 맨 상단에 있는 거 누릅니다.
그러면 저거 뜰 겁니다. 환경 변수 누르고 시스템 변수Path를 눌러주면 됩니다.

C:\Users\사용자 이름\anaconda3
C:\Users\사용자 이름\anaconda3\Library\bin
C:\Users\사용자 이름\anaconda3\Scripts

새로 만들기 눌러서 저 3개 다 입력해 주시면 되겠습니다.
(혹시 사용자 이름 그대로 쓰는 사람은 없겠죠)

3. Cmd 켭니다.

conda 쳐서 되는지 확인부터 합시다. 뭐 이상한 거 길게 뜨면 된 겁니다.

conda create -n (가상 환경 이름) python=3.9
conda activate environment
conda install ipykernel
python -m ipykernel install --user --name (가상 환경 이름) --display-name "(표시되는 가상 환경 이름)"

(가상 환경 이름), (사용자 이름), (표시되는 가상 환경 이름) 그대로 쓰는 사람은 없겠죠?
(가상 환경 이름), (표시되는 가상 환경 이름) 자리에 본인이 적고 싶은 가상 환경 이름 쓰시면 되겠습니다. 그럼 됐스빈다.

주피터 노트북 세팅

jupyter notebook

(그냥 Cmd에 이거 치세요)

openCV 이미지, 영상 출력

import cv2
 
img = cv2.imread('data/Dog.jpg') # 이미지 객체
cv2.imshow('image', img) # 이미지 짜잔
cv2.waitKey() # 키 입력 전까지 무한정 대기
cv2.destroyAllWindows() # 파.개.한.다.

와! 사진!

import cv2

cap = cv2.VideoCapture(0) # 0번 객체
print(cap.isOpened()) # 소스 열리니
while(cap.isOpened()): # 소스 열리는 동안
    ret, frame = cap.read() # ret 성공 여부 frame 이미지 객체
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    if ret : # 성공
        cv2.imshow('frame', frame) #이미지 객체를 frame 윈도우에 출력
        
        if cv2.waitKey(1) & 0xFF == ord('q'): # 뀨 누르면 빠이
            break
    else: # 실패
        break

cap.release() # 소스 초기화
cv2.destroyAllWindows()

와 영상!

퀴즈

(그냥 숙제라 안 보셔도 됩니다)

퀴즈 1

# mission

import cv2
 
img = cv2.imread('data/Dog.jpg')
font = cv2.FONT_HERSHEY_SIMPLEX # 폰트
text = 'Width: ' + str(cap.get(3)) + ' Height: ' + str(cap.get(4)) # 너비와 높이
title = str("Hello") # 현재 시간
frame = cv2.putText(frame, title, (550,450), font, 1, (0,255,255), 2, cv2.LINE_AA)
 
cv2.imshow('image', frame)
cv2.waitKey()
cv2.destroyAllWindows()

퀴즈 2

import cv2
import datetime

videoRef = 0
cap = cv2.VideoCapture(videoRef)
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

#cap.set(3, 1208) #width
#cap.set(4, 720)  #height
#print(cap.get(3))
#print(cap.get(4))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret :
        if videoRef != 0 : frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        
        font = cv2.FONT_HERSHEY_SIMPLEX # 폰트
        text1 = 'HADURI'
        text2 = 'Minwoo Kim'
        frame = cv2.putText(frame, text1, (10,30), font, 1, (0,255,255), 2, cv2.LINE_AA)
        frame = cv2.putText(frame, text2, (400,450), font, 1, (0,255,255), 2, cv2.LINE_AA)
        # 글자 출력
        
        cv2.imshow('frame', frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
cap.release()
cv2.destroyAllWindows()
profile
프런트엔드 개발자 지망생

0개의 댓글