ዝርዝር ሁኔታ:

የ Opencv ፊት መታወቂያ 4 ደረጃዎች
የ Opencv ፊት መታወቂያ 4 ደረጃዎች

ቪዲዮ: የ Opencv ፊት መታወቂያ 4 ደረጃዎች

ቪዲዮ: የ Opencv ፊት መታወቂያ 4 ደረጃዎች
ቪዲዮ: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, ሀምሌ
Anonim
Opencv ፊት ለይቶ ማወቅ
Opencv ፊት ለይቶ ማወቅ

እንደ ስማርት ስልኮች ፣ ብዙ የኤሌክትሮኒክስ መሣሪያዎች ባሉ ብዙ አፕሊኬሽኖች ውስጥ የፊት ለይቶ ማወቅ በአሁኑ ጊዜ በጣም የተለመደ ነገር ነው። ይህ ዓይነቱ ቴክኖሎጂ ብዙ ስልተ ቀመሮችን እና መሳሪያዎችን ወዘተ ያካትታል። እንደ OpenCV ያሉ ቤተ -መጽሐፍት ፣ አሁን እንደ የደህንነት ሥርዓቶች ባሉ የእራስዎ መተግበሪያዎች ላይ የፊት መታወቂያ ማከል ይችላሉ።

በዚህ ፕሮጀክት ውስጥ Raspberry Pi ን በመጠቀም የፊት መታወቂያ እንዴት እንደሚገነቡ እነግርዎታለሁ እናም የሰውን ስም ለማሳየት አርዱዲኖ+ኤልሲድን ተጠቅመናል።

ደረጃ 1: የሚያስፈልጉዎት ነገሮች

የሚያስፈልጉዎት ነገሮች
የሚያስፈልጉዎት ነገሮች

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 lCD ማሳያ

4. RASPI-CAMERA / WEBcam (ለተሻለ ውጤት የድር ካሜራ እመርጣለሁ)

ደረጃ 2: Opencv- መግቢያ እና ጭነት

Opencv- መግቢያ እና ጭነት
Opencv- መግቢያ እና ጭነት

OpenCV (ክፍት ምንጭ የኮምፒውተር ራዕይ ቤተ -መጽሐፍት) በጣም ጠቃሚ ቤተ -መጽሐፍት ነው - እንደ ጽሑፍ ማወቂያ ፣ የፊት ለይቶ ማወቅ ፣ የነገር ማወቂያ ፣ የጥልቅ ካርታዎችን መፍጠር እና የማሽን መማርን የመሳሰሉ ብዙ ጠቃሚ ባህሪያትን ይሰጣል።

ይህ ጽሑፍ የነገር ማወቂያን እና ሌሎች ፕሮጄክቶችን በሚሠሩበት ጊዜ የሚጠቅሙትን በ Raspberry Pi ላይ Opencv ን እና ሌሎች ቤተ -ፍርግሞችን እንዴት እንደሚጭኑ ያሳየዎታል። ከዚያ ፣ የነገር ማወቂያ እና የማሽን መማሪያ ፕሮጀክት በማከናወን የምስል እና የቪዲዮ ሥራዎችን እንዴት ማከናወን እንደሚቻል እንማራለን። በተለይም ፣ በምስል ውስጥ ፊቶችን ለመለየት ቀለል ያለ ኮድ እንጽፋለን።

OpenCV ምንድን ነው?

OpenCV ክፍት ምንጭ የኮምፒተር እይታ እና የማሽን መማሪያ ሶፍትዌር ቤተ -መጽሐፍት ነው። OpenCV በ BSD ፈቃድ ስር ይለቀቃል ለሁለቱም ለአካዳሚክ እና ለንግድ አገልግሎት ነፃ ያደርገዋል። ሲ ++ ፣ ፓይዘን እና ጃቫ በይነገጾች አሉት እና ዊንዶውስ ፣ ሊኑክስ ፣ ማክ ኦኤስ ፣ አይኤስኦ እና Android ን ይደግፋል። OpenCV ለስሌት ውጤታማነት እና በእውነተኛ-ጊዜ ትግበራዎች ላይ ጠንካራ ትኩረት የተነደፈ ነው።

Raspberry Pi ላይ OpenCV ን እንዴት እንደሚጫን?

OpenCV ን ለመጫን Python ን መጫን አለብን። Raspberry Pis በ Python ቀድሞ ስለተጫኑ ፣ OpenCV ን በቀጥታ መጫን እንችላለን።

የእርስዎ Raspberry Pi ወቅታዊ መሆኑን ለማረጋገጥ እና በእርስዎ Raspberry Pi ላይ የተጫኑ ጥቅሎችን ወደ የቅርብ ጊዜ ስሪቶች ለማዘመን ከዚህ በታች ያሉትን ትዕዛዞች ይተይቡ።

sudo apt-get updatesudo apt-get upgrade

በእርስዎ Raspberry Pi ላይ ለ OpenCV የሚያስፈልጉ ጥቅሎችን ለመጫን በተርሚናሉ ውስጥ የሚከተሉትን ትዕዛዞች ይተይቡ።

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore

በእርስዎ Raspberry Pi ላይ OpenCV 3 ን ለ Python 3 ለመጫን የሚከተለውን ትዕዛዝ ይተይቡ ፣ ፒፒ 3 OpenCV ለ Python 3 እንደሚጫን ይነግረናል።

sudo pip3 opencv-contrib-python libwebp6 ን ይጫኑ

አሁን ፣ OpenCV መጫን አለበት።

(ማንኛውም ስህተቶች ከተከሰቱ አሁንም ከዚህ በታች ያለውን አገናኝ በመከተል ማድረግ ይችላሉ

https://www.instructables.com/id/Raspberry-Pi-Hand…)

አሁን አይቸኩሉ በትክክል ተጭኗል ወይም አለመሆኑን ማረጋገጥ አለብን

የእርስዎን opencv ይሞክሩት በ ፦

1. ወደ ተርሚናልዎ ይሂዱ እና “ፓይዘን” ይተይቡ

2. ከዚያ “አስመጣ cv2” ብለው ይተይቡ።

3. ከዚያ “cv2._ ስሪት_” ብለው ይተይቡ።

ከዚያ እነዚህን ቤተ -መጽሐፍት ይጫኑ

pip3 ጫን Python-numpy

pip3 ጫን Python-matplotlib

በምስል ውስጥ ፊቶችን ለመለየት የሙከራ ኮድ

ማስመጣት cv2

faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");

ምስል = cv2.imread ('የእርስዎ ፋይል ስም') #ምሳሌ cv2.imread ('ቤት/pi/ዴስክቶፕ/filename.jpg')

በሥዕሉ ላይ ባሉ ሰዎች ፊት ላይ እንደ ካሬ ሳጥኖች እንደተፈጠሩ ውጤቱን ያገኛሉ።

ደረጃ 3 - በእውነተኛ ሰዓት ቪዲዮ ውስጥ ፊትን መለየት እና ማወቅ

ማስመጣት cv2

ቁጥርን እንደ np ያስመጡ

አስመጣ os

ማስመጣት ተከታታይ

ser = serial. Serial ('/dev/ttyACM0' ፣ 9600 ፣ የእረፍት ጊዜ = 1) #/dev/ttyACM0 በእርስዎ ጉዳይ ላይ ሊለወጥ ይችላል ፣ በአርዲኖው ላይ የሚመረኮዝ

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

መታወቂያ = cv2.face.createLBPHFaceRecognizer ()

ምስሎች =

መለያዎች =

በ os.listdir ('Dataset') ውስጥ ለፋይል ስም:

im = cv2.imread ('የውሂብ ስብስብ/'+የፋይል ስም ፣ 0)

images.append (im)

labels.append (int (filename.split ('.')) [0] [0]))

#የህትመት ፋይል ስም

names_file = ክፍት ('labels.txt')

ስሞች = names_file.read ()። ተከፋፈለ ('\ n')

recognizer.train (ምስሎች ፣ np.array (መለያዎች))

ማተም 'ስልጠና ተከናውኗል።.. '

ቅርጸ -ቁምፊ = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # የቪዲዮ መሣሪያዎ

lastRes =”ቆጠራ = 0

(1):

_ ፣ ፍሬም = ካፕ።

ግራጫ = cv2.cvtColor (ፍሬም ፣ cv2. COLOR_BGR2GRAY)

ፊቶች = faceCascade.detectMultiScale (ግራጫ ፣ 1.3 ፣ 5)

ቁጥር+= 1

ለ (x ፣ y ፣ w ፣ h) በፊቶች

cv2.አራት ማዕዘን (ፍሬም ፣ (x ፣ y) ፣ (x+w ፣ y+h) ፣ (255 ፣ 0 ፣ 0) ፣ 2)

ቢቆጠር> 20: res = ስሞች [recognizer.predict (ግራጫ [y: y+h, x: x+w])-1]

ዳግም ከሆነ! = lastRes:

lastRes = res

lastRes ን ያትሙ

ser.write (lastRes)

ቁጥር = 0

ሰበር

cv2. ማሳያ ('ፍሬም' ፣ ፍሬም)

k = 0xFF & cv2. ይጠብቁ ቁልፍ (10)

k == 27 ከሆነ

ሰበር

ካፕ። መልቀቅ ()

ser.close ()

cv2. DestroyAllWindow ()

ደረጃ 4 - ኮዱን ማስኬድ

ኮዱን ማስኬድ
ኮዱን ማስኬድ

1. በቀደመው ደረጃ የተያያዙትን ፋይሎች ያውርዱ

2. ግራጫ ፎቶዎችዎን (6 ምስሎች/ ናሙናዎች…..) ወደ የውሂብ ስብስብ አቃፊዎ ይቅዱ

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (ለተጨማሪ ክፍት የውሂብ ስብስብ አቃፊ የውሂብ ስብስብ ምስል ቁጥር)

2. ብራድ ፒት -2_1 ፣ 2_2 ፣ 2_3 ፣ 2_4 ፣ 2_5 ፣ 2_6

3. ሊዮ -3_1 ፣ 3_2 ፣ 3_3 ፣ 3_4 ፣ 3_5 ፣ 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

ከላይ እንደተጠቀሰው ለተለያዩ ሰዎች መለያዎችን ማከል ይችላሉ ፣

ስለዚህ ፓይው በ 1_1 ፣ 1_2 ፣ 1_3 ፣ 1_4 ፣ 1_5 ፣ 1_6 መካከል ማንኛውንም ፊት ከለየ ፣ እንደ ቶም ክሩዝ የሚል ስያሜ ተሰጥቶታል ፣ ስለዚህ እባክዎን ፎቶዎችን በሚሰቅሉበት ጊዜ ይጠንቀቁ ………………

እና ከዚያ የእርስዎን አርዱኢኖን ከእርስዎ እንጆሪ ፒ ጋር ያገናኙት እና በ main.py codeer = serial. Serial ('/dev/ttyACM0' ፣ 9600 ፣ የጊዜ ማብቂያ = 1) ውስጥ ለውጦችን ያድርጉ 3. ሁሉንም የወረዱ ፋይሎች (main.py ፣ የውሂብ ስብስብ አቃፊ), haarcascade_frontalface_default.xml በአንድ አቃፊ ውስጥ።)

3. አሁን Raspi-terminal ኮድዎን በ “sudo Python main.py” ያሂዱ።

የሚመከር: