(全)Docker安装+人脸比对算法服务(win10)
? ? ? ?最近在設計功能的過程中,涉及到了人臉比對等算法;于是上網查詢了人臉算法的相關文章和第三方技術廠商,發現需要花錢買服務(這很正常畢竟研發需要耗費很大的成本),可惜我只用于學習,不太想花錢;后面和小伙伴一起get到了一個開源(apache 2.0開源協議)人臉算法服務,很nice; 現分享如下:
? ? ? ?以下均在win10專業版下操作 !!!
? ? ? ?以下均在win10專業版下操作 !!!
? ? ? ?以下均在win10專業版下操作 !!!
第一步:你需要安裝配置Docker操作如下;
控制面板 --- 程序 --- 啟用或關閉Windows功能 --- 選擇Hyper-v并確定和重啟電腦。(原因:docker面向linux系統,所以需要Hyper-V 提供硬件虛擬化;詳細了解請自行百度)
?進入這個網址
https://www.docker.com/products/docker-desktop下載這個安裝包(這個過程可能會失敗幾次,多下載幾次)
安裝好是這樣的(當然不可能這么順利,期間會報錯的;常見報錯見:附件1)
?附件1:
問題1:
?解決方法:點擊鏈接下載、安裝;重啟docker應用;
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi問題2:設置中的配置可能需要改一下,如下
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] }?------------第一步 結束----------------------------------------------------------------------------------------------------
?第二步:人臉算法服務;
進入這個鏈接:
https://gitee.com/mirrors/compreface接下來,按照指引操作即可
?
點擊API說明,進去,就是具體的接口了;使用postman+下面我發的前端頁面,配合測試。
<!DOCTYPE html> <html> <head><script type="text/javascript">function video() {let video = document.getElementById("live");let canvas = document.getElementById("canvas");let canvas2 = document.getElementById("canvas2");let ctx = canvas.getContext('2d');let ctx2 = canvas2.getContext('2d');let apiKey = document.getElementById("apiKey").value;navigator.mediaDevices.getUserMedia({video: {width: 640, height: 480}}).then(function (stream) {video.srcObject = stream;document.addEventListener("next_frame", draw);const evt = new Event("next_frame", {"bubbles": true, "cancelable": false});document.dispatchEvent(evt);});function draw() {ctx.drawImage(video, 0, 0, 640, 480);canvas.toBlob(function (blob) {blob.name = "blob.jpeg"let fd = new FormData();fd.append('file', blob, "blob.jpeg");fetch('http://localhost:8000/api/v1/recognition/recognize',{method: "POST",headers: {"x-api-key": apiKey},body: fd}).then(r => r.json()).then(function (data) {const evt = new Event("next_frame", {"bubbles": true, "cancelable": false});document.dispatchEvent(evt);ctx2.clearRect(0, 0, 640, 480);ctx2.drawImage(video, 0, 0, 640, 480);if (!data.result) {return;}let box = data.result[0].box;let name = data.result[0].subjects[0].subject;ctx2.lineWidth = 3;ctx2.strokeStyle = 'green';ctx2.strokeRect(box.x_min, box.y_min, box.x_max - box.x_min, box.y_max - box.y_min);ctx2.font = '24px serif';ctx2.strokeText(name, box.x_min, box.y_min - 20);});}, 'image/jpeg', 0.95);}}</script><title>test</title> </head> <body> <label for="apiKey">API key:</label><input id="apiKey" /> <button onclick="video()">video</button> <video id="live" width="640" height="480" autoplay style="display:none;"></video> <canvas width="640" id="canvas" height="480" style="display:none;"></canvas> <canvas width="640" id="canvas2" height="480"></canvas> </body> </html>?------------第二步 結束----------------------------------------------------------------------------------------------------
我的思路是:單獨部署這個人臉算法服務(單獨服務器部署,不要和重要應用放在同一個服務器),然后應用調取使用;?
歡迎批評指正...
總結
以上是生活随笔為你收集整理的(全)Docker安装+人脸比对算法服务(win10)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关2pc, 3pc,Tcc 的理解
- 下一篇: 计算机科学类专升本复习之“C语言结构体”