十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Photoshop AI插件:零基础2D转3D,快速生成深度图与3D模型

Photoshop AI插件:零基础2D转3D,快速生成深度图与3D模型 这次我们来看一个能直接在 Photoshop 里把 2D 图片变 3D 的 AI 插件。对于设计师、插画师或者想快速制作表情包、IP形象、盲盒模型的人来说这可能是目前最省事的 3D 化方案。它的核心卖点很直接无需任何 3D 建模基础在熟悉的 PS 界面里通过一个插件就能调用 AI 能力几分钟内将平面插画、角色设计图甚至表情包转换成具有立体感的 3D 模型或渲染图。这个名为“PSAI”的插件本质上是一个桥梁将 Photoshop 与云端或本地的 AI 图像生成/3D 重建模型连接起来。用户不需要学习 Blender、Maya 或 ZBrush 的复杂操作也无需关心背后的算法细节只需在 PS 中选中图层点击插件按钮调整几个直观的参数就能看到 2D 图像“膨胀”成 3D 效果。这对于快速验证创意、为 IP 制作多角度展示图、生成表情包 3D 素材效率提升是颠覆性的。那么这个插件到底能不能用怎么用对电脑硬件有什么要求生成的效果如何本文将围绕这些核心问题带你完成从插件获取、安装配置到实际效果测试的全流程。如果你关心的是“能否在现有设计流程中无缝集成”、“出图速度和质量”、“是否需要高配显卡”以及“版权和商用问题”那么这篇文章可以直接收藏备用。1. 核心能力速览在深入操作之前我们先通过一个表格快速了解 PSAI 插件的核心特性和使用边界这能帮你快速判断它是否适合你的工作流。能力项说明与评估核心功能在 Adobe Photoshop 内将选中的 2D 图层如插画、角色线稿、表情包通过 AI 转换为具有深度信息的 3D 模型或渲染图。支持文生3D、图生3D深度图、法线贴图、3D网格。使用门槛极低。用户只需会基本 PS 操作无需 3D 软件技能。插件以面板形式集成参数直观。硬件要求依赖服务模式。主要分为两种1.云端API模式依赖插件开发者提供的或用户自备的云端AI服务对本地电脑配置尤其是显卡无特殊要求普通办公电脑即可但需要稳定网络。2.本地模型模式如需本地运行则需要较高配置通常需要支持 CUDA 的 NVIDIA 显卡建议 8G 显存以上并部署相应的 AI 模型服务。插件本身只是客户端。启动与集成作为 Photoshop 的扩展插件ZXP 或 CCX 格式安装安装后可在 PS 的“窗口” “扩展功能”中找到并启动面板与 PS 工作流无缝衔接。处理速度取决于所选模式。云端模式速度受网络和服务端队列影响单次生成通常在几十秒到几分钟。本地模式速度取决于本地显卡算力生成时间从十几秒到数分钟不等。输出结果通常输出为包含深度信息的图像如深度图、3D 图层PS 内置 3D 功能或直接生成多角度的 2D 渲染图。可用于后续在 PS 内进行打光、材质调整或导出为其他 3D 软件支持的格式。适合场景1.快速概念可视化将角色原画、插画草图快速转为 3D 预览。2.IP形象与盲盒开发为二维 IP 生成统一的 3D 化模型用于多角度展示、表情包衍生。3.素材增强为平面设计元素增加简易 3D 立体感。4.动态内容预演为短视频、动态海报快速准备 3D 素材。版权与合规必须高度重视。输入的 2D 图像应确保拥有完整版权或已获授权。AI 生成的结果的版权归属目前存在法律灰色地带用于商业项目前需谨慎评估。严禁使用他人肖像、知名 IP 形象进行未授权的 3D 化并商用。2. 适用场景与使用边界PSAI 插件并非万能明确其擅长和不擅长的领域能让你更好地利用它避免走弯路。它非常适合以下场景表情包/Emoji 3D化将简单的 2D 表情包图形转换为有体积感的 3D 素材用于动态表情、短视频贴纸效果立竿见影。插画师/概念设计师的快速预演在确定最终 3D 建模方案前用 AI 快速生成多个立体化方向辅助决策极大提升前期沟通效率。IP形象与盲盒原型制作对于初创 IP 或小型工作室没有专职 3D 设计师时可以用此插件快速将 2D 设定图转化为可用于渲染展示的 3D 模型低成本验证市场反应。平面海报的立体元素添加为海报中的标题文字、Logo 或主要图形增加简单的 3D 凸起或膨胀效果增强视觉冲击力。游戏/动漫同人创作粉丝基于已有的 2D 角色图生成其 3D 形态用于个人创作和分享需注意原作版权限制。它的局限性也很明显精度控制有限生成的 3D 模型细节和结构精度无法与传统手工建模相比复杂机械、建筑或需要严格尺寸的工业设计领域不适用。拓扑与动画支持弱生成的网格拓扑通常不适合直接用于角色动画绑定需要进入 3D 软件进行大量重拓扑和优化。对输入图像质量敏感清晰、主体明确、线条闭合的插画效果最好。过于复杂、模糊或背景杂乱的图片AI 可能无法正确理解空间关系导致生成效果怪异。非“真”参数化建模生成的是静态网格或深度图不能像专业 3D 软件那样通过参数滑块无限调整形态。最重要的使用边界——合规与伦理版权是红线你必须是所处理图像的版权所有者或已获得明确授权。使用网络下载的未知来源图片、他人作品进行 3D 化即使仅供个人学习也存在风险。肖像权与隐私处理包含人脸的图像时必须获得肖像权人的许可。禁止利用此技术进行恶意伪造、丑化或生成虚假 3D 形象。商用需谨慎将 AI 生成的结果用于商业项目如售卖盲盒、制作广告前务必研究当地法律法规关于 AI 生成物版权和商业使用的规定必要时咨询法律人士。注明来源在公开分享或展示使用此插件生成的作品时建议注明使用了 AI 辅助工具保持透明。3. 环境准备与前置条件要让 PSAI 插件跑起来你需要准备好以下环境。根据你选择的服务模式云端或本地准备工作差异很大。3.1 基础必备环境Adobe Photoshop这是插件的运行载体。建议使用较新的 CC 2018 及以上版本以确保扩展功能兼容性。CS6 等旧版本可能无法安装或运行。操作系统Windows 10/11 或 macOS 较新版本。确保系统已更新运行稳定。网络环境云端模式必需稳定的互联网连接。如果插件需要调用外部 API网络延迟和稳定性将直接影响使用体验。3.2 本地模型模式额外要求可选/高级如果你希望完全在本地运行不依赖任何外部服务则需要搭建一个 AI 模型服务端。这需要较强的技术背景和硬件。硬件显卡NVIDIA GPU显存建议8GB 以上。显存越大能处理的图像分辨率越高速度也可能更快。RTX 3060 12G、RTX 4060 Ti 16G 或更高级别显卡是理想选择。内存16GB RAM 以上。存储至少 10-20GB 可用空间用于存放模型文件。软件栈Python3.8 或 3.9 版本。CUDA 和 cuDNN版本需要与你的显卡驱动以及后续安装的 PyTorch 版本匹配。PyTorch或TensorFlow具体取决于 PSAI 插件后端所使用的 AI 框架。特定的 AI 模型例如用于 2D 转 3D 的Depth Anything,MiDaS, 或Stable Diffusion的深度控制网络模型。你需要自行寻找、下载并部署这些模型的服务接口。技术能力需要能够阅读理解项目的 GitHub Wiki 或 README能使用命令行安装依赖、启动服务并处理可能出现的环境冲突、端口占用等问题。对于绝大多数追求“懒人”、“快速”的用户建议优先尝试插件官方提供的云端服务或寻找已集成好本地服务的“一键包”版本。自行从零搭建本地模型服务门槛较高不属于本文“懒人必备”的核心讨论范围。下文将主要围绕最常见的“插件 云端/本地已部署服务”模式展开。4. 安装部署与启动方式PSAI 插件通常以.zxp(Adobe Extension Manager 格式) 或通过 Creative Cloud 扩展市场安装。我们以手动安装.zxp文件为例。4.1 步骤一获取插件文件从可靠的来源如插件开发者官网、经过验证的 GitHub Release 页面下载 PSAI 插件的.zxp安装包。务必警惕来路不明的破解版可能包含恶意软件。下载完成后将其放在一个你容易找到的路径例如桌面或下载文件夹。4.2 步骤二安装扩展管理器如需旧版 PS 可能需要使用第三方工具来安装.zxp文件最常用的是Adobe Extension Manager CC已停更但可用或ZXP Installer。ZXP Installer这是一个免费小工具。去其官网下载安装后界面非常简洁。如果你使用的是较新版本的 Creative Cloud也可以尝试直接将.zxp文件拖入 Photoshop 窗口进行安装。4.3 步骤三安装插件打开ZXP Installer。点击File-Open选择你下载的.zxp文件。点击Install按钮。程序会自动将插件安装到 Photoshop 的扩展目录。安装成功后关闭 ZXP Installer。4.4 步骤四在 Photoshop 中启动插件启动Adobe Photoshop。在顶部菜单栏找到窗口(Window)。在下拉菜单中找到扩展功能(Extensions)你应该能看到新安装的PSAI或类似名称的插件。点击它PSAI 插件面板就会在 Photoshop 界面中打开通常以侧边栏或浮动窗口的形式呈现。4.5 步骤五插件配置关键步骤首次打开插件面板很可能需要进行简单的配置核心是设置 AI 服务的连接地址。在插件面板上寻找设置(Settings)、偏好(Preferences)或连接(Connect)等按钮。关键的配置项是API 地址(API Endpoint)或服务器地址(Server URL)。如果你使用插件作者提供的公共云端服务这里可能已经预设好了地址你只需要点击“连接”或“测试”按钮。有时可能需要注册获取一个免费的 API Key 填入。如果你使用自己或他人搭建的本地服务你需要将地址填写为http://localhost:端口号或http://你的本地IP:端口号。例如http://127.0.0.1:7860。配置完成后点击保存。面板上通常会有连接状态指示如绿灯、Connected字样。至此PSAI 插件就安装并配置完成了。接下来就是最激动人心的功能测试环节。5. 功能测试与效果验证让我们用几个典型场景来实测 PSAI 插件的核心功能。请准备几张测试图片一张简洁的卡通角色插画、一个表情包图形、一张带有复杂前景背景的风景图。5.1 测试一基础 2D 转 3D深度图生成这是最核心的功能将平面图像转换为带有深度信息的图像。测试目的验证插件能否正确理解图像的空间层次生成可用的深度图。操作步骤在 PS 中打开你的卡通角色插画。在 PSAI 插件面板中选择生成深度图(Generate Depth Map)或类似功能。通常会有简单的参数降噪强度(Denoise)、深度范围(Depth Range)。首次测试可先用默认值。点击生成(Generate)或运行(Run)。预期结果与判断成功PS 会新建一个图层或文档里面是一张灰度图。白色代表“近”黑色代表“远”。原图中的角色主体应该呈现为突出的白色或浅灰色背景则为深灰色或黑色。这张深度图可以立即在 PS 中用作置换贴图或导出给其他 3D 软件使用。失败生成结果一片模糊、灰度混乱或插件报错如连接失败、超时。此时需要检查网络连接、API 地址是否正确、服务是否正常运行。5.2 测试二生成 3D 网格.OBJ 导出这是更进阶的功能直接生成可编辑的 3D 模型文件。测试目的验证插件能否从深度图进一步生成三维网格并支持导出。操作步骤使用上一部生成的深度图或在插件中选择图生3D网格(Image to 3D Mesh)。调整参数网格细节(Mesh Detail)控制面数越高细节越多文件越大平滑度(Smoothness)厚度(Thickness)。点击生成。预期结果与判断成功PS 可能会将生成的 3D 网格作为 3D 图层导入当前文档或者直接提示你保存.obj和.mtl文件。你可以在 PS 的 3D 面板中旋转、移动这个模型也可以使用其他 3D 软件如 Blender打开导出的.obj文件进行查看和编辑。失败生成失败或导出的模型严重扭曲、破面。可能原因是输入图像过于复杂AI 无法理解或网格细节参数设置不当。尝试使用更简单、主体更突出的图片并降低网格细节参数。5.3 测试三文生 3D / 风格化 3D部分高级插件集成了文生图模型可以直接通过文字描述生成带 3D 效果的图像。测试目的验证插件的创意生成能力是否支持从零开始创作。操作步骤在插件面板找到文生3D(Text to 3D)或生成风格化(Generate Stylized)选项卡。在提示词(Prompt)输入框用英文描述你想要的 3D 物体例如a cute 3D rubber duck, cartoon style, white background。设置生成参数如采样步数、引导强度。点击生成。预期结果与判断成功插件生成一张符合文字描述的、具有立体感的图片。这展示了插件不依赖于现有图片的创作能力。失败生成的图像是纯 2D 的没有立体感或者图像质量很差。这可能是因为背后的 AI 模型能力有限或者提示词不够具体。5.4 测试四批量处理能力对于制作表情包系列或 IP 多视图批量处理是刚需。测试目的验证插件是否支持一次性处理多张图片提升工作效率。操作步骤在插件面板寻找批量处理(Batch Process)或输入目录(Input Folder)选项。指定一个包含多张待处理图片的文件夹路径。指定输出目录。选择处理任务如“全部生成深度图”。点击开始批量处理。预期结果与判断成功插件依次处理文件夹内的所有图片并在输出目录生成对应的结果文件。处理过程中面板应有进度条或日志显示。失败插件无反应或处理几张后卡住/报错。可能原因是某张图片格式不受支持、尺寸过大导致内存不足或是服务端在批量请求下不稳定。建议先用小批量2-3张测试。6. 接口 API 与批量任务对于希望将 PSAI 能力集成到自己工作流或工具中的开发者了解其 API 接口至关重要。通常PSAI 插件本身是客户端它调用的是一个独立的 AI 服务端。这个服务端会提供 HTTP API。6.1 API 服务概览假设本地部署的 AI 服务运行在http://127.0.0.1:7860。常用端点(Endpoint):POST /depth接收图片返回深度图。POST /mesh接收图片返回 3D 网格文件如 .obj。POST /text-to-3d接收文本提示词返回生成的效果图。输入通常是 JSON 格式的请求体包含图片的 base64 编码、参数配置等。输出JSON 响应包含处理状态、结果图片的 base64 编码或文件下载链接。6.2 Python 调用示例以下是一个模拟调用深度图生成 API 的 Python 脚本示例。注意实际 API 地址、参数名和数据结构需根据你使用的具体服务进行调整。import requests import base64 import json def generate_depth_map(image_path, api_urlhttp://127.0.0.1:7860/depth): 调用本地 AI 服务生成深度图 # 1. 读取图片并编码为 base64 with open(image_path, rb) as image_file: img_base64 base64.b64encode(image_file.read()).decode(utf-8) # 2. 构造请求载荷 payload { image: img_base64, model: depth_anything_v2, # 指定模型根据服务支持调整 denoise: 0.5, return_image: True # 要求返回深度图数据 } # 3. 发送 POST 请求 headers {Content-Type: application/json} try: response requests.post(api_url, jsonpayload, headersheaders, timeout120) response.raise_for_status() # 检查 HTTP 错误 result response.json() # 4. 处理响应 if result.get(status) success: depth_image_data base64.b64decode(result[depth_image]) # 保存深度图 output_path image_path.replace(.png, _depth.png) with open(output_path, wb) as f: f.write(depth_image_data) print(f深度图已保存至: {output_path}) return output_path else: print(f生成失败: {result.get(message, Unknown error)}) return None except requests.exceptions.RequestException as e: print(fAPI 请求失败: {e}) return None except json.JSONDecodeError as e: print(f响应解析失败: {e}) return None # 使用示例 if __name__ __main__: # 替换为你的图片路径 test_image ./my_character.png depth_map generate_depth_map(test_image)6.3 批量任务脚本设计基于上述 API可以轻松编写批量处理脚本。import os from concurrent.futures import ThreadPoolExecutor, as_completed def batch_process_folder(input_folder, output_folder, api_endpoint, max_workers2): 批量处理文件夹内的所有图片 supported_ext (.png, .jpg, .jpeg, .webp) image_files [f for f in os.listdir(input_folder) if f.lower().endswith(supported_ext)] if not os.path.exists(output_folder): os.makedirs(output_folder) def process_one_file(filename): input_path os.path.join(input_folder, filename) # 调用上面的 generate_depth_map 函数 result_path generate_depth_map(input_path, api_endpoint) if result_path: # 可以将结果移动到指定输出目录 pass return filename, result_path is not None # 使用线程池控制并发避免压垮服务 with ThreadPoolExecutor(max_workersmax_workers) as executor: future_to_file {executor.submit(process_one_file, f): f for f in image_files} for future in as_completed(future_to_file): filename future_to_file[future] try: name, success future.result() status 成功 if success else 失败 print(f处理完成: {filename} - {status}) except Exception as exc: print(f处理 {filename} 时产生异常: {exc})关键提醒速率限制向云端 API 发送请求时注意是否有频率限制。错误处理网络超时、服务不可用、图片格式错误等情况必须有重试或记录机制。资源管理本地部署时批量任务会持续占用 GPU 显存注意监控避免爆显存。7. 资源占用与性能观察无论使用哪种模式了解资源占用情况对稳定使用至关重要。7.1 云端 API 模式本地资源占用极低。Photoshop 和插件本身只占用常规内存和 CPU。主要消耗是网络 I/O。性能瓶颈网络延迟和服务端队列。如果服务端用户多你的任务可能需要排队。观察插件面板的响应时间如果经常超时如超过 2 分钟无响应可能是网络问题或服务端负载过高。优化建议尽量在网络空闲时段使用减少单次提交的图片分辨率在满足需求的前提下如果服务提供多个节点尝试切换。7.2 本地模型模式GPU 显存占用这是主要观察指标。启动 AI 服务后使用nvidia-smi(Windows/Linux) 或活动监视器 (macOS with Metal) 查看。一个常见的 2D 转 3D 模型如 Depth Anything在处理 512x512 图片时可能占用 2-4GB 显存。处理更高分辨率如 1024x1024或使用更复杂的模型显存占用可能达到 6-8GB 甚至更高。如果显存不足生成会失败PS 插件可能收到服务端的错误响应。解决方案是降低输入图片分辨率、在服务端配置中启用--medvram等显存优化参数、升级显卡。CPU 与内存占用AI 推理服务本身会占用一定的 CPU 和内存但通常不是瓶颈。主要关注在批量处理时内存是否会因缓存过多图片数据而耗尽。处理速度首次启动/加载模型较慢可能需要 30 秒到 2 分钟因为需要将模型从硬盘加载到显存。单张推理时间在 RTX 3060 12G 上处理一张 512x512 的图片生成深度图可能在 1-3 秒。生成 3D 网格会更慢可能需要 10-30 秒。影响因素图片分辨率、模型复杂度、生成参数如网格面数。监控命令示例 (Linux/Windows WSL)# 查看 GPU 状态 nvidia-smi -l 1 # 每秒刷新一次在任务管理器中可以观察 Python 进程的 GPU 和内存使用情况。8. 常见问题与排查方法使用过程中遇到问题很正常下表列出了常见问题及其排查思路。问题现象可能原因排查步骤解决方案PS 中找不到插件1. 安装未成功。2. PS 版本太旧。3. 插件与 PS 版本不兼容。1. 检查 ZXP Installer 是否提示安装成功。2. 确认 PS 为 CC 2018。3. 前往C:\Program Files\Adobe\Adobe Photoshop 20XX\Required\CEP\extensions(Win) 或/Library/Application Support/Adobe/CEP/extensions(Mac) 查看插件文件是否存在。1. 重新安装插件。2. 升级 Photoshop。3. 联系插件作者确认兼容性。插件面板显示“未连接”或“连接错误”1. API 地址错误。2. 本地 AI 服务未启动。3. 防火墙/网络阻止连接。4. 云端服务不可用。1. 检查插件设置中的 API 地址如http://127.0.0.1:7860。2. 在浏览器中访问该地址看是否有响应。3. 检查本地服务进程是否运行。4. 尝试 ping 或 telnet 测试端口。1. 更正 API 地址。2. 启动本地 AI 服务。3. 关闭防火墙或添加规则。4. 检查云端服务状态页或联系提供商。点击生成后长时间无反应1. 网络超时。2. 服务端任务队列过长。3. 输入图片太大处理耗时。4. 本地 GPU 显存不足进程卡住。1. 观察网络状态。2. 查看服务端日志如果有。3. 尝试用一张非常小的图片测试。4. 使用nvidia-smi查看显存是否占满。1. 优化网络或稍后重试。2. 减少图片分辨率。3. 重启 AI 服务释放显存。4. 增加服务端超时时间设置。生成的结果扭曲、破碎或效果很差1. 输入图片不适合过于复杂、模糊、低对比度。2. AI 模型能力有限。3. 生成参数设置不当。1. 换用线条清晰、主体明确的简单插画测试。2. 尝试调整“深度范围”、“平滑度”等参数。3. 在服务端尝试切换不同的模型如果支持。1. 优化输入图片质量。2. 多次尝试寻找最佳参数组合。3. 理解当前模型的局限性调整预期。批量处理中途失败1. 某张图片格式异常。2. 显存/内存泄漏累积耗尽。3. 服务进程意外崩溃。1. 查看失败时的具体报错信息。2. 检查服务端日志看崩溃前最后处理的图片。3. 监控资源使用情况。1. 预处理图片统一格式和尺寸。2. 为批量脚本加入错误捕获和跳过机制。3. 分更小的批次进行处理并给服务端休息间隔。导出 OBJ 文件无法在 3D 软件中打开1. 文件损坏。2. 3D 软件不支持该 OBJ 版本或包含特殊字符。3. 网格面数过多软件无法加载。1. 用文本编辑器打开 OBJ 文件看开头是否是v(顶点) 和f(面) 数据。2. 尝试用 Blender 等开源软件导入。3. 在生成时降低“网格细节”参数。1. 重新生成并导出。2. 确保文件名和路径无中文、特殊符号。3. 在 3D 软件中尝试“导入”而非“打开”。9. 最佳实践与使用建议为了获得最佳体验并避免常见陷阱遵循以下实践建议从简到繁小步测试第一次使用时务必用一张非常简单、背景干净、线条明确的卡通图形或图标进行测试。成功后再逐步尝试复杂图片。这能快速验证整个流程是否通畅。优化输入素材在将图片送入插件前在 PS 里做一些预处理能大幅提升效果抠图如果主体明确尽量抠出主体使用纯色背景。强化对比调整色阶或曲线让主体和背景区分更明显。简化细节过于复杂的纹理和细节可能会干扰 AI 对形状的理解适当简化。参数调整的艺术不要只使用默认参数。深度范围控制立体感的“强度”。太小没效果太大会导致模型畸形。平滑度值太高会丢失细节值太低会让模型表面噪点多。网格细节面数并非越高越好。过高的面数会导致文件巨大后续软件难以编辑。根据最终用途网页展示、3D 打印、动画选择合适的面数。工作流集成将 PSAI 插件作为你创意工作流中的一个环节而不是终点。深度图用途生成的深度图可以在 PS 中直接用作“置换”滤镜或导入 After Effects 做动态景深效果。OBJ 后续处理将 OBJ 导入 Blender 或 C4D 后进行重拓扑、展 UV、烘焙法线贴图、赋予材质才能成为生产级资产。项目管理与备份建立清晰目录如01_原始素材、02_AI生成深度图、03_AI生成模型、04_后期处理。记录参数对每张成功处理的图片在文件名或备注中记录下使用的关键参数如character_depth_denoise05.psd便于复现和对比。备份服务配置如果你自己部署了本地服务将安装步骤、依赖列表、启动命令写成文档或脚本方便重装系统后快速恢复。合规与授权管理建立严格的素材审核流程。建立一个表格记录每张用于 AI 生成的原始图片的来源、授权状态原创/已购/CC协议、使用范围个人练习/内部演示/商业项目。对于商业项目这份记录至关重要。PSAI 这类插件代表了 AI 工具平民化的趋势它极大地降低了 3D 内容创作的门槛。它的核心价值在于“快速原型”和“创意激发”而不是替代专业的 3D 建模。对于设计师和内容创作者它是一把打开新思路的钥匙能让你在几分钟内看到平面创意立体化的可能性从而更快地决策、更早地验证市场反应。最先应该验证的功能就是“基础深度图生成”这是所有 3D 化效果的基石。最容易踩的坑是忽略了输入图片的质量和版权问题。下一步你可以探索如何将生成的深度图或模型与你已有的动画、渲染流程结合创造出更具吸引力的动态内容。技术永远在迭代保持对新技术的好奇心同时坚守创作的底线才能让工具真正为你所用。
返回列表