# 平台简介
# ByteBridge是什么
ByteBridge提供数据标注全包服务。您可以在dashboard中创建项目,上传数据,配置标注流程,我们负责人工标注。
实时管理所有项目;
提供透明的标准化报价,显著降低项目成本;
您可决定何时开始,何时终止项目,验收并自行下载标注好的数据。
# Bytebridge支持的数据服务
# 数据标注
图片:分类,2D框选,旋转框,多边形,旋转框, 关键点,折线,立方体(3D框选),OCR, 语义分割
语音:分类,情绪判断,文字转语音
视频:分类,事件,目标检测,目标追踪
文本:目标检测,翻译
# 数据采集
除了提供标准的数据标注服务,ByteBridge同时也提供数据采集服务,如果您有相关需求,请跟我们工作人员联系。
# ByteBridge的产品优势
# 高精准度
复杂任务自动化拆解为微小工作单位,减小人工标注错误率,确保数据质量和准确度。所有数据经过机器学习算法和人工质检
# 高效获取数据
利用共识机制实时验证数据准确度,在标注过程中完成质检工作,确保短时间内获取大量精准数据
共识机制:把同一个任务分配给几个工作者,正确答案为大多数人得出的统一结果
# 灵活性
客户可在dashboard上直接制定标注规则
根据各个阶段AI模型训练测试验证的结果,客户可自行对标注数据属性,类型及数量进行调整
项目进度预览模块:用户可实时查看项目进度情况
项目预览模块:客户可实时查看已完成标注的结果
客户可通过API随时获取产出结果
# 价格透明
减少中间商环节,利用人工智能自动化技术优化工作流程,我们提供最具性价比的服务
除此之外,我们提供透明报价
# API
易于集成的API支持不间断的数据上传和交付服务
# 新手指南
# 如何开始?
目录
- 创建账号
- 创建项目
- 配置任务流
- 上传数据
- 检查您的项目并提交
- 试标结果确认
- 补传数据
- 付费并启动项目
# 创建账号
在使用ByteBridge服务前,您首先需要使用邮箱注册一个账号。注册一个账号 (opens new window)。
# 创建项目
登录dashboard (opens new window)后,点击【Create Project】,
选择您的项目类型,采集项目很快上线。
# 上传数据
我们目前提供页面上传和API上传2种上传数据的方式。 页面上传: 您可以通过拖动和点击,上传您要标注的数据,文件格式需要符合页面上标注的要求。
另外您也可以通过 API上传数据。
# 配置任务流
选择项目模版,也可以从空白【Start over】开始;
点击左下角的【Start building】,此时,您的项目就创建成功了,可以前往下一步,根据您实际的需求配置任务流了。
什么是任务流?
任务流是多个任务按某些逻辑关联起来的总称,用来描述某个项目下,每条数据被标注的完整流程;
一个任务流可以包含1-99个分支,每个分支需要一个完节点,当每条数据都按照任务流进行到完结点,项目完成;
您可以通过点击左侧任务类型,来添加新的任务。
您也可以通过拖拽来添加任务
选择添加的任务,可以编辑任务的具体信息
如果添加了错误的任务,可以删除;
当然了,您也可以通过拖拽和Ctrl+C/X/V,复制,剪切和移动已经编辑的任务。任务流配置完成后,需要在每个分支都配置一个完节点,每条数据都会按照您配置到流程标注,直到配置的完节点。
配置完节点后,点击保存【Save】,您的任务流就配置完成了。
# 检查您的项目并提交
在您上传数据, 配置完任务流,选择标注精度后,您可以点击页面内的【Submit】按钮,正式提交项目;项目提交后,我们的工作人员将核对您提交的信息,核对后您的项目将自动开始试标。
# 试标结果确认
试标结束后,系统会自动发送邮件告知。确认试标结果准确无误,您可以点击页面内的「试标结果通过」,进行下一步;您也可以对当前标注结果进行相关批注,点击页面内的「提交全部问题」来告诉我们标注异议;您还可以直接点击页面内的「试标结果有问题」,进入编辑项目配置页面,重新配置任务流程或标注需求,点击页面内的「重新标注」来申请重新标注。(您对最终试标结果满意后,我们才会在正式项目启动之前向您收费)
# 补传数据
确认试标结果没有问题后,您可以补充需要标注的数据。
# 付费并启动项目
我们会以当前项目的试标数据的单图均价为基础,对整个项目进行费用预估(此费用不是精准报价),点击页面内「Confirm」后,我们会根据项目预估费用进行一次预扣费,扣费成功后,项目自动开始。
# 实时监控进度和管理项目
您的项目开始后,您可以在项目详情页实时查看项目的进度;项目的进度包括数据标注的进展情况,成本消耗和标注好的数据。您也可以在项目详情页随时暂停/启动项目。

# 标注数据验收
您可以在数据验收页面,对某个标注结果或某一张图片进行实时验收。请您收到邮件通知后及时验收数据。若21天内不提出修改意见,视作数据已被验收。
# 邮件通知
当您的项目审核、扣款和完成时,您将收到对应的通知邮件。
# 私有云上传
# AWS S3上传数据集
登录AWS,进入控制台

创建账号

设置权限
注:建议请选择 AmazonS3FullAccess 或者 AmazonS3ReadOnlyAccess, 或者其他可读取存储桶的权限。获取访问密钥ID 和私有访问密钥

上传数据时,选择AWS S3

填写存有待添加数据的存储分区名称(Bucket name)

注:Private Cloud Address只需输入bucket name即可,不要带有任何前缀以及文件存储地址,当前仅支持获取bucket下全部文件。
填写访问密钥ID和私有访问密钥

选择存储桶所在区域代码

注:参照亚马逊全球区域列表,获取存储桶所在区域代码

- 提交添加数据
# 谷歌云上传数据集
登录谷歌云,进入控制台

创建服务账号

设置权限
注:请选择Storage Admin或Storage Object Viewer,或者其他可读取下载存储分区的权限。生成keyFile文件
注:选择json,提交创建将自动下载json文件,请妥善保存。上传数据时,选择谷歌云

填写存有待添加数据的存储分区名称(Bucket name)

注:Storage partiton只需输入bucket name即可,不要带有任何前缀以及文件存储地址,当前仅支持获取bucket下全部文件。
- 填写key file信息

注:直接复制json文件全部内容,粘贴至此。
- 提交添加数据
# 数据导出
您在任何时候都可以导出已完成的数据,导出格式包括兼容labelme、voc、coco的json和xml;

除了手动导出,您也可以通过API实时导出结果 (opens new window)。
# 价格和付款说明
# 整体价格说明
ByteBridge提供透明、标准化的数据服务单价,我们根据输出数据需要完成的任务数收费,收费标准见官网单价表 (opens new window)。扣款的金额= ∑(输出数据需要完成的任务x任务单价);比如一条输出需要经过2个Image Classification任务+1个Bounding Box任务,则获得此条输出,您需要支付Image Classification单价x2+ Bounding Box单价x1的费用。
# 扣款方式
您在启动正式项目时,会根据预估项目费用进行一次预扣款,扣费金额会充值在账户余额内;随着项目进行,如果当前账户余额不能满足支付项目实际费用时,我们将会对您当前账户下所有在进行的项目进行综合评估后,从您的信用卡统一扣款到账户余额内,每次扣款的最小单位为$50。
# 退款政策
# 从账户余额退款
从您信用卡扣款但还未消耗的金额,会保留在您的账户余额中,您可以随时在此申请退款,退款将于3个工作日内,按原支付路径退回。
注1:您申请退款时,正在进行中的项目会自动暂停并扣除已完成数据的费用;
注2:我们赠送的金额是不能退款的。
# 已消耗的金额退款
已消耗的金额,无法直接申请退款; 如果您对数据的质量有异议,请联系我们,我们将在3个工作日内审核,如果审核发现数据无效,我们将在3个工作日内将对应金额退回您的账户余额,后续退款流程同从账户余额退款。
# invoice说明
正常来说,ByteBridge将根据单个项目自动生成单独的发票;如果您有特殊的invoice需求,请跟我们工作人员联系。
# 数据质检
# ByteBridge为您的数据质检
为确保数据的质量,您获得的每一份数据,都经过ByteBridge机器算法+人工的质检,整体数据有效性超过99%。
# 在过程中自行验收
同时,我们提供实时的可视化结果验收平台,您可以在项目进行中,随时查看任意一条数据的输出结果。 虽然我们提供了多种数据质检方式,但由于数据的多样性,我们仍然无法保证数据100%的有效,如果您对输出结果有异议,请及时跟我们工作人员联系,我们将第一时间为您处理。
# ByteBridge API
# API签名
# 获取API密钥并请求用户ID
ByteBridge使用用户Id和一个由API密钥签名的字符串来允许API的访问。您用于发送API请求的用户Id和API密匙是基于uuid生成的唯一字符串,您可以在dashboard (opens new window)上找到您的API密钥和用户Id,通过登录 (opens new window)或注册 (opens new window)即可访问。
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
# API密钥签名请求
每次API请求需要提交自己的用户ID并使用API Secret key和请求体,时间戳等。为了使用MD5加密,并将加密的字符串放置在请求体中,我们将通过用户ID和签名字符串来验证请求是否有效。
以下是python处理的签名生成示例,可做参考:
import hashlib
import requests
import time
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
# sign string
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def test_request():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": "md5",
"RequestSign": ""}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
test_request()
# 回调
# 错误
# API错误代码
| Error Code | Error Message | Remarks |
|---|---|---|
| 0 | success | request success |
| 1 | unknown error | error for network or that error unknow |
| 2 | Parameter missing or invalid | Missing or incorrect parameter for request |
| 3 | Json parsing failed | Parse request header or body abnormal |
| 4 | Api request url is invalid | Wrong request url used |
| 5 | Permission error, interface does not provide external access | Cannot request api Interface, Usually request by invalid api url |
| 6 | API request user does not exist | wrong request user you used |
| 7 | Project creation failed, please check the parameter configuration | Project creation failed due to abnormal parameters |
| 8 | The project does not exist | The created project cannot be queried, and the query parameters are incorrect |
| 9 | Project update failed,Please check for the project configurarion | Cannot update the project due to wrong request parameters |
| 10 | Failed to submit the resource link, please check whether the resource link is too long | The resource address is invalid or the resource link exceeds the length limit |
| 10 | The project has not uploaded files and cannot be opened, please upload files first | Before starting the project, you need to upload resources |
| 11 | The project has not uploaded files and cannot be opened, please upload files first | The project needs to upload resources first |
| 12 | Please bind credit card information in dashboard first | The project is opened, you need to bind the credit card, and then open the credit card |
| 13 | The project is under review | The project has been opened and submitted for review, no need to open it again |
| 14 | The project is already in progress, no need to start | The project has been started and submitted for review, no need to repeatedly call to start |
| 15 | The project has been completed and can no longer be started | The project has ended, you cannot open the same project |
| 16 | There is unsettled credit in this account | There are outstanding items, no new items can be opened |
| 17 | There is credit under settlement, please try again later | You have an item in payment, please open the current item later |
| 18 | Checking for the project status, hold on for a second | You need to check whether you have any arrears information before the project starts, please start later |
| 19 | The project failed to start, please check the project configuration | The configuration of the project to be opened is abnormal |
| 20 | The project has been paused | The project may be suspended by the system for other reasons, or you have manually suspended |
| 21 | Project pause failed, please check the parameter configuration and try again later | Pause failed, check whether the Api call is correct |
| 22 | The project can not be deleted now | The item cannot be deleted in its current state (may be already in progress) |
| 23 | Failed to delete in the current state of the project | The item failed to be deleted in the current state |
| 24 | Invalid resource information,Please check resource | The resources uploaded by the project are invalid and cannot be distributed as tasks |
| 25 | The current project status does not allow to upload resources | After the project passes the review, no more resources can be uploaded |
| 26 | Project information query failed, please check whether the retrieved parameters match | Project information query failed, check the retrieval information and try again |
| 27 | api key signature verification failed | The signature of the api request (signed with secret key) is invalid |
| 28 | Projects that have been opened for delivery review cannot be modified | When the project opening operation personnel review, the project cannot be modified, please modify before the project is opened |
# 项目
# 项目创建
发布url
url = 'http://api.bytebridge.io:20000/api/v1/projects'
主体参数
用户ID:
"您的dashboard用户ID"
项目名称:
要确保所创建的项目的名称不能重复,因为您需要使用它来检索您的项目。
类型:
请确保您通过API请求创建的任务类型属于以下几种,否则会报告错误,任务创建将失败。
| Type name | Remarks |
|---|---|
| image_classification | Categorize pictures according to their content |
| text_classification | Categorize text information according to the content of the text |
| image_rectangle_frame_select | Use a quadrilateral to frame the objects specified in the figure |
| image_stroke | Stroke the objects indicated in the picture |
指示:
为创建的项目发表评论。
问题:
当创建的是一个分类任务,您需要以问题的形式提供类别属性,比如图片中的动物是猫还是狗。
标注的目标:
当创建的是一个框选任务,您需要说明所框选的目标。
任务类型:
| Project type | Task Type | Remarks |
|---|---|---|
| image_classification , text_classification | single_choice | When the project category is classified, the parameter must be selected (single_choice, multiple_choice)When the item category is frame selection, the parameter must be selected ("rectangle_frame_select","free_point","stroke","cube_circle") |
| image_classification , text_classification | multiple_choice | -------- |
| image_rectangle_frame_select , image_stroke | rectangle_frame_select | --------- |
| image_rectangle_frame_select , image_stroke | free_point | --------- |
| image_rectangle_frame_select , image_stroke | stroke | --------- |
| image_rectangle_frame_select , image_stroke | cube_circle | --------- |
选项:
选项(项目类型为分类任务时,参数为必填项)
样本
请求
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def create_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',
"RequestSign": ''}
body = {
"userId": user_id,
"params": {
"projectName": "api test project",
"type": "image_classification",
'instruction': 'demo for test',
'question': 'Is the creature in the picture a cat or a dog',
"taskType": "single_choice",
'options': [{'value': 'cat'}, {'value': 'dog'}, {'value': 'unknown'}]
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
create_project()
响应
{
"code": 0,
"successMsg": "success",
"timestamp": 1597388950604,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p272_TJMngfdY",
"type": "image_classification",
"name": "demo for api test project",
"taskType": "single_choice",
"instruction": "demo for test",
"qiestion": "Is the creature in the picture a cat or a dog",
"extra": {
"options": [{
"value": "cat"
}, {
"value": "dog"
}, {
"value": "unknown"
}]
},
"created": 1597388950
}
}
# 项目更新
发布url
url = 'http://api.bytebridge.io:20000/api/v1/projects/setProject'
主体参数
用户ID:
"您的dashboard用户ID"
项目Id:
成功创建项目后,您可以获取该项目的唯一的Id,并可以使用这个Id进行项目操作。
项目名称,类型,指示,问题,标注的目标,任务类型,选项:
创建项目后,如果项目未开启,您可重新设置项目信息。项目一旦被开启,则无法对项目配置进行更改。
样本
请求
import requests
import json
import hashlib
import time
url = "http://api.bytebridge.io:20000/api/v1/projects/setProject"
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (
user_id, body, headers['Timestamp'], secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def update_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',"RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"projectId": "p272_TJMngfdY",
"projectName": "first change for demo",
"type": "image_classification",
'instruction': 'change it for demo ok?',
'question': 'dog or pig in picture',
"taskType": "single_choice",
'options': [{'value': 'dog'}, {'value': 'pig'}, {'value': 'unknown'}]
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
update_project()
响应
{
"code": 0,
"successMsg": "success",
"timestamp": 1597393803152,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p272_TJMngfdY",
"type": "image_classification",
"name": "first change for demo",
"taskType": "single_choice",
"instruction": "change it for demo ok?",
"qiestion": "dog or pig in picture",
"extra": {
"options": [{
"value": "dog"
}, {
"value": "pig"
}, {
"value": "unknown"
}]
},
"created": 1597393803,
"projectStatus": 0
}
}
# 项目检索
发布url
url = 'http://api.bytebridge.io:20000/api/v1/projects/retrieveProject'
主体参数
用户Id:
"您的dashboard用户ID"
项目Id:
成功创建项目后,您可以获取该项目的唯一的Id,您可以使用这个Id进行项目操作。
开始时间,结束时间:
您可以查询一定时间内的项目信息和进度。 若未输入任何参数,项目状态默认从开始到当前。
样本
请求
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/retrieveProject'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def retrieve_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5', "RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"projectId": "p272_TJMngfdY",
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
retrieve_project()
响应
{
"code": 0,
"successMsg": "success",
"timestamp": 1597397826240,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectData": {
"projectName": "first change for demo",
"projectInstruction": "change it for demo ok?",
"question": "dog or pig in picture",
"projectType": "image_classification",
"taskType": "single_choice",
"projectItemQuantity": 11,
"processingQuantity": 0,
"projectStatus": "checking",
"completedQuantity": 0,
"noStartQuantity": 11,
"successQuantity": 0,
"failedQuantity": 0,
"outputQuantity": 0,
"amountSpent": 0.0,
"options": [{
"value": "dog"
}, {
"value": "pig"
}, {
"value": "unknown"
}]
},
"extraInfo": {
"downloadableResultNum": 0,
"downloadResultURL": ""
}
}
}
# 资源上传
发布url
url = 'http://api.bytebridge.io:20000/api/v1/projects/submitResource'
主体参数
用户Id:
"您的dashboard用户ID"**
项目Id:
处理资源的项目Id
类型:
您可以通过此界面上传项目资源。可上传的资源类型如下。
| Type name | Remarks |
|---|---|
| image | Picture type (jpg,jpeg,png,gif) |
| audio | Audio in mp3 format |
| text | type of text |
| graphic | Picture contains text |
样本
请求
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/submitResource'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def submit_resource():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',"RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"projectId": "p273_j85WwxK7",
"resourceType": "image",
"resourceURLs": [
"https://d301.paixin.com/thumbs/1092213/119132616/staff_1024.jpg",
"https://d301.paixin.com/thumbs/1902695/106230432/staff_1024.jpg",
]
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
submit_resource()
响应
{
"code": 0,
"successMsg": "success",
"timestamp": 1597656918164,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p273_j85WwxK7",
"resourceType": "image",
"resourceDta": ["https://d301.paixin.com/thumbs/1092213/119132616/staff_1024.jpg", "https://d301.paixin.com/thumbs/1902695/106230432/staff_1024.jpg"],
"created": 1597656918
}
}
# 项目状态
发布url
url = 'http://api.bytebridge.io:20000/api/v1/projects/submitResource'
主体参数
用户Id:
"您的dashboard用户ID"
样本
项目Id:
更改状态的项目Id。
类型:
您可以通过此界面更改项目状态,可更改的项目类型如下。
| Type name | Remarks |
|---|---|
| start | Start a project |
| pause | Pause a project by yourself |
| delete | Delete a project by yourself |
请求
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/alterState'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (
user_id, body, headers['Timestamp'], secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def Alter_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',
"RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"type": "start",
"projectId": "p273_j85WwxK7",
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
Alter_project()
响应
# error
{
"code": 13,
"errorMsg": "The project is under review",
"timestamp": 1597657529770,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D"
}
# success
{
"code": 0,
"successMsg": "success",
"timestamp": 1597657621240,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p273_j85WwxK7",
"alterType": "pause",
"created": 1597657621
}
}
# 项目结果
# FAQ
# 使用问题
# 谁会标注我的数据?
所有数据100%人工标注。标注结果经过机器和人工审核后最终交付。
# 我需要配备自己的标注团队吗?
不需要的,ByteBridge提供完整的数据服务,包括标注工具和人工。
# 我自己有标注员,可以只使用ByteBridge,用自己的标注员来标注吗?
是的,我们可以提供这种方式,如果您有此类需求,可以跟我们工作人员联系
# 什么是任务流?
任务流是多个任务按某些逻辑关联起来的总称,用来描述某个项目下,每条数据被标注的完整流程;
一个任务流可以包含1-99个分支,每个分支需要一个完节点,当每条数据都按照任务流进行到完结点,项目完成。
具体的配置方式见:配置任务流
# 我如何能了解数据导入,结果导出及标注过程已完成?
任何时间,您都可以在项目的详情页中查看实时进度。
另外,项目有任何状态的变化我们都会发邮件通知您。
# 我为什么不能删除项目?
某些情况下,由于项目正在进行或正在结算,此时您无法直接删除项目,请根据页面提示操作后再进行删除操作,如果遇到其他原因无法删除项目,请跟我们工作人员联系,我们将第一时间为您处理。
# 为什么项目需要被审核?审核需要等多久?
为了保证您的项目完成的质量,我们将在项目开始前,对您的配置和数据做一次人工的审核;
正常来说,审核时间小于1个工作日,如果您的项目超过1个工作日还没有审核结果,请跟我们工作人员联系,我们将第一时间为您处理。
# 项目开始后,为什么项目进程显示仍为零?
您的项目审核通过后,我们将对您的数据进行预处理,并为您找到最合适的标注员,这一般需要几分钟的时间,如果您的项目超过1小时仍然没有进度变化,请跟我们工作人员联系,我们将第一时间为您处理。
# 为什么我的项目审核被拒绝了?
您可以在邮件和项目详情页中,看到被拒绝的具体原因;
常见的拒绝原因包括:任务流逻辑错误、任务流文案错误、上传文件不符合标准、上传文件涉及敏感内容等。
# 我的项目需要进行多久?
项目需要处理的时间和您的数据量及任务流复杂度相关,一般来说,一个中等复杂度的包含10000张图片的图片标注项目,处理时间小于1个工作日。
# 是否提供采集服务?
除了提供标准的数据标注服务,我们也提供数据采集服务,如果您有相关需求,请跟我们工作人员联系。
# 我可以复制或复用我配置好的任务流吗?
您可以通过点击[Clone Project]复用您配置好的任务流。
# 如何给已启动的项目添加更多数据?
平台支持给已经启动的项目添加数据,点击[Add Batch]即可添加更多数据。
# 请问你方有专业的项目经理吗,我们如何同你们的标注团队进行沟通呢?
项目经理会从项目初期开始跟进,另外在dashboard上您可以直接和项目经理沟通。如果操作中遇到任何问题,或者有其他特殊项目需求,您也可以跟我们工作人员联系。
# 数据安全性
# 数据的安全性如何保障?
标注平台上所有使用的和存储的数据都是默认加密的, 在标注过程中,任务被自动化拆分,每个标注人员仅能查看部分数据;
未经您的许可,我们不会将您的数据泄露出去或用于任何其他目的
如果您删除了(标注好的)数据集,我们将在2个小时内从系统中删除您的所有数据副本;
我们设置了相关安全措施,旨在防止数据丢失、未经授权的访问等。
# 请问您们如何做到数据安全合规或者你们有获取哪些证书吗?
公司已获得数据处理方面ISO27001信息安全体系证书。
项⽬前期:公司与工作者签订授权与保密协议
相应法规:公司遵守欧盟GDPR个人隐私和数据保护条例,根据项⽬要求限制标注员所在地、操作规程及权限
分发过程:数据在分发中进行压缩预处理,确保原始数据不会流出
任务拆解分配过程:把复杂的任务自动化拆分成简单的⼩任务,通过平台分发给匹配用户,⽀持多人共同工作
采标过程:分散数据最终在服务器上通过程序合成完数据,标注流程中数据不会以完整形式泄露
存储过程:通过权限分配的方式把特定的客户数据隔离部署单独服务器(私有云方式), 或客户自己部署数据服务(私有化部署⽅式),任务可直接分发到客户端终端
# 你们会将我的数据进行存储或扩充并提供给第三方吗?
您的数据只会按需提供给标注员进行标注,我们不会将您的数据用于其他任何用途。
# 我上传的文件存储在哪里?为什么我会收到临时文件被清除的邮件?
您上传的文件将被临时存储在我们aws的服务器中。
当您的项目完成7天,或您的项目上传文件后长期未启动,我们将清除临时存储的文件,每次清除之前,都会有文件通知到您。
# 数据质量
# 质检工作包含在标注过程中吗?请问具体流程是什么?
我们交付的每一条数据,都100%经过AI算法和人工核对。
每个任务都由最专业的标注员标注,每类任务都有完整的核对算法检验;我们利用共识机制实时验证数据准确度,在标注过程中完成质检工作,确保数据精确性。
# 我的团队如何能参加验收?
另外我们还提供可视化的数据验收工具,您可以实时进行数据验收,如果您对数据有异议,在获得数据21x24小时内,可以申请对异议数据进行免费重新标注。