ዝርዝር ሁኔታ:

ሮክ ወረቀት መቀስ AI: 11 ደረጃዎች
ሮክ ወረቀት መቀስ AI: 11 ደረጃዎች

ቪዲዮ: ሮክ ወረቀት መቀስ AI: 11 ደረጃዎች

ቪዲዮ: ሮክ ወረቀት መቀስ AI: 11 ደረጃዎች
ቪዲዮ: Как сделать легкую цементную стяжку в старом доме. ПЕРЕДЕЛКА ХРУЩЕВКИ ОТ А до Я #12 2024, ህዳር
Anonim
ሮክ ወረቀት መቀስ AI
ሮክ ወረቀት መቀስ AI

ብቸኝነት ተሰምቶህ ያውቃል? በአስተዋይነት በተጎላበተ በይነተገናኝ ስርዓት ላይ ዓለት ፣ ወረቀት እና መቀስ እንጫወት።

ደረጃ 1 በዚህ ፕሮጀክት ውስጥ ያገለገሉ ነገሮች

የሃርድዌር ክፍሎች

  • Raspberry Pi 3 ሞዴል B+ × 1
  • Raspberry Pi ካሜራ ሞዱል V2 × 1
  • SG90 ማይክሮ-ሰርቮ ሞተር × 1

የሶፍትዌር መተግበሪያዎች

  • Raspberry Pi Raspbian
  • OpenCV
  • TensorFlow

ደረጃ 2 - ሀሳብ?

Image
Image

በተለያዩ ጎራዎች ላይ በተለያዩ ፕሮጀክቶች ላይ ከሠራሁ በኋላ አስደሳች ፕሮጀክት ለመሥራት አስቤ ነበር ፣ እናም የሮክ-ወረቀት-መቀሶች ጨዋታ ለማድረግ ወሰንኩ:)

በዚህ ፕሮጀክት ውስጥ በይነተገናኝ ጨዋታ እንሰራለን እና ውሳኔዎችን ለማድረግ በአይአይ ከሚጎበኘው ኮምፒተር ጋር እንጫወታለን። አይአይ ተጠቃሚው በእጁ የሠራውን ምን እንደሆነ ለመለየት ፣ ወደ ምርጥ ምድብ (መለያ) ዓለት ፣ ወረቀት ወይም መቀሶች እንዲመደብላቸው ከ Raspberry Pi ጋር የተገናኘውን ካሜራ ይጠቀማል። አንዴ ኮምፒዩተሩ እንቅስቃሴውን ከጀመረ ፣ ከ Raspberry Pi ጋር የተገናኘው የእግረኛ ሞተር በእንቅስቃሴው ላይ በመመስረት አቅጣጫውን ያሳያል።

ለዚህ ጨዋታ ግምት ውስጥ መግባት ያለባቸው ህጎች

  • ሮክ መቀሱን ይደበዝዛል
  • ወረቀት ዓለቱን ይሸፍናል
  • መቀሶች ወረቀት ቆርጠዋል

አሸናፊው ከላይ በተጠቀሱት ሶስት ሁኔታዎች ላይ በመመስረት ይወሰናል። የፕሮጀክቱን ፈጣን ማሳያ እዚህ እንይ።

ደረጃ 3: መጀመር?

እንደ መጀመር ?
እንደ መጀመር ?
እንደ መጀመር ?
እንደ መጀመር ?

Raspberry Pi

እኔ ትልቅ ማሻሻያዎች ያሉት እና ከቀዳሚው Raspberry Pi 3 ሞዴል ቢ የበለጠ ኃይለኛ የሆነውን Raspberry Pi 3 Model B+ ን ተጠቅሜያለሁ።

Raspberry Pi 3 B+ ከ 1.4GHz 64-ቢት ባለአራት ኮር አንጎለ ኮምፒውተር ፣ ባለሁለት ባንድ ገመድ አልባ ላን ፣ ብሉቱዝ 4.2/BLE ፣ ፈጣን ኤተርኔት እና ከኤተርኔት በላይ ኃይል ድጋፍ (ከተለየ የ PoE HAT) ጋር ተጣምሯል።

ዝርዝሮች Broadcom BCM2837B0 ፣ Cortex-A53 (ARMv8) 64-ቢት SoC @ 1.4GHz ፣ 1GB LPDDR2 SDRAM ፣ 2.4GHz እና 5GHz IEEE 802.11.b/g/n/ac ገመድ አልባ ላን ፣ ብሉቱዝ 4.2 ፣ BLE ፣ Gigabit Ethernet በዩኤስቢ 2.0 (ከፍተኛው የ 300 ሜጋ ባይት ፍሰት መጠን) ፣ የተራዘመው የ 40 ፒን ጂፒኦ ራስጌ ፣ ባለሙሉ መጠን ኤችዲኤምአይ 4 ዩኤስቢ 2.0 ወደቦች ፣ የ Raspberry Pi ካሜራ ለማገናኘት የ CSI ካሜራ ወደብ ፣ የ Raspberry Pi ንኪ ማያ ገጽ ማሳያ ለማገናኘት የ 4-ምሰሶ ስቴሪዮ ውፅዓት እና ድብልቅ የቪዲዮ ወደብ ፣ ኦፕሬቲንግ ሲስተምዎን ለመጫን እና ውሂብ ለማከማቸት የማይክሮ ኤስዲ ወደብ 5V/2.5A የዲሲ የኃይል ግብዓት ፣ የኃይል-ኤተርኔት (ፖኢ) ድጋፍ (የተለየ PoE HAT ይፈልጋል)።

ሰርቮ ሞተር

ጭነቱን እስከ 2.5 ኪ.ግ (1 ሴ.ሜ) መቋቋም የሚችል SG-90 servo ሞተር ፣ ከፍተኛ የማሽከርከሪያ ሞተር እንጠቀማለን።

የዩኤስቢ ካሜራ

የዩኤስቢ ካሜራ ጨዋታውን ከምስሉ ሂደት ጋር መስተጋብራዊ ለማድረግ

አንዳንድ የጁምፔር ኬብሎች የእግረኛውን ሞተር እና Raspberry Pi ን ለማገናኘት ያገለግላሉ።

ደረጃ 4 Raspbian ን ወደ ኤስዲ ካርድ ያቃጥሉ?

Raspbian ን ወደ ኤስዲ ካርድ ያቃጥሉ?
Raspbian ን ወደ ኤስዲ ካርድ ያቃጥሉ?
Raspbian ን ወደ ኤስዲ ካርድ ያቃጥሉ?
Raspbian ን ወደ ኤስዲ ካርድ ያቃጥሉ?
Raspbian ን ወደ ኤስዲ ካርድ ያቃጥሉ?
Raspbian ን ወደ ኤስዲ ካርድ ያቃጥሉ?

Raspbian በ Raspberry Pi ላይ የሚሰራ የሊኑክስ የምርጫ ስርጭት ነው። በዚህ መመሪያ ውስጥ እኛ የ Lite ስሪት እንጠቀማለን ፣ ግን የዴስክቶፕ ሥሪት (ከግራፊክ አከባቢ ጋር የሚመጣ) እንዲሁ ጥቅም ላይ ሊውል ይችላል።

  • Etcher ን ያውርዱ እና ይጫኑት።
  • በውስጡ ካለው ኤስዲ ካርድ ጋር የ SD ካርድ አንባቢን ያገናኙ።
  • ኤቴቸርን ይክፈቱ እና ወደ ኤስዲ ካርድ ለመጻፍ የሚፈልጉትን Raspberry Pi.img ወይም.zip ፋይል ከሃርድ ድራይቭዎ ይምረጡ።
  • ምስልዎን ለመፃፍ የሚፈልጉትን የ SD ካርድ ይምረጡ።
  • ምርጫዎችዎን ይገምግሙ እና 'ብልጭታ!' ወደ SD ካርድ ውሂብ መጻፍ ለመጀመር።

መሣሪያውን ከአውታረ መረብዎ ጋር ያገናኙ

  • በኤስዲ ካርድዎ ላይ ባለው የማስነሻ መጠን ስር እንደገና የተቀመጠ ባዶ ፋይል ssh በማከል የኤስኤስኤች መዳረሻን ያንቁ።
  • የ SD ካርዱን ወደ Raspberry Pi ያስገቡ። በግምት በ 20 ሰከንዶች ውስጥ ይነሳል። አሁን ወደ የእርስዎ Raspberry Pi SSH መዳረሻ ሊኖርዎት ይገባል። በነባሪ ፣ የአስተናጋጅ ስሙ raspberrypi.local ይሆናል። በኮምፒተርዎ ላይ የተርሚናል መስኮት ይክፈቱ እና የሚከተለውን ይተይቡ

ssh [email protected]

ነባሪው የይለፍ ቃል እንጆሪ ነው

ከ Raspberry Pi ጋር ለመገናኘት እዚህ የተለየ ማሳያ ተጠቅሜያለሁ።

ደረጃ 5 የውሂብ ስብስቡን መሰብሰብ?

የውሂብ ስብስቡን መሰብሰብ? ️
የውሂብ ስብስቡን መሰብሰብ? ️
የውሂብ ስብስቡን መሰብሰብ? ️
የውሂብ ስብስቡን መሰብሰብ? ️

በዚህ ፕሮጀክት ውስጥ የመጀመሪያው እርምጃ መረጃ መሰብሰብ ነው። ስርዓቱ የእጅ ምልክቱን መለየት እና ድርጊቱን ማወቅ እና በዚህ መሠረት እንዲንቀሳቀስ ማድረግ አለበት።

ፒፕ መጫንን በመጠቀም በርካታ ቤተ -መጽሐፍትን ወደ Raspberry Pi እንጭናለን

ትእዛዝ።

& የ tensorflow pip ጫን Werkzeug pip ጫን Keras-Applications pip ጫን Keras-Preprocessing pip ጫን keras-squeezenet pip ጫት astor pip ጫን tensorboard pip መጫን tensorflow-estimator pip install mock pip install grpcio pip absl-pypip gast pip pip joblib pip install Markdown pip install protobuf pip install PyYAML pip install six

በ OpenCVpackage ላይ ማንኛውም ችግሮች ካጋጠሙዎት ፣ እነዚህን ጥቅሎች እንዲጭኑ አጥብቄ እመክራለሁ።

sudo apt-get install libhdf5-dev

sudo apt-get install libhdf5-serial-dev sudo apt-get install libatlas-base-dev sudo apt-get install libjasper-dev sudo apt-get install libqtgui4 sudo apt-get install libqt4-test

ለዚህ ፕሮጀክት የሚያስፈልጉትን ሁሉንም ጥገኞች ተጭነናል። የውሂብ ስብስብ በተገቢው ስያሜ ስር በምስሎች ስብስቦች እና ዝግጅቶች የተሰራ ነው።

የሚከተለውን ቅንጭብ በመጠቀም ለመለያው ዓለት ፣ ወረቀት እና መቀስ የውሂብ ስብስብ ምስሎችን እንፈጥራለን።

roi = ፍሬም [100: 500 ፣ 100: 500]

save_path = os.path.join (img_class_path ፣ '{}.jpg'.format (ቆጠራ + 1)) cv2.imwrite (save_path ፣ roi)

ምስሉ ለእያንዳንዱ መለያ (ዐለት ፣ ወረቀት ፣ መቀስ እና የለም) ተይ isል።

ደረጃ 6 የኤንኤን ዲዛይን ማድረግ እና ሞዴሉን ማሰልጠን ⚒️⚙️

ኤን ኤን ዲዛይን ማድረግ እና ሞዴሉን ማሰልጠን ⚒️⚙️
ኤን ኤን ዲዛይን ማድረግ እና ሞዴሉን ማሰልጠን ⚒️⚙️

የዚህ ፕሮጀክት ዋና ከሶስት ምድቦች አንዱን የሚመድብ የምስል ምድብ ነው። ይህንን ክላሲፋየር ለማድረግ ቀደም ሲል የሰለጠነውን ሲኤንኤን (Convolutional Network) SqueezeNet ን እንጠቀማለን።

የእጅ ምልክቱን መለየት የሚችል የ SqueezeNet ሞዴልን ለማመንጨት እዚህ Keras ን እና TensorFlow ን እንጠቀማለን። በቀደመው ደረጃ የፈጠርናቸው ምስሎች ሞዴሉን ለማሠልጠን ያገለግላሉ። አምሳያው ለተጠቀሱት ኢፖች (ዑደቶች) ባልተመነጨው ዳታሴት በመጠቀም የሰለጠነ ነው።

ከዚህ በታች እንደሚታየው ሞዴሉ ከሃይፐርፓሜትሮች ጋር ተዋቅሯል።

ሞዴል = ቅደም ተከተል (

ማቋረጥ (0.5) ፣

ዝግመተ ለውጥ 2 ዲ (NUM_CLASSES ፣ (1 ፣ 1) ፣ ማጣበቂያ = 'ልክ') ፣

ማግበር ('ባቡር') ፣

GlobalAveragePooling2D () ፣

ማግበር ('softmax')])

ሞዴሉ እየሰለጠነ እያለ ለእያንዳንዱ ኢፖክ የአምሳያውን ኪሳራ እና ትክክለኛነት ማግኘት ይችላሉ እና ከጥቂት ጊዜ በኋላ ትክክለኛነቱ በተወሰነ ጊዜ ይጨምራል።

ከ 10 ዘመናት በኋላ ሞዴሉን በከፍተኛ ትክክለኛነት ለማመንጨት በግምት 2 ሰዓታት ፈጅቷል። የማንኛውም የማህደረ ትውስታ ምደባ ስህተቶች ካጋጠሙዎት የሚከተሉትን እርምጃዎች ያድርጉ (ለአድሪያን ምስጋና ይግባው)

የመቀያየር ቦታዎን ከፍ ለማድረግ /ወዘተ /dphys-swapfile ን ይክፈቱ እና ከዚያ የ CONF_SWAPSIZE ተለዋዋጭውን ያርትዑ-

# CONF_SWAPSIZE = 100

CONF_SWAPSIZE = 1024

ስዋዋቱን ከ 100 ሜባ ወደ 1024 ሜባ እየጨመርኩ መሆኑን ልብ ይበሉ። ከዚያ ፣ የልውውጥ አገልግሎቱን እንደገና ያስጀምሩ -

$ sudo /etc/init.d/dphys-swapfile ማቆሚያ

$ sudo /etc/init.d/dphys-swapfile ጅምር

ማስታወሻ:

የመለዋወጫ መጠን መጨመር የማስታወሻ ካርድዎን ለማቃጠል ጥሩ መንገድ ነው ፣ ስለዚህ ይህንን ለውጥ ማደስዎን እና ሲጨርሱ የስዋፕ አገልግሎቱን እንደገና ማስጀመርዎን ያረጋግጡ። ስለ ትልልቅ መጠኖች ማህደረ ትውስታ ካርዶችን ስለ እዚህ የበለጠ ማንበብ ይችላሉ።

ደረጃ 7 ሞዴሉን Test መሞከር

ሞዴሉን መሞከር ✅
ሞዴሉን መሞከር ✅
ሞዴሉን መሞከር ✅
ሞዴሉን መሞከር ✅
ሞዴሉን መሞከር ✅
ሞዴሉን መሞከር ✅

ሞዴሉ አንዴ ከተፈጠረ ፣ የውጤት ፋይልን “ሮክ-ወረቀት-መቀሶች-ሞዴል.h5” ያወጣል። ስርዓቱ የተለያዩ የእጅ ምልክቶችን መለየት እና ድርጊቶቹን መለየት ይችል እንደሆነ ለመፈተሽ ይህ ፋይል እንደ ምንጭ ሆኖ ያገለግላል።

ሞዴሉ በፓይዘን ስክሪፕት ውስጥ እንደሚከተለው ተጭኗል

ሞዴል = load_model ("ዓለት-ወረቀት-መቀሶች-model.h5")

ካሜራው የሙከራ ምስሉን ያነባል እና አስፈላጊውን የቀለም ሞዴል ይለውጣል ፣ እና ከዚያ ምስሉን ወደ 227 x 227 ፒክሴል (ለሞዴል ትውልድ ጥቅም ላይ የዋለው ተመሳሳይ መጠን)። ሞዴሉን ለማሰልጠን ያገለገሉ ምስሎች የተፈጠረውን ሞዴል ለመፈተሽ ሊያገለግሉ ይችላሉ።

img = cv2.imread (ፋይል መንገድ)

img = cv2.cvtColor (img ፣ cv2. COLOR_BGR2RGB) img = cv2.resize (img ፣ (227 ፣ 227))

ሞዴሉ አንዴ ከተጫነ እና ምስሉ በካሜራ ከተገዛ ፣ አምሳያው የተጫነውን SqueezeNet ሞዴል በመጠቀም የተያዘውን ምስል ይተነብያል ፣ እና ለተጠቃሚው እንቅስቃሴዎች ትንበያ ይሰጣል።

pred = model.predict (np.array ())

move_code = np.argmax (ቅድመ [0]) move_name = mapper (move_code) ህትመት ("መተንበይ: {}"

ሞዴሉን በተለያዩ የሙከራ ምስሎች ለመሞከር የ test.py ስክሪፕት ያሂዱ።

python3 test.py

አሁን አምሳያው የእጅ ምልክቶችን ለመለየት እና ለመረዳት ዝግጁ ነው።

ደረጃ 8 የሮክ-ወረቀት-መቀሶች ጨዋታ

የሮክ-ወረቀት-መቀሶች ጨዋታ
የሮክ-ወረቀት-መቀሶች ጨዋታ

ጨዋታው የኮምፒተርን እንቅስቃሴ ለመወሰን የዘፈቀደ የቁጥር ትውልድ ተግባርን ይጠቀማል። አሸናፊውን ለመወሰን ከላይ የተጠቀሱትን ህጎች ይከተላል። ጨዋታው በሁለት ሁነታዎች የተነደፈ ነው - መደበኛ ሁናቴ እና ብልህ ሁናቴ ፣ ብልህ ሁናቴ የተጠቃሚውን እንቅስቃሴ የሚቃወምበት ፣ ማለትም ኮምፒተር በተጠቃሚው ላይ ሁሉንም እንቅስቃሴዎች ያሸንፋል።

cap = cv2. VideoCapture (0) # ምስልን ከካሜራ ለማንሳት

አሁን ጨዋታውን በመደበኛ ሁኔታ ውስጥ እናድርገው/ Raspberry Pi የእጁን ምስል ወስዶ የእጅ ምልክቱን የሚመረምር እና የሚለይበት። ከዚያ የዘፈቀደ ቁጥር ጀነሬተርን በመጠቀም የኮምፒተር እንቅስቃሴው ይጫናል። አሸናፊው የሚመረጠው በደንቦቹ ላይ በመመርኮዝ ከዚያም በማያ ገጹ ላይ ይታያል። የሚከተለውን ትዕዛዝ በመጠቀም ጨዋታውን ይጀምሩ።

python3 play.py

ደረጃ 9 የ Servo ሞተር ውህደት?

በመጨረሻ ፣ ለዚህ ፕሮጀክት የ servo ሞተር ይጨምሩ። ሰርቮ ሞተር የማሽከርከሪያውን አንግል ለመቆጣጠር የ PWM ተግባር ካለው የ Raspberry Pi GPIO ፒን 17 ነው።

በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ የዋለው ሰርቮ ሞተር SG-90 ነው። ማዞሪያዎችን በሰዓት አቅጣጫ እና በተቃራኒ ሰዓት አቅጣጫ እስከ 180 ° ድረስ ማድረግ ይችላል

ግንኙነቶቹ እንደሚከተለው ተሰጥተዋል።

ሰርቮ ሞተር - Raspberry Pi

ቪሲሲ - +5 ቪ

GND - GND

ምልክት - GPIO17

እንደ RPi. GPIO እና ጊዜ ያሉ ቤተመፃህፍት በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ ይውላሉ።

RPi. GPIO ን እንደ GPIO ያስመጡ

የማስመጣት ጊዜ

ከዚያ የሚከተሉትን መስመሮች በመጠቀም የ GPIO ፒን ወደ PWM ተዋቅሯል

servoPIN = 17

GPIO.setmode (GPIO. BCM) GPIO.setup (servoPIN ፣ GPIO. OUT)

GPIO ፒን 17 በ 50Hz ድግግሞሽ እንደ PWM ለመጠቀም ተዋቅሯል። የ servo ሞተር አንግል የሚገኘው የ PWM ን የግዴታ ዑደት (ቶን እና ቶፍ) በማቀናበር ነው

ግዴታ = አንግል/18 + 2

GPIO.output (servoPIN ፣ True) p. ChangeDutyCycle (ግዴታ) ጊዜ። እንቅልፍ (1) GPIO.output (servoPIN ፣ ሐሰት) p. ChangeDutyCycle (0)

ይህ ለእያንዳንዱ ምት የሚፈለገውን የእርከን ማእዘን ያፈራል ፣ ይህም የሚፈለገውን የማዞሪያ አንግል ይሰጣል።

አሁን ገበታውን ወስጄ በሦስት ክፍሎች ለድንጋይ ፣ ለወረቀት እና መቀስ አድርጌዋለሁ። የ Servo ሞተር በሰንጠረ chart መሃል ላይ ተስተካክሏል። ጠቋሚው/መከለያው ከ servo ሞተር ዘንግ ጋር ተገናኝቷል። ይህ ዘንግ በስክሪፕቱ ውስጥ በተሰላው አመክንዮ መሠረት የኮምፒተርውን እንቅስቃሴ ያመለክታል።

ደረጃ 10 - የፕሮጀክቱ ሥራ?

Image
Image

እና አሁን ፣ የጨዋታ ጊዜ ነው። እስቲ የፕሮጀክቱን ሥራ እንይ።

ይህንን ፕሮጀክት በመገንባት ላይ ችግሮች ካጋጠሙዎት እኔን ለመጠየቅ ነፃነት ይሰማዎ። እባክዎን ቀጥሎ እንድሠራ የሚፈልጓቸውን አዳዲስ ፕሮጀክቶች ይጠቁሙ።

በእውነቱ ከረዳዎት እና ለአስደሳች ፕሮጄክቶች የእኔን ሰርጥ ከተከተሉ አሪፍ ያድርጉ።:)

ከወደዱት ይህንን ቪዲዮ ያጋሩ።

ለደንበኝነት በመመዝገብዎ ደስ ብሎኛል

በማንበብዎ እናመሰግናለን!

ደረጃ 11 ኮድ - ፕሮጀክት ሪፖ

ኮዱ በኮድ ክፍል ውስጥ ሊገኝ በሚችለው በ GitHub ማከማቻ ውስጥ ተጨምሯል።

Rahul24-06/ሮክ-ወረቀት-መቀሶች-https://github.com/Rahul24-06/Rock-Paper-Scissors

የሚመከር: