前提
YOLOv8のクイックスタート
(https://docs.ultralytics.com/quickstart/)
に従って、実際に動かしてみようと考えました。
実現したいこと
クイックスタートに記載されているモデルコードのように動かしたいのですが、
現状ではファイルが見つからないとエラーになってしまいます。
しかし、後述の通り別のコードで試すと問題無くファイルを認識します。
発生している問題・エラーメッセージ
python
1AssertionError Traceback (most recent call last) 2Cell In[2], line 1 3----> 1 results = model("https://ultralytics.com/images/bus.jpg",save=True, task="segment") 4 5File D:\Anaconda_envs\envs\yolov8_env\lib\site-packages\ultralytics\yolo\engine\model.py:58, in YOLO.__call__(self, source, **kwargs) 6 57 def __call__(self, source, **kwargs): 7---> 58 return self.predict(source, **kwargs) 8 9File D:\Anaconda_envs\envs\yolov8_env\lib\site-packages\torch\autograd\grad_mode.py:27, in _DecoratorContextManager.__call__.<locals>.decorate_context(*args, **kwargs) 10 24 @functools.wraps(func) 11 25 def decorate_context(*args, **kwargs): 12 26 with self.clone(): 13---> 27 return func(*args, **kwargs) 14 15File D:\Anaconda_envs\envs\yolov8_env\lib\site-packages\ultralytics\yolo\engine\model.py:131, in YOLO.predict(self, source, return_outputs, **kwargs) 16 129 predictor.args.imgsz = check_imgsz(predictor.args.imgsz, min_dim=2) # check image size 17 130 predictor.setup(model=self.model, source=source, return_outputs=return_outputs) 18--> 131 return predictor() if return_outputs else predictor.predict_cli() 19 20File D:\Anaconda_envs\envs\yolov8_env\lib\site-packages\ultralytics\yolo\engine\predictor.py:220, in BasePredictor.predict_cli(self, source, model, return_outputs) 21 218 def predict_cli(self, source=None, model=None, return_outputs=False): 22 219 # as __call__ is a genertor now so have to treat it like a genertor 23--> 220 for _ in (self.__call__(source, model, return_outputs)): 24 221 pass 25 26File D:\Anaconda_envs\envs\yolov8_env\lib\site-packages\torch\autograd\grad_mode.py:43, in _DecoratorContextManager._wrap_generator.<locals>.generator_context(*args, **kwargs) 27 40 try: 28 41 # Issuing `None` to a generator fires it up 29 42 with self.clone(): 30---> 43 response = gen.send(None) 31 45 while True: 32 46 try: 33 47 # Forward the response to our caller and get its next request 34 35File D:\Anaconda_envs\envs\yolov8_env\lib\site-packages\ultralytics\yolo\engine\predictor.py:169, in BasePredictor.__call__(self, source, model, return_outputs) 36 167 model.eval() 37 168 self.seen, self.windows, self.dt = 0, [], (ops.Profile(), ops.Profile(), ops.Profile()) 38--> 169 for batch in self.dataset: 39 170 self.run_callbacks("on_predict_batch_start") 40 171 path, im, im0s, vid_cap, s = batch 41 42File D:\Anaconda_envs\envs\yolov8_env\lib\site-packages\ultralytics\yolo\data\dataloaders\stream_loaders.py:225, in LoadImages.__next__(self) 43 223 self.count += 1 44 224 im0 = cv2.imread(path) # BGR 45--> 225 assert im0 is not None, f'Image Not Found {path}' 46 226 s = f'image {self.count}/{self.nf} {path}: ' 47 228 if self.transforms: 48 49AssertionError: Image Not Found C:\Users\○○○~~\yolov8\bus.jpg 50
該当のソースコード
python
1from ultralytics import YOLO 2 3model = YOLO("yolov8n.pt") 4 5results = model("https://ultralytics.com/images/bus.jpg",save=True, task="segment")
試したこと
Image Not Foundとなっており、エラーに該当している部分が
cv2.imread(path)となっていたため、その方式で画像が読み込めていないのかと思い、
(上記のコードによって既にバスの画像ファイルはダウンロードされていたため)
下記のコードを実行した結果、問題無く読み込めていました)
python
1import cv2 2img = cv2.imread("./bus.jpg") 3print(img) 4 5#出力 6[[[122 148 172] 7 [120 146 170] 8 [125 153 177] 9 ... 10
補足情報(FW/ツールのバージョンなど)
python 3.9.15
ultralytics 8.0.6
opencv-python 4.7.0.68
回答1件