new backend
This commit is contained in:
1 parent
040aba1654
commit
bbfe75ff14
2 files changed
+23
-12
No files matched your search
+15
-9
@@ -1,10 +1,11 @@
|
||||
import base64
|
||||
from io import BytesIO
|
||||
import numpy as np
|
||||
import cv2
|
||||
from segment_anything import sam_model_registry, SamPredictor
|
||||
import torch
|
||||
import time
|
||||
from flask import Flask, request
|
||||
from flask import Flask, Response, request
|
||||
|
||||
# check torch version and if cuda is available
|
||||
print(torch.__version__)
|
||||
@@ -24,7 +25,9 @@ app = Flask(__name__)
|
||||
def base64_to_image(base64_code):
|
||||
img_data = base64.b64decode(base64_code)
|
||||
img_array = np.fromstring(img_data, np.uint8)
|
||||
img = cv2.imdecode(img_array, cv2.COLOR_RGB2BGR)
|
||||
print(img_array)
|
||||
img = cv2.imdecode(img_array, -1)
|
||||
print(img)
|
||||
return img
|
||||
|
||||
|
||||
@@ -38,16 +41,19 @@ def index():
|
||||
if (content_type == 'application/json'):
|
||||
print('start calculate embedding')
|
||||
base64data = request.get_json()['imgurl']
|
||||
print(base64data)
|
||||
image = base64_to_image(base64data)
|
||||
predictor.set_image(image)
|
||||
image_embedding = predictor.get_image_embedding().cpu().numpy()
|
||||
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
||||
print(time.time())
|
||||
return image_embedding
|
||||
byte_io = BytesIO()
|
||||
np.save(byte_io, image_embedding)
|
||||
byte_io.seek(0)
|
||||
np.save("array.npy", image_embedding)
|
||||
response = Response(byte_io, mimetype="application/octet-stream")
|
||||
response.headers["Content-Length"] = 4194432
|
||||
return response
|
||||
else:
|
||||
return 'Content-Type not supported!'
|
||||
|
||||
|
||||
# app.run(port=2020, host="0.0.0.0", debug=True)
|
||||
print('server starts working')
|
||||
|
||||
|
||||
print('server starts working')
|
||||
+8
-3
@@ -1,10 +1,15 @@
|
||||
import base64
|
||||
import numpy as np
|
||||
import cv2
|
||||
from segment_anything import sam_model_registry, SamPredictor
|
||||
import torch
|
||||
import time
|
||||
|
||||
|
||||
data = "data:image/jpeg;base64,/9j/4QE2RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAANWfgAAAnEAA1Z+AAACcQQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzADIwMTY6MDE6MDggMTE6MTE6MzMAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAACWKADAAQAAAABAAADIAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAAAAAAAAAAAAEgAAAABAAAASAAAAAH/7Qg6UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAA8cAVoAAxslRxwCAAACSSYAOEJJTQQlAAAAAAAQtZd7wvNKxk6OrmqoO+b6jDhCSU0EOgAAAAAAkwAAABAAAAABAAAAAAALcHJpbnRPdXRwdXQAAAAFAAAAAENsclNlbnVtAAAAAENsclMAAAAAUkdCQwAAAABJbnRlZW51bQAAAABJbnRlAAAAAENscm0AAAAATXBCbGJvb2wBAAAAD3ByaW50U2l4dGVlbkJpdGJvb2wAAAAAC3ByaW50ZXJOYW1lVEVYVAAAAAEAAAA4QklNBDsAAAAAAbIAAAAQAAAAAQAAAAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABIAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABSZ3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJvb2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/gAAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAAUnNsdFVudEYjUHhsQHXgAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBnUHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAAAAAAAABTY2wgVW50RiNQcmNAWQAAAAAAADhCSU0D7QAAAAAAEAFeAAAAAQACAV4AAAABAAI4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0D8gAAAAAACgAA////////AAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANHAAAABgAAAAAAAAAAAAADIAAAAlgAAAAJADYAMAAwAFgAOAAwADAALQA0AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAJYAAADIAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAADIAAAAABSZ2h0bG9uZwAAAlgAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAyAAAAAAUmdodGxvbmcAAAJYAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQQRAAAAAAABAQA4QklNBBQAAAAAAAQAAAACOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwA1AAAAAQA4QklNBAYAAAAAAAcACAAAAAEBAP/hDPFodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpNb2RpZnlEYXRlPSIyMDE2LTAxLTA4VDExOjExOjMzKzA4OjAwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgeG1wOkNyZWF0ZURhdGU9IjIwMTYtMDEtMDhUMTE6MDg6MjQrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTYtMDEtMDhUMTE6MTE6MzMrMDg6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCN0Y0RDkxNEI1QjVFNTExODVCMUUxQzk5NDhBRjc2RiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCN0Y0RDkxNEI1QjVFNTExODVCMUUxQzk5NDhBRjc2RiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkI3RjREOTE0QjVCNUU1MTE4NUIxRTFDOTk0OEFGNzZGIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6QjdGNEQ5MTRCNUI1RTUxMTg1QjFFMUM5OTQ4QUY3NkYiIHN0RXZ0OndoZW49IjIwMTYtMDEtMDhUMTE6MTE6MzMrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLine truncated
|
||||
img_data = base64.b64decode(data)
|
||||
img_array = np.fromstring(img_data, np.uint8)
|
||||
img = cv2.imdecode(img_array, cv2.IMREAD_COLOR)
|
||||
print(img)
|
||||
# check torch version and if cuda is available
|
||||
print(torch.__version__)
|
||||
print(torch.cuda.is_available())
|
||||
@@ -18,8 +23,8 @@ sam.to(device='cuda')
|
||||
predictor = SamPredictor(sam)
|
||||
|
||||
image_name = 'r.jpg'
|
||||
image = cv2.imread('notebooks/images/' + image_name)
|
||||
predictor.set_image(image)
|
||||
# image = cv2.imread('notebooks/images/' + image_name)
|
||||
predictor.set_image(img)
|
||||
image_embedding = predictor.get_image_embedding().cpu().numpy()
|
||||
np.save(image_name + ".npy", image_embedding)
|
||||
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
||||
Reference in new issue
Block a user