diff --git a/.gitignore b/.gitignore index 8b795a020bda316b98eeef75f3862762778c5a7f..cb9a0c40e8eda317ba3477008419219242b198f5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.sublime-workspace a/hardware +b/data dox/old diff --git a/a/cta.sublime-project b/a/cta.sublime-project index 563f33c7d5292f6f85edd5b8edb80ec6ae013161..d0806a011af8defceec9e5cce41957ebe024b6ff 100644 --- a/a/cta.sublime-project +++ b/a/cta.sublime-project @@ -6,7 +6,6 @@ }, { "path": "../b", - // "name": "b (vimba)" }, { "path": "../c", diff --git a/dox/notes b/dox/notes index 766b99f045dbafe3bf1e4007ee73466490386faa..9c379c0646e207af626b92cefa8f28f8d78cfbe7 100644 --- a/dox/notes +++ b/dox/notes @@ -1,4 +1,4 @@ -## SW from tboy old workstation +v## SW from tboy old workstation https://ctrax.sourceforge.net/ walking fly tracker HOBOWare Lite @@ -17,9 +17,6 @@ batchprocessor process sequence files to avi ssdcleanup -##buy? -https://www.alliedvision.com/en/products/accessories/tripod-adapter/ - ############################### ## Emilio ############################### @@ -337,3 +334,10 @@ apt install libarchive-dev python3-pybind11 #else frame = new IplImage(img_input); #endif + +## hardware tower old + (opt/later) setup tower1 (defunct again!) as cheap testing machine! + > get NIC working + > give name connect inet + --> as terminal to connect to server + --> later: use for DMX lighting diff --git a/dox/notes_A b/dox/notes_A index cb70d1d7beb0aea8cb0ac44f1b5bf56b03469e72..9aa3e93a8ede250b73be3b88dbb2726fb1a11f10 100644 --- a/dox/notes_A +++ b/dox/notes_A @@ -1,28 +1,20 @@ ############################### ## PART A ############################### +no separate git repo DCT git Does - Setup / Preparation + Hardware Setup Camera Settings Camera Calibration ############################### +## Hardware Setup ############################### -## Setup / Preparation -############################### - -Software Setup: - > deploy to VM - -> ssh-connection - > configure - -> folder, length, cams.. - > - -arena: +# arena: kg rohr 1m@500mm 162 DN550 https://www.hornbach.de/p/kg-rohr-dn-500-laenge-1-00m/8042036/ 55cm gummiring @@ -32,9 +24,9 @@ arena: -############################### ## Camera Settings -############################### +########################## + MAC ADDRESSES: camtron1: 000A4708ED3F camtron2: 000A471COC9D @@ -46,7 +38,7 @@ arena: * lens aperture and focus should be adjusted optimal to have a pin sharp pictures with no overexposure -> fix screw on lens gain?? use pix of written text of diff size - * export/import as XML. + * export/import settings as XML * framerate how low can it be for speed error to be all right? > fps can be low. Try 3! @@ -56,7 +48,6 @@ arena: ?? Q: how to set fps to 3? ?? If dark, set ExposureTimeAbs -############################### ## Calibration: ############################### * everytime cam moves! @@ -67,29 +58,9 @@ arena: -> mean re-projection error is a useful quality metric for the calibration precision. A smaller mean error means a more precise calibration +## calculate bandwidth ############################### -## CAMs -############################### -... - - -############################### -## 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?? @@ -117,7 +88,6 @@ StreamBitsPerSecond = 1 * 1456*1936 * 3 * 1 = 8 456 448 ~= 8,4 mbit/s < 125MBps !! 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 diff --git a/dox/notes_B b/dox/notes_B index e99d24b063a734731e26b7ff44f7385882f5c12a..fbe91d194fa8fe6f25af17c67cf4a4f97e1b8dc1 100644 --- a/dox/notes_B +++ b/dox/notes_B @@ -8,6 +8,14 @@ Does ############################### use opencv to convert raw cam images into JPEG pixel format ############################### +Software Setup: + > deploy to VM + -> ssh-connection + > configure + -> folder, length, cams + > .. + + * camera sends the raw pictures to a storage server via a network (IP/UDP) connection * internal real time clock and delivers high precision TIME STAMPS, which were simultaneous recorded for every frame (use milliseconds) * compress frames as jpeg diff --git a/dox/scrap b/dox/scrap index d556d52021a9a91db1a86be1486fad0c054ffeaf..e6bb121c0589834bc1542f5f1c7db1434d39d88d 100644 --- a/dox/scrap +++ b/dox/scrap @@ -1,41 +1,5 @@ -SCRAP -###### -void AsynchronousOpenCVRecorder::Log( std::string strMsg, VmbErrorType eErr ) -{ - strMsg += "..." + m_ApiController.ErrorCodeToMessage( eErr ); - ui.m_ListLog->insertItem( 0, QString::fromStdString( strMsg ) ); -} -//open cam -if ( VmbErrorSuccess == (* iter)->Open( VmbAccessModeFull ) ) -{ - std :: cout << " Camera opened " << std :: endl; -} +# misc - abbrev +LUT - LookupTable -// close cam -if ( VmbErrorSuccess == camera . Close () ) -{ - std :: cout << " Camera closed " << std :: endl; -} -// #include "opencv2/opencv.hpp" -// cv::VideoWriter m_VideoWriter; // OpenCV VideoWriter -// cv::Mat m_ConvertImage; - -// VimbaSystem::RegisterCameraListObserver ?? - - -#include "" //search 1rst in same folder as file -#include <> //search normal include-path (env, -l flags, ...) - - // sys->OpenCameraByID - // ID can be IP / MAC / ID - - -class FrameObserver : public QObject, virtual public IFrameObserver -// virtual inheritance?? - - -//adjust fixed size - // ui->tw_cams->setSizes( ui->tw_cams->sizeHint() ) - // ui->tw_cams->setFixedSize(ui->tw_cams->sizeHintForColumn(0) + ui->tw_cams->frameWidth() * 2, ui->tw_cams->sizeHintForRow(0) * ui->tw_cams->count() + 2 * ui->tw_cams->frameWidth()); diff --git a/dox/timeplan-milestones.ods b/dox/timeplan-milestones.ods new file mode 100644 index 0000000000000000000000000000000000000000..0496f530cc6e32c26c9c1843055248b52c8ffeab Binary files /dev/null and b/dox/timeplan-milestones.ods differ diff --git a/dox/todo_ct b/dox/todo_ct index 73922bdb34fc3a587f1b2e900c582f1fe6aa9c42..4481e82cb2351b7d3eb2f125cd9285815fdb63a7 100644 --- a/dox/todo_ct +++ b/dox/todo_ct @@ -7,6 +7,13 @@ CAMTRON PROCESSING PIPELINE X) HPC Z) laptop/fon maintenance ########################### +"tackle long-term complex projects from beginning to end" + +sort ct: + > folders, files, ... naming convention + > README + Description + > merge doc? + > b) exclude SDK / examples from repo PRIO: > update opencv -> eval how much work to fix? @@ -14,36 +21,14 @@ PRIO: A) ########################### - > TEST CAM! GET RUNNING PICTURES! - 1. setup virtual machine to test + 1. use virtual machine > 8 cores, 16GB RAM, 2 TB for 1cam > 48 cores, 128GB RAM, 6 TB for 6cam - 2. use laptopt to test - - 3. (opt/later) setup tower1 (defunct again!) as cheap testing machine! - > get NIC working - > give name connect inet - --> as terminal to connect to server - --> later: use for DMX lighting + 2. use laptop - 4. (alternatively) Raspberry Pi - Q: is option fast enough for processing of 1/3/6 streams simultaneously? - > test bottleneck (CPU,HDD,ethernet,) - > is video compression on? how demanding! - > storage: 1 minute hochrechnen. mit 24/17/12 FPS. - - Q: how should workflow look? - > Option A - 1. record and store (where) - 2. process (where?) - > Option B - 1. record, process (cut ROI to reduce size), store - 2. more processing (R..) - --> what processing. - --> draw picture as doc of workflow > light (opt/later) > find hardware (Boxes, DMX per unit, DMX splitter/controller) @@ -191,14 +176,6 @@ X) HPC - High Performance Cluster > cron or > II) vimba-software directly to HPC? -Z) laptop/fon maintenance -############################### - > sync+manage bookmarks of different FIREFOXES. Delete one. - > add symbols to 'cmds' for quick copy-paste - > sub: alt+5 can't toggle to 5th pane. - shortcut for toggling panes via number and/or left-right - shortcut for replace next in an intuitive manner (no mouse!) - ## NOTES ############################### @@ -230,6 +207,11 @@ milestone 7: analyze II - get more vars Done ####################### +> test run 1 cam to estimate hw requirements + > test bottleneck (CPU,HDD,ethernet,) + > storage: 10s hochrechnen + > mit 25/17/10 FPS. + > different compression types > research suitable "fridges" -> price!, temp-range, electricity inside, size space in lab? diff --git a/dox/workflow b/dox/workflow new file mode 100644 index 0000000000000000000000000000000000000000..04d545cc33f3df18676828f546b3bae9d1f9ccac --- /dev/null +++ b/dox/workflow @@ -0,0 +1,11 @@ +Option A + 1. record and store on server + > timecritical + 2. process + +Option B + 1. record, process (cut ROI to reduce size), store + 2. more processing (R..) + +-> define process +-> draw picture as doc of workflow