# Простой модуль В ## Кадры ```bash mkdir -p module3/dataset/raw ffmpeg -i video.mp4 -vf fps=2 module3/dataset/raw/frame_%05d.jpg ``` ## Разметка ```bash label-studio start ``` Откройте `http://localhost:8080`, создайте проект и загрузите кадры через `Data Import`. В `Labeling Setup` выберите `Computer Vision -> Object Detection with Bounding Boxes` и создайте классы `hammer`, `pliers`, `wrench`. После разметки выберите `Export -> YOLO` и распакуйте архив так, чтобы получилось: ```text module3/dataset/label-studio/ ├── classes.txt ├── images/ └── labels/ ``` Затем: ```bash python3 module3/simple_prepare_dataset.py ``` ## Обучение ```bash cd module3 source .venv/bin/activate yolo detect train model=yolo11n.pt data=training_new/data.yaml epochs=30 patience=7 imgsz=512 batch=8 device=0 project=training_new/runs name=tools exist_ok=True cp training_new/runs/tools/weights/best.pt models/latest.pt ``` ## Запуск ```bash source /opt/ros/jazzy/setup.bash source ~/ros2_ws/install/setup.bash cd ~/scripts/mvch module3/.venv/bin/python module3/simple_module_b.py ``` Ввод предмета нужен только для показа. Скрипт выводит YOLO в окне OpenCV, через 5 секунд открывает захват, а через 2 секунды переводит его в положение `take_cube`. Выход — `Q` или `Esc`. Камера реального RMC1: `/RMC1/arm95/svcam/right/image`. Для проверки в Webots замените константу `CAMERA` на `/RMC1/arm95/camera_gripper/image_color`.