You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

68 lines
1.9 KiB

#!/usr/bin/env python3
import cv2
import requests
import telebot
import sys
sys.path.append("bot_config")
import time
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
import bot_config as i
chat_id = i.chat_id
dir_loc = i.dir_loc
bot_token = i.bot_token
codeai_server = i.codeai_server
bot = telebot.TeleBot(bot_token)
def find_human(event):
image_data = open(event.src_path, "rb").read()
response = requests.post(f"{codeai_server}/v1/vision/detection",
files={"image":image_data}).json()
for object in response["predictions"]:
if object["label"] == "person" and object["confidence"] > 0.60:
path = event.src_path
image = cv2.imread(path)
color = (0, 0, 255)
thickness = 2
image = cv2.rectangle(image, (object["x_min"], object["y_min"]), (object["x_max"], object["y_max"]), color, thickness)
cv2.imwrite(path,image)
send_telegram(event)
break
# print(response["predictions"])
def send_telegram(event):
time.sleep(1)
bot.send_photo(chat_id=chat_id, photo=open(event.src_path, 'rb'))
bot.send_message(chat_id=chat_id, text="Tweakers?!")
if __name__ == "__main__":
patterns = ["*"]
ignore_patterns = None
ignore_directories = True
case_sensitive = False
my_event_handler = PatternMatchingEventHandler(
patterns=patterns,
ignore_patterns=ignore_patterns,
ignore_directories=ignore_directories,
case_sensitive=case_sensitive
)
my_event_handler.on_created = find_human
path = dir_loc
go_recursively = False
my_observer = Observer()
my_observer.schedule(my_event_handler, path, recursive=go_recursively)
my_observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
my_observer.stop()
my_observer.join()