Logo Zephyrnet

Wiwa Ohun Nkan Live ati Pipin Aworan pẹlu YOLOv8

ọjọ:

ifihan

Ninu iran kọnputa, awọn ilana oriṣiriṣi fun wiwa nkan laaye wa, pẹlu Yiyara R-CNN, SSD, Ati YOLO. Ilana kọọkan ni awọn idiwọn ati awọn anfani rẹ. Lakoko ti Yiyara R-CNN le tayọ ni deede, o le ma ṣe daradara ni awọn oju iṣẹlẹ akoko gidi, ti nfa iyipada si ọna YOLO algorithm.

Ṣiṣawari nkan jẹ ipilẹ ni iran kọnputa, awọn ẹrọ ti n fun laaye laaye lati ṣe idanimọ ati wa awọn nkan laarin fireemu tabi iboju. Ni awọn ọdun, ọpọlọpọ awọn algoridimu wiwa ohun ti ni idagbasoke, pẹlu YOLO ti n yọ jade bi ọkan ninu aṣeyọri julọ. Laipe, YOLOv8 ti ṣe afihan, siwaju si ilọsiwaju awọn agbara algorithm.

Ninu itọsọna okeerẹ yii, a ṣawari awọn algoridimu wiwa ohun pataki mẹta: Yiyara R-CNN, SSD (Oluwari MultiBox Single Shot), ati YOLOv8. A jiroro lori awọn abala iṣe ti imuse awọn algoridimu wọnyi, pẹlu siseto agbegbe foju kan ati idagbasoke ohun elo Streamlit kan.

Jectte Eko

  • Loye Yiyara R-CNN, SSD, ati YOLO, ati ṣe itupalẹ awọn iyatọ laarin wọn.
  • Gba iriri to wulo ni imuse awọn ọna ṣiṣe wiwa ohun laaye ni lilo OpenCV, Abojuto, ati YOLOv8.
  • Loye awoṣe ipin aworan ni lilo asọye Roboflow.
  • Ṣẹda ohun elo Streamlit fun wiwo olumulo ti o rọrun.

Jẹ ki a ṣawari bi a ṣe le ṣe ipin aworan pẹlu YOLOv8!

Atọka akoonu

Nkan yii ni a tẹjade gẹgẹbi apakan ninu Data Imọ Blogathon.

Yiyara R-CNN

Yiyara R-CNN (Nẹtiwọọki Neural ti o da lori Ẹkun Yiyara) jẹ algorithm wiwa ohun kan ti o jinlẹ. O ti wa ni akojopo lilo awọn R-CNN ati Yara R-CNN nílẹ ati ki o le wa ni kà ohun itẹsiwaju ti Yara R-CNN.

Algorithm yii ṣafihan Network Proposal Network (RPN) lati ṣe agbekalẹ awọn igbero agbegbe, rọpo wiwa yiyan ti a lo ninu R-CNN. RPN ṣe alabapin awọn fẹlẹfẹlẹ convolutional pẹlu nẹtiwọọki wiwa, gbigba ikẹkọ ipari-si-opin daradara.

Awọn igbero agbegbe ti ipilẹṣẹ lẹhinna jẹ ifunni sinu nẹtiwọọki R-CNN Yara fun isọdọtun apoti ati isọdi nkan.

RCNN | ipin aworan pẹlu YOLOv8
Yiyara RCNN | ipin aworan pẹlu YOLOv8

Aworan ti o wa loke ṣe apejuwe idile Iyara R-CNN ni kikun ati pe o rọrun lati ni oye fun iṣiro algorithm kọọkan.

Oluwadi MultiBox Shot Nikan (SSD)

awọn Oluwari MultiBox Shot Nikan (SSD) jẹ olokiki ni wiwa nkan ati lilo akọkọ ni awọn iṣẹ iran kọnputa. Ni ọna ti tẹlẹ, Yiyara R-CNN, a tẹle awọn igbesẹ meji: igbesẹ akọkọ jẹ apakan wiwa ati ipadasẹhin keji. Sibẹsibẹ, pẹlu SSD, a ṣe igbesẹ wiwa kan nikan. SSD ti ṣe agbekalẹ ni ọdun 2016 lati koju iwulo fun awoṣe wiwa ohun ti o yara ati deede.

"

SSD ni awọn anfani pupọ lori awọn ọna wiwa ohun iṣaaju bii R-CNN Yiyara:

  • Iṣiṣẹ: SSD jẹ aṣawari ipele-ẹyọkan, afipamo pe o sọ asọtẹlẹ taara awọn apoti didi ati awọn ikun kilasi laisi nilo igbesẹ iran igbero lọtọ. Eyi jẹ ki o yarayara ni akawe si awọn aṣawari ipele-meji bi Yiyara R-CNN.
  • Ikẹkọ Ipari-si-Ipari: SSD le ṣe ikẹkọ opin-si-opin, ṣiṣe jijẹ mejeeji nẹtiwọọki ipilẹ ati ori wiwa ni apapọ, eyiti o jẹ ki ilana ikẹkọ rọrun.
  • Ipara Ẹya-ọpọlọpọ: SSD nṣiṣẹ lori awọn maapu ẹya-ara ni awọn irẹjẹ pupọ, ti o jẹ ki o ṣawari awọn nkan ti awọn titobi oriṣiriṣi diẹ sii daradara.

SSD kọlu iwọntunwọnsi to dara laarin iyara ati deede, jẹ ki o dara fun awọn ohun elo akoko gidi nibiti iṣẹ mejeeji ati ṣiṣe ṣe pataki.

Iwọ nikan Wo lẹẹkan (YOLOv8)

Ni 2015, Iwọ Nikan Wo Ni ẹẹkan (YOLO) ni a ṣe bi algorithm-iwari ohun ni iwe iwadi nipasẹ Joseph Redmon, Santosh Divvala, Ross Girshick, ati Ali Farhadi. YOLO jẹ algoridimu-shot kan ti o ṣe iyasọtọ ohun kan taara ni iwe-iwọle kan nipa nini nẹtiwọọki nkankikan kan ṣoṣo asọtẹlẹ awọn apoti didi ati awọn iṣeeṣe kilasi ni lilo aworan ni kikun bi titẹ sii. 

Ni bayi, Jẹ ki a loye YOLOv8 bi awọn ilọsiwaju-ti-ti-aworan ni iṣawari ohun-akoko gidi pẹlu imudara ilọsiwaju ati iyara. YOLOv8 gba ọ laaye lati lo awọn awoṣe ti a ti kọkọ tẹlẹ, eyiti o ti ni ikẹkọ tẹlẹ lori iwe-ipamọ nla kan gẹgẹbi COCO (Awọn nkan ti o wọpọ ni Itumọ). Pipin aworan n pese alaye ipele-piksẹli nipa ohun kọọkan, ṣiṣe itupalẹ alaye diẹ sii ati oye ti akoonu aworan.

Lakoko ti ipin aworan le jẹ gbowolori ni iṣiro, YOLOv8 ṣepọ ọna yii sinu faaji-nẹtiwọọki ti ara rẹ, gbigba fun ṣiṣe daradara ati ipin ohun deede.

Ilana Ṣiṣẹ ti YOLOv8

YOLOv8 ṣiṣẹ nipa akọkọ pin aworan igbewọle sinu awọn sẹẹli akoj. Lilo awọn sẹẹli akoj wọnyi, YOLOv8 ṣe asọtẹlẹ awọn apoti didi (bbox) pẹlu awọn iṣeeṣe ti kilasi.

Lẹhinna, YOLOv8 nlo algorithm NMS lati dinku agbekọja. Fun apẹẹrẹ, ti awọn ọkọ ayọkẹlẹ lọpọlọpọ ba wa ninu aworan ti o yọrisi awọn apoti ifapọ agbekọja, NMS algorithm ṣe iranlọwọ ni idinku agbekọja yii.

Iyatọ laarin awọn iyatọ ti Yolo V8: YOLOv8 wa ni awọn iyatọ mẹta: YOLOv8, YOLOv8-L, ati YOLOv8-X. Iyatọ akọkọ laarin awọn iyatọ jẹ iwọn ti nẹtiwọọki ẹhin. YOLOv8 ni nẹtiwọki ẹhin ti o kere julọ, lakoko ti YOLOv8-X ni nẹtiwọki ti o tobi julọ.

iyato laarin Yiyara R-CNN, SSD, ati YOLO

aspect Yiyara R-CNN SSD YOLO
faaji Oluwari ipele-meji pẹlu RPN ati Yara R-CNN Nikan-ipele aṣawari Nikan-ipele aṣawari
Ekun igbero Bẹẹni Rara Rara
Iyara Wiwa Losokepupo akawe si SSD ati YOLO Yiyara ni akawe si Yiyara R-CNN, o lọra ju YOLO Gan yara
išedede Ni gbogbogbo ti o ga išedede Iwontunwonsi išedede ati iyara Ipese deede, pataki fun awọn ohun elo akoko gidi
ni irọrun Rọ, le mu awọn iwọn ohun pupọ ati awọn ipin ipin Le mu ọpọ irẹjẹ ti ohun Le Ijakadi pẹlu isọdi deede ti awọn nkan kekere
Iwari iṣọkan Rara Rara Bẹẹni
Iyara vs Yiye Tradeoff Gbogbo ẹbọ iyara fun išedede Awọn iwọntunwọnsi iyara ati išedede Ṣe iṣaju iyara lakoko mimu deede deede

Kini Ipinpin?

Gẹgẹbi a ti mọ ipin tumọ si pe a n pin aworan nla si awọn ẹgbẹ kekere ti o da lori awọn abuda kan. Jẹ ki a loye ipin aworan eyiti o jẹ ilana iran kọnputa ti a lo lati pin aworan si oriṣiriṣi awọn apa tabi awọn agbegbe. Bi awọn aworan ṣe jẹ awọn piksẹli ati Ni Pipa Pipa, awọn piksẹli ti wa ni akojọpọ ni ibamu si ibajọra ni awọ, kikankikan, sojurigindin, tabi awọn ohun-ini wiwo miiran.

Fun apẹẹrẹ, ti aworan kan ba ni awọn igi, awọn ọkọ ayọkẹlẹ, tabi eniyan lẹhinna ipin aworan yoo pin aworan naa si awọn kilasi oriṣiriṣi eyiti o jẹ aṣoju awọn nkan ti o nilari tabi awọn apakan ti aworan naa. Pipin aworan jẹ lilo pupọ ni awọn aaye oriṣiriṣi bii aworan iṣoogun, itupalẹ aworan satẹlaiti, idanimọ ohun ni iran kọnputa, ati diẹ sii.

"

Ni apakan ipin, a kọkọ ṣẹda awoṣe ipin akọkọ YOLOv8 ni lilo Robflow. Lẹhinna, a gbejade awoṣe ipin lati ṣe iṣẹ-ṣiṣe ipin. Ibeere naa waye: kilode ti a ṣẹda awoṣe ipin nigbati iṣẹ naa le pari pẹlu algorithm wiwa nikan?

Pipin gba wa laaye lati gba aworan ara ni kikun ti kilasi kan. Lakoko ti awọn algoridimu wiwa fojusi lori wiwa wiwa awọn nkan, ipin pese oye to peye diẹ sii nipa sisọ awọn aala gangan ti awọn nkan. Eyi nyorisi agbegbe deede diẹ sii ati oye ti awọn nkan ti o wa ninu aworan.

Bibẹẹkọ, ipin ni igbagbogbo pẹlu idiju akoko ti o ga julọ ni akawe si awọn algoridimu wiwa nitori pe o nilo awọn igbesẹ afikun gẹgẹbi ipinya awọn asọye ati ṣiṣẹda awoṣe. Laibikita awin yii, konge ti o pọ si ti a funni nipasẹ ipin le ju idiyele iṣiro lọ ni awọn iṣẹ ṣiṣe nibiti itọka ohun pato jẹ pataki.

Igbesẹ-Igbese Wiwa Live ati Pipin Aworan Pẹlu YOLOv8

Ninu ero yii a n ṣawari awọn igbesẹ fun ṣiṣẹda agbegbe foju kan nipa lilo conda, mu ṣiṣẹ venv ati fifi awọn idii ibeere sori ẹrọ nipa lilo pip. akọkọ ṣiṣẹda iwe afọwọkọ Python deede lẹhinna a ṣẹda ohun elo ṣiṣanwọle.

Igbesẹ 1: Ṣẹda Ayika Foju nipa lilo Conda

conda create -p ./venv python=3.8 -y

Igbesẹ 2: Mu Ayika Foju ṣiṣẹ

conda activate ./venv

Igbesẹ 3: Ṣẹda awọn ibeere.txt 

Ṣii ebute naa ki o lẹẹmọ iwe afọwọkọ ni isalẹ:

touch requirements.txt

Igbesẹ 4: Lo aṣẹ Nano ati Ṣatunkọ awọn ibeere.txt

Lẹhin ṣiṣẹda awọn ibeere.txt wirte aṣẹ atẹle fun awọn ibeere ṣiṣatunkọ.txt

nano requirements.txt

Lẹhin ṣiṣe iwe afọwọkọ ti o wa loke o le rii UI yii.

Lo aṣẹ Nano ati Ṣatunkọ awọn ibeere.txt

Kọ awọn idii ti o nilo rẹ.

ultralytics==8.0.32
supervision==0.2.1
streamlit

Lẹhinna tẹ "ctrl+o"(apaṣẹ ṣiṣatunkọ fifipamọ aṣẹ yii) lẹhinna Tẹ bọtini naa "Tẹ"

Lo aṣẹ Nano ati Ṣatunkọ awọn ibeere.txt

Lẹhin titẹ "Konturolu + x”. o le jade kuro ni faili naa. ati lilọ si ọna akọkọ.

Igbesẹ 5: fifi sori awọn ibeere.txt

pip install -r requirements.txt

Igbesẹ 6: Ṣẹda iwe afọwọkọ Python

Ninu ebute naa kọ iwe afọwọkọ atẹle tabi a le sọ aṣẹ.

touch main.py

Lẹhin ṣiṣẹda main.py ṣii vs koodu o lo aṣẹ kọ ni ebute,

code 

Igbesẹ 7: Kikọ iwe afọwọkọ Python

import cv2
from ultralytics import YOLO
import supervision as sv

# Define the frame width and height for video capture
frame_width = 1280
frame_height = 720

def main():
    # Initialize video capture from default camera
    cap = cv2.VideoCapture(0)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, frame_width)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_height)

    # Load YOLOv8 model
    model = YOLO("yolov8l.pt")

    # Initialize box annotator for visualization
    box_annotator = sv.BoxAnnotator(
        thickness=2,
        text_thickness=2,
        text_scale=1
    )

    # Main loop for video processing
    while True:
        # Read frame from video capture
        ret, frame = cap.read()

        # Perform object detection using YOLOv8
        result = model(frame, agnostic_nms=True)[0]
        detections = sv.Detections.from_yolov8(result)

        # Prepare labels for detected objects
        labels = [
            f"{model.model.names[class_id]} {confidence:0.2f}"
            for _, confidence, class_id, _
            in detections
        ]

        # Annotate frame with bounding boxes and labels
        frame = box_annotator.annotate(
            scene=frame,
            detections=detections,
            labels=labels
        )

        # Display annotated frame
        cv2.imshow("yolov8", frame)

        # Check for quit key
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # Release video capture
    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    main()

Lẹhin ṣiṣe aṣẹ yii o le rii kamẹra rẹ ti ṣii ati wiwa apakan rẹ. bi iwa ati lẹhin awọn ẹya ara.

Igbesẹ 7: Ṣẹda Ohun elo ṣiṣanwọle

import cv2
import streamlit as st
from ultralytics import YOLO
import supervision as sv

# Define the frame width and height for video capture
frame_width = 1280
frame_height = 720

def main():
    # Set page title and header
    st.title("Live Object Detection with YOLOv8")

    # Button to start the camera
    start_camera = st.button("Start Camera")

    if start_camera:
        # Initialize video capture from default camera
        cap = cv2.VideoCapture(0)
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, frame_width)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_height)

        # Load YOLOv8 model
        model = YOLO("yolov8l.pt")

        # Initialize box annotator for visualization
        box_annotator = sv.BoxAnnotator(
            thickness=2,
            text_thickness=2,
            text_scale=1
        )

        # Main loop for video processing
        while True:
            # Read frame from video capture
            ret, frame = cap.read()

            # Perform object detection using YOLOv8
            result = model(frame, agnostic_nms=True)[0]
            detections = sv.Detections.from_yolov8(result)

            # Prepare labels for detected objects
            labels = [
                f"{model.model.names[class_id]} {confidence:0.2f}"
                for _, confidence, class_id, _
                in detections
            ]

            # Annotate frame with bounding boxes and labels
            frame = box_annotator.annotate(
                scene=frame,
                detections=detections,
                labels=labels
            )

            # Display annotated frame
            st.image(frame, channels="BGR", use_column_width=True)

            # Check for quit key
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break

        # Release video capture
        cap.release()

if __name__ == "__main__":
    main()

Ninu iwe afọwọkọ yii, a n ṣẹda ohun elo ṣiṣan ati ṣiṣẹda bọtini naa lẹhin titẹ bọtini kamẹra ẹrọ rẹ ṣii ati wiwa apakan ninu fireemu naa.

Ṣiṣe iwe afọwọkọ yii ni lilo aṣẹ yii.

streamlit run app.py
# first create the app.py then paste the above code and run this script.

Lẹhin ṣiṣe aṣẹ ti o wa loke ro pe o ni aṣiṣe arọwọto bi,

Ereor| Pipa Pipa ni lilo Yolov8

lẹhinna tẹ aṣẹ yii,

sudo sysctl fs.inotify.max_user_watches=524288

Lẹhin lilu aṣẹ ti o fẹ kọ ọrọ igbaniwọle rẹ nitori a nlo aṣẹ sudo sudo jẹ ọlọrun :)

Ṣiṣe awọn akosile lẹẹkansi. ati pe o le rii ohun elo ṣiṣanwọle.

Awari Nkan Live | Pipa Pipa ni lilo YOLOv8

Nibi a le ṣẹda ohun elo wiwa laaye aṣeyọri ni apakan atẹle a yoo rii apakan ipin.

Igbesẹ Fun Annotation

Igbesẹ 1: Eto Roboflow

Lẹhin ti o wọle "Ṣẹda Project ". nibi o le ṣẹda iṣẹ akanṣe ati ẹgbẹ asọye.

Roboflow Oṣo | Pipa Pipa ni lilo Yolov8

Igbesẹ 2: Ṣiṣe igbasilẹ data

Nibi a gbero apẹẹrẹ ti o rọrun ṣugbọn o fẹ lati lo lori alaye iṣoro rẹ nitorinaa Mo n lo ibi dataset pepeye.

Lọ si eyi asopọ ati ki o gba awọn pepeye dataset.

Gbigbasilẹ Dataset| Pipa Pipa ni lilo YOLOv8

Jade folda nibẹ o le wo awọn folda mẹta: reluwe, igbeyewo ati val.

Igbesẹ 3: Ikojọpọ Dataset lori roboflow

Lẹhin ṣiṣẹda iṣẹ akanṣe ni roboflow o le rii UI yii nibi o le gbe data data rẹ silẹ nitorinaa ikojọpọ awọn aworan apakan ọkọ oju-irin nikan yan “yan folda" aṣayan.

Ikojọpọ Dataset lori roboflow

Lẹhinna tẹ “fipamọ ati tẹsiwaju” aṣayan bi mo ti samisi ni a pupa onigun apoti

Ikojọpọ Dataset lori roboflow | Pipa Pipa ni lilo Yolov8

Igbesẹ 4: Fi Orukọ Kilasi kun

Lẹhinna lọ si apakan kilasi ni apa osi ti ṣayẹwo apoti pupa. ki o si kọ orukọ kilasi bi ewure, lẹhin tite apoti alawọ ewe.

Fi Orukọ Kilasi kun

Bayi iṣeto wa ti pari ati apakan atẹle bii apakan asọye tun rọrun.

Igbesẹ 5: Bẹrẹ apa alaye

Lọ si awọn aṣayan asọye Mo ti samisi ninu apoti pupa ati lẹhinna tẹ ibẹrẹ apakan annoataion bi mo ti samisi ninu apoti alawọ ewe.

Tẹ aworan akọkọ ti o le rii UI yii. Lẹhin ti o rii eyi tẹ aṣayan asọye Afowoyi.

Fi Orukọ Kilasi kun

Lẹhinna ṣafikun id imeeli rẹ tabi orukọ ẹlẹgbẹ ẹlẹgbẹ rẹ ki o le yan iṣẹ naa.

Tẹ aworan akọkọ ti o le rii UI yii. nibi tẹ apoti pupa ki o le yan awoṣe pupọ-polynomial.

Ṣiṣawari nkan nipa lilo yolov8

Lẹhin titẹ apoti pupa, yan awoṣe aiyipada ki o tẹ lori ohun pepeye. Eyi yoo pin aworan naa laifọwọyi. Lẹhinna, tẹ apakan ti o tẹle ki o fipamọ. Iwọ yoo wo apa osi ti a samisi ninu apoti pupa, nibi ti o ti le rii orukọ kilasi naa.

Ṣiṣawari nkan nipa lilo yolov8

tẹ awọn fipamọ&tẹ aṣayan. ṣe alaye gbogbo awọn aworan.

Ṣafikun awọn aworan fun ọna kika YOLOv8. Ni apa ọtun, iwọ yoo rii aṣayan lati ṣafikun awọn aworan ni apakan asọye. Nibi, awọn ẹya meji ni a ṣẹda: ọkan fun awọn aworan asọye ati ọkan fun awọn aworan ti kii ṣe alaye.

  • Ni akọkọ, tẹ apa osi"ṣe alaye” aṣayan lẹhinna fi awọn aworan si dataset.
  • Lẹhinna tẹ atẹle naa "Ṣafikun Awọn aworan".
Ṣiṣawari nkan nipa lilo yolov8

Bayi kẹhin, a ṣẹda dataset ki tẹ aṣayan “Ipilẹṣẹ” ni apa osi lẹhinna ṣayẹwo aṣayan ki o tẹ aṣayan conitune.

Ṣiṣawari nkan nipa lilo yolov8

Lẹhinna o gba UI ti aṣayan pipin dataset nibi o le ṣayẹwo ọkọ oju irin, idanwo ati awọn folda val awọn aworan wọn pin laifọwọyi. ki o si tẹ awọn loke pupa apoti Gbigbe Dataset aṣayan ki o si ṣe igbasilẹ faili zip naa. ọna kika faili zip dabi…

root_file.zip
│
├── test
│   ├── Images
│   └── labels
│
├── train
│   ├── Images
│   └── labels
│
├── val
│   ├── Images
│   └── labels
│
├── data.yaml
└── Readme.roboflow.txt

Igbesẹ 6: Kọ iwe afọwọkọ fun ikẹkọ awoṣe ipin aworan

Ni apakan yii ni akọkọ, o ṣẹda faili Google Collab nipa lilo Drive lẹhinna gbejade data data rẹ. ki o si moute awọn Google Drive lilo Google Collab.

1. Lo aṣẹ yii fun Oke Google Drive

from google.colab import drive

drive.mount('/content/gdrive')

2. Setumo data liana Lo oniyipada Constant.

DATA_DIR = '/content/drive/MyDrive/YoloV8/Data/'

3. Fifi sori ẹrọ package ti o nilo, Fi ultralytics sori ẹrọ

!pip install ultralytics

4. Gbigbe awọn ile-ikawe

import os

from ultralytics import YOLO

5. Fifuye kọkọ-oṣiṣẹ YOLOv8 awoṣe (nibi a ni awoṣe oriṣiriṣi tun ṣayẹwo iwe aṣẹ ti o wa nibẹ o le rii awoṣe oriṣiriṣi)

model = YOLO('yolov8n-seg.pt') 
 # load a pretrained model (recommended for training)

6. Irin Awoṣe

model.train(data='/content/drive/MyDrive/YoloV8/Data/data.yaml', epochs=2, imgsz=640)

# Update the path & and join this line together 

Ko si ṣayẹwo kọnputa rẹ A ṣẹda folda orukọ awoṣe ati pe awoṣe wa ni fipamọ fun asọtẹlẹ ti a fẹ awoṣe yii.

7. Ṣe asọtẹlẹ Awoṣe naa

#Update the path
model_path = '/content/drive/MyDrive/YoloV8/Model/train2/weights/last.pt'
#Update the path
image_path = '/content/drive/MyDrive/YoloV8/Data/val/1be566eccffe9561.png'

img = cv2.imread(image_path)
H, W, _ = img.shape

model = YOLO(model_path)

results = model(img)

for result in results:
    for j, mask in enumerate(result.masks.data):

        mask = mask.numpy() * 255

        mask = cv2.resize(mask, (W, H))

        cv2.imwrite('./output.png', mask)

Nibi o le wo aworan ipin ti wa ni fipamọ.

Ṣiṣawari nkan nipa lilo yolov8

Bayi nikẹhin a le kọ mejeeji wiwa laaye ati awọn awoṣe ipin aworan.

ipari

Ninu bulọọgi yii, a ṣawari wiwa ohun laaye ati ipin aworan pẹlu YOLOv8. Fun wiwa laaye, a ṣe agbewọle awoṣe YOLOv8 ti a ti kọ tẹlẹ ati lo ile-ikawe iran kọnputa, ṢiiCV, lati ṣii kamẹra ati rii awọn nkan. Ni afikun, a ṣẹda ohun elo Streamlit fun wiwo olumulo ti o wuyi.

Nigbamii, a lọ sinu ipin aworan pẹlu YOLOv8. A ṣe agbewọle awoṣe ti a ti kọkọ tẹlẹ ati ṣe ikẹkọ gbigbe lori iwe data aṣa. Ṣaaju si eyi, a ṣawari Roboflow fun asọye dataset, pese yiyan irọrun-lati-lo si awọn irinṣẹ bii LabelImg.

Nikẹhin, a ṣe asọtẹlẹ aworan ti o ni pepeye kan. Bó tilẹ̀ jẹ́ pé ohun tó wà nínú àwòrán náà dà bí ẹyẹ, a tọ́ka sí orúkọ kíláàsì náà “pepeye” fun awọn idi ifihan.

Awọn Iparo bọtini

  • Kọ ẹkọ nipa awọn awoṣe wiwa ohun bii Yiyara R-CNN, SSD, ati YOLOv8 tuntun.
  • Loye ohun elo asọye Roboflow ati ipa rẹ ni ṣiṣẹda awọn ipilẹ data fun awọn awoṣe ipin YOLOv8.
  • Ṣiṣawari wiwa ohun laaye laaye ni lilo OpenCV (cv2) ati Abojuto, imudara awọn ọgbọn iṣe.
  • Ikẹkọ ati imuṣiṣẹ awoṣe ipin kan nipa lilo YOLOv8, nini iriri-ọwọ.

Nigbagbogbo bi Ìbéèrè

Q1. Kini iyatọ laarin wiwa nkan ati ipin aworan pẹlu YOLOv8?

A. Wiwa nkan jẹ idamọ ati wiwa awọn nkan lọpọlọpọ laarin aworan kan, ni igbagbogbo nipa yiya awọn apoti didin ni ayika wọn. Pipin aworan, ni apa keji, pin aworan kan si awọn apakan tabi awọn agbegbe ti o da lori ibajọra ẹbun, n pese oye alaye diẹ sii ti awọn aala ohun.

Q2. Bawo ni YOLOv8 ṣe afiwe si awọn ẹya iṣaaju ti YOLO (fun apẹẹrẹ, YOLOv3)?

A. YOLOv8 ni ilọsiwaju lori awọn ẹya ti tẹlẹ nipa fifi awọn ilọsiwaju pọ si ni faaji nẹtiwọki, awọn ilana ikẹkọ, ati iṣapeye. O le funni ni deede to dara julọ, iyara, ati ṣiṣe ni akawe si YOLOv3.

Q3. Ṣe MO le lo YOLOv8 fun wiwa ohun akoko gidi lori awọn ẹrọ ti a fi sii?

A. YOLOv8 le ṣee lo fun wiwa ohun akoko gidi lori awọn ẹrọ ti a fi sii, da lori awọn agbara ohun elo ati iṣapeye awoṣe. Bibẹẹkọ, o le nilo awọn iṣapeye bii gige awoṣe tabi pipọ lati ṣaṣeyọri iṣẹ ṣiṣe ni akoko gidi lori awọn ohun elo ti o ni agbara.

Q4. Kini awọn anfani ti lilo Roboflow fun asọye dataset akawe si awọn irinṣẹ miiran?

A. Roboflow nfunni awọn irinṣẹ asọye ogbon inu, awọn ẹya iṣakoso dataset, ati atilẹyin fun ọpọlọpọ awọn ọna kika asọye. O ṣe ilana ilana asọye, jẹ ki ifowosowopo ṣiṣẹ, ati pese iṣakoso ẹya, jẹ ki o rọrun lati ṣẹda ati ṣakoso awọn iwe data fun awọn iṣẹ akanṣe iran kọmputa.

iranran_img

Titun oye

iranran_img