Я работаю над проектом по обнаружению и обходу препятствий. Было указано, что на пути будут препятствия кубической/полукубовой или сферической/полусферической формы, которые необходимо обнаружить и избежать.
Я использовал наборы данных изображений из Roboflow для сфер и кубоидов. . Когда я попытался объединить два набора данных в Roboflow в качестве третьего набора данных, он мне не позволил. Я даже модифицировал файл аннотаций для второго класса и вручную объединил оба набора данных в одну папку, экспортировав его zip для обучения пользовательской модели YOLO v5 на Ultralytics, но модель не обладает необходимой точностью и скоростью даже после изменения. различные варианты YOLO v5. Он продолжает обнаруживать несуществующие сферы, не рисуя ограничивающую рамку. А когда он даже обнаруживает правильный кубоид, это занимает много времени, и его приходится размещать очень близко к камере моего ноутбука.
Как решить эту проблему?
Прикрепляю код, который использовал для изменения файла аннотаций:
import os
def modify_annotations_in_folders(base_folder_path, class_id_map):
# Folders: train, test, and valid
folders = ['train', 'test', 'valid']
# Loop through each folder
for folder in folders:
folder_path = os.path.join(base_folder_path, folder, 'labels') # Assuming labels are stored in 'labels' subfolder
if os.path.exists(folder_path):
print(f"Processing folder: {folder_path}")
# Loop through each file in the folder
for filename in os.listdir(folder_path):
if filename.endswith(".txt"): # Only process text files
file_path = os.path.join(folder_path, filename)
# Read the file
with open(file_path, 'r') as file:
lines = file.readlines()
# Modify the first character (class ID) of each line
new_lines = []
for line in lines:
parts = line.strip().split() # Split line by spaces
class_id = parts[0] # Class ID is the first part
if class_id in class_id_map:
new_class_id = class_id_map[class_id] # Map the old class ID to new one
parts[0] = new_class_id # Update class ID
new_lines.append(" ".join(parts)) # Rebuild the line
# Write the modified lines back to the file
with open(file_path, 'w') as file:
file.write("\n".join(new_lines) + "\n")
print(f"Modified all annotations in {folder} folder.")
else:
print(f"Folder {folder_path} does not exist!")
base_folder_path = "D:/Rover/Obstacle Avoidance/box.v2i.yolov5pytorch" # Path to the folder containing 'train', 'test', and 'valid' folders
class_id_map = {"0": "1"} # Example: Mapping of old class IDs to new ones
modify_annotations_in_folders(base_folder_path, class_id_map)
Подробнее здесь: https://stackoverflow.com/questions/790 ... -detection
Проблема с объединением наборов данных изображений для обнаружения объектов. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Лучшая версия TensorFlow версии и обнаружение объектов для обнаружения объектов в Windows
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-