forked from brodyh/caffe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconvert_mean.py
executable file
·41 lines (33 loc) · 1.24 KB
/
convert_mean.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""
Conver mean binary proto to npy so that it can be used for visualizing
network activity.
"""
import os
import numpy as np
from google.protobuf import text_format
import caffe
from caffe.proto import caffe_pb2
from PIL import Image
def main(argv):
if len(argv) != 2:
print 'Usage: %s mean_binary' % os.path.basename(sys.argv[0])
return
mean_data = caffe_pb2.BlobProto()
mean_data.ParseFromString(open(sys.argv[1]).read())
mean_data = np.array(mean_data.data)
print mean_data.shape
mean_img = mean_data.reshape([3, 480, 640])
mean_img = mean_img[(2, 1, 0), :, :]
np.save(open('driving_mean_640x480_rgb.npy', 'wb'), mean_img)
mean_img = np.transpose(mean_img, (1, 2, 0))
Image.fromarray(mean_img.astype('uint8')).save('driving_mean_640x480_rgb.png')
"""
real_img = caffe.io.load_image( \
'/deep/group/driving_data/andriluka/IMAGES/driving_data_q50_data/all_extracted/4-2-14-monterey-split_0_280S_a2/4-2-14-monterey-split_0_280S_a2_000341.jpeg')
real_img = caffe.io.resize_image(real_img * 255, (480, 640, 3))
Image.fromarray(real_img.astype('uint8')).save('original.png')
Image.fromarray(np.clip(real_img - mean_img, 0, 255).astype('uint8')).save('sub.png')
"""
if __name__ == '__main__':
import sys
main(sys.argv)