- భాగాలు అవసరం
- రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
- అవసరమైన ఇతర ప్యాకేజీలను వ్యవస్థాపించడం
- ప్రజల లెక్కింపు కోసం థింగ్స్పీక్ సెటప్
- హార్డ్వేర్ సెటప్
- పీపుల్ కౌంటర్ కోసం పైథాన్ ప్రోగ్రామ్ వివరణ
- పరీక్షించడం
నేటి అత్యాధునిక సాంకేతిక పరిజ్ఞానాల ప్రపంచంలో, డిజిటల్ ఇమేజ్ ప్రాసెసింగ్ చాలా వేగంగా పెరుగుతోంది మరియు మొబైల్, సెక్యూరిటీ కెమెరాలు, ల్యాప్టాప్లు వంటి అనేక డిజిటల్ పరికరాల్లో ముఖ్యమైన భాగంగా మారింది.
డిజిటల్ ఇమేజ్ ప్రాసెసింగ్ యొక్క అత్యంత సాధారణ అనువర్తనాలు ఆబ్జెక్ట్ డిటెక్షన్, ఫేస్ రికగ్నిషన్ మరియు పీపుల్ కౌంటర్. కాబట్టి ఈ ట్యుటోరియల్లో, మేము రాస్ప్బెర్రీ పై మరియు థింగ్స్పీక్ ఉపయోగించి ఓపెన్సివి క్రౌడ్ కౌంటింగ్ను నిర్మించబోతున్నాం. ఇక్కడ పై కెమెరా మాడ్యూల్ నిరంతరం ఫ్రేమ్లను సంగ్రహించడానికి ఉపయోగించబడుతుంది మరియు తరువాత ఈ ఫ్రేమ్లు చిత్రంలోని వస్తువులను గుర్తించడానికి HOG (హిస్టోగ్రామ్ ఓరియెంటెడ్ ఆబ్జెక్ట్ డిస్క్రిప్టర్) తో ప్రాసెస్ చేయబడతాయి. దీని తరువాత, ఈ ఫ్రేమ్లను ప్రజలను గుర్తించడానికి ఓపెన్సివి యొక్క ముందే శిక్షణ పొందిన మోడల్తో పోల్చబడుతుంది. ప్రపంచంలో ఎక్కడి నుండైనా పర్యవేక్షించగల థింగ్స్పీక్ ఛానెల్లో వ్యక్తుల లెక్కింపు ప్రదర్శించబడుతుంది.
భాగాలు అవసరం
హార్డ్వేర్
- రాస్ప్బెర్రీ పై 3 (ఏదైనా వెర్షన్)
- పై కెమెరా
సాఫ్ట్వేర్ & ఆన్లైన్ సేవలు
- థింగ్స్పీక్
- పైథాన్ 3.0
- OpenCV3.0
రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
ఇక్కడ ప్రేక్షకులను గుర్తించడానికి ఓపెన్సివి లైబ్రరీ ఉపయోగించబడుతుంది. OpenCV ని వ్యవస్థాపించడానికి, మొదట, రాస్ప్బెర్రీ పైని నవీకరించండి.
sudo apt-get update
మీ రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేయడానికి అవసరమైన డిపెండెన్సీలను ఇన్స్టాల్ చేయండి.
sudo apt-get install libhdf5-dev -y sudo apt-get install libhdf5-serial-dev –y sudo apt-get install libatlas-base-dev –y sudo apt-get install libjasper-dev -y sudo apt-get install libqtgui4 -y సుడో వర్ణనాత్మక-పొందుటకు ఇన్స్టాల్ libqt4 పరీక్ష-y
ఆ తరువాత, కింది ఆదేశాన్ని ఉపయోగించి రాస్ప్బెర్రీ పై ఓపెన్సివిని ఇన్స్టాల్ చేయండి.
పైప్ 3 ఇన్స్టాల్ ఓపెన్సివి-కంట్రిబ్యూట్-పైథాన్ == 4.1.0.25
మేము ఇంతకుముందు రాస్ప్బెర్రీ పైతో ఓపెన్సివిని ఉపయోగించాము మరియు దానిపై చాలా ట్యుటోరియల్లను సృష్టించాము.
- CMake ఉపయోగించి రాస్ప్బెర్రీ పై ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
- రాస్ప్బెర్రీ పై మరియు ఓపెన్ సివిలతో రియల్ టైమ్ ఫేస్ రికగ్నిషన్
- రాస్ప్బెర్రీ పై మరియు ఓపెన్ సివి ఉపయోగించి లైసెన్స్ ప్లేట్ గుర్తింపు
మేము అనుభవశూన్యుడు స్థాయి నుండి ప్రారంభమయ్యే ఓపెన్సివి ట్యుటోరియల్ల శ్రేణిని కూడా సృష్టించాము.
అవసరమైన ఇతర ప్యాకేజీలను వ్యవస్థాపించడం
క్రౌడ్ కౌంటింగ్ కోసం రాస్ప్బెర్రీ పైని ప్రోగ్రామ్ చేయడానికి ముందు, అవసరమైన ఇతర ప్యాకేజీలను ఇన్స్టాల్ చేద్దాం.
ఇముటిల్స్ను ఇన్స్టాల్ చేస్తోంది : అనువాదం, భ్రమణం, పున izing పరిమాణం, అస్థిపంజరం మరియు ఓపెన్సివితో మాట్ప్లోట్లిబ్ చిత్రాలను సులభంగా ప్రదర్శించడం వంటి కొన్ని అవసరమైన ఇమేజ్ ప్రాసెసింగ్ విధులను అమలు చేయడానికి ఇముటిల్స్ ఉపయోగించబడతాయి. కాబట్టి దిగువ ఆదేశాన్ని ఉపయోగించి imutils ని వ్యవస్థాపించండి:
పైప్ 3 ఇన్స్టాల్ ఇమ్యుటిల్స్
matplotlib : ఆ తరువాత, matplotlib లైబ్రరీనిఇన్స్టాల్ చేయండి. మాథప్లోట్లిబ్ పైథాన్లో స్టాటిక్, యానిమేటెడ్ మరియు ఇంటరాక్టివ్ విజువలైజేషన్లను సృష్టించడానికి సమగ్ర లైబ్రరీ.
పైప్ 3 ఇన్స్టాల్ మ్యాట్ప్లోట్లిబ్
ప్రజల లెక్కింపు కోసం థింగ్స్పీక్ సెటప్
థింగ్స్పీక్ చాలా ప్రాచుర్యం పొందిన ఐయోటి ప్లాట్ఫామ్ మరియు థింగ్స్పీక్ ప్లాట్ఫామ్ను ఉపయోగించడం ద్వారా, మన డేటాను ఇంటర్నెట్ ద్వారా ఎక్కడి నుండైనా పర్యవేక్షించవచ్చు. థింగ్స్పీక్ అందించిన ఛానెల్లు మరియు వెబ్పేజీలను ఉపయోగించి, ఇంటర్నెట్ ద్వారా సిస్టమ్ను నియంత్రించడానికి కూడా ఇది ఉపయోగించబడుతుంది. మేము గతంలో అనేక IoT ఆధారిత ప్రాజెక్టులను నిర్మించడానికి థింగ్స్పీక్ను ఉపయోగించాము.
మొదట థింగ్స్పీక్లో ఛానెల్ని సృష్టించడానికి, మొదట థింగ్స్పీక్లో సైన్ అప్ చేయండి. ఒకవేళ మీకు ఇప్పటికే థింగ్స్పీక్లో ఖాతా ఉంటే, మీ ఐడి మరియు పాస్వర్డ్ ఉపయోగించి సైన్ ఇన్ చేయండి.
సింగ్ అప్ పై క్లిక్ చేసి మీ వివరాలను నమోదు చేయండి.
దీని తరువాత, మీ ఇ-మెయిల్ ఐడిని ధృవీకరించండి మరియు కొనసాగించుపై క్లిక్ చేయండి.
ఇప్పుడు, లాగిన్ అయిన తర్వాత, “ క్రొత్త ఛానెల్ ” బటన్ను క్లిక్ చేయడం ద్వారా క్రొత్త ఛానెల్ని సృష్టించండి.
“ క్రొత్త ఛానెల్ ” పై క్లిక్ చేసిన తర్వాత , మీరు ఈ ఛానెల్లో అప్లోడ్ చేయదలిచిన డేటా పేరు మరియు వివరణను నమోదు చేయండి. ఇక్కడ మేము పీపుల్ అనే ఒక ఫీల్డ్ను సృష్టించాము. అవసరాలకు అనుగుణంగా బహుళ క్షేత్రాలను సృష్టించవచ్చు.
దీని తరువాత, వివరాలను సేవ్ చేయడానికి సేవ్ ఛానల్ బటన్ పై క్లిక్ చేయండి.
థింగ్స్పీక్కు డేటాను పంపడానికి, పైథాన్ స్క్రిప్ట్లో API కీ మరియు ఛానెల్ ఐడిని నమోదు చేయండి, కాబట్టి API కీ మరియు ఛానెల్ ID ని కాపీ చేయండి.
హార్డ్వేర్ సెటప్
ఈ ఓపెన్సివి హ్యూమన్ కౌంటింగ్ ప్రాజెక్ట్ కోసం ఇక్కడ మాకు రాస్ప్బెర్రీ పై మరియు పై కెమెరా మాత్రమే అవసరం మరియు మీరు రాస్ప్బెర్రీ పైలో ఇచ్చిన కెమెరా స్లాట్లో కెమెరా రిబ్బన్ కనెక్టర్ను అటాచ్ చేయాలి.
రాస్ప్బెర్రీ పై నిఘా కెమెరా, విజిటర్ మానిటరింగ్ సిస్టమ్, హోమ్ సెక్యూరిటీ సిస్టమ్ వంటి వివిధ ఆసక్తికరమైన ప్రాజెక్టులను నిర్మించడానికి పై కెమెరాను ఉపయోగించవచ్చు.
పీపుల్ కౌంటర్ కోసం పైథాన్ ప్రోగ్రామ్ వివరణ
ఈ క్రౌడ్ లెక్కింపు కోసం పూర్తి పైథాన్ కోడ్ ఓపెన్సివి ప్రాజెక్ట్ పేజీ చివరిలో ఇవ్వబడింది. ఇక్కడ మేము మంచి వివరణ కోసం కోడ్ యొక్క ముఖ్యమైన విభాగాలను వివరిస్తున్నాము.
కాబట్టి కోడ్ ప్రారంభంలో, ఈ ప్రాజెక్ట్లో ఉపయోగించబోయే అన్ని లైబ్రరీలను దిగుమతి చేయండి.
imtils.object_detection దిగుమతి non_max_suppression దిగుమతి సంఖ్యను np దిగుమతి అభ్యర్థనల వలె దిగుమతి సమయం దిగుమతి బేస్ 64 ను మ్యాట్ప్లోట్లిబ్ దిగుమతి పైప్లాట్ నుండి urllib నుండి పంపండి
లైబ్రరీలను దిగుమతి చేసిన తరువాత, థింగ్స్పీక్ ఛానల్ ఐడిని ఎంటర్ చేసి, మీరు ఇంతకు ముందు కాపీ చేసిన API కీని వ్రాయండి.
channel_id = 812060 # PUT CHANNEL ID ఇక్కడ WRITE_API = 'X5AQ3EGIKMBYW31H' # మీ వ్రాత కీ ఇక్కడ ఉంచండి BASE_URL = "https://api.thingspeak.com/update?api_key= {}". ఫార్మాట్ (WRIT).
ఇప్పుడు, HOG (హిస్టోగ్రామ్ ఓరియెంటెడ్ ఆబ్జెక్ట్ డిస్క్రిప్టర్) ను ప్రారంభించండి. ఆబ్జెక్ట్ డిటెక్షన్ కోసం HOG అత్యంత ప్రాచుర్యం పొందిన పద్ధతులలో ఒకటి మరియు ఇది అనేక అనువర్తనాలలో ఉపయోగించబడింది. cv2.HOGDescriptor_getDefaultPeopleDetector () ప్రజలను గుర్తించడం కోసం ఓపెన్సివి యొక్క ముందే శిక్షణ పొందిన మోడల్ను పిలుస్తారు. మునుపటి ఓపెన్సివి ట్యుటోరియల్లో మేము గతంలో HOG ని వివరంగా వివరించాము.
hog = cv2.HOGDescriptor () hog.setSVMDetector (cv2.HOGDescriptor_getDefaultPeopleDetector ())
డిటెక్టర్ () లోపల , పై మూడు రంగు ఛానెల్లుగా విభజించబడిన RGB చిత్రాన్ని పొందుతుంది. దాని తరువాత, ఇది ఇమేటిల్స్ ఉపయోగించి చిత్రాన్ని పున izes పరిమాణం చేస్తుంది . SVM మోడల్ నుండి వర్గీకరణ ఫలితాన్ని ఉపయోగించి ఒక వ్యక్తి ఉనికిలో ఉన్నాడో లేదో తెలుసుకోవడానికి చిత్రాన్ని విశ్లేషించడానికి ఇది డిటెక్ట్మల్టీస్కేల్ () పద్ధతిని పిలుస్తుంది.
డెఫ్ డిటెక్టర్ (ఇమేజ్): image = imutils.resize (image, width = min (400, image.shape)) క్లోన్ = image.copy () రెక్ట్స్, బరువులు = hog.detectMultiScale (image, winStride = (4, 4), పాడింగ్ = (8, 8), స్కేల్ = 1.05)
కొన్నిసార్లు క్యాప్చర్-బాక్స్లు అతివ్యాప్తి చెందుతాయి మరియు తప్పుడు పాజిటివ్లు లేదా డిటెక్షన్ లోపాలను సృష్టిస్తాయి, కాబట్టి దిగువ కోడ్ ఇమ్యుటిల్స్ నుండి కిక్-ఆఫ్ అతివ్యాప్తి చెందిన బాక్స్లకు గరిష్టంగా కాని అణచివేతను వర్తిస్తుంది.
(x, y, w, h) రెక్ట్స్ కోసం: cv2.rectangle (చిత్రం, (x, y), (x + w, y + h), (0, 0, 255), 2) rects = np.array ((x, y, w, h) కోసం)) ఫలితం = non_max_suppression (రెక్ట్స్, ప్రోబ్స్ = ఏదీ లేదు, అతివ్యాప్తి థ్రెష్ = 0.7) రిటర్న్ ఫలితం
రికార్డ్ () ఫంక్షన్ లోపల, ఇది ఓపెన్సివి నుండి వీడియోకాప్చర్ () పద్ధతిని ఉపయోగించి పై కెమెరా నుండి నేరుగా చిత్రాన్ని తిరిగి పొందుతుంది, ఇముల్టిస్ను ఉపయోగించి పరిమాణాన్ని మారుస్తుంది మరియు ఫలితాలను థింగ్స్పీక్కు పంపుతుంది.
డెఫ్ రికార్డ్ (sample_time = 5): కెమెరా = cv2.VideoCapture (0) frame = imutils.resize (frame, width = min (400, frame.shape)) result = డిటెక్టర్ (frame.copy ()) thingspeakHttp = BASE_URL + " & ఫీల్డ్ 1 = {} ". ఫార్మాట్ (ఫలితం 1)
పరీక్షించడం
పైథాన్ స్క్రిప్ట్ను ప్రారంభించే ముందు, మొదట, మీ PI కెమెరా పనిచేస్తుందో లేదో తనిఖీ చేయండి. కెమెరాను సమీక్షించిన తరువాత, కింది ఆదేశాన్ని జారీ చేయడం ద్వారా పైథాన్ స్క్రిప్ట్ను ప్రారంభించండి:
అప్పుడు మీరు మీ వీడియో ఫీడ్తో కూడిన విండోను కనుగొంటారు. పై మొదటి ఫ్రేమ్ను తీసుకొని ప్రజల సంఖ్యను గుర్తించడానికి ఓపెన్సివిని ఉపయోగించి ప్రాసెస్ చేస్తుంది. ఇది ప్రజలను గుర్తించినట్లయితే, మీరు దాని చుట్టూ ఒక పెట్టెను కనుగొంటారు:
ఇప్పుడు మీ థింగ్స్పీక్ ఛానెల్ని తనిఖీ చేయండి, ఇక్కడ మీరు ప్రపంచంలో ఎక్కడి నుండైనా ప్రేక్షకుల పరిమాణాన్ని పర్యవేక్షించవచ్చు.
ఈ విధంగా మీరు రాస్ప్బెర్రీ పై ఉపయోగించి ఓపెన్సివి క్రౌడ్ కౌంటింగ్ చేయవచ్చు. వర్కింగ్ వీడియో మరియు కోడ్ పేజీ చివరిలో ఇవ్వబడ్డాయి.