Has anybody done some programming with the Allied Vision Technologies (AVT) VIMBA API for cameras?

Has anybody done some programming with the Allied Vision Technologies (AVT) VIMBA API for cameras?
I've started to port our software from their legacy Universal Package to VIMBA, but since they have dropped their Delphi support, I now have to port the C API, which is not much fun. So far I got a test program running that accesses a GigE camera and stores the pictures as a MJPEG file. That's quite a lot, given that I started from scratch.

Comments

  1. Ich kann nicht sagen wie viele Kamera Treiber ich angepasst habe und deren unterschiedlichen Versionen Matrix, Kappa, Tucsen, ABS, Euresys, PTGrey, SBIG, ImagingSource, NET ... Bei gut geschrieben Treiber eine oder zwei Wochen. Bei einem Hersteller habe ich dann mal einen Unittest geschrieben, damit sie sehen können, was beim Treiber nicht klappt. Die größten Probleme hatten wir dann bei Langzeitbelichtungen. Trotz Pelitier kamen helle Bereiche rein. Für das Abschalten der Verstärker gab es dann neue API Aufrufe. Und dann vergessen sie gern alle Threads zu schließen, wenn man den Treiber wieder freigibt. In 28 Jahre Videobildauswertung ist mir schon vieles vorgesetzt worden.

    Wofür setzt ihr eure Kameras ein?

    ReplyDelete
  2. Yes of course, we use VIMBA C API since 1 year.

    What kind of software do you develop?
    What would you like to know?

    ReplyDelete
  3. Thomas Bornhaupt wir machen Straßenzustandserfassung. D.h. unter anderem jeden Meter der Befahrung ein Bild von bis zu 8 Kameras. Drei davon fotografieren die Strasse senkrecht von oben, die restlichen in und gegen die Fahrtrichtung.

    ReplyDelete
  4. Davide Visconti our software is used for road inspection. Each of our vehicles has up to 8 cameras that take a picture every metre. Three are mounted downward facing, the others are looking in various directions.
    What is your experience regarding the stability of VIMBA? Are there any Delphi translations of the header files available? Do you also use their conversion API?

    ReplyDelete
  5. Jeroen Wiert Pluimers only for the first step. Many things are in the compiler options. integer 2 or 4 bytes, Byteoder, cdecl, ... Some developers does not know there compiler and you must find it by your self.

    ReplyDelete
  6. Thomas Mueller Ihr macht also ISV: Invert Street View.
    Geht ihr auch in UV oder IR? Bei IR konnten wir sogar űbermalte Wagonkennzeichen erkennen.

    ReplyDelete
  7. Thomas Bornhaupt nein, bei uns kommen nur Kameras für sichtbare Wellenlängen zum Einsatz (wobei man darüber sicherlich diskutieren könnte, denn ein gewisser Infrarot-Anteil ist auch dabei). ISV war mir bisher als Begriff unbekannt. Es geht dabei vor allem um die Erkennung von Straßenschäden: Risse, Verfärbungen, die auf Ausmagerungen des Materials hinweisen, Verformungen (die allerdings nicht per Kamera erfasst werden), Unebenheiten, Griffigkeit etc. In Deutschland und auch diversen anderen Ländern, werden solche Befahrungen alle paar Jahre durchgeführt, um so u.a. Langzeitstatistiken zu den Veränderungen erstellen zu können. Das betrifft vor allem die Bundesstraßen und Autobahnen, bei Landes- und Kreisstraßen, oder sogar in Städten passiert das seltener.

    ReplyDelete
  8. Jeroen Wiert Pluimers doesn't help much, really. There aren't that many header translations to do and I have done most of them already. OK, there might be bugs, of course, which such a translation tool might not generate.
    I'll have to revisit these translations anyway. I don't like the many pointer type parameters they currently contain and will change some to var or out parameters. Also, I will eventually write an OO wrapper for the API to get rid of those handles.

    ReplyDelete
  9. Thomas Mueller Jeroen Wiert Pluimers I wrote a OO wrapper to my own dlls and inside this dll I wrote any hack to get a quick and dirty result with the camera driver. I have a dummy dll, so I can test my programs without a camera.

    ReplyDelete
  10. Thomas Mueller bei ISV war das witzbit gesetzt. Viele Kameras auf einem Auto da kam bei mir sofort der Gedanke Google Street View. Nur das es irgend wie in die entgegengesetzte Richtung geht.

    ReplyDelete
  11. Thomas Bornhaupt Es wäre nicht das erste Mal, dass ich irgendeinen Fachbegriff nicht kenne. Ich habe mich mal bei einer Besprechung bei Bayer blamiert, als ich fragte, was "GLP" (Good Laboratory Practice) bedeutet. Mein Chef war nicht begeistert, beim Kunden hat mir das keiner krumm genommen. (Es gibt dann auch noch GMP = Good Manufacturing Practice und allgmein GxP = Good Practice. Bullshit Bingo vom Feinsten.)

    ReplyDelete
  12. Wir liefern die Bilder zwar nur an den Auftraggeber (und da auch nur einen Bruchteil), allerdings müssen wir seit zwei Jahren bei vielen Aufträgen auch Gesichter und Kennzeichen unkenntlich machen (Hamburg hat damit angefangen). Hintergrund ist zum einen die DSGVO, zum anderen aber auch, dass die Bilder bei den Behörden wegen irgendeines Gesetzes öffentlich verfügbar gemacht werden müssen. Insofern ist es nicht völlig anders als bei Google Street View. Wir liefern allerdings deutlich weniger Bildmaterial als Google.

    ReplyDelete
  13. Thomas Bornhaupt that's a very smart way to approach integration testing.

    ReplyDelete
  14. GLP und GMP schlage ich mich im Userinterface immer mehr herum, da durch abgesicherte Vorgänge das Wissen des Personals immer mehr sinkt. Bei der Spar-Applikation muss man noch selber an den Ringen des Objektives drehen. Es kommt nicht selten vor, dass sich die Kunden beschwert haben: Die Kamera wäre so Licht schwach, man müsse so lange belichten. Das ist kein Wunder, wenn die mit der Blende das Bild scharf stellen in dem sie die Tiefenschärfe nutzen. Wenn man denen nun den Fokus Ring erklärt, geht ein Raunen durch das Publikum. Its Magic.

    Das Wissen ist immer Senkrechter. Es kein ist Wunder, wenn die BASF behauptet, dass nur noch mit einem Expertenteam ein Produkt entwickelt werden kann.

    ReplyDelete
  15. Thomas Mueller Vimba 1 was pretty unstable. Also the "VimbaViewer" application released by Allied developed in Qt was very buggy, but since the 2th release (Vimba 2) it's more stable.
    Yes I have translate the header C file into a delphi wrapper.

    ReplyDelete

Post a Comment