云服务器内容精选
-
查看和下载任务日志 标注任务运行的过程中生成任务日志,平台提供了日志的查看以及下载功能。单击任务名称,在该任务的详情页面,单击"日志",可查看该任务日志列表及日志详情。支持下载至本地。如果日志较多,可在搜索框中输入关键字,查找指定日志内容。搜索内容为当前已加载内容 ,最少为1M(首次加载时)。如图,在日志服务页面中的日志列表部分详细展示了该任务包含的日志文件的大小以及最近写入时间。单击文件后的"查看",该文件的详细执行过程则在日志详情部分展示。也可在日志文件后的"操作"栏,单击"下载",即可将该日志文件下载到本地查看。 图1 任务日志
-
与数据包同名的yaml配置文件说明 数据包中必须含有与数据包同名的yaml配置文件主要包括车辆名称、传感器信息和标定ID等信息,详情参考如下: # 华为八爪鱼自动驾驶云服务数据采集说明 project: '项目名称' module: '感知' cardrive: collect_time: 2020-11-01T08:00:00+08:00 #数据包采集日期,精确到小时即可 station: '腾飞' #选填 数据采集地点名称,站点名称 car: vehicle_name: 'test' #车辆名称,仅支持在八爪鱼平台创建的车辆 route: 'shuttlebus_30km' #选填 车辆行驶路线 speed:10km/h #选填 车速 mode: 'auto' #选填 路线驾驶意图, auto代表自动驾驶, manual代表人工驾驶采集 tags: ['主车直行','主车倒车'] #选填 标签,标签个数不超过50个 例:沙尘天,正向设计,驾驶模式 description: '强风沙天,车辆空载在排土区自动驾驶到接土区前等待长坡道' #选填 车载情况 segments: #选填 数据包场景片段 - tags: ['晴天','直行'] time: 2021-08-27T11:43:07~2021-08-27T11:43:47 data_type: Rosbag #必填 数据类型 map_id: MAP1134 #选填,高精地图ID,字符串类型,配备后才可在回放数据界面展示高精地图信息。 preprocessor: #转OpenData算子信息 id: 10105 # 算子id resource_spec: 4Core_8GiB # 资源规格
-
标注模板相关操作 在标注模板列表,还可以进行以下操作。 表1 标注模板相关操作 任务 操作步骤 编辑标注模板 单击操作栏内的“编辑”,即可修改标注模板信息。 删除标注模板 选择单个标注模板,单击操作栏的“删除”,删除单个标注模板。 勾选多个标注模板,单击列表上方的“删除”,可批量删除标注模板。 查询标注模板 在搜索框内输入搜索条件,可进行模糊查找。 查看标注模板详情 单击标注模板名称,即可查看该模板包含的标注物列表。
-
作业输入输出规范 用户完成自定义难例挖掘镜像上传后,在运行作业容器时,Octopus平台会向作业容器中注入以下环境变量: rosbag_path: 作为数据源的rosbag存放路径,例如/tmp/data/20220620.bag output_dir: 难例挖掘作业运行结果输出目录,例如/tmp/output 用户的作业容器的作用是解析Rosbag,并将难例挖掘结果以csv格式输出到output_dir指定的目录,并以“segments.csv”作为文件名,文件完整路径示例:/tmp/output/segments.csv。csv文件内容示例如下: Csv文件表头固定为“tag_name,start,end”,指定该表的四列数据分别为“标签名”、“开始时间戳”、“结束时间戳”。 tag_name:标签名对应Octopus平台标签管理模块内的标签,没有预先创建的标签会自动创建。 start,end:开始和结束时间戳指定该打标片段的时间范围。 folder:目录名指示opendata数据包内的特定数据目录,对应为某个传感器。如果需要在相同时间片段上对多个传感器打标,需要为每个传感器输出一行打标信息。 输出结果完成后,作业容器需要在output目录创建一个名为“_SUC CES S”的标识文件,用于通知系统作业已完成。如果作业主动捕获到异常并失败退出,可在output目录创建一个名为“_FAILURE”的标识文件,用于通知系统作业已失败。 运行完成并上传的挖掘结果可以在“场景挖掘”模块进行检索、查看。选中一个场景片段后可以通过“回放”按键跳转到数据包的对应时间点进行回放,长度在10秒到99秒之间的场景片段可以生成仿真场景。选中片段后的预览样本图根据挖掘片段所对应的传感器类型选择相应的传感器样本来进行展示。 父主题: 难例挖掘作业
-
必需字段样例 数据集可视化 “.json”文件中必须包含label_counts和labels字段信息。 创建标注任务 “.json”文件中必须包含label_counts和labels字段信息。如果需要json文件中已有的标注信息在平台上直接展示,则label_counts里面的标注物名称、描述、形状、额外属性需要和创建任务使用的平台标签信息保持一致。示例如下: {"label_counts" : [ #标注对象类型的个数统计 { "label_meta_id" : 1846, #标注物ID "label_num" : 1, #标注物个数 "label_meta_name" : "框0504", #标注物名称 "label_meta_desc" : "框0504", #标注物描述 "label_meta_attr" : "{\"优先级\":\"0,1\"}", #标注物额外属性 "label_meta_shape" : "bndbox", #标注物形状:矩形框 "label_meta_color" : "#f8e71c" #标注物颜色信息 } ], "labels" : [ { "label_meta_id" : 1846, "bndbox" : { "ymin" : 545.4334, "xmin" : 1158.3188, "ymax" : 705.71844, "xmax" : 1436.3274 }, "name" : "框0504", "shape_type" : "bndbox", "serial_number" : 2, #该帧中标注物唯一自增id "label_object_id" : 2, #标注物合成对象的唯一自增id,如果标注物之间没有合成则与serial_number保持一致,追踪任务中同一物体在不同帧中此字段相同 "attribute" : "{\"优先级\":\"1\"}", "label_meta_name" : "框0504" } ] }
-
Octopus格式文件基本要求(图片标注) 上传的Octopus格式数据集需包含以下文件。 ├─ 时间戳1 ├─时间戳1.jpg #时间戳1对应的已标注图片 ├─时间戳1.json #时间戳1内该标注图片的所有标注信息 ├─ 时间戳2 ├─时间戳2.jpg #时间戳2对应的已标注图片 ├─时间戳2.json #时间戳2内该标注图片的所有标注信息
-
标注数据.json文件说明 数据集中必含“.json”文件,用于集合该时间戳已标注图片的所有标注数据信息,包括该图片所在的项目id、数据包id、图片上所有标注框信息等。上传数据集前请保证“.json”文件内容正确。“.json”文件编写的参考样例如下: { "frame_id" : 1, #帧序号 "batch_task_id" : 922, #批次任务ID "project_id" : "ca8aabb5a94840ea92f0f57369e3a7fe", #资源域ID "label_mode" : "manual", #标注类型:auto和manual两种 "status" : " labeled ", #标注任务状态:unlabeled、labeled、unconfirmed、confirmed、all五种 "sample_type" : "IMAGE", #样本类型:包含”IMAGE”、”POINT_CLOUD” 、“AUDIO”(音频)、“TEXT”(文本) "des_order" : "", #此份数据对应的原始数据包描述 "tag_names" : [], #标签名称 "valid" : true, #是否有效,包含”true”和”false”两种 "create_time" : 1683185878405, #标注的创建时间 "difficult" : false, #是否难例,包含”true”难例和”false”非难例 "label_counts" : [{ #各类标注物的个数统计 "label_meta_id" : 1848, #标注物使用的标签ID "label_num" : 1, #标注物个数 "label_meta_name" : "V3D0504", #标注物名称 "label_meta_desc" : "V3D0504", #标注物描述 "label_meta_attr" : "{\"优先级\":\"0,1\"}", #标注物额外属性 "label_meta_shape" : "multiBox", #标注物形状,包含”bndbox、line、circle、polygon、points、dashed、cube_3d、multiBox、polygon_3d_v2、audio、text、line_3d、dash_3d、line_dash_3d、dash_line_3d、double_line_3d、double_dash_3d” "label_meta_color" : "#7ed321", #标注物颜色信息 "level" : 0 }, { "label_meta_id" : 1849, "label_num" : 1, "label_meta_name" : "圆0504", "label_meta_desc" : "圆0504", "label_meta_attr" : "{\"优先级\":\"0,1\"}", "label_meta_shape" : "circle", "label_meta_color" : "#417505", "level" : 0 }, { "label_meta_id" : 1845, "label_num" : 3, "label_meta_name" : "线0504", "label_meta_desc" : "线0504", "label_meta_attr" : "{\"优先级\":\"0,1\"}", "label_meta_shape" : "line", "label_meta_color" : "#f5a623", "level" : 0 }, { "label_meta_id" : 1844, "label_num" : 1, "label_meta_name" : "点0504", "label_meta_desc" : "点0504", "label_meta_attr" : "{}", "label_meta_shape" : "points", "label_meta_color" : "#d0021b", "level" : 0 }, { "label_meta_id" : 1846, "label_num" : 1, "label_meta_name" : "框0504", "label_meta_desc" : "框0504", "label_meta_attr" : "{\"优先级\":\"0,1\"}", "label_meta_shape" : "bndbox", "label_meta_color" : "#f8e71c", "level" : 0 }, { "label_meta_id" : 1847, "label_num" : 1, "label_meta_name" : "多边形0504", "label_meta_desc" : "多边形0504", "label_meta_attr" : "{\"优先级\":\"0,1\"}", "label_meta_shape" : "polygon", "label_meta_color" : "#8b572a", "level" : 0 } ], "image_meta_info" : { #图片信息 "id" : "c7686eab-0a38-4b60-a594-67252c0323de", "name" : "hash0-1590980980006.jpg", #图片名称 "source" : "https://octopus-raw-ca8aabb5a94840ea92f0f57369e3a7fe.obs.cn-east-212.hdmap.myhuaweicloud.com/label-data/task-922/data/hash0-1590980980006/hash0-1590980980006.jpg", #图片源的obs路径url "sensor" : "default_camera", #传感器类型 "timestamp" : 1683185878405, #时间戳 "calibration_item_id" : 0, #标定项ID "size" : { #图片尺寸 "width" : 1920, "depth" : 3, "height" : 1080 } }, "label_task_id" : 21376, #批次子任务ID "partitionId" : 20220826, "label_update_time" : 1683187695480, #标注最近更新时间 "prefix_folder" : "hash0-1590980980006", "image_id" : "9f853814-f40e-4b73-80e1-df67696f8f46", #图片id "inspection" : 0, "labels" : [ #标注物信息 { "label_meta_id" : 1844, #标注物对应的标签ID "create_time" : 1683187362541, "name" : "点0504", #标注物名称 "shape_type" : "points", #标注物形状:点 "serial_number" : 0, #该帧中标注物唯一自增id "label_object_id" : 0, #标注物合成对象的唯一自增id,如果标注物之间没有合成则与 serial_number保持一致,追踪任务中同一物体在不同帧中此字段相同 "attribute" : "", #标注物属性 "label_meta_name" : "点0504", "points" : { #点的坐标信息 "size" : 1, "points" : [{ "xpoint" : 1233.4807, "ypoint" : 689.4183 } ] } }, { "label_meta_id" : 1845, "create_time" : 1683187374024, "line" : { #线的坐标信息 "size" : 4, "points" : [{ "xpoint" : 901.138, "ypoint" : 553.583 }, { "xpoint" : 731.36, "ypoint" : 630.367 }, { "xpoint" : 618.153, "ypoint" : 681.566 }, { "xpoint" : 360.516, "ypoint" : 798.086 } ] }, "name" : "线0504", "shape_type" : "line", #标注物形状:线 "serial_number" : 1, "label_object_id" : 1, "attribute" : "{\"优先级\":\"1\"}", "label_meta_name" : "线0504" }, { "label_meta_id" : 1846, "create_time" : 1683187387330, "bndbox" : { #矩形框坐标信息 "ymin" : 545.4334, "xmin" : 1158.3188, "ymax" : 705.71844, "xmax" : 1436.3274 }, "name" : "框0504", "shape_type" : "bndbox", #标注物形状:矩形框 "serial_number" : 2, "label_object_id" : 2, "attribute" : "{\"优先级\":\"1\"}", "label_meta_name" : "框0504" }, { "label_meta_id" : 1847, "create_time" : 1683187417245, "polygon" : { #多边形的坐标信息 "size" : 3, "points" : [{ "xpoint" : 135.03, "ypoint" : 482.94937 }, { "xpoint" : 84.318344, "ypoint" : 554.4891 }, { "xpoint" : 135.03, "ypoint" : 482.94937 } ] }, "name" : "多边形0504", "shape_type" : "polygon", #标注物形状:多边形 "serial_number" : 3, "label_object_id" : 3, "attribute" : "{\"优先级\":\"1\"}", "label_meta_name" : "多边形0504" }, { "label_meta_id" : 1848, "create_time" : 1683187426497, "multiBox" : { #2.5D框的坐标信息 "size" : 10, "points" : [{ "xpoint" : 475.06976, "ypoint" : 645.49835 }, { "xpoint" : 602.3017, "ypoint" : 645.49835 }, { "xpoint" : 602.3017, "ypoint" : 537.2833 }, { "xpoint" : 475.06976, "ypoint" : 537.2833 }, { "xpoint" : 475.06976, "ypoint" : 645.49835 }, { "xpoint" : 664.7857, "ypoint" : 632.3677 }, { "xpoint" : 664.7857, "ypoint" : 537.2833 }, { "xpoint" : 602.3017, "ypoint" : 537.2833 }, { "xpoint" : 602.3017, "ypoint" : 645.49835 }, { "xpoint" : 664.7857, "ypoint" : 632.3677 } ] }, "name" : "V3D0504", "shape_type" : "multiBox", #标注物形状:2.5D "serial_number" : 4, "label_object_id" : 4, "attribute" : "{\"优先级\":\"1\"}", "label_meta_name" : "V3D0504" }, { "label_meta_id" : 1849, "create_time" : 1683187565067, "name" : "圆0504", "shape_type" : "circle", #标注物形状:圆 "serial_number" : 5, "label_object_id" : 5, "attribute" : "{\"优先级\":\"1\"}", "label_meta_name" : "圆0504", "circle" : { #圆的坐标信息 "xcenter" : 795.6399, "ycenter" : 554.03625, "radius" : 31.255125 } } ] }
-
修饰器 position 用途:设定动作主体actor 所处的车道.可以修饰初始动作assign_init_position . 参数: 表1 position参数 Parameter Type Mandatory Description distance length no A target length value including a length unit. The distance is calculated using the route-based s-coordinate. ahead_of entity no specified by the lane-parameter. behind entity no When behind is specified, the actor must be behind the entity by the specified value. 代码样例 cut_in_vehicle.assign_init_position() with: lane(lane: raletive_lane_id, side_of: ego, side: left) position(distance: 85.0m, behind: ego) 父主题: 修饰器 Modifiers
-
odr_point 定义:ASAM OpenDRIVE坐标系中的位置点(point). 用途:设置实体位置,用于构成pose_3d. 参数:参数如下表. 表1 odr_point参数 Parameter Type Mandatory Description road_id string yes ASAM OpenDRIVE identifier for the road lane_id string yes ASAM OpenDRIVE identifier for the lane s length yes Coordinate along the ASAM OpenDRIVE s-axis t length yes Coordinate along the ASAM OpenDRIVE t-axis, the t-coordinate is measured from the lane centerline keep创建 my_odr: odr_point with: keep(it.road_id == '1') keep(it.lane_id == '-2') keep(it.s == 3.0m) keep(it.t == 0.0m) create创建 my_odr: odr_point = map.create_odr_point(road_id: '1',lane_id:'-2',s: 3.0m, t: 0.0m) 父主题: Struct
-
Traffic_light_info timestamp: 1630057508000 stamp_secs: 1630057508 lights { id: 1 color: 1 location_x: -206.60186767578125 location_y: 459.9820861816406 location_z: 3.0 } lights { id: 2 color: 2 location_x: -74.1282958984375 location_y: 484.984619140625 location_z: 4.0 } lights { id: 3 color: 3 location_x: 59.96036911010742 location_y: 473.6038513183594 location_z: 5.0 }
-
Planning_trajectory stamp_secs: 1617336640 stamp_nsecs: 809739351 timestamp: 1617336640809 trajectory_points { x: -151.27487182617188 y: 486.55096435546875 theta: 0.0023324606008827686 kappa: -0.0017824547830969095 } trajectory_points { x: -151.21182250976562 y: 486.5510559082031 theta: 0.0022713469807058573 kappa: -0.0017127590253949165 } ......
-
Routing_path timestamp: 1630057162125 stamp_secs: 1630057162 stamp_nsecs: 125769156 routing_path_info { id: 1 path_point { x: -203.34230041503906 y: 125.63516998291016 z: -0.5 } path_point { x: -203.34915161132812 y: 125.72517395019531 z: -0.5 }......}
-
Vehicle vehicle_info { stamp_secs: 1604996332 stamp_nsecs: 847945211 autonomy_status: 0 gear_value: 4 vehicle_speed: 43.93000030517578 steering_angle: 0.699999988079071 yaw_rate: 0.0 interior_temperature: 0.0 outside_temperature: 0.0 brake: 0.0 timestamp: 1604996332847 turn_left_light: 0 turn_right_light: 0 longitude_acc: -0.03125 lateral_acc: 0.0 }
-
Object_array_vision tracked_object { timestamp: 1604996332862 stamp_secs: 1604996332 stamp_nsecs: 862911489 objects { id: 26175 label: "Car" pose_position_x: 1154.59912109375 pose_position_y: -496.5350646972656 pose_position_z: -1.8222997188568115 pose_orientation_z: 0.714431643486023 pose_orientation_w: 0.6997052431106567 pose_orientation_yaw: 1.5916229486465454 dimensions_x: 4.513162136077881 dimensions_y: 1.7747581005096436 dimensions_z: 1.628068208694458 speed_vector_linear_x: 0.012852923013269901 speed_vector_linear_y: -9.972732543945312 relative_position_x: -17.48011016845703 relative_position_y: 10.685434341430664 relative_position_z: -0.17673441767692566 } objects { id: 26170 label: "Pedestrian" pose_position_x: 1180.902099609375 pose_position_y: -504.7625732421875 pose_position_z: -1.3601081371307373 pose_orientation_z: -0.7057344317436218 pose_orientation_w: 0.7084764242172241 pose_orientation_yaw: -1.5669186115264893 dimensions_x: 0.7922295331954956 dimensions_y: 0.7891787886619568 dimensions_z: 1.6868246793746948 speed_vector_linear_x: 0.13573257625102997 speed_vector_linear_y: 1.5281875133514404 relative_position_x: -25.306795120239258 relative_position_y: -15.737456321716309 relative_position_z: 0.39350399374961853 } objects { id: 26169 label: "Pedestrian" pose_position_x: 1175.647216796875 pose_position_y: -506.730712890625 pose_position_z: -1.569373607635498 pose_orientation_z: 0.6943609118461609 pose_orientation_w: 0.7196269631385803 pose_orientation_yaw: 1.5350627899169922 dimensions_x: 0.8029457330703735 dimensions_y: 0.7876891493797302 dimensions_z: 1.6028095483779907 speed_vector_linear_x: 0.06551000475883484 speed_vector_linear_y: 0.0022428608499467373 relative_position_x: -27.355571746826172 relative_position_y: -10.512933731079102 relative_position_z: 0.19844147562980652 } objects { id: 26168 label: "Pedestrian" pose_position_x: 1173.3189697265625 pose_position_y: -507.2300109863281 pose_position_z: -1.6026556491851807 pose_orientation_z: 0.717462956905365 pose_orientation_w: 0.6965966820716858 pose_orientation_yaw: 1.600306749343872 dimensions_x: 0.7922430038452148 dimensions_y: 0.7811086177825928 dimensions_z: 1.6341478824615479 speed_vector_linear_x: -0.04817964881658554 speed_vector_linear_y: -0.21502695977687836 relative_position_x: -27.89008903503418 relative_position_y: -8.192517280578613 relative_position_z: 0.16775710880756378 } objects { id: 26155 label: "Bus" pose_position_x: 1172.106689453125 pose_position_y: -478.5303039550781 pose_position_z: -0.48812994360923767 pose_orientation_z: -0.7203028798103333 pose_orientation_w: 0.6936596632003784 pose_orientation_yaw: -1.6084778308868408 dimensions_x: 11.322981834411621 dimensions_y: 2.9294095039367676 dimensions_z: 3.1415622234344482 speed_vector_linear_x: -0.017722932621836662 speed_vector_linear_y: 0.1302066147327423 relative_position_x: 0.7977913022041321 relative_position_y: -6.548437118530273 relative_position_z: 0.9966707229614258 } objects { id: 26153 label: "Bus" pose_position_x: 1148.1876220703125 pose_position_y: -490.8350524902344 pose_position_z: -0.954763650894165 pose_orientation_z: 0.6907882690429688 pose_orientation_w: 0.7230570912361145 pose_orientation_yaw: 1.5251574516296387 dimensions_x: 10.779899597167969 dimensions_y: 2.856076717376709 dimensions_z: 2.811084508895874 speed_vector_linear_x: 0.03153659775853157 speed_vector_linear_y: 0.23439916968345642 relative_position_x: -11.868709564208984 relative_position_y: 17.1827335357666 relative_position_z: 0.6278138756752014 } objects { id: 26141 label: "Bus" pose_position_x: 1171.7779541015625 pose_position_y: -512.5936889648438 pose_position_z: -0.9443151354789734 pose_orientation_z: -0.7186583876609802 pose_orientation_w: 0.6953632831573486 pose_orientation_yaw: -1.6037421226501465 dimensions_x: 10.841312408447266 dimensions_y: 2.9661808013916016 dimensions_z: 3.2250704765319824 speed_vector_linear_x: 0.0513402484357357 speed_vector_linear_y: 0.006104861851781607 relative_position_x: -33.26952362060547 relative_position_y: -6.731308937072754 relative_position_z: 0.8776476979255676 } objects { id: 26133 label: "Bus" pose_position_x: 1146.657958984375 pose_position_y: -508.7508239746094 pose_position_z: -0.883571445941925 pose_orientation_z: 0.7007946968078613 pose_orientation_w: 0.713362991809845 pose_orientation_yaw: 1.5530219078063965 dimensions_x: 12.186415672302246 dimensions_y: 2.824420690536499 dimensions_z: 3.292656183242798 speed_vector_linear_x: 0.005901232361793518 speed_vector_linear_y: 0.013970088213682175 relative_position_x: -29.803848266601562 relative_position_y: 18.443498611450195 relative_position_z: 0.8749525547027588 } objects { id: 26120 label: "Bus" pose_position_x: 1170.993408203125 pose_position_y: -525.5801391601562 pose_position_z: -1.104852318763733 pose_orientation_z: -0.7154129147529602 pose_orientation_w: 0.6987019181251526 pose_orientation_yaw: -1.5944297313690186 dimensions_x: 10.749905586242676 dimensions_y: 2.7170863151550293 dimensions_z: 3.0421104431152344 speed_vector_linear_x: 0.016746148467063904 speed_vector_linear_y: -0.23609620332717896 relative_position_x: -46.26727294921875 relative_position_y: -6.141877174377441 relative_position_z: 0.8449855446815491 } }
-
Ego_tf localization_info { timestamp: 1604996332855 stamp_secs: 1604996332 stamp_nsecs: 855301408 pose_position_x: 1165.5460205078125 pose_position_y: -479.2198486328125 pose_position_z: -1.48505699634552 pose_orientation_x: 0.003883248195052147 pose_orientation_y: -0.0031167068518698215 pose_orientation_z: 0.7017714977264404 pose_orientation_w: 0.7123847603797913 pose_orientation_yaw: 1.5557808876037598 velocity_linear: 12.21684455871582 velocity_angular: 0.014540454372763634 acceleration_linear: 0.23571151494979858 acceleration_angular: 0.0 }
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格