1 puntos por GN⁺ 2024-06-24 | 1 comentarios | Compartir por WhatsApp

¡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

 
GN⁺ 2024-06-24
Opiniones de Hacker News
  • IA útil: Esto es lo más útil que he visto en internet en mucho tiempo. Gracias por el gran trabajo.
  • Caída del sombrero: No entiendo cómo el sombrero cae en línea recta a pesar de la hélice y el viento.
  • Amor por el proyecto: Me encantan este tipo de proyectos. Varios estados están impulsando proyectos de ley para exigir marcas de agua en el contenido generado por IA.
  • Uso indebido: Si se usa otra cosa en lugar de un sombrero, podría ser letal.
  • Publicación inesperadamente genial: Al principio pensé que sería algo común, pero fue muy interesante. Parece que el autor superó muchos desafíos y los resolvió como si fuera fácil.
  • Detección de objetos en video: Me pregunto por qué usa Roboflow SaaS. Parece que la Pi no tiene suficiente rendimiento para ejecutar soluciones on-device como Frigate o DOODS.
  • Idea de webcam: Está genial la idea de una webcam que lance cuentas a una fiesta desde un balcón de Bourbon St en Nueva Orleans. Si a alguien le interesa, que deje su contacto.
  • Oportunidad de inversión: Quería participar en esta oportunidad de inversión, pero parece que llegué demasiado tarde.
  • Encontrar la tienda del barrio: A veces se me antoja chicle en la calle. En resumen, usa un producto ligero, una Raspberry Pi, un motor paso a paso de Adafruit, hilo y Roboflow.
  • Video falso: Hay un clip de video en el que el sombrero desaparece cuando cae y luego vuelve a aparecer.