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

tested with boosted exposure

parent 1bf9e9e4
Loading
Loading
Loading
Loading
+890 −270

File changed.

Preview size limit exceeded, changes collapsed.

+9 −3
Original line number Original line Diff line number Diff line
@@ -128,7 +128,12 @@ public class CuasMotionLMA {
	public static final int RSLT_VEL_RIGHT =       64; // lateral velocity, right ( calculated from angular and RSLT_GRANGE
	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_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_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_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 = 
	public static final String [] LMA_TITLES = 
		{"X-OFFS","Y-OFFS", "AMPLITUDE", "RADIUS","RAD_POS", "OVERSHOOT","OFFSET","RMSE","RMSE/A","MAX2A","ITERATIONS",
		{"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",
				"Disparity","Disparity-Diff","Strength","Range","Global-index",
				"segment-length","segment-disparity","segment_disp-diff", "segment-strength", "segment-range",
				"segment-length","segment-disparity","segment_disp-diff", "segment-strength", "segment-range",
				"FLOG-px","FLOG-pY","FLOG-DISP","FLOG-range","infinity",
				"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 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_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;
	public static final int FAIL_NONE =      0;
+1 −1
Original line number Original line Diff line number Diff line
@@ -419,7 +419,7 @@ public class CuasRanging {
        		saveTargetStats(targets); // final double [][][] targets_single) {
        		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) {
		if (generate_output) {
			cuasMotion.generateExtractFilterMovingTargets( // move parameters to clt_parameters
			cuasMotion.generateExtractFilterMovingTargets( // move parameters to clt_parameters
+19 −1
Original line number Original line Diff line number Diff line
@@ -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_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_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 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_base =     true;   // Accumulate centered targets with base "exposure"
    public boolean  cuas_accum_boosted =  true;   // Accumulate centered targets with boosted "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).");
				"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,"",
		gd.addNumericField("Increase tracking camera exposure",      this.cuas_boost_accum, 5,8,"",
				"If >1 increase tracking camera exposure (later - conditional).");
				"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,
		gd.addCheckbox    ("Accumulate tracking base exposure",      this.cuas_accum_base,
				"Accumulate centered targets with base \"exposure\".");
				"Accumulate centered targets with base \"exposure\".");
		gd.addCheckbox    ("Accumulate tracking boosted exposure",   this.cuas_accum_boosted,
		gd.addCheckbox    ("Accumulate tracking boosted exposure",   this.cuas_accum_boosted,
				"Accumulate centered targets with boosted \"exposure\".");
				"Accumulate centered targets with boosted \"exposure\".");
		
		gd.addNumericField("Boost pairs for weak targets",           this.cuas_boost_mstr, 5,8,"",
		gd.addNumericField("Boost pairs for weak targets",           this.cuas_boost_mstr, 5,8,"",
				"Scale corr_pairs if motion strength is below, regardless of speed.");
				"Scale corr_pairs if motion strength is below, regardless of speed.");
		gd.addNumericField("Never boost stronger",                   this.cuas_boost_xstr, 5,8,"",
		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_slow =          gd.getNextNumber();
		this.cuas_boost_mv_lim =        gd.getNextNumber();
		this.cuas_boost_mv_lim =        gd.getNextNumber();
		this.cuas_boost_accum =         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_base =          gd.getNextBoolean();
		this.cuas_accum_boosted =       gd.getNextBoolean();
		this.cuas_accum_boosted =       gd.getNextBoolean();
		this.cuas_boost_mstr =          gd.getNextNumber();
		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_slow",      this.cuas_boost_slow+"");     // double
		properties.setProperty(prefix+"cuas_boost_mv_lim",    this.cuas_boost_mv_lim+"");   // 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_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_base",      this.cuas_accum_base+"");     // boolean
        properties.setProperty(prefix+"cuas_accum_boosted",   this.cuas_accum_boosted+"");  // boolean
        properties.setProperty(prefix+"cuas_accum_boosted",   this.cuas_accum_boosted+"");  // boolean
		properties.setProperty(prefix+"cuas_boost_mstr",      this.cuas_boost_mstr+"");     // double
		properties.setProperty(prefix+"cuas_boost_mstr",      this.cuas_boost_mstr+"");     // double
@@ -6992,6 +7006,8 @@ 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_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_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_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_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_mstr")!=null)      this.cuas_boost_mstr=Double.parseDouble(properties.getProperty(prefix+"cuas_boost_mstr"));
@@ -8263,6 +8279,8 @@ min_str_neib_fpn 0.35
		imp.cuas_boost_slow =       this.cuas_boost_slow;
		imp.cuas_boost_slow =       this.cuas_boost_slow;
		imp.cuas_boost_mv_lim =     this.cuas_boost_mv_lim;
		imp.cuas_boost_mv_lim =     this.cuas_boost_mv_lim;
		imp.cuas_boost_accum =      this.cuas_boost_accum;
		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_base =       this.cuas_accum_base;
		imp.cuas_accum_boosted =    this.cuas_accum_boosted;
		imp.cuas_accum_boosted =    this.cuas_accum_boosted;
		imp.cuas_boost_mstr =       this.cuas_boost_mstr;
		imp.cuas_boost_mstr =       this.cuas_boost_mstr;
+4 −0
Original line number Original line Diff line number Diff line
@@ -37,8 +37,10 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.nio.file.StandardCopyOption;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Collections;
import java.util.Comparator;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashMap;
@@ -9038,7 +9040,9 @@ if (debugLevel > -100) return true; // temporarily !
				if (stop_now) {
				if (stop_now) {
					break; // will still generate videos
					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++) {
			} // 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
			// combine videos if generated
			if ((video_sets_list.size() > 1) &&
			if ((video_sets_list.size() > 1) &&