В настоящее время я работаю над программой, которая могла бы помочь в моей работе. Я пытаюсь использовать машинное обучение для целей классификации. Проблема в том, что у меня недостаточно образцов для обучения модели, и я стараюсь избегать увеличения из-за проблем с оборудованием (недостаточно оперативной памяти) как на ноутбуке моей компании, так и на Google Collab. Поэтому я решил попробовать как-то нормализовать положение элементов, чтобы различия были видны для машины даже при небольшом количестве разных сэмплов. К сожалению, сейчас я изо всех сил пытаюсь нормализовать эти фотографии.
Элементы 1а и 1б одного типа и 2а-2б одного типа. Есть ли способ как-то нормализовать положение этих изображений (что-то вроде положения 0), что помогло бы алгоритму увидеть различия между ними? Я попытался использовать cv2.minAreaSquare, чтобы получить квадратное положение, повернуть их и обрезать ненужную область, но, к сожалению, эти элементы могут иметь разную ширину, поэтому после их уменьшения контуры деформируются неравномерно. Затем я пытался получить ось симметрии и использовать ее для правильной обрезки после поворота, но все же результаты не оправдали моих ожиданий. Я думал добавить больше точек нормализации, например:
И использование этих точек нормализует положение остальных моих элементов, но Perspective Transform требует всего 4 точки, а с 4 точками это тоже не очень хорошая методология. Может быть, вы, ребята, знаете, как переместить эти элементы, чтобы они заняли одинаковое положение.