natanielruiz
2017-10-30 4b67b5c8ed5566ec3030d537536282e830d87e40
code/test_on_video.py
@@ -1,4 +1,9 @@
import sys, os, argparse
import numpy as np
import cv2
import matplotlib.pyplot as plt
import torch
import torch.nn as nn
from torch.autograd import Variable
@@ -8,10 +13,6 @@
import torchvision
import torch.nn.functional as F
from PIL import Image
import cv2
import matplotlib.pyplot as plt
import sys, os, argparse
import datasets, hopenet, utils
@@ -46,10 +47,8 @@
    if not os.path.exists(args.video_path):
        sys.exit('Video does not exist')
    # ResNet101 with 3 outputs.
    # model = hopenet.Hopenet(torchvision.models.resnet.Bottleneck, [3, 4, 23, 3], 66)
    # ResNet50
    model = hopenet.Hopenet(torchvision.models.resnet.Bottleneck, [3, 4, 6, 3], 66, 0)
    # ResNet50 structure
    model = hopenet.Hopenet(torchvision.models.resnet.Bottleneck, [3, 4, 6, 3], 66)
    print 'Loading snapshot.'
    # Load snapshot
@@ -154,7 +153,8 @@
                img_shape = img.size()
                img = img.view(1, img_shape[0], img_shape[1], img_shape[2])
                img = Variable(img).cuda(gpu)
                yaw, pitch, roll, angles = model(img)
                yaw, pitch, roll = model(img)
                yaw_predicted = F.softmax(yaw)
                pitch_predicted = F.softmax(pitch)
@@ -163,6 +163,7 @@
                yaw_predicted = torch.sum(yaw_predicted.data[0] * idx_tensor) * 3 - 99
                pitch_predicted = torch.sum(pitch_predicted.data[0] * idx_tensor) * 3 - 99
                roll_predicted = torch.sum(roll_predicted.data[0] * idx_tensor) * 3 - 99
                # Print new frame with cube and axis
                txt_out.write(str(frame_num) + ' %f %f %f\n' % (yaw_predicted, pitch_predicted, roll_predicted))
                # utils.plot_pose_cube(frame, yaw_predicted, pitch_predicted, roll_predicted, (x_min + x_max) / 2, (y_min + y_max) / 2, size = bbox_width)