Intel i5 4670k @ 4,2GHz, 1,106V // Gigabyte Z87-HD3 ATX // Kingston HyperX blu 2x4GB + Fury 2x4GB 1600MHz 10-10-10-27 1,5V // CoolerMaster Hyper 212 EVO // Samsung EVO 840 250GB // NZXT Phantom // Gigabyte 290 4GB // EVGA NEX750G // Windows 10 Pro 64
Minimera tiden för bildtagning (Python2, RPi3, Camera Module v2)
Visa signatur
Skrivet av LuhcForgh:
Hej!
Jag håller på och bygger en autonom miniatyr-bil för körning på "motorväg", dvs hålla sig inom vägbanan och köra lagom fort. Vi styr allting med en Raspberry Pi 3 som kör Raspbian. Vår mjukvara är programmerad i Python 2 och använder sig av ett antal OpenCV-funktioner för att hitta linjerna. Vårt problem är dock att själva bildtagningen tar över hälften av "cykeltiden" av att läsa av vägbanan (0,07s av totalt 0,12s vid optimala förhållanden).
Har ni kära SweC:are några tips på hur man kan snabba upp processen ytterligare, då kameran ska kunna klara 90 fps videoinspelning vid lägre upplösning? 0,07s motsvarar ca 14 fps (för enbart bildtagningen). Notera att vi helst vill kunna hantera olika ljusförhållanden, men att vi absolut kan tänka oss att anpassa oss för inomhusmiljöer för att kunna förbättra prestandan. Den låga upplösningen räcker för våra senare algoritmer, och gör att de snabbas upp en del.
Nedan följer de kamerainställningarna vi har. Många grejer är ju default-värden, men det känns bäst att ha stenkoll på vad som faktiskt gäller. Framrate:n på 40 verkar ju inte gälla (0,025s), och om vi går över detta beskärs bilden ("inzoomad"), vilket gör att vi bara får ett titthål att läsa av vägbanan genom.
Kamerainställningar:
camera = picamera.PiCamera() # The camera’s default resolution is the display’s resolution.
camera.resolution = (205, 154) # 1/32th of max resolution in x and y
camera.framerate = 40
camera.sharpness = 0
camera.contrast = 0
camera.brightness = 50
camera.saturation = 0
camera.ISO = 0
camera.exposure_compensation = 0
camera.exposure_mode = 'auto'
camera.meter_mode = 'average'
camera.awb_mode = 'auto'
camera.image_effect = 'none'
camera.color_effects = None
camera.rotation = 0
camera.hflip = False
camera.vflip = False
camera.crop = (0.0, 0.0, 1.0, 1.0)
Kodstycke för att ta bilder:
import picamera
from picamera.array import PiRGBArray
rawCapture = PiRGBArray(camera)
camera.capture(rawCapture, format = 'bgr', use_video_port = True)
img = rawCapture.array
Tyvärr kryper cykeltiden också iväg ibland (tidvis uppemot 0.3s, även om en liknande mängd linjeinnehåll hittas) - förmodligen på grund av andra processer? Tips där mottages också gärna! Målet är att komma till minst 10 stabila fps, men som det är nu kan vi inte garantera mer än runt 3 fps. Vårt styrsystem sker i en annan tråd genom att spara den beräknade positionen av bilen relativt vägbanan i en global list
Hejsan! Mina egna erfarenheter av OpenCV är rätt så blygsamma, men tänkte tipsa om den här sidan som jag tycker varit rätt så hjälpsam med det mesta. Kanske kan vara till någon hjälp. Skulle vara kul att höra om det funkade bättre i varje fall :).
http://www.pyimagesearch.com/2017/02/06/faster-video-file-fps...
Visa signatur
Hårdrockande Datanörds Filosof. Det var nog allt ;)
Citera flera
Citera
Kan tänka mig att automatiska funktioner kan sega ner kameran så blir det någon skillnad om du provar att ställa parametrarna manuellt istället för auto? Om det blir skillnad så kan man labba fram vilken parameter som segar ner det hela mest och kanske köra övriga på auto.
Finns det andra format än "bgr"? Tänkte om någon typ av yuv kan ge mindre mängd data att överföra och så kanske man bara analyserar den svartvita informationen och skippar färginnehållet (y komponenten och struntar i uv).
Verkar gå att fånga YUV:
http://picamera.readthedocs.io/en/release-1.13/recipes2.html#...
Sedan om det är snabbare eller långsammare får ni väl testa.
Senast redigerat
Citera flera
Citera
Hårdvara
- Idag Analytiker: Apple har överskattat intresset för Vision Pro 23
- Igår AMD, Nvidia och Intel – vad är det för skillnad mellan grafikkortstillverkarna? 20
- Igår Testpilot: MSI MPG 271QRX - Färgsprakande OLED i 360 Hz 13
- 23 / 4 Meta öppnar upp Quests OS – vill bli VR-världens Android 12
- 23 / 4 Googles nästa Chromecast får dubblerad lagring 74
Mjukvara
Övrigt
- Idag EU röstar igenom ”rätten att reparera” 48
- Igår Viaplay sätter ner foten mot delade konton 49
- Igår Systembolaget varnar: Dryckesbrist efter hackerattack 83
- Igår Veckans fråga: Hur mycket lagringsutrymme har din dator? 90
- Igår Utfasning av tredjepartskakor skjuts upp – annonsörer behöver mer tid 16
Datorkomponenter
Ljud, bild och kommunikation
- EU röstar igenom ”rätten att reparera”49
- Samlingstråd LG OLED 2023 (A3/B3/C3/G3/Z3)709
- Next JS Skumt fel = Axios GET från localhost men fungerar vid commit7
- Systembolaget varnar: Dryckesbrist efter hackerattack83
- Analytiker: Apple har överskattat intresset för Vision Pro23
- Tips på datorbygge med en 5700G0
- Sparkcykel barn - klarar den regn?2
- Dagens fynd (bara tips, ingen diskussion) — Läs första inlägget först!18417
- Verifiera konto Mejl17
- Hur och varför använder du Discord?42
- Säljes GeForce RTX 2070 ROG STRIX 8GB
- Säljes RETRO: GeForce 8800 GTS
- Säljes Server - 2x Xeon gold 6138 - 256GB RAM - Nvidia P2000
- Säljes Ryzen 9 3950x Mobo 64gb ram!
- Säljes ASUS TUF F17 - i7 | 16GB | 1TB | RTX 4060
- Säljes ASUS 27" ROG Swift PG27AQDM OLED QHD 240 Hz
- Köpes i7 12th 13 14 gen
- Säljes 64 Gig DDR5 2x32Gig, 6000MT/s CL36-38-38 1.35V EXPO/XMP
- Säljes Gamingdator I9-13900KF - 7800 XT - Z690 - DDR5 32GB - Define 7
- Säljes T700 2TB M2 SSD. Lian Li Strimer 24pin. Vertical mount
- Analytiker: Apple har överskattat intresset för Vision Pro23
- Microsoft rullar ut Startmenyreklam till alla38
- EU röstar igenom ”rätten att reparera”49
- Viaplay sätter ner foten mot delade konton49
- AMD, Nvidia och Intel – vad är det för skillnad mellan grafikkortstillverkarna?20
- Systembolaget varnar: Dryckesbrist efter hackerattack83
- Veckans fråga: Hur mycket lagringsutrymme har din dator?90
- Valve täpper till kryphål i Steam-återbetalningar19
- Testpilot: MSI MPG 271QRX - Färgsprakande OLED i 360 Hz13
- Utfasning av tredjepartskakor skjuts upp – annonsörer behöver mer tid16