Что такое автомобильный детектор версии 2.0?

Car Detector 2.0 является преемником моего проекта в конце года с моей командой, на этот раз я добавил функции, которые я не знал, как реализовать, со многими улучшениями.

В первой версии было много проблем:

  • низкая точность.
  • данные не очищены и полны бесполезных изображений.
  • нет извлечения автомобиля, что означает, что он вводит целое изображение, поэтому он не может делать несколько прогнозов автомобилей и не различает автомобили и объекты, не относящиеся к автомобилям.

Начнем с техники

Вот разбивка используемых технологий:

  • Yolos: реализация Yolo на основе трансформатора, которая может похвастаться отличной производительностью, небольшим размером и простотой точной настройки.
  • Huggingface: платформа, которая упрощает доступ к предварительно обученным выводам или тонкой настройке благодаря использованию нескольких библиотек Python.
  • Fastai: библиотека искусственного интеллекта, которая действует как оболочка для библиотек ML, чтобы исключить шаблонный код.
  • Fastapi: API-фреймворк на python, очень производительный, использует новейшие функции python (подсказки типов и модели классов) и прост в использовании.

Обзор новых разработанных функций:

  • Эвакуация нескольких автомобилей
  • Больше информации, включая вероятность и лучшие прогнозы
  • удвоить точность
  • Улучшенная производительность логического вывода
  • меньший объем памяти

Что сделало это сложным?

Мне пришлось понять мой предыдущий код и переделать большую его часть, это одно из наиболее распространенных упражнений, выполняемых разработчиками программного обеспечения, я переопределил класс, который обрабатывает прогноз, и добавил классы данных для проверки данных из моделей, которые также создают хороший слой для сериализации и визуализации.

Однако на практике я столкнулся со многими проблемами:

  • Разделение проекта на части, чтобы мы могли улучшить его и использовать во многих отношениях, потребовало создания классов для прогнозов и разделения функциональности наиболее подходящим образом.
  • Пробуем реализации Yolo: yolov3, yolov4, yolov5, большинство из которых слишком велики для моего приложения.
  • Обработка вывода yolos, в отличие от классической реализации yolo, ограничивающая рамка yolos описывает две противоположные точки примера прямоугольника: (x0:y0, x1:y1).
  • представление данных, как эффективно представлять данные для других частей системы, это требовало использования классов данных и вложения информации, чтобы мы могли сериализовать в любой формат (json, csv, …).
  • Очистка более 4000 классов данных с использованием пользовательских моделей (удаление изображений низкого качества, удаление изображений автомобилей) — это, однако, постоянная проблема, требующая дополнительной работы.
  • Выбрав правильную архитектуру для модели классификации, я попробовал resnet, xresnet и efficienet и обнаружил, что xresnet обеспечивает наилучшую точность и производительность, а также простота архитектуры resnet облегчает отладку модели.

Следующий!

В моем следующем проекте я буду углубляться в LLM и особенно в местные llms и способы, чтобы иметь возможность «разговаривать» с вашими проектами или иметь личного помощника над вашими заметками и файлами!

Заканчивать

Это проект на гитхабе: https://github.com/cryptolake/car_detector_v2

И мой LinkedIn: https://www.linkedin.com/in/dhia-dahmeni-577a42216/

Спасибо за чтение!

Первоначально опубликовано на https://cryptolake.github.io 8 июня 2023 г.