Что такое автомобильный детектор версии 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 г.