Zadaniem przemysłowych systemów wizyjnych (machine vision) jest automatyczna analiza obrazów pobranych przez kamery. Na podstawie rezultatu inspekcji może następować automatyczne usunięcie wadliwych obiektów z linii produkcyjnej, powiadomienie operatora o pojawiających się błędach, zbieranie statystyk produkcji lub dostosowanie parametrów linii. Główne zastosowanie systemów machine vision to kontrola jakości produkcji i zautomatyzowanie linii produkcyjnych.

Na rynku dostępnych jest wiele rozwiązań: począwszy od prostych czujników wizyjnych przez inteligentne kamery po systemy oparte na komputerach przemysłowych. Początkowo tego typu rozwiązania wymagały sporo pracy integratorskiej, by wszystkie komponenty – kamery, obiektywy, oświetlenie, framegrabbery, komputery i programy – odpowiednio dobrać i złożyć w gotowy system. Wprowadzone standardy i zintegrowane systemy znacznie uprościły integrację sprzętową, lecz przez długi czas największym wyzwaniem pozostawało oprogramowanie. Wydajne i elastyczne biblioteki wizyjne wymagały od administratorów dużego doświadczenia oraz bardzo czasochłonnego i podatnego na błędy niskopoziomowego programowania.

Co prawda, na rynku pojawiło się wiele programów umożliwiających szybką konfigurację aplikacji, lecz ich możliwości były mocno ograniczone, co zawężało ich zastosowanie jedynie do prostych, z góry zdefiniowanych aplikacji. Tymczasem większość projektów wymaga dużej elastyczności i możliwości adaptacji programu, często również integracji z istniejącymi systemami. W większości przypadków użytkownik skazany był na czasochłonne i kosztowne prace deweloperskie z wykorzystaniem niskopoziomowych bibliotek.