Sono un programmatore C ++ intermedio. Ho bisogno di qualche conoscenza matematica per costruire applicazioni per computer usando openCV?
Sono un programmatore C ++ intermedio. Ho bisogno di qualche conoscenza matematica per costruire applicazioni per computer usando openCV?
Ho fatto qualche tracciamento con openCV, questo non richiede un'abilità matematica elevata. Tuttavia dovrai acquisire alcune nozioni di base su prestazioni e tecniche come:
Threading / Concorrenza
Di solito si memorizzano i dati dall'hardware in un buffer che viene aggiornato in modo asincrono dal resto dell'applicazione. Questo perché l'hardware di solito inviava i dati a una velocità fissa.
Ad esempio un Kinect invierà 30 volte i propri dati al massimo per secondi. Ciò significa che puoi già perdere quasi 30ms in attesa di dati dal tuo hardware se lo fai in modo sincrono, perché il driver è stato implementato come una lettura sincrona. Copia un buffer di dati con openCV è inferiore a 1 ms.
Inoltre, se vuoi creare un'interfaccia utente sulla tua applicazione, vorrai avere quell'interfaccia utente in esecuzione in un thread diverso rispetto all'elaborazione dell'immagine. Questo significa che dovrai usare qualcosa per condividere i dati tra questi due thread. Una semplice mutua esclusione dovrebbe essere ancora sufficiente.
Elaborazione di immagini
Buffering: calcola il processo su un buffer (detto anche doppio / triplo buffering).
Rappresentazione dell'immagine: alcuni algoritmi funzioneranno meglio su RGB / TLS / Scala di grigi / Immagine binaria, una lettura veloce può aiutarti a capire perché.
Sottostringa di fondo: se lo sfondo è stabile, dovresti usare questo. Fondamentalmente si sottraggono pixel per pixel la media degli ultimi valori dei pixel. È possibile che openCV o alcuni siti di terze parti lo diano già adesso.
Apprendimento automatico
Il riconoscimento dei modelli inizia sempre con una fase di apprendimento. Se hai bisogno di avere il tuo computer per imparare qualcosa devi già:
Come ho detto nella sezione Elaborazione delle immagini, openCV ha già un algoritmo di rilevamento dei volti pronto per essere utilizzato. Ciò significa che openCV ha già incorporato un database di facce su cui imparare.
no, non è necessario alcun calcolo matematico per utilizzare la libreria OpenCV. Finché hai familiarità con C ++ puoi creare programmi che lo utilizzano, viene fornito con varie applicazioni di esempio che puoi facilmente creare dimostrando gran parte delle sue funzionalità.
L'unica area di cui dovrei essere prudente è la documentazione, è un riferimento piuttosto che un tutorial e molti risultati delle ricerche web non tengono la mano nello sviluppo del codice openCV. Quindi hai bisogno di un po 'di pazienza e un'intensa determinazione per capire un po' di cose quando ti allontani un po 'dal sentiero battuto.