昨天晚上突然收到导师催促上交论文的消息,立即开工!
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.git
cd 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 requirespython
andcmake
installed 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
,未完待续……
所以需要升级cmake
yum 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.gz
tar -zxvf cmake-3.14.4.tar.gz
cd cmake-3.14.4
./bootstrap
gmake
gmake 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库,有兴趣的同学可以关注一下。