CAMTRON PROCESSING PIPELINE ########################### A) setup / preparation B) recorder C) background-subtraction D) process scripts X) HPC ########################### "tackle long-term complex projects from beginning to end" B) recorder - camera produces frames and timestamps ########################### (depends on cam in A)!!! > use new api VimbaX > read manual (c++ / vimba) ============================ > wait and detect cams > produce frames & timestamps ============================ > new architecture: console app (later: gui app) + Core. CONSOLE APP: in extra thread to not block main thread! listen to user keys CORE APP functions / args: > out_dir: parse dir arg and create it if it doesnt exist >> finish it / with proper user in/ output >> or cancel if it doesnt exist >> EASIER: + no userinput which could complicate GUI app later... > list cameras: > store/load cam settings > calibrate > record > stop recording > consider using app settings in a json-file / QSettings > cam mappings (IP/MAC/ID) > out_dir GUI APP: > build GUI > ... parse output for -LISTCAMERAS- and put into tablewidget =============================== > get pix, using - laptop - direct connection - laptop - local network - virtual machine > get video via vimbax-SDK > cam calibration (Use Viewer? Or own SW?) > configure cam settings * get video for 3 cams simultaneously > what SW? > calculate supported framerate+resolution+codec for hardware (CPU,RAM,HDD...) > or do tests and see if frames are dropped > central config > threads for started recordings [PID] > storage folder > export settings with viewer > load settings with sw > how and where to store frames? A) ########################### > VM > light > 2*LEDs: 1*day + 1*night > find ecolux hw (Boxes, DMX per unit, DMX splitter/controller) > arenas > Acrylzylinder in 2 teile gesaegt. > floor > gips+color+lack.. C) background subtraction ########################### eval how much work to, update > opencv > bgs-algorithm ctb - calculates centroid points of all frames in a record > build > find test data (cp to 00 - ..) > process ----------- > update bgs alg. opencv4 has its own bgs? D) process scripts ########################### ctd - calculated the mean speed in pixel / millisecond * can i reduce size of data (reduce length|fps|res) >> calc D) for test data set (get data from joerdis?) -> with all frames -> undersample, shorter length -> compare results. same? trajectory > figure out concrete steps. harmonize scripts? .. > trajr. > run calcVmeanForID.r on data > calc new values. max speed. angle. ... X) HPC - High Performance Cluster #################################### > gamify > lvl up > try script to send over data > script that copies data once a day from VM to HPC > Secure-Shell-ID angepasst > cron or > II) vimba-software directly to HPC? BACK-BURNER 2D ############################### > Documentation > sketch > chamber: cam height+resolution+arena diameter for pixel to cm/mm ratio > lab: chambers+workstations+HPC > costs. update with what we actually buy! > sketch: technical: cam (QuantumEfficiency) + IRLED > sketch: setup plan for a chamber > copy last setup plan from thomas Done ####################### > start implementing new arch > console app. thread. signal-slot connections. > backup old tibcamtrack VM > get video in VV > connect VM. ssh and rdp > sort ct a bit: > folders, files, ... naming convention > README + Description > merge doc? > b) exclude SDK / examples from repo > attach cam arm to wood (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? -> more than 2 Reach In Plant Growth Chambers E-36L1 --------------------- > setup stativ, use our lab > how-to connect ETHernet cable? it will have to go outside of fridge?? > how-to control temperature and humidity? (see picture from thomas dox) > research WS (see hardware_notes.ods for details like specs. CPU, RAM, SSDs, prices) > cam aufhaengung research stativ/tripod: manfrotto arm + clamp + bodenplatte for cams other stuff to fix cameras > stange > sensors for temp+humidity (HOBO) > backup data from towers > setup tower (displays,cards,cables) ------------------------------- > bal: func: list_suffices > bal: function to replace all names to snake_case (upper to lower, space/dash to underscore) > opd: works with "name containing spaces.pdf" -> use array for files instead of string concatenation in o_helper() > bug: changed IFS in o_helper broke nav function