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.
69 lines
1.9 KiB
69 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()
|
|
send_bool = False
|
|
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_bool = True
|
|
if send_bool == True:
|
|
send_telegram(event)
|
|
|
|
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()
|