Objektu atpazīšana no tīmekļa kameras: praktisks ceļvedis un reālistiskas iespējas

Pēdējā atjaunošana: 16/10/2025
Autors: Isaac
  • Darbojas pārlūkprogrammā ar React un TensorFlow.js, izmantojot COCO-SSD tiešraides noteikšanai bez aizmugursistēmas.
  • YOLOv3/YOLOv8 tīmekļa kamerai un video, ar vairāku objektu izsekošanu, izmantojot ByteTrack vai BoTSort.
  • Galvenie dati un metrika: PASCAL GOC, MS COCO, mAP un IoU, kā arī apmācības plūsma katrā pārsūtījumā.
  • Izvietošana kā statiska vietne vai perifērijā (ESP32Cam/Jetson) un bezkoda iespējas, lai paātrinātu ražošanu.

Objektu noteikšana ar tīmekļa kameru pārlūkprogrammā

Pateicoties datorredzes un dziļās mācīšanās attīstībai, objektu noteikšana reāllaikā, izmantojot tīmekļa kameru, no laboratorijas eksperimenta ir attīstījusies par ikdienas iespēju. Mūsdienās ir iespējams izveidot funkcionējošu prototipu, kas analizēt tiešraides video nepaļaujoties uz serveri un pat izvietojot to kā statisku vietni. Sākot ar pārlūkprogrammām ar TensorFlow.js un beidzot ar perifērijas ierīcēm, piemēram, ESP32Cam vai Jetson platformām, iespēju klāsts ir plašs.

Darbs ar tīmekļa kameru nodrošina tūlītēju darbību un samazina berzi: jūs varat testēt savu aprīkojumu, iegūt datus un veikt demonstrācijas bez nepieciešamības detaļas papildus, piemēram izmantojiet savu mobilo tālruni kā tīmekļa kameruAr TensorFlow.js ir iespējams palaist detektoru pārlūkprogrammā, un ar tādiem dzinējiem kā YOLO Pitons jūs varat saspiest GPU, lai apstrādāt video lielā ātrumāŠī daudzpusība piešķir vērtību prototipiem, POC un vieglajiem risinājumiem.

Ko mēs domājam ar objektu noteikšanu un kāpēc to darīt no tīmekļa kameras?

objektu atpazīšana

Objektu noteikšana identificē un atrod elementus katrā attēla vai video kadrā, pievienojot ierobežojošos lodziņus un klases etiķetes ar ticamības līmeni. Atšķirībā no klasifikācijas, kas apzīmē visu attēlu, šeit mums ir jāatrod pozīcija. Tādi modeļi kā YOLO, SSD vai Ātrāks/Maskas R-CNN ir veicinājuši šo uzdevumu līdz el tiempo reāli tik dažādos kontekstos kā drošība, mazumtirdzniecība vai autonomā braukšana.

Darbs ar tīmekļa kameru nodrošina tūlītēju darbību un samazina berzi: varat testēt datorā, uztvert datus un demonstrēt bez papildu aparatūras. Izmantojot TensorFlow.js, varat palaist detektoru pārlūkprogrammā, un ar tādiem dzinējiem kā YOLO Python valodā varat saspiest GPU, lai apstrādāt video lielā ātrumāŠī daudzpusība piešķir vērtību prototipiem, POC un vieglajiem risinājumiem.

Pārlūkprogrammas noteikšana ar React un TensorFlow.js (COCO-SSD)

Vienkāršs veids, kā sākt, ir izveidot SPA ar React, kas ņem tīmekļa kameras straumi, pārlūkprogrammā palaiž iepriekš apmācītu modeli un attēlo rezultātus. COCO-SSD modelis atpazīst desmitiem izplatītu klašu un ir salīdzinoši viegls, padarot to ideāli piemērotu elastīgai demonstrācijai ar tiešraides noteikšana.

Sākotnējā projekta iestatīšana ar Dzīvo un atkarības. Izveidojiet React skeletu un pievienojiet TensorFlow.js kopā ar COCO-SSD modeļa pakotni:

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

Lietojumprogrammā definējiet komponentu, kas pārvalda kameras atļaujas, zābaks un apturēt straumi, un pārkrāsot video, un, ja nepieciešams saglabāt ekrānuzņēmumus, ir pieejami programmas fotoattēlu uzņemšanai no datoraStāvokli ir ērti pārvaldīt, izmantojot React, un saglabāt atsauci uz elementu. lai piešķirtu plūsmu MediaDevices.getUserMedia.

Pamata saskarne un plūsma. Galvenajā komponentā varat izveidot galveni un ObjectDetection komponentu. Šajā komponentā būs iekļauts: tīmekļa kameras palaišanas/apturēšanas poga; video elements; un konteiners, kurā pēc tam zīmēsiet kadrus un etiķetes. Palaišanas laikā tas lūgs atļauju un piešķirs straumei “videoRef.current.srcObject”; apturēšanas laikā tas izies cauri katram straumes celiņam, lai apturēt ierakstus un atbrīvot resursus.

Noteikšanas loģika. Importējiet modeli un TensorFlow.js un sagatavojiet stāvokli prognožu glabāšanai. Ielādējiet COCO-SSD ar 'cocoSsd.load()' un izsauciet 'model.detect(videoRef.current)Rezultāts ir masīvs ar klasi, rezultātu un bbox koordinātām. Šie dati tiek izmantoti, lai katram tiešajā attēlā identificētajam objektam uzklātu taisnstūri un etiķeti.

Secināšanas frekvence. Lai periodiski aktivizētu noteikšanu, varat izmantot funkciju “setInterval”, kad tīmekļa kamera ir aktivizēta, un funkciju “clearInterval”, kad tā apstājas. Tipisks intervāls ir 500 ms, lai gan to var mainīt. Augstāka frekvence nozīmē labāku plūstamību, bet lielāku pārlūkprogrammas izmantošanu; ar pieticīgu aparatūru frekvences samazināšana novērš atmiņas un centrālā procesora pieauguma tempi.

  Ligzdotas virtualizācijas iespējošana pakalpojumā VirtualBox: pilnīgs ceļvedis

Stili. Pievienot kārtulas. CSS lai novietotu etiķetes un marķierus absolūtajos slāņos virs video. Etiķete ar daļēji caurspīdīgu fonu un pārtrauktu apmali atvieglo reāllaika noteikšanu. Atcerieties saglabāt vieglu stilu, lai neciestu renderēšanas veiktspēja.

Statiska izvietošana. Kad jūsu lietotne ir gatava, varat izveidot un publicēt savu vietni kā statisku. Kinsta ļauj bez maksas mitināt līdz pat 100 statiskām vietnēm no GitHub, GitLab vai Bitbucket. Informācijas panelī autorizējiet Git pakalpojumu sniedzēju, atlasiet repozitoriju un atzaru, piešķiriet nosaukumu un konfigurējiet veidošanu ('npm run build' vai 'yarn build', mezgls '20.2.0', publicēšanas direktorijs 'dist'). Pēc vietnes izveides 'Visit Site' jūs aizvedīs uz URL. Izmantojot statisko pieeju, jūsu statiskās vietnes detektors COCO-SSD un TensorFlow.js darbojas lietotāja pārlūkprogrammā bez aizmugursistēmas.

Ja vēlaties lielāku kontroli, Kinsta lietojumprogrammu mitināšana pievieno mērogošanu, pielāgotas Dockerfile izvietošanas iespējas, kā arī reāllaika un vēsturisko analīzi. Un, ja strādājat ar WordPress, viņu pārvaldītā mitināšana ietver neierobežotas migrācijas, atbalstu visu diennakti, integrētu Cloudflare un mākoņa infrastruktūru. google Mākoņa un globālais pārklājums desmitiem datu centru; tā ir stabila ekosistēma projektiem, kas savstarpēji mijiedarbosies. tīmekļa un datorredze.

Modeļi un saimes: no R-CNN līdz YOLOv8, izmantojot SSD

Detekcijas evolūcija ir notikusi no divpakāpju cauruļvadiem uz vienas caurlaides risinājumiem. R-CNN un tā varianti (ātrais, ātrākais un maskētais R-CNN) balstās uz reģionu priekšlikumiem, lai noteiktu un pēc tam klasificētu, un maskētais R-CNN attiecas arī uz pikseļu segmentāciju. Tikmēr SSD un YOLO tieši paredz kadrus un klases vienā secinājumā, padarot tos ideāli piemērotus reālā laikā.

YOLO nodrošina holistisku skatījumu uz visu attēlu katrā novērtējumā, tverot kontekstu un samazinot kļūdaini pozitīvus rezultātus sarežģītās ainās. Tādas versijas kā YOLOv3 un YOLOv4 iezīmēja veiktspējas lēcienu; vēlāk YOLOv5 un YOLOv8 vēl vairāk uzlaboja ātrumu un precizitāti. Tās filozofija “Tu skaties tikai vienreiz” atbilst tīmekļa kamerām un straumēšanas pieprasot zems latentums un augstu kadru ātrumu.

Vairāku objektu izsekošanai detektori tiek apvienoti ar izsekotājiem. Izmantojot YOLOv8, ir ierasts integrēt ByteTrack, kas pazīstams ar savu precizitātes un robustuma līdzsvaru, vai alternatīvas, piemēram, BoTSort. Python valodā paralēlu pavedienu palaišana ļauj vienlaikus veikt vairākas plūsmas, katram pavedienam pārvaldot savu noteikšanas un izsekošanas instanci novērošanas kamerām vai vairāku avotu analīze paralēli.

Ja strādājat ar VS Code, pieredze ir vienkārša: ielādējiet modeli (piemēram, vidēja izmēra YOLOv8), iestatiet aizmugursistēmu (CPU/GPU) un palaidiet secinājumus iepriekš ierakstītam video vai tieši no tīmekļa kameras. Pārslēdzoties no avota uz tiešraides uzņemšanu, varat pārbaudīt uzvedību pret aizsegumiem, apgaismojuma izmaiņām un kameras kustību, kas ir būtiski reālās pasaules veiktspējai. dinamiskos scenārijus.

Dati, anotācijas un metrika: veiktspējas pamats

Bez labiem datiem nav iespējams veikt uzticamu detekciju. PASCAL VOC, MS COCO un ImageNet kopas ir bijušas būtiskas detektoru apmācībai un novērtēšanai. Katrs attēls ir anotēts ar klasēm un lodziņiem; daudzveidība (fons, izmēri, apgaismojuma apstākļi) ir ļoti svarīga, lai modelis varētu vispārināt. Ja mums nav pietiekamu datu, visefektīvākais veids ir pārneses mācīšanās uz iepriekš apmācītiem modeļiem. izmaksu ziņā efektīvs.

Apmācībā un novērtēšanā visizplatītākie rādītāji ir mAP (vidējā precizitāte) un IoU (krustošanās pār apvienošanu). mAP mēra vidējo precizitāti pie dažādiem IoU sliekšņiem; atsauces etalonos daži modeļi pārsniedz 60–70% mAP COCO. Turklāt ražošanas vidē ir svarīgi izmērīt latentumu, caurlaidspēju un stabilitāti, īpaši, ja mērķis ir straumēšana. reālā laikā.

Semantiskā un instanču segmentācija iet soli tālāk, marķējot pikseļus. Uzdevumos, kuros precīza forma ir svarīga (piemēram, medicīnā vai rūpniecībā), Mask R-CNN var precīzi nodalīt kontūras. Tas ne vienmēr ir nepieciešams tīmekļa kamerām, taču tas sniedz pievienoto vērtību, ja svarīgs ir objekta laukums, nevis tikai tā klātbūtne. lēmumu pieņemšana.

  Kas ir Bonjour programma un kam tā paredzēta? Viss, kas jums jāzina

Tipiskais cauruļvads sākas ar priekšapstrādi (izmēru maiņu, normalizēšanu, palielināšanu), iet cauri konvolucionālajam tīklam, lai iegūtu funkcijas, un visbeidzot paredz lodziņus un klases. Tiešsaistes lietojumprogrammās šīs ķēdes optimizēšana un lieku aprēķinu samazināšana ir ļoti svarīga, lai nodrošinātu vienmērīgu pieredzi ierīcēs ar pieticīgi resursi.

YOLOv3 darbībā: tīmekļa kamera, video un personalizēta apmācība

Ja dodat priekšroku Python un PyTorch, YOLOv3 joprojām ir laba izvēle tīmekļa kamerām un video. Ir pieejamas krātuves, kas ļauj veikt noteikšanu tiešraidēs un failos, ar instrukcijām atkarību instalēšanai, iepriekš apmācītu svaru lejupielādēšanai un reproducējamas vides iestatīšanai. Izmantojot GPU, varat izmantot YOLOv3, lai veiktu noteikšanu tiešraidēs un failos. NVIDIA, ātruma pieaugums secinājumu rezultātā ļoti ievērojams.

Vide un atkarības. Varat izveidot īpašu Anaconda vidi (piemēram, “objdetect” ar Python 3.6) un instalēt projekta “requirements.txt” failā norādītās pakotnes. Tas novērš versiju konfliktus un nodrošina, ka PyTorch un pārējās bibliotēkas ir saderīgas ar jūsu projektu. aparatūra un sistēma.

Iepriekš apmācīti svari. Lejupielādējiet oficiālos svarus, lai ietaupītu apmācības izmaksas no nulles. Ievietojiet tos atbilstošajā direktorijā (piemēram, 'svars/'), lai scenārijs noteikt un ielādēt kontrolpunktu. Tādā veidā jūs varat nekavējoties palaist tīmekļa kameras noteikšanu, neizmantojot pirmsapmācības fāze.

Izpilde, izmantojot tīmekļa kameru vai video. Repozitorijs parasti ietver komandas vai karodziņus, lai izvēlētos avotu: tiešraides tīmekļa kamera vai video fails. Mainot parametru vai kameras indeksu, tiks sākta vēlamā avota noteikšana. Izmantojot GPU, jūs redzēsiet, kā palielinās FPS skaits un samazinās latentums, saglabājot kadrus un etiķetes. stabila forma.

Apmāciet savas klases. Ja vēlaties noteikt savas kategorijas, apzīmējiet attēlus VOC formātā un ģenerējiet tīkla konfigurāciju ('.cfg' failu) pārneses apguvei. Tipiskā datu struktūra ir 'data/custom/images' attēliem un 'data/custom/labels' anotācijām, ar vienu '.txt' katram '.jpg' failam. Definējiet 'data/custom/classes.names' ar vienu nosaukumu katrā rindā un uzskaitiet ceļus failos 'train.txt' un 'valid.txt'. Pēc tam apmācības skripts pielāgos modeļa svarus jūsu vajadzībām. konkrēts domēns.

Objektu noteikšana ar YOLOv8 un vairāku objektu izsekošanu

Ultralytics YOLOv8 versija atvieglo modernu darbplūsmu ar integrētu noteikšanu un izsekošanu. Vidēja lieluma modeļa iestatīšana parasti nodrošina labu līdzsvaru; ja jums ir spējīga aparatūra, pat lielāki modeļi var darboties reāllaikā. Tipiskā pamācībā ir parādīts, kā palaist secinājumus, vizualizēt rezultātus un pārslēgties no video uz tīmekļa kameru bez komplikācijām.

Bieži sastopamie izsekotāji. ByteTrack ir spēcīgs kandidāts tā precizitātes un uzticamību, lai gan BoTSort ir vēl viena atzīta alternatīva. Unikālais objekta identifikators palīdz izsekot, neskatoties uz aizsegumiem vai trajektorijas izmaiņām; tiešraides demonstrācijās ir viegli pārbaudīt sistēmas robustumu, kad objekts šķērso ceļus. citi elementi vai ieiet kadrā un iziet no tā.

Vairāku plūsmu straume. Ja uzdevumam nepieciešama vairāku kameru uzraudzība, Python pavedienu pieeja ļauj palaist vienu instanci katrā straumē. Katrs pavediens palaiž savu detektoru un izsekotāju, maksimāli palielinot kodola izmantošanu un saglabājot cauruļvada neatkarību. Šis ir praktisks modelis vadības centriem, mazumtirdzniecībai vai... pilsētu analītika.

Edge AI: ESP32Cam, Jetson un bezkoda platformas

Ne viss ir pārlūkprogramma vai serveris. Otra galējība ir iegultās ierīces, kurās apstrāde tiek veikta tajā pašā datorā, kas uztver datus. ESP32Cam piemēru ir daudz, lai gan daudzos rakstos aprēķini faktiski deleģēti datoram un modulis tiek izmantots kā vienkārša kamera. Ja nepieciešama skatīšanās datorā, ir pieejami rīki, lai to izdarītu. Skatiet IP kameras no sava datoraIr autonomi projekti (piemēram, lasīšana QR kodi ierīcē), un kopiena aktīvi meklē veidus, kā atšifrēt svītrkodus, nepaļaujoties arī uz aizmugursistēmu.

  Kā soli pa solim instalēt Gentoo, nebaidoties no nepatikšanām

Ja nepieciešams lielāks jaudas līmenis perifērijā, NVIDIA Jetson ekosistēma (Nano Orin, NX Orin, AGX Orin) ļauj pārvērst praktiski jebkuru kameru par kameru ar IAIr risinājumi, kas integrē lauka apstākļiem gatavus noteikšanas un izsekošanas modeļus, tostarp komerciālus rīkus, kas sola pārveidot jebkura plūsma praktiski izmantojamā analītikā. Tiem, kas nevēlas rakstīt kodu, tādas redzes platformas kā “visionplatform.ai” atbalsta modeļu ielādi un noteikšanas/izsekošanas palaišanu, nepieskaroties nevienai līnijai, tādējādi samazinot integrācijas laiku.

Šis iespēju klāsts aptver visu, sākot no demonstrācijām pārlūkprogrammā līdz rūpnieciskai ieviešanai. Izvēle starp pārlūkprogrammu, Python ar GPU vai Edge ir atkarīga no budžeta, mērķa latentuma, pieejamā savienojamības un nepieciešamības. datu privātums ierīcē.

Lietošanas gadījumi un starpnozaru pielietojumi

Objektu noteikšana tiek izmantota novērošanas un piekļuves kontroles sistēmās, videonovērošanas programmatūra (cilvēku noteikšana, sejas atpazīšana), mazumtirdzniecība (uzvedības un inventāra analīze), autobūve (gājēju un transportlīdzekļu noteikšana), veselības aprūpe (anomālijas medicīniskajos attēlos) vai lauksaimniecība (kultūraugu un kaitēkļu monitorings). Galvenais ir apvienot klasifikāciju un ierobežojošo lodziņu, lai izprastu kontekstu un pieņemtu lēmumus. mainīga vide.

Viedajās pilsētās reāllaika noteikšana atvieglo skaitīšanu, ceļa izsekošanu un brīdinājumus. Rūpnīcās tā palīdz ar kvalitātes kontroli un darba vietas drošību. Savukārt patēriņa precēs tā ir integrēta paplašinātās realitātes (AR) pieredzēs un utilītprogrammās, piemēram, koda skeneros. Pareizā modeļa izvēle (piemēram, YOLO zemai latentuma pakāpei) un datu plūsmas precīza noregulēšana nosaka panākumus plašā mērogā. produktīvs.

Ražošanas uzsākšana un papildu apsvērumi

Ja publicējat tīmekļa demonstrāciju, papildus mitināšanai (piemēram, bezmaksas statiskas vietnes Kinsta no jūsu Git repozitorija), ņemiet vērā kameras atļaujas un saistīto lietotāja pieredzi. Bieži var redzēt arī sīkfailu banerus, kas informē par sīkfailu izmantošanu. glabāšana lokāli un analītiski; šie paziņojumi palīdz ievērot noteikumus un paskaidro, kādi dati tiek apstrādāti lietotāja pārlūkprogramma.

Python izvietojumos dokumentējiet CUDA versiju vadītājiem un PyTorch/TensorFlow versiju, kā arī skatiet rokasgrāmatas par perifērās atpazīšanas problēmasSkaidra faila “requirements.txt” un startēšanas skriptu uzturēšana ietaupa stundām ilgu vides replicēšanu. Ja veicat apmācību, automatizējiet failu “train.txt” un “valid.txt” izveidi un nodrošiniet atbilstību starp failiem “classes.names” un anotāciju etiķetēm, lai izvairītos no… smalkas kļūdas.

Viss iepriekš minētais saplūst ainavā, kurā varat sākt ar React lietotni, kurā pārlūkprogrammā darbojas COCO-SSD, pāriet uz YOLOv3 vai YOLOv8 ar tīmekļa kameru un GPU izsekošanu vai pāriet uz perifēriju, izmantojot ESP32Cam/Jetson un bezkoda risinājumus. Izvēle ir atkarīga no jūsu prasībām attiecībā uz precizitāti, latentumu, izmaksām un darbības vienkāršību, taču ceļš no idejas līdz prototipam un no prototipa līdz dzīvotspējīgs produkts tas nekad nebija bijis tik īss.

Tīmekļa kameras noteikšanas būtība ir tāda, ka jūs varat apvienot ātru izvietošanu ar reālu jaudu: SPA ar TensorFlow.js validācijai, YOLO veiktspējas samazināšanai, labi anotētas datu kopas pielāgotai apmācībai un izvietošanu, kas atkarībā no jūsu gadījuma var būt tikpat vienkārša kā statiska vietne vai tikpat stabila kā lietojumprogramma ar vairāku celiņu izsekošanu GPU vai iegultā ierīcē; ar šiem pamatelementiem praktisku risinājumu iestatīšana ir dažu stundu, nevis nedēļu jautājums, vienlaikus saglabājot kontroli pār reāllaika pieredze.

Windows 7 tīmekļa kameru programmas
Saistītais raksts:
8 labākās tīmekļa kameru programmas operētājsistēmai Windows 7