Yolo-FastestV2 사용해보신 분 있으신가요?

dog-qiuqiu/Yolo-FastestV2: Based on Yolo's low-power, ultra-lightweight universal target detection algorithm, the parameter is only 250k, and the speed of the smart phone mobile terminal can reach ~300fps+ (github.com)
저번에 라즈베리파이 4 욜로 구동 성공했습니다 프레임 약 1.4~1.8 나오는거 같아요 ㅎㅎ
정말 감사합니다
각설하고,,
해당 깃헙에서 무려 7프레임으로 돌릴 수 있는 초경량 욜로를 찾게되서 해보고 싶은데..

Initialize weights: model/backbone/backbone.pth
Starting training for 100 epochs...
0%| | 0/33 [00:15<?, ?it/s]
Traceback (most recent call last):
File "C:\Yolo-FastestV2\train.py", line 99, in
for imgs, targets in pbar:
File "C:\ProgramData\Anaconda3\lib\site-packages\tqdm\std.py", line 1195, in iter
for obj in iterable:
File "C:\Users\ESP\AppData\Roaming\Python\Python39\site-packages\torch\utils\data\dataloader.py", line 634, in next
data = self._next_data()
File "C:\Users\ESP\AppData\Roaming\Python\Python39\site-packages\torch\utils\data\dataloader.py", line 1346, in _next_data
return self._process_data(data)
File "C:\Users\ESP\AppData\Roaming\Python\Python39\site-packages\torch\utils\data\dataloader.py", line 1372, in _process_data
data.reraise()
File "C:\Users\ESP\AppData\Roaming\Python\Python39\site-packages\torch_utils.py", line 644, in reraise
raise exception
Exception: Caught Exception in DataLoader worker process 0.
Original Traceback (most recent call last):
File "C:\Users\ESP\AppData\Roaming\Python\Python39\site-packages\torch\utils\data_utils\worker.py", line 308, in _worker_loop
data = fetcher.fetch(index)
File "C:\Users\ESP\AppData\Roaming\Python\Python39\site-packages\torch\utils\data_utils\fetch.py", line 51, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "C:\Users\ESP\AppData\Roaming\Python\Python39\site-packages\torch\utils\data_utils\fetch.py", line 51, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "C:\Yolo-FastestV2\utils\datasets.py", line 127, in getitem
raise Exception("s is not exist" label_path)
Exception: C:\Yolo-FastestV2\datasets\train\20230401_160320_jpg.txt is not exist
계속 해결이 안되네요..
라벨 파일을 못찾았다고 하는데 로컬에 있는거 확인했고 train .txt 파일 에도 확인했는데 참..이러네요

roboflow 로 라벨링했고 Yolo darknet 데이터셋 형식으로 다운 받았습니다.

파일 분할 및 데이터셋 이미지 , 라벨 경로 생성 코드 입니다.

from glob import glob
import random

all_img_list = glob('C:\\Yolo-FastestV2\\datasets\\train\\*.jpg') + glob('C:\\Yolo-FastestV2\\datasets\\val\\*.jpg')
test_img_list = glob('C:\\Yolo-FastestV2\\datasets\\test\\*.jpg')

# 각 데이터셋의 비율을 9:1으로 맞춤
train_ratio = 0.9
val_ratio = 0.1 * train_ratio / (1 - train_ratio)

train_val_img_list = [x for x in all_img_list if x not in test_img_list]

random.seed(2000)
random.shuffle(train_val_img_list)

num_train = int(len(train_val_img_list) * train_ratio)
train_img_list = train_val_img_list[:num_train]
val_img_list = train_val_img_list[num_train:]

print(len(train_img_list), len(val_img_list), len(test_img_list))

with open('C:\\Yolo-FastestV2\\datasets\\train.txt', 'w') as f:
    f.write('\n'.join(train_img_list) + '\n')

with open('C:\\Yolo-FastestV2\\datasets\\val.txt', 'w') as f:
    f.write('\n'.join(val_img_list) + '\n')

with open('C:\\Yolo-FastestV2\\datasets\\test.txt', 'w') as f:
    f.write('\n'.join(test_img_list) + '\n')

python train.py --data data/coco.data
실행 명령어 입니다

data를 coco 로 쓰길래 coco로 데이터셋 다시 받아보고했는데

저 맨위에 깃헙 작성자는 이렇게 안내하더라고요 .. 포기해야하나 싶습니다 ㅠ

  • 아래 답변은 OpenAI의 GPT-3.5(ChatGPT) 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

Yolo-FastestV2를 사용하면서 라벨 파일을 찾지 못한다는 오류가 발생하는 것 같습니다. 해당 오류는 utils/datasets.py 파일의 127번째 줄에서 발생하는 것으로 보입니다. 해당 파일을 열어보면, label_path에 해당하는 경로에 파일이 존재하지 않을 때 발생하는 예외 처리입니다.

따라서, 해당 경로에 20230401_160320_jpg.txt 파일이 존재하지 않는 것으로 보입니다. 로컬에는 파일이 존재하지만, 경로가 다른 것은 아닌지 다시 한번 확인해보시기 바랍니다.

또한, 데이터셋을 분할하고 이미지와 라벨 경로를 생성하는 코드가 제공되었습니다. 해당 코드에서는 train.txt, val.txt, test.txt 파일을 생성하는데, Yolo-FastestV2에서는 train.txt 파일만 사용합니다. 따라서, val.txttest.txt 파일은 삭제하시고, train.txt 파일만 사용하시기 바랍니다.

마지막으로, Yolo-FastestV2의 train.py 파일을 실행할 때 --data 옵션으로 사용하는 파일은 coco.data 파일이 아닌, yolo-fastestv2.data 파일입니다. 해당 파일은 Yolo-FastestV2의 data 폴더 내에 존재합니다.

따라서, 다음과 같이 실행하시면 됩니다.

python train.py --data data/yolo-fastestv2.data

  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!

데이터 파일에 그런거 없던데..
코코 데이터랑 이름만 있던데..

글고 로컬에는 train만 두었지만 랜덤으로 섞어서 재분배하고 경로를 텍스트로 저장한겁니다

아 봇이였네..ㅋㅋ

  • 아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

데이터 로더에서 발생한 오류로 보입니다. 오류 메시지를 보면, C:\Yolo-FastestV2\datasets\train\20230401_160320_jpg.txt 파일이 없다고 나와있습니다. 이 문제를 해결하기 위해 다음 단계를 시도해 보세요.

  1. 먼저, 해당 파일이 실제로 존재하는지 확인하세요. 파일 경로에 오탈자가 있는지 확인하고, 필요한 경우 경로를 수정하세요.

  2. train.txt 파일을 열어서, 올바른 경로와 파일명이 포함되어 있는지 확인하세요. 만약 경로가 잘못되었다면, 위에서 작성한 코드를 수정하여 올바른 경로로 변경하세요.

  3. Yolo-FastestV2의 utils/datasets.py 파일을 열어서, 127번째 줄의 raise Exception("s is not exist" label_path) 부분을 다음과 같이 수정해 보세요:

raise Exception(f"{label_path} is not exist")

이렇게 수정하면, 오류 메시지에 정확한 파일 경로가 표시되어 문제를 해결하는 데 도움이 될 것입니다.

  1. 만약 여전히 문제가 해결되지 않는다면, 데이터셋의 경로를 절대 경로에서 상대 경로로 변경해 보세요. 예를 들어, train.txt 파일에 있는 경로를 C:\Yolo-FastestV2\datasets\train\20230401_160320_jpg.txt에서 datasets\train\20230401_160320_jpg.txt로 변경하세요. 이렇게 하면 코드와 데이터셋이 동일한 디렉토리에 있을 때 문제가 해결될 수 있습니다.

위의 단계를 모두 시도해 보시고, 여전히 문제가 해결되지 않는 경우 추가 정보와 함께 질문해 주세요.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!

Yolov8 사용하기로 했습니다!

여기서 나노 버전이 약 4fps나온다고해서 해볼려고요!

다만 저 깃헙에있는 파일들은 확장자도 이상해서

그냥 fps 참고용으로만 봤습니다ㅎㅎ

1개의 좋아요
  • 아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

데이터 로더가 라벨 파일을 찾지 못하는 문제를 해결하기 위해 다음 단계를 확인해 보세요.

  1. 먼저, C:\Yolo-FastestV2\datasets\train\20230401_160320_jpg.txt 파일이 실제로 존재하는지 확인하세요.

  2. C:\Yolo-FastestV2\utils\datasets.py 파일의 127번째 줄에서 발생한 오류를 확인하세요. 이 파일의 LoadImagesAndLabels 클래스의 __getitem__ 메서드에서 라벨 파일 경로를 생성하는 방법을 확인하세요. 아래는 해당 부분의 코드입니다.

def __getitem__(self, index):
    img_path = self.img_files[index % len(self.img_files)].rstrip()
    label_path = self.label_files[index % len(self.img_files)].rstrip()

    # ...
  1. C:\Yolo-FastestV2\data\coco.data 파일을 열어서 train, val, test 경로가 올바르게 설정되어 있는지 확인하세요. 예를 들면 다음과 같이 설정되어 있어야 합니다.
train=C:\Yolo-FastestV2\datasets\train.txt
val=C:\Yolo-FastestV2\datasets\val.txt
test=C:\Yolo-FastestV2\datasets\test.txt
  1. 라벨 파일 경로 문제가 여전히 발생한다면, C:\Yolo-FastestV2\utils\datasets.py 파일의 LoadImagesAndLabels 클래스의 __init__ 메서드에서 img_fileslabel_files 변수를 출력하여 경로가 올바르게 설정되어 있는지 확인하세요.
def __init__(self, path, img_size=416, batch_size=16, augment=False, hyp=None, rect=False, image_weights=False, cache_labels=True, cache_images=False):
    # ...
    self.img_files = img_files
    self.label_files = label_files
    print("img_files:", img_files)
    print("label_files:", label_files)
    # ...

위 단계를 모두 확인한 후에도 문제가 해결되지 않으면 추가 정보를 제공해 주세요. 그러면 문제를 좀 더 정확하게 파악하고 도움을 드릴 수 있습니다.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
  • 아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요! Yolo-FastestV2를 사용하시는데 문제가 발생한 것 같습니다. 오류 메시지를 보면 라벨 파일을 찾지 못하는 것 같습니다. 확인해야 할 몇 가지 사항이 있습니다.

  1. 라벨 파일의 경로가 올바른지 확인하세요.

    • C:\Yolo-FastestV2\datasets\train\20230401_160320_jpg.txt 파일이 실제로 존재하는지 확인해주세요.
  2. 데이터셋 설정 파일을 확인하세요.

    • data/coco.data 파일을 열어서 train, val, test 경로가 올바르게 설정되어 있는지 확인해주세요. 예를 들어:
    classes=80
    train=C:\Yolo-FastestV2\datasets\train.txt
    valid=C:\Yolo-FastestV2\datasets\val.txt
    names=data/coco.names
    
  3. 데이터셋 경로를 절대 경로로 설정하세요.

    • train.txt, val.txt, test.txt 파일에 있는 이미지 경로가 절대 경로로 설정되어 있는지 확인해주세요. 예를 들어, C:\Yolo-FastestV2\datasets\train\20230401_160320_jpg.jpg와 같이 절대 경로로 표시되어야 합니다.

위의 사항들을 확인하시고 문제가 해결되지 않으면 추가 질문을 남겨주세요. 화이팅입니다!


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!