ਬਹੁਤ ਸਾਰੇ ਵਿਅਕਤੀ ਪਛਾਣ ਪ੍ਰਣਾਲੀਆਂ ਹਨ ਜੋ ਲੋਕਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਦਸਤਖਤਾਂ, ਉਂਗਲਾਂ ਦੇ ਨਿਸ਼ਾਨ, ਆਵਾਜ਼, ਹੱਥ ਦੀ ਜਿਓਮੈਟਰੀ, ਚਿਹਰਾ ਪਛਾਣ, ਆਦਿ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਕੋਈ ਚਿਹਰਾ ਪਛਾਣ ਪ੍ਰਣਾਲੀ ਨਹੀਂ ਹੈ।
ਚਿਹਰਾ ਪਛਾਣ ਪ੍ਰਣਾਲੀਆਂ ਦੀ ਵਰਤੋਂ ਨਾ ਸਿਰਫ਼ ਸੁਰੱਖਿਆ ਉਦੇਸ਼ਾਂ ਲਈ ਜਨਤਕ ਥਾਵਾਂ 'ਤੇ ਲੋਕਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ, ਸਗੋਂ ਦਫ਼ਤਰਾਂ ਅਤੇ ਸਕੂਲਾਂ ਵਿੱਚ ਹਾਜ਼ਰੀ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਵੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ, ਅਸੀਂ ESP32-CAM ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਚਿਹਰਾ ਪਛਾਣ ਪ੍ਰਣਾਲੀ ਬਣਾਵਾਂਗੇ, ਜਿਸਨੂੰ ਇੱਕ ਅਣਅਧਿਕਾਰਤ ਵਿਅਕਤੀ ਦੇ ਚਿਹਰੇ ਦੀ ਪਛਾਣ ਕਰਕੇ ESP32-CAM ਸੁਰੱਖਿਆ ਪ੍ਰਣਾਲੀ ਵਜੋਂ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ESP32-CAM ਇੱਕ ਬਹੁਤ ਛੋਟਾ ਕੈਮਰਾ ਮੋਡੀਊਲ ਹੈ ਜੋ ESP32-S ਚਿੱਪ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ESP32-CAM ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਅਸੀਂ ਕਿਸੇ ਵੀ ਗੁੰਝਲਦਾਰ ਪ੍ਰੋਗਰਾਮਿੰਗ ਅਤੇ ਕਿਸੇ ਵੀ ਵਾਧੂ ਭਾਗਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੇ ਬਿਨਾਂ ਇੱਕ ਚਿਹਰਾ ਪਛਾਣ ਪ੍ਰਣਾਲੀ ਬਣਾ ਸਕਦੇ ਹਾਂ।


AI-ਥਿੰਕਰ ESP32-CAM ਮੋਡੀਊਲ ਵਿੱਚ ਇੱਕ ESP32-S ਚਿੱਪ, ਇੱਕ ਅਲਟਰਾ-ਸਮਾਲ OV2640 ਕੈਮਰਾ ਅਤੇ ਇੱਕ ਮਾਈਕ੍ਰੋ SD ਕਾਰਡ ਸਲਾਟ ਹੈ। ਮਾਈਕ੍ਰੋ SD ਕਾਰਡ ਸਲਾਟ ਦੀ ਵਰਤੋਂ ਕੈਮਰੇ ਤੋਂ ਲਈਆਂ ਗਈਆਂ ਤਸਵੀਰਾਂ ਜਾਂ ਫਾਈਲਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ESP32-CAM ਮੋਡੀਊਲ ਨੂੰ iot ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਦਫਤਰਾਂ, ਸਕੂਲਾਂ ਅਤੇ ਹੋਰ ਨਿਜੀ ਖੇਤਰਾਂ ਵਿੱਚ ਇੱਕ ਚਿਹਰਾ ਖੋਜ ਪ੍ਰਣਾਲੀ ਦੇ ਤੌਰ 'ਤੇ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਨਾਲ ਹੀ ਵਾਇਰਲੈੱਸ ਨਿਗਰਾਨੀ, QR ਕੋਡ ਵਾਇਰਲੈੱਸ ਪਛਾਣ, ਅਤੇ ਕਈ ਹੋਰ ਆਈਓਟੀ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ।
ESP32-CAM ਮੋਡੀਊਲ ESP-IDF ਜਾਂ Arduino IDE ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰੋਗਰਾਮ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ESP32-CAM ਮੋਡੀਊਲ ਵਿੱਚ ਬਾਹਰੀ ਹਾਰਡਵੇਅਰ ਨਾਲ ਜੁੜਨ ਲਈ ਕਈ GPIO ਪਿੰਨ ਵੀ ਹਨ। ESP32-CAM ਵਿੱਚ ਇੱਕ USB ਕਨੈਕਟਰ ਨਹੀਂ ਹੈ, ਇਸਲਈ ਮੋਡੀਊਲ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਇੱਕ FTDI ਬੋਰਡ ਦੀ ਲੋੜ ਹੈ।


ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ:
ਸਭ ਤੋਂ ਛੋਟਾ 802.11b/g/n Wi-Fi BT SoC ਮੋਡੀਊਲ
ਘੱਟ ਪਾਵਰ 32-ਬਿੱਟ CPU ਜੋ ਐਪਲੀਕੇਸ਼ਨ ਪ੍ਰੋਸੈਸਰਾਂ ਦੀ ਸੇਵਾ ਵੀ ਕਰ ਸਕਦਾ ਹੈ
160MHz ਕਲਾਕ ਸਪੀਡ ਤੱਕ, 600 DMIPS ਤੱਕ ਏਕੀਕ੍ਰਿਤ ਕੰਪਿਊਟਿੰਗ ਪਾਵਰ
ਬਿਲਟ-ਇਨ 520 KB SRAM, ਬਾਹਰੀ 4MPSRAM
UART/SPI/I2C/PWM/ADC/DAC ਦਾ ਸਮਰਥਨ ਕਰੋ
ਬਿਲਟ-ਇਨ ਫਲੈਸ਼ ਦੇ ਨਾਲ OV2640 ਅਤੇ OV7670 ਕੈਮਰਿਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ
ਚਿੱਤਰ ਵਾਈ-ਫਾਈ ਅੱਪਲੋਡ ਦਾ ਸਮਰਥਨ ਕਰੋ
TF ਕਾਰਡ ਸਹਾਇਤਾ
ਮਲਟੀਪਲ ਸਲੀਪ ਮੋਡਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ
ਏਮਬੈਡਡ Lwip ਅਤੇ FreeRTOS
STA/AP/STA+AP ਓਪਰੇਸ਼ਨ ਮੋਡ ਦਾ ਸਮਰਥਨ ਕਰੋ
ਸਮਾਰਟ ਕੌਂਫਿਗ/ਏਅਰਕਿੱਸ ਤਕਨਾਲੋਜੀ ਸਮਰਥਿਤ ਹੈ
ਸੀਰੀਅਲ ਪੋਰਟਾਂ (FOTA) ਉੱਤੇ ਸਥਾਨਕ ਅਤੇ ਰਿਮੋਟ ਫਰਮਵੇਅਰ ਅੱਪਗਰੇਡਾਂ ਲਈ ਸਮਰਥਨ
ਨਿਰਧਾਰਨ:
SPI ਫਲੈਸ਼: ਡਿਫੌਲਟ 32Mbit ਹੈ
ਮੈਮੋਰੀ: 520KB SRAM + 4M PSRAM
TF ਕਾਰਡ ਸਹਾਇਤਾ: ਅਧਿਕਤਮ. 4ਜੀ
ਸਮਰਥਿਤ ਇੰਟਰਫੇਸ: UART, SPI, I2C, PWM
ਚਿੱਤਰ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ: JPEG, BMP, ਸਲੇਟੀ ਸਕੇਲ
IO ਪੋਰਟ: 9
ਪਾਵਰ ਸਪਲਾਈ ਸੀਮਾ: 5V
ਲੋੜੀਂਦਾ ਹਿੱਸਾ
ESP32-CAM
FTDI ਪ੍ਰੋਗਰਾਮਰ
ਸਰਕਟ ਯੋਜਨਾਬੱਧ ਚਿੱਤਰ
ESP32 CAM ਸੁਰੱਖਿਆ ਕੈਮਰਾ ਬਣਾਉਣ ਲਈ, ਸਾਨੂੰ ਇਸਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰਨ ਲਈ ਸਿਰਫ਼ ESP32 ਕੈਮਰਾ ਮੋਡੀਊਲ ਅਤੇ FTDI ਪ੍ਰੋਗਰਾਮਰ ਦੀ ਲੋੜ ਹੈ।


ESP32-CAM ਵਿੱਚ ਇੱਕ USB ਕਨੈਕਟਰ ਨਹੀਂ ਹੈ, ਇਸਲਈ ਤੁਹਾਨੂੰ ESP32-CAM ਵਿੱਚ ਕੋਡ ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਇੱਕ FTDI ਪ੍ਰੋਗਰਾਮਰ ਦੀ ਲੋੜ ਹੈ, ਜਿਵੇਂ ਕਿ ਉੱਪਰ ਚਿੱਤਰ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ। ESP32 ਦੇ Vcc ਅਤੇ GND ਪਿੰਨ FTDI ਬੋਰਡ ਦੇ Vcc ਅਤੇ GND ਪਿੰਨ ਨਾਲ ਜੁੜੇ ਹੋਏ ਹਨ। ESP32 ਦੇ Tx ਅਤੇ Rx FTDI ਬੋਰਡ ਦੇ Rx ਅਤੇ Tx ਨਾਲ ਜੁੜੇ ਹੋਏ ਹਨ।
ਨੋਟ: ਕੋਡ ਨੂੰ ਅੱਪਲੋਡ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਗਰਾਊਂਡ IO0. IO0 ਇਹ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਕਿ ESP32 ਬਲਿੰਕਿੰਗ ਮੋਡ ਵਿੱਚ ਹੈ ਜਾਂ ਨਹੀਂ। ਜਦੋਂ GPIO 0 GND ਨਾਲ ਕਨੈਕਟ ਹੁੰਦਾ ਹੈ, ESP32 ਬਲਿੰਕਿੰਗ ਮੋਡ ਵਿੱਚ ਹੁੰਦਾ ਹੈ।

ESP32 ਦੀ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਮੈਂ FTDI ਬੋਰਡ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਅਤੇ 7805 ਰੈਗੂਲੇਟਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੋਡੀਊਲ ਨੂੰ 3.3V ਪਾਵਰ ਸਪਲਾਈ ਨਾਲ ਜੋੜਿਆ। ESP32 ਕੈਮ ਵੀਡੀਓ ਸਟ੍ਰੀਮ ਲਈ ਸੈਟਿੰਗਾਂ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਹਨ:

Arduino IDE 'ਤੇ ESP32 ਬੋਰਡ ਸਥਾਪਿਤ ਕਰੋ
ਇੱਥੇ ESP32-CAM ਨੂੰ Arduino IDE ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਗਿਆ ਹੈ। ਅਜਿਹਾ ਕਰਨ ਲਈ, ਸਾਨੂੰ Arduino IDE 'ਤੇ ESP32 ਪਲੱਗ-ਇਨ ਇੰਸਟਾਲ ਕਰਨਾ ਹੋਵੇਗਾ।
ਆਪਣੇ Arduino IDE ਵਿੱਚ ESP32 ਬੋਰਡ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਲਈ, ਫਾਈਲ ਤਰਜੀਹਾਂ 'ਤੇ ਜਾਓ


ਹੁਣ ਹੇਠਾਂ ਦਿੱਤੇ ਲਿੰਕ ਨੂੰ ਕਾਪੀ ਕਰੋ ਅਤੇ ਇਸਨੂੰ "ਵਧੀਕ ਬੋਰਡ ਮੈਨੇਜਰ URLs" ਖੇਤਰ ਵਿੱਚ ਪੇਸਟ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ। ਫਿਰ, ਓਕੇ ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ:

ਹੁਣ ਬੋਰਡ ਆਫ਼ ਟੂਲਸ, ਬੋਰਡ ਮੈਨੇਜਰ ਨੂੰ

ਬੋਰਡ ਮੈਨੇਜਰ ਵਿੱਚ ESP32 ਦੀ ਖੋਜ ਕਰੋ ਅਤੇ "ESP32 by Espressif Systems" ਨੂੰ ਸਥਾਪਿਤ ਕਰੋ।

ESP32 ਕੈਮਰਾ ਵੈੱਬ ਸਰਵਰ ਕੋਡ
ਸਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ESP32 ਕੈਮ ਵੀਡੀਓ ਸਟ੍ਰੀਮਿੰਗ ਅਤੇ ਚਿਹਰੇ ਦੀ ਪਛਾਣ ਤੋਂ ਇੱਕ ਨਮੂਨਾ ਕੋਡ ਹੈ। "ਫਾਇਲ" ਉਦਾਹਰਨਾਂ "ESP32" ਕੈਮਰਾ ਵਰਤ ਕੇ ESP32 ਉਦਾਹਰਨ ਖੋਲ੍ਹੋ, ਫਿਰ CameraWebServer ਉਦਾਹਰਨ ਖੋਲ੍ਹੋ।

ਕੋਡ ਅੱਪਲੋਡ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਹਾਨੂੰ ਆਪਣਾ Wi-Fi ਨਾਮ ਅਤੇ ਪਾਸਵਰਡ ਦਰਜ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।
const char* ssid = "ਵਾਈਫਾਈ ਨਾਮ";
const char* Password = "ਪਾਸਵਰਡ";
ਫਿਰ ESP ਕੈਮਰਾ ਮੋਡੀਊਲ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। ਕੋਡ ਵਿੱਚ, ਉਹ 5 ਕੈਮਰਾ ਮੋਡੀਊਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਨ, ਇਸਲਈ "CAMERA_MODEL_AI_THINKER" ਨੂੰ ਅਣਕਮੇਂਟ ਕਰੋ ਅਤੇ ਬਾਕੀ ਬਚੇ ਮੋਡਿਊਲਾਂ 'ਤੇ ਟਿੱਪਣੀ ਕਰੋ।
ਹੁਣ ਕੋਡ ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਤਿਆਰ ਹੈ।
ਕੋਡ ਅੱਪਲੋਡ ਕਰਨ ਲਈ, FDTI ਬੋਰਡ ਨੂੰ ਆਪਣੇ ਲੈਪਟਾਪ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਅਤੇ ਆਪਣੇ ਬੋਰਡ ਦੇ ਤੌਰ 'ਤੇ "ESP32 Wrover Module" ਨੂੰ ਚੁਣੋ। ਨਾਲ ਹੀ, ਇਸ ਚਿੱਤਰ ਦੇ ਆਧਾਰ 'ਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਬਦਲੋ:

ਕੋਡ ਅੱਪਲੋਡ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ESP32 ਰੀਸੈਟ ਬਟਨ ਨੂੰ ਦਬਾਓ ਅਤੇ ਫਿਰ ਅੱਪਲੋਡ ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
ਨੋਟ: ਜੇਕਰ ਤੁਹਾਨੂੰ ਕੋਡ ਅੱਪਲੋਡ ਕਰਨ ਦੌਰਾਨ ਕੋਈ ਗਲਤੀ ਆਉਂਦੀ ਹੈ, ਤਾਂ ਜਾਂਚ ਕਰੋ ਕਿ IO0 GND ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ ਅਤੇ ਤੁਸੀਂ ਟੂਲਸ ਮੀਨੂ ਵਿੱਚ ਸਹੀ ਸੈਟਿੰਗ ਚੁਣੀ ਹੈ।
ਕੋਡ ਅੱਪਲੋਡ ਕਰਨ ਤੋਂ ਬਾਅਦ IO0 ਅਤੇ GND ਪਿੰਨਾਂ ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰੋ। ਫਿਰ ਸੀਰੀਅਲ ਮਾਨੀਟਰ ਨੂੰ ਖੋਲ੍ਹੋ ਅਤੇ ਬੌਡ ਰੇਟ ਨੂੰ 115200 ਵਿੱਚ ਬਦਲੋ। ਫਿਰ ESP32 ਰੀਸੈਟ ਬਟਨ ਨੂੰ ਦਬਾਓ ਅਤੇ ਇਹ ਹੇਠਾਂ ਦਰਸਾਏ ਅਨੁਸਾਰ ਸੀਰੀਅਲ ਮਾਨੀਟਰ ਉੱਤੇ ESP IP ਐਡਰੈੱਸ ਅਤੇ ਪੋਰਟ ਨੰਬਰ ਪ੍ਰਿੰਟ ਕਰੇਗਾ।

ਹੁਣ ਕੈਮਰਾ ਸਟ੍ਰੀਮ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ, ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ 'ਤੇ ਨੈਵੀਗੇਟ ਕਰੋ ਅਤੇ ਆਪਣਾ ESP IP ਪਤਾ ਦਾਖਲ ਕਰੋ। ਇਹ ਤੁਹਾਨੂੰ ਸਟ੍ਰੀਮਿੰਗ ਮੀਡੀਆ ਪੇਜ 'ਤੇ ਲੈ ਜਾਵੇਗਾ। ਇੱਕ ESP32 ਕੈਮ ਵੀਡੀਓ ਸਟ੍ਰੀਮ ਸ਼ੁਰੂ ਕਰਨ ਲਈ, ਪੰਨੇ ਦੇ ਹੇਠਾਂ "ਸਟਾਰਟ ਸਟ੍ਰੀਮਿੰਗ" ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।

ਤੁਸੀਂ ਸਟ੍ਰੀਮਿੰਗ ਪੰਨੇ 'ਤੇ "ਰੈਜ਼ੋਲੂਸ਼ਨ" ਨੂੰ ਬਦਲ ਕੇ ਸਟ੍ਰੀਮਿੰਗ ਗੁਣਵੱਤਾ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ "Get Still" ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਵੀ ਤਸਵੀਰ ਨੂੰ ਕਲਿੱਕ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਇਸ ਕੋਡ ਵਿੱਚ ਤਸਵੀਰ ਨੂੰ ਸੇਵ ਕਰਨ ਦਾ ਵਿਕਲਪ ਨਹੀਂ ਹੈ।
ਵੀਡੀਓ ਸਟ੍ਰੀਮ ਦੀ ਜਾਂਚ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਹੁਣ ਅਸੀਂ ESP32 ਕੈਮ ਫੇਸ ਡਿਟੈਕਸ਼ਨ ਅਤੇ ਮਾਨਤਾ ਫੰਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਾਂਗੇ। ਸੈਟਿੰਗਾਂ ਤੋਂ ਚਿਹਰੇ ਦੀ ਪਛਾਣ ਅਤੇ ਖੋਜ ਨੂੰ ਚਾਲੂ ਕਰੋ:


ਪਹਿਲਾਂ ਚਿਹਰਾ ਪਛਾਣ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਆਪਣਾ ਚਿਹਰਾ ਰਜਿਸਟਰ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਤੁਸੀਂ "ਰਜਿਸਟਰ ਫੇਸ" ਵਿਕਲਪ 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਨਵੇਂ ਚਿਹਰਿਆਂ ਨੂੰ ਰਜਿਸਟਰ ਕਰ ਸਕਦੇ ਹੋ। ਚਿਹਰੇ ਨੂੰ ਬਚਾਉਣ ਲਈ ਕਈ ਕੋਸ਼ਿਸ਼ਾਂ ਕਰਨੀਆਂ ਪੈਂਦੀਆਂ ਹਨ। ਚਿਹਰੇ ਨੂੰ ਸੇਵ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਇਹ ਚਿਹਰੇ ਨੂੰ ਵਿਸ਼ੇ 0 ਦੇ ਤੌਰ 'ਤੇ ਪਛਾਣ ਲਵੇਗਾ, ਜਿਸ ਨੂੰ ਹੁਣ ਚਿਹਰੇ ਦੀ ਪਛਾਣ ਕਰਕੇ ਸੁਰੱਖਿਆ ਪ੍ਰਣਾਲੀ ਦੇ ਤੌਰ 'ਤੇ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇਸ ਲਈ ਇਸ ਤਰ੍ਹਾਂ ESP ਕੈਮਰਾ ਮੋਡੀਊਲ ਨੂੰ ਵੀਡੀਓ ਸਟ੍ਰੀਮਿੰਗ ਅਤੇ ਚਿਹਰੇ ਦੀ ਪਛਾਣ ਲਈ ਆਸਾਨੀ ਨਾਲ ਕੌਂਫਿਗਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
1TP5 "esp_camera.h" ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ
1TP5 ਸ਼ਾਮਲ ਕਰੋ
// ਚੇਤਾਵਨੀ !! ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ ESP32 Wrover ਮੋਡੀਊਲ ਦੀ ਚੋਣ ਕੀਤੀ ਹੈ,
// ਜਾਂ PSRAM ਸਮਰੱਥ ਵਾਲਾ ਕੋਈ ਹੋਰ ਬੋਰਡ
// ਇੱਕ ਕੈਮਰਾ ਮਾਡਲ ਚੁਣੋ
//#CAMERA_MODEL_WROVER_KIT ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ
//#CAMERA_MODEL_ESP_EYE ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ
//#CAMERA_MODEL_M5STACK_PSRAM ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ
//#CAMERA_MODEL_M5STACK_WIDE ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ
#CAMERA_MODEL_AI_THINKER ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ
1TP5 "camera_pins.h" ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ
const char*ssid = "ਗਲੈਕਸੀ-M20";
const char* ਪਾਸਵਰਡ = "ac312124";
ਅਵੈਧ startCameraServer();
ਅਵੈਧ ਸੈਟਿੰਗਾਂ () {
ਕ੍ਰਮ ਸੰਖਿਆ. ਸਟਾਰਟ (115200);
Serial.setDebugOutput(ਸੱਚਾ);
ਸੀਰੀਅਲ ਨੰਬਰ.println ();
camera_config_t ਸੰਰਚਨਾ;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
pin_href = HREF_GPIO_NUM; config.pin_href = href_gPIo_num;
pin_sscb_sda = SIOD_GPIO_NUM;
pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
// ਵੱਡੇ ਬਫਰਾਂ ਨੂੰ ਪਹਿਲਾਂ ਤੋਂ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਉੱਚ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰੋ
ਜੇਕਰ (psramFound ()) {
config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;
} ਹੋਰ {
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12;
config.fb_count = 1;
}
# ਜੇਕਰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ (CAMERA_MODEL_ESP_EYE)
ਪਿਨਮੋਡ (13, INPUT_PULLUP);
ਪਿਨਮੋਡ(14, INPUT_PULLUP);
ਮਾਮਲੇ ਵਿੱਚ #
// ਕੈਮਰਾ ਸ਼ੁਰੂਆਤ
esp_err_t err = esp_camera_init(&config);
ਜੇਕਰ (ਗਲਤ! = ESP_OK) {
Serial.printf("ਕੈਮਰਾ ਸ਼ੁਰੂਆਤੀ ਅਸਫਲ, ਗਲਤੀ 0x%x", ਗਲਤੀ);
ਪਿੱਛੇ;
}
sensor_t * s = esp_camera_sensor_get();
// ਸ਼ੁਰੂਆਤੀ ਸੈਂਸਰ ਲੰਬਕਾਰੀ ਤੌਰ 'ਤੇ ਫਲਿੱਪ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਰੰਗ ਥੋੜਾ ਸੰਤ੍ਰਿਪਤ ਹੈ
ਜੇਕਰ (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1); // ਇਸਨੂੰ ਵਾਪਸ ਫਲਿਪ ਕਰੋ
s->set_brightness(s, 1); // ਚਮਕ ਨੂੰ ਥੋੜ੍ਹਾ ਵਧਾਓ
s->set_saturation(s, -2); // ਸੰਤ੍ਰਿਪਤਾ ਨੂੰ ਘਟਾਓ
}
// ਉੱਚ ਸ਼ੁਰੂਆਤੀ ਫਰੇਮ ਦਰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਫਰੇਮ ਦਾ ਆਕਾਰ ਘਟਾਓ
s->set_framesize(s, FRAMESIZE_QVGA);
# ਜੇਕਰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ (CAMERA_MODEL_M5STACK_WIDE)
s->set_vflip(s, 1);
s->set_hmirr(s, 1);
ਮਾਮਲੇ ਵਿੱਚ #
WiFi.begin(ssid, ਪਾਸਵਰਡ);
ਅਤੇ (WiFi.status ()! = WL_CONNECTED) {
ਦੇਰੀ (500);
ਸੀਰੀਅਲ.ਪ੍ਰਿੰਟ(".");
}
ਸੀਰੀਅਲ ਨੰਬਰ.println ("");
Serial.println("WiFi ਕਨੈਕਸ਼ਨ");
startCameraServer();
Serial.print("ਕੈਮਰਾ ਤਿਆਰ! 'http://" ਵਰਤੋ);
Serial.print(WiFi.localIP());
Serial.println("' ਜੁੜਨ ਲਈ");
}
ਅਵੈਧ ਲੂਪ () {
// ਆਪਣਾ ਮੁੱਖ ਕੋਡ ਇੱਥੇ ਰੱਖੋ ਅਤੇ ਦੁਹਰਾਓ:
ਦੇਰੀ (10000);
