{
    "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.963999999999999968025576890795491635799407958984375,
    "flow_blue_ratio": 0.94869999999999998774313780813827179372310638427734375,
    "nonblue_ratio": 0.05129999999999999837907438404727145098149776458740234375,
    "white_ratio": 0,
    "brown_ratio": 0,
    "yellow_ratio": 0,
    "graycyan_ratio": 0.05079999999999999793498517419720883481204509735107421875,
    "dark_ratio": 0,
    "silty_strength": 0,
    "clean_strength": 0.0405999999999999972022379779446055181324481964111328125,
    "image_url": "https://cctv.envautomation.com/cctv/test_path23/de195/ecm2/roi_masked.jpg?t=1794439081",
    "image_file": "/home/envcctv/public_html/cctv/test_path23/de195/ecm2/roi_masked.jpg",
    "width": 1920,
    "height": 1080,
    "analyzed_at": "2026-11-12 07:18:01",
    "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": 5700,
            "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": 6039,
            "frame_blue_ratio": 0.9856000000000000316191517413244582712650299072265625,
            "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": 8883,
            "frame_blue_ratio": 0.9354999999999999982236431605997495353221893310546875,
            "flow_total": 14110,
            "flow_usable": 14110,
            "flow_blue_ratio": 0.88209999999999999520383653361932374536991119384765625,
            "flow_nonblue_ratio": 0.11790000000000000479616346638067625463008880615234375,
            "flow_white_ratio": 0.000100000000000000004792173602385929598312941379845142364501953125,
            "flow_brown_ratio": 0,
            "flow_yellow_ratio": 0,
            "flow_graycyan_ratio": 0.1166999999999999981792342396147432737052440643310546875,
            "flow_dark_ratio": 0,
            "mass_row_ratio": 0.138600000000000000976996261670137755572795867919921875,
            "run_ratio": 0.138600000000000000976996261670137755572795867919921875,
            "max_row_ratio": 1,
            "roi_clean_strength": 0.0934999999999999997779553950749686919152736663818359375,
            "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
        }
    }
}