LPX55's picture
feat: add flowchart representation of image prediction process and enhance README with flowchart and multi-model consensus methods overview
e2d09ed
digraph ImagePredictionFlow {
graph [fontname="Arial", fontsize="10", rankdir="TB"]; // Top-to-Bottom, Reduced Width
node [shape="rect", style="rounded,filled", fontname="Arial", fontsize="10", fillcolor="lightblue", gradientangle="90"];
edge [fontname="Arial", fontsize="8"];
A [label="User Upload,\nPredict", fillcolor="lightgreen"]; //Shorter Label
B [label="Img Pre-proc,\nAgent Init", fillcolor="lightyellow"];
subgraph cluster_models {
label = "Model Ensemble";
style = "dashed";
ImageIn [shape=point, label="", width=0, height=0];
Model1 [label="Model1", fillcolor="lightcoral"]; //Shorter Labels
Model2 [label="Model2", fillcolor="lightcoral"];
Model3 [label="Model3", fillcolor="lightcoral"];
Model4 [label="Model4", fillcolor="lightcoral"];
Model5 [label="Model5", fillcolor="lightcoral"];
Model6 [label="Model6", fillcolor="lightcoral"];
Model7 [label="Model7", fillcolor="lightcoral"];
WeightedConsensusInput [label="Model Results", fillcolor="lightyellow"]; //Shorter Label
ImageIn -> Model1; ImageIn -> Model2; ImageIn -> Model3; ImageIn -> Model4; ImageIn -> Model5; ImageIn -> Model6; ImageIn -> Model7;
Model1 -> WeightedConsensusInput; Model2 -> WeightedConsensusInput; Model3 -> WeightedConsensusInput; Model4 -> WeightedConsensusInput; Model5 -> WeightedConsensusInput; Model6 -> WeightedConsensusInput; Model7 -> WeightedConsensusInput;
}
ContextualIntelligenceAgent [label="Contextual\nIntelligence Agent", fillcolor="lightcyan"]; //Shorter Label
BaggingAgent [label="BaggingAgent", fillcolor="lightcyan"]; //Shorter Label
DeepEnsembleAgent [label="DeepEnsemble\nAgent", fillcolor="lightcyan"]; //Shorter Label
EvolutionEnsembleAgent [label="EvolutionEnsemble\nAgent", fillcolor="lightcyan"]; //Shorter Label
WeightManager [label="Weight\nManager", fillcolor="lightcyan"]; //Shorter Label
WeightedConsensus [label="Weighted\nConsensus", fillcolor="lightgreen"];
OptimizeAgent [label="Weight\nOpt Agent", fillcolor="lightcyan"]; //Shorter Label
subgraph cluster_forensics {
label = "Forensic Analysis";
style = "dashed";
ForensicIn [shape=point, label="", width=0, height=0];
GradientProcessing [label="Gradient\nProcessing", fillcolor="lightpink"]; //Shorter Labels
MinMaxProcessing [label="MinMax\nProcessing", fillcolor="lightpink"];
ELAPorcessing [label="ELAPorcessing", fillcolor="lightpink"];
BitPlaneExtraction [label="BitPlane\nExtraction", fillcolor="lightpink"];
WaveletBasedNoiseAnalysis [label="Wavelet\nNoise Analysis", fillcolor="lightpink"];
AnomalyAgent [label="Anomaly\nDetection", fillcolor="lightcyan"]; //Shorter Label
ForensicIn -> GradientProcessing; ForensicIn -> MinMaxProcessing; ForensicIn -> ELAPorcessing; ForensicIn -> BitPlaneExtraction; ForensicIn -> WaveletBasedNoiseAnalysis;
GradientProcessing -> AnomalyAgent; MinMaxProcessing -> AnomalyAgent; ELAPorcessing -> AnomalyAgent; BitPlaneExtraction -> AnomalyAgent; WaveletBasedNoiseAnalysis -> AnomalyAgent;
}
DataLoggingAndOutput [label="Data Logging\nOutput", fillcolor="lightsalmon"];//Shorter Label
ResultsDisplay [label="Results", fillcolor="lightgreen"]; //Shorter Label
// Connections
A -> B;
B -> ImageIn;
WeightedConsensusInput -> ContextualIntelligenceAgent; WeightedConsensusInput -> BaggingAgent; WeightedConsensusInput -> DeepEnsembleAgent; WeightedConsensusInput -> EvolutionEnsembleAgent; // Connect agents
ContextualIntelligenceAgent -> WeightManager; BaggingAgent -> WeightManager; DeepEnsembleAgent -> WeightManager; EvolutionEnsembleAgent -> WeightManager; // Agents to WM
WeightManager -> WeightedConsensus;
WeightedConsensus -> OptimizeAgent; OptimizeAgent -> WeightManager;
WeightedConsensus -> ForensicIn; AnomalyAgent -> DataLoggingAndOutput;
DataLoggingAndOutput -> ResultsDisplay;
}