본문 바로가기
정나우/코드

Yolov7 실시간 객체 탐지하기

by 정_나우 2022. 9. 26.

Yolov7 Github를 참고했습니다.

 

GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time

Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors - GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of...

github.com


먼저 yolov7을 실행할 수 있는 환경 (CUDA, Cudnn, pytorch)을 구성해줘야 합니다.

 

저는 

CUDA: 11.3

cuDNN: 8.5.0

PyTorch: 1.11.0

이렇게 설치했습니다.

 

설치방법

 

Ubuntu 18.04에서 CUDA, Cudnn 설치

데스크탑에서 Yolo를 사용하려면 CUDA와 Cudnn을 설치해줘야 합니다. Jetson은 Jetpack을 설치할 때 알아서 다 깔리지만 데스크탑은 따로 설치를 해줘야 해서 좀 귀찮.. 먼저 데스크탑에 이미 설치된 옛

kumoh-irl.tistory.com

 

가능하다면 파이썬3가 기본으로 설정되어있는 가상환경을 만들어서 거기에다가 하는 걸 추천드립니다.


환경을 다 조성해줬으면 그 뒤에는 쉽습니다.

git clone https://github.com/WongKinYiu/yolov7.git
cd yolov7
gedit requirements.txt

여기서 torch와 torchvision은 이미 맞는 버전을 설치했기 때문에 주석처리해줍니다. 

pip install -r requirements.txt

 

이제 바로 실행할 수 있습니다.

python detect.py --weights yolov7.pt --source 0

weight 파일을 따로 저장하지 않아도 알아서 깃허브에서 가져와 실행해줍니다.

 

yolov7.pt가 기본이고

yolov7-e6e.pt은 좀 더 무겁지만 성능이 좋은 가중치파일입니다.

yolov7-tiny.pt는 성능은 조금 떨어지지만 가벼워서 성능이 조금 떨어지는 컴퓨터나 젯슨같은 임베디드 컴퓨터에 사용하기 적합합니다.

 

인식률이 50%넘는 것만 화면에 보이게 하고 싶으면 

python detect.py --weights yolov7.pt --conf 0.5 --source 0

다음과 같이 명령어를 입력해줍니다.


컴퓨터 성능은 충분한데 화면이 조금 버벅이는 것 같다면

yolov7/utils/datasets.py 파일을 열어서 314줄의

            if n == 4:  # read every 4th frame

의 숫자4를 1로 바꿔줍니다.

 

 

 

그리고 yolov7을 실행했을 때 화면 크기를 조절하고 싶으면

 

291번째 줄 내용의

            w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
            h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

            w = int(cap.set(cv2.CAP_PROP_FRAME_WIDTH,1920))
            h = int(cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080))

처럼 바꿔줍니다. 뒤에 1920, 1080은 사용자가 컴퓨터가 지원하는 크기 중에 아무거나 설정 가능합니다.

 

이런 값들을 잘 조절해서 사용자의 환경에 잘 작동할 수 있도록 바꿔줄 수 있습니다.

댓글