- Сначала создайте набор данных яиц с ограничивающими прямоугольниками (около 1 Кб, затем используйте увеличение, чтобы сделать еще несколько тысяч). Вы можете использовать следующие инструменты для аннотирования:
https://github.com/developer0hye/Yolo_Label (прекрасно работает, но только для windows)
https://github.com/AlexeyAB/Yolo_mark
https://github.com/heartexlabs/label-studio (это более сложный инструмент аннотации для многих других задач)
Поскольку это встроенное решение, и яйца будут двигаться, вам нужно что-то с хорошим FPS, а также с разумной картой. Из моих экспериментов со многими моделями обнаружения объектов я обнаружил, что yolov3 (dar knet) является наиболее стабильным.
Я бы предложил go с dar knet YOLO, что написанный на C ++, вам не нужно было бы писать какой-либо основной код, он будет быстрым и точным.
https://pjreddie.com/darknet/yolo/
Используйте этот репозиторий, если вы Linux https://github.com/pjreddie/darknet
Используйте этот режим, если вы используете Windows https://github.com/AlexeyAB/darknet
Перед тренировкой вам нужно найти оптимальный размер привязки для вашего набора данных. Я написал простое k-средство, чтобы найти размер привязки в любом yolo-совместимом наборе данных.
https://github.com/zabir-nabil/yolov3-anchor-clustering
Я провел небольшую настройку (например, отправку массивов OpenCV / numpy непосредственно в модель), чтобы ускорить работу API dar knet python на сервере (сервер модели tenorflow с REST и gRP C). Я также написал flask сервер для него. Вы можете найти его здесь -
https://github.com/zabir-nabil/tf-model-server4-yolov3
Об разрешении изображения: Размер по умолчанию для yolov3 равен (416, 416), которого должно быть достаточно для твой случай. Таким образом, вы должны делать снимки той же / аналогичной камерой, которую вы будете использовать в реальной среде разработки. Пи-камеры должно быть достаточно, вы также можете использовать более качественные камеры, но в конце вы должны изменить их размер до (416 416).
Это проблема двух классов, поэтому для положительного класса вам нужно немного больше изображений. Вот приблизительная оценка того, как вы можете генерировать образцы. Допустим, диапазон вашей модели подсчета яиц будет 0 - 25.
20% изображений с 0 яйцами. Остальные 80% будут формировать несколько равномерное или плоское гауссово распределение, если значение 80% = = 1000 изображений, количество изображений с 1 яйцом будет 1000 / (диапазон) = 1000 / (25-1 + 1) = 1000/25 = 40, то же самое для других (2-25).
Для яркости, контраста, освещения вам следует просто go с тем, который будет очень близок к реальному сценарию развертывания, а остальное позаботится об увеличении. Yolov3 очень прочный, поэтому вам не нужно слишком беспокоиться о фоновом шуме.
Нет большой разницы, если вы используете разные форматы изображений, обычно .jpg дает вам небольшой размер файла, поэтому его легко хранить.