paint-brush
Fitsapana ICP Face Recognition DApp: Hahagaga anao ny vokatra faranyny@induction
461 HENOINA
461 HENOINA

Fitsapana ICP Face Recognition DApp: Hahagaga anao ny vokatra farany

ny Vision NP9m2024/09/21
Read on Terminal Reader

Lava loatra; Mamaky

Ny Internet Computer Protocol (ICP) dia miasa amin'ny fanapariahana ny AI amin'ny alàlan'ny fampandehanana ny rindranasa amin'ny fotodrafitrasa rahona voatokana tanteraka. Ity karazana fomba fitsinjaram-pahefana ity dia miantoka fa ny fiasan'ny AI dia mangarahara, mahatohitra ny sivana, ary tsy dia mora amin'ny teboka tokana tsy mahomby. Hojerentsika ny fomba fiasan'ny fitsinjaram-pahefana AI amin'ny fomba tsy miangatra miaraka amin'ny fihetsiketsehana an-kolaka isaky ny dingana.
featured image - Fitsapana ICP Face Recognition DApp: Hahagaga anao ny vokatra farany
Vision NP HackerNoon profile picture
0-item
1-item

Ny taona vitsivitsy lasa izay dia niavaka ho an'ny maodely AI mifototra amin'ny mpizara foibe toa ny ChatGPT, Gemini's Google, Copilot an'ny Microsoft, sns. Saingy etsy ankilany, misy lafy ratsiny. Angamba, efa naheno momba ny fahatapahan'ny ChatGPT maro koa ianao.


Ny maodely mifototra amin'ny serivisy foibe dia tandindomin-doza lehibe amin'ny teboka iray tsy fahombiazana. Niova anefa ny fotoana. Manova sehatra maro ihany koa ny teknolojia Blockchain, anisan'izany ny faharanitan-tsaina artifisialy (AI).


Ny Internet Computer Protocol (ICP) izay novolavolain'i Dfinity, dia miasa amin'ny fanapariahana ny AI amin'ny alàlan'ny fampandehanana ny rindranasa AI amin'ny fotodrafitrasa rahona voatokana tanteraka. Ny tsy manam-paharoa dia ny ICP dia mamela ny maodely sy ny serivisy AI hapetraka amin'ny tambajotran'ny foibe data tsy miankina. Ity karazana fomba fitsinjaram-pahefana ity dia miantoka fa ny fiasan'ny AI dia mangarahara, mahatohitra sivana, ary tsy dia mora amin'ny teboka tokana tsy mahomby.


Ity lahatsoratra ity dia mifanohitra amin'ny fitsapana azo ampiharina Face Recognition DApp izay mifototra amin'ny ICP. Hojerentsika ny fomba fiasan'ny fitsinjaram-pahefana AI amin'ny fomba tsy miangatra miaraka amin'ny fihetsiketsehana an-kolaka isaky ny dingana. Nanandrana nanapaka hevitra ara-teknika sarotra ho fampianarana mora azo izahay ka andao hanomboka.


Natao tamin'ny milina miompana amin'ny Windows ny fizotran'ny tetik'asa manontolo sy ny fitiliana, noho izany dia mamorona subsystem Linux eto izahay satria fitaovana sy scripts amin'ny fampandrosoana ICP maro no namboarina ho an'ny tontolo mifototra amin'ny Linux.


📥Fepetra takiana:

  • Rafitra fandidiana : Windows misy Windows Subsystem for Linux (WSL) napetraka. Azafady, jereo ity torolàlana ity ho an'ny fametrahana.


  • fahalalana :

    • Fahatakarana fototra momba ny JavaScript , React.js , Rust , ary WebAssembly .

    • Fahalalana amin'ny foto-kevitra momba ny fampivoarana tranonkala.


  • Fitaovana :

    • DFX SDK (Rafitra fampandrosoana ICP) .
    • Node.js sy npm.
    • Rust: Apetraho ny rojo fitaovana Rust.
    • Git: Mila azy io ianao hametahana ny tahiry. Alefaso azafady ny torolalan'izy ireo hametrahana azy.
    • wasi2ic: Fitaovana hanovana ny maody Wasm miankina amin'ny WASI mba handeha amin'ny ICP.
    • wasm-opt: Ny WebAssembly optimizer.


📥Mametraka ny tontolo iainana fampandrosoana:

  1. Sokafy ny terminal WSL anao, ary araho ity baiko manaraka ity mba hametrahana DFX:
 sh -ci "$(curl -fsSL https://smartcontracts.org/install.sh)"


👉Ho fanamafisana ny fametrahana:

 dfx –version


  1. Mametraka Rust amin'ny alàlan'ny baiko manaraka:
 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env

👉Raha hanamarina ny fametrahana dia mandehana:

 rustc –version


3. Apetraho ny Node.js amin'ny alàlan'ny baiko manaraka:

 curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs


👉Raha hanamarina ny fametrahana dia mandehana:

 node -v npm -v


  1. Mametraka wasi2ic: Ampidiro voalohany ny tahiry GitHub azy ireo.
 git clone https://github.com/wasm-forge/wasi2ic.git cd wasi2ic cargo install --path .


👉Raha hijery ny fametrahana dia mandehana:

 echo $PATH wasi2ic –help


  1. Mametraka wasm-opt:
 cargo install wasm-opt


📥Clone ny tetikasa:

Mampiasa ny tahiry GitHub an'ny tetikasa izahay ho an'ny tanjona fitsapana. Azonao jerena eto ny fitehirizan-dry zareo.


1. Clone ny tahiry ary mandehana mankany amin'ny tetikasa famantarana tarehy:

 git clone https://github.com/dfinity/examples.git cd examples/rust/face-recognition

Fanamarihana: Azonao atao ny miditra amin'ny rakitra subsystem Linux anao amin'ny alàlan'ny fikarohana \\wsl$ ao amin'ny File Explorer na endri-pikarohana mivantana ao amin'ny Windows OS.


📥Misintona modely ho an'ny famantarana ny tarehy


  1. Ampidino ny maodely fitiliana tarehy:

Ny maodely fitiliana tarehy dia ampiasaina hamantarana endrika amin'ny sary. mihazakazaka:

 ./download-face-detection-model.sh


  1. Ampidino ny maodely famantarana ny tarehy:

Mila manondrana ny modely amin'ny endrika ONNX ianao amin'ny fampiasana PyTorch sy facenet-pytorch . Atombohy amin'ny fametrahana ireto tranomboky Python ireto:

 pip install torch facenet-pytorch onnx


Fanamarihana: Raha mbola tsy napetraka ao amin'ny subsystem-nao ny Python dia andramo ny fametrahana Python sy pip avy eto: https://packaging.python.org/en/latest/tutorials/installing-packages/ .


  1. Manondrana ny modely ONNX:

Ao amin'ny rakitra Python na akorandriaka, ataovy izao manaraka izao: Ampidiro ny python3 ao amin'ny terminal ary araho ity code manaraka ity. Aorian'ny famonoana dia soraty ny fivoahana ().

 import torch import facenet_pytorch resnet = facenet_pytorch.InceptionResnetV1(pretrained='vggface2').eval() input = torch.randn(1, 3, 160, 160) torch.onnx.export(resnet, input, "face-recognition.onnx", verbose=False, opset_version=11)


Izany dia hamorona ny fisie face-recognition.onnx . Adikao any amin'ny fototry ny fitahirizanao.


📥Manangana

Fotoana hananganana ny tetikasa izao. mihazakazaka:

 dfx start --background dfx deploy


Raha mandeha tsara ny zava-drehetra dia azonao jerena ny URL Frontend ao amin'ny terminal.

Sary 1. Hafatra fandefasana mahomby amin'ny terminal miaraka amin'ny URL Frontend

Fanamarihana: Raha sendra misy hadisoana ianao noho ny mpanjifa tsy hita, andramo ny mametraka webpack sy webpack-cli maneran-tany mampiasa npm:

sudo npm install -g webpack webpack-cli


Ary ny fiankinan-doha eo an-toerana:

npm install


📥Mamorona ny kanelina, mandehana:

 dfx canister create backend


Azonao jerena ao amin'ny terminal ity hafatra manaraka ity.

Sary 2. Hafatra naseho tao amin'ny terminal miaraka amin'ny famantarana ny famoronana canister mahomby

👉Ankehitriny, azonao atao ny manamarina ny satan'ny backend canister:

 dfx canister status backend


Afaka mahita zavatra toy izany ianao ao amin'ny terminal.

Figure 3. Toetran'ny canister

📥Mampiakatra ny modely

Satria ny modely AI dia lehibe amin'ny ankapobeny. Tsy azo ampidirina mivantana ao amin'ny WebAssembly (Wasm) binary amin'ny fifanarahana marani-tsaina. Mila ampidirina misaraka kosa ireo modely ireo. Mba hiatrehana izany, dia namolavola fitaovana iray hampidirana modely tsikelikely ny DecideAI. Hitanao eto ny fitaovana: ic-file-uploader .


👉Raha hametraka ilay fitaovana dia ampiasao ity baiko manaraka ity:

 cargo install ic-file-uploader


Rehefa tafapetraka dia azonao atao ny mampiasa ny script upload-models-to-canister.sh amin'ny alàlan'ny fampandehanana ./upload-models-to-canister.sh ao amin'ny terminal hampidirana ireo modely. Ity script ity dia manao ireto dingana manaraka ireto:


  1. Manala ny maodely AI efa misy amin'ny canister:
 dfx canister call backend clear_face_detection_model_bytes dfx canister call backend clear_face_recognition_model_bytes


  1. Mampiakatra tsikelikely ireo modely vaovao:
 ic-file-uploader backend append_face_detection_model_bytes version-RFB-320.onnx ic-file-uploader backend append_face_recognition_model_bytes face-recognition.onnx


  1. Farany, ny script dia mametraka ireo modely nampidirina:
 dfx canister call backend setup_models


Ankehitriny, afaka mifandray amin'ny Frontend ianao amin'ny alàlan'ny fampiasana ny URL azonao tao amin'ny terminal raha ny baiko dfx deploy (sary 1)


Sary 4. Fifandraisana eo amin'ny dApp miaraka amin'ny sarin'i Nikola Tesla nakarina. Misy boaty fifanakalozan-kevitra mipoitra mba hanampiana anarana rehefa avy manindry ny bokotra "Add person".


Raha vao mampakatra sary ianao amin'ny fipihana ny logo an'ny ICP, andramo ampio ny anaran'olona iray amin'ny fipihana ny bokotra “ Ampio olona ” hanofanana ilay modely.

Izy io dia mamantatra ny tarehy amin'ny marika mahitsizoro mandeha ho azy eo amin'ny tarehy. Vantany vao nametraka ny anarana ianao dia mampiseho hafatra fanampim-pahombiazana toy izao manaraka izao:

Sary 5. Hafatra naseho taorian'ny fampidirana ny anarana

Tsaroan'i AI ny anarana napetrakao ho an'ny tarehy mba hahafahanao mitsapa raha mahita ny endrik'ireo sary samihafa an'ny olona iray izy na tsia. Eto, sary samihafa an'i Nikola Tesla no nalaina. Raha te hampakatra Sary hafa ho an'ny fisavana tarehy, avereno avereno ilay pejy, ary tsindrio ny safidy " Fantaro ". Andao hojerena; nahitam-pahombiazana ny endrik'i Nikola Tesla tamin'ny fahasamihafana kely tamin'ny voalohany.

Sary 6. Ny AI dia nahita soa aman-tsara ny endrik'i Nikola Tesla tamin'ny sary hafa misy fahasamihafana 0,68

Eto, sarin'i Nikola Tesla novokarin'ny AI no natolotra ny maodely, ary mahagaga fa nahatsikaritra tsara ny tarehy izy, andao hojerentsika eto:

Sary 7. Ny endrik'i Nikola Tesla novokarin'ny AI dia hitan'ny dApp izay misy fahasamihafana 0.77 monja

Nohamarininy soa aman-tsara fa ny ICP Face Recognizing DApp dia miasa tsara satria nahita soa aman-tsara ny endrik'i Nikola Tesla. Afaka manandrana azy irery ianao.


Satria natao ho an'ny tanjona fitsapana izy io, voafetra ny UI sy ny endri-javatra. Azonao atao ny manampy endri-javatra sy serivisy fanampiny raha toa ianao ka mihazakazaka hanangana ny dApp vonona amin'ny famokarana amin'ny ICP ho an'ny tanjona ahafantarana ny tarehy. Azonao atao ny manandrana ireto endri-javatra manaraka ireto miaraka amin'ny ohatra code. Mariho fa tokony hanampy na ampanjifaina ny kaody araka ny fepetra takinao.


📥 Ireto misy torohevitra vitsivitsy ho anao:

  1. Ampio ny User Authentication miaraka amin'ny Internet Identity

Raha ampidirinao amin'ity dApp ity ity endri-javatra ity dia ireo mpampiasa voasoratra anarana ihany no afaka miditra amin'ny DApp. Ity ny fomba ahafahanao manampy authentication amin'ny alàlan'ny Internet Identity. Azonao atao ny mampiditra Internet Identity amin'ny fampidirana ny bokotra fidirana Internet Identity amin'ny pejy fandraisana. Raha vao miditra ny mpampiasa dia asehoy ny dashboard manokana.


Ahoana no hanampiana:

👉 Ampidiro ny fiankinan'ny Internet Identity:

 npm install @dfinity/agent @dfinity/auth-client


👉Ampio ity code manaraka ity amin'ny frontend anao mba ahafahana manamarina:

 import { AuthClient } from "@dfinity/auth-client"; async function init() { const authClient = await AuthClient.create(); if (await authClient.isAuthenticated()) { // Display dashboard or personalized content } else { authClient.login({ identityProvider: "https://identity.ic0.app/#authorize", onSuccess: () => { // Once authenticated, display personalized features }, }); } } init();


👉Aorian'ny fidirana dia afaka mahita ny tantaran'ny tarehy fantatra na angona manokana hafa ny mpampiasa.


  1. Mampiakatra sary miaraka amin'ny fiasa Drag sy drag-and-drop

Ataovy milamina kokoa ny fampiakarana sary sy ny traikefa amin'ny alàlan'ny famelana ny mpampiasa hisintona sy hanipy sary ho hitan'ny tarehy.


Ahoana no hanampiana :

👉Ampiasao ny fampiasa drag-and-drop an'ny HTML5:

 <div id="drop-area"> <p>Drag and drop an image here or click to select</p> <input type="file" id="file-input" hidden /> </div>


👉Ampio JavaScript hifehezana ny hetsika drag-and-drop:

 const dropArea = document.getElementById("drop-area"); dropArea.addEventListener("dragover", (event) => { event.preventDefault(); }); dropArea.addEventListener("drop", (event) => { event.preventDefault(); const files = event.dataTransfer.files; // Process the uploaded image });


👉Ataovy azo antoka fa mitambatra tsara amin'ny fampandehananao fitiliana tarehy efa misy.


  1. Bara Fandrosoana ho an'ny Famantarana tarehy

Ho endri-javatra mahasarika ny fanehoana bara-pandrosoana rehefa ampidirina ny sary iray mba hampahafantarana ny mpampiasa fa ny rafitra no manodina ilay sary.


Ahoana no hanampiana:

👉Mampiasà bara fandrosoana HTML tsotra:

 <div id="progress-bar"> <div id="progress-fill" style="width: 0%;"></div> </div>


👉Havaozy amin'ny fomba mavitrika ny bara fandrosoana rehefa voahodina ny sary:

 const progressFill = document.getElementById("progress-fill"); let progress = 0; const interval = setInterval(() => { progress += 10; progressFill.style.width = `${progress}%`; if (progress === 100) { clearInterval(interval); } }, 100); // Simulate progress every 100ms


  1. Fampandrenesana momba ny valin'ny famantarana ny tarehy

Azonao atao ny manampy endri-javatra iray hanomezana fampandrenesana amin'ny fotoana tena izy rehefa vita ny famantarana ny tarehy, na amin'ny alàlan'ny fampandrenesana modal na toast.


Ahoana no hanampiana :

👉Azonao atao ny mampiasa tranomboky maivana toy ny Toastr na fampandrenesana toast mahazatra.

 <div id="notification" class="hidden">Face Recognition Complete!</div>


👉Ao amin'ny JavaScript-nao, asehoy ny fampahafantarana rehefa mamerina ny valiny ny backend:

 function showNotification(message) { const notification = document.getElementById("notification"); notification.innerHTML = message; notification.classList.remove("hidden"); setTimeout(() => { notification.classList.add("hidden"); }, 3000); // Hide notification after 3 seconds } // Call this after face recognition is done showNotification("Face detected and recognized!");


📥Dingana farany: Avereno ary apetraka

Rehefa avy nampihatra ireto endri-javatra vaovao ireto:


👉Avereno indray ny tetikasa:

 dfx build


👉Alefa any amin'ny testnet: Andrana aloha vao maika ho any mainnet.

 dfx deploy --network ic


Ireto misy ohatra vitsivitsy sy hevitra ho an'ny tanjona fampisehoana. Azonao atao ny manandrana azy ireo irery ary ampahafantaro anay ny fivoaranao ao amin'ny fizarana fanehoan-kevitra. Ankoatra izany, afaka manao bebe kokoa ianao amin'ny fanaparitahana AI amin'ny ICP.

Fehiny:

Nahomby ny nanandrana ny Face Recognizing DApp tamin'ny ICP izay tena fikasana hanapariahana ny AI (DeAI). Araka ny fitiliana nataonay dia haingana ny valin'ny DApp, ary marina ny fahitana ny tarehy. Ny fotodrafitrasa tokana an'ny ICP dia afaka manampy antsika amin'ny fanatanterahana asa sarotra toy ny famantarana ny tarehy nefa tsy miantehitra amin'ny rafitra foibe.


Tsy vitan'ny manatsara ny fiarovana sy ny fiainana manokana izy io fa mampiseho ny mety hisian'ny rindranasa AI (DeAI) decentralized hivoatra haingana. Raha mbola mivoatra ny ICP, ny fahafahana mametraka modely lehibe sy manao inference AI amin'ny rojo dia afaka manokatra fahafahana vaovao ho an'ny fanavaozana. Azontsika antenaina fa ho mpilalao fototra amin'ny ho avin'ny vahaolana azo itokisana sy azo esorina ny AI decentralized. Manana fahafahana vaovao ihany koa ny mpamorona hamorona vokatra sy serivisy bebe kokoa amin'ny ICP.