1
This commit is contained in:
+17
-100
@@ -34,117 +34,33 @@ app:
|
||||
# 图像生成(管理端「AI 生成图片」):provider 必填项缺失时生成接口返回「图像生成服务未配置」
|
||||
imageGen:
|
||||
provider: localai # dashscope | localai
|
||||
baseUrl: "http://192.168.3.210:18080" # localai 必填:训练机 local-ai 地址(/v1/images/generations)
|
||||
model: z-image-turbo # localai 上加载的模型名;dashscope 用 qwen-image-3.0
|
||||
baseUrl: "http://localhost:8080" # localai 必填:训练机 local-ai 地址(/v1/images/generations)
|
||||
model: flux2-klein # localai 上加载的模型名;dashscope 用 qwen-image-3.0
|
||||
apiKey: "" # dashscope 必填:DashScope API Key
|
||||
timeoutSeconds: 600 # 每张生成超时(默认 120;z-image-turbo 首次加载含模型入显存,稳态秒级~分钟级)
|
||||
# 通用提示词模板(管理端填「动物名称」时启用,每张随机取池组装):{species} 优先用表单填写的名称,
|
||||
# 未填则按数据集名取 speciesByDataset 池(再未配置直接用数据集名);{count} 为数量词(固定 "1只",每张仅 1 个目标;原表单
|
||||
# 数量选择已取消);{scene}/{action}/{light} 池内随机;{tone} 为物种轮廓色词(默认深色,白化个体配浅色);
|
||||
# 物种只写名字不写羽毛细节(细节会把镜头拉近,详见技术设计)。不带拍摄角度描述(2026-08-28):
|
||||
# 角度描述会与目标位置耦合,仰拍使贴地目标沉底、固定俯拍构图单一——交由模型平视先验自由构图,
|
||||
# 目标自然落在中部/上部
|
||||
poolSize: 1 # 生成任务并发度(z-image 显存独占,默认 1)
|
||||
# 通用提示词模板:{species} 取数据集 gen_species(单值,空回退数据集名);{count} 为数量词
|
||||
# (固定 "1只",每张仅 1 个目标;原表单数量选择已取消);{scene}/{action}/{light} 池内随机
|
||||
# (scene/action/occlusion 从数据集表 gen_scenes/gen_actions/gen_occlusions 池随机,无 config 兜底);
|
||||
# {tone} 取数据集表 gen_tone(默认深色,白化个体配浅色);{sizeHint} 按数据集表 gen_heights 站高与
|
||||
# 表单距离算出像素占比。物种只写名字不写羽毛细节(细节会把镜头拉近,详见技术设计)。不带拍摄角度
|
||||
# 描述(2026-08-28):角度描述会与目标位置耦合,仰拍使贴地目标沉底、固定俯拍构图单一——
|
||||
# 交由模型平视先验自由构图,目标自然落在中部/上部
|
||||
promptTemplate: "野外大远景实拍:广角镜头下{scene},{distanceWord}有且仅有{count}{species}的小小身影{sizeHint}在{action},{occlusion},{species}离镜头很远,只是很小的{tone}轮廓,隐约可辨,画面绝大部分是{scene},没有任何靠近镜头的动物,{light},写实野外摄影,真实照片质感"
|
||||
speciesByDataset: # 数据集名 → 物种池(表单未填动物名称时随机取一个)
|
||||
鸽子: [家鸽,火斑鸠,虎纹斑鸠,珠颈斑鸠,灰斑鸠]
|
||||
雉鸡: [雉鸡,白雉鸡]
|
||||
兔子: [兔子]
|
||||
鸭子: [野鸭]
|
||||
鹌鹑: [鹌鹑]
|
||||
speciesTone: # 物种轮廓色词(模板 {tone} 占位,未配置默认深色):远景小目标深色剪影易辨,
|
||||
# 白化个体(白雉鸡)用「深色轮廓」描述与白色羽毛矛盾,须配浅色
|
||||
白雉鸡: 浅色
|
||||
scenes: # 环境场景池(统一远景原则:每条含开阔/延伸向远方/地平线元素,
|
||||
# 把地平线推开、消除近拍暗示;同一短语在模板中出现两次,须两处都读得通)
|
||||
- "一望无际的玉米地,玉米秆两米多高,田间土路和田埂延伸向地平线"
|
||||
- "一望无际的金黄麦茬田,收割后一直铺到地平线"
|
||||
- "乡村土路穿过广阔的农田伸向远方,路边杂草丛生"
|
||||
- "广阔的农田和道路延伸向远方,一根细电线横贯画面远处"
|
||||
- "广阔田野间一棵高大的树,四周的农田一直延伸到地平线"
|
||||
- "村边开阔的打谷场延伸向远方,尽头是零星的农舍"
|
||||
- "收割后的稻茬田一望无际,铺向远处的村庄"
|
||||
- "果树成行的果园延伸向远方,树下是剪短的草地"
|
||||
- "开阔的沙石滩地和蜿蜒的乡间水渠延伸向远处的田野"
|
||||
- "长满枯黄荒草的田埂和弃耕地延伸向远方"
|
||||
actions: [觅食, 走动啄食, 低头啄食, 踱步, 停落休憩]
|
||||
lights: [清晨柔和阳光, 正午明亮天光, 傍晚金色斜阳, 阴天柔和散射光]
|
||||
sceneByDataset: # 数据集名 → 场景池(按动物习性配置,未配置的数据集回退通用 scenes;
|
||||
# 每条仍含「延伸向远方」元素,且同一短语在模板中出现两次须两处都读得通)
|
||||
雉鸡:
|
||||
- "田边茂密的草丛和矮灌丛连绵延伸到远方"
|
||||
- "荒草坡和灌木丛连成一片,一直铺向远处地平线"
|
||||
- "收割后的农田边缘杂草丛生,矮灌丛点缀延伸到远方"
|
||||
- "稀疏灌木点缀的草坡,一直延伸到远处的林地边缘"
|
||||
兔子:
|
||||
- "枯黄的草坡和荒草地一直延伸到远方"
|
||||
- "弃耕地和田埂长满野草,延伸向远处的林地"
|
||||
- "草丛和矮灌丛交错的荒地,向远处延展"
|
||||
鸭子:
|
||||
- "宽阔的池塘水面延伸到远方,岸边芦苇丛生"
|
||||
- "水田和浅滩连成一片,水面延伸到远处"
|
||||
- "河湖水面平展到远方,岸边是泥滩和杂草"
|
||||
鹌鹑:
|
||||
- "茂密草丛的田野,草层延伸到远方"
|
||||
- "稻茬田边草丛和荒地相连,延伸向远处"
|
||||
actionByDataset: # 数据集名 → 动作池(按动物习性;动作词不得以「在/于」开头,模板为「在{action}」)
|
||||
雉鸡: [低头啄食, 草丛中觅食, 踱步, 停歇理羽, 警觉张望]
|
||||
兔子: [低头啃食草叶, 警觉地竖起耳朵, 小步跳跃前行, 蹲坐不动, 啃食草叶]
|
||||
鸭子: [缓缓游动于水面, 低头潜入水中觅食, 水面梳理羽毛, 缓慢划水前行, 岸边泥滩觅食]
|
||||
鹌鹑: [低头啄食, 草丛间觅食, 小步疾走, 停歇不动]
|
||||
# 遮挡描述池(模板 {occlusion} 占位,插在「在{action}」之后):身体完全暴露的个体对识别/标注训练
|
||||
# 无意义,每张必取一条(全池覆盖轻~重遮挡,程度随机);遮挡物多样(杂草/树叶/枝条等),须与场景自洽
|
||||
occlusions: # 通用遮挡池(未配置 occlusionByDataset 的数据集回退此池)
|
||||
- "身体部分被前景的杂草遮挡"
|
||||
- "大半个身体隐入草丛,只露出头背"
|
||||
- "身体被身前的杂草枝条半遮半掩"
|
||||
- "只有头背部从茂密草丛中露出"
|
||||
- "身体部分被低垂的树叶和枝条遮挡"
|
||||
- "大半个身体隐在枝叶间,只露出头背"
|
||||
occlusionByDataset: # 数据集名 → 遮挡池(按动物习性与场景配置;未配置回退通用 occlusions)
|
||||
雉鸡:
|
||||
- "身体部分被前方的草丛和矮灌丛遮挡"
|
||||
- "大半个身子隐入灌丛枝叶间,只露出头颈"
|
||||
- "身体被身前的枯草丛半遮半掩"
|
||||
- "只有头背部从密草丛中露出"
|
||||
- "身体藏在树影下,被垂落的树叶半遮"
|
||||
兔子:
|
||||
- "身体部分被荒草遮挡,只露出头部"
|
||||
- "大半身体隐入草丛,一对长耳竖在草尖上方"
|
||||
- "身体被身前的枯黄野草半掩"
|
||||
- "身体部分被林缘的树叶和枝条遮挡"
|
||||
鸭子:
|
||||
- "身体部分隐入岸边芦苇丛中"
|
||||
- "半身没入水面,只露出头背"
|
||||
- "身体被岸边的芦苇和杂草半遮"
|
||||
- "身体部分隐入岸边垂落的枝叶间"
|
||||
鹌鹑:
|
||||
- "身体隐在密草丛中,只露出头部"
|
||||
- "大半身体藏进草丛,隐约只见头和背部"
|
||||
- "身体藏在草叶和落叶之间,只露出头部"
|
||||
# 目标尺寸提示(sizeHint):按「体高 × focalPx ÷ 表单距离」算出目标在图中的像素高与占比,
|
||||
# 注入模板 {sizeHint}——把「厘米」换算成「米」再参与投影公式;focalPx = 图高/2 ÷ tan(vfov/2)
|
||||
# 注入模板 {sizeHint}——把「厘米」换算成「米」再参与投影公式;focalPx = 图高/2 ÷ tan(vfov/2);
|
||||
# 站高取数据集表 gen_heights(创建数据集时 VLM 生成,界面不维护,代码/配置不硬编码)
|
||||
assumedVfovDeg: 52 # 镜头垂直视场角(度),固定为手机默认主摄(2026-08-28 用户定案;
|
||||
# 曾随机 [15,90]、曾试超广角 90,均已否决);体高按物种查 speciesHeights
|
||||
speciesHeights: # 物种站高(厘米,垂直尺度:鸟=脚底到头顶、兽=蹲坐高度);
|
||||
# 与「高度」像素描述及检测框高(≈站高)自洽,勿用体长(体长是水平尺度);
|
||||
# 未配置的物种代码兜底 35cm
|
||||
家鸽: 20
|
||||
珠颈斑鸠: 20
|
||||
灰斑鸠: 18
|
||||
火斑鸠: 15
|
||||
虎纹斑鸠: 18
|
||||
雉鸡: 55
|
||||
白雉鸡: 55
|
||||
兔子: 35
|
||||
野鸭: 35
|
||||
鹌鹑: 12
|
||||
# 曾随机 [15,90]、曾试超广角 90,均已否决)
|
||||
|
||||
# 训练通道(并发度 1:GPU 独占,同时仅一个 running 任务):
|
||||
# mode=subprocess 训练机与服务器同机;mode=ssh 异机(训练脚本/数据集经 ssh 通道同步)
|
||||
training:
|
||||
mode: ssh # subprocess | ssh
|
||||
ssh:
|
||||
host: "192.168.3.210" # 训练机地址(mode=ssh 必填)
|
||||
# host: "192.168.3.210" # 训练机地址(mode=ssh 必填)
|
||||
host: "192.168.3.210"
|
||||
user: "root"
|
||||
port: 22
|
||||
privateKeyPath: "" # 私钥路径与 password 二选一
|
||||
@@ -167,7 +83,8 @@ localAi:
|
||||
confConfirmed: 0.2 # 高于此视为确认(class 0),否则疑似(class 1)
|
||||
overlapThreshold: 0.3 # 重叠去重阈值(交叠/较小框面积,NMS 风格;RF-DETR 同目标常输出一大一小两框,minIoU 比 IoU 更能命中)
|
||||
inputSize: 700 # 提交前整图等比缩放最长边
|
||||
classNames: [pheasant, suspect] # 标注类别名(写入 data.yaml,随 result.json 存模型 labels)
|
||||
# 标注类别名(写入 data.yaml,随 result.json 存模型 labels)从数据集表取:
|
||||
# 第一类 = gen_species(空回退数据集名),第二类 = gen_classes(空回退 class0/class1)
|
||||
|
||||
labelTask:
|
||||
# 预标注并发度(逐张调 RF-DETR,缺失或非法时回退默认值)
|
||||
|
||||
Reference in New Issue
Block a user