Как дополнительно оптимизировать код на python с tenorflow + opencv + pyrealsense2 - PullRequest
0 голосов
/ 04 октября 2019

Текущее состояние

Сейчас у меня есть код Python, который использует pyrealsense2, cv2, tensorflow для чтения модели тензорного потока. Я цитонизировал его без , изменив .py на .pyx , то есть Я не изменил ни одной переменной с cdef, так как большинство переменных зависит от указанных библиотек.

У меня есть исследование об использовании cdef частей на например, до pyrealsense2, но источники привели меня в никуда. Только мне удалось найти некоторые cv2 обертки, но этого мне недостаточно. Кроме того, я новичок на cython. Итак, у меня есть некоторые трудности, чтобы преобразовать его в cython тоже.

Вопрос в том,

Действительно ли возможно оптимизировать и ускорить коды, которые имеют tensorflow + pyrealsense2 + cv2? Я уверен, что могу что-то сделать для части cv2, но самое главное - максимально сократить время вывода модели .

Примеры и ожидаемые результаты

Моя цель - преобразовать например :

pipeline = rs.pipeline()
config_rs = rs.config()
config_rs.enable_stream(rs.stream.depth, 848, 480, rs.format.z16, FRAME_RATE)
config_rs.enable_stream(rs.stream.color, 848, 480, rs.format.bgr8, FRAME_RATE)
frames = pipeline.wait_for_frames()
try:
    while True:


            depth_frame = frames.get_depth_frame()
            color_frame = frames.get_color_frame()

            if not depth_frame or not color_frame:
                continue
            depth_image = np.asanyarray(depth_frame.get_data())
            color_image = np.asanyarray(color_frame.get_data())
            x, y = sess.run([x_, y_], feed_dict={input_img: [depth_img]})

в нечто вроде:

cdef "type of this" pipeline = rs.pipeline()
cdef "type of this" config_rs = rs.config()
config_rs.enable_stream(rs.stream.depth, 848, 480, rs.format.z16, FRAME_RATE)
config_rs.enable_stream(rs.stream.color, 848, 480, rs.format.bgr8, FRAME_RATE)
cdef "type of this" frames = pipeline.wait_for_frames()
try:
    while True:


            cdef "type of this" depth_frame = frames.get_depth_frame()
            cdef "type of this" color_frame = frames.get_color_frame()

            if not depth_frame or not color_frame:
                continue
            cdef "type of this" depth_image = np.asanyarray(depth_frame.get_data())
            cdef "type of this" color_image = np.asanyarray(color_frame.get_data())
            cdef "type of them" x, y = sess.run([x_, y_], feed_dict={input_img: [depth_img]})

Далее

Прежде всего, спасибо за помощь, я склонен оптимизировать часть tensorflow + pyrealsense2, но я хотел бы услышать предложения по другим типам оптимизаций (возможно, я не читал о них).

Примечание: Некоторые могут предложить мне использовать TensorRT, но, к сожалению, я на Windows-машине.

...