Разработка на Python — удалённая работа в Москве
Дата: 2025-05-14
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-05-14
Описание
Программирование raspberry pi с использованием машинного зрения. Доработка существующего продукта. Пожелания и особенности: Отправил в deepseek запрос на требуемую программу, запрос и результат прикреплю, в общем там все понятно что я хочу сделать, за подробным тз обращайтесь, все распишу. Запросы в deepseek: Требуется сделать удержание позиции дрона без gps с использованием одноплатного компьютера и камеры расположенной в днище дрона, которая стабилизируется строго вниз Вот модернизированное решение, которое динамически адаптируется к изменяющейся высоте и сохраняет точность позиционирования без GPS. Ключевые улучшения включают автоматический расчет масштаба изображения и многоуровневую фильтрацию данных. --- ### 1. Алгоритм с динамической высотой import cv2 import numpy as np from pymavlink import mavutil import time # Конфигурация INITIAL_ALTITUDE = 100 # Стартовая высота (м) PIX_PER_METER_AT_100M = 64 # 1м = 64 пикселя на 100м высоте RESET_INTERVAL = 30 # Сброс трекинга каждые 30 сек # Инициализация cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) mav = mavutil.mavlink_connection('udpout:192.168.1.2:14550') # Трекер и фильтры orb = cv2.ORB_create(scoreType=cv2.ORB_FAST_SCORE) bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) ref_kp, ref_des = None, None current_altitude = INITIAL_ALTITUDE def get_altitude(): “““Получение текущей высоты от барометра через MAVLink“““ msg = mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True, timeout=0.1) return msg.alt / 1000 if msg else current_altitude # мм → метры def calculate_scale(altitude): “““Динамический расчет масштаба пиксель/метр“““ return PIX_PER_METER_AT_100M * (100 / altitude) def reset_reference(): global ref_kp, ref_des, current_altitude current_altitude = get_altitude() ret, frame = cap.read() if not ret: return False gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) ref_kp, ref_des = orb.detectAndCompute(gray, None) return True def get_displacement(): if ref_des is None: return 0, 0 ret, frame = cap.read() if not ret: return 0, 0 # Детекция и сопоставление gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) kp, des = orb.detectAndCompute(gray, None) if des is not None and len(des) > 20: matches = bf.match(ref_des, des) matches = sorted(matches, key=lambda x: x.distance)[:20] if len(matches) > 10: src_pts = np.float32([ref_kp[m.queryIdx].pt for m in matches]) dst_pts = np.float32([kp[m.trainIdx].pt for m in matches]) M, _ = cv2.estimateAffinePartial2D(src_pts, dst_pts) if M is not None: scale = calculate_scale(get_altitude()) return M[0, 2]/scale, M[1, 2]/scale return 0, 0 # Основной цикл reset_reference() last_reset = time.time() while True: # Автоматический сброс по таймеру if time.time() - last_reset > RESET_INTERVAL: reset_reference() last_reset = time.time() dx, dy = get_displacement() # Отправка в ArduPilot с учетом высоты mav.mav.vision_position_estimate_send( int(time.time() * 1e6), dx, dy, 0, 0, 0, 0, # Ориентация int(current_altitude * 1000), # Высота в мм 0 ) time.sleep(0.1) --- ### 2. Критические улучшения #### 1. Динамический масштаб - Формула: scale = (PIX_PER_METER_AT_100M) * (100 / current_altitude) Пример: - На 100 м: 64 px/м - На 150 м: 43 px/м - На 50 м: 128 px/м #### 2. Автоматическая коррекция высоты - Чтение данных барометра через MAVLink: msg = mav.recv_match(type='GLOBAL_POSITION_INT') current_altitude = msg.alt / 1000 # Переводим мм в метры #### 3. Гибридный трекинг - Комбинация ORB + RANSAC для фильтрации выбросов: M, inliers = cv2.estimateAffinePartial2D( src_pts, dst_pts, method=cv2.RANSAC, ransacReprojThreshold=3.0 ) --- ### 3. Настройки ArduPilot EK3_SRC1_POSZ = 0 # Барометр как основной источник высоты EK3_ALT_SOURCE = 1 # Фолбэк на барометр при потере Vision VIS_POS_UNCERT = 3 # Погрешность 3 метра EK3_FLOW_USE = 1 # Разрешить коррекцию высоты --- ### 4. Оценка точности при изменяющейся высоте | Высота | Ошибка позиционирования (в час) | |--------|-------------------------------| | 50 м | ≤5 м | | 100 м | ≤8 м | | 150 м | ≤12 м |.
Похожие заказы
Разработка на Python
дистанционно
договорная
Разработка чат-ботов. Задачи чат-бота: сбор информации. Платформа: Telegram, веб-сайт. Продукт: Контроль цен. Техзадание есть. Пожелания и особенности: 🔹 Шаг 1. Определение MVP (1 неделя) включаем: 1. Telegram-бот: - Принимает Excel-смету → возвращает отчет с переплатами. 2. Парсер данных: - Собирает цены с 3 источников: ЕИС (госзакупки), СберЕАИСТ, 1–2 локальных поставщиков. 3. Отчет в Google Sheets: - Таблица с колонками: Материал, Ваша цена, Рыночная цена, Переплата %. 🔹 Шаг 2. Разработка MVP (3 недели) Команда: - 1 Python-разработчик (фрилансер, ~120 000 ₽). - 1 менеджер для координации (основатель). Технологии: - Backend: Python (FastAPI + pandas). - Парсинг: BeautifulSoup / готовые API (например, ЕИС). - Хостинг: VPS на Timeweb (~5 000 ₽/мес). Процесс: 1. Неделя 1: Настройка бота + загрузка файлов. 2. Неделя 2: Парсинг данных (только ключевые материалы: бетон, арматура, щебень). 3. Неделя 3: Генерация отчета + тестирование.
Москва
Фрилансеры
2025-05-16
Разработка на Python
дистанционно
договорная
Разработка чат-ботов. Задачи чат-бота: приём текстовых заказов, Ищу специалиста по Python с опытом автоматизации действий в Windows-программах. Задача: Создать агента (скрипт), который будет выполнять следующие действия: Открывать установленную на ПК программу (например, Clics) Находить нужное поле в интерфейс. Платформа: ПК windows. Продукт: Windows. Техзадания нет.
Санкт-Петербург
Фрилансеры
2025-05-16
Разработка на Django
дистанционно
договорная
Веб-разработка. Разработка с нуля, Прохождение курса и сдача итогового проекта. Привет! Необходимо допройти курс бэкенд-разработчик (пройдено уже 82%), порешать мелкие задачки + написать итоговый проект. Могу кинуть пример проекта, но необходимо, чтобы он был уникальным, тк у Яндекс есть тест на проверку антиплагиата.
Москва
Фрилансеры
2025-05-16
Разработка на Python
дистанционно
договорная
Python. Разработка с нуля. Пожелания и особенности: Выполнить задание с использованием любой из данных библиотек: Tkinter, wxPython, PyQT или PySimpleGUI.
Москва
Фрилансеры
2025-05-16
Разработка на Django
дистанционно
договорная
Веб-разработка. Разработка с нуля. Привет! Необходимо решить задачи по Django + написать проект.
Москва
Фрилансеры
2025-05-16
Разработка на Python
дистанционно
договорная
Python. Разработка с нуля.
Москва
Фрилансеры
2025-05-16
Разработка на Django
дистанционно
договорная
Проект на Django. Разработка с нуля. Описание проекта на Django Цель: Сформировать четкое представление о своем проекте на Django, детализировать его функционал и возможности. Инструкция: Ответьте на следующие вопросы, чтобы создать структурированное описание вашего проекта. Это поможет вам лучше понять цели и задачи разработки, а также сформулировать ожидания по производительности и функциональности. ### Вопросы для описания проекта: 1. Название проекта - Как будет называться ваш проект? Какие смысловые нагрузки несет это название? 2. Описание проекта - Какую проблему решает ваш проект? - Какую главную цель вы ставите перед собой при создании этого проекта? 3. Целевая аудитория - Кто будет основным пользователем вашего проекта? - Какие конкретные потребности этой аудитории вы планируете удовлетворить? 4. Основной функционал - Какие ключевые функции будет выполнять проект? - Какую самую важную задачу пользователи смогут решить с помощью вашего приложения? 5. Возможности проекта - Перечислите дополнительные функции, которые планируете реализовать. - Какие дополнительные ценности эти функции придадут вашему проекту? 6. Технические требования - Какие технологии, помимо Django, вы планируете использовать (например, базы данных, фреймворки для фронтенда, API)? - Планируете ли интеграцию с другими сервисами или API? 7. Пользовательский интерфейс - Как будет выглядеть ваш пользовательский интерфейс? - Какие особенности интерфейса помогут пользователям более эффективно взаимодействовать с вашим проектом? 8. Безопасность и защита данных - Какие меры безопасности вы планируете внедрить в своем проекте? - Как вы будете обеспечивать защиту данных пользователей? 9. Планы по развитию - Какие функции/или улучшения вы планируете реализовать в будущем? - Каким вы видите свой проект через год после запуска? 10. Критерии успеха - Как вы оцените успешность вашего проекта? - Какие показатели будут свидетельствовать о том, что проект достиг поставленных перед ним целей? Убедитесь, что ваше описание четко и понятно, отражает ваше видение проекта и помогает воплотить ваши идеи в жизнь. Хотелось бы сайт о аниме bleach, в первую очередь содержал манги , разнообразный мерс, например постеры и значки, подарки для друзей, а также раздел с информацией о персонажах. Что касается оформления, я бы хотела чтоб оно было в стиле логотипа bleach , как на заставке аниме. Цветовая гамма должна было черно-оранжевый , в одном из уголков сайта можно разметить название этого аниме. Программисту для второго курса.
Москва
Фрилансеры
2025-05-15