Skip to content
Snippets Groups Projects
Commit 0e25ce82 authored by am0ebe's avatar am0ebe
Browse files

.

parent 4b911959
No related branches found
No related tags found
No related merge requests found
# resolutions:
# AR (aspect ratio) mostly 16:9. For the Arena a square is needed, the rest will just be cropped.
precision=2
resolutions={
"HDready":720*480, # 0.3MP
"fullHD":1080*1920, # 2MP
# "fullHDplus":2160*1080, # 2.3MP
# "QHD":2560*1440, # 3.7MP
# "square":1920*1920, # 3.7MP
# "UHD":3840*2160, # 8.3MP
# "5K":5120*2880, # 14.7MP -> highest 2023
}
# HD-Ready 720p 1,5 mbps
# Full HD 1080p 4 mbps
def calc_bandwith(fps,res,bpp,dur_m):
print(f"\n## {res[0]}")
dur_s=dur_m*60
bandwidth_mbit=fps*res[1]*bpp / (1000**2)
bandwidth_gbit=bandwidth_mbit / 1000
size_mb=bandwidth_mbit*dur_s/8
size_gb=bandwidth_gbit*dur_s/8
print(f"bandwidth_mbit: {round(bandwidth_mbit,precision)}")
print(f"bandwidth_gbit: {round(bandwidth_gbit,precision)}")
print(f"size_mb: {round(size_mb,precision)}")
print(f"size_gb: {round(size_gb,precision)}")
print("###############################")
print(f"compressed maybe a tenth: {round(size_gb/10,precision)} gb")
fps=30
bpp=24 #bits. not bytes!
dur_m=1
for res in resolutions.items():
calc_bandwith(fps,res,bpp,dur_m)
{
"folders":
[
{
"path": ".",
},
{
"path": "../b",
// "name": "b (vimba)"
},
{
"path": "../c",
},
{
"path": "../d",
},
{
"path": "../dox",
"name": "dox"
},
],
}
> !! if beetle runs in circle it is in "escape/panic mode" which doesn't represent "natural" behaviour (explore, forage, quick move from a to b)
-> think about different setup. Bigger Arena?
--> ! beetle needs to be small enough to not be limited by constrained size of the arena
> how much time for beetle to calm down / aclimatize? 10mins?
> 10 minutes is enough to analyze movement
> 8 fps could be enough to reduce mean error
......@@ -13,6 +13,13 @@ Does
###############################
## Setup / Preparation
###############################
> prices chamber (4,5,6 big ones)
> research cams
infrared
rugged (temperature)
stream over ethernet, PoE
Hardware setup:
> Thermostat/Plantgrow chamber
> 20 k€ for thermochamber
......@@ -57,3 +64,65 @@ Software Setup:
https://github.com/opencv/opencv/blob/master/samples/cpp/calibration.cpp
* stores values in xml
-> mean re-projection error is a useful quality metric for the calibration precision. A smaller mean error means a more precise calibration
###############################
## CAMs
###############################
IR?
strom. (poE, USB, netzteil)
hdmi?
###############################
## calculate bandwidth ##
###############################
# as bitstream and as size in bytes on hdd
#
# Streamen von HD (1920*1080) need inet speed ~= 5 MBps
# check inet speed: https://fast.com/
# https://www.speedtest.net/
# calc vid size:
# https://www.videoproc.com/edit-4k-video/video-size-calculator.htm
# 1000 Mbit/s = 125 MB/s (8bit = 1byte, 1 MB = 1024KB)
#
# reduce vid size in VLC!
# h264/h265 + fps + bpp
# https://www.videoproc.com/video-process/video-size-reducer.htm
# bpp = 8 or 24...
What bandwidth do i have? Do i need multiple ports?
bandwith = fps * pixel format(bpp) * resolution (* ncams)
StreamBitsPerSecond = 1 * 1456*1936 * 3 * 1 = 8 456 448 ~= 8,4 mbit/s < 125MBps #bits or bytes??
14*3*1936*1456 ~= 118,4 MBps ## max res, 3 bpp -> max FPS: 14!
44*1*1936*1456 ~= 124,1 MBps ## max res, 1 bpp -> max FPS: 44!
a 10 min -> 74 GB?
a 60 min -> 446 GB?
6*1*1936*1456 ~= 16,9 MBps ## find optimal FPS to reduce size!
8*1*1936*1456 ~= 22,6 MBps ## find optimal FPS to reduce size!
10*1*1936*1456 ~= 28,2 MBps ## find optimal FPS to reduce size!
a 10 min -> 17 GB?
a 60 min -> 102 GB?
1. Determine max_speed with highest fps!
2. Take max_speed and reduce fps so it still fits 2*max_speed
-> subsample same video ?
3. calc mean_err through comparing 1. and 2. -> add to 2. as it will be lower.
!! exposure and fps: on 10fps exposure can't be more then 10ms!
Best practice: set gain to lowest possible val and increase exposure as needed
!! if you use more than one cam on one interface, the available bandwidth has to be shared between interfaces.
MAX BANDWITH = Gigabit ethernet ~= 125 MB/s
MAC1 00:0F:31:03:38:D4
YUV 422 = 2 bpp, YUV 444 = 3 bpp
TL - Transport Layer -> GIGE as Camera Interface
GENICAM - open TL -> GiGE
Prosilica GX:
2 ethernet ports...
configure LAG (Link aggregate group)
-> double available bandwith to 240 MB/s!
#####################
......@@ -46,43 +46,8 @@ VM on ssh thomasboy@172.18.115.7 -> ask Dirk!
#####################
What bandwidth do i have? Do i need multiple ports?
bandwith = fps * pixel format(bpp) * resolution (* ncams)
StreamBytesPerSecond = 1 * 1456*1936 * 3 * 1 = 8 456 448 ~= 8,4 MBps < 125MBps
14×3×1936×1456 ~= 118,4 MBps ## max res, 3 bpp -> max FPS: 14!
44×1×1936×1456 ~= 124,1 MBps ## max res, 1 bpp -> max FPS: 44!
a 10 min -> 74 GB?
a 60 min -> 446 GB?
6×1×1936×1456 ~= 16,9 MBps ## find optimal FPS to reduce size!
8×1×1936×1456 ~= 22,6 MBps ## find optimal FPS to reduce size!
10×1×1936×1456 ~= 28,2 MBps ## find optimal FPS to reduce size!
a 10 min -> 17 GB?
a 60 min -> 102 GB?
1. Determine max_speed with highest fps!
2. Take max_speed and reduce fps so it still fits 2*max_speed
-> subsample same video ?
3. calc mean_err through comparing 1. and 2. -> add to 2. as it will be lower.
!! exposure and fps: on 10fps exposure can't be more then 10ms!
Best practice: set gain to lowest possible val and increase exposure as needed
!! if you use more than one cam on one interface, the available bandwidth has to be shared between interfaces.
MAX BANDWITH = Gigabit ethernet ~= 125 Mbps
MAC1 00:0F:31:03:38:D4
YUV 422 = 2 bpp, YUV 444 = 3 bpp
TL - Transport Layer -> GIGE as Camera Interface
GENICAM - open TL -> GiGE
Prosilica GX:
2 ethernet ports...
configure LAG (Link aggregate group)
-> double available bandwith to 240 MB/s!
#####################
> list currently connected cameras
......
......@@ -8,5 +8,17 @@ does
C & D will run on HPC
###############################
get login for:
https://wiki.ufz.de/eve/
qsub
module load -> opencv4? Qt5.15?
libarchive
4mb blockgroesse einstellen
entries lesen (=jpgs)
might need to update old cmds from
https://wiki.ufz.de/eve/index.php/UGE_and_SLURM_Parameter_Comparison
......@@ -7,14 +7,30 @@ CAMTRON PROCESSING PIPELINE
X) HPC
###########################
PRIO:
* research cam
* buy fridge
* calc D) for test data set (get data from joerdis?)
-> with all frames
-> undersample, shorter length
-> compare results. same?
* HPC cluster account + try script to send over data
> update libs (opencv, qt, bgs?)
-> eval how much work to fix?
A)
###########################
> buy chambers
> research and buy chambers!
> research and buy cams!
> hw setup / preparation
> cam calibration
> configure cam settings
B) recorder
B) recorder (depends on cam in A)!!!)
###########################
> read manual (c++ / vimba)
============================
......@@ -83,7 +99,7 @@ A) setup testsystem
C) background subtraction
###########################
> build
> get test data (cp to 00 - where is it?)
> find test data (cp to 00 - ..)
> process
-----------
> update bgs alg. opencv4 has its own bgs?
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment