TGViewer
Channel Public Channel
Faris

Faris

@faris_fi

Subscribers
11
Photos
6
Videos
4
Links
11
Recent Posts 19 shown
Post #59 33
Обновленная структура - сделанно легкую нейронную сеть для опредления емоций
Post #58 33
project/
├── main.py
├── models/
│ └── simple_emotion_model.json
├── emotions/
│ ├── __init__.py
│ ├── controller.py
│ ├── data.json
│ ├── id2label.json
│ └── simple_emotion_predictor.py
├── voice/
│ ├── __init__.py
│ ├── recognition.py
│ ├── synthesis.py
│ └── database.py
├── face/
│ ├── __init__.py
│ ├── recognition.py
│ ├── training.py
│ └── database.py
├── memory/
│ ├── __init__.py
│ ├── core.py
│ └── reminders.py
├── hardware/
│ ├── __init__.py
│ ├── camera.py
│ ├── esp32_control.py
│ └── gestures.py
├── music/
│ ├── __init__.py
│ ├── player.py
│ └── playlist.py
└── utils/
├── __init__.py
├── config.py
└── helpers.py
Post #57 28
project/
├── train_emotion_model.py # цей файл
├── emotions/
│ ├── __init__.py # порожній файл
│ ├── neural_model.py
│ ├── training_pipeline.py
│ ├── controller.py
│ ├── data.json
│ └── id2label.json
└── models/ # буде створена після навчання
  • ❤ 1
Post #56 33
project/
├── main.py
├── voice/
│ ├── __init__.py
│ ├── recognition.py
│ ├── synthesis.py
│ └── database.py
├── face/
│ ├── __init__.py
│ ├── recognition.py
│ ├── training.py
│ └── database.py
├── memory/
│ ├── __init__.py
│ ├── core.py
│ └── reminders.py
├── hardware/
│ ├── __init__.py
│ ├── camera.py
│ ├── esp32_control.py
│ └── gestures.py
├── emotions/
│ ├── __init__.py
│ └── controller.py
├── music/
│ ├── __init__.py
│ ├── player.py
│ └── playlist.py
└── utils/
├── __init__.py
├── config.py
└── helpers.py
  • ❤ 2
  • 💋 1
Post #55
Faris pinned «ВСТУП РОЗДІЛ 1. ТЕОРЕТИКО-МЕТОДОЛОГІЧНІ ЗАСАДИ ЕМПАТИЧНИХ ШІ-СИСТЕМ 1.1.Нейрокогнітивні моделі емпатії та їх комп'ютерна імітація 1.2.Архітектурні патерни емоційно-інтелектуальних систем 1.3.Методологія валідації емпатичних механізмів РОЗДІЛ 2. СИСТЕМНА…»
Post #54 37
  • 💘 1
Post #53 34
  • 💘 2
Post #52 49

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 🔥 1
  • 💘 1
Post #49 54
  • 💘 1
Post #48 56
ВСТУП

РОЗДІЛ 1. ТЕОРЕТИКО-МЕТОДОЛОГІЧНІ ЗАСАДИ ЕМПАТИЧНИХ ШІ-СИСТЕМ
1.1.Нейрокогнітивні моделі емпатії та їх комп'ютерна імітація
1.2.Архітектурні патерни емоційно-інтелектуальних систем
1.3.Методологія валідації емпатичних механізмів

РОЗДІЛ 2. СИСТЕМНА АРХІТЕКТУРА ТА ІНТЕГРАЦІЙНІ РІШЕННЯ
2.1.Синтез мультимодальних модулів соціальної взаємодії
2.2.Алгоритми автономної навігації та просторової орієнтації
2.3.Апаратно-програмна коінтеграція сенсорних систем
2.4.Оптимізація обчислювальних процесів та розподіл ресурсів
2.5.Верифікація функціональної когерентності системи

РОЗДІЛ 3. ЕКСПЕРИМЕНТАЛЬНІ ДОСЛІДЖЕННЯ ТА АНАЛІЗ РЕЗУЛЬТАТІВ
3.1.Дослідження надійності та стійкості системи
3.2.Аналіз ефективності соціальної взаємодії

ВИСНОВКИ

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

ДОДАТКИ
  • 💘 1
Post #47 43
новое шасси
  • 💘 1
Post #46 42
Мета дослідження:

теоретично та експериментально обґрунтувати можливість створення емпатичної робототехнічної системи. Розробити та валідувати модель емпатії для універсального робота-асистента, здатну покращувати якість його взаємодії з людиною шляхом адаптації широкого спектру задач до когнітивного та емоційного стану користувача.
  • 🔥 1
  • 💘 1
Post #45 36
Моделювання та експериментальна валідація емпатичних функцій у робототехнічних системах: оцінка когнітивних та емоційних компонентів у діалозі.
  • 🔥 1
  • 💘 1
Post #43 41
# Пример использования в основном цикле камеры
def camera_loop_with_light_control():
"""Пример интеграции управления светом в основной цикл камеры"""
global AUTO_LIGHT_ENABLED

esp32cam_url = "http://192.168.88.28/capture"
camera_active = True

# Включаем автосвет при старте
AUTO_LIGHT_ENABLED = True

try:
while camera_active:
# Получаем кадр с камеры ESP32
response = requests.get(esp32cam_url, timeout=2)
if response.status_code == 200:
img_array = np.array(bytearray(response.content), dtype=np.uint8)
frame = cv2.imdecode(img_array, cv2.IMREAD_COLOR)

if frame is not None:
# Проверяем уровень освещенности
brightness = check_light_level(frame)

# Автоматическое управление светом
control_light(brightness)

# Добавляем информацию о освещении на экран
light_status = "ВКЛ" if brightness < LIGHT_THRESHOLD else "ВЫКЛ"
cv2.putText(frame, f"Яркость: {brightness:.1f}", (10, 30),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2)
cv2.putText(frame, f"Свет: {light_status}", (10, 60),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2)
cv2.putText(frame, f"Авто: {'ВКЛ' if AUTO_LIGHT_ENABLED else 'ВЫКЛ'}", (10, 90),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2)

# Отображаем кадр
cv2.imshow('Камера с автосветом', frame)

# Обработка клавиш
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
elif key == ord('a'): # Клавиша A для переключения авторежима
toggle_auto_light()
elif key == ord('l'): # Клавиша L для ручного включения
turn_on_light()
elif key == ord('d'): # Клавиша D для ручного выключения
turn_off_light()

time.sleep(0.1)

except Exception as e:
print(f"❌ Ошибка в цикле камеры: {e}")
finally:
# Гасим свет при выходе
turn_off_light()
cv2.destroyAllWindows()

# Голосовые команды для интеграции с ассистентом
def handle_light_commands(user_text):
"""Обработка голосовых команд для света"""
user_lower = user_text.lower()

if "включи свет" in user_lower or "включи фонарик" in user_lower:
success = turn_on_light()
return "Свет включен" if success else "Не удалось включить свет"

elif "выключи свет" in user_lower or "выключи фонарик" in user_lower:
success = turn_off_light()
return "Свет выключен" if success else "Не удалось выключить свет"

elif "автоматический свет" in user_lower or "авто свет" in user_lower:
status = toggle_auto_light()
return "Автоматический свет включен" if status else "Автоматический свет выключен"

return None

# Тестирование функции
if name == "main":
print("🔦 Тестирование функции фонарика")

# Тест ручного управления
print("1. Включаем свет...")
turn_on_light()
time.sleep(2)

print("2. Выключаем свет...")
turn_off_light()
time.sleep(1)

print("3. Включаем авторежим...")
toggle_auto_light()

# Запуск тестового цикла камеры
print("4. Запуск теста камеры с автосветом...")
print(" Клавиши: A-авто, L-свет вкл, D-свет выкл, Q-выход")
camera_loop_with_light_control()
  • 💘 1
Post #42 33
Функция фонарика автоматически управляет подсветкой камеры ESP32 на основе уровня освещенности в помещении. При недостаточной освещенности фонарик включается, при достаточной - выключается.
  • 💘 1
Post #40 36
1. Обнаружение landmarks руки

def detect_hand_skeleton(frame, hand_detector):
rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = hand_detector.process(rgb_frame)

if results.multi_hand_landmarks and results.multi_handedness:
hand_landmarks = results.multi_hand_landmarks[0]
handedness = results.multi_handedness[0].classification[0].label
return hand_landmarks, handedness
return None, None 3.

2. Определение жеста на основе landmarks
def get_hand_gesture(hand_landmarks, frame_width, frame_height):
landmarks = []
for lm in hand_landmarks.landmark:
x = int(lm.x * frame_width)
y = int(lm.y * frame_height)
landmarks.append((x, y))

# Определение состояния пальцев (согнуты/разогнуты)
fingers_up = []
# Логика для большого пальца
thumb_tip = landmarks[4]
thumb_mcp = landmarks[2]
if thumb_tip[0] > thumb_mcp[0]: # Для правой руки
fingers_up.append(1)
else:
fingers_up.append(0)

# Остальные пальцы
finger_tips = [8, 12, 16, 20] # Указательный, средний, безымянный, мизинец
finger_pips = [6, 10, 14, 18] # Суставы

for tip, pip in zip(finger_tips, finger_pips):
if landmarks[tip][1] < landmarks[pip][1]: # Кончик выше сустава
fingers_up.append(1)
else:
fingers_up.append(0)

total_fingers = sum(fingers_up)

if total_fingers == 0:
return "fist", fingers_up
elif total_fingers == 1 and fingers_up[1] == 1:
return "one_finger", fingers_up
elif total_fingers >= 2:
return "open_hand", fingers_up
else:
return "unknown", fingers_up
3.Определение направления указательного пальца
def get_finger_direction(hand_landmarks, frame_width, frame_height):
landmarks = []
for lm in hand_landmarks.landmark:
x = int(lm.x * frame_width)
y = int(lm.y * frame_height)
landmarks.append((x, y))

index_mcp = landmarks[5] # Сустав указательного пальца
index_tip = landmarks[8] # Кончик указательного пальца

dx = index_tip[0] - index_mcp[0]
dy = index_tip[1] - index_mcp[1]

if dx == 0:
angle = 90
else:
angle = np.degrees(np.arctan2(dy, dx))

x_center = index_tip[0] / frame_width

if x_center < 0.4:
return "left", angle
elif x_center > 0.6:
return "right", angle
else:
return "center", angle 5.


4.Визуализация скелета
руки
def draw_hand_skeleton(frame, hand_landmarks, gesture, direction):
mp_drawing.draw_landmarks(
frame,
hand_landmarks,
mp_hands.HAND_CONNECTIONS,
mp_drawing_styles.get_default_hand_landmarks_style(),
mp_drawing_styles.get_default_hand_connections_style()
)

cv2.putText(frame, f"Жест: {gesture}", (10, 30),
cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
cv2.putText(frame, f"Направление: {direction}", (10, 60),
cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
return frame Пример использования из кода: if hand_landmarks:
# Определение жеста
gesture, fingers_up = get_hand_gesture(hand_landmarks, frame.shape[1], frame.shape[0])

# Определение направления
direction, angle = get_finger_direction(hand_landmarks, frame.shape[1], frame.shape[0])

# Визуализация
frame = draw_hand_skeleton(frame, hand_landmarks, gesture, direction)

# Управление роботом на основе жестов
if gesture == "fist":
send_command_to_esp("stop")
elif gesture == "one_finger" and direction == "center":
send_command_to_esp("forward")
elif gesture == "one_finger" and direction == "left":
send_command_to_esp("left")
elif gesture == "one_finger" and direction == "right":
send_command_to_esp("right")

Post #37 30
Функция скелета руки

Функция скелета руки представляет собой комплексную систему компьютерного зрения для трекинга и анализа кисти человека в реальном времени. Реализация основана на использовании библиотеки MediaPipe, которая обеспечивает обнаружение и локализацию 21 ключевой точки-ландмарка на каждой руке.

Процесс начинается с инициализации детектора рук с заданными параметрами уверенности обнаружения и отслеживания. Для каждого видеокадра выполняется преобразование цветового пространства из BGR в RGB, после чего детектор обрабатывает изображение и возвращает координаты ландмарков в нормализованном виде. Эти координаты преобразуются в пиксельные значения относительно размеров кадра.

На следующем этапе выполняется классификация жестов на основе анализа относительного положения кончиков пальцев и соответствующих суставов. Алгоритм определяет количество разогнутых пальцев путем сравнения вертикальных координат их кончиков и средних фаланг. Это позволяет идентифицировать три основных жестовых состояния: кулак, один поднятый палец и открытая ладонь.

Дополнительно реализована функция определения пространственной ориентации указательного пальца. Через расчет угла наклона и позиции кончика пальца относительно центра кадра определяется направление жеста. Полученные данные жеста и направления используются для управления внешними устройствами.

Визуализация включает отрисовку скелета руки путем соединения ландмарков линиями согласно анатомическим связям, а также наложение текстовой информации о распознанном жесте и направлении. Система демонстрирует устойчивую работу при различных условиях освещенности и ракурсах.
Older posts →

About this channel

How can I read @faris_fi without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Faris: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Faris have?
Faris (@faris_fi) has 11 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Faris know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →