昨天晚上突然收到导师催促上交论文的消息,立即开工!
0x00.emsdk
官网:https://emscripten.org/
安装教程:https://emscripten.org/docs/getting_started/downloads.html
Emscripten,一款LLVM-to-JavaScript的编译器,将C++的底层函数编译成可以直接在浏览器端运行的asm.js或者WebAssembly。而OpenCV.js是通过该Emscripten将OpenCV的函数编译进asm.js或WebAssembly中,并提供JS APIs给web应用使用。
Emscripten可以把C/C++程序编译成asm.js,然后通过binaryen的asm2wasm转成WebAssembly。
之所以没用txy的机子是因为部分依赖源在国外,因此用Skysilk这台机子。git clone https://github.com/juj/emsdk.gitcd emsdk
1 | [root@CentOS emsdk]# ./emsdk update-tags |
1 | [root@CentOS emsdk]# ./emsdk install latest |
1 | [root@CentOS emsdk]# ./emsdk activate latest |
1 | [root@CentOS emsdk]# source ./emsdk_env.sh |
1 | [root@CentOS emsdk]# echo ${EMSCRIPTEN} |
0x01.OpenCV.js
随着
HTML5的兴起,在web端使用图像处理相关技术显得尤为重要,OpenCV.js为Javascript开发者与OpenCV之间搭建了桥梁。起初是由Intel公司发起的一项研究,后在2017年并入到OpenCV项目中。
安装教程:https://docs.opencv.org/master/d4/da1/tutorial_js_setup.html
官方示例页面:Face Detection in Video Capture
这就是最终效果,其实直接从这里拿应该也可以的(逃……git clone https://github.com/opencv/opencv.git
默认是编译成
asm.js版本,如果需要编译成WebAssembly的版本,加上后缀--build_wasm
1 | [root@CentOS opencv]# python ./platforms/js/build_js.py build_wasm --build_wasm |
神奇的玄学bug……
Note
It requirespythonandcmakeinstalled in your development environment.
唔,yum install cmake
1 | [root@CentOS opencv]# python ./platforms/js/build_js.py build_wasm --build_wasm --emscripten_dir=/root/emsdk |
emmm
1 | [root@CentOS ~]# cmake |
溜了溜了停电了XD,未完待续……
所以需要升级cmakeyum install -y gcc gcc-c++ make automake
下载源码:https://cmake.org/download/wget https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4.tar.gztar -zxvf cmake-3.14.4.tar.gzcd cmake-3.14.4./bootstrapgmakegmake install
升级完成
1 | [root@CentOS opencv]# cmake -version |
于是恢复之前的
1 | [root@CentOS opencv]# python ./platforms/js/build_js.py build_wasm --build_wasm |
又去试了下win,也不行,缺对应版本的Windows SDK……
搜了下还是算了吧不折腾了(这不就是我最开始的想法吗2333),https://stackoverflow.com/questions/49777780/can-anybody-generate-opencv-js
You can find a nightly build at https://docs.opencv.org/master/opencv.js and some useful stuff at https://docs.opencv.org/master/utils.js .
<script async src="https://docs.opencv.org/master/opencv.js" type="text/javascript"></script>
使用方法:https://docs.opencv.org/master/d0/d84/tutorial_js_usage.html
0x02.其他
更多
JS的人脸识别库(Best face tracking and recognition related javascript libraries)
tracking.js
clmtrackr
Headtrackr
CCV.js
以上几个都是比较流行的人脸识别的js库,有兴趣的同学可以关注一下。