示例#1
0
    def __init__(self):
        self._device_0 = '/gpu:0'
        self._device_1 = '/gpu:1'
        if self._session is None:
            config = tf.ConfigProto()
            config.allow_soft_placement = True
            config.gpu_options.allow_growth = True
            self._session = tf.Session(config=config)

        if self._extractor is None:
            self._extractor = extractor(self._session, [self._device_0], 1)

        if self._aligner is None:
            self._aligner = aligner(self._session, [self._device_1], 1)
import base64
import cv2
import io
from PIL import Image
from ext.extractor import extractor
from ext.aligner import aligner
#TODO set different gpu devices
device = '/gpu:1'

config = tf.ConfigProto()
config.allow_soft_placement = True
config.gpu_options.allow_growth = True
session = tf.Session(config=config)

Extractor = extractor(session, [device], 1)
Aligner = aligner(session, [device], 1)

connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1'))
channel = connection.channel()
channel.queue_declare(queue='worker_queue', durable=True)


def callback(ch, method, properties, body):
    try:
        start = time.time()
        encoded_data = body
        key = encoded_data[0:9]
        encoded_data = encoded_data[9:]
        img_data = base64.b64decode(encoded_data)
        image = Image.open(io.BytesIO(img_data))
        img = cv2.cvtColor(np.array(image), cv2.IMREAD_COLOR)