AI-DX education_yolo 복습
1. yolov5_test
https://github.com/ultralytics/yolov5
https://www.ultralytics.com/ko
https://github.com/ultralytics/yolov5?tab=readme-ov-file
1) 개발 환경 설정
(1) 가상 환경 생성
: Anaconda Powershell Prompt에서 다음 명령어를 실행하여 Python 3.12 기반의 가상 환경을 생성
1
2
conda create -n p312_yolov5 python=3.12
conda env list
(2) 프로젝트 폴더 생성 및 YOLOv5 다운로드
YOLOv5 zip 파일 다운로드 https://github.com/ultralytics/yolov5?tab=readme-ov-file
d:\ai_exam\yolov5_test 폴더에 다운한 파일 넣기
(3) 라이브러리 설치
: 프로젝트 폴더 내의 requirements.txt 파일을 사용하여 필요한 라이브러리를 한 번에 설치
1
pip install -r requirements.txt
2) YOLOv5 기본 테스트 및 활용
(1) 객체 클래스 확인
: data/coco.yaml 파일에서 YOLOv5가 인식할 수 있는 객체 클래스 목록을 확인
(2) 실시간 객체 인식 (웹캠)
: 다음 명령어를 실행하여 웹캠을 통해 실시간 객체 인식을 테스트
1
python detect.py --weights yolov5s.pt --source 0
(3) 특정 객체 인식
: 특정 클래스의 객체만 인식하려면 –classes 옵션을 사용한다. 예를 들어 핸드폰(class 67)만 인식하려면 다음 명령어를 실행한다.
1
python detect.py --weights yolov5s.pt --source 0 --classes 67
(4) 이미지 및 영상 객체 인식
: 이미지 파일 경로, 이미지 URL 또는 YouTube 영상 URL을 입력하여 객체 인식을 수행한다.
1
python detect.py --weights yolov5s.pt --source 이미지/영상 경로 또는 URL
1
Results saved to runs\detect\exp28
-> runs\detect\exp28에 아이브 멤버를 감지한 사진이 저장된다고 나온다.
2. test.py
1) 모델 로드
: torch.hub.load 함수를 사용하여 YOLOv5 모델을 로드
1
2
import torch
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
2) 객체 인식 및 결과 확인
: 이미지 경로 또는 URL을 입력하여 객체 인식 결과를 확인하고, results.print()를 통해 터미널에 결과를 출력
1
2
3
img = "이미지 경로 또는 URL"
results = model(img)
results.print()
3) 결과 시각화
: results.show()를 사용하여 감지된 객체에 경계 상자를 표시한 이미지를 확인
1
results.show()
4) 결과 데이터 분석
: results.pandas().xyxy[0]를 사용하여 감지된 객체의 좌표, 클래스, 신뢰도 등의 정보를 데이터프레임 형태로 확인하고 필요한 정보를 추출
1
print(results.pandas().xyxy[0])
5) 결과 저장 및 객체별 이미지 추출
: results.save()를 사용하여 감지 결과를 이미지 파일로 저장하고, results.crop()을 사용하여 각 객체를 개별 이미지로 잘라내어 저장
1
2
3
4
5
# savedata 폴더에 저장
results.save()
# crop
results.crop()