Skip to content

Commit 6cad2d6

Browse files
committed
Add caffe-compute-image-mean.
1 parent 741bac4 commit 6cad2d6

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

python2.7/caffe-compute-image-mean.py

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/usr/bin/env python2
2+
3+
import sys
4+
sys.path.append("/home/bamos/repos/caffe-local/python")
5+
6+
import argparse
7+
import numpy as np
8+
import os
9+
import time
10+
11+
from caffe.proto import caffe_pb2
12+
from caffe.io import array_to_blobproto
13+
from collections import defaultdict
14+
from skimage import io
15+
16+
if __name__ == '__main__':
17+
parser = argparse.ArgumentParser()
18+
parser.add_argument('meanPrefix', type=str, help="TODO")
19+
parser.add_argument('imageDir', type=str, help="TODO")
20+
args = parser.parse_args()
21+
22+
exts = ["jpg", "png"]
23+
24+
mean = np.zeros((1, 3, 152, 152))
25+
N = 0
26+
classSizes = defaultdict(int)
27+
28+
beginTime = time.time()
29+
for subdir, dirs, files in os.walk(args.imageDir):
30+
for fName in files:
31+
(imageClass, imageName) = (os.path.basename(subdir), fName)
32+
if any(imageName.lower().endswith("." + ext) for ext in exts):
33+
img = io.imread(os.path.join(subdir, fName))
34+
if img.shape == (152, 152, 3):
35+
mean[0][0] += img[:,:,0]
36+
mean[0][1] += img[:,:,1]
37+
mean[0][2] += img[:,:,2]
38+
N += 1
39+
if N % 1000 == 0:
40+
elapsed = time.time() - beginTime
41+
print("Processed {} images in {:.2f} seconds. "
42+
"{:.2f} images/second.".format(N, elapsed,
43+
N/elapsed))
44+
mean[0] /= N
45+
46+
blob = array_to_blobproto(mean)
47+
with open("{}.binaryproto".format(args.meanPrefix), 'wb') as f:
48+
f.write(blob.SerializeToString())
49+
np.save("{}.npy".format(args.meanPrefix), mean[0])
50+
51+
meanImg = np.transpose(mean[0].astype(np.uint8), (1, 2, 0))
52+
io.imsave("{}.png".format(args.meanPrefix), meanImg)

0 commit comments

Comments
 (0)