Как да си направим сами Image Face Detection

dakata__92

Super Moderator
Имам няколко основни въпроса.

1. Как се предполага, че се засича лицето на човек?
- Изображението се преформатира до определена големина и се търси определено отстояние между определени на цвят пиксели ли?

2. Трябва ли да си създам база с данни в някакъв файл, с определени шаблони за откриване и засичане на лицето?
- Трябва ли да засичам по отстояние между централните пиксели на зеницата на очите, за да успея да отчета наличието на лице на снимката?

3. Освен всеизвестният:
https://github.com/mauricesvay/php-facedetection
- код има ли и други подобни класове по темата и ако да къде мога да ги открия? Търся най-простите варянти, от тях после лесно се усложнява системата.
 
1 - http://lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf (това може да помогне - https://github.com/AvishekParajuli/SmartCar_proj/tree/master/HOGUI)

2 - не.

3 - най-вероятно няма да намериш нещо, кеото е 'beyond' proof of concept на пхп, защото е невъзможно да направиш нещо такова на пхп. Ориентирай се, ако ще правиш нещо по-сериозно с image recognition.
 
@dakata според последните теми, които пускаш за интересите, които имаш, смятам, че е време да се преориентираш в езиците. Най-малкото на Python. Последно време нещата, които искаш, биха станали доста по-добре на Python, отколкото да се мъчиш на PHP.

@Fakeheal не съм съгласен, че не можеш. Принципно езика няма значение, въпроса е на кой език колко код ще пишеш и до колко ти стига акъла за дадената задача.
 
http://docs.opencv.org/trunk/d7/d8b/tutorial_py_face_detection.html

https://github.com/mgdm/OpenCV-for-PHP

https://www.xarg.org/project/php-facedetect/

Но ако искаш да се занимаваш с такива и подобни неща, fakeheal е права.

Специално за face recognition има доста библиотеки на javascript, а с пхп не може да правиш доста неща, примерно async или достатъчно добър AI
 
Revelation каза:
@Fakeheal не съм съгласен, че не можеш. Принципно езика няма значение, въпроса е на кой език колко код ще пишеш и до колко ти стига акъла за дадената задача.

Ти може да направиш нещо сносно, както казах proof of concept, но ако по-сложно (част от голяма система/алгоритъм), няма що да си блъскаш главата в стената. PHP е скриптов език и не е предназначен за извършване на високопроизводителни числови операции. PHP 7 е почти 2 пъти по-бърз от предните версии, което дава възможност за поставяне на някакво начало. Но нито имаш някакви библиотеки, нито модули. И някъде бях чела хубава статия, ще цитирам автора:

CPU time is way cheaper than developers' time...
 
Пиша си собствени проекти, поради което ми се и налага да правя такива маневри. Впрочем, когато започнах да програмирам преминах от HTML и CSS към JS, а достигайки така лимита му спрямо желанията ми преминах към php. Явно скоро ще започвам стаилно изучаването на някой полезен език на който да създавам приложенията си доста по-удобно. Както и да е. Относно разпознаването на лица всичко е възможно, стига да се ориентирам правилно. Та явно на PHP няма кой знае какъв избор за кодове да взаимствам идеи и решения на проблеми. :)
 
Ако ти трябва просто начин да разпознаваш лица, то това би трябвало да ти свърши работа: https://onthe.io/learn/en/category/analytic/How-to-detect-face-in-image-with-PHP

Но за да разпознаваш нечие лице, ще ти трябва друг език или решение (да портнеш вече съществуваща библиотека като PHP разширение и да й expose-неш интерфейса / функциите в PHP както е направено с разширението в link-а по-горе).

Ако смяташ да започнеш друг език, препоръчвам D (в частност Vibe.D web framework-a) или по-новите версии на C++ като C++14 или C++17(за по-малко главоболия с управлението на паметта).
 
Ти можеш да си караш с PHP, просто за face recognition ползваш нещо по-подходящо, Python например.
 
Fakeheal каза:
Revelation каза:
@Fakeheal не съм съгласен, че не можеш. Принципно езика няма значение, въпроса е на кой език колко код ще пишеш и до колко ти стига акъла за дадената задача.

Ти може да направиш нещо сносно, както казах proof of concept, но ако по-сложно (част от голяма система/алгоритъм), няма що да си блъскаш главата в стената. PHP е скриптов език и не е предназначен за извършване на високопроизводителни числови операции. PHP 7 е почти 2 пъти по-бърз от предните версии, което дава възможност за поставяне на някакво начало. Но нито имаш някакви библиотеки, нито модули. И някъде бях чела хубава статия, ще цитирам автора:

CPU time is way cheaper than developers' time...

Просто се захванах за думите след "proof of concept", че е невъзможно.

Не само за скорост, но често ще препълваш и заделената памет.
Просто няма нужда да се правят извращения с език, който не е създаден за такава цел.

@eLite C++ е хубаво нещо, но ако иска като цяло да забрави за pointers и такива неща, по-добре на Java да мине, ако не иска да маже паметта и ако иска наистина добър контрол върху многонишковото програмиране.
Другата причина за минаване към Java е, че ще свикне доста по-бързо да работи с Java, отколкото със C++.
Иначе предложението за Python все още си остава. Но ако след това искаш да използваш знанията си в бъдеще Java или C++ са по-подходящи за тази цел. Ако е само за тебе, занимавай се с Python, отново няма да е загуба на време.
 

Горе