给予一张图片和对其分析处理过的.json,要求编程实现用英文描述这张图片的解决方案。
图与json
文字描述
首先,图中的图片种类仅有45项。
所有种类
它们分别是4个场景里的东西,garden, farm, dinning room 和 park。
文档中说明有4个场景
那么,不同的场景下,描述的语言会有各自的特点。比如,在室内,树、花和草都是养在盆子里的,那么描述场景在室内的图片时,要加上 The trees and flowers and grass are in the bucket.且牛羊等动物不会在吃草,也就是不会有 The sheep are grazing 或 The cow is on the flowers.的描述。
另外,各种物体的位置关系也会影响对图片的描述。比如,当牛羊在车上而不在草地上时,它们就不会在吃草,也同样不会有 The sheep are grazing 或 The cow is on the flowers.这样的描述。当动物两边都有树时,要描述The trees are on both sides of the sheep(或其它动物)。
还有一点,我们通过left
属性,很容易判断两个物体的左右关系,通过zIndex
可以判断前后关系。至于top
属性,我们一般认为牛羊这些动物是不会在栅栏/房顶上的,但鸡可以在房顶上,蝴蝶可以飞在花上,猫可以在椅子、沙发上。
这时候引出一个问题:当我遇到生物A(比如猫)与环境B(比如椅子、沙发),A的top
属性小于B,那么说A在B上面是否正确?
经过思考,我认为,这个并不重要,只要是在另一个家具的上面,就可以说是on了。同理,在家具/植物/交通工具的左边/右边,也可以直接这么说。
这时候,我们就想到,静物与静物比较,动物尽可能与静物比较。
分为第一层描述对象与第二层描述对象 为每个第二层描述对象找到第一层的描述对象
为每个第一层描述对象找到另一个第一层的描述对象
第一层描述链有环,找到并消除zIndex从大到小的路径 拓扑排序地描述
如果树多于2棵,一棵树就不必以另一颗树/花为参照 花也是如此。
https://docs.python.org/3/library/argparse.html
由于json文件信息有限,无法判断鸟是停留在地面/树上还是在飞。只能一并认为在飞。
python 的 debug真的挺麻烦的,只知道输出debug法。