تحسين خوارزمية التعرف على علبة Coca-Cola: كيف نزيد الدقة؟
مرحبًا بالجميع! أنا مطور C++ مبتدئ وأعمل على مشروع للتعرف على علب Coca-Cola في الصور. أستخدم OpenCV. حاليًا لدي خوارزمية بسيطة تبحث عن contours وتحاول مطابقتها مع نموذج مرجعي بناءً على اللون والشكل. لكن الدقة سيئة جدًا — في مجموعة اختبار مكونة من 50 صورة، يتم التعرف بشكل صحيح على 30-40% فقط من العلب. تظهر المشكلات عند اختلاف الإضاءة، أو دوران العلبة، أو وجود انعكاسات ضوئية، أو تداخل جزئي.
إليك الكود الحالي (مبسط):
```cpp
#include
#include
int main() {
cv::Mat img = cv::imread("test.jpg");
cv::Mat hsv;
cv::cvtColor(img, hsv, cv::COLOR_BGR2HSV);
// أقنعة للون الأحمر للعلبة (نطاقان بسبب خصائص 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;
// البحث عن
}```