¡Dejemos de hacer "window shopping" y empecemos a hacer "window shopping"!
Cómo dejar caer cosas usando IA
- Objetivo: operar un servicio que use IA para dejar caer gorras por la ventana y entregárselas a los ciudadanos de Nueva York.
- Lo necesario: Raspberry Pi, motor paso a paso de Adafruit, hilo, Roboflow AI y un producto ligero (por ejemplo, una gorra con hélice).
Abrir la ventana
- Problema: la ventana solo se abría unas 4 pulgadas.
- Solución: se resolvió buscando en Google una llave compatible con la ventana.
Elegir la gorra
- Condiciones: una gorra que no lastime a nadie al caer y que no interfiera con el tráfico.
- Elección: una gorra con hélice, que simboliza el futuro y cae de forma elegante.
Mecanismo de caída
- Configuración: uso de Raspberry Pi y un motor paso a paso.
- Método: enrollar un hilo en el motor paso a paso para moverlo poco a poco.
- Código: código de caída escrito en un archivo Python.
import time
import board
import digitalio
enable_pin = digitalio.DigitalInOut(board.D18)
coil_A_1_pin = digitalio.DigitalInOut(board.D4)
coil_A_2_pin = digitalio.DigitalInOut(board.D17)
coil_B_1_pin = digitalio.DigitalInOut(board.D23)
coil_B_2_pin = digitalio.DigitalInOut(board.D24)
enable_pin.direction = digitalio.Direction.OUTPUT
coil_A_1_pin.direction = digitalio.Direction.OUTPUT
coil_A_2_pin.direction = digitalio.Direction.OUTPUT
coil_B_1_pin.direction = digitalio.Direction.OUTPUT
coil_B_2_pin.direction = digitalio.Direction.OUTPUT
enable_pin.value = True
def forward(delay, steps):
i = 0
while i in range(0, steps):
setStep(1, 0, 1, 0)
time.sleep(delay)
setStep(0, 1, 1, 0)
time.sleep(delay)
setStep(0, 1, 0, 1)
time.sleep(delay)
setStep(1, 0, 0, 1)
time.sleep(delay)
i += 1
def setStep(w1, w2, w3, w4):
coil_A_1_pin.value = w1
coil_A_2_pin.value = w2
coil_B_1_pin.value = w3
coil_B_2_pin.value = w4
forward(5, int(512))
IA
- Objetivo: detectar en tiempo real si hay una persona debajo de la ventana.
- Método: analizar video en tiempo real mediante una webcam y comprobar si hay una persona en una ubicación específica.
- Modelo: creación de un modelo de detección de objetos usando Roboflow.
- Código: código de detección y caída escrito en un archivo Python.
import cv2
import time
import paramiko
from inference_sdk import InferenceHTTPClient
CLIENT = InferenceHTTPClient(api_url="https://detect.roboflow.com", api_key="API_KEY")
def ssh_execute(host, port, username, password, command):
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.WarningPolicy)
try:
client.connect(host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command(command)
print(stdout.read().decode().strip())
if stderr.read().decode().strip():
print('Error:', stderr)
finally:
client.close()
video = cv2.VideoCapture(0)
consec_detections = 0
while True:
ret, frame = video.read()
result = CLIENT.infer(frame, model_id="drop-of-a-a-hat/2")
if 'predictions' in result and len(result['predictions']) > 0:
consec_detections += 1
else:
consec_detections = 0
if consec_detections >= 3:
ssh_execute('raspberry.local', 22, 'pi', 'raspberry', 'python3 dropHat.py')
consec_detections = 0
time.sleep(1)
La gran visión
- Visión: un mundo en el que, mientras caminas por la ciudad de Nueva York, todo lo que necesitas cae desde una ventana.
- Objetivo: consolidarse como el primer caso de "Window Shopping".
La opinión de GN⁺
- Lo interesante: presenta un modelo de negocio creativo al combinar IA e IoT.
- Consideraciones para la adopción: hay que revisar con suficiente anticipación la estructura de las ventanas y los temas de seguridad.
- Desafío técnico: la precisión del modelo de IA y el rendimiento del procesamiento en tiempo real son clave.
- Proyecto similar: podría ampliarse como un concepto parecido al de los servicios de entrega con drones.
- Impacto social: puede aumentar la conveniencia de la vida urbana y, al mismo tiempo, crear una nueva forma de comercio.
1 comentarios
Opiniones de Hacker News