“实时头发分割”案例源码详解
1. 构建APP框架和添加主要控件
2. 头发分割的方法
打开实时头发分割案例
1.在VScode中进入代码编辑状态。
2.代码存在路径在/examples_gpu/hair/testhair.py。
导入相关库
1. cv2模块是OpenCV 2.0的简写,在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。
2. remi是一个用于python应用程序的gui库,它将应用程序的接口转换成html并在web浏览器中呈现。这消除了特定于平台的依赖关系,使用户可以轻松地在python中开发跨平台应用程序
3. sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互。
4. NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。在机器学习算法中大部分都是调用Numpy库来完成基础数值计算的。
5. cvs图形控件模块
6. tflite_gpu,GPU加速代码由AID提供,TensorFlow Lite 支持多种硬件加速器。
7. GPU 是设计用来完成高吞吐量的大规模并行工作的。因此,它们非常适合用在包含大量运算符的神经网络上,
8. 一些输入张量可以容易的被划分为更小的工作负载且可以同时执行,通常这会导致更低的延迟。
9. 在最佳情况下,用 GPU 在实时应用程序上做推理运算已经可以运行的足够快,而这在以前是不可能的。
图像与蒙板之间的转化(transfer)
1.
def transfer(image, mask):
#将mask的像素矩阵(在python中是一个二维数组)改成与image同行数同列数
mask = cv2.resize(mask, (image.shape[1], image.shape[0]))
#np.zeros_like函数主要是想实现构造一个矩阵mask_n,其维度与矩阵image一致
#并为其初始化为全0
#这个函数方便的构造了新矩阵,无需参数指定shape大小
mask_n = np.zeros_like(image)
mask_n[:, :, 0