Melhorando o algoritmo de reconhecimento de latas de Coca-Cola: como aumentar a precisão?
Olá a todos! Sou um desenvolvedor C++ iniciante e estou trabalhando em um projeto de reconhecimento de latas de Coca-Cola em imagens. Estou usando OpenCV. Atualmente, tenho um algoritmo simples que busca contornos e tenta combiná-los com um padrão por cor e forma. Mas a precisão é terrível — em um conjunto de teste de 50 imagens, apenas 30-40% das latas são reconhecidas corretamente. Os problemas surgem com iluminação variada, rotações da lata, presença de reflexos ou oclusão parcial.
Aqui está meu código atual (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 a cor vermelha da lata (dois intervalos devido às peculiaridades do 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;
// Busca