Mejora del algoritmo de reconocimiento de latas de Coca-Cola: ¿cómo aumentar la precisión?
¡Hola a todos! Soy un desarrollador principiante de C++ y estoy trabajando en un proyecto de reconocimiento de latas de Coca-Cola en imágenes. Uso OpenCV. Actualmente tengo un algoritmo simple que busca contornos e intenta emparejarlos con un patrón por color y forma. Pero la precisión es terrible: en un conjunto de prueba de 50 imágenes, solo se reconoce correctamente el 30-40% de las latas. Los problemas surgen con diferentes iluminaciones, rotaciones de la lata, presencia de reflejos o superposición parcial.
Aquí está mi código actual (simplificado):
```cpp
#include
#include
int main() {
cv::Mat img = cv::imread("test.jpg");
cv::Mat hsv;
cv::cvtColor(img, hsv, cv::COLOR_BGR2HSV);
// Máscaras para el color rojo de la lata (dos rangos debido a las características de HSV)
cv::Mat mask1, mask2;
cv::inRange(hsv, cv::Scalar(0, 70, 50), cv::Scalar(10, 255, 255), mask1);
cv::inRange(hsv, cv::Scalar(170, 70, 50), cv::Scalar(180, 255, 255), mask2);
cv::Mat mask = mask1 | mask2;
// Búsqueda de