1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Harris-X-Yolov5-deepsort-inference

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Внимание:

В этом проекте используется версия Yolov5 3.0. Для самой новой версии 5.0 перейдите по ссылке:

https://github.com/Sharpiless/yolov5-deepsort

Примечание: В новой версии добавлена функция отображения классов

Краткое описание проекта:

Используется YOLOv5+Deepsort для отслеживания и подсчета автомобилей и пешеходов. Код упакован в класс Detector, что облегчает его встраивание в собственные проекты.

Адрес кода (ваше звездание приветствуется):

https://github.com/Sharpiless/Yolov5-deepsort-inference

Конечный результат: Вставьте изображение здесь

YOLOv5 детектор:

class Detector(baseDet):

    def __init__(self):
        super(Detector, self).__init__()
        self.init_model()
        self.build_config()

    def init_model(self):

        self.weights = 'weights/yolov5m.pt'
        self.device = '0' if torch.cuda.is_available() else 'cpu'
        self.device = select_device(self.device)
        model = attempt_load(self.weights, map_location=self.device)
        model.to(self.device).eval()
        model.half()
        # torch.save(model, 'test.pt')
        self.m = model
        self.names = model.module.names if hasattr(
            model, 'module') else model.names

    def preprocess(self, img):

        img0 = img.copy()
        img = letterbox(img, new_shape=self.img_size)[0]
        img = img[:, :, ::-1].transpose(2, 0, 1)
        img = np.ascontiguousarray(img)
        img = torch.from_numpy(img).to(self.device)
        img = img.half()  # half-precision
        img /= 255.0  # image normalization
        if img.ndimension() == 3:
            img = img.unsqueeze(0)
```        return img0, img

    def detect(self, im):

        im0, img = self.preprocess(im)

        pred = self.m(img, augment=False)[0]
        pred = pred.float()
        pred = non_max_suppression(pred, self.threshold, 0.4)

        pred_boxes = []
        for det in pred:

            if det is not None and len(det):
                det[:, :4] = scale_coords(
                    img.shape[2:], det[:, :4], im0.shape).round()

# Трекер DeepSort:

```python
deepsort = DeepSort(cfg.DEEPSORT.REID_CKPT,
                    max_dist=cfg.DEEPSORT.MAX_DIST, min_confidence=cfg.DEEPSORT.MIN_CONFIDENCE,
                    nms_max_overlap=cfg.DEEPSORT.NMS_MAX_OVERLAP, max_iou_distance=cfg.DEEPSORT.MAX_IOU_DISTANCE,
                    max_age=cfg.DEEPSORT.MAX_AGE, n_init=cfg.DEEPSORT.N_INIT, nn_budget=cfg.DEEPSORT.NN_BUDGET,
                    use_cuda=True)

Вызовите метод self.update для обновления результатов трекинга.

Запуск демонстрации:

python demo.py

Обучение собственной модели:

См. мою другую статью:

Обучение собственной модели YOLOv5 (от настройки окружения Windows до развертывания модели)

После обучения сохраните модель в папке weights.

Вызов API:

Создание детектора:

from AIDetector_pytorch import Detector

det = Detector()

Вызов метода детекции:

func_status = {}
func_status['headpose'] = None

result = det.feedCap(im, func_status)

Здесь im - это изображение в формате BGR.

Возвращаемый result - это словарь, result['frame'] возвращает отображаемое изображение.

Подписка на мой канал:

Если вас заинтересовало, подпишитесь на мой канал - "Доступный глубокий обучение":Здесь должна быть вставка изображения

Связаться с автором:

Bilibili: https://space.bilibili.com/470550823

CSDN: https://blog.csdn.net/weixin_44936889

AI Studio: https://aistudio.baidu.com/aistudio/personalcenter/thirdview/67156

Github: https://github.com/Sharpiless

При использовании следует указать лицензию GNU General Public License v3.0. Оригинальная часть кода для цели детекции взята из: https://github.com/ultralytics/yolov5/

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Основанная на PyTorch реализация YOLOV5+SORT для распознавания и слежения за объектами Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Harris-X-Yolov5-deepsort-inference.git
git@api.gitlife.ru:oschina-mirror/Harris-X-Yolov5-deepsort-inference.git
oschina-mirror
Harris-X-Yolov5-deepsort-inference
Harris-X-Yolov5-deepsort-inference
master