Forum: Mikrocontroller und Digitale Elektronik Zeilenkamera mit uC möglich?


von Andreas K. (andyk)


Lesenswert?

Guten Morgen,

ich überlege gerade ob folgendes Projekt realisierbar ist und ob ich da 
wirklich tiefer einsteigen möchte. Vielleicht kann mir ja der eine oder 
andere etwas weiterhelfen.

Idee:
Eine Panoramakamera mit einem Zeilensensor (CCD oder CMOS). Und ja ich 
weiß, so etwas gibt es schon, ultra high quality 160Megapixel, 
wahrscheinlich genausoviele Mega-Euro an Kosten usw...

Mir schwebt ein etwas handlicheres Gerät vor. Max. Größer einer 1 Liter 
Colaflasche, später eher kleiner...
Prinzip: Der Linearsensor wird über einen uC ausgelesen und die Daten 
auf einem RAM zwischengepuffert, dann als Raw auf SD-Karte gespeichert.

Die Umwandlung zu einem Panoramabild kann später im Rechner erfolgen.
Bei genügend hoher Drehfrequenz braucht man vermutlich gar keine 
Positionsmessung, ansonsten Korrektur der Bewegung der Kamera über 
Bewegungssensoren, bzw. über Bildverarbeitung.

Letztendlich soll es mit der Kamera möglich sein, ein 360° Panorama in 
weniger als 1s aufzunehmen. D.h. ich halte die Kamera über den Kopf, 
drücke den Auslöser und schwupp ist das Bild im Kasten.
Eckdaten: Bildhöhe 2k Pixel, Breite (abhängig von vertikalem 
Blickwinkel) 8k - 20k Pixel.

Was mir nicht ganz klar ist, welche Daten krieg ich von einem 
Zeilensensor und wie verarbeite ich die weiter? Gibt es, bzw. kann man 
sie kaufen, Spezialchips für die Bildverarbeitung? Und was brauchen die 
an externen Bausteinen?

Bitte erst mal keine Anmerkungen zur Mechanik und Optik.

Danke und Gruss
Andreas

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Solche Sensoren sind ziemlich verbreitet und mit fertiger 
Ansteuerungselektronik auch recht einfach zu finden - in 
Flachbettscannern.

Es gibt entsprechende Projekte, bei denen ein üblicher Flachbettscanner 
modizifiert wurde, um als Kamera verwendet zu werden.

Hier ein Beispiel:

http://home.comcast.net/~scancams/

von Joerg W. (joergwolfram)


Lesenswert?

Alle Zeilensensoren die ich kenne können nur Graustufen. Und schon bei 
2k mal 8k Pixeln musst Du bei Deiner avisierten Geschwindigkeit bei 8 
Bit Graustufen schon 16 Mbyte/s in den RAM schaufeln. FPGA wäre da 
meiner Meinung nach wohl die einfachere Lösung.

Jörg

von Sebastian (Gast)


Lesenswert?

Zeilensensor-Ansteuerung wurde hier schon gemacht, in Zusammenhang mit 
dem Low-Cost-Sprktrometer.
Die CCD-Zeile so schnell auszulesen, daß man mit einer kontinuierlichen 
Drehung ohne verwischen klar kommt, ist aber sehr anspruchsvoll und 
erfordert wahrscheinlich einen CPLD, der einen Flash-ADC ansteuert (oder 
drei, je nachdem) als Vorverarbeitung.
Ich hätte das mit einem Schrittmotor gebaut, gegebenenfalls 
Mikroschrittbetrieb oder mit Getriebe dran.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas Kr schrieb:
> Was mir nicht ganz klar ist, welche Daten krieg ich von einem
> Zeilensensor und wie verarbeite ich die weiter?
Du bekommst pro Pixel oder drei analogen Farbwerte (R,G,B). Die mußt du 
dann wandeln und abspeichern.

> Bildhöhe 2k Pixel, Breite 8k - 20k Pixel.
Das sind also 2000*20000 = 40 Mio Pixel pro Sekunde. Wenn du jetzt so 
einen schnelle ADC am laufen hast, dann hast du bei drei Farben und 8 
Bit Auflösung 120MB/s abzuspeichern. Bei Datenübertragungsraten von 
4MB/s dauert es dann also geraume Zeit, bis das aufgenommene Bild auf 
einer SD-Karte gespeichert ist. Solange wirst du es zwischenspeichern 
müssen --> 120MB Speicher nötig...

Das Ganze ist überaus sportlich und mit einem "üblichen" uC garantiert 
nicht mehr zu machen. Das deutet eher mal auf dedizierte Hardware (FPGA) 
hin...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Joerg Wolfram schrieb:
> Alle Zeilensensoren die ich kenne können nur Graustufen.

Sieh mal in einen üblichen Flachbettscanner.

von Joerg W. (joergwolfram)


Lesenswert?

Bei meinem "üblichen Flachbettscanner" wechselt die Beleuchtung ihre 
Farbe, der Sensor selbst kann dann logischerweise nur Graustufen. Daher 
hatte ich auch geschrieben "die ich kenne". Ich habe noch ein paar 
CCD-Zeilen aus Barcode-Scannern, die aber allesamt auch nur Graustufen 
können.

Jörg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dann hast Du einen "Lide"-Scanner.

Andere Flachbettscanner arbeiten mit weißen CCFL-Röhren und haben 
Farbsensoren.

von Andreas K. (andyk)


Lesenswert?

Danke für den Link zu den Scancams, den kannte ich noch nicht.

Hm, bin wohl etwas ernüchtert jetzt.
Vorläufiges Fazit:
Ohne Spezialhardware (FPGA, CPLD usw.) wahrscheinlich nicht 
realisierbar, d.h. Start mit einem einfachen Zeilensensor ist 
aussichtslos.

Bliebe die Alternative, einen Scanner entsprechend umzubauen...
Mit der max. einen Sekunde Belichtungszeit wirds dann wohl eher auch 
nichts und zusätzlich wird ein Laptop benötigt, was den Aufnahmeaufwand 
ganz schön in die Höhe treibt.

Na ja, vielleicht probier ich's in ein paar Jahren nochmal. Mit 
Stereo-Kameras und 3D war es ja auch lange Zeit ziemlich mau und heute 
gibt es sogar schon bezahlbare 3D-LCDs fürs Wohnzimmer!

Danke an alle!
Andreas

von Strubi (Gast)


Lesenswert?

Moin,

ein paar Inputs..

Zeilenscan-Apps kann man mit dem Blackfin recht gut erledigen 
(DMA-fähiger video port, PPI). Theoretisch gehen da 60 MByte/s, 
praktisch sind's eher die Hälfte unter uClinux, resp. bei häufigem 
Speicherzugriff (Verarbeitung, usw.)
Allerdings ist das recht knifflig, das System so hinzubekommen, dass 
keine Zeilen verloren gehen können.
Da die Zeilensensoren recht teuer sind, kannst Du alles zunächst mit 
einem volldigitalen CMOS global-Shutter-Sensor (rolling geht teils auch) 
prototypen. Habe z.B. den Aptina MT9V032 (20 € bei Framos) eingesetzt 
und verschicke die Frames per Ethernet. Gibt auch eine nette Kamera mit 
SD-Card-slot und Ethernet (leanXcam), da ist dieser Sensor eingebaut. 
Deren Software ist allerdings eher 'akademisch' zu sehen (für schnelle 
Echtzeit-Zeilenerfassung nicht ausreichend).
1-2 Mannjahre musst Du aber für die Entwicklung schon rechnen, wenn 
nicht mehr (je nach Sensor und nötiger Glue-Logik). Am flexibelsten ist 
natürlich ein Gespann FPGA/DSP, wenn Du da eine Prototyping-Plattform 
hast, bist du ev. viel schneller.

Gruss,

- Strubi

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Man kann den Scannerkopf auch anstatt in einer kontinuierlichen Bewegung 
in kleinen Schritten bewegen.
Dann müsste die Datenmenge zu schaffen sein.
Nur die Drehung wird langsamer.

Das generelle Problem bei Panoramafotographie ist,
dass die Natur sich bewegt. Das kann zum Beispiel ein Zug sein:
Erst nimmst du den Anfang der Lokomotive auf, und dann das Ende des 
hinteren Wagens.

Ich kenne die Schwenk-Methode nur, um Sterne zu fotographieren.
So kann man ja den ganzen Himmel aufnehmen, und da bewegt sich auch nix 
(Hubschrauber & Flugzeuge mal ausgeschlossen).

Mit freundlichen Grüßen,
Valentin Buck

von RFunker (Gast)


Lesenswert?

@Andreas Kr (andyk)
Fang doch erst mal klein an, z.B. einen Flachbett- in einen 
Panoramascanner umzubauen. Bei Pollin gibts z.B. zwei Schrittmotoren mit 
KOMPLETTER Scannerelektronik (Schrittmotor NEOCENE 2T354264 etc.) und 
CCD-Line RGB Sensoren (Bildsensor NEC µPD8872CY etc.). Auf der Platine 
der Scannerelektronik befindet sich auch eine USB-Schnittstelle. Ich 
würde nämlich erst einmal probieren ob Dein Panoramakonzept am PC 
funktioniert.
Hoffe Anregung gegeben zu haben.

von Strubi (Gast)


Lesenswert?

Ich vergass noch anzumerken:

Es gibt diverse FPGA-boards mit FX2 Cypress-USB-Adapter (Digilent, 
Cesys, usw.). Das Cesys-Board hat z.B. eine sehr gute SW-Ausstattung um 
gleich unter Linux loszulegen.
Damit kann man sich auch ne nette USB-Kamera bauen, dürfte hier im Forum 
auch einige Referenzapplikationen geben, und von der HW her die 
billigste Variante sein. Aber die Entwicklung ist aufwendiger und der 
FX2 nicht so wahnsinnig doll zu debuggen.

Grüsse,

- Strubi

von Andreas K. (andyk)


Lesenswert?

Genau dieser CCD-Line RGB Sensor von Pollin hat mich vor einiger Zeit 
auf die Idee zu dieser Kamera gebracht.
Mit dem Schrittmotor hätte ich wahrscheinlich keine Probleme. Auch die 
Ansteuerung über Mikroschritte oder quasi-kontinuierlich dürfte gehen.
Das Haupt-Problem was ich im Moment sehe ist eben das Auslesen des 
Sensors und die Verarbeitung der anfallenden Daten.
Ich habe zwar auch schon mit FPGAs etwas gearbeitet, aber bei dem 
Problem geht es dann eben doch ziemlich ans Eingemachte!

Die leanXcam sieht aber tatsächlich ganz interessant aus. Das wäre ein 
schönes Development-Board für Bilderfassung und Verarbeitung.
Ich bin gerade am Überlegen, die Kamera, die immerhin 60fps schafft, zu 
drehen und dann binnen 3s soviel Bildmaterial zu sammeln um ein Panorama 
berechnen zu können.
Das wäre zwar nicht die ursprüngliche Idee, aber könnte man immerhin 
auch mit fast jeder Videokamera machen...
Hat das Problem verschoben von Hardwareentwicklung zu 
Softwareentwicklung. Hm. :-(

von Panoramiker (Gast)


Lesenswert?

@Andreas Kr (andyk)
Ich staune immer wieder über Deine angegebenen Zeiten (erste Thread 1s, 
jetzt letzter Thread 3s). Hast Du Dir schon mal Gedanken über 
Belichtungszeiten, Beleuchtungsstärken etc. gemacht ? Wahrscheinlich 
nicht. Und wie die potentielle Optik+Mechanik aussehen muß ? 
Wahrscheinlich auch nicht. An den Thema 'Line Scan Panorama' haben sich 
nämlich schon einige Unternehmen (fast) die Zähne ausgebissen, 
Panoramakameras mit PC wohlgemerkt.

von Andreas B. (Gast)


Lesenswert?

Andreas Kr schrieb:
> Letztendlich soll es mit der Kamera möglich sein, ein 360° Panorama in
> weniger als 1s aufzunehmen. D.h. ich halte die Kamera über den Kopf,
> drücke den Auslöser und schwupp ist das Bild im Kasten.
> Eckdaten: Bildhöhe 2k Pixel, Breite (abhängig von vertikalem
> Blickwinkel) 8k - 20k Pixel.

Ganz unabhängig von der Elektronik, 20k Spalten nacheinander innerhalb 
einer Sekunde heißt eine Belichtungszeit pro Pixel von maximal 1/20000 
s. Noch nicht eingerechnet Zeiten fürs Auslesen/Löschen, was die 
verfügbare Zeit für die Belichtung weiter reduziert.

Ab 22.077 Euro gibts sowas auch fertig (ohne Objektiv natürlich):
http://www.roundshot.ch/xml_1/internet/de/application/d438/d925/f933.cfm

von Panoramiker (Gast)


Lesenswert?

Bravo, da hat ja wirklich mal einer nachgerechnet:
Andreas B. (Gast) schrieb:
> .. 20k Spalten nacheinander innerhalb einer Sekunde heißt eine Belichtungszeit
> pro Pixel von maximal 1/20000 s ..
Und von der Zeit einer mechanisch/optisch sauberen Positionierung der 
Objektivmechanik ganz zu schweigen.
Und nun der Umkehrschluss aus der Aussage von Andreas B. (Gast) für in 
der Fotografie übliche Belichtungszeiten, vielleicht auch mal bei nicht 
ganz so optimalen Lichtverhältnissen ?

von Andreas K. (andyk)


Lesenswert?

Hab ich in der Tat!

von Panoramiker (Gast)


Lesenswert?

Andreas Kr schrieb:
> Hab ich in der Tat!
.. hab ich WAS?
Die physikalische Optik begriffen? Die dynamische Mechanik rotierender 
Teile verinnerlicht? Die Naturgesetzte erschlossen?
Na, dann ist es ja gar kein Problem mehr...
Ich klink mich aus.

von Hajo K. (plurimi)


Lesenswert?

schneller AD und GA144(für 20 dollar) von GA, und die sache ist geritzt!
http://greenarraychips.com/

von Sebastian E. (der_andere_sebastian)


Lesenswert?

Oha, so etwas wie die SEAForth Chips, und tatsächlich lieferbar. 
Dennoch, wer gleich so groß einsteigt, sollte auch XMOS in Erwägung 
ziehen.

Ich hätte in dem Fall ja lieber einfach langsamer gescannt, und damit 
auch langsamer ausgelesen. Spart eine Menge Ärger. Aber jedem das seine, 
soll keine Kritik sein.

von Andreas K. (andyk)


Lesenswert?

Ich wollte mich nochmal zu Wort melden und alle Beitragenden danken.

Also meine ursprüngliche Idee mit einer tragbaren handlichen 
Panoramakamera ist wohl aktuell nicht realisierbar.
Dass das Konzept als solches funktioniert zeigen die kommerziellen 
Lösungen, von denen mir Roundshot am Besten gefällt. Die haben wirklich 
ein paar tolle Kameras im Angebot.
Zum Nachbau aufgrund des erheblichen Aufwandes jedoch auch nicht 
wirklich verlockend.

Realisierbar ist höchstens noch ein Eigenbau mit einem umgebauten 
Scanner, den ich wahrscheinlich bei Gelegenheit mal in Angriff nehme.

Bin mal gespannt wann es die erste Digi-Pano-Knipse unter 500.- Euro 
gibt?
In 5 Jahren?

Gruss
Andreas

von PanKnips (Gast)


Lesenswert?

Andreas Kr schrieb:
> Bin mal gespannt wann es die erste Digi-Pano-Knipse unter 500.- Euro
> gibt?
Ähm, wozu? Mittelklasse-Digitalknipsen und -Smartphones beherschen heute 
schon sehr ansprechend Stitching (Aneinanderfügen von mehreren 
Einzelbildern mit Überlappungszonen) auf dem Gerät, ohne PC. Und wen, 
außer vielleicht Architekten und Werbedesignern, interessiert die 
verzeichnungsfreie Erstellung von (360°) Panoramen? Ich kenne sonst 
keinen. Außerdem ist die Handhabung für ein brauchbares Ergebnis nicht 
trivial.

von Fotoentwickler (Gast)


Lesenswert?

@PanKnips
Richtig! Schon Fotofilmlösungen á la Horizon, Noblex, Hasselblad & Co. 
(um nur einige zu nennen) mit rotierender Schlitzblende/Objektiv hatten 
es schwer. Nichtsdestotrotz gibt es da sehr hervorragende Ergebnisse wie 
man in renomierten Zeitschriften wie in der 'Geo' ab und ab sehen kann. 
Und das in einem Gerätepreissegment von EUR 1500 ... 6000, von 
steigenden Film- und Abzugskosten mal abgesehen.

von Scanman (Gast)


Lesenswert?

Etwas spät, hab den Thread jetzt erst entdeckt:
Hatte vor kurzem eine ähnliche Idee, hatte aber auch immer die guten 
alten Handscanner aus den 90ern im Hinterkopf.
Mittlerweile gibt's die Dinger wieder, diesmal aber ohne Verbindung zum 
PC, sondern die Bilder werden einfach auf Speicherkarten gespeichert:
http://www.easypix.eu/easyscan.html
für um die 70,-€.

Lt. Datenblatt mit einem Farbsensor ausgestattet, die einzelnen Zeilen 
werden anscheinend immer noch über die Kontaktwelle beim Drüberziehen 
getriggert. Grob geschätzt hat das Ding um die 5400 Pixel (600dpi bei 
ca. 9 inch)

Meine Idee: den Scanner mit fest angebrachter Optik drehbar 
(Schrittmotor mit Getriebe) zu montieren und die Pulse an die 
Drehbewegung zu koppeln.

Noch ein Andreas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.