我做了一个开源 AI 天眼,专门在卫星图上找偷倒垃圾
正文
我最近做了一个小实验:把几张疑似垃圾倾倒点的卫星图,直接丢给多模态大模型,问它一句:
“这个是垃圾倾倒的区域吗?”
结果很有意思。
模型不是完全看不懂图。它会认真分析道路、裸地、建筑、风机、施工痕迹,还会给出一长串看起来很专业的理由。
但问题是:它经常一本正经地判断错。
比如这张图,它把白色区域判断成了风电场施工痕迹:

另一张图,它觉得“有较大可能是垃圾倾倒区”,但语气非常犹豫:

再看这张,它更倾向认为是工程施工或临时堆土场:

这就是多模态模型落到真实业务里最常见的问题:
它不是不会分析,而是它会按照自己的“常识惯性”去分析。
你给它一张卫星图,问“是不是垃圾”,它脑子里先冒出来的不是环保巡查,而是更常见的图像解释:施工、裸地、风机、采石、土方、道路。
这听起来像是模型能力不行。
但我后来发现,问题不完全在模型。
更大的问题是:我们问错了问题。
直接问“是不是垃圾”,其实是一个很差的问题
人看到一张卫星图,会下意识结合很多背景经验:
尤其是居民区这个条件,很关键。
偷倒垃圾的人通常会避开居民区。因为垃圾有味道,运输和倾倒也会留下动静,如果附近有居民,很容易被发现和举报。
所以在这个场景里,“有没有居民区”不是一个普通视觉问题,而是判断倾倒行为是否合理的关键条件。
如果不把这层业务逻辑讲给模型,它就只会盯着画面里的白色区域、裸露地块、道路形态,然后用它自己的常识去猜。
这时候你问:
这是不是垃圾?
模型拿到的是一个很模糊的视觉分类题。
它会试图回答:
这块白色区域像不像垃圾?
这个问法本身就容易翻车。
因为在卫星图里,垃圾倾倒点不一定能看清“垃圾袋”“塑料瓶”“废料堆”。很多时候,它只是一个道路尽头的异常斑块、一片不规则裸露地、一段和周围环境不协调的扰动区域。
换句话说,垃圾倾倒识别不是单纯问:
图里有没有垃圾?
而是要问:
这个地点是否符合“偷偷倾倒垃圾”的空间行为逻辑?
这两个问题完全不一样。
真正有用的问法:把“识别垃圾”改成“判断倾倒行为链”
后来我把提示词改成了另一种结构。
不再让模型凭感觉判断“像不像垃圾”,而是让它按一个业务链条去判断:
最后再给它一个判断规则:
道路可达 + 周边没有成片敏感建筑 + 存在不规则异常扰动,才倾向判定为垃圾倾倒。
这个提示词不是让模型“更大胆”,也不是让模型“更保守”。
它的核心是把问题从一个视觉分类题,改成一个业务推理题。
改完之后,效果开始变得可用
我把这套逻辑做成了一个本地 Web 工具。
同样是上传卫星图,模型不再只是回答“像不像垃圾”,而是按照候选区域、道路、居民区、施工痕迹、异常扰动这些条件进行判断。
下面是几张真实跑出来的效果。



这组效果最重要的不是“模型终于会看图了”。
真正重要的是:我们把问题翻译成了它能判断的结构。
准确率怎样?
我用 36 张卫星图样本做了一轮测试。
默认模型使用qwen3.6-plus,提示词按上面的业务链条重写后,结果是:
这个数字不应该被夸大。36 张样本很少,一张图就会影响 2.78 个百分点。
但它至少说明一件事:
多模态模型不是直接拿来就能做业务,它需要被“翻译”成业务问题。
直接问“是不是垃圾”,模型会在自己的常识里打转。
把问题改成“是否符合垃圾倾倒行为链”,它才开始接近我们真正想要的判断。
我把它开源了
为了让这个实验能被复现,我把它做成了一个本地 Web 工具,并开源出来。
用法很简单:
开源地址:
https://github.com/CosmosShadow/satellite-waste-detector
它不是一个在线平台,也不是执法工具,更不能替代现场核查。
它更像是一个可以自己部署、自己改提示词、自己换模型的实验工具。
真正有意思的点是:
AI 不缺回答,真正稀缺的是把问题问对。
而想把问题问对,靠的不是玄学提示词。
靠的是你真的理解这个业务。
夜雨聆风