Ich habe dies ursprünglich auf SuperUser gepostet, aber ich vermute, dass dies ein besserer Ort ist, um dies zu posten (sorry für den Doppelpost!): Ich bin ein ziemlicher Anfänger in eingebetteten Systemen, bin aber gespannt darauf, mehr zu erfahren. Ich habe zuvor einen Arduino verwendet und vor kurzem einen Raspberry Pi gekauft (aber nicht so oft verwendet). Ich habe zahlreiche Fragen, auf die ich bei der Verwendung von Google keine Antworten gefunden habe, daher der Beitrag! Ich würde mich über jeden Einblick freuen (Entschuldigung im Voraus, wenn meine Fragen zu naiv erscheinen!).
Kürzlich habe ich mit einigen Bildverarbeitungsbibliotheken an Bildverarbeitungscode gearbeitet. Mein Code ist mit C++ in Visual Studio unter Windows XP geschrieben. Mein Programm verwendet in verschiedenen Phasen Multithreading-Fähigkeiten, hauptsächlich weil einige der Verarbeitungsaufgaben ziemlich zeitaufwändig sind. Meine Absicht ist es, diesen Arbeitscode zu übertragen und die Backend-Bibliotheken (OpenCV, Boost usw.) auf ein eingebettetes System zu installieren, das lediglich mit einer Kamera verbunden ist.
Sie haben grundsätzlich zwei Möglichkeiten:
Es hängt davon ab, wie Sie Ihr eingebettetes System definieren. Es sind ARM-Module mit vier Kernen erhältlich, von denen jeder mit 1 GHz+ läuft (z. B. ist die Toradex Apalis-Familie ein Multicore-ARM-Cortex-A9-Modul, aber andere sind ebenfalls erhältlich).
Wenn Sie hohe Anforderungen an RAM und Prozessorgeschwindigkeit haben, ist es wahrscheinlich die bessere Option, einen Core-i7 oder ähnliches zu wählen (sehen Sie sich die COMExpress-Familien von zB Congatec an) und diesen in ein kleineres System einzubauen.
Wie entscheiden Sie sich nun für das richtige Betriebssystem:
Schauen Sie sich die industriellen / "eingebetteten" x86-kompatiblen Motherboards mit AMD APUs an. en.wikipedia.org/wiki/AMD_Accelerated_Processing_Unit en.wikipedia.org/wiki/List_of_AMD_Accelerated_Processing_Unit_microprocessors
Einige Motherboards verfügen über NVIDIA-GPU-Plattformen wie die Ionen.
en.wikipedia.org/wiki/Nvidia_Ion
www.amd.com/us/products/embedded/apu/Pages/embedded-apu.aspx
Intel hat einige eingebettete Boards mit Intel-GPUs darauf und verschiedene Prozessoren der ATOM-Serie.
Für die "einfache" Bildverarbeitung können Sie die x86-CPU verwenden, und wenn Sie etwas sehr Paralleles haben, können Sie immer einfache Pixel-/Compute-Shader oder vielleicht OpenCL auf der "GPU" ausführen.
Diese Boards liegen oft im Bereich von 150 $ oder weniger für Consumer-Modelle und unter 600 $ oder so für die industriellen eingebetteten SBC-Einheiten in geringen Mengen, und sie haben in der Regel viel mehr GFLOPS-CPU-Leistung und GFLOPS-Single-Precision-GPU-Leistung als ein konkurrierender Typ von Medien-DSP / SOC-Medienprozessor. Der Stromverbrauch ist normalerweise nicht großartig, da er im Spitzenbereich von 2 bis 6 W liegt, aber das ist völlig ausreichend für so etwas wie einen im Auto montierten PC oder ein großes batteriebetriebenes mobiles Gerät oder ähnliches. Das Schöne daran ist, dass Sie die Software problemlos auf einem generischen Desktop-PC programmieren und testen können, ohne dass ein mühsamer Portierungsaufwand auf ein radikal anderes Embedded-Ziel erforderlich ist.
Wenn Sie wirklich eine kleinere Größe als einen fraktionierten ITX-Formfaktor oder einen geringeren Stromverbrauch benötigen, können Sie sich eine Art "Tablet" -orientiertes Entwicklungsboard ansehen, das über eine Multi-Core-ARM-CORTEX-A-Was-auch-immer- oder ähnliche CPU verfügt, möglicherweise mit einer GPU und welche kann Linux, Android, Tizen oder etwas Praktisches ausführen. Die neuere i.MX-Serie von Freescale oder TI Pandaboard oder so etwas. Wenn Sie die Kamera über einen USB 2 HS-Hostanschluss an eine Webcam oder eine benutzerdefinierte USB-Kamera anschließen, benötigen Sie nicht viele benutzerdefinierte GPIO- / Kameraschnittstellenanschlüsse am SBC, um die Hardwareauswahl zu erweitern und die Belastung durch benutzerdefinierte Software zu verringern. Natürlich werden einige der Geräte auch eine digitale parallele Schnittstelle für einen CMOS-Bildsensor haben, wenn auch nicht alle.
www.freescale.com/webapp/sps/site/prod_summary.jsp?code=IMX53QSB#
www.freescale.com/webapp/sps/site/taxonomy.jsp?nodeId=018rH3ZrDR988D
www.omamappedia.com/wiki/PandaBoard
Bearbeiten – hier ist der nette Leitfaden für eingebettete Lösungen von AMD. http://www.amd.com/us/Documents/AMD_Embedded_Solutions_Guide.pdf
Ein neueres High-End-APU-basiertes Consumer-Board (nicht lüfterlos oder kostengünstig) http://www.legitreviews.com/article/2110/1/
Sie haben also die Wahl zwischen Mini-ITX, Nano-ITX, anderen Formfaktoren, weniger als 5 W Stromverbrauch oder Optionen mit höherer Leistung/Energie oder einigen der ARM-Boards mit geringerer Leistung/Leistung/Größe. Die meisten verfügen über GPUs, die sowohl für die Bildverarbeitung als auch für die CPUs verwendet werden können, und im Allgemeinen haben alle die Kapazität für 512 MByte bis mehrere GByte DDRx-DRAM mit angemessener Leistung für Software und Bilder. Einige der Consumer-Boards im Mini-ITX-Format beginnen bei etwa 79 US-Dollar für Motherboard/CPU. Sie können vom Netzwerk oder von einem USB-Flash-Laufwerk booten, um eine nette eingebettete Funktionalität zu erhalten.
Es gibt auch das Leopardboard oder Craneboard und solche Alternativen zum Pandaboard, wenn Sie nach einer älteren Bildverarbeitungsplattform suchen, die noch vernünftig ist.
Das Photon
Kaz
c0d3rz