WhatsAppComputerVision es un proyecto chatbot de WhatsApp que tiene como opciones de tecnicas de procesamiento de imagenes y vision artificial. Se desarrollo con el lenguaje javascript usando la libreria whatsapp-web.js desarrollada por Pedro S. Lopez
Para la instalacion de WhatsAppComputerVision se requiere de :
- Editor de texto ( Visual Studio Code )
- Node (v12.20.1)
- npm (v6.14.10)
- git
Una vez tengamos listo lo anterior, instalamos el proyecto. Abrimos el GitBash (click derecho sobre el escritorio) y aplicamos los siguientes comandos.
mkdir ./ejemplo
cd ./ejemplo
git clone https://github.com/edwinml148/WhatsAppComputerVision
cd ./WhatsAppComputerVision
npm install
code .
Para usar el chatbot se necesita de un usuario de WhatsApp y un inicio de sesion. Una vez estemos en el Visual Studio Code abrimos el terminal gitbash y aplicamos el comando node app.js
Iniciamos session con nuestro dispositivo con ese QR. Inmediatamente observaremos que se apertura una session en un ordenador (Mac OS) , esto es una caracteristica de whatsapp-web.js
. Veremos tambien que se creo una carpeta .wwebjs_auth
aqui se encuentra almacenada la session de WhatsApp. Se recomienda no compartir dicho archivo ya que se podria abrir tu session desde otro ordenador.
Para le procesamiento de las imagenes se uso el packete openCV.js
y jimp
. Y para la lectura de las imagenes usamos los modulo fs
y jpeg
. Las opciones del chatbot son:
La dilatacion es una operacion morfologica que en imagenes en escala de grises amplifica las intensidades cercanas al 255 (Color Blanco).
La operacion de Borde usa el algoritmo de Canny , el cual detecta los pixeles donde hay variaciones de intensidad reemplazandolo por la intensidad 255 (Blanco) y los demas dejandolos con la intensidad 0 (Negro).
La operacion de Gray convierte una imagen RGB en escala de grises
La operacion Face Detection usa un clasificador pre-entrenado HaarCascade y el algoritmo de detectMultiScale. Para la deteccion de rostros.
Bien nuestro Chatbot ya esta funcionando en local , pero no queremos depender de una computadora para que este funcione y mas importante aun, queremos que esté activo 24/7. Para lograrlo debemos deployar nuestro proyecto. Para eso tenemos opciones como AWS , Azure , Heroku , Render entre otras. Para el desarrollo de este proyecto usaremos Heroku por su facilidad en el deploy y su explicacion.
Para comenzar necesitas crearte un cuenta en Heroku.Por fines didacticos usaremos los comandos CLI. Para que la session se mantenga activa debemos tener primero el archivo .wwebjs_auth
es decir debimos haber escaneado el QR antes del deploy.
- Creamos la App en Heroku.
- Asignamos el nombre y la region
- Segimos los pasos indicados en Install the Heroku CLI ( Estos pasos los aplicas en el terminal de gitbash de tu proyecto)
- Ahora nos dirigimos a la vista de settings. Y cargamos el Buildpacks de puppeteer ( Esto debido a que internamente whatsapp-web.js lo usa ) la ruta es : https://github.com/jontewks/heroku-buildpack-puppeteer-firefox
- Por ultimo nos dirigimos a la vista Resources, y activamos el Dyno worker ( Con esto se mantendra 24/7 activo tu chatbot ).
- Construir front-ted para cargar el inicio de session
- Añadir mas opciones al chatbot
- Utilizar tensorflow.js para utilizar modelos de computer vision mas robustos.
- Añadir una base de datos para registrar la interaccion de los usuarios.