Die Qual der Wahl

Die Qual der Wahl

Intelligente Kamera, Embedded System oder PC?

Bildverarbeitung ist spannend aufgrund ihrer Vielfalt und unendlich vielen Ideen. Sie kann sich aber auch durch die gewählte Plattform als Sackgasse erweisen.
Die Gründe dafür sind vielfältig:

  • • Intelligente Kamera: Für eine Anwendung steht zuwenig Rechenleistung zur Verfügung. Die geforderte Geschwindigkeit oder Genauigkeit wird nicht erreicht.
  • • PC: Die Plattform ist zu komplex für die Anwendung. Es läuft alles, aber der Wettbewerb bietet die gleiche Funktionalität günstiger als intelligente Kamera an.
  • • Interface & Skalierbarkeit: Einbindung in die lokale Infrastruktur der Maschine. Es gibt keine Datenbanksoftware für den Embedded Prozessor, ein Feldbusinterface fehlt, die Anforderungen wachsen nach der Erstinstallation bzw. die Rechnerplattform ist nicht flexibel genug.
  • • Die Softwareumgebung/-struktur erweist sich als nicht zukunftsträchtig: Es existiert eine historisch gewachsene, aber nicht parallelisierbare Programmstruktur auf einem Einzelkernprozessor bzw. eine Bedienung über eine Windowsoberfläche, obwohl eine browserbasierte Bedienung geschickter wäre.

Schnell ist eine Fehlentscheidung getroffen, die viel Arbeit oder einen neuen Systemansatz erfordert. Der Artikel soll zwischen den üblichen Alternativen (Kamera mit integriertem Prozessor, PC-Lösung oder Embedded-PC) Aspekte aufzeigen, die zur richtigen Wahl führen.

Softwareumgebung

Bei der Wahl der Softwareumgebung kann es unklar sein, auf welcher Plattform diese laufen soll:

  • • Windows: Windows 7, Windows 7 Embedded, Windows RT, Windows 8x…
  • • Linux (es gibt unendlich viele Derivate mit unterschiedlichen Eigenschaften)
  • • DSP/Bios, SYS/Bios, echtzeitfähige Multitaskingbetriebssysteme von Texas Instruments (TI)
  • • Parametrierbare, proprietäre Software für die Hardware eines Herstellers

Damit das BV-Know-how erhalten bleibt, sollte die Lösung hardwareunabhängig in C++ entwickelt werden, damit der Code auf verschiedenen Rechnerarchitekturen kompiliert werden kann, was das letzte Beispiel ausschließt. Da sich Mehrkernprozessoren gegenüber Einkernprozessoren durchsetzen, empfiehlt es sich, bei Neuentwicklungen oder Überarbeitungen das frei verfügbare OpenMP einzusetzen. Dieses bietet Werkzeuge, die es ermöglichen, dass der Compiler die Algorithmen auf mehrere Kerne automatisch verteilt. Somit ist der Bildverarbeitungsentwickler erst einmal unabhängig von der Zielplattform.

Bedienoberfläche

Die Bedienoberfläche und Parametrierung der Applikation sollte klar getrennt werden, denn in der Industrie gibt es unterschiedliche Anforderungen:

  • • Lokale Bedienung per Touch Display: Multitouch in Windows 8, unter Win-dows/Linux, über eigenes HMI oder browserbasiert.
  • • Abgesetzte Bedienung von der Maschinenoberfläche: browserbasierte Anbindung an die GUI (z.B. per XML-Kommandos) oder Remote Desktop (PC) / Remote Shell (Linux).
  • • Fernbedienung ohne Bedienoberfläche: per XML, Feldbusinterface, Ethernet…

Mit diesem Ansatz gelingt es, die Kundenanforderungen zu erfüllen, die Software offen zu gestalten und produktivitätssteigernde Softwaretools einsetzen zu können. Bildverarbeitungsanwendungen erfordern aber häufig eine intensive Diskussion über die Algorithmen und Bibliotheken. Die Benutzeroberfläche und die Einbindung in die Maschinenumgebung kosten aber oft genau so viel – wenn nicht sogar mehr – Aufwand.

Seiten: 1 2Auf einer Seite lesen

Das könnte Sie auch Interessieren