1. 背景介绍
深度学习中训练模型时,通常会对图片进行预处理。工程工程师们经常使用OpenCV或者PIL图像处理库对图片进行预处理,个人推荐使用OpenCV,有利于工程部署,性能也更好。
本文着重比较二者在基本图像处理任务上,耗时问题分析。从结果可知,OpenCV的速度更快,提速非常客观。
2. 代码展示
注:imgs文件夹里面存放的是普通图片。
"""
author:guopei
date:2021/06/02
"""
import os
import time
import numpy as np
import cv2
from PIL import Image
import glob
def test_cv(img_list):
start_time = time.time()
for path in img_list:
img = cv2.imread(path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.resize(img, (512, 512))
end_time = time.time()
print("cv:sum time:%.5f" % (end_time - start_time))
def test_PIL(img_list):
start_time = time.time()
for path in img_list:
img = Image.open(path)
img = img.resize((512, 512))
end_time = time.time()
print("PIL:sum time:%.5f" % (end_time - start_time))
if __name__ == "__main__":
img_list = glob.glob("imgs/*.png")
print("image num: %s" % len(img_list))
test_PIL(img_list)
test_cv(img_list)
运行结果:
image num: 1000
PIL:sum time:10.77752
cv:sum time:6.41705
可见,CV在图片预处理上还是有绝对优势的,大约提速40%.
每天进步一点,加油!