이번에 URP 프로젝트로 YOLO를 이용하여 진행하기로 해서 YOLO를 요즘 한창 공부하는 중이다.
사실 YOLO는 작년에 대회 나갈 때 한번 써본 적이 있긴 하지만, 그때는 정말 아무것도 모르고 했던 시기이기 때문에 이제서야 어떠한 원리로 작동하는지 알아가는 중이다.
YOLO v1, v2는 상세하게 논문을 읽고 원리를 공부했는데 시간 여유가 있을 때 정리해서 포스팅 할 예정이다.
YOLO v1 ~ v7 까지는 코드까지 공부하지는 않았고 원리 및 변화점 위주로만 공부했지만, 프로젝트에 직접 이용할 YOLO v8 같은 경우에는 직접 사용할 것이기 때문에 코드를 직접 공부해볼 예정이다. 아직 코드를 보지는 못했지만 코드 분석 만으로도 많은 시간이 걸릴 것 같다.
본격적으로 코드 분석을 해보기 전에 먼저 YOLO v8에 대해 알아보려 한다. 직접 실행해보며 어떻게 작동되는지를 알면 좀 더 수월하게 코드를 볼 수 있을 것 같기도 하다.
코드 실행은 vscode 환경에서 진행했다. colab에서 실행을 시도해보았지만, 아무래도 노트북 웹캠이랑 연결을 해야해서 colab 환경에서는 안되는 것 같다.
vscode에서 python 파일은 처음 실행해봐서 아예 실행 자체가 되지 않아서 당황했지만.. vscode 왼쪽에 4번째쯤 파이썬 표식을 클릭하고 실행을 하면 웹캠까지 잘 작동되는 것을 확인할 수 있었다.
vscode는 보통 웹 개발할 때만 썼었는데 아무래도 이제부터는 py 역시 vscode에서 할 것 같다.. vscode는 정말정말 편하다.
코드는 다음과 같다. 구글링해서 그대로 코드만 가져왔다.
import cv2
from ultralytics import YOLO
model = YOLO('yolov8n.pt')
cap = cv2.VideoCapture(0)
while cap.isOpened():
success, frame = cap.read()
if success:
results= model(frame)
annotated_frame = results[0].plot()
cv2.imshow("YOLOv8 Inference", annotated_frame)
if cv2.waitKey(1)&0xFF == ord("q"):
break
else:
print("hhi")
break
cap.release()
cv2.destroyAllWindows()
YOLO는 미리 사전에 정의된 라이브러리가 있어서 라이브러리 설치 후, 모델의 pt 파일만 불러와서 매우 쉽게 사용할 수 있다. n은 객체 사이즈를 의미하며 s,m,l 등 사이즈에 따라 다른 pt 파일이 있기 때문에 주로 객체 탐지를 할 객체 사이즈에 해당하는 pt 파일을 로드하여 사용하면 된다.
실행하기 전 cv2와 ultralytics만 잘 설치해준다면 잘 작동할 것이다. 에러없이 한번에 모델 실행까지 해본 경험이 정말 오랜만이라 기분이 좋다. 다음 포스팅은 코드 분석하기전 마지막으로 YOLO v8에 대한 공부를 더 깊이있게 해볼 예정이다. 근데 v8은 논문이 발간이 안됐는지 아무리 찾아도 안보인다. 내가 못찾는 걸수도..
다음 공부에 참고할 링크 주소
- https://blog.roboflow.com/whats-new-in-yolov8/#:~:text=YOLOv8%20was%20launched%20on%20January%2010th%2C%202023
- https://docs.ultralytics.com/
- https://learnopencv.com/ultralytics-yolov8/
- YOLO v8 github : https://github.com/ultralytics/ultralytics
- train code (YOLO v8) github : https://github.com/ultralytics/yolov5/blob/master/train.py
https://www.kirolsport.es/circuitbase/the-quiet-comfort-of-mini-sex-dolls-emotional-connections-few-talk-about/
https://www.smictomdesflandres.fr/cornerdaily/mini-sex-doll-cleaning-guide-avoid-these-5-mistakes-for-long-term-safety/