Commit 29ff9963 authored by Andrey Filippov's avatar Andrey Filippov

tested with boosted exposure

parent 1bf9e9e4
......@@ -127,8 +127,13 @@ public class CuasMotionLMA {
public static final int RSLT_VEL_AWAY = 63; // axial velocity (positive - away), range derivative (m/s), calculated from the difference to the previous/next series range
public static final int RSLT_VEL_RIGHT = 64; // lateral velocity, right ( calculated from angular and RSLT_GRANGE
public static final int RSLT_VEL_UP = 65; // lateral velocity, up ( calculated from angular and RSLT_GRANGE
public static final int RSLT_RANGE_LIN = 66; // range linear interpolated using previous/next series if the same target is present there
public static final int RSLT_LEN = RSLT_RANGE_LIN + 1;
public static final int RSLT_RANGE_LIN = 66; // range linear interpolated using previous/next series if the same target is present there
public static final int RSLT_PHASE1_INDEX = 67; // target index in phase 1 (to trim) - debug feature
public static final int RSLT_PHASE1_SCORE = 68; // target index in phase 1 (to set minimal score for phase 1) - debug feature
public static final int RSLT_PHASE1_AMP = 69; // target index in phase 1 (to set minimal score for phase 1) - debug feature
public static final int RSLT_PHASE1_MSCORE = 70; // target index in phase 1 (to set minimal score for phase 1) - debug feature
public static final int RSLT_PHASE1_VSTR = 71; // target index in phase 1 (to set minimal score for phase 1) - debug feature
public static final int RSLT_LEN = RSLT_PHASE1_VSTR + 1;
public static final String [] LMA_TITLES =
{"X-OFFS","Y-OFFS", "AMPLITUDE", "RADIUS","RAD_POS", "OVERSHOOT","OFFSET","RMSE","RMSE/A","MAX2A","ITERATIONS",
......@@ -147,7 +152,8 @@ public class CuasMotionLMA {
"Disparity","Disparity-Diff","Strength","Range","Global-index",
"segment-length","segment-disparity","segment_disp-diff", "segment-strength", "segment-range",
"FLOG-px","FLOG-pY","FLOG-DISP","FLOG-range","infinity",
"GTarget-ID","Vel-away", "Vel-right", "Vel-up","Range-linear"};
"GTarget-ID","Vel-away", "Vel-right", "Vel-up","Range-linear",
"Phase1-index","Phase1-score","Phase1-amplitude","Phase1-mscore","Phase1-vstr"};
public static final String EXTRA_SLICE_DISCARD_ON_LOAD = "Targets";
public static final int FAIL_PENDING = -1; // By Claude on 05/07/2026: motion sentinel — tile tracked but not yet processed by LMA
public static final int FAIL_NONE = 0;
......
......@@ -419,7 +419,7 @@ public class CuasRanging {
saveTargetStats(targets); // final double [][][] targets_single) {
}
}
System.out.print((new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime())+": Ranging done"));
if (generate_output) {
cuasMotion.generateExtractFilterMovingTargets( // move parameters to clt_parameters
......
......@@ -796,6 +796,10 @@ min_str_neib_fpn 0.35
public double cuas_boost_slow = 4.0; // if >1 and the motion vector is below tile_size/cuas_boost_slow, scale corr_pairs
public double cuas_boost_mv_lim = 1.8; // Do not boost if motion vector faster than this (before in code equiv 1.8 pix)
public double cuas_boost_accum = 4.0; // if >1 increase tracking camera exposure (TODO: conditional / compete)
public boolean cuas_phase1_base = true; // Accumulate non-centered targets with base "exposure"
public boolean cuas_phase1_boosted = true; // Accumulate non-centered targets with boosted "exposure"
public boolean cuas_accum_base = true; // Accumulate centered targets with base "exposure"
public boolean cuas_accum_boosted = true; // Accumulate centered targets with boosted "exposure"
......@@ -2721,10 +2725,16 @@ min_str_neib_fpn 0.35
"Do not boost if motion vector faster than this (before in code equiv 1.8 pix).");
gd.addNumericField("Increase tracking camera exposure", this.cuas_boost_accum, 5,8,"",
"If >1 increase tracking camera exposure (later - conditional).");
gd.addCheckbox ("Accumulate phasae 1 base exposure", this.cuas_phase1_base,
"Accumulate non-centered targets (phase 1) with base \"exposure\".");
gd.addCheckbox ("Accumulate phase 1 boosted exposure", this.cuas_phase1_boosted,
"Accumulate non-centered targets (phASE 1) with boosted \"exposure\".");
gd.addCheckbox ("Accumulate tracking base exposure", this.cuas_accum_base,
"Accumulate centered targets with base \"exposure\".");
gd.addCheckbox ("Accumulate tracking boosted exposure", this.cuas_accum_boosted,
"Accumulate centered targets with boosted \"exposure\".");
gd.addNumericField("Boost pairs for weak targets", this.cuas_boost_mstr, 5,8,"",
"Scale corr_pairs if motion strength is below, regardless of speed.");
gd.addNumericField("Never boost stronger", this.cuas_boost_xstr, 5,8,"",
......@@ -4420,6 +4430,8 @@ min_str_neib_fpn 0.35
this.cuas_boost_slow = gd.getNextNumber();
this.cuas_boost_mv_lim = gd.getNextNumber();
this.cuas_boost_accum = gd.getNextNumber();
this.cuas_phase1_base = gd.getNextBoolean();
this.cuas_phase1_boosted = gd.getNextBoolean();
this.cuas_accum_base = gd.getNextBoolean();
this.cuas_accum_boosted = gd.getNextBoolean();
this.cuas_boost_mstr = gd.getNextNumber();
......@@ -5738,6 +5750,8 @@ min_str_neib_fpn 0.35
properties.setProperty(prefix+"cuas_boost_slow", this.cuas_boost_slow+""); // double
properties.setProperty(prefix+"cuas_boost_mv_lim", this.cuas_boost_mv_lim+""); // double
properties.setProperty(prefix+"cuas_boost_accum", this.cuas_boost_accum+""); // double
properties.setProperty(prefix+"cuas_phase1_base", this.cuas_phase1_base+""); // boolean
properties.setProperty(prefix+"cuas_phase1_boosted", this.cuas_phase1_boosted+""); // boolean
properties.setProperty(prefix+"cuas_accum_base", this.cuas_accum_base+""); // boolean
properties.setProperty(prefix+"cuas_accum_boosted", this.cuas_accum_boosted+""); // boolean
properties.setProperty(prefix+"cuas_boost_mstr", this.cuas_boost_mstr+""); // double
......@@ -6992,8 +7006,10 @@ min_str_neib_fpn 0.35
if (properties.getProperty(prefix+"cuas_boost_slow")!=null) this.cuas_boost_slow=Double.parseDouble(properties.getProperty(prefix+"cuas_boost_slow"));
if (properties.getProperty(prefix+"cuas_boost_mv_lim")!=null) this.cuas_boost_mv_lim=Double.parseDouble(properties.getProperty(prefix+"cuas_boost_mv_lim"));
if (properties.getProperty(prefix+"cuas_boost_accum")!=null) this.cuas_boost_accum=Double.parseDouble(properties.getProperty(prefix+"cuas_boost_accum"));
if (properties.getProperty(prefix+"cuas_phase1_base")!=null) this.cuas_phase1_base=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_phase1_base"));
if (properties.getProperty(prefix+"cuas_phase1_boosted")!=null) this.cuas_phase1_boosted=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_phase1_boosted"));
if (properties.getProperty(prefix+"cuas_accum_base")!=null) this.cuas_accum_base=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_accum_base"));
if (properties.getProperty(prefix+"cuas_accum_boosted")!=null) this.cuas_accum_boosted=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_accum_boosted"));
if (properties.getProperty(prefix+"cuas_accum_boosted")!=null) this.cuas_accum_boosted=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_accum_boosted"));
if (properties.getProperty(prefix+"cuas_boost_mstr")!=null) this.cuas_boost_mstr=Double.parseDouble(properties.getProperty(prefix+"cuas_boost_mstr"));
if (properties.getProperty(prefix+"cuas_boost_xstr")!=null) this.cuas_boost_xstr=Double.parseDouble(properties.getProperty(prefix+"cuas_boost_xstr"));
if (properties.getProperty(prefix+"cuas_corr_offset")!=null) this.cuas_corr_offset=Integer.parseInt(properties.getProperty(prefix+"cuas_corr_offset"));
......@@ -8263,6 +8279,8 @@ min_str_neib_fpn 0.35
imp.cuas_boost_slow = this.cuas_boost_slow;
imp.cuas_boost_mv_lim = this.cuas_boost_mv_lim;
imp.cuas_boost_accum = this.cuas_boost_accum;
imp.cuas_phase1_base = this.cuas_phase1_base;
imp.cuas_phase1_boosted = this.cuas_phase1_boosted;
imp.cuas_accum_base = this.cuas_accum_base;
imp.cuas_accum_boosted = this.cuas_accum_boosted;
imp.cuas_boost_mstr = this.cuas_boost_mstr;
......
......@@ -37,8 +37,10 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
......@@ -9038,7 +9040,9 @@ if (debugLevel > -100) return true; // temporarily !
if (stop_now) {
break; // will still generate videos
}
System.out.println((new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime())+": Sequence done."));
} // for (int nseq = 0; nseq < num_seq; nseq++) {
System.out.println((new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime())+": All sequences done"));
// combine videos if generated
if ((video_sets_list.size() > 1) &&
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment