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.0.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

YOLOv7_with_depthmap-1.0.0-py3-none-any.whl (32.5 kB view details)

Uploaded Python 3

File details

Details for the file yolov7_with_depthmap-1.0.0.tar.gz.

File metadata

  • Download URL: yolov7_with_depthmap-1.0.0.tar.gz
  • Upload date:
  • Size: 30.8 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.0.tar.gz
Algorithm Hash digest
SHA256 d4d5f638d492d554338bc80faba8215549649f6ae3be0dd17fcfa1ed88c21935
MD5 cd2f991892be510946e64625baf03447
BLAKE2b-256 908191ebefa391a7895766989b523a0a45140cb1d9379ad093f5a59c65b0855b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for YOLOv7_with_depthmap-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb5ce391d2c87702f6904bc3c4759b0f5e7384d92e857dd041f9cbdf793a897e
MD5 79f7204c09dcf065c0a2fe94392fb328
BLAKE2b-256 016b4fe753d0a152ecfd1a0070135d50952854cdb943fa11ce6f71e32c381182

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