Vamos parar de fazer "window shopping" e começar a fazer "window shopping"!
Como fazer dropping com IA
- Objetivo: operar um serviço que usa IA para deixar chapéus caírem da janela e entregá-los aos cidadãos de Nova York.
- Itens necessários: Raspberry Pi, motor de passo da Adafruit, barbante, Roboflow AI, produto leve (ex.: chapéu com hélice).
Abrindo a janela
- Problema: a janela só abria cerca de 4 polegadas.
- Solução: resolveu procurando no Google a chave certa para a janela.
Escolha do chapéu
- Condições: um chapéu que não machuque ninguém ao cair e não atrapalhe o trânsito.
- Escolha: o chapéu com hélice, que simboliza o futuro e cai de forma bonita.
Mecanismo de dropping
- Configuração: uso de Raspberry Pi e motor de passo.
- Método: enrolar o barbante no motor de passo e movê-lo aos poucos.
- Código: código de dropping escrito em arquivo 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 em tempo real se há uma pessoa embaixo da janela.
- Método: analisar o vídeo da webcam em tempo real e verificar se há uma pessoa em uma posição específica.
- Modelo: criação de modelo de detecção de objetos com Roboflow.
- Código: código de detecção e dropping escrito em arquivo 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)
A grande visão
- Visão: um mundo em que, ao caminhar por Nova York, tudo de que você precisa cai das janelas.
- Objetivo: se estabelecer como o primeiro caso de "Window Shopping".
Opinião do GN⁺
- Ponto interessante: combina IA e IoT para apresentar um modelo de negócio criativo.
- Considerações para adoção: é preciso revisar com antecedência a estrutura da janela e as questões de segurança.
- Desafio técnico: a precisão do modelo de IA e o desempenho em tempo real são importantes.
- Projeto semelhante: há potencial de expansão para um conceito parecido com serviços de entrega por drone.
- Impacto social: pode aumentar a conveniência da vida urbana e, ao mesmo tempo, criar uma nova forma de comércio.
1 comentários
Comentários do Hacker News