Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
DA-Platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Berlin
DA-Platform
Commits
a07a7af0
Commit
a07a7af0
authored
Jul 12, 2020
by
convivae
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改图像文档api以及后端代码
parent
17689ef5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
99 additions
and
93 deletions
+99
-93
config.py
DAPlatform/config/config.py
+5
-0
Image.py
DAPlatform/dao/Image.py
+54
-38
imageAnnotation.py
DAPlatform/views/imageAnnotation.py
+40
-55
图像标注接口文档.docx
文档/图像标注接口文档.docx
+0
-0
No files found.
DAPlatform/config/config.py
View file @
a07a7af0
...
...
@@ -18,3 +18,8 @@ class DevelopmentConfig(object):
'username'
:
'admin'
,
'password'
:
'admin'
}
# MONGODB_SETTINGS = {
# 'host': 'localhost',
# 'port': 27017,
# }
DAPlatform/dao/Image.py
View file @
a07a7af0
...
...
@@ -99,42 +99,42 @@ def create_images(image_list):
return
res
# 图层实体
class
LayerEntity
(
db
.
EmbeddedDocument
):
layerId
=
db
.
IntField
(
required
=
True
)
layerName
=
db
.
StringField
(
required
=
True
)
layerUrl
=
db
.
StringField
(
required
=
True
)
def
to_json
(
self
):
return
{
'layerId'
:
self
.
layerId
,
'layerName'
:
self
.
layerName
,
'layerUrl'
:
self
.
layerUrl
}
#
#
图层实体
#
class LayerEntity(db.EmbeddedDocument):
#
layerId = db.IntField(required=True)
#
layerName = db.StringField(required=True)
#
layerUrl = db.StringField(required=True)
#
#
def to_json(self):
#
return {'layerId': self.layerId,
#
'layerName': self.layerName,
#
'layerUrl': self.layerUrl}
# 图层标注的数据库
class
Layer
(
db
.
Document
):
relationId
=
db
.
IntField
(
required
=
True
,
unique
=
True
)
layerEntityList
=
db
.
ListField
(
db
.
EmbeddedDocumentField
(
LayerEntity
))
#
layerEntityList = db.ListField(db.EmbeddedDocumentField(LayerEntity))
labelList
=
db
.
ListField
(
db
.
EmbeddedDocumentField
(
Label
))
def
to_json
(
self
):
return
{
'relationId'
:
self
.
relationId
,
'layerEntityList'
:
[
i
.
to_json
()
for
i
in
self
.
layerEntityList
],
#
'layerEntityList': [i.to_json() for i in self.layerEntityList],
'labelList'
:
[
i
.
to_json
()
for
i
in
self
.
labelList
]
}
# 根据json列表创建对象列表
def
create_layer_entities
(
layer_entity_list
):
res
=
[]
for
i
in
layer_entity_list
:
layer_entity
=
LayerEntity
(
layerId
=
i
[
'layerId'
],
layerName
=
i
[
'layerName'
],
layerUrl
=
i
[
'layerUrl'
]
)
res
.
append
(
layer_entity
)
return
res
#
#
根据json列表创建对象列表
#
def create_layer_entities(layer_entity_list):
#
res = []
#
for i in layer_entity_list:
#
layer_entity = LayerEntity(
#
layerId=i['layerId'],
#
layerName=i['layerName'],
#
layerUrl=i['layerUrl']
#
)
#
res.append(layer_entity)
#
return res
# 根据json列表创建对象列表
...
...
@@ -147,7 +147,7 @@ def create_layers(layer_list):
obj
.
delete
()
layer
=
Layer
(
relationId
=
i
[
'relationId'
],
layerEntityList
=
create_layer_entities
(
i
[
'layerEntityList'
]),
#
layerEntityList=create_layer_entities(i['layerEntityList']),
labelList
=
create_labels
(
i
[
'labelList'
])
)
layer
.
save
()
...
...
@@ -172,12 +172,12 @@ class LandmarkEntity(db.EmbeddedDocument):
# 地标存储表
class
Landmark
(
db
.
Document
):
relationId
=
db
.
IntField
(
required
=
True
,
unique
=
True
)
layerEntityList
=
db
.
ListField
(
db
.
EmbeddedDocumentField
(
LayerEntity
))
#
layerEntityList = db.ListField(db.EmbeddedDocumentField(LayerEntity))
landmarkEntityList
=
db
.
ListField
(
db
.
EmbeddedDocumentField
(
LandmarkEntity
))
def
to_json
(
self
):
return
{
'relationId'
:
self
.
relationId
,
'layerEntityList'
:
[
i
.
to_json
()
for
i
in
self
.
layerEntityList
],
#
'layerEntityList': [i.to_json() for i in self.layerEntityList],
'landmarkEntityList'
:
[
i
.
to_json
()
for
i
in
self
.
landmarkEntityList
]
}
...
...
@@ -200,9 +200,13 @@ def create_landmark_entities(landmark_entity_list):
def
create_landmarks
(
landmark_list
):
res
=
[]
for
i
in
landmark_list
:
rid
=
i
[
'relationId'
]
obj
=
Landmark
.
objects
(
relationId
=
rid
)
if
obj
:
obj
.
delete
()
landmark
=
Landmark
(
relationId
=
i
[
'relationId'
],
layerEntityList
=
create_layer_entities
(
i
[
'layerEntityList'
]),
#
layerEntityList=create_layer_entities(i['layerEntityList']),
landmarkEntityList
=
create_landmark_entities
(
i
[
'landmarkEntityList'
])
)
res
.
append
(
landmark
)
...
...
@@ -232,25 +236,37 @@ def saveImage(image_list):
# 获取图层
def
getLayer
(
relation_
list
):
def
getLayer
(
relation_
id
):
try
:
layer_list
=
Layer
.
objects
(
relationId__in
=
relation_list
)
landmark_list
=
Landmark
.
objects
(
relationId__in
=
relation_list
)
layer_data
=
[
layer
.
to_json
()
for
layer
in
layer_list
]
landmark_data
=
[
landmark
.
to_json
()
for
landmark
in
landmark_list
]
return
Result
(
1
,
[{
'layer num'
:
len
(
layer_data
),
'landmark num'
:
len
(
landmark_data
)}],
{
'layerList'
:
layer_data
,
'landmarkList'
:
landmark_data
})
layer_info
=
Layer
.
objects
(
relationId
=
relation_id
)
.
first
()
layer_data
=
None
if
layer_info
:
layer_data
=
layer_info
.
to_json
()
landmark_info
=
Landmark
.
objects
(
relationId
=
relation_id
)
.
first
()
landmark_data
=
None
if
landmark_info
:
landmark_data
=
landmark_info
.
to_json
()
return
Result
(
1
,
"success"
,
{
'layerInfo'
:
layer_data
,
'landmarkList'
:
landmark_data
})
except
Exception
as
e
:
traceback
.
print_exc
()
return
Result
(
0
,
repr
(
e
),
{})
# 保存图层标注结果
def
saveLayer
(
layer_
list
,
landmark_list
):
def
saveLayer
(
layer_
info
,
landmark_info
):
try
:
layers
=
create_layers
(
layer_list
)
landmarks
=
create_landmarks
(
landmark_list
)
return
Result
(
1
,
[{
'layer num'
:
len
(
layers
),
'landmark num'
:
len
(
landmarks
)}],
{})
layer_list
=
[
layer_info
]
layer_data
=
create_layers
(
layer_list
)[
0
]
if
landmark_info
is
not
None
:
landmark_list
=
[
landmark_info
]
landmark_data
=
create_landmarks
(
landmark_list
)[
0
]
# print(landmark_data.to_json())
# print(layer_data.to_json())
return
Result
(
1
,
"success"
,
{})
except
Exception
as
e
:
traceback
.
print_exc
()
return
Result
(
0
,
repr
(
e
),
{})
DAPlatform/views/imageAnnotation.py
View file @
a07a7af0
...
...
@@ -3,11 +3,11 @@ from flask import Blueprint, jsonify, request
from
dao
import
Image
image
=
Blueprint
(
"image"
,
__name__
,
url_prefix
=
"/api
/image
"
)
image
=
Blueprint
(
"image"
,
__name__
,
url_prefix
=
"/api"
)
# 获取图片
@image.route
(
"/getImage"
,
methods
=
[
"POST"
])
@image.route
(
"/
image/
getImage"
,
methods
=
[
"POST"
])
def
get_image
():
data
=
json
.
loads
(
request
.
data
)
relation_list
=
data
[
'relationList'
]
...
...
@@ -22,7 +22,7 @@ def get_image():
# 保存图片标注结果
@image.route
(
"/saveImage"
,
methods
=
[
"POST"
])
@image.route
(
"/
image/
saveImage"
,
methods
=
[
"POST"
])
def
save_image
():
data
=
json
.
loads
(
request
.
data
)
image_list
=
data
[
'imageList'
]
...
...
@@ -36,10 +36,10 @@ def save_image():
# 获取图层
@image.route
(
"/getLayer"
,
methods
=
[
"POST"
])
@image.route
(
"/
layer/
getLayer"
,
methods
=
[
"POST"
])
def
get_layer
():
data
=
json
.
loads
(
request
.
data
)
relation_list
=
data
[
'relation
List
'
]
relation_list
=
data
[
'relation
Id
'
]
layer
=
Image
.
getLayer
(
relation_list
)
res
=
{
'code'
:
layer
.
code
,
...
...
@@ -50,12 +50,14 @@ def get_layer():
# 保存图层标注结果
@image.route
(
"/saveLayer"
,
methods
=
[
"POST"
])
@image.route
(
"/
layer/
saveLayer"
,
methods
=
[
"POST"
])
def
save_layer
():
data
=
json
.
loads
(
request
.
data
)
layer_list
=
data
[
'layerList'
]
landmark_list
=
data
[
'landmarkList'
]
ret
=
Image
.
saveLayer
(
layer_list
,
landmark_list
)
layer_info
=
data
[
'layerInfo'
]
landmark_info
=
None
if
'landmarkInfo'
in
data
:
landmark_info
=
data
[
'landmarkInfo'
]
ret
=
Image
.
saveLayer
(
layer_info
,
landmark_info
)
res
=
{
'code'
:
ret
.
code
,
'message'
:
ret
.
message
,
...
...
@@ -105,49 +107,31 @@ def save_layer():
# 保存图层标注结果的测试数据
# {
# "layerList": [
# {
# "relationId": 8,
# "layerEntityList": [
# {
# "layerId": 7,
# "layerName": "layerNo1",
# "layerUrl": "www.layerNo1.com"
# }
# ],
# "labelList": [
# {
# "labelId": 181,
# "labelName": "label01",
# "pointList": [
# {
# "pointId": 21,
# "X": 211.01,
# "Y": 211.02
# }
# ]
# }
# ]
# }
# ],
# "landmarkList": [
# {
# "relationId": 1,
# "layerEntityList": [
# {
# "layerId": 3,
# "layerName": "layerNo3",
# "layerUrl": "www.layerNo3.com"
# }
# ],
# "landmarkEntityList": [
# {
# "landmarkId": 31,
# "landmarkName": "landmark31",
# "X": 31.1,
# "Y": 31.2
# }
# ]
# }
# ]
# }
# "layerInfo": {
# "relationId": 8,
# "labelList": [
# {
# "labelId": 181,
# "labelName": "label01",
# "pointList": [
# {
# "pointId": 21,
# "X": 211.01,
# "Y": 211.02
# }
# ]
# }
# ]
# },
# "landmarkInfo": {
# "relationId": 181,
# "landmarkEntityList": [
# {
# "landmarkId": 31,
# "landmarkName": "landmark31",
# "X": 31.1,
# "Y": 31.2
# }
# ]
# }
# }
\ No newline at end of file
文档/图像标注接口文档.docx
View file @
a07a7af0
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment