Njohja e objekteve nga një webcam: një udhëzues praktik dhe opsione realiste

Përditësimi i fundit: 16/10/2025
Author: Isaac
  • Duke ekzekutuar në shfletues me React dhe TensorFlow.js duke përdorur COCO-SSD për zbulim të drejtpërdrejtë pa një backend.
  • YOLOv3/YOLOv8 për kamera në internet dhe video, me gjurmim të shumë objekteve duke përdorur ByteTrack ose BoTSort.
  • Të dhëna dhe metrika kryesore: PASCAL VOC, MS COCO, mAP dhe IoU, dhe rrjedha e trajnimit për transferim.
  • Vendosja si një vendndodhje statike ose në skaj (ESP32Cam/Jetson) dhe opsione pa kod për të përshpejtuar prodhimin.

zbulimi i objekteve me kamerën e internetit në shfletues

Zbulimi i objekteve në kohë reale nga kamerat e internetit është shndërruar nga një eksperiment laboratorik në një aftësi të përditshme falë pjekurisë së vizionit kompjuterik dhe të mësuarit të thellë. Sot, është e mundur të ndërtohet një prototip funksional që analizon videon live pa u mbështetur në një server, dhe madje ta vendoset atë si një faqe interneti statike. Nga shfletuesit që përdorin TensorFlow.js te pajisjet edge si platformat ESP32Cam ose Jetson, gama e opsioneve është e gjerë.

Puna me një kamerë interneti ofron menjëhershmëri dhe zvogëlon vështirësitë: mund të testoni në kompjuterin tuaj, të kapni të dhëna dhe të jepni demonstrime pa pajisje shtesë - për shembull, duke përdorur telefonin tuaj celular si kamerë interneti . Me TensorFlow.js, mund të ekzekutoni një detektor në shfletues, dhe me motorë si YOLO në Python, mund të shfrytëzoni GPU-në për të përpunuar video me shpejtësi të lartë . Kjo shkathtësi është një plus për prototipet, provat e konceptit dhe vendosjet e lehta.

Çfarë nënkuptojmë me zbulimin e objekteve dhe pse e bëjmë këtë nga kamera e internetit?

njohja e objektit

Zbulimi i objekteve identifikon dhe lokalizon elementët brenda çdo kuadri të një imazhi ose videoje, duke shtuar kuti kufizuese dhe etiketa klasash me një nivel të caktuar besimi. Ndryshe nga klasifikimi, i cili etiketon të gjithë imazhin, këtu duhet të përcaktojmë me saktësi pozicionin e objektit. Modele të tilla si YOLO, SSD dhe Faster/Mask R-CNN e kanë çuar këtë detyrë në funksionim në kohë reale në kontekste të ndryshme, siç janë siguria, shitjet me pakicë dhe drejtimi autonom.

Puna me një webcam ofron menjëhershmëri dhe zvogëlon vështirësitë: mund të testoni në kompjuterin tuaj, të kapni të dhëna dhe të jepni demonstrime pa pajisje shtesë. Me TensorFlow.js, mund të ekzekutoni një detektor në shfletues, dhe me motorë si YOLO në Python, mund të shfrytëzoni GPU-në për të përpunuar video me shpejtësi të lartë . Kjo shkathtësi është një plus për prototipet, provat e konceptit dhe vendosjet e lehta.

Zbulimi i shfletuesit me React dhe TensorFlow.js (COCO-SSD)

Një mënyrë e thjeshtë për të filluar është të krijoni një React SPA që kap transmetimin e kamerës së internetit, ekzekuton një model të para-trajnuar në shfletues dhe shfaq rezultatet. Modeli COCO-SSD njeh dhjetëra klasa të zakonshme dhe është relativisht i lehtë, duke e bërë atë perfekt për një demo të shpejtë me zbulim të drejtpërdrejtë.

Konfigurimi fillestar i projektit me Vite dhe varësitë. Krijoni skeletin React dhe shtoni TensorFlow.js së bashku me paketën e modelit COCO-SSD:

npm create vite@latest kinsta-object-detection --template react
cd kinsta-object-detection
npm i @tensorflow-models/coco-ssd @tensorflow/tfjs

Në aplikacion, përcaktoni një komponent që menaxhon lejet e kamerës, nis dhe ndalon transmetimin dhe renderon videon. Nëse keni nevojë të ruani pamje të ekranit, ka programe të disponueshme për të bërë foto nga kompjuteri juaj . Këshillohet që të menaxhoni gjendjen me React dhe të ruani një referencë për elementin `<video>` për t'i caktuar atij transmetimin `MediaDevices.getUserMedia`.

Ndërfaqja dhe rrjedha bazë. Në komponentin kryesor, mund të krijoni një kokë dhe një komponent ObjectDetection. Ky komponent do të përfshijë: një buton fillimi/ndalimi të kamerës web; elementin video; dhe një kontejner ku më vonë do të vizatoni korniza dhe etiketa. Gjatë nisjes, do të kërkojë leje dhe do t'ia caktojë transmetimin 'videoRef.current.srcObject'; pas ndalimit, ai përsërit çdo gjurmë të transmetimit për të ndaluar gjurmët dhe për të liruar burimet.

Logjika e zbulimit. Importoni modelin dhe TensorFlow.js dhe përgatitni një gjendje për të ruajtur parashikimet. Ngarkoni COCO-SSD me 'cocoSsd.load()' dhe thirrni ' model.detect(videoRef.current) '. Rezultati është një varg me klasën, rezultatin dhe koordinatat e kutisë. Këto të dhëna përdoren për të mbivendosur një drejtkëndësh dhe një etiketë për secilin objekt të identifikuar në imazhin live.

Frekuenca e nxjerrjes së përfundimit. Për të aktivizuar zbulimin periodikisht, mund të përdorni 'setInterval' kur kamera e internetit aktivizohet dhe 'clearInterval' kur ndalet. Një interval tipik është 500 ms, megjithëse mund ta ndryshoni këtë. Një frekuencë më e lartë do të thotë performancë më e qetë, por përdorim më i lartë i shfletuesit; në kompjuterë më pak të fuqishëm, ulja e frekuencës parandalon rritjet e memories dhe të CPU-së.

  Udhëzues i plotë për të kontrolluar gjendjen e SSD-së në Windows 11 me WMIC dhe smartctl

Stilet. Shtoni rregulla CSS për të pozicionuar etiketat dhe shënuesit në shtresat absolute mbi video. Një etiketë me një sfond gjysmëtransparent dhe një kuti me një kufi të ndërprerë e bëjnë zbulimin në kohë reale më të lehtë për t'u lexuar. Mos harroni ta mbani stilin të lehtë për të shmangur ndikimin në performancën e renderimit.

Vendosje statike. Pasi aplikacioni të jetë gati, mund ta kompiloni dhe publikoni faqen si një faqe statike. Kinsta ju lejon të strehoni deri në 100 faqe statike falas nga GitHub, GitLab ose Bitbucket. Në panelin e kontrollit, autorizoni ofruesin e Git, zgjidhni depozitën dhe degën, caktoni një emër dhe konfiguroni ndërtimin ('npm run build' ose 'yarn build', Nyja '20.2.0', drejtoria e publikimit 'dist'). Pas krijimit të faqes, 'Vizitoni faqen' do t'ju çojë te URL-ja. Me qasjen statike, detektori juaj me COCO-SSD dhe TensorFlow.js funksionon në shfletuesin e përdoruesit, pa një backend.

Nëse preferoni më shumë kontroll, Hosting i Aplikacioneve i Kinsta-s shton shkallëzueshmëri, vendosje të personalizuara me Dockerfiles dhe analiza me të dhëna historike dhe në kohë reale. Dhe nëse punoni me WordPress, hosting-u i tyre i menaxhuar përfshin migrime të pakufizuara, mbështetje 24/7, Cloudflare të integruar, infrastrukturë Google Cloud dhe mbulim global në dhjetëra qendra të dhënash; është një ekosistem i qëndrueshëm për projekte që përziejnë vizionin e uebit dhe atë kompjuterik.

Modele dhe familje: nga R-CNN në YOLOv8 nëpërmjet SSD-së

Evolucioni i zbulimit ka përparuar nga tubacionet me dy hapa në zgjidhjet me një kalim të vetëm. R-CNN dhe variantet e tij (Fast, Faster dhe Mask R-CNN) mbështeten në qasje të bazuara në rajone për zbulimin dhe klasifikimin pasues, me Mask R-CNN që shtrihet në segmentimin në nivel pikseli. Ndërkohë, SSD dhe YOLO parashikojnë drejtpërdrejt kornizat dhe klasat në një përfundim të vetëm, duke i bërë ato ideale për aplikime në kohë reale.

YOLO ofron një pamje holistike të të gjithë pamjes në çdo vlerësim, duke kapur kontekstin dhe duke zvogëluar pozitivet e rreme në skena komplekse. Versione si YOLOv3 dhe YOLOv4 shënuan një hap të rëndësishëm në performancë; më vonë, YOLOv5 dhe YOLOv8 përmirësuan më tej shpejtësinë dhe saktësinë. Filozofia e tij "Shikon Vetëm Një herë" është e përshtatshme për aplikacionet e kamerave në internet dhe transmetimit , duke kërkuar vonesë të ulët dhe shpejtësi të lartë kuadrosh.

Për gjurmimin e shumë objekteve, detektorët kombinohen me gjurmues. Me YOLOv8, është e zakonshme të integrohet ByteTrack, i njohur për ekuilibrin e tij midis saktësisë dhe qëndrueshmërisë, ose alternativa si BoTSort. Në Python, nisja e fijeve paralele lejon trajtimin e rrjedhave të shumëfishta të njëkohshme, ku secila fije menaxhon instancën e vet të zbulimit dhe gjurmimit për kamerat e mbikëqyrjes ose analizën me shumë burime paralelisht.

Nëse punoni në VS Code, përvoja është e thjeshtë: ngarkoni modelin (për shembull, një YOLOv8 me madhësi mesatare), rregulloni backend-in (CPU/GPU) dhe ekzekutoni përfundime në video të pararegjistruar ose direkt nga kamera e internetit. Kalimi në kapjen e drejtpërdrejtë ju lejon të kontrolloni sjelljen nën bllokim, ndryshimet e ndriçimit dhe lëvizjen e kamerës - faktorë kyç për performancën e botës reale në skenarë dinamikë.

Të dhënat, shënimet dhe metrikat: themeli i performancës

Pa të dhëna të mira, nuk ka zbulim të besueshëm. Setet e imazheve PASCAL VOC, MS COCO dhe ImageNet kanë qenë themelore për trajnimin dhe vlerësimin e detektorëve. Çdo imazh është i shënuar me klasa dhe kuti; diversiteti (sfonde, madhësi, kushte ndriçimi) është thelbësor që modeli të përgjithësohet. Kur nuk kemi të dhëna të mjaftueshme, transferimi i të mësuarit në modele të para-trajnuara është qasja më efektive nga ana e kostos.

Në trajnim dhe vlerësim, metrikat më të zakonshme janë mAP (saktësia mesatare) dhe IoU (kryqëzimi mbi kryqëzim). mAP mat saktësinë mesatare në pragje të ndryshme të IoU; në aplikacionet e referencës, disa modele tejkalojnë 60-70% mAP në COCO. Përveç kësaj, për prodhimin, është e rëndësishme të matni vonesën, rendimentin dhe stabilitetin, veçanërisht nëse qëllimi është transmetimi në kohë reale.

Segmentimi semantik dhe i instancave shkon një hap më tej duke etiketuar pikselët. Në detyra ku forma e saktë ka rëndësi (p.sh., mjekësore ose industriale), Mask R-CNN mund të përcaktojë me saktësi konturet. Kjo nuk është gjithmonë e nevojshme për kamerat e internetit, por shton vlerë kur zona e objektit, dhe jo vetëm prania e tij, është e rëndësishme për vendimmarrjen.

  Zbuloni se si të bëni një printer në internet në Windows 11/10

Linja tipike e përpunimit fillon me përpunimin paraprak (ridimensionimin, normalizimin, shkallëzimin), kalon nëpër rrjetin nervor konvolucional për të nxjerrë veçoritë dhe së fundmi parashikon kutitë dhe klasat. Në aplikacionet aktuale, optimizimi i këtij zinxhiri dhe zvogëlimi i llogaritjeve të tepërta bën gjithë ndryshimin në ruajtjen e një përvoje të qetë në makinat me burime modeste.

YOLOv3 në veprim: kamera në internet, video dhe trajnim i personalizuar

Nëse preferoni Python dhe PyTorch, YOLOv3 mbetet një opsion i mirë për kamerat e internetit dhe videon. Ekzistojnë depo që ju lejojnë të ekzekutoni zbulimin në transmetimet dhe skedarët e drejtpërdrejtë, me udhëzime për instalimin e varësive, shkarkimin e peshave të para-trajnuara dhe konfigurimin e një mjedisi të luajtshëm. Kur përdoret një GPU NVIDIA , rritjet e shpejtësisë në nxjerrjen e përfundimeve janë shumë të dukshme.

Mjedisi dhe varësitë. Mund të krijoni një mjedis specifik Anaconda (për shembull, 'deteccionobj' me Python 3.6) dhe të instaloni paketat e listuara në skedarin 'requirements.txt' të projektit. Kjo shmang konfliktet e versioneve dhe siguron që PyTorch dhe libraritë e tjera të jenë të pajtueshme me harduerin dhe sistemin tuaj.

Pesha të para-trajnuara. Shkarkoni peshat zyrtare për të kursyer koston e trajnimit nga e para. Vendosini ato në direktorinë përkatëse (p.sh., 'weights/') në mënyrë që skripti të mund të zbulojë dhe ngarkojë pikën e kontrollit. Kjo ju lejon të nisni menjëherë zbulimin e kamerës në internet pa ndonjë fazë trajnimi paraprak.

Ekzekutohet në kamerë web ose video. Depozita zakonisht përfshin komanda ose flamuj për të zgjedhur burimin: kamerë web live ose një skedar video. Ndryshimi i parametrit ose indeksit të kamerës do të fillojë zbulimin në burimin e dëshiruar. Me GPU, do të shihni një rritje në FPS dhe një ulje të latencës, duke ruajtur shpejtësi dhe etiketa të qëndrueshme të kuadrove.

Trajnoni klasat tuaja. Nëse doni të zbuloni kategori të personalizuara, etiketoni imazhet në formatin VOC dhe gjeneroni konfigurimin e rrjetit (një skedar '.cfg') për të mësuarit e transferimit. Struktura tipike e të dhënave është 'data/custom/images' për imazhet dhe 'data/custom/labels' për etiketat, me një skedar '.txt' për secilin skedar '.jpg'. Përcaktoni 'data/custom/classes.names' me një emër për rresht dhe listoni shtigjet në 'train.txt' dhe 'valid.txt'. Prej andej, skripti i trajnimit do të përshtasë peshat e modelit në domenin tuaj specifik.

Zbulimi i objekteve me YOLOv8 dhe gjurmimi i shumë objekteve

Versioni YOLOv8 i Ultralytics lehtëson një rrjedhë pune moderne me zbulim dhe gjurmim të integruar. Konfigurimi i një modeli me madhësi mesatare zakonisht ofron një ekuilibër të mirë; me pajisje të aftë, edhe modele më të mëdha mund të funksionojnë në kohë reale. Tutoriali tipik tregon se si të nisni nxjerrjen e përfundimeve, të vizualizoni rezultatet dhe të kaloni nga video në kamera në internet pa ndërlikime.

Gjurmues të zakonshëm. ByteTrack është një pretendent i fortë për saktësinë dhe besueshmërinë e tij , megjithëse BoTSort është një tjetër alternativë e mirënjohur. Identifikuesi unik për objekt ndihmon në gjurmimin pavarësisht bllokimeve ose ndryshimeve në trajektore; në demo të drejtpërdrejta, është e lehtë të verifikosh qëndrueshmërinë e sistemit kur subjekti kalon elementë të tjerë ose lëviz brenda dhe jashtë kuadrit.

Shumërrjedhje. Kur detyra kërkon monitorimin e kamerave të shumëfishta, qasja shumëfijeshe e Python ju lejon të nisni një instancë për rrjedhë. Çdo fije nis detektorin dhe gjurmuesin e vet, duke maksimizuar shfrytëzimin e bërthamës dhe duke ruajtur pavarësinë e tubacionit. Ky model është praktik për qendrat e kontrollit, mjediset e shitjes me pakicë ose analizat urbane.

Edge AI: ESP32Cam, Jetson dhe platforma pa kod

Jo gjithçka sillet rreth shfletuesve ose serverave. Në anën tjetër të spektrit janë pajisjet e integruara, ku përpunimi bëhet në të njëjtën pajisje që kap imazhin. Shembuj të shumtë me ESP32Cam, megjithëse shumë artikuj në fakt e delegojnë përpunimin në një PC dhe e përdorin modulin si një kamera të thjeshtë. Nëse shikimi në një kompjuter është i nevojshëm, ekzistojnë mjete për shikimin e kamerave IP nga një PC . Ekzistojnë projekte të pavarura (për shembull, leximi i kodit QR në pajisje ) dhe komuniteti po punon në mënyrë aktive në deshifrimin e barkodeve pa u mbështetur në një backend.

  Lidhja e pajisjeve USB me një makinë virtuale në VirtualBox

Nëse ju nevojitet më shumë fuqi kompjuterike në skaje, ekosistemi NVIDIA Jetson (Nano Orin, NX Orin, AGX Orin) ju lejon të shndërroni praktikisht çdo kamerë në një kamerë AI . Zgjidhjet integrojnë modele zbulimi dhe gjurmimi të gatshme për në terren, duke përfshirë mjete komerciale që premtojnë të transformojnë çdo rrjedhë pune në analiza të zbatueshme. Për ata që nuk duan të shkruajnë kod, platformat e vizionit si 'visionplatform.ai' mbështesin ngarkimin e modeleve dhe funksionimin e zbulimit/gjurmimit pa shkruar asnjë rresht të vetëm, duke zvogëluar kohën e integrimit.

Kjo gamë opsionesh mbulon gjithçka, nga demo-t e shfletuesve deri te shpërndarjet industriale. Zgjedhja midis shfletuesit, Python-it të bazuar në GPU ose informatikës në skaje varet nga buxheti, vonesa e synuar, lidhja e disponueshme dhe kërkesat e privatësisë së të dhënave në pajisje .

Rastet e përdorimit dhe zbatimet ndërsektoriale

Zbulimi i objekteve përdoret në mbikëqyrje dhe kontroll të aksesit, me softuerë mbikëqyrjeje me video (zbulimi i njerëzve, njohja e fytyrës), shitje me pakicë (analiza e sjelljes dhe stokut), automobila (zbulimi i këmbësorëve dhe automjeteve), kujdesi shëndetësor (anomali në imazhet mjekësore) dhe bujqësia (monitorimi i të korrave dhe dëmtuesve). Çelësi është kombinimi i kutive të klasifikimit dhe kufizuese për të kuptuar kontekstin dhe për të marrë vendime në mjedise në ndryshim.

Në qytetet inteligjente, zbulimi në kohë reale lehtëson numërimin, gjurmimin e shtigjeve dhe alarmet. Në fabrika, ndihmon në kontrollin e cilësisë dhe sigurinë në vendin e punës. Dhe në produktet e konsumit, integrohet në përvojat dhe shërbimet e realitetit të shtuar (AR) si skanerët e barkodeve. Zgjedhja e modelit të duhur (për shembull, YOLO për vonesë të ulët) dhe optimizimi i rrjedhës së të dhënave është çelësi i suksesit në shkallë të gjerë.

Hyrja në prodhim dhe konsiderata shtesë

Nëse do të publikoni një demo në internet, përveç strehimit (për shembull, faqe statike falas në Kinsta nga depoja juaj Git), mos harroni të merrni në konsideratë lejet e kameras dhe UX-në përkatëse. Është gjithashtu e zakonshme të shihni banderolat e cookie-ve që informojnë përdoruesit rreth përdorimit të ruajtjes lokale dhe analizave; këto njoftime ndihmojnë në përmbushjen e rregulloreve dhe shpjegojnë se cilat të dhëna trajtohen në shfletuesin e përdoruesit.

Në implementimet e Python, dokumentoni versionin CUDA, drajverët dhe versionin PyTorch/TensorFlow, dhe konsultohuni me udhëzuesit mbi çështjet e njohjes së pajisjeve periferike . Mbajtja e një skedari të qartë requirements.txt dhe skripteve të nisjes ju kursen orë të tëra gjatë replikimit të mjediseve. Nëse do të stërviteni, automatizoni krijimin e skedarëve train.txt dhe valid.txt dhe siguroni konsistencë midis emrave të klasave dhe etiketave të shënimeve tuaja për të shmangur gabimet delikate.

Të gjitha sa më sipër bashkohen në një peizazh ku mund të filloni me një aplikacion React që ekzekuton COCO-SSD në shfletues, të kaloni në YOLOv3 ose YOLOv8 me ndjekje të kamerës web dhe GPU-së, ose të shkoni në skaj me zgjidhje ESP32Cam/Jetson dhe pa kod. Zgjedhja varet nga kërkesat tuaja për saktësi, vonesë, kosto dhe lehtësi përdorimi, por rruga nga ideja në prototip dhe nga prototipi në produkt të zbatueshëm nuk ka qenë kurrë më e shkurtër.

Thelbi i zbulimit të kamerës në internet është se ju mund të kombinoni zbatimin e shpejtë me fuqi të vërtetë: një TensorFlow.js SPA për validim, YOLO për optimizimin e performancës, grupe të dhënash të mirë-anotuara për trajnim të personalizuar dhe një vendosje që, varësisht nga nevojat tuaja, mund të jetë aq e thjeshtë sa një faqe interneti statike ose aq e fuqishme sa një aplikacion me gjurmim GPU me shumë pista ose një pajisje të integruar; me këto blloqe ndërtimi, vendosja e zgjidhjeve praktike është çështje orësh në vend të javësh, duke ruajtur kontrollin në kohë reale të përvojës së përdoruesit.

Programet e kamerës së internetit Windows 7
Artikuj të ngjashëm:
8 programet më të mira të kamerave të uebit për Windows 7