This commit is contained in:
2026-08-28 17:04:23 +08:00
parent 9fe0fd6cfc
commit dc9abf07a5
119 changed files with 197 additions and 219 deletions
+60 -34
View File
@@ -39,48 +39,74 @@ imageGen:
apiKey: "" # dashscope 必填:DashScope API Key
timeoutSeconds: 600 # 每张生成超时(默认 120z-image-turbo 首次加载含模型入显存,稳态秒级~分钟级)
# 通用提示词模板(管理端填「动物名称」时启用,每张随机取池组装):{species} 优先用表单填写的名称,
# 未填则按数据集名取 speciesByDataset 池(再未配置直接用数据集名);{count} 为数量词(表单
# animalCount 一致,防文数不符);{scene}/{action}/{light} 池内随机;物种只写名字不写羽毛细节
# (细节会把镜头拉近,详见技术设计)
promptTemplate: "野外大远景实拍:广角镜头下{scene}{distanceWord}有{count}{species}的小小身影在{action},鸟离镜头很远,只是很小的深色鸟形轮廓,隐约可辨,画面绝大部分是{scene},没有任何靠近镜头的动物,{light},写实野外摄影,真实照片质感"
distanceWord: "二十多米外" # 与校验距离带呼应的观感词
# 未填则按数据集名取 speciesByDataset 池(再未配置直接用数据集名);{count} 为数量词(固定 "1只",每张仅 1 个目标;原表单
# 数量选择已取消);{scene}/{action}/{light} 池内随机;物种只写名字不写羽毛细节
# (细节会把镜头拉近,详见技术设计)。不带拍摄角度描述(2026-08-28):角度描述会与目标位置耦合,
# 仰拍使贴地目标沉底、固定俯拍构图单一——交由模型平视先验自由构图,目标自然落在中部/上部
promptTemplate: "野外大远景实拍:广角镜头下{scene}{distanceWord}有且仅有{count}{species}的小小身影{sizeHint}在{action}{species}离镜头很远,只是很小的深色轮廓,隐约可辨,画面绝大部分是{scene},没有任何靠近镜头的动物,{light},写实野外摄影,真实照片质感"
speciesByDataset: # 数据集名 → 物种池(表单未填动物名称时随机取一个)
鸽子: [家鸽,火斑鸠,虎纹斑鸠,珠颈斑鸠,灰斑鸠]
雉鸡: [雉鸡]
兔子: [兔子]
鸭子: [野鸭]
鹌鹑: [鹌鹑]
scenes: # 环境场景池(同一短语在模板中出现两次,须两处都读得通)
- "广袤的玉米地,玉米秆两米多高,田间土路和田埂向远处地平线延伸"
- "收割后的金黄麦茬田铺向地平线"
- "乡村土路穿过农田伸向远方,路边杂草丛生"
- "农田和道路延伸向远方,一根细电线横贯画面远处"
- "农田边一棵大树和远处成片的田野"
- "农家院落外的打谷场和远处农舍"
- "收割后的稻茬田铺向远处村庄"
- "果树成行的果园和树下剪短的草地"
- "乡间水渠和沙石滩地,渠水流向远方"
- "长满枯黄荒草的田埂和弃耕地"
scenes: # 环境场景池(统一远景原则:每条含开阔/延伸向远方/地平线元素,
# 把地平线推开、消除近拍暗示;同一短语在模板中出现两次,须两处都读得通)
- "一望无际的玉米地,玉米秆两米多高,田间土路和田埂延伸向地平线"
- "一望无际的金黄麦茬田,收割后一直铺到地平线"
- "乡村土路穿过广阔的农田伸向远方,路边杂草丛生"
- "广阔的农田和道路延伸向远方,一根细电线横贯画面远处"
- "广阔田野间一棵高大的树,四周的农田一直延伸到地平线"
- "村边开阔的打谷场延伸向远方,尽头是零星的农舍"
- "收割后的稻茬田一望无际,铺向远处的村庄"
- "果树成行的果园延伸向远方,树下是剪短的草地"
- "开阔的沙石滩地和蜿蜒的乡间水渠延伸向远处的田野"
- "长满枯黄荒草的田埂和弃耕地延伸向远方"
actions: [觅食, 走动啄食, 低头啄食, 踱步, 停落休憩]
lights: [清晨柔和阳光, 正午明亮天光, 傍晚金色斜阳, 阴天柔和散射光]
# 生成图距离校验(物理公式):估算距离 d = speciesHeight × focalPx ÷ 目标像素高
# focalPx 由假设视场角推出:f = 图高/2 ÷ tan(vfov/2)vfov=52° 时 704x1248 图 f≈1281px
# 换算 0.35m 鸟 15px ≈ 30 米,与实测观感标定一致);体高按表单物种查 speciesHeights
# (不同物种体型不同,不能共用一个系数),未配置的物种用 default
assumedVfovDeg: 52
speciesHeights:
default: 0.35
家鸽: 0.35
珠颈斑鸠: 0.30
灰斑鸠: 0.30
火斑鸠: 0.25
虎纹斑鸠: 0.30
野鸡: 0.45
兔子: 0.30
野鸭: 0.30
鹌鹑: 0.15
# 校验用检测置信度阈值(预标注的 localAi.threshold=0.08 宁多勿漏会误把叶片土块算鸟,校验须高阈值)
validateThreshold: 0.3
sceneByDataset: # 数据集名 → 场景池(按动物习性配置,未配置的数据集回退通用 scenes;
# 每条仍含「延伸向远方」元素,且同一短语在模板中出现两次须两处都读得通)
雉鸡:
- "田边茂密的草丛和矮灌丛连绵延伸到远方"
- "荒草坡和灌木丛连成一片,一直铺向远处地平线"
- "收割后的农田边缘杂草丛生,矮灌丛点缀延伸到远方"
兔子:
- "枯黄的草坡和荒草地一直延伸到远方"
- "弃耕地和田埂长满野草,延伸向远处的林地"
- "草丛和矮灌丛交错的荒地,向远处延展"
鸭子:
- "宽阔的池塘水面延伸到远方,岸边芦苇丛生"
- "水田和浅滩连成一片,水面延伸到远处"
- "河湖水面平展到远方,岸边是泥滩和杂草"
:
- "清澈的池塘水面下,水草和沙底延伸到远处"
- "河流浅滩水域,水底砂石和水草延伸到远方"
- "湖水清澈见底,水下的景色延伸到远处"
鹌鹑:
- "茂密草丛的田野,草层延伸到远方"
- "稻茬田边草丛和荒地相连,延伸向远处"
actionByDataset: # 数据集名 → 动作池(按动物习性;动作词不得以「在/于」开头,模板为「在{action}」)
雉鸡: [低头啄食, 草丛中觅食, 踱步, 停歇理羽, 警觉张望]
兔子: [低头啃食草叶, 警觉地竖起耳朵, 小步跳跃前行, 蹲坐不动, 啃食草叶]
鸭子: [缓缓游动于水面, 低头潜入水中觅食, 水面梳理羽毛, 缓慢划水前行, 岸边泥滩觅食]
: [缓慢游动, 贴着水底游动, 水草丛间穿行, 静止悬浮, 缓慢觅食]
鹌鹑: [低头啄食, 草丛间觅食, 小步疾走, 停歇不动]
# 目标尺寸提示(sizeHint):按「体高 × focalPx ÷ 表单距离」算出目标在图中的像素高与占比,
# 注入模板 {sizeHint}——把「厘米」换算成「米」再参与投影公式;focalPx = 图高/2 ÷ tan(vfov/2)
assumedVfovDeg: 52 # 镜头垂直视场角(度),固定为手机默认主摄(2026-08-28 用户定案;
# 曾随机 [15,90]、曾试超广角 90,均已否决);体高按物种查 speciesHeights
speciesHeights: # 物种站高(厘米,垂直尺度:鸟=脚底到头顶、兽=蹲坐高度、鱼=背到腹);
# 与「高度」像素描述及检测框高(≈站高)自洽,勿用体长(体长是水平尺度);
# 未配置的物种代码兜底 35cm
家鸽: 20
珠颈斑鸠: 20
灰斑鸠: 18
火斑鸠: 15
虎纹斑鸠: 18
野鸡: 55
兔子: 35
野鸭: 35
鹌鹑: 12
# 训练通道(并发度 1:GPU 独占,同时仅一个 running 任务):
# mode=subprocess 训练机与服务器同机;mode=ssh 异机(训练脚本/数据集经 ssh 通道同步)