β³οΈ Π¦Π΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° - ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ Π²Π°Ρ Ρ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ OpenCV. Π£Π²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ.
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΈΠ³ΡΠ°Π΅ΠΌ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ Π·ΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ. ΠΠ»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΎΠ±Π΅ΠΉ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π₯Π°Π°ΡΠ°-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠ·Π½Π°ΠΊ, Π° Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ - ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ², ΡΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ .
Π’Π΅ΠΎΡΠΈΡ
1-ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Ρ?
Β«ΠΠΈΠΊΡΠ΅Π»Ρ - ΡΡΠΎ ΡΠ°ΠΌΠ°Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠΈΡΡΠΎΠ²ΠΎΠΌ ΠΌΠΈΡΠ΅. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠΈΡΡΠΎΠ²Π°Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ, ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΈΠ³ΡΠ° ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ Π±ΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΊΡΡΠ³Π»ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΌΠΈ Β»[1].
ΠΠ»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΡΡΠ΅Π½ΠΊΠ°Ρ ΡΠ΅ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ 8-Π±ΠΈΡΠ½ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0β255 ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ 0 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ, Π° 255 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π΅Π»ΡΠΉ.
Π¦Π²Π΅ΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΡΠ΅Ρ ΠΊΠ°Π½Π°Π»ΠΎΠ² (RGB), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. :
ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ΅Ρ (RGB) ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π».
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΠΈ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ [4].
2- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²?
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² - ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ Π·ΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠ΅ΠΊ, ΡΠΎΠ±Π°ΠΊ ΠΈΠ»ΠΈ Π»ΡΠ΄Π΅ΠΉ) Π² ΡΠΈΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π² ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅ ΠΊΡΡΠ³ΠΈ ΡΠ°ΡΠ½Π΄. ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΊΡΡΠ³ΠΎΠ² ΠΈΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΡ ΡΠΎΡΠΊΠΈ (Ρ. Π. Π¦Π΅Π½ΡΡΠ°). Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½Ρ Β»ΡΠ³Π»Π°ΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π²Π½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π»ΠΈΡΠ°, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π³Π»Π°Π·Π°, Π½ΠΎΡ ΠΈ Π³ΡΠ±Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ²Π΅Ρ ΠΊΠΎΠΆΠΈ ΠΈ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π³Π»Π°Π·Π°ΠΌΠΈ. [ 6]
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π·ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡ, ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅:
2-Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ?
F ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ace - ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π»ΠΈΡΠ° Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, Π²ΠΈΠ΄Π΅ΠΎ, Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅ΡΠ΅β¦ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ (ΡΠ²Π΅ΡΠ° ΠΊΠΎΠΆΠΈ , Π½ΠΎΡ, Π³Π»Π°Π·Π°, ΡΠΎΡβ¦) [8]
ΠΠ΅ΡΠΎΠ΄, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΠΎΠ»ΠΎΠΌ ΠΠΈΠΎΠ»ΠΎΠΉ ΠΈ ΠΠ°ΠΉΠΊΠ»ΠΎΠΌ ΠΠΆΠΎΠ½ΡΠΎΠΌ Π² 2001 [9], Π°ΠΊΡΡΠ°Π»Π΅Π½ ΠΈ Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½ΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π±ΡΠ» ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡ ΠΊΠ°ΠΊ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ , ΡΠ°ΠΊ ΠΈ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ...
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π·Π½Π°ΠΊΠΈ Π₯Π°Π°ΡΠ° - Π½Π°Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΉ ΡΠ΅ΠΌΠ½ΡΡ ΠΈ ΡΠ²Π΅ΡΠ»ΡΡ ΡΡΠ°ΡΡΠΊΠΎΠ². ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅, Π·Π½Π°ΠΊΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΡΠΈ ΡΠΈΠΏΠ°: ΠΊΡΠΎΠΌΠΎΡΠ½ΡΠ΅, Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠ΅ ΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠ΅.
Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ°ΡΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, Π΅ΡΠ»ΠΈ Π·Π½Π°ΠΊΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΠ΅ΠΊ ΠΈ Π½ΠΎΡ ΡΠ²Π΅ΡΠ»Π΅Π΅, ΡΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π³Π»Π°Π·Π°.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΡΡΠΌΠΌΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ΄ Π±Π΅Π»ΡΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ· ΡΡΠΌΠΌΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ΄ ΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ . [11] ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ Π² ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ³Π»Π°ΠΌΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π²ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅. [12]
ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠΈΠΎΠ»Ρ-ΠΠΆΠΎΠ½ΡΠ°:
- ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ;
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ² Π₯Π°Π°ΡΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ Π΅Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ);
- ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ (ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΈΠ»Π΅Π½ΠΈΠ΅) Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π΄Π»Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ;
- ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π² ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΡΡΠΈΠ½Π° ΠΈΠ»ΠΈ Π»ΠΎΠΆΡ;
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΠΈΠΎΠ»Ρ ΠΠΆΠΎΠ½ΡΠ°.
3- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ?
ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π»ΠΈΡΠ° ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π΄ΡΡ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ), Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π»ΠΈΡΠ° Ρ ΡΠ΅ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡ / ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ).
Π‘ΠΏΠΈΡΠΎΠΊ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ:
1- LBPH
2- Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π»ΠΈΡΠ°
3- Π ΡΠ±ΠΎΠ»ΠΎΠ²Ρ
4- SIFT
5- SURF
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡΠ° Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ, Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ LBPH, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΠ°Π½ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ (LBP).
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ²
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° (LBP) ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡ: "Π§ΡΠΎ Π΄Π°Π»ΡΡΠ΅?"
- Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π»ΠΈΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ R (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, R = 8 x 8 = 64 ΠΎΠ±Π»Π°ΡΡΠΈ), ΡΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ LBP.
- ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ LBP, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΠΎΠ΄Π½Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠ°ΠΊ:
ΠΠ΄Π΅ :
n: - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΈΠΊΠ΅ΡΠΎΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ LBP.
m: - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ±ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΠ².
Π° I {β¦} ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ ΡΠΎΡΠ΅Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΡΠΌΡΠ»:
Π³Π΄Π΅ S ΠΈ M - Π΄Π²Π΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ LBP.
ΠΠΎΠΈΡΠΊ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΠΈΠ»ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, Π²ΡΡΠΈΡΠ»ΠΈΠ² Π΅Π²ΠΊΠ»ΠΈΠ΄ΠΎΠ²ΠΎ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ:
ΠΡΠΎ Π²ΡΠ΅ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
a- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ.
b- ΠΡΠΎΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ LBP Π΄Π»Ρ Π½ΠΎΠ²ΡΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
c) ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΡΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ.
d) ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ Π»ΡΡΡΠ΅Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΡΠΈΠΌ Π»ΡΡΡΠΈΠΌ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Python
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΡΠ΅ΡΠΈΠ» Π²ΡΠ±ΡΠ°ΡΡ python Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΅Π³ΠΎ Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ Π·ΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ.
ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
-----------------------------OpenCV--------------------------------- # OpenCV with conda conda install -c conda-forge opencv # Update pip :package manager for Python packages pip install -U pip pip show pip # OpenCV with pippip install opencv-python pip install opencv-contrib-python
# Install pip3 :package manager for Python3 packagessudo apt-get -y install python3-pip
# OpenCV with pip3pip3 install opencv-python pip3 --version
--------------------------Numpy library-----------------------------# With conda conda update conda # update conda
conda install -c anaconda numpy # with pip, pip3pip install numpy
pip3 install numpy
ΠΠΎΠ΄ Python Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Ρ Python ΠΈ OpenCV.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠ΄Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ OpenCV, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π½Π° ΡΡΠ΅Ρ ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ : Python, C ++. ΠΈ Java.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
cascade_file_path = "path for certain cascade file (xml extension)"
face_cascade = cv2.CascadeClassifier(cascade_file_path)
detectMultiScale
-Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π»ΠΈΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π§ΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π»ΠΈΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΅Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ°ΡΠΊΠ°Π΄.
Π€ΡΠ½ΠΊΡΠΈΡ detectMultiScale
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 7 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ 4 Π²Π°ΠΆΠ½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
void cv::CascadeClassifier::detectMultiScale( InputArray image, std::vector< Rect > & objects, double scaleFactor =1.1
, int minNeighbors =3
, int flags =0
, Size minSize =Size()
, Size maxSize =Size()
)
ScaleFactor
- ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠ°ΡΡΡΠ°Π±Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«1,1Β» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° 10%, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ.
minNeighbors
- ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ. Π§Π΅ΠΌ Π²ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ.3~6
- Ρ ΠΎΡΠΎΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ.minSize
- ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ±ΡΠ΅ΠΊΡΡ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ. ΠΠ±ΡΡΠ½ΠΎ[30, 30] is a
ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ.maxSize
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ±ΡΠ΅ΠΊΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ Π½Π΅Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ°ΡΡΠΈΠ² NumPy , Π΅ΡΠ»ΠΈ Π»ΠΈΡΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ. [[X, y, width, height]]
ΠΠ»ΠΈ ΠΏΡΡΡΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΆ, Π΅ΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ. ()
image_path ="absolute or relative path for a given image"
image = cv2.imread(image_path)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(
gray,
scaleFactor= 1.1,
minNeighbors= 4,
minSize=(30, 30)
)
ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π»ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠ΅Ρ ΠΏΡΠ°Π²ΡΠΉ Π³Π»Π°Π· (Π±Π΅Π»ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ) ΠΈ Π»Π΅Π²ΡΠΉ Π³Π»Π°Π· (ΠΆΠ΅Π»ΡΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅:
ΠΠΎΡΠ»Π΅ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π½ΡΡΠΎΠ² Π³Π»Π°Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡ Π½Π° ΡΠ³ΠΎΠ» ΞΈ, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Google [21], Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΠΎΡΡΡ Π΅Π³ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ FaceNet Ρ 98,87 Π΄ΠΎ 99,63.
Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«eyeXdisΒ» (ΡΠΌΠ΅ΠΆΠ½ΡΠΉ) ΠΈ Β«eyeYdisΒ» (ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΉ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
eyeXdis = (lx + w / 2 + lw / 2) - (rx + rw / 2) eyeYdis = (ly + lh / 2) - (ry + rh / 2) angle_rad = np.arctan (eyeYdis / eyeXdis) # convert rad to degree angle_degree = angle_rad * 180 / np.pi
ΠΠΎΡΠ»Π΅ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ³Π»Π° Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Β«warpAffineΒ» ΠΈ Β«getRotationMatrix2DΒ» , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ OpenCV.
# Find the center of the image image_center = tuple(np.array(gray_chunk.shape) / 2)rot_mat = cv2.getRotationMatrix2D(image_center, angle_degree, 1.0) rotated_image = cv2.warpAffine(gray_chunk, rot_mat,gray_chunk.shape, flags=cv2.INTER_LINEAR)
ΠΠ΅ΡΠΎΠ΄ cv2.warpAffine ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
1- ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅: gray_chunk
2-ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ°ΡΡΠΈΡΠ° Π²ΡΠ°ΡΠ΅Π½ΠΈΡ: rot_mat
3-ΠΊΠΎΡΡΠ΅ΠΆ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: gray_chunk.shape
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ (Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ
) Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ (ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ) ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ 50 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π»ΠΈΡ. ΠΠΎΠ·ΠΆΠ΅ ΡΡΠΈ ΠΎΠ±ΡΠ°Π·ΡΡ Π±ΡΠ΄ΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π² ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
recognizer = cv2.face.LBPHFaceRecognizer_create( int radius =1
, int neighbors =8
, int grid_x =8
, int grid_y =8
)
1- Π Π°Π΄ΠΈΡΡ: Β«Π Π°Π΄ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π΄ΠΈΡΡ, ΡΠ΅ΠΌ ΡΠΎΠ²Π½Π΅Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Β». [22]
2- Π‘ΠΎΡΠ΅Π΄ΠΈ: Β«ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅ΠΊ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ 8
ΡΠΎΡΠ΅ΠΊ Π²ΡΠ±ΠΎΡΠΊΠΈ. ΠΠΎΠΌΠ½ΠΈΡΠ΅: ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΡΠ΅ΠΊ Π²Ρ Π²ΠΊΠ»ΡΡΠΈΡΠ΅, ΡΠ΅ΠΌ Π²ΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ Β». [22]
3- Grid_x: Β«ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π΅ΠΊ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ, 8 - ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π² ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡ . Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π΅ΠΊ, ΡΠ΅ΠΌ ΠΌΠ΅Π»ΡΡΠ΅ ΡΠ΅ΡΠΊΠ°, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Β». [22]
4- Grid_y: Β«ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π΅ΠΊ Π² Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, 8 - ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π² ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡ . Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π΅ΠΊ, ΡΠ΅ΠΌ ΠΌΠ΅Π»ΡΡΠ΅ ΡΠ΅ΡΠΊΠ°, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Β». [22]
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π² ΡΠ°ΠΉΠ»Π΅ users_name.txt), ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡ ΠΈ ΠΈΡ ID Π² ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» ΡΠΎΡΠΌΠ°ΡΠ° .yaml, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ (ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅), Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ.
Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ 2 ΡΡΠ΅Π½Π°ΡΠΈΡ:
a- ΡΠ±ΠΎΡ Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
python3 Train.py -v videos/video3.mkv # if you have a pre-recorded #video python3 Train.py -c 0 # 0 is the id of the built-in camera
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΠΎΡΠΈΡ ΠΈΠΌΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°:
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΡΠ΅ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» users_name.txt, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠΌΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ½Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Ρ Π²Π°ΡΠ°:
ΠΠΎΡΠ»Π΅ Π·Π°Ρ Π²Π°ΡΠ° 50 ΠΎΠ±ΡΠ°Π·ΡΠΎΠ², ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΡΠ½Π΅ΡΡΡ ΡΡΠ°ΠΏ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ:
ΡΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» Β«train.YAMLΒ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ - ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ:
b- ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ:
python3 Recognize.py -v videos/video3.mkv # if you have a pre-recorded #video python3 Recognize.py -c 0 # 0 is the id of the built-in camera
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ 100. ΠΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠ°Ρ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΠΈΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΎΠ±ΡΡΠ΅Π½Π½ΠΎΠ΅ Π»ΠΈΡΠΎ. Β«0Β» - ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΊΠΎΠ³Π΄Π° Π»ΠΈΡΠΎ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΡΠΊΠ°Π΄ΠΎΠΌ Π²ΠΎΠ»ΠΎΡ, ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ½Π° ΠΊΠΎΠΆΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΠΌΠΎΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ [8]
Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ [23]:
putText (image, text, coordinates, font type, font scale,color [, pen thickness [, line type [, center of coordinates]]])
ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- ΡΠ°ΠΌΠΊΠ° - ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ;
- ΡΠ΅ΠΊΡΡ - ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ΅;
- ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ - Π½Π°Π±ΠΎΡ ΠΈΠ· Π΄Π²ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΡΠ΅ΠΊΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ (1,5);
- ΡΠΈΠΏ ΡΡΠΈΡΡΠ° - ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ;
- ΠΌΠ°ΡΡΡΠ°Π± ΡΡΠΈΡΡΠ° - ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠΈΡΡΠ° Π² 3 ΡΠ°Π·Π° - ΡΡΠ°Π²ΡΡΠ΅ 2, Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π² 3 ΡΠ°Π·Π° - 0,3;
- ΡΠ²Π΅Ρ - ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· ΡΡΠ΅Ρ ΡΠΈΡΠ΅Π» ΠΎΡ 0 Π΄ΠΎ 255, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΡ ΡΠ²Π΅Ρ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ RGB. ΠΠ΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅Ρ - (0,255,0);
- ΡΠΎΠ»ΡΠΈΠ½Π° ΠΏΠ΅ΡΠ° - Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ;
- ΡΠΈΠΏ Π»ΠΈΠ½ΠΈΠΈ - Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: LINE_8 ΠΏΡΠ½ΠΊΡΠΈΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ ΠΌΠ°Π»Π°Ρ, LINE_4 - ΠΏΡΠ½ΠΊΡΠΈΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ Π±ΠΎΠ»ΡΡΠ°Ρ, LINE_AA - ΡΠ³Π»Π°ΠΆΠ΅Π½Π½Π°Ρ Π»ΠΈΠ½ΠΈΡ;
- ΡΠ΅Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ - Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅ΠΊΡΡΠ° ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π°.
Π’ΠΈΠΏΡ ΡΡΠΈΡΡΠΎΠ²:
- FONT_HERSHEY_SIMPLEX
- FONT_HERSHEY_PLAIN
- FONT_HERSHEY_DUPLEX
- FONT_HERSHEY_COMPLEX
- FONT_HERSHEY_TRIPLEX
- FONT_HERSHEY_COMPLEX_SMALL
- FONT_HERSHEY_SCRIPT_SIMPLEX
- FONT_HERSHEY_SCRIPT_COMPLEX
ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π²ΠΎΠΊΡΡΠ³ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π»ΠΈΡΠ°:
def Draw_Rect(self,Image,face,color): x,y,w,h = face # line 1 : top left corner horizontal line cv2.line(Image, (x, y), (int(x + (w/5)),y), color, 2) # line 2 : top right corner horizontal line cv2.line(Image, (int(x+((w/5)*4)), y), (x+w, y), color, 2) # line 3 : top left corner vertical line cv2.line(Image, (x, y), (x,int(y+(h/5))), color, 2) # line 4 : top right corner vertical line cv2.line(Image, (x+w, y), (x+w, int(y+(h/5))), color, 2) # line 5 : bottom left corner vertical line cv2.line(Image, (x, int(y+(h/5*4))), (x, y+h), color, 2) # line 6 : bottom left corner horizontal line cv2.line(Image, (x, int(y+h)), (x + int(w/5) ,y+h), color,2) # line 6 : bottom right corner horizontal line cv2.line(Image,(x+int((w/5)*4),y+h),(x + w, y + h),color, 2) # line 6 : bottom right corner verticals line cv2.line(Image, (x+w, int(y+(h/5*4))), (x+w, y+h), color, 2)
OpenCV ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
id, confidence = recognizer.predict(gray_scale_face)
ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΡ ΡΠ°ΡΡΡ Π»ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²Π΅ΡΠ½ΡΡΡ Π΅Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ.
Π‘Π²ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
1. ΠΠ°Ρ
Π²Π°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
2. ΠΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΡ Π»ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Π₯Π°Π°ΡΠ°.
3. ΠΠΎΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ³Π»ΠΎΠΌ.
4. ΠΠ±ΡΡΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΌΠ΅ΡΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ FaceRecognizer (train ()).
5. ΠΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΡΠ°Π³ΠΈ Ρ 1 ΠΏΠΎ 4 Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
6. ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅.
7. ΠΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΡ Π»ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Π₯Π°Π°ΡΠ°.
8. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π»ΠΈΡΠ° Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
9. Π’Π΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ FaceRecognizer Prediction (prediction () ) β [id, Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ].
10. ΠΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΡΠ°Π³ΠΈ 6β9 Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠ΅ΡΡΠΎΠ²ΡΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ Π²Π°ΠΆΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΈ ΡΠ΅ΠΊΡΠΎΡΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π·Π΄ΡΠ°Π²ΠΎΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠ΅ΠΊΠ»Π°ΠΌΠ°, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΠΏΠ»Π°ΡΠ΅ΠΆΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Grand View Research, Inc., Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΡΡΠ½ΠΎΠΊ Π±ΠΈΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ 59,31 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π° Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π‘Π¨Π ΠΊ 2025 Π³ΠΎΠ΄Ρ. CAGR 19,5% Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π°. [27]
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½ΠΈΠΆΠ΅:
πΠ»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°, ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ:
[1] Shutterstock, Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Ρ? (2020 Π³.)
[2] Π.ΠΠΈΡΠ°, Π.ΠΠ»ΡΡΡΠΈ ΠΈ Π.ΠΠ΅ΠΎΡΠ³Π°Π½ΡΠΎΠ³Π»Ρ, MATLAB ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½Π΅ (2011 Π³.), MATLAB - ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ²-ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ², ΠΠ»Π°Π²Π°: 23.
[3] Wikiwand, ΠΡΡΠ΅Π½ΠΊΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΡΡ ΡΠ²Π΅ΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
[4] Π. Π₯Π°ΡΠΌΡΡ, ΠΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ²Π΅ΡΠ° ΠΊΠΎΠΆΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°: RGB, YCbCr, HSV (ΠΊΠΎΠ΄ Python), (2020)
[5] Microsoft, Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅: ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ONNX Π² ML.NET (2020 Π³.)
[6] Dasiopoulou, Stamatia, et al. Β« ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π½Π°Π½ΠΈΠΉ . IEEE Transactions on Circuits and Systems for Video Technology 15.10 (2005): 1210β1224.
[7] NAVER Engineering, Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π²ΠΈΠ΄Π΅ΠΎ (2017), ΡΠ»Π°ΠΉΠ΄-5
[8] Π.Π₯Π°ΡΠΌΡΡ, Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΎΠ³Π° ΡΠ΅Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ½Π° (RGB-YCrCb): ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Python ( 2020)
[9] Π. ΠΠΈΠΎΠ»Π° ΠΈ Π. ΠΠΆΠΎΠ½Ρ, Π ΠΎΠ±Π°ΡΡΠ½ΠΎΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (2001), ΠΠ’ΠΠ ΠΠ ΠΠΠΠΠ£ΠΠΠ ΠΠΠΠ«Π Π‘ΠΠΠΠΠΠ ΠΠ Π‘Π’ΠΠ’ΠΠ‘Π’ΠΠΠ Π ΠΠ«Π§ΠΠ‘ΠΠΠΠΠ―Π
[10] Π. ΠΠΌΠΈΠ½ Π§Ρ Π°Π΄ΠΆΡΠΎ, ΠΠ°ΠΌΠ»Π΅Ρ ΠΡΠΌΠ°Ρ, Π. ΠΠ°Π»ΡΠΊ Π ΠΈΠ½Π΄, ΠΡΡΠ°Π± ΠΡ ΠΌΠ΅Π΄ Π¨Π΅ΠΉΡ , Π₯Π°ΠΊ ΠΠ°Π²Π°Π· ΠΈ Π Π°ΡΠ°ΠΊΠ°Ρ Π₯ΡΡΡΠ΅ΠΉΠ½ ΠΡΠ°ΠΉΠ½, ΠΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π₯Π°Π°ΡΠ° (2018), ΠΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΉ ΠΆΡΡΠ½Π°Π» ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
[11] ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠΎΡΠ΄Π²ΠΈΠ½ΡΠ΅Π² ΠΈ ΠΠ±ΠΈΠ΄ Π., ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠΊΠ°Π΄ΠΎΠ² Π₯Π°Π°ΡΠ° (2013).
[12] Π₯Π΅Π»ΡΠ²ΠΈΠ³ ΠΠ΅Π½ΡΠ΅Π½, Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ ΠΠΈΠΎΠ»Ρ-ΠΠΆΠΎΠ½ΡΠ°. P-11 (2008 Π³.), Kongens Lyngby IMM-M.Sc.-2008β93
[13] Π‘ΡΠΈΠ²Π΅Π½ΠΡΡΡΠ΅ΠΌΠ°Π½Ρ, Π½ΠΎ ΠΠ°ΠΊΡ, ΠΠ°ΡΠΊΠ°Π΄Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ².
[14] Π§ΠΆΡΠΎ ΠΠ°Π½, Π¦Π·ΠΈΠ½ΡΡΠ°ΠΎ Π§ΠΆΠ°Π½ ΠΈ ΠΠ°Π²ΠΈΠ½ ΠΠ΅ΡΠΌΠ°, Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΠ½Π΅ΡΠ³Π΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ADC (2015), IEEE Transactions on Biomedical Circuits and Systems
[15] Π.Π‘. ΠΠ°Π΄Π° Π‘Π°Π½Π΄ΠΆΠ°Ρ, ΠΡΡ ΠΠ½Π³Π³ΡΠ°Π΅Π½ΠΈ, ΠΠΈΠΊΠΈ ΠΠ°ΠΊΠ°ΡΠΈΡ, ΠΡΠΈΠΏ ΠΠΆΡΠ°ΡΠ΄ΠΈ ΠΈ ΠΠ°Π΄ΠΈΠ½Π°ΡΡΠ» ΠΡΠ½Π°Π²Π²Π°ΡΠΎ, ΠΠΈΠ·Π°ΠΉΠ½ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΡΠΎΠ±ΠΎΡΠ°, (2017), Π ΠΈΡ. 4. ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°.
[16] Π’ΠΈΠΌΠΎ ΠΡ ΠΎΠ½Π΅Π½, ΠΠ±Π΄Π΅Π½ΡΡ Π₯Π°Π΄ΠΈΠ΄ ΠΈ ΠΠ°ΡΡΠΈ ΠΠΈΠ΅ΡΠΈΠΊΡΠ°ΠΉΠ½Π΅Π½, Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² (2004), P-472
[17] [18] Π. Π₯Π°ΡΠΌΡΡ, Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ, (2020), GitHub
[19] Π’ΠΈΠΌΠΎ ΠΡ ΠΎΠ½Π΅Π½, ΠΠ±Π΄Π΅Π½ΡΡ Π₯Π°Π΄ΠΈΠ΄ ΠΈ ΠΠ°ΡΡΠΈ ΠΠΈΠ΅ΡΠΈΠΊΡΠ°ΠΉΠ½Π΅Π½, Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² (2004), ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΌΠ΅Ρ Π½Π΅ΡΡ ΠΎΠ΄ΡΡΠ²Π° Π΄Π»Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ LBP.p-472.
[20] Π€.ΠΠΎΠΌΠ°ΡΠΊΠΈ, Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ ΠΠΈΠΎΠ»Ρ-ΠΠΆΠΎΠ½ΡΠ° (2012)
[21] ΠΠΌΠΊΠ°Ρ Π. ΠΠ°ΡΡ ΠΈ, ΠΠ½Π΄ΡΠ΅Π° ΠΠ΅Π΄Π°Π»ΡΠ΄ΠΈ ΠΈ ΠΠ½Π΄ΡΡ ΠΠΈΡΡΠ΅ΡΠΌΠ°Π½, ΠΠ»Π°ΠΊΠ°Ρ Deep Face Recognition.
[22] OpenCV, ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° cv :: face :: LBPHFaceRecognizer
[23] OpenCV docs, Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (2011β2014)
[24] OpenCV, ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (2011β2014)
[25] ΠΠ»Π°Π»Π΅ΠΊ, ΠΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π₯Π°Π°ΡΠ°, Github (2013).
[26] Quora, ΠΠ°ΠΊΠΎΠΉ Π»ΡΡΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ Π² OpenCV Python?, (2016)
[27] Π¨Π΅ΡΡΠΈ ΠΠΆΠ΅ΠΉΠΌΡ, ΠΠ±ΡΠ΅ΠΌ ΡΡΠ½ΠΊΠ° Π±ΠΈΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΊ 2025 Π³ΠΎΠ΄Ρ ΡΠΎΡΡΠ°Π²ΠΈΡ 59,31 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π° Π΄ΠΎΠ»Π»Π°ΡΠΎΠ²: Grand View Research, Inc. (2019)