{
    "success": true,
    "project": "GDE195 / DE195",
    "ecm": 2,
    "note": "DE195 ECM 2 — 3 outlet pipe ROI analysis",
    "roi_count": 3,
    "status": "ok",
    "label_color": "green",
    "label_text": "Good",
    "display_text": "Good",
    "reason": "No water flow or clean water flow detected from ECM 2 3 outlet pipe ROIs",
    "has_discharge_pipe": true,
    "is_real_flow": true,
    "is_clean_water": true,
    "is_silty_water": false,
    "detected_pipe_count": 3,
    "active_flow_count": 1,
    "muddy_roi_count": 0,
    "clean_roi_count": 1,
    "blue_ratio": 0.9637000000000000010658141036401502788066864013671875,
    "flow_blue_ratio": 0.94840000000000002078337502098293043673038482666015625,
    "nonblue_ratio": 0.051600000000000000033306690738754696212708950042724609375,
    "white_ratio": 0,
    "brown_ratio": 0,
    "yellow_ratio": 0,
    "graycyan_ratio": 0.050999999999999996724842077355788205750286579132080078125,
    "dark_ratio": 0,
    "silty_strength": 0,
    "clean_strength": 0.040899999999999998856470284636088763363659381866455078125,
    "image_url": "https://cctv.envautomation.com/cctv/test_path23/de195/ecm2/roi_masked.jpg?t=1794439319",
    "image_file": "/home/envcctv/public_html/cctv/test_path23/de195/ecm2/roi_masked.jpg",
    "width": 1920,
    "height": 1080,
    "analyzed_at": "2026-11-12 07:21:59",
    "db_name": "envcctv_de195",
    "db_table": "de195_image_result",
    "db_saved": true,
    "db_error": "",
    "roi_debug": {
        "pipe_1_zone": {
            "roi": [
                0.26500000000000001332267629550187848508358001708984375,
                0.309999999999999997779553950749686919152736663818359375,
                0.309999999999999997779553950749686919152736663818359375,
                0.465000000000000024424906541753443889319896697998046875
            ],
            "px": [
                508,
                334,
                595,
                502
            ],
            "frame_usable": 5699,
            "frame_blue_ratio": 0.9856000000000000316191517413244582712650299072265625,
            "flow_total": 8909,
            "flow_usable": 8909,
            "flow_blue_ratio": 1,
            "flow_nonblue_ratio": 0,
            "flow_white_ratio": 0,
            "flow_brown_ratio": 0,
            "flow_yellow_ratio": 0,
            "flow_graycyan_ratio": 0,
            "flow_dark_ratio": 0,
            "mass_row_ratio": 0,
            "run_ratio": 0,
            "max_row_ratio": 0,
            "roi_clean_strength": 0,
            "roi_muddy_strength": 0,
            "pipe_detected": true,
            "clean_flow_detected": false,
            "muddy_flow_detected": false,
            "flow_detected": false,
            "muddy_roi_detected": false,
            "clean_roi_detected": false
        },
        "pipe_2_zone": {
            "roi": [
                0.3449999999999999733546474089962430298328399658203125,
                0.330000000000000015543122344752191565930843353271484375,
                0.40000000000000002220446049250313080847263336181640625,
                0.465000000000000024424906541753443889319896697998046875
            ],
            "px": [
                662,
                356,
                768,
                502
            ],
            "frame_usable": 6038,
            "frame_blue_ratio": 0.98480000000000000870414851306122727692127227783203125,
            "flow_total": 9432,
            "flow_usable": 9432,
            "flow_blue_ratio": 1,
            "flow_nonblue_ratio": 0,
            "flow_white_ratio": 0,
            "flow_brown_ratio": 0,
            "flow_yellow_ratio": 0,
            "flow_graycyan_ratio": 0,
            "flow_dark_ratio": 0,
            "mass_row_ratio": 0,
            "run_ratio": 0,
            "max_row_ratio": 0,
            "roi_clean_strength": 0,
            "roi_muddy_strength": 0,
            "pipe_detected": true,
            "clean_flow_detected": false,
            "muddy_flow_detected": false,
            "flow_detected": false,
            "muddy_roi_detected": false,
            "clean_roi_detected": false
        },
        "pipe_3_zone": {
            "roi": [
                0.434999999999999997779553950749686919152736663818359375,
                0.36999999999999999555910790149937383830547332763671875,
                0.5,
                0.54000000000000003552713678800500929355621337890625
            ],
            "px": [
                835,
                399,
                960,
                583
            ],
            "frame_usable": 8880,
            "frame_blue_ratio": 0.935400000000000009237055564881302416324615478515625,
            "flow_total": 14110,
            "flow_usable": 14110,
            "flow_blue_ratio": 0.881299999999999972288833305356092751026153564453125,
            "flow_nonblue_ratio": 0.1186999999999999999555910790149937383830547332763671875,
            "flow_white_ratio": 0.000100000000000000004792173602385929598312941379845142364501953125,
            "flow_brown_ratio": 0,
            "flow_yellow_ratio": 0,
            "flow_graycyan_ratio": 0.117400000000000004352074256530613638460636138916015625,
            "flow_dark_ratio": 0,
            "mass_row_ratio": 0.138600000000000000976996261670137755572795867919921875,
            "run_ratio": 0.138600000000000000976996261670137755572795867919921875,
            "max_row_ratio": 1,
            "roi_clean_strength": 0.0940000000000000002220446049250313080847263336181640625,
            "roi_muddy_strength": 0,
            "pipe_detected": true,
            "clean_flow_detected": true,
            "muddy_flow_detected": false,
            "flow_detected": true,
            "muddy_roi_detected": false,
            "clean_roi_detected": true
        }
    }
}