watermark-extractor
通过神经网络将图片中的水印提取出来,为下一步去水印打下基础。
PS:提取的水印图片效果非常一般,实际使用时推荐多提取几张最后求个平均值。
使用方法
;// import '@tensorflow/tfjs-node'; // import '@tensorflow/tfjs-node-gpu'; //根据实际情况考虑是否开启GPU加速 // 将图片转换成Tensor。至少需要5张图片const data = await ; // 找出水印在图片中的位置const position = await ; // 选择概率大于70%的位置const selected = tf; // 提取水印,PNG格式const watermark = await ; //Tensor转换成图片const png_position = ;const png_watermark = ; //清理内存data;position;selected;watermark;
Windows GPU开发环境搭建
- 安装CUDA,参考视频
- 必须先安装visual studio, 安装vs时只需要安装c++模块即可。
- 安装CUDA,安装前先看看tfjs-node-gpu支持的版本(必须完全一致,连小版本号都不许变)。安装时必须把翻墙打开,不然可能会失败。
- 安装cuDNN,并配置环境变量
- 安装tfjs-node-gpu
- windows版本常见错误
- 编译时如果遇到
"gyp ERR! stack Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe failed with exit code: 1"
错误,很有可能是javascript内存溢出造成的。添加一个环境变量NODE_OPTIONS=--max_old_space_size=4096
即可。 - 如果还是无法解决,可以通过以下方式查看以下编译出错的具体信息。
Those logs have a truncated node-gyp log so it is hard to figure out what is going on. Clone the tfjs-node repo and running the following - it might give some more details: git clone https://github.com/tensorflow/tfjs-node.git cd tfjs-node npm install # This command probably fails: npm run enable-gpu # Get the logs from this: node-gyp rebuild If you don't have node-gyp - npm install -g node-gyp.
- 安装
tensorboard
。以超级用户运行pip install tensorboard
训练数据准备
- 从视频中提取关键帧:
ffmpeg -skip_frame nokey -i 视频名称.flv -vsync 0 -r 30 -f image2 %d.jpeg
。 - 注意通过关键帧来提取水印可能会导致水印图片变得模糊。