일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- yolo webcam
- yolov8 커스텀 학습
- 오목
- SentenceBERT
- 국비지원교육
- AI 오목
- reinforcement learning
- Lambda Activation
- cuDNN WARNING
- Image Cosine Similarity
- 프로그래머스데브코스
- 바둑판 만들기
- 강화 학습 적용
- CV
- TensorFlow lambda
- YOLO
- Actor Critic
- PYTHON
- tf.keras.layers.lambda
- cv2
- 오목 AI
- will not use cuDNN kernels
- nlp
- 코딩부트캠프
- Jupyter Notebook
- pygame
- yolov8 load weights
- yolov8
- 강화학습
- object detection
- Today
- Total
Silinu's AI Study
1. Webcam으로 데이터 수집하기 본문
본 내용에서는 yolo는 커스텀한 데이터를 활용하여 yolo model을 통해 학습하고 실시간으로 적용하는 것을 목표로 한다.
본 내용에서는 예제로써 손가락의 숫자를 맞추는 것을 목표로 한다.
현재 사용한 Webcam은 다이소에서 5,000원에 파는 pc용 화상 카메라이다.
그리고 anaconda 가상 환경을 사용한 Jupyter notebook 환경에서 진행한다. 만약 가상 환경이 깔려져 있지 않다면 아래 링크를 참조합니다.
https://silinu-ai.tistory.com/3
Jupyter notebook(주피터 노트북) 설치하기
총 2가지 단계로 이루어져 있다. 1. 아나콘다 다운로드 https://www.anaconda.com/products/individual#windows Free Download | Anaconda Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learni
silinu-ai.tistory.com
본 내용에서 cv2를 사용하기 때문에 Jupyter notebook 창에서 import cv2가 되지 않는다면 anaconda prompt 창의 가상환경에서 다음과 같이 설치해야 한다.
conda install opencv
이제 다음과 같이 진행한다.
- 이미지 저장 폴더 생성하기
- 카메라 켜기 및 이미지 저장하기
1. 이미지 저장 폴더 생성하기
현재 작성 중인 코드의 폴더(편의 상 A 폴더라고 지칭함)에 All_Data 폴더( 이미지 저장 폴더) 를 만든다.
import os
path = os.getcwd()
Img_path = os.path.join(path,"All_Data")
if not os.path.isdir(Img_path):
os.mkdir(Img_path)
2. 카메라 켜기 및 이미지 저장하기
이미지 파일 저장 경로에 한글이 있을 경우 아래 함수를 작성한다.
import cv2
# 파일 위치가 한글 경로가 존재할 때 사용함(경로에 한글이 없다면 작성 안해도 됨)
# 출처 : https://jangjy.tistory.com/337
def imwrite(filename, img, params=None):
try:
ext = os.path.splitext(filename)[1]
result, n = cv2.imencode(ext, img, params)
if result:
with open(filename, mode='w+b') as f:
n.tofile(f)
return True
else:
return False
except Exception as e:
print(e)
return False
카메라를 켜고 이미지를 저장한다. 만약 종료하고 싶다면 esc 키를 누른다.
import cv2
# 카메라 켜기
cap = cv2.VideoCapture(0)
# 웹캠 오류 처리
if not cap.isOpened():
print("camera open failed")
exit()
img_num = 0
camera_num = 0
while True:
# 카메라 읽기
status, img = cap.read()
if not status:
print("Can't read camera")
break
# 카메라 창 띄우기
cv2.imshow("PC_Webcam",img)
img_path = os.path.join(Img_path,f"img{img_num}.png")
# 한글 경로가 없다면 1번, 있다면 2번을 사용할 것
# 1번
# img_captured = cv2.imwrite(img_path,img)
# 2번
img_captured = imwrite(img_path,img)
img_num+=1
# esc 누르면 종료하기
if cv2.waitKey(1) == 27:
break
cap.release()
cv2.destroyAllWindows()
이렇게 했을 때 A 폴더/All_Data 폴더에 img0.png, img1.png...가 저장되는 것을 확인할 수 있다.
아래 보면 현재 본인이 실행하고 있는 폴더("정리")/All_Data 폴더에 이미지들이 잘 저장된 것을 확인할 수 있다.
'Project > Finger Detection' 카테고리의 다른 글
5. 학습된 Yolo 가중치 불러오기 및 실시간 웹캠에 적용하기 (3) | 2023.11.06 |
---|---|
4. Yolov8 모델로 커스텀 데이터 학습하기 및 예측하기 (0) | 2023.11.06 |
3. Image preprocessing 및 train, val 나누기 (0) | 2023.11.06 |
2. 이미지 라벨링하기(Image Labeling) (1) | 2023.11.05 |