inference YOLOv7 with scratch very simply and caculate depth also if depth_map is for input
Project description
YOLOv8_for_ROS2
ROS2 강의에서 YOLOv8 사물인식 파트에 대한 강의 자료
Ubuntu 20.04, 22.04 초기 설정 및 YOLOv7 환경 구축
처음 우분투 세팅
sudo apt update
sudo apt upgrade
sudo apt install python3-pip
sudo apt install python3.8-venv
가상환경 만들고 실행하기
python3.8 -m venv yolo
source yolo/bin/activate
ROS2를 위한 YOLOv7 패키지 설치하기
pip install YOLOv7_with_depthmap
패키지가 제대로 설치되었는지 확인하기
source yolo/bin/activate
python
여기서 아래 처럼 출력되면 문제 없음(컴퓨터 환경에 따라 GPU를 사용할 수 없는 환경일 수도 있음)
>>> from YOLOv7_with_depthmap import YOLOv7
>>> model = YOLOv7()
GPU 사용 가능
강의 자료 코드 로컬에 불러오기
-
우분투 터미널 실행
mkdir YOLOv8_ROS2 cd YOLOv8_ROS2 git clone https://github.com/Nyan-SouthKorea/YOLOv8_for_ROS2.git
clone된 해당 폴더로 이동
-
VS코드 실행(방금 위에서 생성한 yolo 가상환경 연결하기)
-
Ctrl + Shift + p 버튼을 누르고 "interpreter" 라고 검색하면 아래의 버튼으로 유도됨
-
Enter interpreter path 선택
-
Find -> .. -> yolo -> bin -> python3 선택
-
VS코드 종료 후 재 실행
-
아무 코드나 실행해보자. 이 때 select interpreter에서 yolo가 보이면 선택
-
이후 VS코드 관련 extension을 설치하라는 안내가 나오면 모두 설치해준다. 그리고 실행이 안되면 VS코드 재실행 반복
-
우리가 만든 yolo라는 가상환경으로 코드를 돌릴 수 있도록 설정 마침
테스트 코드(실시간 webcam 인퍼런스)
import cv2
model = YOLOv7()
cap = cv2.VideoCapture(0)
while True:
# 이미지 읽기
ret, img = cap.read()
if ret == False:
print('웹캠 수신 실패. 프로그램 종료')
break
# 추론
result = model.detect(bgr_img=img)
print(result)
cv2.imshow('YOLOv7 test', model.draw())
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
테스트 코드(폴더 안에 있는 이미지들 인퍼런스) (더미 depth map도 생성해 봅니다)
import cv2
import os
model = YOLOv7()
path = 'test_img'
for img_name in os.listdir(path):
# 이미지 읽기
img = cv2.imread(f'{paht}/{img_name}')
# dummy img 생성
h, w, c = img.shape
depth_map = np.random.randint(0, 256, (w, h), dtype=np.uint8)
# 추론
result = model.detect(bgr_img=img, depth_map=depth_map)
print(result)
cv2.imshow('YOLOv7 test', model.draw())
# 클릭하면 다음 사진으로 넘어감
if cv2.waitKey(0) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
시연 비디오
아래 영상과 같이 저사항 노트북 환경에서 YOLOv8 추론 속도는 느리더라도, 비디오 스트리밍은 부드러운 것을 확인 가능합니다.
라이센스
YOLOv7 라이센스를 따릅니다. https://github.com/WongKinYiu
관련 링크
github : https://github.com/Nyan-SouthKorea/YOLOv7_with_depthmap
pypi :
Naver Blog : https://blog.naver.com/112fkdldjs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file yolov7_with_depthmap-1.0.1.tar.gz
.
File metadata
- Download URL: yolov7_with_depthmap-1.0.1.tar.gz
- Upload date:
- Size: 109.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ee1bc7e8c061bd282e6dd5ea3b5e78d6c4c1da04bc09e7e056fff1885380c1d |
|
MD5 | d9b591239bdb621b9025ba81464d2e03 |
|
BLAKE2b-256 | ae7e94b1238f228c7c6adb24f998c62fdd18f353a92ccf9aa95464fbec7c2fa1 |
File details
Details for the file YOLOv7_with_depthmap-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: YOLOv7_with_depthmap-1.0.1-py3-none-any.whl
- Upload date:
- Size: 114.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24310ab41f0652b2f6dbe4eefce4f11e66e94508c36b036ec024b376fcd75056 |
|
MD5 | 4cd8fe7412d2f7cce6f62012bf7675c1 |
|
BLAKE2b-256 | 6dcad022c2aa7ab806e7f3437a770f897fab09f1b68d645d49b9fce4308c9c3b |