INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Performance NI Vision vs OpenCV



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

24.08.2012, 08:31
Beitrag #1

wolfmichael Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Aug 2007

8.2.1, 8.5.1, 2013 FullDev+Vision+AppBuilder
2007
DE

09599
Deutschland
Performance NI Vision vs OpenCV
Hallo Gemeinde,

trotz Nutzung der Suchfunktion bin ich noch nicht zu einer Antwort vorgedrungen, daher die Frage: hat sich schon mal jemand mit einem Vergleich der Performance zwischen NI Vision (Version 8.5) und OpenCV (z.b. V2.4xx) beschäftigt ?

Konkret geht es mir um die Abschätzung, ob es sich lohnt, eine zeitkritische Filterfunktion (Median-Filter an U8-Grayscale 2048*2048 Pixel mit 5x5-Kernel, dauert momentan ca. 600 ms) unter Nutzung von Open CV aufzusetzen, möglicherweise nutzt NI einen anderen Sortieralgorithmus als in OpenCV implementiert für die Medianfilterung am Teilarray des Kernels.

Für mich wäre das Erstellen einer DLL eben etwas neues - wenn ich das fliessend könnte, wäre ich ja schliesslich nicht bei LV gelandet (ja, ich höre schon die Rufe "Ketzer !"....O)
VG Michael

PS: unterscheiden sich die Laufzeiten von NI Vision 8.5 von der späterer Versionen ? Fragen, Fragen...

--------------------------------------------------------
...und immer auf den String achten...
--------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.08.2012, 08:50
Beitrag #2

b.p Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 197
Registriert seit: Oct 2010

2009-14
-
DE_EN


Sonstige
RE: Performance NI Vision vs OpenCV
Nur in Kürze:

# Laufzeiten von Vision unterscheiden sich krass nach Hardware (Cache, ..), Memory Handling (wo werden die IMAQ Create aufgerufen - da kann man viel "Billig" optimieren) und auch nach Version. (Profiling im Vision Assistant ist da ganz interessant, schon probiert?)
# 600ms erscheint mir als krass langsam. Aber ein 5x5 Kernel von dem ebenso langsamen Medianfilter ist nun mal groß - ist das wirklich nötig, oder gibt es Alternativen? (Willst du mal was an Probedaten posten) Kann man per Hand parallelisieren (2048*2048 passt in der Regel nicht in den L2-Cache.. 1024*1024 uU schon.) - oder was hast du für Hardware?
# ADVision schon ausprobiert?

Grüße,
Birgit
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2012, 09:16
Beitrag #3

wolfmichael Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Aug 2007

8.2.1, 8.5.1, 2013 FullDev+Vision+AppBuilder
2007
DE

09599
Deutschland
RE: Performance NI Vision vs OpenCV
Hallo Birgit, danke für die fixe Antwort.

Die Belegung des Speichers erfolgt nicht für jedes geladene Bild neu:

- Create ausserhalb einer Eventstruktur (Image wird nicht nach jedem Durchlauf disposed)
- LoadImage in der Eventstruktur, Filterung, Kantenfindung mittels Sobel.... (Filterung notwendig, da Bildqualität nicht optimal (Zeilenkamera), aber durch Fremdsystem festgelegt, und die Kantenfindung sonst am Rauschen greift (gesuchte Kontraste im Bild nur unwesentlich größer als Fehler durch Rauschen), Partikelanalyse etc.

Die Zeiten der einzelnen VIs und SubVI's wurden mit dem Profiler von LV bestimmt und sind noch auf einer CPU gerechnet, Teilung des Bildes in zwei Teilbilder und Filterung in 2 Threads brachte eine Laufzeitverringerung auf ca. 500 ms (SubVI's wurden alle Ablaufinvariant eingestellt, mit Kopie für jede Instanz), ich werde das noch für QuadCore optimieren (Zielsystem Quadcore XEON), momentan einfacher, betagter QuadCore Core2 des Testsystems. Auf dem Zielsystem dauert das ganze natürlich nur ca. 400 ms, aber mir gehts um die prinzipielle Frage. Alle anderen Bildoperationen laufen im Gegnsatz zur Filterung im einstelligen ms-Bereich ab, also denke ich, das ich nicht ganz suboptimal herangehe.

Danke für die Antwort !

VG Micha

VG Micha

ADVision habe ich noch nicht probiert, OpenSource ? Lizenzfrei ?

--------------------------------------------------------
...und immer auf den String achten...
--------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2012, 10:29
Beitrag #4

b.p Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 197
Registriert seit: Oct 2010

2009-14
-
DE_EN


Sonstige
RE: Performance NI Vision vs OpenCV
Gut, das klärt die Frage, ob die "einfachen" Optimierungsstrategien bekannt sind :-)

# ADVision ist ein freies TOolkit (http://vi-lib.com/) für Vision. Basiert auf OpenCV , nimmt die GPU und kann einen Blick wert sein.
# EIn Benchmarking hab ich noch nicht gemacht, falls du aber was schreibst (generell, ein gutes Interface zwischen OpenCV und LV), wär ich dir sehr, sehr dankbar und würde da gerne auch was in Richtung OpenSource mitmahcen.
# Per Hand parallelisieren würd ich auf jeden Fall.

Grüße,
Birgit
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2012, 11:27
Beitrag #5

wolfmichael Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Aug 2007

8.2.1, 8.5.1, 2013 FullDev+Vision+AppBuilder
2007
DE

09599
Deutschland
RE: Performance NI Vision vs OpenCV
Es ist einiges bekannt, aber sicher noch längst nicht alles O). Die Parallelisierung von Hand werd ich weiter betreiben, solange noch genug CPU-Zeit für die externe, zeitkritische TCP/IP-Kommunikation mit anderen Rechnern im Gesamtkonstrukt zur Verfügung steht, nicht das mir eine besetzte CPU dann die Reaktionsfähigkeit des Systems zerstört.

Ich werd mich mal mit ADVision beschäftigen, wenn es nicht schon daran scheitert, das wir hier auf LV8.5.1 festsitzen und ADVision nach eigenen Angaben nur bis 2009 herunter verfügbar ist. Dann wäre nämlich auch das Thema Rechnen auf GPU bei mir schon lange angegangen, aber die ab 2009 in LV vorhandenen CUDA-Tools bleiben mir solange auch verschlossen (da schliesst sich wieder der Kreis, das ich noch nicht in der Lage bin, mit dem CUDA-Toolkit von NVIDIA ausserhalb von LabVIEW DLL's zu erstellen und diese dann in LV 8.5.1 zu benutzen). Klingt auf jeden Fall verlockend, wobei hier sicher jede menge Stolperfallen lauern, die das Rechnen auf GPU mit sich bringt.

Ich werd mal dranbleiben und falls sich Ergebnisse zeigen, diesen Thread dann fortsetzen.

Danke Dir !

VG Micha

--------------------------------------------------------
...und immer auf den String achten...
--------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2012, 16:39
Beitrag #6

b.p Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 197
Registriert seit: Oct 2010

2009-14
-
DE_EN


Sonstige
RE: Performance NI Vision vs OpenCV
Uff - klingt so wie eines der Probleme, die ich habe, krieg partout nicht einen 5x5 Highlight-Filter durch was schnelleres ersetzt. (Im Highspeedbereich. 7ms für VGA-Auflösung sind eine Ewigkeit.) Und das mit den Lizenzen kenn ich auch :-). (Vision 2012 kann 3D!)

Da ich keine Ahnung hab, was für eine Art Rauschen du mit dem Median bekämpfen willst, hast du
- kontraharmonische Filter?
- Mittelwert aus Min und Max (Midpoint Filter)
- generell, Min / Max-Filter (ich find die oft eine gute Alternativen zu Median)
probiert? Recht schnell zum Testen gehen auch noch Kombinationen aus lokal adaptiven Thresholds + Edge Detection.

Nicht, dass ich dich von der OpenCV Bridge abhalten will.ADVision ruft eigentlich nur DLLs auf.. Wenn du also mal mit ner neueren Version (Evaluierung, wenn du dein System nicht zerrupfen willst, mit VM) öffnen würdest, und anschauen was drinnen ist..
Halt mich auf jeden Fall am Laufenden, das Thema interessiert mich auch,
Birgit
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  LabView & OpenCV gottfried 0 4.421 19.01.2019 16:59
Letzter Beitrag: gottfried
  Problem Image from OpenCV to LabView Xeno1987 2 7.393 11.03.2016 13:58
Letzter Beitrag: rolfk
  IVIsion / OpenCV gottfried 2 5.444 30.04.2013 10:32
Letzter Beitrag: jg
Sad Bildverarbeitung mit Vision (Performance?) Cluster5020 4 6.634 13.08.2011 09:02
Letzter Beitrag: Y-P
  NI Vision Builder Projekt -> NI Vision Developemnet bolle 8 12.724 08.01.2009 09:07
Letzter Beitrag: bolle
  Vision und Vision ACQ Runtime Lizenzen gottfried 4 7.376 06.08.2008 20:44
Letzter Beitrag: Curtis Newton

Gehe zu: