基于改进LPTN网络的多任务生成模型

项目需求:

开发一个人体肤色均匀功能

现有技术参考:

LPTN生成网络,实现单维度图像的生成

https://github.com/csjliang/LPTN

存在问题:

如何让模型区分不同维度,实现多维度的生成。如:一共有五种肤色选择,如何通过一个模型实现按需生成,希望生成白色或者棕色皮肤等。而非每一个维度训练一个模型,浪费资源的占用。

解决思路:

参考stargan方法,改造LPTN网络的生成器和判别器,将生成器的输入从1个(图像)变为2个(图像加标签)。标签分类和生成图像真伪判别公用一个判别器,除了判断生成图像的真伪外,返回图像的类别。

1.数据准备与加载

1)首先拷贝LPTN公开代码到自己的工程,配置好相关的环境(不再赘述)

2)准备数据集,在datasets/my_data(没有的自己创建)文件夹底下创建train和test两个文件夹,在train和test文件夹底下分别再创建A和B文件夹,A文件夹中存放原始图像数据,B中存放需要生成的目标图像数据(标签图像),注意A和B文件夹底下图像名称需要对应匹配。保证数据中人体皮肤占比大,否则生成效果不理想。

3)如何给每个图像输入对应的标签?拟在读取图像数据时根据每个图像的名称进行标签添加。为每张图像的名称添加对应的标签前缀,如:目前图像是白色的则添加“white_"前缀。前缀添加脚本代码如下:

import os


def add_prefix_to_images(folder_path, prefix):
    # 遍历文件夹
    for filename in os.listdir(folder_path):
        # 检查文件是否为图片(这里简单判断后缀为.jpg)
        if filename.endswith(".jpg") or filename.endswith(".png"):
            # 构建完整的文件路径
            old_path = os.path.join(folder_path, filename)

            # 构建新的文件名,添加指定前缀
            new_filename = f"{prefix}_{filename}"
            new_path = os.path.join(folder_path, new_filename)

            # 重命名文件
            os.rename(old_path, new_path)
            print(f"Renamed: {filename} to {new_filename}")

#图像存储路径
folder_path_A = r'E:\chen\skin_512\test\A'
prefix = "white"
# 调用函数
add_prefix_to_images(folder_path_A, prefix)

4)修改LPTN代码中codes/data/paired_image_dataset.py文件,为数据加载时获取图像的标签,定义extract_label_from_filename方法,根据“_”切割方法,切割出图像的标签,定义label_to_onehot方法,将标签转换为onehot编码,代码如下:


                
### 热网络模型 LPTN 的介绍 热网络模型 (Thermal Network Model, LPTN) 是一种用于模拟和分析复杂系统中热量传递行为的方法。它通过将复杂的物理结构简化为一系列节点和连接元件来表示系统的导热、对流以及辐射特性[^1]。 #### 原理概述 LPTN 模型的核心原理基于热传导理论中的类比方法,即将热现象映射到电路理论上进行求解。具体来说: - **节点** 表示特定位置上的温度变量。 - **支路** 则代表不同形式的传热过程(如导热、对流或辐射),并由相应的热阻抗参数描述其性质。 这种建模方式使得工程师能够利用成熟的电气工程工具和技术来进行稳态或者瞬态条件下的计算分析工作[^2]。 #### 实现细节 在实际应用过程中实现一个完整的LPTN需要以下几个方面的工作考虑: 1. 定义好所有的几何边界条件以及初始设定值; 2. 创建合适的网格划分方案以适应目标精度需求;此时可以采用`STAT`命令查看当前的状态信息以便调整优化策略; 3. 如果存在多个独立部分组成整体架构,则可能涉及到如何处理它们之间交互作用的问题——这时可以通过设置`NOCHECK`暂时忽略某些验证步骤加快迭代速度,在最终确认前再切换回正常模式(`CHECK`)确保准确性; 4. 对于涉及非均匀材质分布的情况,还可以借助`DETACH`功能解除原有绑定关系重新定义关联规则从而更好地反映实际情况; 5. 使用像 `MPPLOT` 这样的绘图指令可以帮助直观展示材料属性随环境变化的趋势图表数据可视化效果显著提升理解程度[^3]. ```python # 示例代码片段:创建简单的二维矩形区域并指定相应操作 import ansys.mapdl.core as mapdl mapdl.prep7() # 开始预处理器阶段 mapdl.et(1, 'PLANE183') # 设置单元类型为平面应力/应变四边形单元 mapdl.block(0, 10, 0, 5) # 绘制一块大小为10x5单位长度的长方形域 mapdl.esize(1) # 设定全局尺寸控制参数为1 mapdl.vmesh('ALL') # 自动剖分整个体素集合 # 查看当前网格状况 status_info = mapdl.stat() print(status_info) # 执行其他必要的配置... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值