Skip to main content

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 사용 가능

강의 자료 코드 로컬에 불러오기

  1. 우분투 터미널 실행

    mkdir YOLOv8_ROS2
    cd YOLOv8_ROS2
    git clone https://github.com/Nyan-SouthKorea/YOLOv8_for_ROS2.git
    

    clone된 해당 폴더로 이동

  2. VS코드 실행(방금 위에서 생성한 yolo 가상환경 연결하기)

  3. Ctrl + Shift + p 버튼을 누르고 "interpreter" 라고 검색하면 아래의 버튼으로 유도됨 alt text

  4. Enter interpreter path 선택 alt text

  5. Find -> .. -> yolo -> bin -> python3 선택

  6. VS코드 종료 후 재 실행

  7. 아무 코드나 실행해보자. 이 때 select interpreter에서 yolo가 보이면 선택

  8. 이후 VS코드 관련 extension을 설치하라는 안내가 나오면 모두 설치해준다. 그리고 실행이 안되면 VS코드 재실행 반복

  9. 우리가 만든 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 추론 속도는 느리더라도, 비디오 스트리밍은 부드러운 것을 확인 가능합니다. alt text

라이센스

YOLOv7 라이센스를 따릅니다. https://github.com/WongKinYiu

관련 링크

github : https://github.com/Nyan-SouthKorea/YOLOv7_with_depthmap

pypi :

Naver Blog : https://blog.naver.com/112fkdldjs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yolov7_with_depthmap-1.0.1.tar.gz (109.6 kB view details)

Uploaded Source

Built Distribution

YOLOv7_with_depthmap-1.0.1-py3-none-any.whl (114.1 kB view details)

Uploaded Python 3

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

Hashes for yolov7_with_depthmap-1.0.1.tar.gz
Algorithm Hash digest
SHA256 5ee1bc7e8c061bd282e6dd5ea3b5e78d6c4c1da04bc09e7e056fff1885380c1d
MD5 d9b591239bdb621b9025ba81464d2e03
BLAKE2b-256 ae7e94b1238f228c7c6adb24f998c62fdd18f353a92ccf9aa95464fbec7c2fa1

See more details on using hashes here.

File details

Details for the file YOLOv7_with_depthmap-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for YOLOv7_with_depthmap-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24310ab41f0652b2f6dbe4eefce4f11e66e94508c36b036ec024b376fcd75056
MD5 4cd8fe7412d2f7cce6f62012bf7675c1
BLAKE2b-256 6dcad022c2aa7ab806e7f3437a770f897fab09f1b68d645d49b9fce4308c9c3b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page