YOLOv8をAnacondaの仮想環境で使う
conda create -n yolov8 python=3.11 conda activate yolov8 mkdir yolov8 cd yolov8 git clone https://github.com/ultralytics/ultralytics.git cd ultralytics/ pip install -r requirements.txt pip install ultralytics cd ..
sample code
import numpy as np import plotly.express as px import plotly.graph_objects as go from ultralytics import YOLO # モデルの読み込み model = YOLO('yolov8n-seg.pt') number_of_classes = len(model.names) colors = px.colors.sample_colorscale("hsv", [n/(number_of_classes-1) for n in range(number_of_classes)]) # テスト filename = 'https://ultralytics.com/images/bus.jpg' results = model( filename, save=True, save_txt=True, save_conf=True ) # テスト結果の描画 for i, result in enumerate(results): image = result.orig_img[..., ::-1] fig = px.imshow(image, color_continuous_scale='gray') fig.update_layout(coloraxis_showscale=False) # 検出結果の取得 number_of_objects = len(result.masks.xy) print(f'検出した物体の総数: {number_of_objects}') object_classes = result.boxes.cls.int().tolist() object_confidences = result.boxes.conf.tolist() # 検出した物体一つ一つをプロット for j, mask in enumerate(result.masks.xy): print(f' {j}番目の検出物体') print(f' クラス: {model.names[object_classes[j]]}') print(f' 信頼度: {object_confidences[j]}') fig.add_trace( go.Scatter( x=mask[:, 0], y=mask[:, 1], marker=dict( color=colors[object_classes[j]], ), name=f'{model.names[object_classes[j]]}: {object_confidences[j]}', mode='lines', ) ) fig.show()