ዝርዝር ሁኔታ:

Raspberry Pi 4 የትራፊክ ምልክት ማወቂያ ሮቦት 6 ደረጃዎች
Raspberry Pi 4 የትራፊክ ምልክት ማወቂያ ሮቦት 6 ደረጃዎች

ቪዲዮ: Raspberry Pi 4 የትራፊክ ምልክት ማወቂያ ሮቦት 6 ደረጃዎች

ቪዲዮ: Raspberry Pi 4 የትራፊክ ምልክት ማወቂያ ሮቦት 6 ደረጃዎች
ቪዲዮ: BTT - Manta M4P CM4 eMMC install of Fluidd Pi 2024, ህዳር
Anonim
Raspberry Pi 4 የትራፊክ ምልክት ማወቂያ ሮቦት
Raspberry Pi 4 የትራፊክ ምልክት ማወቂያ ሮቦት

ይህ አስተማሪ በዩኒቨርሲቲዬ ፕሮጀክት ላይ የተመሠረተ ነው። ዓላማው አንድ የነርቭ አውታረ መረብ ምስልን የሚመረምርበት እና ከዚያ እውቅና ላይ በመመስረት አርዱዲኖ ሮቦት በሮዝ በኩል እንዲንቀሳቀስ የሚናገርበትን ስርዓት መፍጠር ነበር።

ለምሳሌ ፣ የመዞሪያ ቀኝ ምልክት ከታወቀ ሮቦቱ ወደ ቀኝ ይመለሳል ፣ የግራ ምልክት ከታወቀ ሮቦቱ ወደ ግራ ይመለሳል ፣ ሁለቱም ካልታወቁ ሮቦቱ ወደፊት ይቀጥላል። ጥቅም ላይ የሚውለው የውሂብ ስብስብ ከ INI (2019) (Institut Fur Neuroinformatik) ኦፊሴላዊ የትራፊክ ምልክት ዕውቅና ነው ፣ ይህ የውሂብ ስብስብ 43 ክፍሎች አሉት ግን ሁለት ብቻ ያስፈልጋሉ ፤ በውሂብ ስብስቡ ውስጥ 00033 እና 00034 አቃፊዎች የግራ እና የቀኝ የመዞሪያ ምልክቶች ናቸው።

ደረጃ 1: መስፈርቶች

መስፈርቶች
መስፈርቶች
መስፈርቶች
መስፈርቶች
መስፈርቶች
መስፈርቶች

የዚህ ፕሮጀክት መስፈርቶች የሚከተሉት ናቸው

አርዱዲኖ ሮቦት። (በመሠረቱ አርዱዲኖ ዩኒ ፣ የሞተር ሾፌር እና ሞተሮች) (ሮቦት የማይጠቀሙ ከሆነ አያስፈልግም)

እንጆሪ ፓይ 4.

ፒ ፒ ካሜራ።

ሶፍትዌር ያስፈልጋል ፦

ፓይዘን 3.

OpenCV 4.

Tensorflow.

አርዱዲኖ አይዲኢ (ሮቦት የማይጠቀሙ ከሆነ አያስፈልግም)

ሮስ (ሮቦት የማይጠቀሙ ከሆነ አያስፈልግም)

የሚወዱት የፓይዘን ሀሳብ ምንም ይሁን ምን (በሬስቤሪ ፓይ ላይ ፣ ቶኒን እጠቀማለሁ)።

OpenCV እና Tensorflow ን ለማዋቀር በአድሪያን የተሰጡትን መመሪያዎች ይከተሉ። አገናኝ

በተቻለ መጠን ብዙ የእርሱን ትምህርቶች እንዲመለከቱ እመክራለሁ ፣ እነሱ በእውነት አስደሳች እና ለጀማሪዎች እንዲሁም ለአማካሪዎች ሁለቱም ጠቃሚ ናቸው።

ደረጃ 2 የውሂብ ስልጠና

የባቡሩ ስክሪፕት ከ 43 ክፍሎች ወደ 50, 000 የሚጠጉ ምስሎችን ያካተተ የውሂብ ስብስብን ለመድረስ የተነደፈ ነው። ስክሪፕቱ የተለያዩ ቤተመፃሕፍትን በመጠቀም በፓይዘን የተፃፈ ነው - os - ይህ የፓይዘን ስክሪፕቱን የውሂብ ስብስቡ የሚገኝበትን ትክክለኛውን ማውጫ ለማገናኘት ነው። Matplotlib - ይህ ከስልጠና ሞዴሉ መረጃን ለማሳየት ነው። Tensorflow እና keras - እነዚህ ሰው ሠራሽ የነርቭ አውታረ መረብ ሞዴልን ለመፍጠር የሚያገለግሉ ቤተ -መጻሕፍት ናቸው ፣ ሞዴሉን ለመንደፍ ያገለግላሉ። ጎበዝ - ይህ ቤተ -መጽሐፍት ምስሎችን ወደ ድርድር ለመቀየር ነው ፣ ከዚያ ትንበያ ለማምጣት በአምሳያው ውስጥ ሊቀመጥ ይችላል።

የተያያዘው ስክሪፕት ከውሂብ ስብስቡ ውስጥ ሞዴል ለመሥራት የፒቶን ኮድ ነው። ይህ በ (5 ፣ 5) ግብዓት እና በባቡር ከዚያም መዋኘት (convolutional 2D) ላይ ያካተተ ነው ፣ ይህ አንዴ ከተከናወነ ግብዓቱ ከተመሳሳይ ማግበር እና ገንዳ ጋር (3 ፣ 3) ግብዓት ጋር በሌላ ኮንቬንሽን ያልፋል። ይህ ከመጥፋቱ በፊት ለመጨረሻ ጊዜ ይከሰታል እና ከዚያ ጥግግቱ እዚያ ላሉት ክፍሎች መጠን ይተገበራል ፣ በዚህ ሁኔታ 43።

ቀጣዩ ደረጃ ሞዴሉን ማጠናቀር ነበር። ይህ አመቻችውን የሚያስተካክለው ክፍል ነው ፣ ይህ በስራ ላይ ከዋለው አመላካች ጋር ተመሳሳይ ስለነበረ sgd በጣም ተስማሚ ነበር። እንዲሁም በአቀነባባሪው ውስጥ ኪሳራ መዘጋጀት አለበት ፣ ምድቦች እንደ ኢንቲጀር ስለሆኑ እና ሞዴሉ በ 0 እና 1. 1 መካከል በሚንሳፈፍበት ጊዜ ለእያንዳንዱ ክፍል ትንበያ ያወጣል።

አጠናቃሪው ከተጠናቀቀ በኋላ የምስል ግብዓቶችን ማቀናበር ለመጀመር ለአምሳያው አንድ ጄኔሬተር መተግበር አለበት። ጀነሬተር በርካታ ክፍሎችን ያቀፈ ነው- training_set - ይህ ለሥልጠና ጥቅም ላይ የዋለው የውሂብ ስብስብ አገናኝ ነው ፣ ደረጃዎች_per_epoch - ይህ በየዘመኑ የሚፈለጉት የቁጥር ደረጃዎች ፣ ወቅቶች - እነዚህ ፕሮግራሙ በአንድ ሙሉ የውሂብ ስብስብ ውስጥ የሚደጋገመው ስንት ጊዜ ነው, validation_data - ይህ ለማፅደቅ ጥቅም ላይ የዋለው የውሂብ ስብስብ አገናኝ ነው ፣ የማረጋገጫ_steps - ለማፅደቅ ጥቅም ላይ የዋሉ የእርምጃዎች ብዛት ፣ ማረጋገጫ በእያንዳንዱ ዘመን መጨረሻ ላይ ይከሰታል።

በአጠቃላይ ፣ አጠቃላይ የውሂብ ስብስቡን ሙሉ በሙሉ መጥረግ በየዘመኑ መጠናቀቅ አለበት። ስለዚህ ለምሳሌ የ 1024 ምስሎች የውሂብ ስብስብ ይጠይቃል - ባች መጠን = 32 ፣ ደረጃዎች በአንድ ዘመን = 32 ፣ ወቅቶች = 1. እያንዳንዱ ደረጃ መላውን የምድብ መጠን ያካትታል ፣ ስለዚህ በ 32 የምድብ መጠን ደረጃዎች 32 ይሆናሉ። እጅ ፣ ከክፍሎች ብዛት የበለጠ ትልቅ የምድብ መጠን ቢኖር ጥሩ ነው ፣ ይህ የሆነው የምድብ መጠኑ አነስተኛ ከሆነ እያንዳንዱ እርምጃ ከእያንዳንዱ ክፍል ምስል ማካተት ስለማይችል ነው።

ሞዴሉ ሥልጠናውን ከጨረሰ በኋላ ፣ matplotlib ን በመጠቀም ፕሮግራሙ የውጤቶችን ግራፍ ይሠራል ፣ ይህ የስልጠናውን ታሪክ ከመጀመሪያው እስከ መጨረሻ ያሳያል። ግራፉ ትክክለኛነት ፣ የማረጋገጫ ትክክለኛነት ፣ ኪሳራ እና የማረጋገጫ ኪሳራን ያጠቃልላል ፣ ይህ ሥልጠናው እንዴት እንደደረሰ ለማሳየት በየዘመኑ ተከፍሏል። የመጨረሻው ደረጃ ሞዴሉን እንደ.h5 ፋይል ሆኖ ለትንበያ ሂደት በኋላ ሊደረስበት ይችላል። ሞዴሉን ማስቀመጥ ማለት የትንበያው መርሃ ግብር በተካሄደ ቁጥር የስልጠና መርሃ ግብሩ እንደገና መሮጥ አያስፈልገውም ማለት ነው። በስልጠና መርሃግብሩ በአንድ እንጆሪ ፓይ ላይ እስከ 10 ደቂቃዎች ድረስ ሊወስድ ይችላል።

የስልጠና ስክሪፕት ተያይachedል-

ደረጃ 3 የ Pi ካሜራ ትንበያዎችን መተግበር

ቀጣዩ ፕሮግራም ትንበያው እና የአሳታሚው ስክሪፕት ነው።

የመጀመሪያው ደረጃ ሞዴሉን (load.load) በመጠቀም ሞዴሉን መጫን ነው። ሁለተኛው ደረጃ opencv ን በመጠቀም ከፒ ካሜራው ክፈፎች ውስጥ መደጋገም እና ከዚያ በስልጠና ደረጃው ጥቅም ላይ ከሚውሉት የግብዓት መጠኖች ፣ 32 x 32 ፒክሰሎች ጋር ክፈፉን ወደ ተመሳሳይ መጠን መለወጥ ነው። አንዴ ይህ ከተጠናቀቀ አዲሱ መጠነ -ልኬት ሞዴሉን (ሞዴል) ትንበያ () ማትሪክስን በመጠቀም ፣ የማትሪክስ እያንዳንዱ ንጥረ ነገር ከ 0 ወደ 1 ተንሳፋፊ ነው ፣ የኤለመንት ጠቋሚው ከሚወክለው ክፍል ጋር ተመሳሳይ ነው ፣ ስለሆነም የመጀመሪያው ንጥረ ነገር ክፍል አንድ ሲሆን ቁጥሩ ከዚያ ክፍል የመሆኑ የምስል እርግጠኛነት ትንበያ ነው። ለምሳሌ

ማሳሰቢያ - የሮቦቱን ጎን የማይጠቀሙ ከሆነ። መስመሮችን ብቻ ያስወግዱ -

"rospy አስመጣ"

ተናጋሪ ተናጋሪ (አቅጣጫ):

መልዕክት = ሕብረቁምፊ ()

መጠጥ ቤት = rospy. አታሚ ('ሮቦት' ፣ ሕብረቁምፊ ፣ ወረፋ_መጠን = 10)

rospy.init_node ('ተናጋሪ' ፣ ስም የለሽ = እውነት)

መልእክት = አቅጣጫ

rospy.loginfo (መልእክት)

pub.publish (መልዕክት)"

"ተናጋሪ (አቅጣጫ)"

የፒ ካሜራ ስክሪፕት ተያይ Attል።

ደረጃ 4: አርዱዲኖ ሮቦት

የመጨረሻው ደረጃ የሮቦት ፕሮግራም ስክሪፕት ነው።

ይህ በ C ++ ውስጥ የተፃፈ እና ለአርዱዲኖ ዩኒኖ የ.ino ፋይል ነው። ፕሮግራሙ በሐሳቡ ውስጥ ባለው የቤተ -መጻህፍት ሥራ አስኪያጅ ውስጥ ሊገኝ የሚችል የሮስ ቤተ -መጽሐፍትን ይፈልጋል። አንዴ ይህ ከውጪ ሲመጣ የምሳሌ ፋይሎች አሉ ፣ ይህ እኔ ከሚያስፈልገኝ ጋር ተመሳሳይ ዓላማ ስለሚያደርግ በሚመራው ብልጭ ድርግም ፋይል ላይ ማስፋፋት መርጫለሁ። ኃይሉ እስከሚቋረጥ ድረስ ፕሮግራሙ መዞሩን ይቀጥላል ፣ በመጀመሪያ ርዕሱን ሮቦት ያዳምጣል ፣ ከዚያ ርዕስ ትእዛዝ ሲይዝ ትዕዛዙ የሚናገረውን ለማየት መግለጫ ይኖረዋል። ትዕዛዙ ከቀረ ስክሪፕቱ የማዞሪያ ግራ ዘዴን ያካሂዳል ፣ ትዕዛዙ ትክክል ከሆነ ታዲያ የመዞሪያውን ቀኝ ዘዴ ያካሂዳል እና ሌላ ደግሞ ወደፊት ያለውን ዘዴ ያካሂዳል። እነዚህ ሶስት ዘዴዎች እርስ በእርስ በጣም ይመሳሰላሉ ፣ ዲጂታል ፒንዎቹ LOW (መሬት) ወይም 100 (PWM) እንዲሆኑ ለሮቦቱ በጣም ፈጣን እንዳይሆን ለሞተር ሾፌሩ ትንሽ እንዲተው ይነግሩታል። ቮልቴጅ ወጥቷል። የእነዚህ የውጤቶች ቅደም ተከተል ሮቦቱ ወደ ግራ እና ወደ ቀኝ እንዲዞር ወይም ወደ ፊት እንዲሄድ የሚያደርግ ነው ፣ ይህ ወደ ሞተሮች በሚሄደው የቮልቴጅ አቅጣጫ ምክንያት ነው።

ለአርዱዲኖ የ.ino ስክሪፕት ተያይachedል።

ደረጃ 5: ሙከራ

ሙከራ
ሙከራ
ሙከራ
ሙከራ
ሙከራ
ሙከራ

ምስሎቹ ተያይዘዋል ስለዚህ ፕሮጀክቱ ከመጀመሪያው እስከ መጨረሻው። የመጀመሪያው ምስል ሥልጠናውን በሂደት ያሳያል። አንዴ ከተጠናቀቀ ከተሠራው ሞዴል ውስጥ አንድ ህትመት ይታያል። ሦስተኛው ምስል ከስልጠና ስክሪፕት ትንበያ ያሳያል። ይህ የሥልጠና ስክሪፕት የመጨረሻ ደረጃ ነው። የስልጠና ስክሪፕቱ በገባበት አቃፊ ውስጥ ከተመለከቱ ፣ ግራፍ እና ሞዴል ተሠርቷል። ግራፉ እዚህ ምስል 4 መምሰል አለበት ፣ ይህ የስልጠናውን ታሪክ ከመጀመሪያው እስከ መጨረሻው ያሳያል።

የመጨረሻው ምስል የፒ ካሜራ ካሜራ ስክሪፕት እያሄደ ነው ፣ እሱ ከፒ ካሜራ በቀጥታ ስርጭት ነው። በእያንዳንዱ ክፈፍ ላይ ትንበያ ይደረጋል እና ትንበያው ተርሚናል ውስጥ ታትሟል። ክፈፉ ካሜራው የሚያየውን ያሳያል።

ለዚህ ፕሮጀክት የዩኒቨርሲቲዬ ሪፖርት ተያይachedል። እባክዎን ስለፕሮጀክቱ የበለጠ ዝርዝር ያንብቡ።

ደረጃ 6 - ሁሉም ተጨማሪ ፋይሎች

ሁሉም ተጨማሪ ፋይሎች
ሁሉም ተጨማሪ ፋይሎች

ከእነዚህ ውስጥ አንዳንዶቹ በመንገድ ላይ የሠራኋቸውን ፋይሎች እየሞከሩ ነበር።

የሚመከር: