(全)Docker安装+人脸比对算法服务(win10)
? ? ? ?最近在設(shè)計(jì)功能的過程中,涉及到了人臉比對等算法;于是上網(wǎng)查詢了人臉?biāo)惴?/strong>的相關(guān)文章和第三方技術(shù)廠商,發(fā)現(xiàn)需要花錢買服務(wù)(這很正常畢竟研發(fā)需要耗費(fèi)很大的成本),可惜我只用于學(xué)習(xí),不太想花錢;后面和小伙伴一起get到了一個(gè)開源(apache 2.0開源協(xié)議)人臉?biāo)惴ǚ?wù),很nice; 現(xiàn)分享如下:
? ? ? ?以下均在win10專業(yè)版下操作 !!!
? ? ? ?以下均在win10專業(yè)版下操作 !!!
? ? ? ?以下均在win10專業(yè)版下操作 !!!
第一步:你需要安裝配置Docker操作如下;
控制面板 --- 程序 --- 啟用或關(guān)閉Windows功能 --- 選擇Hyper-v并確定和重啟電腦。(原因:docker面向linux系統(tǒng),所以需要Hyper-V 提供硬件虛擬化;詳細(xì)了解請自行百度)
?進(jìn)入這個(gè)網(wǎng)址
https://www.docker.com/products/docker-desktop下載這個(gè)安裝包(這個(gè)過程可能會失敗幾次,多下載幾次)
安裝好是這樣的(當(dāng)然不可能這么順利,期間會報(bào)錯(cuò)的;常見報(bào)錯(cuò)見:附件1)
?附件1:
問題1:
?解決方法:點(diǎn)擊鏈接下載、安裝;重啟docker應(yīng)用;
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi問題2:設(shè)置中的配置可能需要改一下,如下
{"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"] }?------------第一步 結(jié)束----------------------------------------------------------------------------------------------------
?第二步:人臉?biāo)惴?/strong>服務(wù);
進(jìn)入這個(gè)鏈接:
https://gitee.com/mirrors/compreface接下來,按照指引操作即可
?
點(diǎn)擊API說明,進(jìn)去,就是具體的接口了;使用postman+下面我發(fā)的前端頁面,配合測試。
<!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>?------------第二步 結(jié)束----------------------------------------------------------------------------------------------------
我的思路是:單獨(dú)部署這個(gè)人臉?biāo)惴ǚ?wù)(單獨(dú)服務(wù)器部署,不要和重要應(yīng)用放在同一個(gè)服務(wù)器),然后應(yīng)用調(diào)取使用;?
歡迎批評指正...
總結(jié)
以上是生活随笔為你收集整理的(全)Docker安装+人脸比对算法服务(win10)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关2pc, 3pc,Tcc 的理解
- 下一篇: 鸿蒙IPC摄像机,【HiSpark IP